From b4218a996c938f30461f7d0aa50aeb37b88c142a Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Mon, 18 Aug 2025 16:31:49 -0400 Subject: [PATCH 01/28] feat: added ci to update contracts --- .github/workflows/update-contracts.yaml | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/update-contracts.yaml diff --git a/.github/workflows/update-contracts.yaml b/.github/workflows/update-contracts.yaml new file mode 100644 index 00000000..e58460c3 --- /dev/null +++ b/.github/workflows/update-contracts.yaml @@ -0,0 +1,46 @@ +on: + push: + tags: + - 'btc-bridge-v[0-9]+.[0-9]+.[0-9]+*' + + workflow_dispatch: + +name: Update Contracts +jobs: + update-contracts: + runs-on: ubuntu-latest + name: Update Contracts + permissions: + contents: write + steps: + - name: Setup SSH + uses: webfactory/ssh-agent@v0.7.0 + + - name: Clone the repository + uses: actions/checkout@v3 + + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh + + - name: Build NEAR contracts + run: | + make release + timeout-minutes: 60 + + - name: Archive built WASM files + env: + RAW_TAG: ${{ github.ref_name }} + run: | + SAFE_TAG="${RAW_TAG//./-}" + ZIP_NAME="${SAFE_TAG}.zip" + mkdir -p artifacts + find ./res -name "*.wasm" -exec cp {} artifacts/ \; + zip -j "$ZIP_NAME" artifacts/* + shell: bash + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ github.ref_name }} + files: "*.zip" From 7261945ccaa35123e1806f3af8013e58dc894973 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Mon, 18 Aug 2025 16:33:26 -0400 Subject: [PATCH 02/28] chore: removed ssh agent --- .github/workflows/update-contracts.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/update-contracts.yaml b/.github/workflows/update-contracts.yaml index e58460c3..b8711a32 100644 --- a/.github/workflows/update-contracts.yaml +++ b/.github/workflows/update-contracts.yaml @@ -13,9 +13,6 @@ jobs: permissions: contents: write steps: - - name: Setup SSH - uses: webfactory/ssh-agent@v0.7.0 - - name: Clone the repository uses: actions/checkout@v3 From af66cd93b900190384c312194903c2af91f2808d Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Thu, 28 Aug 2025 21:52:59 +0100 Subject: [PATCH 03/28] provide max gas fee --- contracts/satoshi-bridge/src/api/token_receiver.rs | 3 +++ contracts/satoshi-bridge/src/psbt.rs | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/contracts/satoshi-bridge/src/api/token_receiver.rs b/contracts/satoshi-bridge/src/api/token_receiver.rs index 28432a08..0f52a183 100644 --- a/contracts/satoshi-bridge/src/api/token_receiver.rs +++ b/contracts/satoshi-bridge/src/api/token_receiver.rs @@ -9,6 +9,7 @@ pub enum TokenReceiverMessage { target_btc_address: String, input: Vec, output: Vec, + max_gas_fee: Option, }, } @@ -47,6 +48,7 @@ impl FungibleTokenReceiver for Contract { target_btc_address, input, output, + max_gas_fee, } => { let (psbt, utxo_storage_keys, vutxos) = self.generate_psbt_and_vutxos(input, output); @@ -69,6 +71,7 @@ impl FungibleTokenReceiver for Contract { &vutxos, amount, withdraw_fee, + max_gas_fee ); let need_signature_num = psbt.unsigned_tx.input.len(); diff --git a/contracts/satoshi-bridge/src/psbt.rs b/contracts/satoshi-bridge/src/psbt.rs index 7090c251..f1cbf7cb 100644 --- a/contracts/satoshi-bridge/src/psbt.rs +++ b/contracts/satoshi-bridge/src/psbt.rs @@ -9,6 +9,7 @@ impl Contract { vutxos: &[VUTXO], amount: u128, withdraw_fee: u128, + max_gas_fee: Option, ) -> (u128, u128) { let config = self.internal_config(); let utxo_num = self.data().utxos.len() + vutxos.len() as u32; @@ -20,6 +21,10 @@ impl Contract { amount, withdraw_fee, ); + + if let Some(max_gas_fee) = max_gas_fee { + require!(gas_fee <= max_gas_fee.0, format!("Gas fee does not match the provided max fee (gas fee = {}; max gas fee = {})", gas_fee, max_gas_fee.0)); + } require!( change_num <= config.max_change_number as usize, From 4dfb588a5c2e079ae3f6e9eb30f9c33074ca5af1 Mon Sep 17 00:00:00 2001 From: karim-en Date: Tue, 2 Sep 2025 12:29:11 +0100 Subject: [PATCH 04/28] Bump version --- Cargo.lock | 2 +- contracts/satoshi-bridge/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b15e5a1..08a8f7a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2929,7 +2929,7 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "satoshi-bridge" -version = "0.5.0" +version = "0.5.1" dependencies = [ "bitcoin", "crypto-shared", diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 97f38c85..128301f2 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.5.0" +version = "0.5.1" edition.workspace = true publish.workspace = true repository.workspace = true From da0c1d6c9ac3006a94a135f5ed5b63dfaa5abaed Mon Sep 17 00:00:00 2001 From: Karim Date: Wed, 17 Sep 2025 13:58:35 +0100 Subject: [PATCH 05/28] Fix release repo (#7) --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index e331affa..10aa8c27 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = [ [workspace.package] edition = "2021" publish = false -repository = "https://github.com/Near-Bridge-Lab/btc-bridge" +repository = "https://github.com/Near-One/btc-bridge" [workspace.dependencies] near-sdk = { version = "5.14.0", features = ["unstable", "unit-testing"] } From fc6028136e94d3640c0d6a30384535dc5114a5e8 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Fri, 19 Sep 2025 15:18:35 +0100 Subject: [PATCH 06/28] Add Zcash support (#2) * provide metadata for nBTC * fix satoshi bridge cargo toml * address -> script_pubkey * btc-p2wpkh -> utxo_chain * remove btc_network * draft zcash tx impl * fix consenses decode * zcash_primitives * fix cargo toml * test for script * fix get output * change signhash * Refactor transaction type * Bump zcash_primitives version * Convert btc tx into zcash tx * Set `final_script_sig` * Fix sighash * fix * fix sequence * zcash build * add zcash features * AddressInner -> Address * new line * test parse address * test from pubkey * improve tests * fix warnings * check zcash fee * safe expiry height * fix expiry_height * add rbf * fix sequence * extract expire_height for cancel_withdraw * fix cancel active utxo managment * fix active utxo managment * utxo_mamagment extract block height * gap into config * Replace last_block_header with last_block_height * construct output for zcash * add simple try from address * parse unified address * script pubkey * fmt for unified address * fix find receiver in list * fix warnings * safe psbt wraper * deserialize * move het hash to sign * extract tx byte * save signature * incapsulate psbt * separate transaction * separate expiry hight * separate psbt creation * separate chain specific functions * separate zcash functions * separate zcash * fix btc * fix warnings * optimize get min fee * remove psbt for zcash * remove unsed function * add get_input_num and get_output_num * fix satoshi bridge * fix new * make psbt field private * reduce copy past * reduce copypast * fix test contract config for zcash * don't panic * fmt * reduce include * updaye zcash_protocol * fix chain id * remove default * add version * fix bitcoin connector * remove bytes_to_btc_transaction * don't use fully-qualified name * fix bitcoin tests * fix check block heigth for branch id * save block height * fix * fix make * fix valid confiramtions range * Bump version * fix: use `U128` type for amount in `ft_on_transfer_callback` * provide max gas fee --------- Co-authored-by: karim-en Co-authored-by: Ivan Frolov --- Cargo.lock | 1885 +++++++++++++---- Makefile | 24 +- contracts/nbtc/Cargo.toml | 2 +- contracts/nbtc/src/lib.rs | 19 +- contracts/satoshi-bridge/Cargo.toml | 28 +- contracts/satoshi-bridge/src/api/bridge.rs | 189 +- .../satoshi-bridge/src/api/token_receiver.rs | 150 +- .../src/bitcoin_utils/contract_methods.rs | 94 + .../satoshi-bridge/src/bitcoin_utils/mod.rs | 3 + .../src/bitcoin_utils/psbt_wrapper.rs | 161 ++ .../src/bitcoin_utils/transaction.rs | 41 + .../src/btc_light_client/mod.rs | 15 +- .../satoshi-bridge/src/btc_pending_info.rs | 89 +- .../satoshi-bridge/src/chain_signature.rs | 48 +- contracts/satoshi-bridge/src/config.rs | 24 +- contracts/satoshi-bridge/src/kdf.rs | 23 +- contracts/satoshi-bridge/src/legacy.rs | 3 + contracts/satoshi-bridge/src/lib.rs | 28 +- contracts/satoshi-bridge/src/nbtc/burn.rs | 16 +- contracts/satoshi-bridge/src/network.rs | 436 ++++ contracts/satoshi-bridge/src/psbt.rs | 99 +- .../src/rbf/active_utxo_management.rs | 12 +- .../src/rbf/cancel_active_utxo_management.rs | 8 +- .../satoshi-bridge/src/rbf/cancel_withdraw.rs | 13 +- contracts/satoshi-bridge/src/rbf/mod.rs | 7 +- contracts/satoshi-bridge/src/rbf/withdraw.rs | 22 +- contracts/satoshi-bridge/src/unit/mod.rs | 10 + contracts/satoshi-bridge/src/utxo.rs | 10 +- .../src/zcash_utils/contract_methods.rs | 192 ++ .../satoshi-bridge/src/zcash_utils/mod.rs | 3 + .../src/zcash_utils/psbt_wrapper.rs | 332 +++ .../src/zcash_utils/transaction.rs | 109 + .../satoshi-bridge/tests/setup/context.rs | 9 +- 33 files changed, 3329 insertions(+), 775 deletions(-) create mode 100644 contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs create mode 100644 contracts/satoshi-bridge/src/bitcoin_utils/mod.rs create mode 100644 contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs create mode 100644 contracts/satoshi-bridge/src/bitcoin_utils/transaction.rs create mode 100644 contracts/satoshi-bridge/src/network.rs create mode 100644 contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs create mode 100644 contracts/satoshi-bridge/src/zcash_utils/mod.rs create mode 100644 contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs create mode 100644 contracts/satoshi-bridge/src/zcash_utils/transaction.rs diff --git a/Cargo.lock b/Cargo.lock index 08a8f7a2..be6de1c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,13 +27,23 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.6", + "generic-array", +] + [[package]] name = "aes" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "cipher", "cpufeatures", ] @@ -70,19 +80,25 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" dependencies = [ "derive_arbitrary", ] +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + [[package]] name = "arrayvec" version = "0.7.6" @@ -91,13 +107,13 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -108,9 +124,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backtrace" @@ -119,12 +135,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", - "cfg-if 1.0.1", + "cfg-if 1.0.3", "libc", "miniz_oxide", "object", "rustc-demangle", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -167,6 +183,22 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" +[[package]] +name = "bellman" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afceed28bac7f9f5a508bca8aeeff51cdfa4770c0b967ac55c621e2ddfd6171" +dependencies = [ + "bitvec", + "blake2s_simd", + "byteorder", + "ff", + "group", + "pairing", + "rand_core", + "subtle", +] + [[package]] name = "binary-install" version = "0.2.0" @@ -185,11 +217,27 @@ dependencies = [ "zip", ] +[[package]] +name = "bip32" +version = "0.6.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143f5327f23168716be068f8e1014ba2ea16a6c91e8777bc8927da7b51e1df1f" +dependencies = [ + "bs58 0.5.1", + "hmac 0.13.0-pre.4", + "rand_core", + "ripemd 0.2.0-pre.4", + "secp256k1 0.29.1", + "sha2 0.11.0-pre.4", + "subtle", + "zeroize", +] + [[package]] name = "bitcoin" -version = "0.32.6" +version = "0.32.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8929a18b8e33ea6b3c09297b687baaa71fb1b97353243a3f1029fad5c59c5b" +checksum = "0fda569d741b895131a88ee5589a467e73e9c4718e958ac9308e4f7dc44b6945" dependencies = [ "base58ck", "bech32", @@ -247,9 +295,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "bitvec" @@ -269,7 +317,29 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest", + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.1", ] [[package]] @@ -281,6 +351,28 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.11.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fd016a0ddc7cb13661bf5576073ce07330a693f8608a1320b4e20561cc12cdc" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "bls12_381" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" +dependencies = [ + "ff", + "group", + "pairing", + "rand_core", + "subtle", +] + [[package]] name = "blst" version = "0.3.15" @@ -295,9 +387,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.6.4" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61138465baf186c63e8d9b6b613b508cd832cba4ce93cf37ce5f096f91ac1a6" +checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" dependencies = [ "bon-macros", "rustversion", @@ -305,17 +397,17 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.6.4" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40d1dad34aa19bf02295382f08d9bc40651585bd497266831d40ee6296fb49ca" +checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" dependencies = [ - "darling 0.20.11", + "darling 0.21.3", "ident_case", - "prettyplease 0.2.33", + "prettyplease 0.2.37", "proc-macro2", "quote", "rustversion", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -338,7 +430,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -353,14 +445,15 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ + "sha2 0.10.9", "tinyvec", ] [[package]] name = "bumpalo" -version = "3.18.1" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byteorder" @@ -405,9 +498,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.10" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" dependencies = [ "serde", ] @@ -429,7 +522,7 @@ dependencies = [ "indenter", "pathdiff", "rustc_version", - "sha2", + "sha2 0.10.9", "tracing", ] @@ -456,12 +549,22 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + [[package]] name = "cc" -version = "1.2.26" +version = "1.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" +checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -475,9 +578,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -485,6 +588,30 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if 1.0.3", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + [[package]] name = "chrono" version = "0.4.41" @@ -506,8 +633,9 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "inout", + "zeroize", ] [[package]] @@ -532,6 +660,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + [[package]] name = "convert_case" version = "0.5.0" @@ -554,6 +688,15 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core2" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239fa3ae9b63c2dc74bd3fa852d4792b8b305ae64eeede946265b6af62f1fff3" +dependencies = [ + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -565,11 +708,11 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", ] [[package]] @@ -599,9 +742,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" @@ -625,6 +768,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa" +dependencies = [ + "hybrid-array", +] + [[package]] name = "crypto-shared" version = "0.1.0" @@ -648,10 +800,10 @@ version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "cpufeatures", "curve25519-dalek-derive", - "digest", + "digest 0.10.7", "fiat-crypto", "rustc_version", "subtle", @@ -666,7 +818,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -689,6 +841,16 @@ dependencies = [ "darling_macro 0.20.11", ] +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + [[package]] name = "darling_core" version = "0.13.4" @@ -714,7 +876,21 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.102", + "syn 2.0.106", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.106", ] [[package]] @@ -736,7 +912,18 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.102", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", + "quote", + "syn 2.0.106", ] [[package]] @@ -751,9 +938,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -761,13 +948,13 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -776,7 +963,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "derive_more-impl", + "derive_more-impl 1.0.0", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl 2.0.1", ] [[package]] @@ -787,7 +983,18 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] @@ -796,9 +1003,20 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", "const-oid", - "crypto-common", + "crypto-common 0.1.6", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.0-pre.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" +dependencies = [ + "block-buffer 0.11.0-rc.3", + "crypto-common 0.2.0-rc.1", "subtle", ] @@ -808,7 +1026,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "dirs-sys-next", ] @@ -831,7 +1049,16 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", +] + +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", ] [[package]] @@ -842,9 +1069,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "easy-ext" @@ -859,7 +1086,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der", - "digest", + "digest 0.10.7", "elliptic-curve", "rfc6979", "serdect", @@ -879,15 +1106,15 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", "rand_core", "serde", - "sha2", + "sha2 0.10.9", "subtle", "zeroize", ] @@ -906,7 +1133,7 @@ checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct", "crypto-bigint", - "digest", + "digest 0.10.7", "ff", "generic-array", "group", @@ -924,7 +1151,7 @@ version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", ] [[package]] @@ -944,7 +1171,17 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", +] + +[[package]] +name = "equihash" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca4f333d4ccc9d23c06593733673026efa71a332e028b00f12cf427b9677dce9" +dependencies = [ + "blake2b_simd", + "core2", ] [[package]] @@ -955,12 +1192,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -973,6 +1210,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "f4jumble" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d42773cb15447644d170be20231a3268600e0c4cea8987d013b93ac973d3cf7" +dependencies = [ + "blake2b_simd", +] + [[package]] name = "fastrand" version = "2.3.0" @@ -985,6 +1231,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -997,16 +1244,22 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + [[package]] name = "fixed-hash" version = "0.7.0" @@ -1064,13 +1317,27 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] +[[package]] +name = "fpe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c4b37de5ae15812a764c958297cfc50f5c010438f60c6ce75d11b802abd404" +dependencies = [ + "cbc", + "cipher", + "libm", + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + [[package]] name = "fs2" version = "0.4.3" @@ -1143,7 +1410,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "libc", "wasi 0.11.1+wasi-snapshot-preview1", ] @@ -1154,10 +1421,22 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.3+wasi-0.2.4", +] + +[[package]] +name = "getset" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf0fc11e47561d47397154977bc219f4cf809b2974facc3ccb3b89e2436f912" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] @@ -1168,9 +1447,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "group" @@ -1179,15 +1458,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", + "memuse", "rand_core", "subtle", ] [[package]] name = "h2" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -1195,13 +1475,68 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.9.0", + "indexmap 2.11.0", "slab", "tokio", "tokio-util", "tracing", ] +[[package]] +name = "halo2_gadgets" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73a5e510d58a07d8ed238a5a8a436fe6c2c79e1bb2611f62688bc65007b4e6e7" +dependencies = [ + "arrayvec", + "bitvec", + "ff", + "group", + "halo2_poseidon", + "halo2_proofs", + "lazy_static", + "pasta_curves", + "rand", + "sinsemilla", + "subtle", + "uint", +] + +[[package]] +name = "halo2_legacy_pdqsort" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47716fe1ae67969c5e0b2ef826f32db8c3be72be325e1aa3c1951d06b5575ec5" + +[[package]] +name = "halo2_poseidon" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa3da60b81f02f9b33ebc6252d766f843291fb4d2247a07ae73d20b791fc56f" +dependencies = [ + "bitvec", + "ff", + "group", + "pasta_curves", +] + +[[package]] +name = "halo2_proofs" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "019561b5f3be60731e7b72f3f7878c5badb4174362d860b03d3cf64cb47f90db" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "halo2_legacy_pdqsort", + "indexmap 1.9.3", + "maybe-rayon", + "pasta_curves", + "rand_core", + "tracing", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1210,9 +1545,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", @@ -1233,9 +1568,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -1267,16 +1602,25 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] -name = "home" -version = "0.5.11" +name = "hmac" +version = "0.13.0-pre.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "e4b1fb14e4df79f9406b434b60acef9f45c26c50062cccf1346c6103b8c47d58" dependencies = [ - "windows-sys 0.59.0", + "digest 0.11.0-pre.9", +] + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", ] [[package]] @@ -1319,21 +1663,32 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +[[package]] +name = "hybrid-array" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", "httparse", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -1373,9 +1728,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64 0.22.1", "bytes", @@ -1515,9 +1870,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -1534,11 +1889,20 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "incrementalmerkletree" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30821f91f0fa8660edca547918dc59812893b497d07c1144f326f07fdd94aba9" +dependencies = [ + "either", +] + [[package]] name = "indenter" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" @@ -1553,12 +1917,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "serde", ] @@ -1571,6 +1935,17 @@ dependencies = [ "generic-array", ] +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags 2.9.4", + "cfg-if 1.0.3", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" @@ -1613,9 +1988,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -1623,9 +1998,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -1660,18 +2035,32 @@ dependencies = [ "serde_json", ] +[[package]] +name = "jubjub" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8499f7a74008aafbecb2a2e608a3e13e4dd3e84df198b604451efe93f2de6e61" +dependencies = [ + "bitvec", + "bls12_381", + "ff", + "group", + "rand_core", + "subtle", +] + [[package]] name = "k256" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "ecdsa", "elliptic-curve", "once_cell", "serdect", - "sha2", + "sha2 0.10.9", "signature", ] @@ -1695,17 +2084,23 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.172" +version = "0.2.175" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" + +[[package]] +name = "libm" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "libc", "redox_syscall", ] @@ -1722,6 +2117,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +[[package]] +name = "litrs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" + [[package]] name = "lock_api" version = "0.4.13" @@ -1734,9 +2135,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "lru" @@ -1744,14 +2145,23 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.4", + "hashbrown 0.15.5", +] + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if 1.0.3", ] [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memory_units" @@ -1759,6 +2169,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" +[[package]] +name = "memuse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" + [[package]] name = "mime" version = "0.3.17" @@ -1827,7 +2243,7 @@ dependencies = [ [[package]] name = "nbtc" -version = "0.1.0" +version = "0.2.0" dependencies = [ "near-contract-standards", "near-sdk", @@ -1840,7 +2256,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c49593c9e94454a2368a4c0a511bf4bf1413aff4d23f16e1d8f4e64b5215351" dependencies = [ "borsh", - "schemars", + "schemars 0.8.22", "semver", "serde", ] @@ -1871,7 +2287,7 @@ dependencies = [ "near_schemafy_lib", "proc-macro2", "quote", - "schemars", + "schemars 0.8.22", "serde_json", ] @@ -1887,9 +2303,9 @@ dependencies = [ [[package]] name = "near-account-id" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ed69d94899cfdfba16182bd681ad9e6b7f888e29532b04c56da9ae05a4c5bc4" +checksum = "8542f031adc257a27ba46ad904c241a88470ee95130663a9e5c08cf8e124f4d4" dependencies = [ "borsh", "serde", @@ -1897,23 +2313,23 @@ dependencies = [ [[package]] name = "near-chain-configs" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35aca612e6aee487a185766f51f5218e305257270136f0b911f2ecd4184c8986" +checksum = "b309d3b1f8adee89167babb4695ae1fdfe1102ef019b9f44dc1dbc5389327c42" dependencies = [ "anyhow", "bytesize", "chrono", - "derive_more", - "near-config-utils", - "near-crypto", - "near-parameters", - "near-primitives", - "near-time", + "derive_more 1.0.0", + "near-config-utils 0.30.3", + "near-crypto 0.30.3", + "near-parameters 0.30.3", + "near-primitives 0.30.3", + "near-time 0.30.3", "num-rational", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "smart-default", "time", "tracing", @@ -1921,68 +2337,114 @@ dependencies = [ [[package]] name = "near-config-utils" -version = "0.30.1" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbb6045fa1f9503c61665af42d1534b04a854a6b4aeecb33fd53a5acaa4635b7" +dependencies = [ + "anyhow", + "json_comments", + "thiserror 2.0.16", + "tracing", +] + +[[package]] +name = "near-config-utils" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f94d5cbc85fdf0bf4ce0836d22243ab156b8d9491de04128eb2e1a334f3f9aec" +checksum = "4627060004177ea30e122644de51aaf2ea076fd1b6d22f6f3d19e7dfb86af949" dependencies = [ "anyhow", "json_comments", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "near-contract-standards" -version = "5.14.0" +version = "5.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef23d0204b2c12ff54bb04c6cb83fadf8d74ea77acde09263f279b3b9c97a684" +checksum = "deeee26550aaf4b670eab42e56bd1f329a29759d26424db5a97a9277eb27fa3f" dependencies = [ "near-sdk", ] [[package]] name = "near-crypto" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8808d0d9674795fd6f5c78a4d50b80d297cedb79731525a8111c960aa110f9e" +checksum = "7c635fb7ddbd807d92e1a8a3dc57d45e92faa15eaf2a8f0fbc977f6bc8fda6ce" dependencies = [ "blake2", "borsh", "bs58 0.4.0", "curve25519-dalek", - "derive_more", + "derive_more 1.0.0", "ed25519-dalek", "hex", "near-account-id", - "near-config-utils", - "near-schema-checker-lib", - "near-stdx", + "near-config-utils 0.30.3", + "near-schema-checker-lib 0.30.3", + "near-stdx 0.30.3", "primitive-types", "rand", "secp256k1 0.27.0", "serde", "serde_json", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.16", +] + +[[package]] +name = "near-crypto" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40596a621b4cbf7c07189dac59ebf1239f8108ef4755620622db5b86743e0c3a" +dependencies = [ + "blake2", + "borsh", + "bs58 0.4.0", + "curve25519-dalek", + "derive_more 2.0.1", + "ed25519-dalek", + "hex", + "near-account-id", + "near-config-utils 0.31.1", + "near-schema-checker-lib 0.31.1", + "near-stdx 0.31.1", + "primitive-types", + "secp256k1 0.27.0", + "serde", + "serde_json", + "subtle", + "thiserror 2.0.16", ] [[package]] name = "near-fmt" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c0e4d846b9c27b30e5f24e788fb8cc55c046f72e2048e2539dbcb04d9a71c4" +checksum = "32d6b26918e71a60b56b0fe6604198d0b29df4e0b27dc944cad7af3e1ada6976" dependencies = [ - "near-primitives-core", + "near-primitives-core 0.30.3", +] + +[[package]] +name = "near-fmt" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96e9fa3af54e4b13f4f0657e3ae640e63f7f8953a5fbedf836bc47b43f973dde" +dependencies = [ + "near-primitives-core 0.31.1", ] [[package]] name = "near-gas" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180edcc7dc2fac41f93570d0c7b759c1b6d492f6ad093d749d644a40b4310a97" +checksum = "41ca4044222f2f392ab61d27d0aefc5106b1ece4dcd22c5c987e3c75371d2a37" dependencies = [ "borsh", - "schemars", + "schemars 0.8.22", "serde", ] @@ -1996,49 +2458,68 @@ dependencies = [ "lazy_static", "log", "near-chain-configs", - "near-crypto", + "near-crypto 0.30.3", "near-jsonrpc-primitives", - "near-primitives", + "near-primitives 0.30.3", "reqwest", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "near-jsonrpc-primitives" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63ac3e779b1ad979957f05e43c92a79fbe7e1315647ab4d530e2a9a66bc62f5e" +checksum = "963e3051ebca3bb37a4a411b44d5744efdfa0b227dbcad5e03732dd0b9672b2d" dependencies = [ "arbitrary", "near-chain-configs", - "near-crypto", - "near-primitives", - "near-schema-checker-lib", + "near-crypto 0.30.3", + "near-primitives 0.30.3", + "near-schema-checker-lib 0.30.3", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", ] [[package]] name = "near-parameters" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dbb139bec6b7088d6afab0a3662725e5ee82d0ad725b67c1d45447c3d45fe55" +checksum = "3e364f850512d7f1ee1eb398e1da85fd3ef95eb3cbce8db2d505eed054bbe848" dependencies = [ "borsh", "enum-map", "near-account-id", - "near-primitives-core", - "near-schema-checker-lib", + "near-primitives-core 0.30.3", + "near-schema-checker-lib 0.30.3", "num-rational", "serde", "serde_repr", "serde_yaml", "strum 0.24.1", - "thiserror 2.0.12", + "thiserror 2.0.16", +] + +[[package]] +name = "near-parameters" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a261341fca84a5322710f6f4eae45d809fce24a19b9913333e436da5d4de3574" +dependencies = [ + "borsh", + "enum-map", + "near-account-id", + "near-primitives-core 0.31.1", + "near-schema-checker-lib 0.31.1", + "num-rational", + "serde", + "serde_repr", + "serde_yaml", + "strum 0.24.1", + "thiserror 2.0.16", ] [[package]] @@ -2066,9 +2547,9 @@ dependencies = [ [[package]] name = "near-primitives" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f06d70f10eb505600ec6627f5fd64a1d1700af71098282e339c993e6319151d" +checksum = "1ca734a17b2a973e4753658dd4370f6b35e106ff6c0f9620cbe5283988597833" dependencies = [ "arbitrary", "base64 0.21.7", @@ -2076,20 +2557,20 @@ dependencies = [ "borsh", "bytes", "bytesize", - "cfg-if 1.0.1", + "cfg-if 1.0.3", "chrono", - "derive_more", + "derive_more 1.0.0", "easy-ext", "enum-map", "hex", "itertools", - "near-crypto", - "near-fmt", - "near-parameters", - "near-primitives-core", - "near-schema-checker-lib", - "near-stdx", - "near-time", + "near-crypto 0.30.3", + "near-fmt 0.30.3", + "near-parameters 0.30.3", + "near-primitives-core 0.30.3", + "near-schema-checker-lib 0.30.3", + "near-stdx 0.30.3", + "near-time 0.30.3", "num-rational", "ordered-float", "primitive-types", @@ -2101,30 +2582,90 @@ dependencies = [ "sha3", "smart-default", "strum 0.24.1", - "thiserror 2.0.12", + "thiserror 2.0.16", + "tracing", + "zstd 0.13.3", +] + +[[package]] +name = "near-primitives" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271dbac58be374c7dddbc511ade1f4eeeea7ae972ef368b358e3298facb2eec6" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "bitvec", + "borsh", + "bytes", + "bytesize", + "chrono", + "derive_more 2.0.1", + "easy-ext", + "enum-map", + "hex", + "itertools", + "near-crypto 0.31.1", + "near-fmt 0.31.1", + "near-parameters 0.31.1", + "near-primitives-core 0.31.1", + "near-schema-checker-lib 0.31.1", + "near-stdx 0.31.1", + "near-time 0.31.1", + "num-rational", + "ordered-float", + "primitive-types", + "serde", + "serde_json", + "serde_with", + "sha3", + "smart-default", + "strum 0.24.1", + "thiserror 2.0.16", "tracing", "zstd 0.13.3", ] [[package]] name = "near-primitives-core" -version = "0.30.1" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953534fb0dff03f2042a12a933e31d86dd79601c2640338307bba724919e1876" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "borsh", + "bs58 0.4.0", + "derive_more 1.0.0", + "enum-map", + "near-account-id", + "near-schema-checker-lib 0.30.3", + "num-rational", + "serde", + "serde_repr", + "sha2 0.10.9", + "thiserror 2.0.16", +] + +[[package]] +name = "near-primitives-core" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "408abb7e360ae1353d5a3cde62b4a2f0abde96c9ff4045f23cabda15c22b6ec9" +checksum = "621c20e3fd77ba5e1d4fd33f6b7383dadcaca3faf60e2a8fc71a6cc7e4463c31" dependencies = [ "arbitrary", "base64 0.21.7", "borsh", "bs58 0.4.0", - "derive_more", + "derive_more 2.0.1", "enum-map", "near-account-id", - "near-schema-checker-lib", + "near-schema-checker-lib 0.31.1", "num-rational", "serde", "serde_repr", - "sha2", - "thiserror 2.0.12", + "sha2 0.10.9", + "thiserror 2.0.16", ] [[package]] @@ -2142,41 +2683,63 @@ dependencies = [ [[package]] name = "near-schema-checker-core" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1fbfbc3c53b00aa893f8cb64abc5c12601edb8cecb878baf6f8f00e3184d3d" +checksum = "ecf3abb048646186aef4796d5bcda22c2c9246beaabaf3ea568c0cce2229257b" + +[[package]] +name = "near-schema-checker-core" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3515d1bd55d87bfb392f6889313dcfbcaaec4229bb4a4abb5640ab8dc5eda70c" [[package]] name = "near-schema-checker-lib" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f424ce08c8d715f529a8f8dcd246f574042f0ed0b393d0aaefdf3cc693d5a9f" +checksum = "1416c5b236ea30152895df73213eca04c997c7bd60d83a1c18141f8705759865" dependencies = [ - "near-schema-checker-core", - "near-schema-checker-macro", + "near-schema-checker-core 0.30.3", + "near-schema-checker-macro 0.30.3", ] +[[package]] +name = "near-schema-checker-lib" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93739f2bcb64be8bd04342beae187317836b9c2826b6cfba429c2001e4db73a8" +dependencies = [ + "near-schema-checker-core 0.31.1", + "near-schema-checker-macro 0.31.1", +] + +[[package]] +name = "near-schema-checker-macro" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a60d29f7f64c2fc6d2fd25139863a6887b4d7fbcc79db8caad9c72eca67f05e9" + [[package]] name = "near-schema-checker-macro" -version = "0.30.1" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d191936f902770069255b16c95d1fb8edd6f3c3817c9228933a20ec8466737a3" +checksum = "2dc45bb3760350de7f957c11827e1e20c5a4aff8d95d19fd2c0c492d795bfb02" [[package]] name = "near-sdk" -version = "5.14.0" +version = "5.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1477ca4eb6d4a70a0e5740c5d34c268eedacce936ca557d3450ed5bd873fd06" +checksum = "29b8a870f6bfe533f2f5b35f6f1fb1a818105de80b2de6c0d78000f78729e4cc" dependencies = [ "base64 0.22.1", "borsh", "bs58 0.5.1", "near-account-id", - "near-crypto", + "near-crypto 0.31.1", "near-gas", - "near-parameters", - "near-primitives", - "near-primitives-core", + "near-parameters 0.31.1", + "near-primitives 0.31.1", + "near-primitives-core 0.31.1", "near-sdk-macros", "near-sys", "near-token", @@ -2189,9 +2752,9 @@ dependencies = [ [[package]] name = "near-sdk-macros" -version = "5.14.0" +version = "5.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29fe6d31a827e421d0d3f5c38fe3cc73f9f2a2aae41d2601d37c22d7ec1aae" +checksum = "342e608e586394911a799adb2536e3ac93c45e83cc472acdc882f603c18b6046" dependencies = [ "Inflector", "darling 0.20.11", @@ -2201,31 +2764,48 @@ dependencies = [ "serde_json", "strum 0.26.3", "strum_macros 0.26.4", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] name = "near-stdx" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f292226fd8f4c7c21cf6b1da1c17e9b484ebc1b9aeb4251d69336d28b7917ace" +checksum = "13869f432b1b457c36c9332471d868da6b0ee971e2da0b94deb376aba8d27e6b" + +[[package]] +name = "near-stdx" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3c38fc0843ef7c5bca717cc4daaf2af05441c3cb9cf259824e226387b18740" [[package]] name = "near-sys" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d8e0ba9994e4d54cb4b301cd5fa9f2defcb69851148103512b9640a7e91572" +checksum = "e64e114297f37c94aa20df6a6f92822a1b41da76b4961298caf08ba80b7779b2" [[package]] name = "near-time" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806ae1785ed79e99e9183646e5fe18ecee504385350a45c600ee189d904808a9" +checksum = "d1b143d7249e64ebfd1f6da7b1c15f4a9d0ee5d9be3556771a5b4b665a2c22cb" dependencies = [ "serde", "time", ] +[[package]] +name = "near-time" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697acb90b55637c075ce47be4e7834654c34157b88036b199d7189ced6d0f89c" +dependencies = [ + "parking_lot", + "serde", + "time", +] + [[package]] name = "near-token" version = "0.3.0" @@ -2238,9 +2818,9 @@ dependencies = [ [[package]] name = "near-vm-runner" -version = "0.30.1" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e44b5b6582676805ab61bc60e65e56eec1460c58a7c951dd662b7a5c677554" +checksum = "5ddefc8e4460b2c080b34f800b0bd06fd971b37d64ec7279552d792468228924" dependencies = [ "blst", "borsh", @@ -2248,23 +2828,23 @@ dependencies = [ "ed25519-dalek", "enum-map", "lru", - "near-crypto", - "near-parameters", - "near-primitives-core", - "near-schema-checker-lib", - "near-stdx", + "near-crypto 0.31.1", + "near-parameters 0.31.1", + "near-primitives-core 0.31.1", + "near-schema-checker-lib 0.31.1", + "near-stdx 0.31.1", "num-rational", + "parking_lot", "rand", "rayon", - "ripemd", + "ripemd 0.1.3", "rustix", "serde", - "serde_repr", - "sha2", + "sha2 0.10.9", "sha3", "strum 0.24.1", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", "zeropool-bn", ] @@ -2285,18 +2865,18 @@ dependencies = [ "libc", "near-abi-client", "near-account-id", - "near-crypto", + "near-crypto 0.30.3", "near-gas", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives", + "near-primitives 0.30.3", "near-sandbox-utils", "near-token", "rand", "reqwest", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "tempfile", "thiserror 1.0.69", "tokio", @@ -2332,6 +2912,12 @@ dependencies = [ "uriparse", ] +[[package]] +name = "nonempty" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "549e471b99ccaf2f89101bec68f4d244457d5a95a9c3d0672e9564124397741d" + [[package]] name = "num-bigint" version = "0.3.3" @@ -2343,6 +2929,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-conv" version = "0.1.0" @@ -2365,7 +2961,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ "autocfg", - "num-bigint", + "num-bigint 0.3.3", "num-integer", "num-traits", "serde", @@ -2405,14 +3001,20 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + [[package]] name = "openssl" version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.1", - "cfg-if 1.0.1", + "bitflags 2.9.4", + "cfg-if 1.0.3", "foreign-types", "libc", "once_cell", @@ -2428,7 +3030,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -2449,6 +3051,41 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "orchard" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1ef66fcf99348242a20d582d7434da381a867df8dc155b3a980eca767c56137" +dependencies = [ + "aes", + "bitvec", + "blake2b_simd", + "core2", + "ff", + "fpe", + "getset", + "group", + "halo2_gadgets", + "halo2_poseidon", + "halo2_proofs", + "hex", + "incrementalmerkletree", + "lazy_static", + "memuse", + "nonempty", + "pasta_curves", + "rand", + "reddsa", + "serde", + "sinsemilla", + "subtle", + "tracing", + "visibility", + "zcash_note_encryption", + "zcash_spec", + "zip32", +] + [[package]] name = "ordered-float" version = "4.6.0" @@ -2461,6 +3098,15 @@ dependencies = [ "serde", ] +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + [[package]] name = "parking_lot" version = "0.12.4" @@ -2477,11 +3123,11 @@ version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -2495,6 +3141,21 @@ dependencies = [ "subtle", ] +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + [[package]] name = "pathdiff" version = "0.2.3" @@ -2510,17 +3171,17 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest", - "hmac", + "digest 0.10.7", + "hmac 0.12.1", "password-hash", - "sha2", + "sha2 0.10.9", ] [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project" @@ -2539,7 +3200,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -2570,11 +3231,22 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -2606,12 +3278,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.33" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dee91521343f4c5c6a63edd65e54f31f5c92fe8978c40a4282f8372194c6a7d" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -2637,16 +3309,38 @@ dependencies = [ name = "proc-macro-crate" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ - "toml_edit", + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -2662,9 +3356,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radium" @@ -2706,9 +3400,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -2716,21 +3410,51 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", ] +[[package]] +name = "reddsa" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78a5191930e84973293aa5f532b513404460cd2216c1cfb76d08748c15b40b02" +dependencies = [ + "blake2b_simd", + "byteorder", + "group", + "hex", + "jubjub", + "pasta_curves", + "rand_core", + "serde", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "redjubjub" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b0ac1bc6bb3696d2c6f52cff8fba57238b81da8c0214ee6cd146eb8fde364e" +dependencies = [ + "rand_core", + "reddsa", + "thiserror 1.0.69", + "zeroize", +] + [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", ] [[package]] @@ -2744,11 +3468,31 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", @@ -2758,9 +3502,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", @@ -2769,15 +3513,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "reqwest" -version = "0.12.20" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", @@ -2819,7 +3563,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac", + "hmac 0.12.1", "subtle", ] @@ -2830,7 +3574,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", - "cfg-if 1.0.1", + "cfg-if 1.0.3", "getrandom 0.2.16", "libc", "untrusted", @@ -2843,14 +3587,23 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest", + "digest 0.10.7", +] + +[[package]] +name = "ripemd" +version = "0.2.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48cf93482ea998ad1302c42739bc73ab3adc574890c373ec89710e219357579" +dependencies = [ + "digest 0.11.0-pre.9", ] [[package]] name = "rustc-demangle" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hex" @@ -2869,22 +3622,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "rustls" -version = "0.23.27" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "log", "once_cell", @@ -2906,9 +3659,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "ring", "rustls-pki-types", @@ -2917,9 +3670,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -2927,11 +3680,45 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "sapling-crypto" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d3c081c83f1dc87403d9d71a06f52301c0aa9ea4c17da2a3435bbf493ffba4" +dependencies = [ + "aes", + "bellman", + "bitvec", + "blake2b_simd", + "blake2s_simd", + "bls12_381", + "core2", + "document-features", + "ff", + "fpe", + "getset", + "group", + "hex", + "incrementalmerkletree", + "jubjub", + "lazy_static", + "memuse", + "rand", + "rand_core", + "redjubjub", + "subtle", + "tracing", + "zcash_note_encryption", + "zcash_spec", + "zip32", +] + [[package]] name = "satoshi-bridge" -version = "0.5.1" +version = "0.6.0" dependencies = [ "bitcoin", + "core2", "crypto-shared", "ed25519-dalek", "getrandom 0.2.16", @@ -2942,6 +3729,10 @@ dependencies = [ "near-sdk", "near-workspaces", "tokio", + "zcash_address", + "zcash_primitives", + "zcash_protocol", + "zcash_transparent", ] [[package]] @@ -2965,6 +3756,30 @@ dependencies = [ "serde_json", ] +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + [[package]] name = "schemars_derive" version = "0.8.22" @@ -2974,7 +3789,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3005,7 +3820,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ "rand", - "secp256k1-sys 0.8.1", + "secp256k1-sys 0.8.2", ] [[package]] @@ -3021,9 +3836,9 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" dependencies = [ "cc", ] @@ -3043,7 +3858,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation", "core-foundation-sys", "libc", @@ -3086,7 +3901,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3097,14 +3912,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", @@ -3120,7 +3935,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3137,15 +3952,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.9.0", + "indexmap 2.11.0", + "schemars 0.9.0", + "schemars 1.0.4", "serde", "serde_derive", "serde_json", @@ -3155,14 +3972,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3171,7 +3988,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.0", "itoa", "ryu", "serde", @@ -3194,9 +4011,9 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "cpufeatures", - "digest", + "digest 0.10.7", ] [[package]] @@ -3205,9 +4022,20 @@ version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" +dependencies = [ + "cfg-if 1.0.3", "cpufeatures", - "digest", + "digest 0.11.0-pre.9", ] [[package]] @@ -3216,7 +4044,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest", + "digest 0.10.7", "keccak", ] @@ -3228,9 +4056,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -3241,10 +4069,21 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "digest", + "digest 0.10.7", "rand_core", ] +[[package]] +name = "sinsemilla" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d268ae0ea06faafe1662e9967cd4f9022014f5eeb798e0c302c876df8b7af9c" +dependencies = [ + "group", + "pasta_curves", + "subtle", +] + [[package]] name = "siphasher" version = "0.3.11" @@ -3253,12 +4092,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" @@ -3274,17 +4110,17 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] name = "socket2" -version = "0.5.10" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3365,7 +4201,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3387,9 +4223,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.102" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -3413,7 +4249,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3422,7 +4258,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation", "system-configuration-sys", ] @@ -3456,15 +4292,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3478,11 +4314,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.16", ] [[package]] @@ -3493,18 +4329,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3518,12 +4354,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde", @@ -3533,15 +4368,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -3559,9 +4394,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -3574,20 +4409,22 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3598,7 +4435,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3634,9 +4471,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -3666,7 +4503,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.0", "toml_datetime", "winnow", ] @@ -3692,7 +4529,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "bytes", "futures-util", "http", @@ -3729,13 +4566,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -3777,6 +4614,16 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.6", + "subtle", +] + [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -3817,9 +4664,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -3845,6 +4692,17 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "visibility" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "want" version = "0.3.1" @@ -3862,46 +4720,47 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ - "cfg-if 1.0.1", + "cfg-if 1.0.3", "js-sys", "once_cell", "wasm-bindgen", @@ -3910,9 +4769,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3920,31 +4779,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -3956,14 +4815,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.0", + "webpki-roots 1.0.2", ] [[package]] name = "webpki-roots" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -4023,7 +4882,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -4034,20 +4893,20 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-registry" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bab093bdd303a1240bb99b8aba8ea8a69ee19d34c9e2ef9594e708a4878820" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ "windows-link", "windows-result", @@ -4078,7 +4937,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -4087,7 +4946,16 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", ] [[package]] @@ -4096,14 +4964,31 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -4112,65 +4997,110 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.1", -] +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "writeable" @@ -4189,9 +5119,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", "rustix", @@ -4217,28 +5147,151 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", "synstructure", ] +[[package]] +name = "zcash_address" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c984ae01367a4a3d20e9d34ae4e4cc0dca004b22d9a10a51eec43f43934612e" +dependencies = [ + "bech32", + "bs58 0.5.1", + "core2", + "f4jumble", + "zcash_encoding", + "zcash_protocol", +] + +[[package]] +name = "zcash_encoding" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bca38087e6524e5f51a5b0fb3fc18f36d7b84bf67b2056f494ca0c281590953d" +dependencies = [ + "core2", + "nonempty", +] + +[[package]] +name = "zcash_note_encryption" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77efec759c3798b6e4d829fcc762070d9b229b0f13338c40bf993b7b609c2272" +dependencies = [ + "chacha20", + "chacha20poly1305", + "cipher", + "rand_core", + "subtle", +] + +[[package]] +name = "zcash_primitives" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a0c26140f2e6b760dcf052d22bd01f1a8773cdefb650ff5829430798a21b85b" +dependencies = [ + "bip32", + "blake2b_simd", + "block-buffer 0.11.0-rc.3", + "bs58 0.5.1", + "core2", + "crypto-common 0.2.0-rc.1", + "equihash", + "ff", + "fpe", + "getset", + "group", + "hex", + "incrementalmerkletree", + "jubjub", + "memuse", + "nonempty", + "orchard", + "rand", + "rand_core", + "redjubjub", + "ripemd 0.1.3", + "sapling-crypto", + "secp256k1 0.29.1", + "sha2 0.10.9", + "subtle", + "tracing", + "zcash_address", + "zcash_encoding", + "zcash_note_encryption", + "zcash_protocol", + "zcash_spec", + "zcash_transparent", + "zip32", +] + +[[package]] +name = "zcash_protocol" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cfe9e3fb08e6851efe3d0ced457e4cb2c305daa928f64cb0d70c040f8f8336" +dependencies = [ + "core2", + "document-features", + "hex", + "memuse", +] + +[[package]] +name = "zcash_spec" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded3f58b93486aa79b85acba1001f5298f27a46489859934954d262533ee2915" +dependencies = [ + "blake2b_simd", +] + +[[package]] +name = "zcash_transparent" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a7c162a8aa6f708e842503ed5157032465dadfb1d7f63adf9db2d45213a0b11" +dependencies = [ + "bip32", + "blake2b_simd", + "bs58 0.5.1", + "core2", + "document-features", + "getset", + "hex", + "ripemd 0.1.3", + "secp256k1 0.29.1", + "sha2 0.10.9", + "subtle", + "zcash_address", + "zcash_encoding", + "zcash_protocol", + "zcash_spec", + "zip32", +] + [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -4258,7 +5311,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", "synstructure", ] @@ -4279,7 +5332,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -4308,9 +5361,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -4325,7 +5378,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.106", ] [[package]] @@ -4337,17 +5390,29 @@ dependencies = [ "aes", "byteorder", "bzip2", - "constant_time_eq", + "constant_time_eq 0.1.5", "crc32fast", "crossbeam-utils", "flate2", - "hmac", + "hmac 0.12.1", "pbkdf2", "sha1", "time", "zstd 0.11.2+zstd.1.5.2", ] +[[package]] +name = "zip32" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13ff9ea444cdbce820211f91e6aa3d3a56bde7202d3c0961b7c38f793abf5637" +dependencies = [ + "blake2b_simd", + "memuse", + "subtle", + "zcash_spec", +] + [[package]] name = "zstd" version = "0.11.2+zstd.1.5.2" @@ -4387,9 +5452,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/Makefile b/Makefile index bf88113f..00b22693 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ +.PHONY: zcash-bridge + RFLAGS="-C link-arg=-s" -build: lint satoshi-bridge nbtc mock-chain-signatures mock-btc-light-client mock-dapp +build: lint satoshi-bridge zcash-bridge nbtc mock-chain-signatures mock-btc-light-client mock-dapp lint: @cargo fmt --all @@ -9,6 +11,9 @@ lint: satoshi-bridge: contracts/satoshi-bridge $(call local_build_wasm,satoshi-bridge,satoshi_bridge) +zcash-bridge: contracts/satoshi-bridge + $(call local_build_zcash_wasm) + nbtc: contracts/nbtc $(call local_build_wasm,nbtc,nbtc) @@ -28,6 +33,7 @@ count: release: $(call build_release_wasm,satoshi-bridge,satoshi_bridge) $(call build_release_wasm,nbtc,nbtc) + $(call build_release_zcash_wasm) clean: cargo clean @@ -51,4 +57,18 @@ define build_release_wasm @rustup target add wasm32-unknown-unknown @cargo near build reproducible-wasm --manifest-path ./contracts/${PACKAGE_NAME}/Cargo.toml @cp target/near/${WASM_NAME}/$(WASM_NAME).wasm ./res/$(WASM_NAME)_release.wasm -endef \ No newline at end of file +endef + +define build_release_zcash_wasm + @mkdir -p res + @rustup target add wasm32-unknown-unknown + @cargo near build reproducible-wasm --manifest-path ./contracts/satoshi-bridge/Cargo.toml --variant zcash + @cp target/near/satoshi_bridge/satoshi_bridge.wasm ./res/zcash_connector_release.wasm +endef + +define local_build_zcash_wasm + @mkdir -p res + @rustup target add wasm32-unknown-unknown + @cargo near build non-reproducible-wasm --manifest-path ./contracts/satoshi-bridge/Cargo.toml --locked --no-abi --no-default-features --features zcash + @cp target/near/satoshi_bridge/satoshi_bridge.wasm ./res/zcash.wasm +endef diff --git a/contracts/nbtc/Cargo.toml b/contracts/nbtc/Cargo.toml index 8f7de575..623515a8 100644 --- a/contracts/nbtc/Cargo.toml +++ b/contracts/nbtc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nbtc" -version = "0.1.0" +version = "0.2.0" edition.workspace = true publish.workspace = true repository.workspace = true diff --git a/contracts/nbtc/src/lib.rs b/contracts/nbtc/src/lib.rs index 1ac578cb..4aaf38e3 100644 --- a/contracts/nbtc/src/lib.rs +++ b/contracts/nbtc/src/lib.rs @@ -26,8 +26,6 @@ pub struct Contract { metadata: LazyOption, } -const DATA_IMAGE_SVG_NEAR_ICON: &str = "data:image/svg+xml,%3Csvg%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0_2351_779)%22%3E%3Cpath%20d%3D%22M16%2032C24.8366%2032%2032%2024.8366%2032%2016C32%207.16344%2024.8366%200%2016%200C7.16344%200%200%207.16344%200%2016C0%2024.8366%207.16344%2032%2016%2032Z%22%20fill%3D%22%2300E99F%22%2F%3E%3Cpath%20d%3D%22M16.0006%2028.2858C22.7858%2028.2858%2028.2863%2022.7853%2028.2863%2016.0001C28.2863%209.21486%2022.7858%203.71436%2016.0006%203.71436C9.21535%203.71436%203.71484%209.21486%203.71484%2016.0001C3.71484%2022.7853%209.21535%2028.2858%2016.0006%2028.2858Z%22%20stroke%3D%22black%22%2F%3E%3Cpath%20d%3D%22M27.1412%2016C27.1412%2022.1541%2022.1524%2027.1429%2015.9983%2027.1429C9.84427%2027.1429%204.85547%2022.1541%204.85547%2016C4.85547%209.84598%209.84427%204.85718%2015.9983%204.85718C22.1524%204.85718%2027.1412%209.84598%2027.1412%2016Z%22%20stroke%3D%22black%22%20stroke-width%3D%220.5%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16.2167%2011.1743C15.9198%2011.1643%2015.6095%2011.1622%2015.2868%2011.1668V9.32056H13.8907V11.2217C13.1583%2011.2659%2012.3792%2011.3332%2011.5625%2011.4149V12.811H12.9586V18.8607H11.7952V20.4895H13.8893V22.5836H15.2854V20.4895H16.2161V22.5836H17.3795V20.4895C18.4654%2020.4119%2020.6836%2019.7915%2020.8698%2017.93C21.0559%2016.0686%2019.7064%2015.6032%2019.0083%2015.6032C19.5512%2015.3705%2020.544%2014.5328%2020.1717%2013.0436C19.9215%2012.043%2019.0072%2011.5204%2017.6128%2011.2984V9.32164H16.2167V11.1743ZM18.0737%2013.9723C18.0737%2012.8554%2016.2122%2012.7313%2015.2815%2012.8088V15.1356C16.2122%2015.2132%2018.0737%2015.0891%2018.0737%2013.9723ZM15.2826%2016.5322V18.8591C16.2133%2018.9366%2018.3075%2018.859%2018.3075%2017.6956C18.3075%2016.2994%2016.2133%2016.4547%2015.2826%2016.5322Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0_2351_779%22%3E%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"; - const GAS_FOR_RESOLVE_TRANSFER: Gas = Gas::from_tgas(5); const GAS_FOR_FT_TRANSFER_CALL: Gas = Gas::from_tgas(30); @@ -53,7 +51,14 @@ pub struct PostAction { #[near] impl Contract { #[init] - pub fn new(controller: AccountId, bridge_id: AccountId) -> Self { + pub fn new( + controller: AccountId, + bridge_id: AccountId, + name: String, + symbol: String, + icon: Option, + decimals: u8, + ) -> Self { require!(!env::state_exists(), "Already initialized"); Self { controller, @@ -63,12 +68,12 @@ impl Contract { StorageKey::Metadata, Some(&FungibleTokenMetadata { spec: FT_METADATA_SPEC.to_string(), - name: "Near WTC".to_string(), - symbol: "NBTC".to_string(), - icon: Some(DATA_IMAGE_SVG_NEAR_ICON.to_string()), + name, + symbol, + icon, reference: None, reference_hash: None, - decimals: 8, + decimals, }), ), } diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 128301f2..cc7f540c 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.5.1" +version = "0.6.0" edition.workspace = true publish.workspace = true repository.workspace = true @@ -21,6 +21,19 @@ container_build_command = [ "--no-abi", ] +[package.metadata.near.reproducible_build.variant.zcash] +container_build_command = [ + "cargo", + "near", + "build", + "non-reproducible-wasm", + "--locked", + "--no-abi", + "--no-default-features", + "--features", + "zcash" +] + [dependencies] near-sdk.workspace = true near-contract-standards.workspace = true @@ -28,8 +41,13 @@ bitcoin.workspace = true hex.workspace = true near-plugins.workspace = true k256 = "0.13.1" -ed25519-dalek="2.1.0" -crypto-shared = { git = "https://github.com/near/mpc_old", rev = "0afee9004a1b1c3386940e60c28cff7cf1b5978c"} +ed25519-dalek = "2.1.0" +crypto-shared = { git = "https://github.com/near/mpc_old", rev = "0afee9004a1b1c3386940e60c28cff7cf1b5978c" } +zcash_primitives = { version = "0.24.0", default-features = false, features = ["circuits", "transparent-inputs"], optional = true } +zcash_transparent = { version = "0.4.0", features = ["transparent-inputs"], optional = true } +zcash_protocol = { version = "0.6.1" } +core2 = { version = "0.3", optional = true } +zcash_address = { version = "0.9.0" } [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2.12", features = ["custom"] } @@ -37,3 +55,7 @@ getrandom = { version = "0.2.12", features = ["custom"] } [dev-dependencies] near-workspaces = { version = "0.20", features = ["unstable"] } tokio = { version = "1.12.0", features = ["full"] } + +[features] +default = [] +zcash = ["zcash_primitives", "zcash_transparent", "core2"] diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index 683807a3..f96fa0a5 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -1,3 +1,4 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; use near_plugins::{access_control_any, pause}; @@ -28,17 +29,20 @@ impl Contract { merkle_proof: Vec, ) -> Promise { let path = get_deposit_path(&deposit_msg); - let transaction = bytes_to_btc_transaction(&tx_bytes); - let deposit_amount = transaction.output[vout].value.to_sat() as u128; + let transaction = WrappedTransaction::decode(&tx_bytes, &self.internal_config().chain) + .expect("Deserialization tx_bytes failed"); + let deposit_amount = transaction.output()[vout].value.to_sat() as u128; require!(deposit_amount > 0, "Invalid deposit_amount"); require!( - transaction.lock_time == LockTime::ZERO, + transaction.lock_time() == LockTime::ZERO, "Tx with a non-zero lock_time are not supported." ); - let deposit_address = self.generate_btc_p2wpkh_address(&path); - let deposit_address_script_pubkey = deposit_address.script_pubkey(); + let deposit_address = self.generate_utxo_chain_address(&path); + let deposit_address_script_pubkey = deposit_address + .script_pubkey() + .expect("Invalid deposit address"); require!( - deposit_address_script_pubkey == transaction.output[vout].script_pubkey, + deposit_address_script_pubkey == transaction.output()[vout].script_pubkey, "Invalid deposit tx_bytes" ); @@ -46,7 +50,7 @@ impl Contract { path, tx_bytes, vout, - balance: transaction.output[vout].value.to_sat(), + balance: transaction.output()[vout].value.to_sat(), }; let tx_id = transaction.compute_txid().to_string(); let utxo_storage_key = generate_utxo_storage_key(tx_id.clone(), vout as u32); @@ -120,15 +124,8 @@ impl Contract { .is_none(), "Previous btc tx has not been signed" ); - let btc_pending_id = - self.internal_withdraw_rbf(&account_id, original_btc_pending_verify_id, output); - self.internal_unwrap_mut_account(&account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); - Event::GenerateBtcPendingInfo { - account_id: &account_id, - btc_pending_id: &btc_pending_id, - } - .emit(); + + self.withdraw_rbf_chain_specific(account_id, original_btc_pending_verify_id, output); } /// If the user's Withdraw is not verified within a certain time, the protocol can actively cancel the Withdraw through RBF, with the gas fee borne by the user. @@ -152,14 +149,12 @@ impl Contract { .is_none(), "Assisted user previous btc tx has not been signed" ); - let btc_pending_id = self.internal_cancel_withdraw(original_btc_pending_verify_id, output); - self.internal_unwrap_mut_account(&user_account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); - Event::GenerateBtcPendingInfo { - account_id: &user_account_id, - btc_pending_id: &btc_pending_id, - } - .emit(); + + self.cancel_withdraw_chain_specific( + user_account_id, + original_btc_pending_verify_id, + output, + ); } /// Verify that the active utxo management has been successful, and then burn the corresponding amount of tokens. @@ -215,60 +210,7 @@ impl Contract { pub fn active_utxo_management(&mut self, input: Vec, output: Vec) { assert_one_yocto(); let account_id = env::predecessor_account_id(); - let account = self.internal_unwrap_account(&account_id); - require!( - account.btc_pending_sign_id.is_none(), - "Previous btc tx has not been signed" - ); - let (psbt, utxo_storage_keys, vutxos) = self.generate_psbt_and_vutxos(input, output); - let (actual_received_amount, gas_fee) = - self.check_active_management_psbt_valid(&psbt, &vutxos); - require!( - gas_fee <= self.data().cur_available_protocol_fee, - "Insufficient protocol_fee" - ); - self.data_mut().cur_available_protocol_fee -= gas_fee; - self.data_mut().cur_reserved_protocol_fee += gas_fee; - - let need_signature_num = psbt.unsigned_tx.input.len(); - let psbt_hex = psbt.serialize_hex(); - let btc_pending_id = psbt.extract_tx().unwrap().compute_txid().to_string(); - let btc_pending_info = BTCPendingInfo { - account_id: account_id.clone(), - btc_pending_id: btc_pending_id.clone(), - transfer_amount: 0, - actual_received_amount, - withdraw_fee: 0, - gas_fee, - burn_amount: gas_fee, - psbt_hex, - vutxos, - signatures: vec![None; need_signature_num], - tx_bytes_with_sign: None, - create_time_sec: nano_to_sec(env::block_timestamp()), - last_sign_time_sec: 0, - state: PendingInfoState::ActiveUtxoManagementOriginal(OriginalState { - stage: PendingInfoStage::PendingSign, - max_gas_fee: gas_fee, - last_rbf_time_sec: None, - cancel_rbf_reserved: None, - }), - }; - require!( - self.data_mut() - .btc_pending_infos - .insert(btc_pending_id.clone(), btc_pending_info.into()) - .is_none(), - "pending info already exist" - ); - self.internal_unwrap_mut_account(&account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); - Event::UtxoRemoved { utxo_storage_keys }.emit(); - Event::GenerateBtcPendingInfo { - account_id: &account_id, - btc_pending_id: &btc_pending_id, - } - .emit(); + self.active_utxo_management_chain_specific(account_id, input, output); } /// The initiator of active UTXO management accelerates the transaction by increasing the gas fee. @@ -293,18 +235,11 @@ impl Contract { .is_none(), "Previous btc tx has not been signed" ); - let btc_pending_id = self.internal_active_utxo_management_rbf( - &account_id, + self.active_utxo_management_rbf_chain_specific( + account_id, original_btc_pending_verify_id, output, ); - self.internal_unwrap_mut_account(&account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); - Event::GenerateBtcPendingInfo { - account_id: &account_id, - btc_pending_id: &btc_pending_id, - } - .emit(); } /// Active UTXO management transactions that have not been verified for a long time are allowed to be canceled through RBF. @@ -332,15 +267,11 @@ impl Contract { .is_none(), "Assisted user previous btc tx has not been signed" ); - let btc_pending_id = - self.internal_cancel_active_utxo_management(original_btc_pending_verify_id, output); - self.internal_unwrap_mut_account(&user_account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); - Event::GenerateBtcPendingInfo { - account_id: &user_account_id, - btc_pending_id: &btc_pending_id, - } - .emit(); + self.cancel_active_utxo_management_chain_specific( + user_account_id, + original_btc_pending_verify_id, + output, + ); } /// Since there can be many RBFs, removing all RBF pending info at once after verifying the transaction on-chain might not have enough gas. @@ -377,7 +308,7 @@ impl Contract { pub fn get_user_deposit_address(&self, deposit_msg: DepositMsg) -> String { let path = get_deposit_path(&deposit_msg); - let deposit_address = self.generate_btc_p2wpkh_address(&path).to_string(); + let deposit_address = self.generate_utxo_chain_address(&path).to_string(); Event::LogDepositAddress { deposit_msg, path, @@ -392,3 +323,67 @@ impl Contract { config.change_address.clone() } } + +impl Contract { + pub fn create_active_utxo_management_pending_info( + &mut self, + account_id: AccountId, + psbt: &mut PsbtWrapper, + ) { + let account = self.internal_unwrap_account(&account_id); + require!( + account.btc_pending_sign_id.is_none(), + "Previous btc tx has not been signed" + ); + + let (utxo_storage_keys, vutxos) = self.generate_vutxos(psbt); + let (actual_received_amount, gas_fee) = + self.check_active_management_psbt_valid(psbt, &vutxos); + require!( + gas_fee <= self.data().cur_available_protocol_fee, + "Insufficient protocol_fee" + ); + self.data_mut().cur_available_protocol_fee -= gas_fee; + self.data_mut().cur_reserved_protocol_fee += gas_fee; + + let need_signature_num = psbt.get_input_num(); + let psbt_hex = psbt.serialize(); + let btc_pending_id = psbt.get_pending_id(); + let btc_pending_info = BTCPendingInfo { + account_id: account_id.clone(), + btc_pending_id: btc_pending_id.clone(), + transfer_amount: 0, + actual_received_amount, + withdraw_fee: 0, + gas_fee, + burn_amount: gas_fee, + psbt_hex, + vutxos, + signatures: vec![None; need_signature_num], + tx_bytes_with_sign: None, + create_time_sec: nano_to_sec(env::block_timestamp()), + last_sign_time_sec: 0, + state: PendingInfoState::ActiveUtxoManagementOriginal(OriginalState { + stage: PendingInfoStage::PendingSign, + max_gas_fee: gas_fee, + last_rbf_time_sec: None, + cancel_rbf_reserved: None, + }), + }; + require!( + self.data_mut() + .btc_pending_infos + .insert(btc_pending_id.clone(), btc_pending_info.into()) + .is_none(), + "pending info already exist" + ); + self.internal_unwrap_mut_account(&account_id) + .btc_pending_sign_id = Some(btc_pending_id.clone()); + Event::UtxoRemoved { utxo_storage_keys }.emit(); + Event::GenerateBtcPendingInfo { + account_id: &account_id, + btc_pending_id: &btc_pending_id, + } + .emit(); + } +} diff --git a/contracts/satoshi-bridge/src/api/token_receiver.rs b/contracts/satoshi-bridge/src/api/token_receiver.rs index 0f52a183..f0a261cf 100644 --- a/contracts/satoshi-bridge/src/api/token_receiver.rs +++ b/contracts/satoshi-bridge/src/api/token_receiver.rs @@ -1,7 +1,10 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; use near_contract_standards::fungible_token::receiver::FungibleTokenReceiver; use near_plugins::pause; +pub const GAS_FOR_FT_ON_TRANSFER_CALL_BACK: Gas = Gas::from_tgas(100); + #[near(serializers = [json])] pub enum TokenReceiverMessage { DepositProtocolFee, @@ -48,73 +51,90 @@ impl FungibleTokenReceiver for Contract { target_btc_address, input, output, - max_gas_fee, - } => { - let (psbt, utxo_storage_keys, vutxos) = - self.generate_psbt_and_vutxos(input, output); - require!( - self.internal_unwrap_or_create_mut_account(&sender_id) - .btc_pending_sign_id - .is_none(), - "Previous btc tx has not been signed" - ); - let target_address_script_pubkey = - string_to_btc_address(&target_btc_address).script_pubkey(); + max_gas_fee + } => self.ft_on_transfer_withdraw_chain_specific( + sender_id, + amount, + target_btc_address, + input, + output, + max_gas_fee + ), + } + } +} + +impl Contract { + pub(crate) fn create_btc_pending_info( + &mut self, + sender_id: AccountId, + amount: u128, + target_btc_address: String, + psbt: &mut PsbtWrapper, + max_gas_fee: Option, + ) { + let (utxo_storage_keys, vutxos) = self.generate_vutxos(psbt); + require!( + self.internal_unwrap_or_create_mut_account(&sender_id) + .btc_pending_sign_id + .is_none(), + "Previous btc tx has not been signed" + ); + let target_address_script_pubkey = self + .internal_config() + .string_to_script_pubkey(&target_btc_address); - let withdraw_change_address_script_pubkey = - self.internal_config().get_change_address().script_pubkey(); - let withdraw_fee = self.internal_config().withdraw_bridge_fee.get_fee(amount); - let (actual_received_amount, gas_fee) = self.check_withdraw_psbt_valid( - &target_address_script_pubkey, - &withdraw_change_address_script_pubkey, - &psbt, - &vutxos, - amount, - withdraw_fee, - max_gas_fee - ); + let withdraw_change_address_script_pubkey = + self.internal_config().get_change_script_pubkey(); + let withdraw_fee = self.internal_config().withdraw_bridge_fee.get_fee(amount); + let (actual_received_amount, gas_fee) = self.check_withdraw_psbt_valid( + &target_address_script_pubkey, + &withdraw_change_address_script_pubkey, + psbt, + &vutxos, + amount, + withdraw_fee, + max_gas_fee + ); - let need_signature_num = psbt.unsigned_tx.input.len(); - let psbt_hex = psbt.serialize_hex(); - let btc_pending_id = psbt.extract_tx().unwrap().compute_txid().to_string(); - let btc_pending_info = BTCPendingInfo { - account_id: sender_id.clone(), - btc_pending_id: btc_pending_id.clone(), - transfer_amount: amount, - actual_received_amount, - withdraw_fee, - gas_fee, - burn_amount: actual_received_amount + gas_fee, - psbt_hex, - vutxos, - signatures: vec![None; need_signature_num], - tx_bytes_with_sign: None, - create_time_sec: nano_to_sec(env::block_timestamp()), - last_sign_time_sec: 0, - state: PendingInfoState::WithdrawOriginal(OriginalState { - stage: PendingInfoStage::PendingSign, - max_gas_fee: gas_fee, - last_rbf_time_sec: None, - cancel_rbf_reserved: None, - }), - }; - require!( - self.data_mut() - .btc_pending_infos - .insert(btc_pending_id.clone(), btc_pending_info.into()) - .is_none(), - "pending info already exist" - ); - self.internal_unwrap_mut_account(&sender_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); - Event::UtxoRemoved { utxo_storage_keys }.emit(); - Event::GenerateBtcPendingInfo { - account_id: &sender_id, - btc_pending_id: &btc_pending_id, - } - .emit(); - PromiseOrValue::Value(U128(0)) - } + let need_signature_num = psbt.get_input_num(); + let psbt_hex = psbt.serialize(); + let btc_pending_id = psbt.get_pending_id(); + let btc_pending_info = BTCPendingInfo { + account_id: sender_id.clone(), + btc_pending_id: btc_pending_id.clone(), + transfer_amount: amount, + actual_received_amount, + withdraw_fee, + gas_fee, + burn_amount: actual_received_amount + gas_fee, + psbt_hex, + vutxos, + signatures: vec![None; need_signature_num], + tx_bytes_with_sign: None, + create_time_sec: nano_to_sec(env::block_timestamp()), + last_sign_time_sec: 0, + state: PendingInfoState::WithdrawOriginal(OriginalState { + stage: PendingInfoStage::PendingSign, + max_gas_fee: gas_fee, + last_rbf_time_sec: None, + cancel_rbf_reserved: None, + }), + }; + require!( + self.data_mut() + .btc_pending_infos + .insert(btc_pending_id.clone(), btc_pending_info.into()) + .is_none(), + "pending info already exist" + ); + self.internal_unwrap_mut_account(&sender_id) + .btc_pending_sign_id = Some(btc_pending_id.clone()); + Event::UtxoRemoved { utxo_storage_keys }.emit(); + Event::GenerateBtcPendingInfo { + account_id: &sender_id, + btc_pending_id: &btc_pending_id, } + .emit(); } } diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs new file mode 100644 index 00000000..55d6f07e --- /dev/null +++ b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs @@ -0,0 +1,94 @@ +use crate::psbt_wrapper::PsbtWrapper; +use crate::{BTCPendingInfo, Contract, Event}; +use bitcoin::{OutPoint, TxOut}; +use near_sdk::json_types::U128; +use near_sdk::{require, AccountId, PromiseOrValue}; + +macro_rules! define_rbf_method { + ($method:ident, $internal_fn:ident) => { + pub(crate) fn $method( + &mut self, + account_id: AccountId, + original_btc_pending_verify_id: String, + output: Vec, + ) { + let original_tx_btc_pending_info = + self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); + + let new_psbt = self.generate_psbt_from_original_psbt_and_new_output( + original_tx_btc_pending_info, + output, + ); + + let btc_pending_id = + self.$internal_fn(&account_id, original_btc_pending_verify_id, new_psbt); + + self.internal_unwrap_mut_account(&account_id) + .btc_pending_sign_id = Some(btc_pending_id.clone()); + + Event::GenerateBtcPendingInfo { + account_id: &account_id, + btc_pending_id: &btc_pending_id, + } + .emit(); + } + }; +} + +impl Contract { + pub(crate) fn check_psbt_chain_specific(&self, _psbt: &PsbtWrapper, _gas_fee: u128) {} + + pub(crate) fn check_withdraw_chain_specific( + original_tx_btc_pending_info: &BTCPendingInfo, + gas_fee: u128, + ) { + // Ensure that the RBF transaction pays more gas than the previous transaction. + let max_gas_fee = original_tx_btc_pending_info.get_max_gas_fee(); + let additional_gas_amount = gas_fee.saturating_sub(max_gas_fee); + require!(additional_gas_amount > 0, "No gas increase."); + } + + pub(crate) fn ft_on_transfer_withdraw_chain_specific( + &mut self, + sender_id: AccountId, + amount: u128, + target_btc_address: String, + input: Vec, + output: Vec, + max_gas_fee: Option, + ) -> PromiseOrValue { + let mut psbt = PsbtWrapper::new(input, output); + self.create_btc_pending_info(sender_id, amount, target_btc_address, &mut psbt, max_gas_fee); + PromiseOrValue::Value(U128(0)) + } + + define_rbf_method!(withdraw_rbf_chain_specific, internal_withdraw_rbf); + define_rbf_method!(cancel_withdraw_chain_specific, internal_cancel_withdraw); + define_rbf_method!( + cancel_active_utxo_management_chain_specific, + internal_cancel_active_utxo_management + ); + define_rbf_method!( + active_utxo_management_rbf_chain_specific, + internal_active_utxo_management_rbf + ); + + pub(crate) fn active_utxo_management_chain_specific( + &mut self, + account_id: AccountId, + input: Vec, + output: Vec, + ) { + let mut psbt = PsbtWrapper::new(input, output); + self.create_active_utxo_management_pending_info(account_id, &mut psbt); + } + + pub(crate) fn generate_psbt_from_original_psbt_and_new_output( + &self, + original_tx_btc_pending_info: &BTCPendingInfo, + output: Vec, + ) -> PsbtWrapper { + let original_psbt = original_tx_btc_pending_info.get_psbt(); + PsbtWrapper::from_original_psbt(original_psbt, output) + } +} diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/mod.rs b/contracts/satoshi-bridge/src/bitcoin_utils/mod.rs new file mode 100644 index 00000000..89ef3534 --- /dev/null +++ b/contracts/satoshi-bridge/src/bitcoin_utils/mod.rs @@ -0,0 +1,3 @@ +pub mod contract_methods; +pub mod psbt_wrapper; +pub mod transaction; diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs new file mode 100644 index 00000000..cea9346c --- /dev/null +++ b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs @@ -0,0 +1,161 @@ +use crate::*; + +use bitcoin::absolute::LockTime; +use bitcoin::consensus::serialize; +use bitcoin::hashes::Hash; +use bitcoin::psbt::Psbt; +use bitcoin::sighash::SighashCache; +use bitcoin::transaction::Version; +use bitcoin::Transaction as BtcTransaction; +use bitcoin::{OutPoint, TxIn, TxOut, Witness}; +use near_sdk::require; + +pub struct PsbtWrapper { + psbt: Psbt, +} +impl PsbtWrapper { + pub fn new(input: Vec, output: Vec) -> Self { + require!(!input.is_empty(), "empty input"); + require!(!output.is_empty(), "empty output"); + + let sequence = bitcoin::Sequence::ENABLE_RBF_NO_LOCKTIME; + + let transaction = BtcTransaction { + version: Version::TWO, + lock_time: LockTime::ZERO, + input: input + .into_iter() + .map(|previous_output| TxIn { + previous_output, + sequence, + ..Default::default() + }) + .collect(), + output, + }; + let psbt = Psbt::from_unsigned_tx(transaction).expect("Failed to generate PSBT"); + + Self { psbt } + } + + pub fn from_original_psbt( + original_psbt: crate::psbt_wrapper::PsbtWrapper, + output: Vec, + ) -> Self { + let sequence = bitcoin::Sequence::MAX; + + let transaction = BtcTransaction { + version: Version::TWO, + lock_time: LockTime::ZERO, + input: original_psbt + .psbt + .unsigned_tx + .input + .into_iter() + .map(|original_psbt_input| TxIn { + previous_output: original_psbt_input.previous_output, + sequence, + ..Default::default() + }) + .collect(), + output, + }; + let mut psbt = Psbt::from_unsigned_tx(transaction).expect("Failed to generate PSBT"); + original_psbt + .psbt + .inputs + .iter() + .enumerate() + .for_each(|(i, v)| { + psbt.inputs[i].witness_utxo.clone_from(&v.witness_utxo); + }); + Self { psbt } + } + + pub fn set_input_utxo(&mut self, input_utxo: Vec) { + input_utxo + .iter() + .enumerate() + .for_each(|(i, v)| self.psbt.inputs[i].witness_utxo = Some(v.clone())); + } + + pub fn get_output(&self) -> &Vec { + &self.psbt.unsigned_tx.output + } + + pub fn get_input_num(&self) -> usize { + self.psbt.unsigned_tx.input.len() + } + + pub fn get_output_num(&self) -> usize { + self.psbt.unsigned_tx.output.len() + } + + pub fn get_utxo_storage_keys(&self) -> Vec { + self.psbt + .unsigned_tx + .input + .clone() + .into_iter() + .map(|out_point| { + generate_utxo_storage_key( + out_point.previous_output.txid.to_string(), + out_point.previous_output.vout, + ) + }) + .collect() + } + pub fn serialize(&self) -> String { + self.psbt.serialize_hex() + } + + pub fn deserialize(psbt_hex: &String) -> Self { + let psbt_bytes = hex::decode(psbt_hex).unwrap(); + Self { + psbt: Psbt::deserialize(&psbt_bytes).expect("ERR_INVALID_PSBT_HEX"), + } + } + + pub fn extract_tx_bytes_with_sign(&self) -> Vec { + serialize(&self.psbt.clone().extract_tx().expect("extract_tx failed")) + } + + pub fn get_pending_id(&self) -> String { + self.psbt + .clone() + .extract_tx() + .unwrap() + .compute_txid() + .to_string() + } + + #[allow(unused_variables)] + pub fn get_hash_to_sign(&self, vin: usize, public_key: &bitcoin::PublicKey) -> [u8; 32] { + let tx = self.psbt.unsigned_tx.clone(); + let mut cache = SighashCache::new(tx); + cache + .p2wpkh_signature_hash( + vin, + &self.psbt.inputs[vin] + .witness_utxo + .as_ref() + .unwrap() + .script_pubkey, + self.psbt.inputs[vin].witness_utxo.as_ref().unwrap().value, + bitcoin::EcdsaSighashType::All, + ) + .unwrap() + .to_raw_hash() + .to_byte_array() + } + + pub fn save_signature( + &mut self, + sign_index: usize, + signature: SignatureResponse, + public_key: bitcoin::secp256k1::PublicKey, + ) { + self.psbt.inputs[sign_index].final_script_witness = + Some(Witness::p2wpkh(&signature.to_btc_signature(), &public_key)); + } +} diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/transaction.rs b/contracts/satoshi-bridge/src/bitcoin_utils/transaction.rs new file mode 100644 index 00000000..15349d2d --- /dev/null +++ b/contracts/satoshi-bridge/src/bitcoin_utils/transaction.rs @@ -0,0 +1,41 @@ +use crate::network; +use bitcoin::consensus::{Decodable, Encodable}; +use bitcoin::{absolute, Transaction as BtcTransaction, TxOut, Txid}; + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct Transaction { + pub inner_tx: BtcTransaction, +} + +impl Transaction { + pub fn compute_txid(&self) -> Txid { + self.inner_tx.compute_txid() + } + + pub fn output(&self) -> Vec { + self.inner_tx.output.clone() + } + + pub fn lock_time(&self) -> absolute::LockTime { + self.inner_tx.lock_time + } + + pub fn encode(&self) -> Result, bitcoin::io::Error> { + let mut buf = Vec::new(); + self.inner_tx.consensus_encode(&mut buf)?; + Ok(buf) + } + + pub fn decode( + data: &[u8], + _chain: &network::Chain, + ) -> Result { + let mut cursor = bitcoin::io::Cursor::new(data); + let tx = BtcTransaction::consensus_decode(&mut cursor)?; + Ok(Self { inner_tx: tx }) + } + + pub fn tx_bytes_with_sign(tx: bitcoin::Transaction) -> Result, bitcoin::io::Error> { + Transaction { inner_tx: tx }.encode() + } +} diff --git a/contracts/satoshi-bridge/src/btc_light_client/mod.rs b/contracts/satoshi-bridge/src/btc_light_client/mod.rs index b74cc6f4..8e743adf 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/mod.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/mod.rs @@ -11,10 +11,15 @@ pub mod deposit; pub mod withdraw; pub const GAS_FOR_VERIFY_TRANSACTION_INCLUSION: Gas = Gas::from_tgas(10); - +pub const GAS_FOR_GET_LAST_BLOCK_HEIGHT: Gas = Gas::from_tgas(3); #[near(serializers = [borsh])] +#[derive(Clone, Debug, PartialEq, Eq)] pub struct H256(pub [u8; 32]); +#[near(serializers = [borsh, json])] +#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +pub struct U256(u128, u128); + impl FromStr for H256 { type Err = hex::FromHexError; @@ -106,6 +111,7 @@ impl Serialize for H256 { #[ext_contract(ext_btc_light_client)] pub trait BtcLightClient { fn verify_transaction_inclusion(&self, #[serializer(borsh)] args: ProofArgs) -> bool; + fn get_last_block_height(&self) -> u32; } impl Contract { @@ -128,4 +134,11 @@ impl Contract { confirmations, )) } + + pub fn get_last_block_height_promise(&self) -> Promise { + let config = self.internal_config(); + ext_btc_light_client::ext(config.btc_light_client_account_id.clone()) + .with_static_gas(GAS_FOR_GET_LAST_BLOCK_HEIGHT) + .get_last_block_height() + } } diff --git a/contracts/satoshi-bridge/src/btc_pending_info.rs b/contracts/satoshi-bridge/src/btc_pending_info.rs index dc1eaa98..c519c032 100644 --- a/contracts/satoshi-bridge/src/btc_pending_info.rs +++ b/contracts/satoshi-bridge/src/btc_pending_info.rs @@ -1,5 +1,6 @@ use std::borrow::{Borrow, BorrowMut}; +use crate::psbt_wrapper::PsbtWrapper; use crate::*; #[near(serializers = [borsh, json])] @@ -275,16 +276,18 @@ impl BTCPendingInfo { self.signatures.iter().all(|v| v.is_some()) } - pub fn get_psbt(&self) -> Psbt { - to_psbt(&self.psbt_hex) + pub fn get_psbt(&self) -> PsbtWrapper { + PsbtWrapper::deserialize(&self.psbt_hex) } - pub fn get_transaction(&self) -> BtcTransaction { - bytes_to_btc_transaction( + pub fn get_transaction(&self, chain: &network::Chain) -> WrappedTransaction { + WrappedTransaction::decode( self.tx_bytes_with_sign .as_ref() .expect("Missing tx_bytes_with_sign"), + chain, ) + .expect("Deserialization tx_bytes failed") } } @@ -397,11 +400,77 @@ pub fn generate_btc_pending_sign_id(payload_preimages: &[Vec]) -> String { hex::encode(hash_bytes) } -pub fn bytes_to_btc_transaction(tx_bytes: &[u8]) -> BtcTransaction { - deserialize(tx_bytes).expect("Deserialization tx_bytes failed") -} +#[cfg(test)] +#[cfg(feature = "zcash")] +mod tests { + use crate::network::{Address, Chain}; + use crate::{get_deposit_path, network, DepositMsg, WrappedTransaction}; + use bitcoin::PublicKey as BtcPublicKey; + use k256::elliptic_curve::sec1::ToEncodedPoint; + use near_sdk::PublicKey; + use std::str::FromStr; + + pub fn generate_public_key(path: &str) -> Vec { + let mpc_pk = crypto_shared::near_public_key_to_affine_point( + PublicKey::from_str("secp256k1:4NfTiv3UsGahebgTaHyD9vF8KYKMBnfd6kh94mK6xv8fGBiJB8TBtFMP5WWXz6B89Ac1fbpzPwAvoyQebemHFwx3").unwrap(), + ); + let epsilon = crypto_shared::derive_epsilon( + &"zcash_connector-20250714-143829.testnet".parse().unwrap(), + path, + ); + let user_pk = crypto_shared::derive_key(mpc_pk, epsilon); + let user_pk_encoded_point = user_pk.to_encoded_point(false); + user_pk_encoded_point.as_bytes().to_vec() + } + + pub fn generate_btc_public_key(path: &str) -> BtcPublicKey { + let public_key_bytes = generate_public_key(path); + let uncompressed_btc_public_key = + BtcPublicKey::from_slice(&public_key_bytes).expect("Invalid public key bytes"); + uncompressed_btc_public_key + .inner + .to_string() + .parse() + .unwrap() + } + + pub fn generate_utxo_chain_address(path: &str) -> Address { + let btc_public_key = generate_btc_public_key(path); + Address::from_pubkey(Chain::ZcashTestnet, btc_public_key).unwrap() + } + + #[test] + #[cfg(feature = "zcash")] + fn test_zcash_tx_bytes() { + let tx_zcash_hex = "050000800a27a7265510e7c80000000085443500000160ae0a00000000001976a914f97c1d1cb17b5657d889cf7503a69e53c9da081988ac000002af1f4b1e9f842c3f878efee2b9ab4403500c5fc1ab3eb14442ad3463880cc387c8769e71b1a858a7aa268cfc17b6c4e414e69e2cc257e2f289d4780516d4a82149fdc0abd4061824c43a7c17f94a7bc0736eeaa20429dffca2180c8094ab779acbc03ab3bdf2c30bd31a859c96032ffda141549d189045ec43ac1b9dc6f15c2875afe1f1fa3ff2bb4b03599506062fe118a097008de7d5af99f09a78819bb93fe143e8c888eeab1ed2421660ca46d416bf6b9da01e54663bf18ad79dfe6bcd46587b32fb47efb0b49e1a99f6ec6812fdaa9d178eb21f6487adcdac88553580c61137b7b7169029cb26bb8c09869ba866ff8185d4d31e2d6c431ed86338fea3db03faf5b164d851d00e4dbaf608b8415a31196d3fd33246490252c8f6bb7bc3dfe0d9400bab0ce0015a9e23cf730e5aa5211d9906aef91c4591c4d2b2e3cc913809990f1bd0fdc3b828ea5fd416e1459a12364b502f65d9eda45615850942991ed3f7aa4b12700c6493bc89e969b2320d11d0b5deea814c2d9f2c20fd2635f7eb1172a9009ed31fa3e281a7632b68a023fbf232e890023505fa08f806c3f71b31f76ac480795e01d8249758c30b18f9be9d126b077a338bc1aa8e2a4d1ebea6f48717cad84488be5b7f7a1a323f4016c0d38c2bba099420ad2bab8a68068831264de585c8f2d62dbe8bab7b692a6047793774d40b9b3311a824b670ea64fa80389a1923f49e5485c850665c53d160c2bb4c230576099057f9167270678a82e80ab4e05c28e1ecd57b8145ad3b11bbca8c160478f44086c5f2d43417e78d2aa19ec136f9d6e34306da957990a125e45df52dccf8efce76df8b5ec2fe3cc17b855c00e18ef62f84de0b1d1085973967222f1e7c8230943cf7a51c4c50ce343117b278c81af6241ddca5af47e2afef683fc66aa194d90fcefb13cb58a478e9765e323d8a0da292c5792455dc9434e53292b8b8cec2da1c1b2c39f00aff5081aa21adfbdea6f7fd153794bc94701a7aae3fa5bc94060452ca1c1d965fe4e37f60315f87d091c79caa9dfe33261c377d837ef273436615d295be073385bc4374bf743aeb4df84622407afee6e63a8c9389ece0e50c8ebf031b0a61dd9615c5ef92d99e3b01345afd1cfa4216f10da8ccfc2d56314c5c0f49c69f33a19c073e655f606b55ea19b91bdcc9a7d4c054e9e3bbd5efac4ddd213b666ea6f1a0612e765a38a94fc1edd5f6c6dd5dba50db01a1172436ef86e30fb8ffd055670f9fa83f28d5a757da33feb35ff4ada98bbee715f2b9883f109420943462e51fee9ad4282ee6876820c74d32b30a1bcaa5b22ddc73dc62e28ee516afb866a0305dc7e8b3ca3cf380187b33076932fbbdea8339f59c6360adefa086d85019fdcf441cb724a0f890775e6fd4e00ed950bf618e5f258e1c485f9c3b512e616126eba07b3d4ae08046a446a52c8107a5a62ef8ecb4662dfaf53b05e8e71bcc537a3e32e225920a4b989432ad47b5c31897919bc989c6f48cac1579c1f525b481c0bcc9e019bae4d9eeeef18e4e33888f1cc00df3c06408ab6b4064b40496dce7c905b8c19335025debe5f54ad535d7395e3b4f75989983ed76791230ab52bfe98e562175d4f0cb1933a0929aed49a7a0e1e76638dab0e3703f5577ba6e3088f44e590633cf13d9b679ca7f7561e9906bddd6a05244be421003b3a1a54693cbef7ce2632040b4be9072f7a632fa3a9afbfdb25414bda9ee82866c439d0fbb148e294e9bcc8759aae703d37f9d492c3afddf5b1f6fe93a8b059e7d6c5ab53667262656746e405515fe4a7ddc156b8e8f3c6a9e345fdf49e6ff654b6111022198324655a522b58c6ef9a14b78b739802ec8b87b5cb1ad986aa769ba2958ee98bcc00f7e86e806f2d344e22ec25d57abefa84d3de3440c5fb779784c5b0d240fe9cea509d76744a8a06ff0f9caed6095f0f56c89451cfef6eec39470016c9b99cd7736821b9b426d4b3731faca55e903756e9506712e5c0cc63ea040e6ba5396797e42edecef69dedebb725acb6678fc9ccba24873659a8b7a253dfece816d5f1028197ca09574488c4405b2b3129d2dde643ba6852878eb337baf9f7a2388e6c29a9ee281f3fe1c96647c5bcb485e60953d895e4016cf2a679425450de1c7ffe99cc4dcc141dde4c480b445544bda0afb18c0465c75de100b24547ec90c978939ae32a6d14b5a61380382aa75652963aa9d140a66ff0016bb50fcd11749a24601224ae4f444ffb5d80a618f7843a6b5a88a74bf2149a8a3e08be36194e76902b98a1134123fae6474056b860b474762125d1803f8e80a000000000032861203d8fd375ba5aa472daea41c5c9d2a015551d67437e267bbec1fe2e109fd601c6e99d1bdf653d9b2595d9f9898341989654e99c643e98bc7cd196dd5d946630009a3c02403849254ca01f6afcff0c28a622fd397980e2fa8f35b49ace0ece09b75499feaf26293d18f917ecde6bc9f930614661ce1d32d76d0e863e520fb4583174b43c77c3e6859b53f02447159dcb02069d7b5eabf504c96829c5cc50d742043ddacf37eb14759b345f3851d4aa397c0b4fe99bf0ff748e2a538ace4275e22a063da15d86ff72572c480c4fe1760318b141c440732d72947da4e27578eef24762543315eb0e4d8c487ca449ec2a1e60b5205722f0d16e5583831bb7fbf9fa40a0cd5a6a9ec36d8f68d779c36fbd09122f59f4f9f4179c5d45a2301a5fcf292600e3e930c4c9819a659bce76799df2c7dd78163a59fe4aea354aeed56a2ea15d18c9bb5001c1774930eca2ed94f1010785e3c92bfb2633c80ea42a3373d301657e21fb540d6e6dd869c79f6b846ee225762ebac40d0949e56d4f85f09e4ad981e7af031a0b5e8fac04f0a6fe02acac9a499903fcdad4ec8c997f1cd88cd2120a53f2726ed09b8d05ded97b637401bb74f5a1cf408c60a112b7f4bcfe18685baa22eda0e16f02f423c8678e7cbbcc99f132c1ba2c0d6c05ba83d43d7b5b5ab0cb00c1685fff14e5e8592edae5a276186ca43481e55a340761ff4a29f0b7def0a6f23ea96fdecbbfa53bc3270d0acb38fa352143ba2632565d623070c9b72ed9e7e0d43e547d7864fcf507b110c3a36f4a6745e916d945bc3803f6847ca774a8fd9d2104d9436efad03ac5daac19cd7cb1f70c542e971b817d5ef3566e2ccac26c48f7d49dc2176ba1c24263c61f70411e76ab1e72714c8cd0ddbc8294392d78504d22cca19b1a532f899cbbe079599caf35478719d2af9f1fb767cdc5d7b031e14cab5d5f7205aa1b33c01cbfa1347eea2d8b7309bfb8f54cbc5764d87f5249885ab87918ed38a48a4a8440f17b9b799f07ff4f86b0ef5af6a9850f2cfe8282427873d94c7f5d93b7edbec8cdcdd6044ba08db4ae876236d16b6fccce61130b1f32d446d8d3e74de5d412be069dea6bfa3f55f15184acbde502cd55b5ab653146e933424bc85dd4af01c603a205fd2343aa7fed6867051e7905394bbb3699694ec6a6fd8b68f41ebf2060e8ea54e45e9c294c9121408128b920d980f2bf915b3781f1bec74afbf30958b20833806fc3d7982f982154bcfaa9d88a0f87a0df2a63dca46c9d4bed436cdf50e73967b4405c3cbdcb3ec2c1c0f872d1884cbb08992a2faaa829d590ed750a7783c36ef19c9a76a4bb4a5bd1b84f2eec26ad62f0d8279e42cf0e017785fc90aa0c72e734abd9614856e0ae86a49a0f4574fae547032741c741345f372a5c823b952dc95b10c13f142ef084d72661f33395c4ec53792f4d3b5cbcd67e1603c366aa8dd70dc3a7b3bbc81c0069eb7c69ece8dd744988c6754178bbb0ed8dc72cc621cedee47a202db52cec49cab2fe198325c2fd30b17bde4358eb25d7d573171b862c747a33c11df2e7bb5781e79dca58e181b8c2b116bd8383b15aa78c1732c8e6155fc3f095fb77e1dbd2ab9dfef26a936d489158e1d3dde3eb1d3f727548138d9faf5f55ced3b8e014051e58bd99f752d58e839999df3f60f903b768d2a1ff097769664acd034e6a0f3596985db17da232f29863267b10e0ed34c71ded167fb2b4feeec465ef6af0d17d248d3cc0e577e027c51a7d90eec4a90783f37b5e48cd1c474a590e790a548ff204bc775ac61c66777f0230d7f107d2ffedc6ef2b92dda1d7e79f40d5b85a2eaf623f543165260b8e67fb0b58ca46dca0c4fc048f8593c6223d0652f57bfa1e33d7923644afd4fb0c1e4028ced5c9e9296780570644225b20631d1c53fb904e932e7620256e06777bff2a89d7dff2c7fecb5a2d48ab2b9abdd8021938efe8e78f5ba13452100d87aee8d298a7e1a80b844dc6457be7c28f6715a7de70773bd3aa380d8969e105ccad6f22dce0ae344f0a57a4fd63dc9ecb4aa2eb17c9283cc701123ad448b994e3d5e8523329d31dda9af4dde215f7c35033f527074c1d746e0b4ff05d93996d0afb9892dfd7bb6ba7097bd8d4b234b6172b6948f7fc80e66c7bae3bb211b68676fa3d21152eb38f27cfbaa3b718b3a7462eb0d2ec7550b6046c52b70ee54d5035bdc4f8f93bf87cb2bc0a7b899d8d51c55527efea11917b0d09791961b564624f978a6881b5540b3792f07f93c180a856d7553f91079814590f1d76c2dc0089036a61d38c81a8b24e6a34da7483a1cc2174bcf133a651afc145b8702bd6a20ba888f54ac50da3d44a9cb1b7c2248cb5da3d41e60cd1ceeb5892f0cf72b25bc3e2559d98c068c02d26ed1d04e2f9bf89569675821f1feb4e4445125be19a354ad6f870a3b57fd0e69d04b90d622b338e22d447b3b5647c15d4282e8801f9f6dbab5f1cf297f1ab7230d04433a5c16bf06830f3160b04dce7b2a3ae4edc4dd63fbb6484133b6ad1f580456a7f6cb6b7128f4f52e6e066a8476ee181d9298f69e07e8a153023dc5f2f581d6caad44b63be0f87433a9d8aee7a68135bb683a1bc9fe169ea41bb8f9be123e8723cf3ba0abbfbd2d0ff15dbd374ce3a0e6a2b81e557584095530f1d05bcb2cffb079ed056ff9b4d67cfbce4af3a3d52f1c300621d7045b56010b8d01e539396079ab966126391263b722dab43f002516d4cbd890171d5f01852a3b5c4613086f9a1fe25389100f3e442a20a106cd9c73ebd5be2dfdc691a8d729bd56508be1d5edc02a2518758084f05d42059c1e352af53274baa8ba317a931c8452bbef8f04939343433afae01b9489fc10d5651c0e491265e0fa65f114503bddf462b216ac6e26000f44497e577377ee6e2d3b3af7c34654dc89adbcac132ee78c9d5166b5702ed5c5222b98e1c5176686e3d19a86c3b2eb1f95b1d2279f3ef11c865637f76dcc241a8e71e8c833c949746c348e403d463bd87c6c53eae605508480e108c5387975b6e98285c3035535c0efd3a3fc21957431f82717abfe03e71cd9a077f61cef2b28e7e6480b769b9c0f1a466b8201ce37fe51b13574c73da11cb5aea806a1438059b2ab42f912812f7b4ae4363a16688eebe733730da70c1854d8ad2ffdadbed118e91017aa516a49f19e9a68850f79c6f17d470198422ee1cdb6c1f5e900941f6a5a6757bb2f72c1183b7e2d6a6b4510e6a46969ed3e1a2e813513583d65c2f539844c4bd0e97a53b6ca45fc2d7156579366ab6ff9542888a56728404d014eb4019994dda53aee376e57719f081f939f85392e27fbe72a5cf65510d148270d1ed22c2f46863e325133d6a722fb55c5a900f7308e874317595ef4cafcd40fa844338344c0dc4e8e05218ad3565a50ab9143b63b333e360d1fbf3fc9fe341bd9403bc3013f3440039d923b2b6adc9e2435e8b9ffb78fce1b88109e13c948984ddc8924f5da1e77380f5a2f7ad81d31d047e6be45a774ca3082353dc9ef14c421b8129042d8ca11cb77806f3f93fdd6f537ae731f137728120b5750d69ca674545cf09d81f29b0f53e73373383befbb7ddaa39ceb45a84a0c268687fe307a3ad501e9bb0d19a5b223d67a8a32d6e3c2c3e090c06c92834b09634ece2fcf520a8337e4b28da57410b7084fdeb1f9b55b308b17164cb72e9503600ce2ca6c70bc32e4269bd87cdf22c1e45a6cda1bf658c98dedd878186fab3978cbe48184e02a05b39c4c286fe20158e581d3e2b5e4e5e2d438439125fe2e05d3f2fea69d0934c7e6eaac4e793ac5a7feaa4760ce7575677ca9ad9d1c8c803ba96e937d7cec429a770f68270f1813fd74dcde6956714650cf54b3ea24b8771389ecd3ee1ac0c4eaac2341918c819ed65af8671cd3bb58c0bb6c1a27db24f21686373dfe2274699c54c16c4986fb22d9a8caae2222be12d235c78a50a2489610cdf97c7761e0fad69c966ff8f1a41cd2307d1f4adbb094aa34eac0cbf8b6bf0aa60aef8314c37d3217bd36b7726c51bab1aa8705215b0d1fe973f59fcb8c9513e3310c32b88ae4156a292fa1d02acf6204555fd6b692f80346a100b3c2232b158a94d7558facb635b69dc5c87c7cf2d2495ade53fcdb50ae0163d4798749d62ecedef3919193ea4c0034403489d09c2f76e7f251dfacd60f9bb824579e6e983cfc448d8afb75088891e8bc5fa0854de7457c5810106751a7f412b12a995b8c29a4b6734a0477a373be1674007d969465f27e95c9a0a3c292a3b51272584ec802471323ef4b8e0b39cb34da4b7ae870728464dd73c5a7c5bfcf65e8afc800572be59b9f1b6f30a42215f75b56172a2ec29320288a666623fade667b4d84b16632c5972ee16fbd69fe81d194ce510cb48f4d47081ace37ee8b1531a90f9831da160cda269151dd7dbaeeeb7942c513c10a19ac9f38995f2cf49c1d3c03c909ca3a564458cc4e483790e9be82047fbf84084a97ad6c452c29e794b9046b69b93223281737979c23047f95c41d29dc552ad85c3db2e7da9003b9105e030dca309229e4e89a10fcb0f5456bc06283ccb3938a8e0d5958ce693911f3fcfb7e34d41219d1c7bea4683396e6ac547b62bf80f0a84e5381825baaab9fdf346a6a939d6538e535a028e1a0f9e545e11441f8bb717d67943de3f1ff11f212c0af480b6d6927b9a2631176b63536d489c1a8a4ba7892a84b393e5e8793458a12ca5f795651021ffdb236344adec8bf6012d22260727a44777b5685575724525ce1b82fd83b2689944cffc8388ae4527d7eaa6b7708ac6f5163c2d62fcc13f9830bafcfd3eb1e9bebe7ac1b1a2d38b2c0c387e0156a9fd2be9d8685bf7b4442960045bfa0571817c966921b723d5d783a7245b6f98c8bb5abc08c1938da45d66ca89cc8bf243c860e264cf5906a6d9545dbe3778c2552929b2d8989af3a92e5df28872f63aa0ba09355d01f2b5a0f2d7d4fc20454d9e4a9340f21589cf2b9ab88dc19fd6774205b3988b719ec5d74957952c0efa64fd425aaab5367b61d9634344a0f32f7a01d0e61db9ae1e240078293239712d52f741b8e1aef58c3a4fa9c0d40a154ec0e23a7f12fb438632d64282171fe705cbcca36d5c331b4cc446b6f215833d941bd3d0cb2c8b63d579388c59096983c93da17a55c9f58e0da42f4a29e88be7eeeaa1898b624352f9e93dc8ee1ef0297cbfe0a38d19d89bf572f26cf80dda465e7741067b75a0f6f5e2079753a1b106a67efb204a121a78c7017487860360b90ad1103dc9afcd1f5faed05acafcf5b776efc91b894b5a8895eea5217609b5935f669049513305aa10a9f62de1f824f550ddee657f1b0d7a338b19d18e4b3e26aec17217d0f58a5aa6e39a835f3443f5caf522988294d756b036bed298c4693a30c933867c4c92989c122e0d3da3c3358b219ce8e9b2e99fe2c6346b9cb581b86f85c2e33d2d34b405aca83ac915608732b7b258965a55beee0f9ea166f558ad9d06d07d4137a030772520dbddd3a057e6d2ac4d3079a34731c56de2f8291b59f05330912caf5ac13c25a1dc2131f90e17998f14f62cc70831f43afb4183ee498e77c0566d42997468fa83a53899df2b1b67a0fe11454033ce03f7ebc5002218c2f4e266da31796bb06c1f6aa1c3f879d5d21f9f81062bddb28c805050fe63a55789f1fc50dd67a11bbbfd870b53cc296d719cf403663303e3503547e323f10f74bc707648a3318a1c6abd0428c24df43fa0a208c67ad855dafb0fa115669664515dd2782a32098ef68850b7c2533d55af6560d248154148335dd84b2de3eaab3554c265ab235361b161ba52d79db25e24190ebe26795f78e4c1a97cf40284ad278f216dc27ed90c85eaa2b9cda7708c73fa45bd3792559207b2812b47da176282df71ca4e25dde19e9758e93b8dff9b4d6f6bb81abff143ad08c952e426a151db1f8326c37a54a3dee38de00dce18987c216dcb821fb76f06aaf596a1937b314a23535313017e5a3bd02bf3e6cfaa1e2643f0a26318abb70eed77fc9896e32d060693537069191a96db3b51b4978ed0826cb9f7a017396b99e6545b4c40c21e9c3f8215a584aa0c780ee42689f51a605631b9d7a9397734b9077d4fd5f00bcc1ecf13380598a8025195cb9cce565af0012f7d8063d9337088759fcd20101d6ffa8a3390b006d4583e3291b79e6cdf0813bcf88d9955f98d2371aa2b4d91dd555129714823cd9d7ac58695dbac826057b8a76818891c37395973987ce6a2be088eed92fdff7bd9852737f84461e304a96b8a258ac201fbadf618954278ff9912e8a2e2be415f7ae6af565cfc8724c8f4d0e1df9046d6bcd49bc3f77daaab84f24ad3530d703c16466ab20c208e3aa9722cc73da0d5107644f6fd0f4bc9bf40149584e239e543f24ce5765d23483a337e0ebf7ff6e1e00112108a5a50e838892b86a92226cd615ed8a5920c73f63d2129c853dfb9a54c1a7e5210850d5ae7c49243b423a5471d381acfe94300feba23b166859517f56f91cca5dbee19e15e87cf9aa4028b42ceea7efc56b1a6f828176ca63bd27aead72bbefa5312c7a4a6fec59dd1f291b0a58f650f3b6ce5f437519edcbfc7b58cdf83da36d3baf5762ed625b52411380acfac0109437710443ea4dd5042013d1b77c27c330521ada326fbe94a28003d7e270728d06eea4d652317d81d2845384c5f774b8906e2644764c3dc67acd3836ea045f046f5644b79a972d42864a0367d3e6d26112c88485d63ed3906fa336bba0a8300ab56ead40af49d04dc32fac383eb4a876534634197372b0f9001e0b9d01e6ee17484f3276907314b510f86b4b22be1cb84fa5dcdb67e7874b531e12ff6896e5041eba791f741151362c03ca66685b4e85f8cd38595e9d4855655426b23dbda6a50ec4b43091cdf2a6adc32797cb3af7e73404f40e158a06505feb155aa6e96dd4973aab68c0bdc2d9ae6dbd84b67d2742802d983eea7ed679328626cf4c477bcdef597da667d294cdb82a0a7e7fc6717839d1da8a8aec5e44e7123a1246f7fbddac2f5c48e69cefcf5eb2a628caa77b91d28be700985d261cca3c2048c35417c34204e035f07017c55176cd4bddb0b04d3f98a756f39856baa43e11e8777e4a9d1d79a5ac8c9413e913e56a0814314cf09ff1a51a02f4a8e51b800c998ed11b996a7828aa2fa1d384245fe097954a5ef75c6c19125f01027c1872240e3c585a3b9769d2c8d47a91a5721ae5503981b2fc02a7f0e6c203c195facd1544640eea2c354976f79acb57ae479c235522f30267c2bcf0eb186b8b0570620e38072041309f3ee79382af7fd1e087c987005210a594ac452cf4f8cd1befd81a844e7ed2d13963ef77be237210056e6251712ef6bf3cf686ef7ec62bcec5fd314a2f80e036167946645cd1d40399d4c78aa45e78cae99f9e7845a17e1162ad2dfc26426d830a1f5c0846cbb01d85cb2b5488727df8f4e77af49943bbdc85f412c1986315bfeb7f4b2761463f4e3992080ec64bc47485f5388c0c147a77998d344a51d60be16438a6986c65028e9a390691c9aef240f7f0514c0e1e9b3f2849006df8949ee45a5c5b2996fd1c497a7260a6cd5fce873e4d4185ca5d79da2ed7089cc1caadd75c9796595bfc3f6010b1817044e9b8123277441021827fe1c59c32c46359a2511dd1e4b751cfde29cbae57828a815764c127cc56d219020536fd3c41be7fecee24c5e7529117d3b6c70c751732fcb67f1b39e2a5e901288a6db820306b938ab21a0b808aa8f65e3c0b39905fd782f840beb3ff377dcbb46d5f75328823394fb6b8ff809fbd2eafe5be484c8abf5e30a84c70cef6bc175a343a2d14fbf531fadf8dadece387959a3a433a98316a81aa3ca1242a2d19556fed88d912e6749c8a941f20163165d0a1c1aa81d46012025a31156db63f8a1e3573bcdd1d5bd67413f9432ab50b741addfbec64b4f14cfd59d95a5b60f5b9167951676614f14b00472f4b4c8cfe65da0da7ac73810049a9c3609cddaf50f089df3986df1a51830004586351673cc9a9ebccd1edf71b0597b6369a34187bcd4aed53b994051a2b1c26f2ad6425f7cb22a6630739da814db1069f929a884173eeab9ec6f818fedd22eb828161978ab7b2a3f7396f8d23536ca2cfa4e93efd1224d7efa5c139cea99d89cf19c75aa3b305b783f58df099ed0ea64466031d764e3494deff2e3929f94dcd62b4eaf989d926fdc5bcedb7251b0af356a340c5e2564dfce9534723aef055882a88c0237455b2a26f6eadfe627ca776ecf208225730aed3f25d621a3c8ffb500ec5e2c523928ee49905486cc7cbc915b2519abadad770bc7e6e2f1712d07766b4d73a0f1b751de3bc2eb41b9b879c755af9e1b102569fbcb3d71a0058232dd51c1b9aa70dd23e82a9d5227df6404b9817460b636e3ef720eb045b370fd7b88c399710f78741dede33ee4d1a19c28f4ba82302fef4a7b167346ec03fab6e8eb489dfe5e2a85f9dc9da42b047283bdc1d1082ca2649a6d2fe889e9639e9c0f74f59aba9180aa9f9ef3d2ae4834307f2239794cb372f67d8e17046841ce83a8713bbe43b8a7bfb508421a3d6d49631407663e4eb909fdf39fcc166ec13346a4259cfc07bd4c2fe00861c9eebc78076d9f5bb8757f2fad939b493f0d81f373cc09e74f1db62fff487251ac0474babb4a42ba36b63bb77e107f4dc45fd33f40c00f0c0b043b480f15fa37c9397a3ade86d168e33c18c8d7d77e8f179d02986f402bc28f15f3715b17d2f932bebda8e0abb2176e4339a41c15b4fcd109f328ef71eff50ba94e591c12c4c197b006fa684f88725551920a8a419cc745b9a1b3594d80af9f6e5a92531a858ad72b5f0a0380bb3b3afab7249ac66769a5a083766ad5f00a21bd095874bb06e8183debb71f328eab7d538ed47601abd2cb4e0110229c450cbc0a3dacf77ca1be7d4c60f526564ffdbb13a0dfb03a3167be9091c282121905f21470f9b811bd730383ea1a28be7d048fea316d328e82e87917c0fa581b0c5880af1bcda5ecde40d116050a9bb2d1c5bbcac03cd65fff023558e0a99ef8f8e427c6b20885adb650cd19c3c7588298469ffe94212196e7cd2ca420f690f9158bbaf204f47e3c5ab0a37234946b7e482457fb6dfc188b864760b590c918d619e987faca0768aa466c274b3a5e1f16a37686487d147ba6ab1ba2b8d9be1fb26fe4f5baa94117d1f081da9adb3a193825630343a32fac6678b4a90b02f15669de1c26112fecb97b2c1d5d2fdad12aa4bb54a4b8c5c17c6970c0aef5a34c4a5760b8bc9071270de9ba3a015db8f8ed5e899b68a150720cefba8ea62bf30437a5a3e88eb76cd486924e5a22d8f93e0f281412a91e713dbcdf954fc6e8083eab4fa2e062ad815bb00166ad9fa66a6966f277dae5a5d920632659f727cd803692cdf439b5bd91dfb5102ca002ee0c045c83d2c001d1671c8375c1c72b9e02b6cecc1851f150056c7a0c280b711b68a376072d7ef7b42b140a6cc72677d789c8b3a72b93eb246669ceb58d993cc1b9042270625301b2cc84efb2b87a688b922bc83780d33db8c017258c49a0645156814bbfb910a158110bbe33b101932e985a4d39637487ed1f59cbd1419e6001f6be2065e981369388da39d917a2524bfa4261babd5dbc06c932639e5937c7f8e6ff88515f10115b1494ca4b74ca38be6be72bd0329ed8db64d22f612fa91eef917e528afce83866ce743784ece16ef98016a1fb86b358df345eecadc7a2dde8301f73c3633456cc55c0f606afd7680a98cf6cca852a43a0ba9b525f52fe9713f470a62e3902683f0757eee89bf16258a28a59e028c48378918550842acaf298c19956deaab130a625b771a92ba2d7ffe36750308e61f0b5ae4e2de3d4da9d4f53fb0e60524532574ac28fae9b2712c00884e68a6b561f75ca4bca149bcac141fd3be1ef0008356874eaf92c1f3abe032135f55569e8eafa1c1ad617b3d26a337e5daaf041f5c419f2e6c5985b686790c95ec70f70baa822b70e47036c51d10e80f2e3bc76f9cdbccdb649efd57612ba537f519beaf6cca54585e71542e1d355588255a95709f53c8e1025da0ddb2050ea0b8cbe6b32ad297867b2e362077aa1012c0344333cfb5ba48cda7469e78984eae21c4454786676a89f2ee997a8ec1e173f8422f3a98602882218ffdd1d3476c19f550b84e72993dbd2b4aac4bc804ddb5b61f5e3887f6d6db594bfe845296d50ee33e3f35b677dc781bde42be674442413f51447f8bc3886bb41d8504a9fed33db491bcc0275dede8e0fd1d9ce23bd83424ed8a93d3b91406830924d2a796a03b8a75ec16d80cbc4348a4b5baa26a8287414f74de464c1718d8bc6c4f3c15b31259f5e00f7a96539e173a0390bbbdbe84c5262a8e39a2fb44c02bdfadc4c392270863fbbf3855bb62273a2268b5c168b1bafb55ba4a086243efeeaddc98c6a907cd2f36b62e83656b05c44d943e9f0c8855c386fe09a65e5f9d6eddeaf0436e1e730d6a94feb3ac4a42f06517a11b25eeb97a8562f81ca354455adf40415ed901"; + let tx_zcash_bytes = hex::decode(tx_zcash_hex).unwrap(); + + let btc_tx = + WrappedTransaction::decode(&tx_zcash_bytes, &network::Chain::ZcashMainnet).unwrap(); + println!("ZCash tx: {:?}", btc_tx); + + let output_script_pubkey = btc_tx.output()[0].script_pubkey.clone(); + let deposit_msg = DepositMsg { + recipient_id: "omni_user_account-20250625-153431.testnet".parse().unwrap(), + post_actions: None, + extra_msg: None, + }; -pub fn to_psbt(psbt_hex: &String) -> Psbt { - let psbt_bytes = hex::decode(psbt_hex).unwrap(); - Psbt::deserialize(&psbt_bytes).expect("ERR_INVALID_PSBT_HEX") + let path = get_deposit_path(&deposit_msg); + println!("{:?}", path); + let deposit_address = generate_utxo_chain_address(&path); + let expected_script_pubkey = deposit_address.script_pubkey().unwrap(); + + println!("Deposit address: {:?}", deposit_address); + println!("Deposit address: {:?}", deposit_address.to_string()); + println!( + "Expected script pubkey: {}", + expected_script_pubkey.to_hex_string() + ); + println!( + "Output script pubkey: {}", + output_script_pubkey.to_hex_string() + ); + assert_eq!(expected_script_pubkey, output_script_pubkey); + } } diff --git a/contracts/satoshi-bridge/src/chain_signature.rs b/contracts/satoshi-bridge/src/chain_signature.rs index 10ec76f7..46a3232b 100644 --- a/contracts/satoshi-bridge/src/chain_signature.rs +++ b/contracts/satoshi-bridge/src/chain_signature.rs @@ -1,8 +1,5 @@ -use bitcoin::Witness; -use bitcoin::{ecdsa::Signature, hashes::Hash, sighash::SighashCache}; - use crate::*; - +use bitcoin::ecdsa::Signature; pub const GAS_FOR_SIGN_CALL: Gas = Gas::from_tgas(50); pub const GAS_FOR_SIGN_BTC_TRANSACTION_CALL_BACK: Gas = Gas::from_tgas(30); @@ -78,12 +75,21 @@ impl Contract { sign_index: usize, key_version: u32, ) -> Promise { + let public_key = self.generate_btc_public_key( + &self + .internal_unwrap_btc_pending_info(&btc_pending_sign_id) + .vutxos[sign_index] + .get_path(), + ); + let btc_pending_info = self.internal_unwrap_btc_pending_info(&btc_pending_sign_id); require!( btc_pending_info.signatures[sign_index].is_none(), "Already signed" ); - let payload = get_hash_to_sign(&btc_pending_info.get_psbt(), sign_index); + let payload = btc_pending_info + .get_psbt() + .get_hash_to_sign(sign_index, &public_key); let path = btc_pending_info.vutxos[sign_index].get_path(); self.sign_promise(SignRequest { payload, @@ -111,7 +117,7 @@ impl Contract { serde_json::from_slice::(&result_bytes).expect("Invalid PublicKey"); self.internal_mut_config().chain_signatures_root_public_key = Some(root_public_key); let change_address = self - .generate_btc_p2wpkh_address(env::current_account_id().as_str()) + .generate_utxo_chain_address(env::current_account_id().as_str()) .to_string(); self.internal_mut_config().change_address = Some(change_address); true @@ -153,12 +159,11 @@ impl Contract { } .emit(); let mut psbt = btc_pending_info.get_psbt(); - psbt.inputs[sign_index].final_script_witness = - Some(Witness::p2wpkh(&signature.to_btc_signature(), &public_key)); - btc_pending_info.psbt_hex = psbt.serialize_hex(); + psbt.save_signature(sign_index, signature, public_key); + + btc_pending_info.psbt_hex = psbt.serialize(); if btc_pending_info.is_all_signed() { - let transaction = psbt.extract_tx().expect("extract_tx failed"); - let tx_bytes_with_sign = serialize(&transaction); + let tx_bytes_with_sign = psbt.extract_tx_bytes_with_sign(); Event::SignedBtcTransaction { account_id: &account_id, tx_id: btc_pending_sign_id.clone(), @@ -185,24 +190,3 @@ impl Contract { } } } - -pub fn get_hash_to_sign(psbt: &Psbt, vin: usize) -> [u8; 32] { - let tx = psbt.unsigned_tx.clone(); - let mut cache = SighashCache::new(tx); - cache - .p2wpkh_signature_hash( - vin, - &psbt.inputs[vin] - .witness_utxo - .as_ref() - .unwrap() - .script_pubkey, - psbt.inputs[vin].witness_utxo.as_ref().unwrap().value, - bitcoin::EcdsaSighashType::All, - ) - .unwrap() - .to_raw_hash() - .to_byte_array() - // let payload = psbt.sighash_ecdsa(vin, &mut cache).unwrap(); - // *payload.0.as_ref() -} diff --git a/contracts/satoshi-bridge/src/config.rs b/contracts/satoshi-bridge/src/config.rs index a1926b2b..06d2a94a 100644 --- a/contracts/satoshi-bridge/src/config.rs +++ b/contracts/satoshi-bridge/src/config.rs @@ -1,3 +1,4 @@ +use crate::network::Address; use crate::*; pub const MAX_RATIO: u32 = 10000; @@ -39,6 +40,8 @@ impl BridgeFee { #[derive(Clone)] #[cfg_attr(not(target_arch = "wasm32"), derive(Debug))] pub struct Config { + // The chain id: BitconMainnet/BitcoinTestnet/ZcashMainnet/ZcashTestnet etc + pub chain: network::Chain, // The account id of btc light client contract pub btc_light_client_account_id: AccountId, // The account id of nbtc contract @@ -103,11 +106,13 @@ pub struct Config { pub max_btc_tx_pending_sec: u32, // UTXOs less than or equal to this amount are allowed to be merged through active management. pub unhealthy_utxo_amount: u64, + #[cfg(feature = "zcash")] + pub expiry_height_gap: u32, } impl Config { pub fn assert_valid(&self) { - let confirmations_valid_range = 2..=10; + let confirmations_valid_range = 2..=100; require!( self.confirmations_strategy .values() @@ -134,8 +139,21 @@ impl Config { ); } - pub fn get_change_address(&self) -> Address { - string_to_btc_address(self.change_address.as_ref().unwrap()) + pub fn get_change_script_pubkey(&self) -> ScriptBuf { + self.string_to_script_pubkey(self.change_address.as_ref().unwrap()) + } + + pub fn string_to_script_pubkey(&self, address_string: &str) -> ScriptBuf { + let chain = self.get_utxo_network(); + + Address::parse(address_string, chain) + .unwrap_or_else(|e| panic!("{address_string}: {e}")) + .script_pubkey() + .expect("Failed to get script pubkey") + } + + pub fn get_utxo_network(&self) -> network::Chain { + self.chain.clone() } pub fn get_confirmations(&self, satoshi_amount: u128) -> u64 { diff --git a/contracts/satoshi-bridge/src/kdf.rs b/contracts/satoshi-bridge/src/kdf.rs index 44f7e7c9..dba715a4 100644 --- a/contracts/satoshi-bridge/src/kdf.rs +++ b/contracts/satoshi-bridge/src/kdf.rs @@ -1,7 +1,6 @@ use crate::*; -use std::str::FromStr; - +use crate::network::Address; use k256::elliptic_curve::sec1::ToEncodedPoint; impl Contract { @@ -29,23 +28,9 @@ impl Contract { .unwrap() } - pub fn generate_btc_p2wpkh_address(&self, path: &str) -> Address { + pub fn generate_utxo_chain_address(&self, path: &str) -> Address { let btc_public_key = self.generate_btc_public_key(path); - Address::p2wpkh(&btc_public_key.try_into().unwrap(), btc_network()) - } -} - -pub fn string_to_btc_address(address_string: &str) -> Address { - Address::from_str(address_string) - .unwrap_or_else(|_| panic!("{address_string} not a valid btc address")) - .require_network(btc_network()) - .unwrap_or_else(|_| panic!("{address_string} network error")) -} - -pub fn btc_network() -> Network { - if env::current_account_id().to_string().ends_with(".near") { - Network::Bitcoin - } else { - Network::Testnet + Address::from_pubkey(self.internal_config().chain.clone(), btc_public_key) + .expect("Invalid public key") } } diff --git a/contracts/satoshi-bridge/src/legacy.rs b/contracts/satoshi-bridge/src/legacy.rs index ffd80074..4ff16dde 100644 --- a/contracts/satoshi-bridge/src/legacy.rs +++ b/contracts/satoshi-bridge/src/legacy.rs @@ -151,6 +151,7 @@ impl From for Config { } = c; Self { + chain: crate::network::Chain::BitcoinMainnet, btc_light_client_account_id, nbtc_account_id, chain_signatures_account_id, @@ -178,6 +179,8 @@ impl From for Config { rbf_num_limit, max_btc_tx_pending_sec, unhealthy_utxo_amount: 1000, + #[cfg(feature = "zcash")] + expiry_height_gap: 1000, } } } diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index 5511afb6..001f5c36 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -13,16 +13,15 @@ use near_sdk::{ }; use std::collections::{HashMap, HashSet}; -use bitcoin::{ - absolute::LockTime, - consensus::{deserialize, serialize}, - transaction::Version, - Address, Amount, Network, OutPoint, Psbt, PublicKey as BtcPublicKey, ScriptBuf, - Transaction as BtcTransaction, TxIn, TxOut, -}; +use bitcoin::{absolute::LockTime, Amount, OutPoint, PublicKey as BtcPublicKey, ScriptBuf, TxOut}; pub mod account; pub mod api; +#[cfg(not(feature = "zcash"))] +pub mod bitcoin_utils; +#[cfg(feature = "zcash")] +pub mod zcash_utils; + pub mod btc_light_client; pub mod btc_pending_info; pub mod chain_signature; @@ -33,6 +32,7 @@ pub mod json_utils; pub mod kdf; pub mod legacy; pub mod nbtc; +mod network; pub mod psbt; pub mod rbf; pub mod token_transfer; @@ -50,13 +50,25 @@ pub use crate::config::*; pub use crate::deposit_msg::*; pub use crate::event::*; pub use crate::json_utils::*; -pub use crate::kdf::*; pub use crate::legacy::*; pub use crate::nbtc::*; pub use crate::rbf::*; pub use crate::token_transfer::*; pub use crate::utils::*; pub use crate::utxo::*; + +#[cfg(not(feature = "zcash"))] +pub use crate::bitcoin_utils::psbt_wrapper; +#[cfg(not(feature = "zcash"))] +pub use crate::bitcoin_utils::transaction::Transaction as WrappedTransaction; + +#[cfg(feature = "zcash")] +pub use crate::zcash_utils::contract_methods::*; +#[cfg(feature = "zcash")] +pub use crate::zcash_utils::psbt_wrapper; +#[cfg(feature = "zcash")] +pub use crate::zcash_utils::transaction::Transaction as WrappedTransaction; + #[cfg(test)] pub use unit::*; diff --git a/contracts/satoshi-bridge/src/nbtc/burn.rs b/contracts/satoshi-bridge/src/nbtc/burn.rs index 7af6b3aa..d7457982 100644 --- a/contracts/satoshi-bridge/src/nbtc/burn.rs +++ b/contracts/satoshi-bridge/src/nbtc/burn.rs @@ -74,11 +74,11 @@ impl Contract { }; if is_success { let tx_bytes = btc_pending_info.tx_bytes_with_sign.as_ref().unwrap(); - let transaction = bytes_to_btc_transaction(tx_bytes); - let withdraw_change_address = config.get_change_address(); - let withdraw_change_script_pubkey = withdraw_change_address.script_pubkey(); + let transaction = WrappedTransaction::decode(tx_bytes, &self.internal_config().chain) + .expect("Deserialization tx_bytes failed"); + let withdraw_change_script_pubkey = config.get_change_script_pubkey(); let mut utxo_storage_keys = vec![]; - for (index, output) in transaction.output.into_iter().enumerate() { + for (index, output) in transaction.output().into_iter().enumerate() { if withdraw_change_script_pubkey == output.script_pubkey { let utxo = UTXO { path: env::current_account_id().to_string(), @@ -152,12 +152,12 @@ impl Contract { }; if is_success { let tx_bytes = btc_pending_info.tx_bytes_with_sign.as_ref().unwrap(); - let transaction = bytes_to_btc_transaction(tx_bytes); + let transaction = WrappedTransaction::decode(tx_bytes, &self.internal_config().chain) + .expect("Deserialization tx_bytes failed"); let config = self.internal_config(); - let withdraw_change_address = config.get_change_address(); - let withdraw_change_script_pubkey = withdraw_change_address.script_pubkey(); + let withdraw_change_script_pubkey = config.get_change_script_pubkey(); let mut utxo_storage_keys = vec![]; - for (index, output) in transaction.output.into_iter().enumerate() { + for (index, output) in transaction.output().into_iter().enumerate() { if withdraw_change_script_pubkey == output.script_pubkey { let utxo = UTXO { path: env::current_account_id().to_string(), diff --git a/contracts/satoshi-bridge/src/network.rs b/contracts/satoshi-bridge/src/network.rs new file mode 100644 index 00000000..3634ce75 --- /dev/null +++ b/contracts/satoshi-bridge/src/network.rs @@ -0,0 +1,436 @@ +use bitcoin::bech32::Hrp; +use bitcoin::hashes::Hash; +use bitcoin::{base58, bech32, PubkeyHash, ScriptHash, WitnessProgram, WitnessVersion}; +use near_sdk::near; +use std::fmt; +use zcash_address::unified::{Container, Receiver}; +use zcash_address::{ConversionError, ToAddress, ZcashAddress}; +#[cfg(feature = "zcash")] +use zcash_protocol::consensus::BranchId; + +#[near(serializers = [borsh, json])] +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum Chain { + BitcoinMainnet, + BitcoinTestnet, + LitecoinMainnet, + LitecoinTestnet, + ZcashMainnet, + ZcashTestnet, + DogecoinMainnet, + DogecoinTestnet, +} +#[cfg(feature = "zcash")] +pub struct BranchIdUpdateBlockHeight { + pub bu6_1_update: u32, +} + +#[cfg(feature = "zcash")] +impl BranchIdUpdateBlockHeight { + pub fn new(chain: &Chain) -> Self { + match chain { + Chain::ZcashMainnet => Self { bu6_1_update: 0 }, + Chain::ZcashTestnet => Self { + bu6_1_update: 3536500, + }, + _ => unreachable!(), + } + } +} +impl Chain { + #[cfg(feature = "zcash")] + pub fn get_branch_id(&self, block_height: u32) -> BranchId { + let block_height_update = BranchIdUpdateBlockHeight::new(self); + if block_height_update.bu6_1_update != 0 && block_height >= block_height_update.bu6_1_update + { + return BranchId::Nu6_1; + } + + BranchId::Nu6 + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub enum Address { + P2pkh { + hash: PubkeyHash, + chain: Chain, + }, + P2sh { + hash: ScriptHash, + chain: Chain, + }, + Segwit { + program: WitnessProgram, + chain: Chain, + }, + Unified { + address: zcash_address::unified::Address, + chain: Chain, + }, +} + +impl zcash_address::TryFromAddress for Address { + type Error = String; + fn try_from_transparent_p2pkh( + net: zcash_protocol::consensus::NetworkType, + data: [u8; 20], + ) -> Result> { + let chain = match net { + zcash_protocol::consensus::NetworkType::Main => Chain::ZcashMainnet, + zcash_protocol::consensus::NetworkType::Test => Chain::ZcashTestnet, + zcash_protocol::consensus::NetworkType::Regtest => { + return Err("Regtest network not supported".to_string().into()); + } + }; + + Ok(Self::P2pkh { + hash: PubkeyHash::from_slice(&data[..]).map_err(|e| { + ConversionError::::from(format!("Invalid pubkey hash: {e}")) + })?, + chain, + }) + } + + fn try_from_unified( + net: zcash_protocol::consensus::NetworkType, + data: zcash_address::unified::Address, + ) -> Result> { + let chain = match net { + zcash_protocol::consensus::NetworkType::Main => Chain::ZcashMainnet, + zcash_protocol::consensus::NetworkType::Test => Chain::ZcashTestnet, + zcash_protocol::consensus::NetworkType::Regtest => { + return Err("Regtest network not supported".to_string().into()); + } + }; + + Ok(Self::Unified { + address: data, + chain, + }) + } +} + +impl Address { + /// Parse an address string + chain into AddressInner + pub fn parse(address: &str, chain: Chain) -> Result { + if chain == Chain::ZcashMainnet || chain == Chain::ZcashTestnet { + let addr = ZcashAddress::try_from_encoded(address) + .map_err(|e| format!("Error on parsing ZCash Address: {e}"))?; + + let network = match chain { + Chain::ZcashMainnet => zcash_protocol::consensus::NetworkType::Main, + Chain::ZcashTestnet => zcash_protocol::consensus::NetworkType::Test, + _ => unreachable!(), + }; + + return addr + .convert_if_network::(network) + .map_err(|e| e.to_string()); + } + + if let Some(hrp) = get_segwit_hrp(&chain) { + if let Ok((decoded_hrp, witness_version, data)) = bech32::segwit::decode(address) { + if decoded_hrp.as_str() != hrp { + return Err(format!( + "Bech32 HRP mismatch: expected '{hrp}', got '{decoded_hrp}'" + )); + } + + let version = + WitnessVersion::try_from(witness_version).map_err(|err| format!("{err:?}"))?; + let program = WitnessProgram::new(version, &data).map_err(|err| { + format!("bech32 guarantees valid program length for witness: {err:?}") + })?; + + return Ok(Address::Segwit { program, chain }); + } + } + + let data = bitcoin::base58::decode_check(address) + .map_err(|e| format!("Base58 decode error: {e}"))?; + + let prefix = get_pubkey_address_prefix(&chain); + if data.starts_with(&prefix) { + let hash = PubkeyHash::from_slice(&data[prefix.len()..]) + .map_err(|e| format!("Invalid pubkey hash: {e}"))?; + return Ok(Address::P2pkh { hash, chain }); + } + + let prefix = get_script_address_prefix(&chain); + if data.starts_with(&prefix) { + let hash = ScriptHash::from_slice(&data[prefix.len()..]) + .map_err(|e| format!("Invalid script hash: {e}"))?; + return Ok(Address::P2sh { hash, chain }); + } + + Err("Unknown address format or unsupported chain".to_string()) + } + + /// Return the scriptPubKey corresponding to this address + pub fn script_pubkey(&self) -> Result { + match self { + Address::P2pkh { hash, .. } => Ok(bitcoin::ScriptBuf::new_p2pkh(hash)), + Address::P2sh { hash, .. } => Ok(bitcoin::ScriptBuf::new_p2sh(hash)), + Address::Segwit { program, .. } => Ok(bitcoin::ScriptBuf::new_witness_program(program)), + Address::Unified { address, .. } => { + let receiver_list = address.items_as_parsed(); + for receiver in receiver_list { + match receiver { + Receiver::P2pkh(data) => { + return Ok(bitcoin::ScriptBuf::new_p2pkh( + &PubkeyHash::from_slice(&data[..]).map_err(|err| { + format!("Error on parsing Pubkey Hash: {err:?}").to_string() + })?, + )) + } + Receiver::P2sh(data) => { + return Ok(bitcoin::ScriptBuf::new_p2sh( + &ScriptHash::from_slice(&data[..]).map_err(|err| { + format!("Error on parsing Script Hash: {err:?}").to_string() + })?, + )) + } + _ => continue, + }; + } + + Err("No receiver found in address".to_string()) + } + } + } + + pub fn from_pubkey(chain: Chain, pubkey: bitcoin::PublicKey) -> Result { + let pubkey_hash = pubkey.pubkey_hash(); + + if let Some(_hrp) = get_segwit_hrp(&chain) { + // Chain supports Bech32 SegWit + let wp = WitnessProgram::p2wpkh( + &pubkey + .try_into() + .map_err(|e| format!("Error on converting pubkey to bytes: {e}"))?, + ); + let wp = WitnessProgram::new(WitnessVersion::V0, wp.program().as_bytes()) + .map_err(|e| format!("bech32 guarantees valid program length for witness: {e}"))?; + Ok(Address::Segwit { program: wp, chain }) + } else { + // Legacy P2PKH + Ok(Address::P2pkh { + hash: pubkey_hash, + chain, + }) + } + } + + pub fn from_script(script: &bitcoin::Script, chain: Chain) -> Option { + // Try P2PKH + if script.is_p2pkh() { + let hash = bitcoin::PubkeyHash::from_slice(&script.as_bytes()[3..23]).ok()?; + return Some(Address::P2pkh { hash, chain }); + } + + // Try P2SH + if script.is_p2sh() { + let hash = bitcoin::ScriptHash::from_slice(&script.as_bytes()[2..22]).ok()?; + return Some(Address::P2sh { hash, chain }); + } + + if script.is_witness_program() { + let opcode = script.first_opcode()?; + + let version = WitnessVersion::try_from(opcode).ok()?; + let program = WitnessProgram::new(version, &script.as_bytes()[2..]).ok()?; + return Some(Address::Segwit { program, chain }); + } + + None + } +} + +/// Formats bech32 as upper case if alternate formatting is chosen (`{:#}`). +impl fmt::Display for Address { + fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { + use Address::*; + match self { + P2pkh { hash, chain } => { + let prefix = get_pubkey_address_prefix(chain); + let mut prefixed = Vec::with_capacity(20 + prefix.len()); + prefixed.extend(prefix); + prefixed.extend(&hash[..]); + base58::encode_check_to_fmt(fmt, &prefixed[..]) + } + P2sh { hash, chain } => { + let prefix = get_script_address_prefix(chain); + let mut prefixed = Vec::with_capacity(20 + prefix.len()); + prefixed.extend(prefix); + prefixed.extend(&hash[..]); + base58::encode_check_to_fmt(fmt, &prefixed[..]) + } + Segwit { program, chain } => { + let hrp = + Hrp::parse(get_segwit_hrp(chain).ok_or(fmt::Error)?).map_err(|_| fmt::Error)?; + let version = program.version().to_fe(); + let program = program.program().as_ref(); + + if fmt.alternate() { + bech32::segwit::encode_upper_to_fmt_unchecked(fmt, hrp, version, program) + } else { + bech32::segwit::encode_lower_to_fmt_unchecked(fmt, hrp, version, program) + } + } + Unified { address, chain } => { + let network = match chain { + Chain::ZcashMainnet => zcash_protocol::consensus::NetworkType::Main, + Chain::ZcashTestnet => zcash_protocol::consensus::NetworkType::Test, + _ => unreachable!(), + }; + + let str_address = ZcashAddress::from_unified(network, address.clone()).encode(); + write!(fmt, "{}", str_address) + } + } + } +} + +pub fn get_segwit_hrp(chain: &Chain) -> Option<&'static str> { + match chain { + // Bitcoin (Bech32 - BIP173) + Chain::BitcoinMainnet => Some("bc"), + Chain::BitcoinTestnet => Some("tb"), + + // Litecoin (Bech32) + Chain::LitecoinMainnet => Some("ltc"), + Chain::LitecoinTestnet => Some("tltc"), + + // Zcash (Bech32m) support unified addresses with hrp but not segwit + Chain::ZcashMainnet | Chain::ZcashTestnet => None, + + // Dogecoin (no native Bech32 support yet) + Chain::DogecoinMainnet | Chain::DogecoinTestnet => None, + } +} + +/// Returns the P2PKH (pubkey) address prefix as a Vec +fn get_pubkey_address_prefix(chain: &Chain) -> Vec { + match chain { + // Bitcoin + Chain::BitcoinMainnet => vec![0x00], // "1" + Chain::BitcoinTestnet => vec![0x6F], // "m" or "n" + + // Litecoin + Chain::LitecoinMainnet => vec![0x30], // "L" + Chain::LitecoinTestnet => vec![0x6F], + + // Zcash + Chain::ZcashMainnet => vec![0x1C, 0xB8], // "t1" + Chain::ZcashTestnet => vec![0x1D, 0x25], // "tm" + + // Dogecoin + Chain::DogecoinMainnet => vec![0x1E], // "D" + Chain::DogecoinTestnet => vec![0x71], // "n" + } +} + +/// Returns the P2SH (script) address prefix as a Vec +fn get_script_address_prefix(chain: &Chain) -> Vec { + match chain { + // Bitcoin + Chain::BitcoinMainnet => vec![0x05], // "3" + Chain::BitcoinTestnet => vec![0xC4], // "2" + + // Litecoin + Chain::LitecoinMainnet => vec![0x32], // "M" (was "3") + Chain::LitecoinTestnet => vec![0x3A], + + // Zcash + Chain::ZcashMainnet => vec![0x1C, 0xBD], // "t3" + Chain::ZcashTestnet => vec![0x1C, 0xBA], // "t2" + + // Dogecoin + Chain::DogecoinMainnet => vec![0x16], // "9" + Chain::DogecoinTestnet => vec![0xC4], // same as Bitcoin testnet + } +} + +#[cfg(test)] +mod tests { + use crate::network::{Address, Chain}; + use bitcoin::PublicKey as BtcPublicKey; + use k256::elliptic_curve::sec1::ToEncodedPoint; + use near_sdk::PublicKey; + use std::str::FromStr; + pub fn generate_public_key(path: &str) -> Vec { + let mpc_pk = crypto_shared::near_public_key_to_affine_point( + PublicKey::from_str("secp256k1:4NfTiv3UsGahebgTaHyD9vF8KYKMBnfd6kh94mK6xv8fGBiJB8TBtFMP5WWXz6B89Ac1fbpzPwAvoyQebemHFwx3").unwrap(), + ); + let epsilon = crypto_shared::derive_epsilon( + &"zcash_connector-20250714-143829.testnet".parse().unwrap(), + path, + ); + let user_pk = crypto_shared::derive_key(mpc_pk, epsilon); + let user_pk_encoded_point = user_pk.to_encoded_point(false); + user_pk_encoded_point.as_bytes().to_vec() + } + + pub fn generate_btc_public_key(path: &str) -> BtcPublicKey { + let public_key_bytes = generate_public_key(path); + let uncompressed_btc_public_key = + BtcPublicKey::from_slice(&public_key_bytes).expect("Invalid public key bytes"); + uncompressed_btc_public_key + .inner + .to_string() + .parse() + .unwrap() + } + + #[test] + fn test_parse_address() { + for (address, chain) in [ + ( + "bc1pwyzhgwy30q2juhau2f2c4qscasddle5ymw9m7scq5kc62t8kyzkqyz059k", + Chain::BitcoinMainnet, + ), + ( + "tb1pt34385rvqtyuz6muh9hr5ed4fy0cx89zz0faxm6dhku0vqp2pxxs0ymh7y", + Chain::BitcoinTestnet, + ), + ("LWrHnw5xztWiPafMhKYTQued8iuhaET7Yd", Chain::LitecoinMainnet), + ( + "tltc1q0c8899qaxq4e5m9zucq9vkvrn4npfwa8pww9d8", + Chain::LitecoinTestnet, + ), + ("t1ggQ7ZgHRoR34Z2xCcF155VcDe5zDZpZF1", Chain::ZcashMainnet), + ("tmJpMbYtRf9Hgi8HUJ4FGkoM3FUSHsu28wM", Chain::ZcashTestnet), + ("DKNmffVbxrBcNvQ9uJEDLe8f6prxSmH2Vm", Chain::DogecoinMainnet), + ("njyMWWyh1L7tSX6QkWRgetMVCVyVtfoDta", Chain::DogecoinTestnet), + ] { + let parse_address = Address::parse(address, chain.clone()).unwrap(); + let script_pubkey = parse_address.script_pubkey().unwrap(); + let address_from_script = Address::from_script(&script_pubkey, chain).unwrap(); + let display_address = address_from_script.to_string(); + assert_eq!(display_address, address); + } + } + + #[test] + fn test_from_pubkey() { + for chain in [ + Chain::BitcoinMainnet, + Chain::BitcoinTestnet, + Chain::LitecoinMainnet, + Chain::LitecoinTestnet, + Chain::ZcashMainnet, + Chain::ZcashTestnet, + Chain::DogecoinMainnet, + Chain::DogecoinTestnet, + ] { + let btc_public_key = generate_btc_public_key("path"); + let address = Address::from_pubkey(chain.clone(), btc_public_key).unwrap(); + let script_pubkey = address.script_pubkey().unwrap(); + let address_from_script = Address::from_script(&script_pubkey, chain.clone()).unwrap(); + assert_eq!(address, address_from_script); + let address_from_str = Address::parse(&address_from_script.to_string(), chain).unwrap(); + assert_eq!(address, address_from_str); + } + } +} diff --git a/contracts/satoshi-bridge/src/psbt.rs b/contracts/satoshi-bridge/src/psbt.rs index f1cbf7cb..c2f5218c 100644 --- a/contracts/satoshi-bridge/src/psbt.rs +++ b/contracts/satoshi-bridge/src/psbt.rs @@ -1,11 +1,12 @@ +use crate::network::Address; +use crate::psbt_wrapper::PsbtWrapper; use crate::*; - impl Contract { pub fn check_withdraw_psbt_valid( &self, target_address_script_pubkey: &ScriptBuf, withdraw_change_address_script_pubkey: &ScriptBuf, - withdraw_psbt: &Psbt, + withdraw_psbt: &PsbtWrapper, vutxos: &[VUTXO], amount: u128, withdraw_fee: u128, @@ -56,14 +57,14 @@ impl Contract { pub fn check_active_management_psbt_valid( &self, - psbt: &Psbt, + psbt: &PsbtWrapper, vutxos: &[VUTXO], ) -> (u128, u128) { let config = self.internal_config(); let utxo_num = self.data().utxos.len() + vutxos.len() as u32; - let input_num = psbt.unsigned_tx.input.len(); - let output_num = psbt.unsigned_tx.output.len(); + let input_num = psbt.get_input_num(); + let output_num = psbt.get_output_num(); if !is_merge_unhealthy_utxos(output_num, vutxos, config.unhealthy_utxo_amount) { if utxo_num < config.active_management_lower_limit { require!(input_num < output_num, "require input_num < output_num"); @@ -95,20 +96,19 @@ impl Contract { pub fn check_psbt_output_all_change_address( &self, - psbt: &Psbt, + psbt: &PsbtWrapper, vutxos: &[VUTXO], force_healthy_output: bool, is_cancel: bool, ) -> (u128, u128) { let config = self.internal_config(); - let withdraw_change_address_script_pubkey = config.get_change_address().script_pubkey(); + let withdraw_change_address_script_pubkey = config.get_change_script_pubkey(); let input_amount = vutxos .iter() .map(|vutxo| vutxo.get_amount() as u128) .sum::(); let output_amount = psbt - .unsigned_tx - .output + .get_output() .iter() .map(|v| { if force_healthy_output { @@ -146,7 +146,7 @@ impl Contract { pub fn check_withdraw_psbt( &self, - psbt: &Psbt, + psbt: &PsbtWrapper, target_address_script_pubkey: &ScriptBuf, withdraw_change_address_script_pubkey: &ScriptBuf, vutxos: &[VUTXO], @@ -160,7 +160,7 @@ impl Contract { let mut total_output_amount = 0; let mut actual_received_amounts = vec![]; let mut change_amounts = vec![]; - psbt.unsigned_tx.output.iter().for_each(|output| { + psbt.get_output().iter().for_each(|output| { let output_value = output.value.to_sat() as u128; total_output_amount += output_value; if &output.script_pubkey == target_address_script_pubkey { @@ -176,8 +176,9 @@ impl Contract { ); change_amounts.push(output_value); } else { - let output_address = Address::from_script(&output.script_pubkey, btc_network()) - .expect("Unsupported btc address type"); + let output_address = + Address::from_script(&output.script_pubkey, config.chain.clone()) + .expect("Unsupported btc address type"); env::panic_str( format!("Invalid transaction output address: {}", output_address).as_str(), ); @@ -188,7 +189,7 @@ impl Contract { "only one user output is allowed." ); let actual_received_amount = actual_received_amounts[0]; - let input_num = psbt.unsigned_tx.input.len(); + let input_num = psbt.get_input_num(); let change_num = change_amounts.len(); if input_num > change_num { require!( @@ -222,70 +223,30 @@ impl Contract { gas_fee, config.min_btc_gas_fee, config.max_btc_gas_fee ) ); + + self.check_psbt_chain_specific(psbt, gas_fee); (input_num, change_num, actual_received_amount, gas_fee) } } impl Contract { - pub fn generate_psbt_and_vutxos( - &mut self, - input: Vec, - output: Vec, - ) -> (Psbt, Vec, Vec) { - require!(!input.is_empty(), "empty input"); - require!(!output.is_empty(), "empty output"); - let transaction = BtcTransaction { - version: Version::TWO, - lock_time: LockTime::ZERO, - input: input - .into_iter() - .map(|previous_output| TxIn { - previous_output, - sequence: bitcoin::Sequence::ENABLE_RBF_NO_LOCKTIME, - ..Default::default() - }) - .collect(), - output, - }; - let mut psbt = Psbt::from_unsigned_tx(transaction).expect("Failed to generate PSBT"); - let (utxo_storage_keys, vutxos) = self.remove_vutxo_by_psbt(&psbt); - vutxos.iter().enumerate().for_each(|(i, v)| { - psbt.inputs[i].witness_utxo = Some(TxOut { + pub fn generate_vutxos(&mut self, psbt: &mut PsbtWrapper) -> (Vec, Vec) { + let (utxo_storage_keys, vutxos) = self.remove_vutxo_by_psbt(psbt); + + let input_utxo = vutxos + .iter() + .map(|v| TxOut { value: Amount::from_sat(v.get_amount()), script_pubkey: self - .generate_btc_p2wpkh_address(&v.get_path()) - .script_pubkey(), + .generate_utxo_chain_address(&v.get_path()) + .script_pubkey() + .expect("Invalid address"), }) - }); - (psbt, utxo_storage_keys, vutxos) - } + .collect(); - pub fn generate_psbt_from_original_psbt_and_new_output( - &self, - original_tx_btc_pending_info: &BTCPendingInfo, - output: Vec, - ) -> Psbt { - let original_psbt = original_tx_btc_pending_info.get_psbt(); - let transaction = BtcTransaction { - version: Version::TWO, - lock_time: LockTime::ZERO, - input: original_psbt - .unsigned_tx - .input - .into_iter() - .map(|original_psbt_input| TxIn { - previous_output: original_psbt_input.previous_output, - sequence: bitcoin::Sequence::ENABLE_RBF_NO_LOCKTIME, - ..Default::default() - }) - .collect(), - output, - }; - let mut psbt = Psbt::from_unsigned_tx(transaction).expect("Failed to generate PSBT"); - original_psbt.inputs.iter().enumerate().for_each(|(i, v)| { - psbt.inputs[i].witness_utxo.clone_from(&v.witness_utxo); - }); - psbt + psbt.set_input_utxo(input_utxo); + + (utxo_storage_keys, vutxos) } } diff --git a/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs b/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs index 2cffd4a5..470c17af 100644 --- a/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs @@ -1,14 +1,16 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; impl Contract { pub fn check_active_utxo_management_rbf_psbt_valid( &self, original_tx_btc_pending_info: &BTCPendingInfo, - active_utxo_management_rbf_psbt: &Psbt, + active_utxo_management_rbf_psbt: &PsbtWrapper, ) -> (u128, u128) { - let original_tx = original_tx_btc_pending_info.get_transaction(); + let original_tx = + original_tx_btc_pending_info.get_transaction(&self.internal_config().chain); require!( - original_tx.output.len() == active_utxo_management_rbf_psbt.unsigned_tx.output.len(), + original_tx.output().len() == active_utxo_management_rbf_psbt.get_output_num(), "Invalid output num" ); let (actual_received_amount, gas_fee) = self.check_psbt_output_all_change_address( @@ -24,7 +26,7 @@ impl Contract { &mut self, account_id: &AccountId, original_btc_pending_verify_id: String, - output: Vec, + active_utxo_management_rbf_psbt: PsbtWrapper, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -34,8 +36,6 @@ impl Contract { ); original_tx_btc_pending_info.assert_not_canceled(); original_tx_btc_pending_info.assert_active_utxo_management_original_pending_verify_tx(); - let active_utxo_management_rbf_psbt = self - .generate_psbt_from_original_psbt_and_new_output(original_tx_btc_pending_info, output); let mut btc_pending_info = init_rbf_btc_pending_info( original_tx_btc_pending_info, PendingInfoState::ActiveUtxoManagementRbf(RbfState { diff --git a/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs b/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs index f7f28ad7..ddc12326 100644 --- a/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs @@ -1,10 +1,11 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; impl Contract { pub fn check_cancel_active_utxo_management_rbf_psbt_valid( &self, original_tx_btc_pending_info: &BTCPendingInfo, - cancel_active_utxo_management_rbf_psbt: &Psbt, + cancel_active_utxo_management_rbf_psbt: &PsbtWrapper, ) -> (u128, u128) { let (actual_received_amount, gas_fee) = self.check_psbt_output_all_change_address( cancel_active_utxo_management_rbf_psbt, @@ -17,8 +18,9 @@ impl Contract { pub fn internal_cancel_active_utxo_management( &mut self, + _account_id: &AccountId, original_btc_pending_verify_id: String, - output: Vec, + cancel_active_utxo_management_rbf_psbt: PsbtWrapper, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -29,8 +31,6 @@ impl Contract { ); original_tx_btc_pending_info.assert_not_canceled(); original_tx_btc_pending_info.assert_active_utxo_management_original_pending_verify_tx(); - let cancel_active_utxo_management_rbf_psbt = self - .generate_psbt_from_original_psbt_and_new_output(original_tx_btc_pending_info, output); let mut btc_pending_info = init_rbf_btc_pending_info( original_tx_btc_pending_info, diff --git a/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs b/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs index dc2ca5b8..370e63b9 100644 --- a/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs +++ b/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs @@ -1,10 +1,11 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; impl Contract { pub fn check_cancel_withdraw_rbf_psbt_valid( &self, original_tx_btc_pending_info: &BTCPendingInfo, - cancel_withdraw_rbf_psbt: &Psbt, + cancel_withdraw_rbf_psbt: &PsbtWrapper, ) -> (u128, u128) { let (actual_received_amount, gas_fee) = self.check_psbt_output_all_change_address( cancel_withdraw_rbf_psbt, @@ -17,8 +18,9 @@ impl Contract { pub fn internal_cancel_withdraw( &mut self, + _account_id: &AccountId, original_btc_pending_verify_id: String, - output: Vec, + cancel_withdraw_rbf_psbt: PsbtWrapper, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -29,8 +31,6 @@ impl Contract { ); original_tx_btc_pending_info.assert_not_canceled(); original_tx_btc_pending_info.assert_withdraw_original_pending_verify_tx(); - let cancel_withdraw_rbf_psbt = self - .generate_psbt_from_original_psbt_and_new_output(original_tx_btc_pending_info, output); let mut btc_pending_info = init_rbf_btc_pending_info( original_tx_btc_pending_info, @@ -47,10 +47,7 @@ impl Contract { btc_pending_info.gas_fee = gas_fee; btc_pending_info.burn_amount = gas_fee; btc_pending_info.actual_received_amount = actual_received_amount; - // Ensure that the RBF transaction pays more gas than the previous transaction. - let max_gas_fee = original_tx_btc_pending_info.get_max_gas_fee(); - let additional_gas_amount = gas_fee.saturating_sub(max_gas_fee); - require!(additional_gas_amount > 0, "No gas increase."); + Self::check_withdraw_chain_specific(original_tx_btc_pending_info, gas_fee); let excess_gas_fee = gas_fee .saturating_sub(btc_pending_info.transfer_amount - btc_pending_info.withdraw_fee); if excess_gas_fee > 0 { diff --git a/contracts/satoshi-bridge/src/rbf/mod.rs b/contracts/satoshi-bridge/src/rbf/mod.rs index 1b3639eb..4aa0441f 100644 --- a/contracts/satoshi-bridge/src/rbf/mod.rs +++ b/contracts/satoshi-bridge/src/rbf/mod.rs @@ -1,3 +1,4 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; pub mod active_utxo_management; @@ -10,11 +11,11 @@ impl Contract { &mut self, original_btc_pending_verify_id: &str, mut btc_pending_info: BTCPendingInfo, - psbt: Psbt, + psbt: PsbtWrapper, is_cancel: bool, ) -> String { - let rbf_psbt_hex = psbt.serialize_hex(); - let btc_pending_id = psbt.extract_tx().unwrap().compute_txid().to_string(); + let rbf_psbt_hex = psbt.serialize(); + let btc_pending_id = psbt.get_pending_id(); btc_pending_info.btc_pending_id.clone_from(&btc_pending_id); btc_pending_info.psbt_hex = rbf_psbt_hex; require!( diff --git a/contracts/satoshi-bridge/src/rbf/withdraw.rs b/contracts/satoshi-bridge/src/rbf/withdraw.rs index cbeec961..90a1207a 100644 --- a/contracts/satoshi-bridge/src/rbf/withdraw.rs +++ b/contracts/satoshi-bridge/src/rbf/withdraw.rs @@ -1,23 +1,25 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; impl Contract { pub fn check_withdraw_rbf_psbt_valid( &self, original_tx_btc_pending_info: &BTCPendingInfo, - withdraw_rbf_psbt: &Psbt, + withdraw_rbf_psbt: &PsbtWrapper, ) -> (u128, u128) { let withdraw_change_address_script_pubkey = - self.internal_config().get_change_address().script_pubkey(); - let original_tx = original_tx_btc_pending_info.get_transaction(); + self.internal_config().get_change_script_pubkey(); + let original_tx = + original_tx_btc_pending_info.get_transaction(&self.internal_config().chain); let target_address_script_pubkey = original_tx - .output + .output() .iter() .find(|v| v.script_pubkey != withdraw_change_address_script_pubkey) .cloned() .expect("The original tx is not a user withdraw tx.") .script_pubkey; require!( - original_tx.output.len() == withdraw_rbf_psbt.unsigned_tx.output.len(), + original_tx.output().len() == withdraw_rbf_psbt.get_output_num(), "Invalid output num" ); let (_, _, actual_received_amount, gas_fee) = self.check_withdraw_psbt( @@ -35,7 +37,7 @@ impl Contract { &mut self, account_id: &AccountId, original_btc_pending_verify_id: String, - output: Vec, + withdraw_rbf_psbt: PsbtWrapper, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -45,8 +47,6 @@ impl Contract { ); original_tx_btc_pending_info.assert_not_canceled(); original_tx_btc_pending_info.assert_withdraw_original_pending_verify_tx(); - let withdraw_rbf_psbt = self - .generate_psbt_from_original_psbt_and_new_output(original_tx_btc_pending_info, output); let mut btc_pending_info = init_rbf_btc_pending_info( original_tx_btc_pending_info, @@ -60,10 +60,8 @@ impl Contract { btc_pending_info.gas_fee = gas_fee; btc_pending_info.actual_received_amount = actual_received_amount; btc_pending_info.burn_amount = actual_received_amount + gas_fee; - // Ensure that the RBF transaction pays more gas than the previous transaction. - let max_gas_fee = original_tx_btc_pending_info.get_max_gas_fee(); - let additional_gas_amount = gas_fee.saturating_sub(max_gas_fee); - require!(additional_gas_amount > 0, "No gas increase."); + Self::check_withdraw_chain_specific(original_tx_btc_pending_info, gas_fee); + self.internal_unwrap_mut_btc_pending_info(&original_btc_pending_verify_id) .update_max_gas_fee(gas_fee); self.set_rbf_pending_info( diff --git a/contracts/satoshi-bridge/src/unit/mod.rs b/contracts/satoshi-bridge/src/unit/mod.rs index 57b97bea..f7faeb60 100644 --- a/contracts/satoshi-bridge/src/unit/mod.rs +++ b/contracts/satoshi-bridge/src/unit/mod.rs @@ -1,3 +1,7 @@ +#[cfg(not(feature = "zcash"))] +use crate::network::Chain::BitcoinTestnet; +#[cfg(feature = "zcash")] +use crate::network::Chain::ZcashTestnet; use crate::*; use near_sdk::test_utils::VMContextBuilder; pub use near_sdk::testing_env; @@ -34,6 +38,10 @@ pub fn btc_light_client_id() -> AccountId { pub fn init_contract() -> Contract { Contract::new(Config { + #[cfg(not(feature = "zcash"))] + chain: BitcoinTestnet, + #[cfg(feature = "zcash")] + chain: ZcashTestnet, chain_signatures_account_id: chain_signatures_id(), nbtc_account_id: nbtc_id(), btc_light_client_account_id: btc_light_client_id(), @@ -69,6 +77,8 @@ pub fn init_contract() -> Contract { chain_signatures_root_public_key: None, change_address: None, unhealthy_utxo_amount: 1000, + #[cfg(feature = "zcash")] + expiry_height_gap: 1000, }) } diff --git a/contracts/satoshi-bridge/src/utxo.rs b/contracts/satoshi-bridge/src/utxo.rs index e6832d36..ed245dd6 100644 --- a/contracts/satoshi-bridge/src/utxo.rs +++ b/contracts/satoshi-bridge/src/utxo.rs @@ -1,3 +1,4 @@ +use crate::psbt_wrapper::PsbtWrapper; use crate::*; #[near(serializers = [borsh, json])] @@ -55,15 +56,12 @@ impl From for VUTXO { } impl Contract { - pub fn remove_vutxo_by_psbt(&mut self, psbt: &Psbt) -> (Vec, Vec) { + pub fn remove_vutxo_by_psbt(&mut self, psbt: &PsbtWrapper) -> (Vec, Vec) { let mut utxo_storage_keys = vec![]; let vutxos = psbt - .unsigned_tx - .input - .clone() + .get_utxo_storage_keys() .into_iter() - .map(|input| { - let utxo_storage_key = out_point_to_utxo_storage_key(&input.previous_output); + .map(|utxo_storage_key| { utxo_storage_keys.push(utxo_storage_key.clone()); self.data_mut() .utxos diff --git a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs new file mode 100644 index 00000000..79137d94 --- /dev/null +++ b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs @@ -0,0 +1,192 @@ +use crate::psbt_wrapper::PsbtWrapper; +use crate::*; +use bitcoin::{OutPoint, TxOut}; +use near_sdk::json_types::U128; +use near_sdk::{near, require, AccountId}; + +pub const GAS_RBF_CALL_BACK: Gas = Gas::from_tgas(100); +pub const GAS_FOR_ACTIVE_UTXO_MANAGMENT_CALLBACK: Gas = Gas::from_tgas(100); + +macro_rules! define_rbf_callback { + ($method:ident, $callback_name:ident, $internal_fn:ident) => { + impl Contract { + pub(crate) fn $method( + &mut self, + user_account_id: AccountId, + original_btc_pending_verify_id: String, + output: Vec, + ) { + self.get_last_block_height_promise().then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_RBF_CALL_BACK) + .$callback_name(user_account_id, original_btc_pending_verify_id, output), + ); + } + } + + #[near] + impl Contract { + #[private] + pub fn $callback_name( + &mut self, + account_id: AccountId, + original_btc_pending_verify_id: String, + output: Vec, + #[callback_unwrap] last_block_height: u32, + ) { + let expiry_height = last_block_height + self.get_config().expiry_height_gap; + + let original_tx_btc_pending_info = + self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); + + let new_psbt = self.generate_psbt_from_original_psbt_and_new_output( + original_tx_btc_pending_info, + output, + expiry_height, + ); + + let btc_pending_id = + self.$internal_fn(&account_id, original_btc_pending_verify_id, new_psbt); + + self.internal_unwrap_mut_account(&account_id) + .btc_pending_sign_id = Some(btc_pending_id.clone()); + + Event::GenerateBtcPendingInfo { + account_id: &account_id, + btc_pending_id: &btc_pending_id, + } + .emit(); + } + } + }; +} + +define_rbf_callback!( + withdraw_rbf_chain_specific, + withdraw_rbf_callback, + internal_withdraw_rbf +); +define_rbf_callback!( + cancel_withdraw_chain_specific, + cancel_withdraw_callback, + internal_cancel_withdraw +); +define_rbf_callback!( + active_utxo_management_rbf_chain_specific, + active_utxo_management_rbf_callback, + internal_active_utxo_management_rbf +); +define_rbf_callback!( + cancel_active_utxo_management_chain_specific, + cancel_active_utxo_management_callback, + internal_cancel_active_utxo_management +); + +#[near] +impl Contract { + #[private] + pub fn ft_on_transfer_callback( + &mut self, + sender_id: AccountId, + amount: U128, + target_btc_address: String, + input: Vec, + output: Vec, + max_gas_fee: Option, + #[callback_unwrap] last_block_height: u32, + ) -> U128 { + let expiry_height = last_block_height + self.get_config().expiry_height_gap; + let mut psbt = PsbtWrapper::new(input, output, expiry_height, self.internal_config()); + self.create_btc_pending_info(sender_id, amount.0, target_btc_address, &mut psbt, max_gas_fee); + + U128(0) + } + + #[private] + pub fn active_utxo_management_callback( + &mut self, + account_id: AccountId, + input: Vec, + output: Vec, + #[callback_unwrap] last_block_height: u32, + ) { + let expiry_height = last_block_height + self.get_config().expiry_height_gap; + + let mut psbt = PsbtWrapper::new(input, output, expiry_height, self.internal_config()); + + self.create_active_utxo_management_pending_info(account_id, &mut psbt); + } +} + +impl Contract { + pub(crate) fn check_psbt_chain_specific(&self, psbt: &PsbtWrapper, gas_fee: u128) { + let min_fee = psbt.get_min_fee(); + require!( + gas_fee >= min_fee.into_u64() as u128, + format!( + "Invalid gas fee ({}). min fee = {}.", + gas_fee, + min_fee.into_u64() + ) + ); + } + + pub(crate) fn check_withdraw_chain_specific( + _original_tx_btc_pending_info: &BTCPendingInfo, + _gas_fee: u128, + ) { + } + + pub(crate) fn ft_on_transfer_withdraw_chain_specific( + &self, + sender_id: AccountId, + amount: u128, + target_btc_address: String, + input: Vec, + output: Vec, + max_gas_fee: Option, + ) -> PromiseOrValue { + PromiseOrValue::Promise( + self.get_last_block_height_promise().then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_FT_ON_TRANSFER_CALL_BACK) + .ft_on_transfer_callback( + sender_id, + amount.into(), + target_btc_address, + input, + output, + max_gas_fee, + ), + ), + ) + } + + pub(crate) fn active_utxo_management_chain_specific( + &mut self, + account_id: AccountId, + input: Vec, + output: Vec, + ) { + self.get_last_block_height_promise().then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_ACTIVE_UTXO_MANAGMENT_CALLBACK) + .active_utxo_management_callback(account_id, input, output), + ); + } + + pub(crate) fn generate_psbt_from_original_psbt_and_new_output( + &self, + original_tx_btc_pending_info: &BTCPendingInfo, + output: Vec, + expiry_height: u32, + ) -> PsbtWrapper { + let original_psbt = original_tx_btc_pending_info.get_psbt(); + PsbtWrapper::from_original_psbt( + original_psbt, + output, + expiry_height, + self.internal_config(), + ) + } +} diff --git a/contracts/satoshi-bridge/src/zcash_utils/mod.rs b/contracts/satoshi-bridge/src/zcash_utils/mod.rs new file mode 100644 index 00000000..89ef3534 --- /dev/null +++ b/contracts/satoshi-bridge/src/zcash_utils/mod.rs @@ -0,0 +1,3 @@ +pub mod contract_methods; +pub mod psbt_wrapper; +pub mod transaction; diff --git a/contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs b/contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs new file mode 100644 index 00000000..ba5b5df7 --- /dev/null +++ b/contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs @@ -0,0 +1,332 @@ +use crate::*; +use std::io; +use std::io::{Cursor, Read, Write}; + +use crate::zcash_utils::transaction::Transaction; +use bitcoin::hashes::Hash; +use bitcoin::{OutPoint, TxOut}; +use near_sdk::require; +use zcash_primitives::transaction::fees::transparent::{InputSize, OutputView}; +use zcash_primitives::transaction::fees::FeeRule; +use zcash_primitives::transaction::{TransactionData, TxVersion}; +use zcash_protocol::consensus::{BlockHeight, BranchId}; +use zcash_protocol::value::Zatoshis; +use zcash_transparent::bundle::Authorized; +use zcash_transparent::bundle::TxIn as ZcashTxIn; +use zcash_transparent::bundle::TxOut as ZcashTxOut; +use zcash_transparent::sighash::SighashType; + +pub struct PsbtWrapper { + branch_id: BranchId, + expiry_height: u32, + vin: Vec>, + vout: Vec, + inputs_utxo: Vec, +} + +impl PsbtWrapper { + pub fn new( + input: Vec, + output: Vec, + expiry_height: u32, + config: &Config, + ) -> Self { + require!(!input.is_empty(), "empty input"); + require!(!output.is_empty(), "empty output"); + + let sequence = bitcoin::Sequence::MAX; + let vout = output + .clone() + .into_iter() + .map(|o| ZcashTxOut { + value: Zatoshis::from_u64(o.value.to_sat()).unwrap(), + script_pubkey: zcash_primitives::legacy::Script(o.script_pubkey.to_bytes()), + }) + .collect(); + + let vin: Vec> = input + .into_iter() + .map(|i| ZcashTxIn { + prevout: zcash_transparent::bundle::OutPoint::new(*i.txid.as_byte_array(), i.vout), + script_sig: zcash_primitives::legacy::Script::default(), + sequence: sequence.0, + }) + .collect(); + + let inputs = vec![ + ZcashTxOut { + value: Zatoshis::from_u64(0).unwrap(), + script_pubkey: zcash_primitives::legacy::Script::default(), + }; + vin.len() + ]; + + Self { + branch_id: get_branch_id(expiry_height, config), + expiry_height, + vout, + vin, + inputs_utxo: inputs, + } + } + + pub fn from_original_psbt( + original_psbt: PsbtWrapper, + output: Vec, + expiry_height: u32, + config: &Config, + ) -> Self { + let vout = if output.is_empty() { + original_psbt.vout.clone() + } else { + output + .clone() + .into_iter() + .map(|o| ZcashTxOut { + value: Zatoshis::from_u64(o.value.to_sat()).unwrap(), + script_pubkey: zcash_primitives::legacy::Script(o.script_pubkey.to_bytes()), + }) + .collect() + }; + + Self { + branch_id: get_branch_id(expiry_height, config), + expiry_height, + vin: original_psbt.vin, + vout, + inputs_utxo: original_psbt.inputs_utxo, + } + } + + pub fn set_input_utxo(&mut self, input_utxo: Vec) { + input_utxo.iter().enumerate().for_each(|(i, v)| { + self.inputs_utxo[i] = ZcashTxOut { + value: Zatoshis::from_u64(v.value.to_sat()).unwrap(), + script_pubkey: zcash_primitives::legacy::Script(v.script_pubkey.to_bytes()), + } + }); + } + + pub fn get_input_num(&self) -> usize { + self.vin.len() + } + + pub fn get_output_num(&self) -> usize { + self.vout.len() + } + pub fn get_utxo_storage_keys(&self) -> Vec { + self.vin + .clone() + .into_iter() + .map(|out_point| { + generate_utxo_storage_key( + out_point.prevout.txid().to_string(), + out_point.prevout.n(), + ) + }) + .collect() + } + + pub fn get_output(&self) -> Vec { + self.vout + .clone() + .into_iter() + .map(|i| TxOut { + value: bitcoin::Amount::from_sat(i.value.into_u64()), + script_pubkey: ScriptBuf::from_bytes(i.script_pubkey.0), + }) + .collect() + } + + pub fn to_bytes(&self) -> Vec { + let mut buf = Vec::::new(); + let version: u8 = 2; + buf.push(version); + match self.branch_id { + BranchId::Nu6 => buf.write_all(&[7u8; 1]).unwrap(), + BranchId::Nu6_1 => buf.write_all(&[8u8; 1]).unwrap(), + _ => unreachable!(), + } + buf.write_all(&self.expiry_height.to_le_bytes()).unwrap(); + + let len = self.vin.len() as u64; + buf.write_all(&len.to_le_bytes()).unwrap(); + + for t in self.vin.clone() { + t.write(&mut buf).unwrap(); + } + + let len = self.vout.len() as u64; + buf.write_all(&len.to_le_bytes()).unwrap(); + + for t in self.vout.clone() { + t.write(&mut buf).unwrap(); + } + + let len = self.inputs_utxo.len() as u64; + buf.write_all(&len.to_le_bytes()).unwrap(); + + for t in self.inputs_utxo.clone() { + t.write(&mut buf).unwrap(); + } + + buf + } + pub fn serialize(&self) -> String { + hex::encode(self.to_bytes()) + } + + pub fn deserialize(psbt_hex: &String) -> Self { + let bytes = hex::decode(&psbt_hex).unwrap(); + let mut rdr = Cursor::new(bytes); + let version = read_u8(&mut rdr).unwrap(); + let branch_id = if version == 2 { + let branch_id_u8 = read_u8(&mut rdr).unwrap(); + match branch_id_u8 { + 7 => BranchId::Nu6, + 8 => BranchId::Nu6_1, + _ => unreachable!(), + } + } else { + BranchId::Nu6_1 + }; + + let expiry_height = read_u32_le(&mut rdr).unwrap(); + + let vin_len = read_u64_le(&mut rdr).unwrap() as usize; + let mut vin = Vec::with_capacity(vin_len); + for _ in 0..vin_len { + vin.push(ZcashTxIn::::read(&mut rdr).unwrap()); + } + + let vout_len = read_u64_le(&mut rdr).unwrap() as usize; + let mut vout = Vec::with_capacity(vout_len); + for _ in 0..vout_len { + vout.push(ZcashTxOut::read(&mut rdr).unwrap()); + } + + let inputs_len = read_u64_le(&mut rdr).unwrap() as usize; + let mut inputs = Vec::with_capacity(inputs_len); + for _ in 0..inputs_len { + inputs.push(ZcashTxOut::read(&mut rdr).unwrap()); + } + + Self { + branch_id, + expiry_height, + vin, + vout, + inputs_utxo: inputs, + } + } + + pub fn extract_tx_bytes_with_sign(&self) -> Vec { + self.get_zcash_tx().encode().unwrap() + } + + pub fn get_zcash_tx(&self) -> Transaction { + let transparent_bundle = zcash_transparent::bundle::Bundle { + vin: self.vin.clone(), + vout: self.vout.clone(), + authorization: zcash_transparent::bundle::Authorized, + }; + + let inner_tx = TransactionData::from_parts( + TxVersion::V5, + self.branch_id, + 0, + BlockHeight::from(self.expiry_height), + Some(transparent_bundle), + None, + None, + None, + ) + .freeze() + .unwrap(); + + Transaction { inner_tx } + } + + pub fn get_pending_id(&self) -> String { + self.get_zcash_tx().compute_txid().to_string() + } + + #[allow(unused_variables)] + pub fn get_hash_to_sign(&self, vin: usize, public_key: &bitcoin::PublicKey) -> [u8; 32] { + let tx_data = WrappedTransaction::to_zcash_tx( + &self.vin, + &self.vout, + &self.inputs_utxo, + self.expiry_height, + public_key, + self.branch_id, + ); + let txid_parts = tx_data.digest(zcash_primitives::transaction::txid::TxIdDigester); + let script = &self.inputs_utxo[vin].script_pubkey; + let sig_input = zcash_primitives::transaction::sighash::SignableInput::Transparent( + zcash_transparent::sighash::SignableInput::from_parts( + SighashType::ALL, + vin, + script, + script, + self.inputs_utxo[vin].value, + ), + ); + + zcash_primitives::transaction::sighash::signature_hash(&tx_data, &sig_input, &txid_parts) + .as_ref() + .clone() + } + + pub fn save_signature( + &mut self, + sign_index: usize, + signature: SignatureResponse, + public_key: bitcoin::secp256k1::PublicKey, + ) { + let script_sig = bitcoin::script::Builder::new() + .push_slice(signature.to_btc_signature().serialize()) + .push_key(&bitcoin::PublicKey::new(public_key)) + .into_script(); + + self.vin[sign_index].script_sig = zcash_primitives::legacy::Script(script_sig.to_bytes()); + } + + pub fn get_min_fee(&self) -> Zatoshis { + let fee_rule = zcash_primitives::transaction::fees::zip317::FeeRule::standard(); + fee_rule + .fee_required( + &zcash_protocol::consensus::MainNetwork, + BlockHeight::from_u32(0u32), + vec![InputSize::STANDARD_P2PKH; self.vin.len()], + self.vout.iter().map(|i| i.serialized_size()), + 0, + 0, + 0, + ) + .unwrap() + } +} + +fn get_branch_id(expiry_height: u32, config: &Config) -> BranchId { + let current_height = expiry_height - config.expiry_height_gap; + return config.chain.get_branch_id(current_height); +} + +fn read_u32_le(r: &mut R) -> io::Result { + let mut b = [0u8; 4]; + r.read_exact(&mut b)?; + Ok(u32::from_le_bytes(b)) +} + +fn read_u8(r: &mut R) -> io::Result { + let mut b = [0u8; 1]; + r.read_exact(&mut b)?; + Ok(b[0]) +} + +fn read_u64_le(r: &mut R) -> io::Result { + let mut b = [0u8; 8]; + r.read_exact(&mut b)?; + Ok(u64::from_le_bytes(b)) +} diff --git a/contracts/satoshi-bridge/src/zcash_utils/transaction.rs b/contracts/satoshi-bridge/src/zcash_utils/transaction.rs new file mode 100644 index 00000000..021c2bb6 --- /dev/null +++ b/contracts/satoshi-bridge/src/zcash_utils/transaction.rs @@ -0,0 +1,109 @@ +use crate::network; +use bitcoin::hashes::Hash; +use bitcoin::{absolute, ScriptBuf, TxOut, Txid}; +use zcash_primitives::consensus::{BlockHeight, BranchId}; +use zcash_primitives::transaction::{ + Transaction as ZCashTransaction, TransactionData, TxVersion, Unauthorized, +}; +use zcash_transparent::builder::TransparentBuilder; +use zcash_transparent::bundle::Authorized; + +#[derive(Debug, PartialEq)] +pub struct Transaction { + pub inner_tx: ZCashTransaction, +} + +impl Transaction { + pub fn compute_txid(&self) -> Txid { + Txid::from_byte_array(*self.inner_tx.txid().as_ref()) + } + + pub fn output(&self) -> Vec { + let outputs = self.inner_tx.transparent_bundle().unwrap().vout.clone(); + outputs + .into_iter() + .map(|o| bitcoin::TxOut { + value: bitcoin::Amount::from_sat(o.value.into_u64()), + script_pubkey: ScriptBuf::from(bitcoin::Script::from_bytes(&o.script_pubkey.0)), + }) + .collect() + } + + pub fn lock_time(&self) -> absolute::LockTime { + let lock_time = self.inner_tx.lock_time(); + absolute::LockTime::from_consensus(lock_time) + } + + pub fn encode(&self) -> Result, std::io::Error> { + let mut buf = Vec::new(); + self.inner_tx.write(&mut buf)?; + + Ok(buf) + } + + pub fn decode(data: &[u8], chain: &network::Chain) -> Result { + let mut cursor = std::io::Cursor::new(data); + let branch_id = match chain { + network::Chain::ZcashTestnet => BranchId::Nu6_1, + _ => BranchId::Nu6, + }; + let tx = ZCashTransaction::read(&mut cursor, branch_id)?; + Ok(Self { inner_tx: tx }) + } + + pub fn get_transparent_builder( + vin: &Vec>, + vout: &Vec, + input: &Vec, + public_key: &bitcoin::PublicKey, + ) -> TransparentBuilder { + let mut builder = zcash_transparent::builder::TransparentBuilder::empty(); + + for index in 0..vin.len() { + builder + .add_input( + public_key.inner, + vin[index].prevout.clone(), + input[index].clone(), + ) + .unwrap(); + } + + for output in vout { + let key = output.script_pubkey.0[3..23].try_into().unwrap(); + let to = zcash_transparent::address::TransparentAddress::PublicKeyHash(key); + builder.add_output(&to, output.value).unwrap(); + } + + builder + } + + pub fn to_zcash_tx( + vin: &Vec>, + vout: &Vec, + input: &Vec, + expiry_height: u32, + public_key: &bitcoin::PublicKey, + branch_id: BranchId, + ) -> TransactionData { + let transparent_bundle = Self::get_transparent_builder(vin, vout, input, public_key) + .build() + .unwrap(); + + let lock_time = 0; + let expiry_height = BlockHeight::from_u32(expiry_height); + + let inner_tx = TransactionData::from_parts( + TxVersion::V5, + branch_id, + lock_time, + expiry_height, + Some(transparent_bundle), + None, + None, + None, + ); + + inner_tx + } +} diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index b5aa024c..c1fb6907 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -21,6 +21,8 @@ use satoshi_bridge::{ use crate::{PRICE_ORICE_NEAR_PRICE_ID, PYTH_ORICE_NEAR_PRICE_ID}; +const DATA_IMAGE_SVG_NEAR_ICON: &str = "data:image/svg+xml,%3Csvg%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0_2351_779)%22%3E%3Cpath%20d%3D%22M16%2032C24.8366%2032%2032%2024.8366%2032%2016C32%207.16344%2024.8366%200%2016%200C7.16344%200%200%207.16344%200%2016C0%2024.8366%207.16344%2032%2016%2032Z%22%20fill%3D%22%2300E99F%22%2F%3E%3Cpath%20d%3D%22M16.0006%2028.2858C22.7858%2028.2858%2028.2863%2022.7853%2028.2863%2016.0001C28.2863%209.21486%2022.7858%203.71436%2016.0006%203.71436C9.21535%203.71436%203.71484%209.21486%203.71484%2016.0001C3.71484%2022.7853%209.21535%2028.2858%2016.0006%2028.2858Z%22%20stroke%3D%22black%22%2F%3E%3Cpath%20d%3D%22M27.1412%2016C27.1412%2022.1541%2022.1524%2027.1429%2015.9983%2027.1429C9.84427%2027.1429%204.85547%2022.1541%204.85547%2016C4.85547%209.84598%209.84427%204.85718%2015.9983%204.85718C22.1524%204.85718%2027.1412%209.84598%2027.1412%2016Z%22%20stroke%3D%22black%22%20stroke-width%3D%220.5%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16.2167%2011.1743C15.9198%2011.1643%2015.6095%2011.1622%2015.2868%2011.1668V9.32056H13.8907V11.2217C13.1583%2011.2659%2012.3792%2011.3332%2011.5625%2011.4149V12.811H12.9586V18.8607H11.7952V20.4895H13.8893V22.5836H15.2854V20.4895H16.2161V22.5836H17.3795V20.4895C18.4654%2020.4119%2020.6836%2019.7915%2020.8698%2017.93C21.0559%2016.0686%2019.7064%2015.6032%2019.0083%2015.6032C19.5512%2015.3705%2020.544%2014.5328%2020.1717%2013.0436C19.9215%2012.043%2019.0072%2011.5204%2017.6128%2011.2984V9.32164H16.2167V11.1743ZM18.0737%2013.9723C18.0737%2012.8554%2016.2122%2012.7313%2015.2815%2012.8088V15.1356C16.2122%2015.2132%2018.0737%2015.0891%2018.0737%2013.9723ZM15.2826%2016.5322V18.8591C16.2133%2018.9366%2018.3075%2018.859%2018.3075%2017.6956C18.3075%2016.2994%2016.2133%2016.4547%2015.2826%2016.5322Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0_2351_779%22%3E%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"; + pub struct Context { pub root: Account, pub tx_listener: Account, @@ -140,6 +142,9 @@ impl Context { .args_json(json!({ "controller": root.id(), "bridge_id": bridge_contract.id(), + "name": "Near WTC".to_string(), + "symbol": "NBTC".to_string(), + "icon": Some(DATA_IMAGE_SVG_NEAR_ICON.to_string()), })) .transact() .await @@ -149,7 +154,7 @@ impl Context { chain_signatures_contract .call("new") .args_json(json!({ - "public_key": "secp256k1:4NfTiv3UsGahebgTaHyD9vF8KYKMBnfd6kh94mK6xv8fGBiJB8TBtFMP5WWXz6B89Ac1fbpzPwAvoyQebemHFwx3", + "public_key": "secp256k1:4NfTiv3UsGahebgTaHyD9vF8KYKMBnfd6kh94mK6xv8fGBiJB8TBtFMP5WWXz6B89Ac1fbpzPwAvoyQebemHFwx3", })) .transact() .await @@ -159,6 +164,7 @@ impl Context { root.call(bridge_contract.id(), "new") .args_json(json!({ "config": { + "chain": "BitcoinMainnet", "chain_signatures_account_id": chain_signatures_contract.id(), "nbtc_account_id": nbtc_contract.id(), "btc_light_client_account_id": btc_light_client_contract.id(), @@ -1082,6 +1088,7 @@ impl UpgradeContext { root.call(previous_satoshi_bridge_contract.id(), "new") .args_json(json!({ "config": { + "chain": "BitcoinMainnet", "chain_signatures_account_id": chain_signatures_contract.id(), "nbtc_account_id": previous_nbtc_contract.id(), "btc_light_client_account_id": btc_light_client_contract.id(), From a0a9e61f0990fc11f57e0459f3efac2bd4e69e53 Mon Sep 17 00:00:00 2001 From: Karim Date: Thu, 9 Oct 2025 23:00:42 +0100 Subject: [PATCH 07/28] feat: implement safe deposit (#5) * feat: implement safe deposit * Fix burn * Replace `{{UTXO_TX_ID}}` * Remove safe_burn * Storage deposit on init * Fix after merge * Add `safe_deposit` field * Fix safe deposit with the new safe_deposit message * Fix tests and lint * Bump version --- Cargo.lock | 4 +- contracts/nbtc/Cargo.toml | 2 +- contracts/nbtc/src/lib.rs | 33 +++- contracts/satoshi-bridge/Cargo.toml | 2 +- contracts/satoshi-bridge/src/api/bridge.rs | 81 ++++++++++ .../satoshi-bridge/src/api/token_receiver.rs | 6 +- contracts/satoshi-bridge/src/api/view.rs | 6 + .../src/bitcoin_utils/contract_methods.rs | 8 +- .../src/btc_light_client/deposit.rs | 149 +++++++++++++++++- contracts/satoshi-bridge/src/deposit_msg.rs | 11 ++ contracts/satoshi-bridge/src/nbtc/burn.rs | 2 +- contracts/satoshi-bridge/src/nbtc/mod.rs | 1 + contracts/satoshi-bridge/src/psbt.rs | 11 +- contracts/satoshi-bridge/src/unit/mod.rs | 1 + .../satoshi-bridge/src/unit/post_action.rs | 14 ++ contracts/satoshi-bridge/src/unit/storage.rs | 48 ++++++ .../src/zcash_utils/contract_methods.rs | 8 +- .../tests/test_satoshi_bridge.rs | 42 +++++ 18 files changed, 413 insertions(+), 16 deletions(-) create mode 100644 contracts/satoshi-bridge/src/unit/storage.rs diff --git a/Cargo.lock b/Cargo.lock index be6de1c7..e1a72fac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2243,7 +2243,7 @@ dependencies = [ [[package]] name = "nbtc" -version = "0.2.0" +version = "0.3.0" dependencies = [ "near-contract-standards", "near-sdk", @@ -3715,7 +3715,7 @@ dependencies = [ [[package]] name = "satoshi-bridge" -version = "0.6.0" +version = "0.7.0" dependencies = [ "bitcoin", "core2", diff --git a/contracts/nbtc/Cargo.toml b/contracts/nbtc/Cargo.toml index 623515a8..84ce633b 100644 --- a/contracts/nbtc/Cargo.toml +++ b/contracts/nbtc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nbtc" -version = "0.2.0" +version = "0.3.0" edition.workspace = true publish.workspace = true repository.workspace = true diff --git a/contracts/nbtc/src/lib.rs b/contracts/nbtc/src/lib.rs index 4aaf38e3..7bc49d65 100644 --- a/contracts/nbtc/src/lib.rs +++ b/contracts/nbtc/src/lib.rs @@ -60,7 +60,7 @@ impl Contract { decimals: u8, ) -> Self { require!(!env::state_exists(), "Already initialized"); - Self { + let mut contract = Self { controller, bridge_id, token: FungibleToken::new(StorageKey::FungibleToken), @@ -76,7 +76,13 @@ impl Contract { decimals, }), ), - } + }; + + contract + .token + .internal_register_account(&contract.bridge_id); + + contract } #[payable] @@ -86,6 +92,29 @@ impl Contract { self.controller = controller; } + #[payable] + pub fn safe_mint( + &mut self, + account_id: AccountId, + amount: U128, + msg: Option, + ) -> PromiseOrValue { + self.assert_bridge(); + + if self.token.accounts.get(&account_id).is_none() { + return PromiseOrValue::Value(U128(0)); + } + + if let Some(msg) = msg { + self.token.internal_deposit(&self.bridge_id, amount.into()); + + self.ft_transfer_call(account_id, amount, None, msg) + } else { + self.token.internal_deposit(&account_id, amount.into()); + PromiseOrValue::Value(amount) + } + } + pub fn mint( &mut self, mint_account_id: AccountId, diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index cc7f540c..93a11c8f 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.6.0" +version = "0.7.0" edition.workspace = true publish.workspace = true repository.workspace = true diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index f96fa0a5..2a69d6e1 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -28,6 +28,10 @@ impl Contract { tx_index: u64, merkle_proof: Vec, ) -> Promise { + require!( + deposit_msg.safe_deposit.is_none(), + "safe_deposit not supported in verify_deposit" + ); let path = get_deposit_path(&deposit_msg); let transaction = WrappedTransaction::decode(&tx_bytes, &self.internal_config().chain) .expect("Deserialization tx_bytes failed"); @@ -68,6 +72,83 @@ impl Contract { ) } + /// Safe version of verify_deposit, only supports minting nBTC with safe_deposit message and revert the deposit on failed XCC calls. + /// It doesn't charge deposit fee, and doesn't pay the token storage for the user + /// + /// # Arguments + /// + /// * `deposit_msg` - Information used to generate the deposit address path. + /// * `tx_bytes` - Successfully confirmed BTC transaction bytes + /// * `vout` - The index of the output where the user sent BTC to the deposit address + /// * `tx_block_blockhash` - The block hash where the transaction is located. + /// * `tx_index` - The index of the transaction in the block. + /// * `merkle_proof` - Merkle proof of the transaction. + /// + /// # Returns + /// + /// bool - Whether nBTC minting was successful. + #[payable] + #[pause(except(roles(Role::DAO)))] + pub fn safe_verify_deposit( + &mut self, + deposit_msg: DepositMsg, + tx_bytes: Vec, + vout: usize, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + ) -> Promise { + require!( + env::attached_deposit() >= self.required_balance_for_safe_deposit(), + "Insufficient deposit for storage" + ); + + let path = get_deposit_path(&deposit_msg); + let safe_deposit_msg = deposit_msg + .safe_deposit + .unwrap_or_else(|| env::panic_str("safe_deposit is required in safe_verify_deposit")); + + let transaction = WrappedTransaction::decode(&tx_bytes, &self.internal_config().chain) + .expect("Deserialization tx_bytes failed"); + let deposit_amount = transaction.output()[vout].value.to_sat().into(); + require!(deposit_amount > 0, "Invalid deposit_amount"); + require!( + transaction.lock_time() == LockTime::ZERO, + "Tx with a non-zero lock_time are not supported." + ); + let deposit_address = self.generate_utxo_chain_address(&path); + let deposit_address_script_pubkey = deposit_address + .script_pubkey() + .expect("Invalid deposit address"); + require!( + deposit_address_script_pubkey == transaction.output()[vout].script_pubkey, + "Invalid deposit tx_bytes" + ); + + let utxo = UTXO { + path, + tx_bytes, + vout, + balance: transaction.output()[vout].value.to_sat(), + }; + let tx_id = transaction.compute_txid().to_string(); + let utxo_storage_key = generate_utxo_storage_key(tx_id.clone(), vout.try_into().unwrap()); + + self.internal_safe_verify_deposit( + deposit_amount, + tx_block_blockhash, + tx_index, + merkle_proof, + PendingUTXOInfo { + tx_id, + utxo_storage_key, + utxo, + }, + deposit_msg.recipient_id, + safe_deposit_msg, + ) + } + /// Verify that the user’s withdrawal has been successful, and then burn the corresponding amount of tokens. /// /// # Arguments diff --git a/contracts/satoshi-bridge/src/api/token_receiver.rs b/contracts/satoshi-bridge/src/api/token_receiver.rs index f0a261cf..cfaa05e9 100644 --- a/contracts/satoshi-bridge/src/api/token_receiver.rs +++ b/contracts/satoshi-bridge/src/api/token_receiver.rs @@ -51,14 +51,14 @@ impl FungibleTokenReceiver for Contract { target_btc_address, input, output, - max_gas_fee + max_gas_fee, } => self.ft_on_transfer_withdraw_chain_specific( sender_id, amount, target_btc_address, input, output, - max_gas_fee + max_gas_fee, ), } } @@ -94,7 +94,7 @@ impl Contract { &vutxos, amount, withdraw_fee, - max_gas_fee + max_gas_fee, ); let need_signature_num = psbt.get_input_num(); diff --git a/contracts/satoshi-bridge/src/api/view.rs b/contracts/satoshi-bridge/src/api/view.rs index 7e02dae0..d3e810a9 100644 --- a/contracts/satoshi-bridge/src/api/view.rs +++ b/contracts/satoshi-bridge/src/api/view.rs @@ -1,5 +1,7 @@ use crate::*; +const REQUIRED_BALANCE_FOR_DEPOSIT: NearToken = NearToken::from_yoctonear(1200000000000000000000); + #[near(serializers = [json])] #[cfg_attr(not(target_arch = "wasm32"), derive(Debug))] pub struct Metadata { @@ -263,4 +265,8 @@ impl Contract { .map(|(k, v)| (k.clone(), v.clone())) .collect() } + + pub fn required_balance_for_safe_deposit(&self) -> NearToken { + REQUIRED_BALANCE_FOR_DEPOSIT + } } diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs index 55d6f07e..e3bb76d4 100644 --- a/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs +++ b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs @@ -58,7 +58,13 @@ impl Contract { max_gas_fee: Option, ) -> PromiseOrValue { let mut psbt = PsbtWrapper::new(input, output); - self.create_btc_pending_info(sender_id, amount, target_btc_address, &mut psbt, max_gas_fee); + self.create_btc_pending_info( + sender_id, + amount, + target_btc_address, + &mut psbt, + max_gas_fee, + ); PromiseOrValue::Value(U128(0)) } diff --git a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs index d96cf12d..edb635af 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs @@ -1,10 +1,16 @@ -use crate::*; +use near_sdk::PromiseResult; + +use crate::{ + burn::GAS_FOR_BURN_CALL, + mint::{GAS_FOR_MINT_CALL, GAS_FOR_MINT_CALL_BACK}, + *, +}; pub const GAS_FOR_VERIFY_DEPOSIT_CALL_BACK: Gas = Gas::from_tgas(190); pub const GAS_FOR_UNAVAILABLE_UTXO_CALL_BACK: Gas = Gas::from_tgas(20); impl Contract { - pub fn internal_verify_deposit( + pub(crate) fn internal_verify_deposit( &mut self, deposit_amount: u128, tx_block_blockhash: String, @@ -57,6 +63,48 @@ impl Contract { ) } } + + #[allow(clippy::too_many_arguments)] + pub(crate) fn internal_safe_verify_deposit( + &mut self, + deposit_amount: u128, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + pending_utxo_info: PendingUTXOInfo, + recipient_id: AccountId, + deposit_msg: SafeDepositMsg, + ) -> Promise { + let config = self.internal_config(); + let confirmations = self.get_confirmations(config, deposit_amount); + let promise = self.verify_transaction_inclusion_promise( + config.btc_light_client_account_id.clone(), + pending_utxo_info.tx_id.clone(), + tx_block_blockhash, + tx_index, + merkle_proof, + confirmations, + ); + + if deposit_amount < config.min_deposit_amount { + promise.then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_UNAVAILABLE_UTXO_CALL_BACK) + .unavailable_utxo_callback(recipient_id, pending_utxo_info), + ) + } else { + promise.then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_VERIFY_DEPOSIT_CALL_BACK) + .verify_safe_deposit_callback( + recipient_id, + deposit_amount.into(), + deposit_msg.msg, + pending_utxo_info, + ), + ) + } + } } #[near] @@ -123,4 +171,101 @@ impl Contract { ) .into() } + + #[private] + pub fn verify_safe_deposit_callback( + &mut self, + recipient_id: AccountId, + mint_amount: U128, + msg: String, + pending_utxo_info: PendingUTXOInfo, + ) -> PromiseOrValue { + let result_bytes = + promise_result_as_success().expect("Call verify_transaction_inclusion failed"); + let is_valid = serde_json::from_slice::(&result_bytes) + .expect("verify_transaction_inclusion return not bool"); + require!(is_valid, "verify_transaction_inclusion return false"); + require!( + self.data_mut() + .verified_deposit_utxo + .insert(pending_utxo_info.utxo_storage_key.clone()), + "Already deposit utxo" + ); + + let msg = (!msg.is_empty()) + .then(|| msg.replace("{{UTXO_TX_ID}}", &pending_utxo_info.utxo_storage_key)); + ext_nbtc::ext(self.internal_config().nbtc_account_id.clone()) + .with_static_gas(GAS_FOR_MINT_CALL) + .with_attached_deposit(NearToken::from_yoctonear(1)) + .safe_mint(recipient_id.clone(), mint_amount, msg) + .then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_MINT_CALL_BACK) + .safe_mint_callback(recipient_id.clone(), mint_amount, pending_utxo_info), + ) + .into() + } + + #[private] + pub fn safe_mint_callback( + &mut self, + recipient_id: AccountId, + mint_amount: U128, + pending_utxo_info: PendingUTXOInfo, + ) -> bool { + let is_success = !is_refund_required(); + let relayer_account_id = env::signer_account_id(); + + if is_success { + Event::UtxoAdded { + utxo_storage_keys: vec![pending_utxo_info.utxo_storage_key.clone()], + } + .emit(); + self.internal_set_utxo(&pending_utxo_info.utxo_storage_key, pending_utxo_info.utxo); + } else { + self.data_mut() + .verified_deposit_utxo + .remove(&pending_utxo_info.utxo_storage_key); + + ext_nbtc::ext(self.internal_config().nbtc_account_id.clone()) + .with_static_gas(GAS_FOR_BURN_CALL) + .burn( + env::current_account_id(), + mint_amount, + relayer_account_id, + U128(0), + ); + + Promise::new(env::signer_account_id()) + .transfer(self.required_balance_for_safe_deposit()); + } + + Event::VerifyDepositDetails { + recipient_id: &recipient_id, + mint_amount, + protocol_fee: U128(0), + relayer_account_id: env::signer_account_id(), + relayer_fee: U128(0), + success: is_success, + } + .emit(); + is_success + } +} + +fn is_refund_required() -> bool { + match env::promise_result(0) { + PromiseResult::Successful(value) => { + if let Ok(amount) = near_sdk::serde_json::from_slice::(&value) { + // Normal case: refund if the used token amount is zero + // The amount can be zero if the `ft_on_transfer` in the receiver contract returns an amount instead of `0`, or if it panics. + amount.0 == 0 + } else { + // Unexpected case: don't refund + false + } + } + // Unexpected case: don't refund + PromiseResult::Failed => false, + } } diff --git a/contracts/satoshi-bridge/src/deposit_msg.rs b/contracts/satoshi-bridge/src/deposit_msg.rs index f319b3fb..083031da 100644 --- a/contracts/satoshi-bridge/src/deposit_msg.rs +++ b/contracts/satoshi-bridge/src/deposit_msg.rs @@ -16,6 +16,17 @@ pub struct DepositMsg { // Used to support other dApps extending based on verify_deposit. #[serde(skip_serializing_if = "Option::is_none")] pub extra_msg: Option, + // Replacment for the legacy post_actions to support safer cross-contract calls. + // If this field is present, the legacy post_actions field must be None + #[serde(skip_serializing_if = "Option::is_none")] + pub safe_deposit: Option, +} + +#[near(serializers = [json])] +#[derive(Clone)] +pub struct SafeDepositMsg { + pub msg: String, + // TODO: add relayer fee support in the future. } #[near(serializers = [json])] diff --git a/contracts/satoshi-bridge/src/nbtc/burn.rs b/contracts/satoshi-bridge/src/nbtc/burn.rs index d7457982..3797ff7d 100644 --- a/contracts/satoshi-bridge/src/nbtc/burn.rs +++ b/contracts/satoshi-bridge/src/nbtc/burn.rs @@ -1,6 +1,6 @@ use crate::*; -pub const GAS_FOR_BURN_CALL: Gas = Gas::from_tgas(10); +pub const GAS_FOR_BURN_CALL: Gas = Gas::from_tgas(5); pub const GAS_FOR_WITHDRAW_BURN_CALL_BACK: Gas = Gas::from_tgas(20); pub const GAS_FOR_ACTIVE_UTXO_MANAGEMENT_BURN_CALL_BACK: Gas = Gas::from_tgas(20); diff --git a/contracts/satoshi-bridge/src/nbtc/mod.rs b/contracts/satoshi-bridge/src/nbtc/mod.rs index 9d1ab681..fff62c0f 100644 --- a/contracts/satoshi-bridge/src/nbtc/mod.rs +++ b/contracts/satoshi-bridge/src/nbtc/mod.rs @@ -21,4 +21,5 @@ pub trait NBtc { relayer_account_id: AccountId, relayer_fee: U128, ); + fn safe_mint(&mut self, account_id: AccountId, amount: U128, msg: Option); } diff --git a/contracts/satoshi-bridge/src/psbt.rs b/contracts/satoshi-bridge/src/psbt.rs index c2f5218c..39ccf6e0 100644 --- a/contracts/satoshi-bridge/src/psbt.rs +++ b/contracts/satoshi-bridge/src/psbt.rs @@ -2,6 +2,7 @@ use crate::network::Address; use crate::psbt_wrapper::PsbtWrapper; use crate::*; impl Contract { + #[allow(clippy::too_many_arguments)] pub fn check_withdraw_psbt_valid( &self, target_address_script_pubkey: &ScriptBuf, @@ -22,9 +23,15 @@ impl Contract { amount, withdraw_fee, ); - + if let Some(max_gas_fee) = max_gas_fee { - require!(gas_fee <= max_gas_fee.0, format!("Gas fee does not match the provided max fee (gas fee = {}; max gas fee = {})", gas_fee, max_gas_fee.0)); + require!( + gas_fee <= max_gas_fee.0, + format!( + "Gas fee does not match the provided max fee (gas fee = {}; max gas fee = {})", + gas_fee, max_gas_fee.0 + ) + ); } require!( diff --git a/contracts/satoshi-bridge/src/unit/mod.rs b/contracts/satoshi-bridge/src/unit/mod.rs index f7faeb60..06c23329 100644 --- a/contracts/satoshi-bridge/src/unit/mod.rs +++ b/contracts/satoshi-bridge/src/unit/mod.rs @@ -7,6 +7,7 @@ use near_sdk::test_utils::VMContextBuilder; pub use near_sdk::testing_env; mod post_action; +mod storage; pub fn burrowland_id() -> AccountId { "burrowland_id".parse().unwrap() diff --git a/contracts/satoshi-bridge/src/unit/post_action.rs b/contracts/satoshi-bridge/src/unit/post_action.rs index 15772b0e..f48fda29 100644 --- a/contracts/satoshi-bridge/src/unit/post_action.rs +++ b/contracts/satoshi-bridge/src/unit/post_action.rs @@ -239,6 +239,7 @@ fn test_check_deposit_msg() { recipient_id: recipient_id(), post_actions: None, extra_msg: None, + safe_deposit: None }, 100 ) @@ -251,6 +252,7 @@ fn test_check_deposit_msg() { recipient_id: recipient_id(), post_actions: Some(vec![]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -284,6 +286,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -310,6 +313,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -336,6 +340,7 @@ fn test_check_deposit_msg() { gas: Some(Gas::from_tgas(200)) },]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -362,6 +367,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -388,6 +394,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -414,6 +421,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -439,6 +447,7 @@ fn test_check_deposit_msg() { gas: Some(Gas::from_tgas(50)) },]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -456,6 +465,7 @@ fn test_check_deposit_msg() { gas: Some(Gas::from_tgas(50)) },]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -479,6 +489,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -498,6 +509,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -517,6 +529,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) @@ -536,6 +549,7 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, + safe_deposit: None }, 100 ) diff --git a/contracts/satoshi-bridge/src/unit/storage.rs b/contracts/satoshi-bridge/src/unit/storage.rs new file mode 100644 index 00000000..7212716a --- /dev/null +++ b/contracts/satoshi-bridge/src/unit/storage.rs @@ -0,0 +1,48 @@ +use crate::*; + +impl Contract { + pub(crate) fn calculate_required_balance_for_safe_deposit(&mut self) -> NearToken { + let storage_usage = env::storage_usage(); + + let txid = "83d28cfcff0d86035e2742ecde99ef4801bb9f928d7d0118a0c1dd87bdc299ac".to_owned(); + let vout = u32::MAX; + let path = get_deposit_path(&DepositMsg { + recipient_id: env::current_account_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }); + let utxo_storage_key = generate_utxo_storage_key(txid, vout); + let tx_bytes = vec![0u8; 300]; // TODO: optimise storage usage + + self.data_mut().utxos.insert( + utxo_storage_key.clone(), + VUTXO::Current(UTXO { + path, + tx_bytes, + vout: vout.try_into().unwrap(), + balance: u64::MAX, + }), + ); + + self.data_mut() + .verified_deposit_utxo + .insert(utxo_storage_key); + + let required_storage_for_deposit = env::storage_usage().saturating_sub(storage_usage); + + env::storage_byte_cost().saturating_mul(required_storage_for_deposit.into()) + } +} + +#[test] +fn test_storage_for_deposit() { + let mut unit_env = init_unit_env(); + + assert_eq!( + unit_env + .contract + .calculate_required_balance_for_safe_deposit(), + unit_env.contract.required_balance_for_safe_deposit() + ); +} diff --git a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs index 79137d94..6cf303bc 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs @@ -97,7 +97,13 @@ impl Contract { ) -> U128 { let expiry_height = last_block_height + self.get_config().expiry_height_gap; let mut psbt = PsbtWrapper::new(input, output, expiry_height, self.internal_config()); - self.create_btc_pending_info(sender_id, amount.0, target_btc_address, &mut psbt, max_gas_fee); + self.create_btc_pending_info( + sender_id, + amount.0, + target_btc_address, + &mut psbt, + max_gas_fee, + ); U128(0) } diff --git a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs index 8dedc5be..509f3723 100644 --- a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs +++ b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs @@ -96,6 +96,7 @@ async fn test_base() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -104,6 +105,7 @@ async fn test_base() { recipient_id: context.get_account_by_name("bob").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -114,6 +116,7 @@ async fn test_base() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -161,6 +164,7 @@ async fn test_base() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -209,6 +213,7 @@ async fn test_base() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -241,6 +246,7 @@ async fn test_base() { recipient_id: context.get_account_by_name("bob").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -296,6 +302,7 @@ async fn test_base() { let total_change_amount = 250000 - (withdraw_amount - withdraw_fee) as u64; check!(print context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![ OutPoint { txid: first_utxo[0].parse().unwrap(), @@ -457,6 +464,7 @@ async fn test_fix_bridge_fee_and_relayer() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -467,6 +475,7 @@ async fn test_fix_bridge_fee_and_relayer() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -506,6 +515,7 @@ async fn test_fix_bridge_fee_and_relayer() { let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), @@ -593,6 +603,7 @@ async fn test_ratio_bridge_fee_and_relayer() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -603,6 +614,7 @@ async fn test_ratio_bridge_fee_and_relayer() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -642,6 +654,7 @@ async fn test_ratio_bridge_fee_and_relayer() { let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), @@ -732,6 +745,7 @@ async fn test_directly_withdraw() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -742,6 +756,7 @@ async fn test_directly_withdraw() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -787,6 +802,7 @@ async fn test_directly_withdraw() { let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); check!(print "do_withdraw" context.do_withdraw("bob", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), @@ -857,6 +873,7 @@ async fn test_one_click() { gas: Some(Gas::from_tgas(100)), }]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -917,6 +934,7 @@ async fn test_one_click() { gas: Some(Gas::from_tgas(100)), }]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -973,6 +991,7 @@ async fn test_one_click() { gas: Some(Gas::from_tgas(101)), }]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1038,6 +1057,7 @@ async fn test_one_click() { }, ]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1110,6 +1130,7 @@ async fn test_one_click() { }, ]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1166,6 +1187,7 @@ async fn test_one_click() { gas: None, }]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1231,6 +1253,7 @@ async fn test_one_click() { }, ]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1297,6 +1320,7 @@ async fn test_one_click() { }, ]), extra_msg: None, + safe_deposit: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1358,6 +1382,7 @@ async fn test_utxo_passive_management() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -1369,6 +1394,7 @@ async fn test_utxo_passive_management() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -1392,6 +1418,7 @@ async fn test_utxo_passive_management() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -1435,6 +1462,7 @@ async fn test_utxo_passive_management() { withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![OutPoint { txid: utxo500000[0].parse().unwrap(), vout: utxo500000[1].parse().unwrap(), @@ -1470,6 +1498,7 @@ async fn test_utxo_passive_management() { withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![OutPoint { txid: utxo500000[0].parse().unwrap(), vout: utxo500000[1].parse().unwrap(), @@ -1512,6 +1541,7 @@ async fn test_utxo_passive_management() { withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![ OutPoint { txid: utxo500000[0].parse().unwrap(), @@ -1559,6 +1589,7 @@ async fn test_cancel_withdraw() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -1569,6 +1600,7 @@ async fn test_cancel_withdraw() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -1609,6 +1641,7 @@ async fn test_cancel_withdraw() { let change_amount = 500000 - (withdraw_amount - withdraw_fee) as u64; check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), @@ -1786,6 +1819,7 @@ async fn test_cancel_withdraw2() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -1796,6 +1830,7 @@ async fn test_cancel_withdraw2() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -1836,6 +1871,7 @@ async fn test_cancel_withdraw2() { let change_amount = 500000 - (withdraw_amount - withdraw_fee) as u64; check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), + max_gas_fee: None, input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), @@ -1966,6 +2002,7 @@ async fn test_utxo_active_management() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -1977,6 +2014,7 @@ async fn test_utxo_active_management() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -2000,6 +2038,7 @@ async fn test_utxo_active_management() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -2314,6 +2353,7 @@ async fn test_utxo_active_management2() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }) .await .unwrap(); @@ -2325,6 +2365,7 @@ async fn test_utxo_active_management2() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( @@ -2348,6 +2389,7 @@ async fn test_utxo_active_management2() { recipient_id: context.get_account_by_name("alice").id().clone(), post_actions: None, extra_msg: None, + safe_deposit: None, }, generate_transaction_bytes( vec![( From 88a7a338ad4f55132ac247c3a3ea90f796687989 Mon Sep 17 00:00:00 2001 From: Karim Date: Thu, 16 Oct 2025 02:07:26 +0100 Subject: [PATCH 08/28] Fix config migration (#12) * Fix config migration * Add upgrade tests * Fix testnet migration --- contracts/satoshi-bridge/src/legacy.rs | 222 +++++++++++++++++- contracts/satoshi-bridge/src/lib.rs | 1 + contracts/satoshi-bridge/src/upgrade.rs | 1 + .../tests/data/btc_bridge_v0-5-1.wasm | Bin 0 -> 1108262 bytes .../tests/data/nbtc_v0-5-1.wasm | Bin 0 -> 210801 bytes .../tests/data/nbtc_v0-6-0.wasm | Bin 0 -> 214510 bytes .../tests/data/zcash_bridge_v0-6-0.wasm | Bin 0 -> 1162118 bytes .../satoshi-bridge/tests/setup/context.rs | 15 +- .../satoshi-bridge/tests/test_upgrade.rs | 58 ++++- 9 files changed, 290 insertions(+), 7 deletions(-) create mode 100644 contracts/satoshi-bridge/tests/data/btc_bridge_v0-5-1.wasm create mode 100644 contracts/satoshi-bridge/tests/data/nbtc_v0-5-1.wasm create mode 100644 contracts/satoshi-bridge/tests/data/nbtc_v0-6-0.wasm create mode 100644 contracts/satoshi-bridge/tests/data/zcash_bridge_v0-6-0.wasm diff --git a/contracts/satoshi-bridge/src/legacy.rs b/contracts/satoshi-bridge/src/legacy.rs index 4ff16dde..c766f196 100644 --- a/contracts/satoshi-bridge/src/legacy.rs +++ b/contracts/satoshi-bridge/src/legacy.rs @@ -150,8 +150,14 @@ impl From for Config { max_btc_tx_pending_sec, } = c; + let chain = if env::current_account_id().as_str().ends_with(".testnet") { + crate::network::Chain::BitcoinTestnet + } else { + crate::network::Chain::BitcoinMainnet + }; + Self { - chain: crate::network::Chain::BitcoinMainnet, + chain, btc_light_client_account_id, nbtc_account_id, chain_signatures_account_id, @@ -185,6 +191,146 @@ impl From for Config { } } +#[near(serializers = [borsh])] +#[derive(Clone)] +pub struct ConfigV1 { + // The account id of btc light client contract + pub btc_light_client_account_id: AccountId, + // The account id of nbtc contract + pub nbtc_account_id: AccountId, + // The account id of chain signatures contract + pub chain_signatures_account_id: AccountId, + // The root public key of chain signatures contract + pub chain_signatures_root_public_key: Option, + // The change address of BTC transaction + pub change_address: Option, + // Satoshi upper limit for amount checks -> confirmations + pub confirmations_strategy: HashMap, + // The number of confirmations that need to be increased when a relayer not on the whitelist performs a verify. + pub confirmations_delta: u8, + // The number of confirmations that need to be increased when a relayer not on the extra msg whitelist performs a verify. + pub extra_msg_confirmations_delta: u8, + // Used to calculate the deposit fee. + pub deposit_bridge_fee: BridgeFee, + // Used to calculate the withdraw fee. + pub withdraw_bridge_fee: BridgeFee, + // The min amount must be met during verify_deposit, otherwise NBTC will not be minted for the user. + pub min_deposit_amount: u128, + // The minimum amount allowed for the user to withdraw. + pub min_withdraw_amount: u128, + // The minimum value requirement that change address must satisfy in BTC transaction. + pub min_change_amount: u128, + // Used to limit the maximum value of change in specific situations. + pub max_change_amount: u128, + // The min gas fee applicable for Bitcoin transactions + pub min_btc_gas_fee: u128, + // The max gas fee applicable for Bitcoin transactions + pub max_btc_gas_fee: u128, + // The maximum number of inputs that can be used for a Withdraw. + pub max_withdrawal_input_number: u8, + // The maximum amount of change allowed during a Withdraw. + pub max_change_number: u8, + // The maximum number of inputs allowed during active UTXO management. + pub max_active_utxo_management_input_number: u8, + // The maximum number of outputs allowed during active UTXO management. + pub max_active_utxo_management_output_number: u8, + // When the number of UTXOs in the protocol is less than this configuration, UTXO management can be actively initiated. + // The number of inputs in the managed PSBT must be less than the number of outputs. + pub active_management_lower_limit: u32, + // When the number of UTXOs in the protocol is greater than this configuration, UTXO management can be actively initiated. + // The number of inputs in the managed PSBT must be greater than the number of outputs. + pub active_management_upper_limit: u32, + // When the number of UTXOs in the protocol is less than this configuration, passive UTXO management will be triggered, + // requiring that the number of inputs must be less than the number of changes. + pub passive_management_lower_limit: u32, + // When the number of UTXOs in the protocol is greater than this configuration, passive UTXO management will be triggered, + // requiring that the number of inputs must be greater than the number of changes. + pub passive_management_upper_limit: u32, + // The maximum number of transactions allowed to initiate RBF + pub rbf_num_limit: u8, + // If the transaction exceeds this configuration and has not been verified, the protocol will be allowed to cancel the transaction. + pub max_btc_tx_pending_sec: u32, + // UTXOs less than or equal to this amount are allowed to be merged through active management. + pub unhealthy_utxo_amount: u64, + #[cfg(feature = "zcash")] + pub expiry_height_gap: u32, +} + +impl From for Config { + fn from(c: ConfigV1) -> Self { + let ConfigV1 { + btc_light_client_account_id, + nbtc_account_id, + chain_signatures_account_id, + chain_signatures_root_public_key, + change_address, + confirmations_strategy, + confirmations_delta, + extra_msg_confirmations_delta, + deposit_bridge_fee, + withdraw_bridge_fee, + min_deposit_amount, + min_withdraw_amount, + min_change_amount, + max_change_amount, + min_btc_gas_fee, + max_btc_gas_fee, + max_withdrawal_input_number, + max_change_number, + max_active_utxo_management_input_number, + max_active_utxo_management_output_number, + active_management_lower_limit, + active_management_upper_limit, + passive_management_lower_limit, + passive_management_upper_limit, + rbf_num_limit, + max_btc_tx_pending_sec, + unhealthy_utxo_amount, + #[cfg(feature = "zcash")] + expiry_height_gap, + } = c; + + let chain = if env::current_account_id().as_str().ends_with(".testnet") { + crate::network::Chain::BitcoinTestnet + } else { + crate::network::Chain::BitcoinMainnet + }; + + Self { + chain, + btc_light_client_account_id, + nbtc_account_id, + chain_signatures_account_id, + chain_signatures_root_public_key, + change_address, + confirmations_strategy, + confirmations_delta, + extra_msg_confirmations_delta, + deposit_bridge_fee, + withdraw_bridge_fee, + min_deposit_amount, + min_withdraw_amount, + min_change_amount, + max_change_amount, + min_btc_gas_fee, + max_btc_gas_fee, + max_withdrawal_input_number, + max_change_number, + max_active_utxo_management_input_number, + max_active_utxo_management_output_number, + active_management_lower_limit, + active_management_upper_limit, + passive_management_lower_limit, + passive_management_upper_limit, + rbf_num_limit, + max_btc_tx_pending_sec, + unhealthy_utxo_amount, + #[cfg(feature = "zcash")] + expiry_height_gap, + } + } +} + #[near(serializers = [borsh])] pub struct ContractDataV1 { pub config: LazyOption, @@ -247,3 +393,77 @@ impl From for ContractData { } } } + +#[near(serializers = [borsh])] +pub struct ContractDataV2 { + #[cfg(feature = "zcash")] + pub config: LazyOption, + #[cfg(not(feature = "zcash"))] + pub config: LazyOption, + pub accounts: IterableMap, + pub utxos: IterableMap, + pub unavailable_utxos: IterableMap, + pub verified_deposit_utxo: LookupSet, + pub btc_pending_infos: IterableMap, + pub rbf_txs: IterableMap>, + pub relayer_white_list: IterableSet, + pub extra_msg_relayer_white_list: IterableSet, + pub post_action_receiver_id_white_list: IterableSet, + pub post_action_msg_templates: IterableMap>, + pub lost_found: IterableMap, + pub acc_collected_protocol_fee: u128, + pub cur_available_protocol_fee: u128, + pub acc_claimed_protocol_fee: u128, + pub cur_reserved_protocol_fee: u128, + pub acc_protocol_fee_for_gas: u128, +} + +impl From for ContractData { + fn from(c: ContractDataV2) -> Self { + let ContractDataV2 { + config, + accounts, + utxos, + unavailable_utxos, + verified_deposit_utxo, + btc_pending_infos, + rbf_txs, + relayer_white_list, + extra_msg_relayer_white_list, + post_action_receiver_id_white_list, + post_action_msg_templates, + lost_found, + acc_collected_protocol_fee, + cur_available_protocol_fee, + acc_claimed_protocol_fee, + cur_reserved_protocol_fee, + acc_protocol_fee_for_gas, + } = c; + + Self { + #[cfg(feature = "zcash")] + config, + #[cfg(not(feature = "zcash"))] + config: LazyOption::new( + StorageKey::Config, + Some(config.get().clone().unwrap().into()), + ), + accounts, + utxos, + unavailable_utxos, + verified_deposit_utxo, + btc_pending_infos, + rbf_txs, + relayer_white_list, + extra_msg_relayer_white_list, + post_action_receiver_id_white_list, + post_action_msg_templates, + lost_found, + acc_collected_protocol_fee, + cur_available_protocol_fee, + acc_claimed_protocol_fee, + cur_reserved_protocol_fee, + acc_protocol_fee_for_gas, + } + } +} diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index 001f5c36..149eb1bf 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -124,6 +124,7 @@ pub struct ContractData { pub enum VersionedContractData { V0(ContractDataV0), V1(ContractDataV1), + V2(ContractDataV2), Current(ContractData), } diff --git a/contracts/satoshi-bridge/src/upgrade.rs b/contracts/satoshi-bridge/src/upgrade.rs index ec1ce1a0..755649cd 100644 --- a/contracts/satoshi-bridge/src/upgrade.rs +++ b/contracts/satoshi-bridge/src/upgrade.rs @@ -11,6 +11,7 @@ impl Contract { contract.data = match contract.data { VersionedContractData::V0(data) => VersionedContractData::Current(data.into()), VersionedContractData::V1(data) => VersionedContractData::Current(data.into()), + VersionedContractData::V2(data) => VersionedContractData::Current(data.into()), VersionedContractData::Current(data) => VersionedContractData::Current(data), }; contract diff --git a/contracts/satoshi-bridge/tests/data/btc_bridge_v0-5-1.wasm b/contracts/satoshi-bridge/tests/data/btc_bridge_v0-5-1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..778b8f6e3b19997929e158f5e9269d37a6b4b756 GIT binary patch literal 1108262 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 z z-?-Kw>+(ytUrF*HJ7o|-o)lE-gg2RiW2OXn^%jIdw1SUy^!rs;^F8WS*23gF1_if0 zt(xT`LBL%@6-jsNG`fPIv9^vN7UjF8tLH79My_mBr18{8m8f0$ofoT8eB?iaon9&0Lt3w%W zw5*!?V)hjLxZHXA@MKNv&{tXt*k!6&q}#0-9o_`2#1E*l0oZU&axRZ1#v8C2V5qN_ zIix%E`B9tHjg$+%!?fY~;F1r$Sgg>w$ZXjhl4#6QN6faecN9VnqJ@ZzxSF*)Ka<9} zP)T2cK`r#MuUb*!Dyd@FlL=$OmKj4~w9ZJ5=!H921Q4J>K}ClZBMCIJC|hB&Nn)A) z^1Q5k_Cu81_IGp#;jft~%5MGUPUJw6Mr*^>s8Lb2=y3N8#9x%%6d~@H|V@P_6 zB&+B*`Ef{PVe<86%lB}cI!Q1I>IIH48Fazqn=Xv7)`+@kz_IQE*48tXbVaz)#KqNI zrTAsn6*oJ%xk8fWQ`~$l;^tOvE^)>x(#i+pFbG0K4}_}1t=0#Kx+{4)&ZYRSP8p1g zUsQ9Ri%S25`D3ajcMD_)*if*?K%DO$DKkO`c}6Ki$^UdP{O;?_Jt?53l2*keA|rn% znz1`oxI6zz*(|wjiZV;wB~PbWST=Vp8H4v`&BZm1VNB+{>F-pHIbHs8cRrVK1Ngi# z_00;q%mu#xt=(3cKIAH&8McCA}&WVmY5_?a&0_Fb3bo%Sg*%@Tt4ZO8i7N@eHRhD~vU%CIaw{oij z=+y`dZurVD4=}I1Cdn-W>LGK0v^VbjJl|SO0a>G6!H_($)ml?@yTAD_hI?!O6*br1 z-jpx%im;fEtUKbwFAm!bKaOk?907#yow$>}hS{Z|CRTaBvh)4z5V!XQmYQ&Tr@vL+ zTm9{bMsjgDzDU;{;W)0P<2Rk)wJbmeS6@}ds$aoX2t!gtg zIEd4MjmZb)&}+(zhT0_&n@=V+h=u1;#MabkgdCPq2r<uSU_9dUSldqKO9;F^jiSGm`VIdW9rE-WwRZyn@`1 z_XbXXZRq;POMWd-8w_^5@Bc2fp#UE*F|=qkM8S1*HAKO6@#^RlE=yKN&*gH!>gaeb z=$cpPrJv)k&TrGz?z;ST#cH=xw}Y#rOLZMu9i6XhvN}4Q%kb*xBrYSXqvvpG9qz8= zWp*u2nI6R;$ZoKNi2~U{c9SJ^CtOL4Z>nC#j0F*7pR){;vpIQK57(@ApHdz=`?S>{ zm29_Lwoe6R%{j1c4iHQS@c`4IG!Gk#2U*qT{bW_E^}#UkXiX7f*^O6zEXZ(-G^7G4 z;S)-zlQ0n4^Jnzj*0Y>@F8i{cNA>JA{U7RiNnSyaJ;AH+=f3G#e8dq&&sdyaT+;U)Xp4K#R&$<0zw_6yi&?M+a9l)VSrBU~q5J>oJp-t?L+ zGQb(<#GQ&jB7s_3mNt&Ub~H7VLfAmwA&bq^&R|At!{mXcJkg`#R{4PIy0kkL2?X7a zVI?vb3->Y;rQLFonFx2whM?YDrDwW9D)9%sp8Gg!;9VU_Ym$}5wK5dVE!gf*k9k1M zI7WHa@_=k+%tya!AdSDZ%US{WMWCd0`Ef-Wsru=XpVsKUIrwm#InB?p*4P}9avcT*f&U<2Z^&58v*`f60i5s(5UdjD8{~llG zFXRRWCNPS6CU^Rnw|{|_w=rbOLxQvp8+i;>z|h*TvKCc_LV>Js$j}J8^)%EhXB;+W zI#KeA+PEzn*!s+@QLtX%j+q^oz)A2dNvboANWnr(2Ca{Tt_l!5U!al(aF~!sKe)8V ztDcz!eHfHE*I8cN&hRvobhOrNNV$BBXE9+mCimz5GA>W{#9$C@&ze`Ng@v!VSUlFnm%(`=@NwDx;tEX=H-ws$&-63O}X^X?8&-Q-=g!cQR)K?M=+JKXjNw zwFD+PnS90z&rX=!%3U%?U$_a)%s*^n@*h#FMx8R)&nT@qLq;7S=_{E0iE+_>Wb zN_wE)OQQzfaubAFy$b0~9t#mjhA@n_W~&a;#n&W~vboRtwL|Vm*}7yjlNU#nULcuL z`J~snbI&>68cH?}wX$!%=c7S3lwJB>B{oMA&EMfZWOC z4-_1F!OCDFb2$;$$3?2xXT~|^IXAzx9^>Td8ZU9e3oz$k&Ouay1s?kjQarn;Ckf{e zD}h1w%CM`;2Fu-xR!6IZtkbp3BddbH*oa0?2WbjhC2mznLGUE7X3Ko^XnC}1b?{^o z{+x~h`qcr5&HkC4Q1)>5A})T}@bom)iqa0fptkO^QinkW059_34>CHqRNn1S z1L6_JkfKc6Pi?Wc6WTYD)k{idRG2&vwF=eV%D@|wtyb5C;U|4hswL68*(^G3KG8dv z$3ZgVTKLysSkJy+eKtCNL*ywFp;pm&Au1CzXm?Ec6vMgyx>|>Muq|MDW0YoN^QDM# zU_U4aKX*-E@J;uq~MY~XrE?vrTq8zO!bt%Wmt=IuCJ(Oco%P0pb zJRP1k3zENG%E6aqlmi)xauDNMAeMIODJK@?NWB)V#6~#^%kfX59FqZ}92)CV4l2YE z!30PZ<*@t$V4xi4PADhrQjW_hNA^3JJ>^hVloOSd6Xld+we?Vrnr2YFi_A++6;A#t zds`$e^Gjjtppuf#^xo%*oSL52x|aQk+nqc#xg_z9K8YG}CFqp5Lx0-In`(-#I9NKL zY5s*=h$R<7s<^noF8Gzm0!VT=o3L9O{H1qzVN?L6$ytM152_hSoV-mqMq1g@!!rui z*HHR7KQ&RMreWp}mwlzQb!Bgmu*2L$zStTic)yV)Xg+#caTlGkI!X;)AV;{2CM3%y z#cyuku;gwBKI*QOwR5~R{4A&*3SaSA$!r5y|uw z;dI2xeZeD9X2By>i43e;O-C;InSw_yuV z!JeOq7`>l~RH=y)KNDT0=|hr2Q_*ET^A18Ei4tU2_N3iPn&zUn_0L7G3|B`ceQ`Fb zy4!_&IeW5I=51kuSX0hMe~Rz~t!vUyv(e=0;Ll0W1O#e(CZIy7ghp50=}5q&q}s@9 z2Sln)9H&vhkjbUEoF^Q9DVIzYku{*5Qbq$_Z4?b4eJFmod!??P3gjD;e34g6RrU}9 zbqbidds{pvh}2H0AtICx{FA)i0Tm>umU|dGVPxN6)m(C8luIndQx=jJ zHgXDx!rpcf+Rue%x8+Oj=s1WHq1PrtXrY=Nvx%7*{Ue|DjSswo3uR4|?qkUSnphFU zOOQ+1P;+n)Y-8D}3)rm;u>BAOwX3oNPwU`eVi1x{Z6iXt^?4BQhR??mm19+Mif+_r zpTChdQY%vQYt5`5$r@`R@OYq@It6i|xfTv~6U5#Fx2Dy)jI$7=?qQsJb#G$hT2qfA zdR*L%6?aOIq+p6>B@f7r*D34y5pX&B3g7M6absXkVI`cFr8Gu=@-#Q8UnsbirD$*2 zS^fp?+8PB}q4dkV@n7KMQ+PqA2_#_K7Vv^!cQk1So>kzWiXM$`c~=oLJ|*}bpY86@vgd=&`I z&UrOYx0^45G9MVJxyV6&o>g;jj4iLC(NQi)A133*0 zqABros0DZ=ML%_2fa0wD66&H^11Y2@FGvu=HI_5T4mA2QiA<3o8`g8$eQxO48n9w5QEEfpSA;;5 zJ&8bL<-!Xvpo%VsYaYB=bRZRu0uOmwaYphqwlVv)7iJFn0&L!OEOSyw&tZv&RXCCo z3)nlbS1qSO06*SDEH+Fk8BH)RdE69&C#Mur3t43-ud@i1%PPFd*&NccjkLs73Nx5O zC$^A2ASXpyIkI)N>lyTXDQ?^*sqLls*K#Q?B~WUg*8{^;0**mnap8Ok9v2cEZ?$B& zBxO7|iz}}K>j&dZ4Jm$naFWBuc{+m=O+Yu4sc8}%fzn7@T{*q5C=M5p-pv9cdFzM) zq@^P;3Ye%txvw>Q#k1BKGqsKoU#GPrO#~RQTE8y+ER*nu5z;bG9-7MCMB!#x)`=Nv z?oz>U>GPnhQv8UMm!pifDLp9EAX-?~2`Nw4mOFA!fHt(-(t`q^4SNMQLd-lPRG8!n z9E-w>XH`S^3fNbpDHmkT!QSPP^Rsuk0ElFh=rb^j)926Q01-nUTqvvx*4T?ftLq(1 zWAD(C(I$!Fy+%cFVt33eZHiS{Chc7~lcUvKt8zWr7%ZTn?5iAbeVtcALFcV?{jx^7 zXPBJqz!F>~!sIGNhfCWW@<4|8UZz@PE`q*vym?^88Ki4uBEk{00nit`R8HPT|B`3> z={#iak*i9f%HnlLTa=~OCI}?xmqB>6mZr4sIgKZlw~gUDB;kF~8wRgFB7F!0(`)Vd zur~+$3)%|pn1=@P#zDj67I-cDKAR@+b~93wBy9!DLslk#h=gSZU=~h(GDNpT0468B zKfm=4yFt7U5EK4#Z>i>2(;hURqL%s~F)4k1asn815!6dwW}my2Df|N{79QjbiQySI z4cz3kP5@qM$#_?DXRGkq?`b`z54k`ynSh#bv3fEq0u4;g))k!#qCHNz(7h6aFJM~r zUG+{1dc-abTa^GnAsV3kV5BCtZU70LVrUfpgs~`jeybDu#R{YFqG`}1+(D1lpa|G} zr#a=+13(^7_z41#6bw_&xMj8G$N_qr{O^IFm6;bP`QNRh`Ujkx^3aBRUn$Qp{!N}S zqO)sm(t$oGqvQ)eL)qe=_}!e>P*(2uGqw|wI%OCT^3C%)#sGDKaXjQ+xZyH|I)qh+ z{8bFSd7ekR@``oEWn?f3Y2Ye2Fo&Ar1A<=1umuMA2Kv)YmccrJ*WAjbIQX(>Rp_G= z%7=`@xSwA~f2aBNXW~}^XBXzzf7IYgGKLG-b`u#=q1-WmANrNtP?W5dT${!Hu0Ug7 z04B1Q{($aKsDUy#jD7vY({e^6c~rPaA@Izfmo^N;tH9o~y!p#{DI}P@yw7>72Vv#c z%Q0xo`XfTocVF5peMC1>uhBVpsGGrybUAiu$I*2Xm5hpo(r(p5txERG=k!wMzZbmD ztO_kR8aQ|ncWSB{5!69290RLqn3y}V3^5+UxlT*Ai&+nGR#*=hDg?>PnMXJ_b`H5w zg0gVy{JaCOyoFn~CCO!#i0=_)G2G1W+un{4lpT}ZpgY+&=2x$h$=k=2c6Uuuf-`0pYKfy^hKPI9`cuSu2)VWfH(^^pCHtL zQ!zphA1Ft5fX9FdK196a5uMl!z^yNvj@~Gl+Ch+NO_vJ>nu%42C_CqTRKo9=jUhP? zS|kW9I1osPvkfl50=VQO@M5s_7osUuBylM&#%md7t?c}F0jaN3B-+!m(7vkf9!d}bOPG2PXF{+$+IHPoAV%+|xqM%;(JWmEm_*aM@T0jc`}KEk z>PB2biY5wGU92^^-gwOa0-FE-k;u>4usd7Y7RExceG|kzf1>=|R%~zE<3#znUM=9w zknjA#{SIpZ*(#10SWsO*js-$5t}x~?0i^SXNaQHFVTc)>Nt_81(Q)6o$i5xOa>-@H zrO9Q8KvXbtM8KTlCyNOYp1L^GA!#QVQ|!>dYNQhs~$k!W5( zfQzv|^`4!kEIYp?z-5?LE6C+o&5$0VJHLrtT0-)GHg&C%b@k~|SuKt4+&6O{^RGhd zLIfW-Y$NKmLP!}?sG7Rsrzr0qr2mMfv%}Pk7xp0`5oBtla?4nEWOi75S+xxHpm!^S z;Uj{ll7ZG4dG^$e$vIR4@qDrgJW9*Nwh4HiqS-(>crE3}c-X~4_YObWHc zO%}hY8+1{?B&szA`6shOX9qdnH-=OFqiNuXExk9pf$BTQ4){HSB)V+;xB(_x?GrO+ zXYI%VM7XM=*?QJI4lSmNkdD?ilbu9Q`$|x6RHbx!+m?@us(#IjnA@UfUGpNg^#yF; zhDvaHhSI&O;I62h>VORO1-?eD;$ZmaPkk+;ju0TmVwE*S?K~zgqOJH@TfqgYyy{2U z@9!14QsyDwp~|y5ikI~Li=M6N=C7C9bgT|q1t!*{{bcGaf0Tf6iVqzs2E!;XQjw~j z&R!FGGA^kMa)of$N;6K(X_MXe8qx3?po{Bj74K4cX`Hv>?c(XU4MiUYnaMkod~cW; z=ZZ^r2H9#7p1Lu+Soc@H7ACZqI%v);A}B>XDifKBN|cjR%=bs!fn}Uu9TlRkNt)R+ zfdQD*lJTa)uPr6Sbr}GEpp00f{JM_{ha0KZs|ykJzzI4_B2xcX_$QXFm3JA5KyD3} zBjlm5%VAvp1bu_cVe;089ekrvNwm)2MR&(ML#$0aD^9hK3}SD#`^7r`?d}w7GFbfL33P6qG2(R$_iNNBio-bP~%?M zXzC?)BDi4}V#c0ocaX+=^=&uNBassH1u2Q5L_>(8#ae>_Vj; zV8SLGq{%5i;$zq}+>nBh{}Ntw4v-{1K*}vUJd$4zrNi7DkX?j&mz#tLYTxdA3JqP0AfjslZb zx+ra@2c`#QSHJaNFyTZQE@RUHRfELvw9cr4sY4|Mogt`iRz_Urj?F8^St6a-qRWS< z6`mS`DzUvJE+v}Kc6D(o>e3+r-8<@(l8$CO-$KK-8a9%hozuaHHZ;WAX3Nj?b>Xsh>uxKq|T+xUo;;Eia#2PYK$G?*W|2H)e#w~{I41sU49I%xp zFk&liYOzSjWG_RM65>WGm2{DWn+MnR9$bP;dmJd50s^30G+`5MkR7op9b#2c9Yk`^ zl1p6z225zD2?jc7#MmPwT#4mN#(FHpHLi3>#r%Lki3eB@5NwF8?DjVUJ3F^wk?A{< zU+Dqq0Wb^1Q8##sRd}!{&0$4p!YYEZ2Jcy=qlI|!iAzP2x?3Wsz%R`bCGfsb!X$K= zNYff^rb}Vr7DOs@2Eb=`-y_2SYW zLq1yJR3KP}b(R)4W;jL^9$zYlTw04F#|$0#I>%%FX1JN*X_( zgGM?PLC69-%sH_&yXZ#@;#Wi7Cg#i@vOh{4h!b)j&sn0ln(&O|Ab*hS7w$ z9>v6_z%lOVN}>x9)mn42gi+t5mg5z70D@$~;?hAFB{x9iJeXcf_!fdeyI|P(AXU&O zr?!ge8NUYO*R z&>$n}B7-Sg0px3i)pLZF*l^H7Va651tX&Y!gxgDNxM^KEpYiOM-*}R z#$Zo->|gnly*AhvrOCp2=;Qv*#Nra0zts8XV!@qfH33A_pXBdi-(vCl*_Im>*!q;b z*1uLo%1zhvy`(Y;2x9U9%+gB`1Nk^sY)q{2HP*PD&LG8C@8+OXhcEJC&X#@Lq<-bHl1FIJg_6(Vp%IabK39lr2t~*W7peRyhJ>wZ z5m3U;uov$Pk~*23Yj?Q627*j!s)`xk+ax(z7nPkg zO!?Amc}f81%3hHSSfDCQo(El3xh%2(G`1IJ>4Sm?rnV%ZLF85s5dndbiU~a|ye1~A zOeS6q5co9N6((JXSY>Cy+rC(Ar%CKuxEBfw7X}eACrSvI!j*{yk1M2ymjIvR0~!03 zHg4*r4KI!6(}o11XhuUK0(2gdgTFFz=^dSVt2sxsXZ81!3w1C;>U?BzeCPheu~qg^ zaok&YA8`C6jD3My>Vk=PqXpKECFIj6S5G4J66{srSZ}R1!7OfIC5nups2ZQX7Bfgx zA#`ID1(-CXYL^8^!>(-8^L_=CDanr@xkZyOK@LIkg{I#Dw=x(V2)yiB87wwuPY~k& zvCMLVw3Ykyp&U3`r_gl(M~<0YP4CC6+t>czm6ZK|!z0rFyVT=7_5Yb3{HS(5a!2AR`ApMf zC{DdR!j!uvnh}@AQn`%0n3brKHHC9eB3)_<5P8-DHEP1V8^;nd{-IU+DZbew_bs|q z44K5t$euzbMHuscWreQt8#iOTF&zCYypi~%PLy?yl5-(jdDH-V53+9uN8$R5vLA4j zSNvYC5Nq~ju6Q@HUvZUNxFDxv<+O-1bRst0SU-|aH}U=XRNEn;zJ;hhn(o?6ws8h{ z*g4Ucjk9|aiU|&+=-GmNk7HN#SPW15__&Jdg1({Qfj+J zcep5z7zc=e8N1=c)z3Zl1rA5zq9;- zgty%0IF6*S#%0pZaqd;X>unCQ_YD|yFJCXQKcnDc1lnW-M z6WpO`B>xVIRMJi$l+xrWM&c~62&6$5gi=CS<4T@wrF3_Jz?F?!M1d)SWH+&JB~0}p z=i>>wn+xH3HkLH4ZX@(jNh1h;F(l+NtSAdfBC-RTQ6uor81rlv`UUvOyjPT10->%{ zyihOYF}uq}B4B5qA?n>`{Vz9dbh7e82~UUD8SucP$rpKIm&DrWnUFF>octXZY3UZY z5*#^T5yYy~HWH~2+pn$An!J!EQI*SbACZgLz_fLTr&RzN;Bhx;AkVv5fIV0B z;1*5dwiO65@#urk=EMgBzRMmW_%3?{z;{+u3PdlsEp)G!_w zE_1q6$YlaTm2T2Y>FTZ|XmhF6f}`G4dJn$&mB2P4!;+pP`ASOEnHxv}Wk_C2kMc`?_xCDejysR1H=rO&Ml2D2mNf0Le<>v$P);Jx|O5A;6%dVTK|p~rcyuRh2&-K4eJ zaoKMIiw4bBNX-bdCH<`e-QGSe?teSKPxsF66S9CwmWfEMnH=D1j&%I%eRYjXv-SC^ z^y;=f^@_Y@zpR|~koKAwUM{+oVwmj`PN9Y5gN?jUx>dP^Dnk zTzdlx^>KL|3=e70+B{Fs+`-9L=kK(0k(q6AOR6vM8v^egA@Nzlvpiv18-m1*2#d`d ze#W2Y4m0nSXwB5xKkGTSz?KJ90~2OO8+Pg$rYSRNuI(_{shNBO$>V5{?&Guj+)eb* z&Wtv(i%3qc3m?o--nk!!!VZtnTXO1E^4&`7^6vI!uU_{66Rps@e+xgR7=pM!ty*C- zNrQs7w6v==Ecv75Dkq&-FnN+$CHC80=O4X~Lk8s>tql69B;Pejbl7+Z+L#H}ApD4l z0%O{Hz-qEw5i6oey`>yN^bR5$)wmBV&ea;_!ksGT67E#3#OB|Fz_?UV9A4T*%h?Ob zPb-~BR7zbPw(!dH&QebDQMCT#TLg#kPQhht()xLklW;`~aV$|7X2qr>uz&i5_?#66@h{Ul%dNR!U;z|L5z7a-a}*4XD?+Qt?9PY;yG31*5y=I0K1$jv9>2p)p7Y+WipC=5VO*I!iUd{7wthX^hgAW0%U~X zO;9L+5}Uoliv~s0M#+8=4f`^9Q~tx`gZp9dALvq;q>CpbmU70KT$zH z73c>LMB_f@DU0S%H=vcH#;cH#418750Yu3Dk5CWHLkO*ccBAAQO@B)cvzv{>&?aWb znfW=`(m~HQJ*f;Tj7MnzaPE7}6$UmhwzCXRKl8 zW#D4BJ)_@Hj5$p@P4@I0l*%VuoFs;njx*uHwh15Mb`^|ye>0^1ma+5mac1+ zmc7YRY+e(|1?*ir@_{O3&`!&i9*L@^wHLC=LaBJIQcL6Gk^|hZH4{>(4#;>He=C2_ zk@XA=deFLgU@j?(Qeep)0aRrn89rkt*`<*r$9V2U)(UnYh;gN?R+GmzZ7f8G?Z5&n zCPyfL?OQ$xte4tysnNC(bn?lt^^-=VQ{8NJEYO^P z)p(;E?5pHyHgm+>QTo#cH1x`0A+gAxVM?p^H zQ2d4_ON)97#T6^3Ublh&h~Hpn$&F}Da#z>=air|eO+E~HNKu3^+bt+ehc>`aRX9*c zfZJqySV)kyGls}{sT~Cm>?Yh{-S?^`%>GQq%Y^kkFqRhP3`ptf;7_PATpn;hR7j;} z=d9kiJkX&WDr?~s(r@Vt#7s2=zQ7&Y4sA>ldMJrCpz@xR86$d40S;$jevM=w;l9De zSw3SaIF5C}h7e1O!PE#shYJFgZ}%KS8V1SJxFEL><7)CLdSXRMyNL+PR0iTPm7ynq zlXnw{5>4m)QKyr4B|Z=VN0$vIPWrh`cszW&|zV6Zpj% znG@^`%j;Be<>R?fS0oI@ME2bv)q)=Q73tQKvryDcA<%>WCq0qb$vnK{Ko0!+LXOLB z*I_I=RiH?b7jIH0`HF};T5G^|Q_Y+QlYA1%oV+1MT-wA+=bvVMX8}eEl2iNwT+1+w zW<9YoW|3x`Tx#Aqpo|gKB~}SXdPK3GoaQ zYxPF6)gBleVk81J>ZnW3=UgaJf%dfEAJhbs}pNato!~ z7wSZomF&7pK1P@r`sx4*Fo09|k0w(IGq2cQ`qG`Uw(gNmYlmDEL}8ygS;l-;Ix~zY zdOn8Y(q$!42rFHpuuxLuwA6KlrV%eJOM?>z#08xJKTr^Kunm+OJ_ptvs4)RYYG@2e zK2Y(DBdAHy=!WPh9fVSiZ?ESBjI5cqlb>j$U_SfqMU1MNHj;~~mXf4HrJyjuQGN@? z>V-SU?jJWS-9pJ68uFUDN(o2th)OgguAk95UYOH0q zm(+Nu(V(0NsiRV(3MV@LE zT;CBEJ=I2tGE+UFT1j1G?I={sC4p+Ww24@j0M_^ZMA1XK1mnyvqUhnQD%M3(d5Y#{ ztTWQ3XpNz>h`dnrXim{sRXIf?zC~y*9q|;61U=_tXs#(ckUT}Z?A&unX{AF2MZ4@` zrL@z*Zpw9+k}?7rU+k&gWtaIjL$sn@Hz`jtDPX;y}+GJqTL0b=vCHTIHpA33g0$HKS zKd0|DXy?h}h3C=!9S`h6#|zQlaB6DK9_g=!q+duqDP-|H^<;m^;#@s>#ALClCx^D$fAmPv-`yqs zJ>KX~DzK+NtugI`GAy;?KOg<&8blBMeOB@>LH?arXb1DPZ7Es%Ug&Ahv=@4!Kz1xIJn72EE*}GQ*X-I-+Kk0>X-ieSEme^%#rfp9 zEme^%CHHCW0nlzI{FL&fv-MJ5bsSw>*x-vEZ#rbGxwqdR(C*H?<_}mz-X7~|0e=7y z#L^)-)Z6<58pYg;`QfRsT2Nt>-Sctz40`+?@_)kT3>~T(WD-xmCl&=fT`ja&qCxGOxuizJS-F z(bFgSVzhB?*FNRnFe@=p^O&d!6N}BCV&?DpBf&8G@PC`2tGRzv0D`VucGg7YQ_$=9(KS{2s_kz*rBG+Ll`^gTaH>#SN|pF7GQ^(X9tNw zV~1L~TmUn4yjMY*I-8BD(le%tjR|YG zTmq?JRQNGf{Fs^=lV;Hc#)QX3EUt;x##AZCB)QeqsrKXuu4_;eEgc15%MGo)s~;!| z>f1ohrh8OB0CTB+JT8R-0PU_yhhKKsZw}l+!=R?R`3~Hcw2fxUMc*jnq7^Qi_=Xmm z_!?aSWfR}tEq#6Y6A8(3VYK2c1_ zl+uhDC1^B_bdg_iX1I170f)oTTsqrn()*^=o&=51c1$*{QF>&uM(g9bw#b?@d9=*z z&y}&o@MU5t)}>i4_6x~}YR2_@&4Yk9ibY|vw$=9Fkd#8p1D2FSUfDwOAN4FG=acNi zd&~7{Wm^)m1tNV5Li$mz1Xm4`!Gx+&k6;j^T> z5IT~Y^Ah!G_jCHANvWDnA2g-z+d`4$)TKtLTJ`Cr%H8<4|C70R za;ITQV;uQaEGc&Nklia+zt5}ek8ib?=ESvV@5&Y8Ov+VZTklc1O0s)O;yTcXt1JAL zm1O3Xt7Ku}rxWeuM;c$&d+tqLbF@y?VcM3(Rrkht-5cYYX{B7%WsK|lQ>Yp8N7zwP zW4gqg@x_HG8iX#RImjzl=-_@KoSU&uPYjFv7M-Q!Md}sSpR{{#q3017I84-+TK4x+ zn|jS6sZCNmc3tLgY9Kw!{7pZQrUsIl&q@PnY9J$iAX2}iddof1?u_U95c_bD!iLYJmOmBMUk4yi1P8!XX4C%CDs)1TTq@PM@g-=DOO7N;aS40u z$Cu#VVM|uRVOc;vKbCHk5sgv{Q>EGy`Q+Xyt+mJ{m<}wDg3hw5GQMJ#4iI(NY4l;E z-&NSNOea?%HI&#`z)hGh(M8$6y~1Y80W{MtHgfScKt07Qnm4VnN7)xuh(5^@d#M&u z@ZLq)&wl}-Mx;(`ER_Cb$ICQ}vL7lGDVm2EPg=;c@L zp4Uq@Y490PGTfKD=&P!;b7Bb@Imyg>z&HY#8#U{ZPt*9v0oIcK9A;q#`*q zc4-Gjrf+0;iU$FAwAi7Fr*Nx=bmn&6(7|fxVA{JN?zRTF6`q(~$qZmaMkotn0 z_D=FKp4@@ZFb6`T$AQ3k;y6VbJr0CM+Q=OU4NzP-MMNhHC{PXWKoBXJ1EEnm5Ig~c zMzM}$7?iU6>06cr!pj>ngC2&1{qB*z)Y3h&JsmB>kgI61MHuoZ1fa;&(age-eMo2N zL^T0g&Et=4!5-S>SjEz8tY%9kj6BN(0dLG~H2*14#yUB&x;(Ith_%T@)&okj(H{sW z!1JN49Pljze5(iWoL~sxTRnhprL7$BEf08GBbU%!0PuJolu*{vmJMm%OXaM)&`+&A5qsuLq~v$jO%Y<-cTb&U~wegOCfWW?!5;zt6!rhqT%UJW}*`eMx_djsE1m z@g}pkWqv_q3als|)3JyW9uvPrzXcj42cs@DyrS>dYKddc1`5N6L zxUr$8L5;WCiykS$xvwM~eXPCMGV=$*`Mn^VwAJR2>|OU=EgbUP^uD^5cnuERqpz;Q zS11atiukRZaQ49w{NMvk6+h)2J+}PWALv|0IOpr0`K~KmJ3V_;dUjpex+e$YO9T}G zXA3MyXx9~)KKeG?8odEO4=rK=ktd%<5kHmIpUjEgX6w5QZzK|wV> z^l?=6`C$vWRpGMpUW*M;L+<4(uwBozlbBp^v&-&0)4z=XYawz08)DB3bR09D%l@u?KU_sXZd1acQ5!ZU|-#32~O@=_(gMf zFZhbd!X-Ebbm12|bGsL7W#c*rbio(4OTP#4WeLtZShxgUw}oG5oBo1r-~?Upg(R$< zaMun}s0?;a{wXXEBCwQL2N68J{|GM8W19lz3b|3yZ;4!Fe_fu^=KaJvCX@AZeK5!L zvx99FBS3?b4mY|wVE?0z5m(#M@}N@gLRa|Ea@&PYQTd%(r~9he2P_THWfyVQg+FnM zt`H33&unly^o)b_v-|8TTRMZ^t#->u;PeI^zRwX5oEF86mS1%+GtlsEEuH*qq722H#Ah>Jd@sN+9$p*Jii@x(Uh$acGHc}X7}Cgbe5pmC2r zQo`3sx?hk6F*>&ZZ1JasM^O~1k4UEB($;HTtPnTJiU*$TCx-toUj{QG@93LwHSj^aGwFXr zp~zZ+A9T8>-bZnn+% z2qcrqa*H745L7+l$bUu%CD8I8&C%FZc6s;sCC{-Im zw4REvPn&DgmvE{@DYKY1I24PcKXkY@7fru*(3(yIp&T5_Oca%!bR5UV{6ibIqDpq| zD27%fXBG9;CJU{}Got*HOLlCJ3^5Iyp-Zt6 z2)y3(=U_!s-k4@*efAvS*|W{1C`f$aTv)Qt2h$|CU97Ygt479`oXK2POy8|{blA8tAn;qK@Q_ z^bS)v^cW}a(5E~v)xlw!C~v?7)r@xq2|zl#F)mh|Ty`~S(m+0CP%h`z>nL)u1&&KfxbJa{>W!0G5L%FwUnlwBRXN@=g79Kr6aUE*fQ z-oz8%4$Pmf;R#q%Txx)C#8=-zcR3>10W)ZbbdZyTk}III33sg=eLFb(pO2}@8+UWn z=5eV!k*Ikm)Fid(I$f`S=|@STNVJw?XRlWh^>x1%Z6E4le4d?*0nz)9UfTL}jx+ek z>*kOiN5HeGE612oFFcvNp{5gG50+}7Ge3Bbo^5B1jzW|0!NsmXAUr&gorO+(x{%1o zb0mfy3_VEXU7TDaBw|I|xvV#YU7Vpt2(j6XJ!u?E;qe$2s;}ut*M+O2H37bH3Xi&j667UR9@_a%8F3w43#2Gp;FfzmE0OCl|-HWsGMMo zkuh?P$}4^L583nwHl@J-CMS1_<0*lHp;1P6wXq=3-0w*NF?LPG?R z@m7Y8A5ErCUrS{|Kz#7=_-$Eb&XNa?7e&H+vPT$*-cwtB*V?3AkLz1#`YN1w4pTKq z2mU`|n@;O65zQu7N69PdzHZT}dPW>WWp0-5=V7RMJ5|wjG&ok+t+oMBZn5&cIF7db zGkuP|sYKUZI=0-9jy9xxX%Ujgp=;U54s{(UaEm$LsL@ zBT7#@+`bZ2V=n|{8zG{#J0zF(iJ)}o6$Hh(@Cy=D-4j$hC#YmE1Vubcm!KMuR8CNB zPf!?=v&r=ZLDlD=HIWnXfJRRFWHgUD+Mki>mNRKWQvDevk7U@rH-A^eh?o2SWw5B zO{MTShFhlXHPV3gCvn_)KE$!+VbR9hdo`6uV`d?Ee!ohNi}#r}a!qA-6HDB$shH<< z50YbGHxo;)so2Ew;es||e1tgY{nQfoYbq9J`7kw+-OM$&OA|>R7QH;`vSeaE)63QS zOfS2gX|m@aOD5*YlD%oR`!dsfyr7qft}JowCnOfB_M7af04LmnA51TJeA{7_ln^J+OJ-* zi}qO^-K|$Fn?oIK=jv#_es_DY7mw+_c*Qxhv<@=7}20k3JavSTjb^asZEP4`NsjnrngvUCczLug` z7DcNjH?Z8Rtp3|_I+UO{n?>R(fdG*FOQnS7DnW6neqoe=!Td|iEIY@`0vgv+p-X;H zu@3>`zSOF?{EnSKpR%+s>bU_zXKfwQLVt?ySCW_2^PlmhQZhh{_JKXspifxRZw1Y> z66sn`DkF;&>lx}(Z$z`Wye$n&&FHIYB-(Q3-;^aDOeeLnmb^3ETX!B}<*d2tTZnrZ z>qD$uJ?Ddkd#U{Vh#*}b$>gJEZAm)LY(;TdCt8|+o44l^oV@hk<^?;kA_la0?6Pw> zhXM%_BzK4T33?YPg~f5A3%ZGyC{Zy%gjDA_6?q#F2U~mw6mo`&2<}nVScIfKG072cfkZWS1#LVLnh{ktioRwZ!?ieiZ;AGHm4?HL|sBK9H>i?fCZ=&7-nx(<{n) z@}%rL7sP}PQ=#KvB99&atsum=rPEUkFM$WBXPo(X$r;@65|s?@@glCz`%PVuXLDa! zXnYHHB2HQXI~FPwfp<RMq^;dC*~*%6c$k= z3hY#EVAl~P9%Ye7**r-D%5q6#XT@k}3!?0@-(8f&9?B1mmAWW<_zYFD4?>_|pX?@a zHnEb01Q4CMRVQof&5ZSt7A&{I80dFv-XLEtfp52l#u_xrjvs)jlxd9(N!+r!mKXYW!9g6*6 zK4i1Tg*yWUoDsBW=c%*MvpnMSUwR~(3XN!al={be%B{)mUh@&JlkpTSVTeaf#WvG6n^jWp|O6v z#aUkkYC4;#5>0xB>6rw_*oi`ZxW6r^3U7Qp9vDj&@exkN#uU<V^@5PM}xZW1PI+@iiwWX`X<>*Fz_W2vtdn;1(Yt5`5i3KunP?C&_(XOg7!j4NfUC-$4N@p;9ykGZJMj?s4_8^sRx`4WPAw3OO9Mc@m5<5 zFD^}9UTqy!>W@Yu$b>iZQX!MT#FSXY1nZNVnOBwdLNvnGCa)lw8v6c-{ZXFOkP6%o zLRVDyy~LyxRRTie)|G)iJ?%2$uwZCzkS(9q2ZgQjme^atqx4)_m`90ZqTjU8>jOBLiz=c{H{*`b#*-fwcaS8PVAn zLXEg>H{PBa2RyrNTw_z1W7=nb2=l$D6G3)SCq{%E{-qf;-z{K=OyB{w&3bTJ$d=C>WJFfdn=Kj zye_m?K#VN_;rvjrbAyBeLh^rCIXQ+duY5`e&hrIX29`6&yVfYhQNq4|ZH0)HX&}^nLZ>Q|i)= z1xC7{%^{tJbpjX|O_(C9*$!}&ojG=ZFliA}sFBD>Z%9^{u4_;QQc{46a_Lq&Le~&i zs6Wh#b;%X=Nl+5SD_xz)LV}@#76Or1lHHy?{o!u|?1!#-8b)*n$>pJFwSMFPTmM%E zjqw;3IBBK$^?Xw>NhTW%L55%x-MfQ$6nPWT{bDF^ zBD7ZB+c6E@rT zaxQzzB^nS6pudOljL#o@HAjfEY}guy%Y58DH-%WL5SF|P_@FVD4bKOvlxmpEU?R{c zlc$+h>lx)Nh|~lC^j#zvpy#|L?AX5H3fZL$Bv(OE5FL5Av}s(lZ3dy&zWN38PuW%d zPzCe%n3H}71v67+DVTql^ay5qkqc)3A{Wf|;-%-AVD>L^!OV-@3Ff;JkkliX?@D$R z%y0NlC7AC@9_=8Gzc}o-b0mVpsE2}iRUHL;^`nX>D(1QX3BnRVQT89?5J zl1p#gpvn?xcCj3i_vDvG;qOS7C8J5gwC$@N=SKa(09Z)FW-9H##;c$h4b!PkyQ>~k zY$`Dqi%$D$Wl2hm%# zGEzBCm9ulmcN+x{gPY0n0XDk;#HRc$oSkk%!XiOZ*onzD9==b}7U1!EW>KQ$ zZJ;bG%RArwajNQ6?fTeNG|<|eai5c(nPO}fov6@Pn3>wWkdHwF-o?1QUdNbwvsS!S zOjbaKab_84rO_5T+6qQg5?ZH~Hi8oEC`pKx&{0JE3>u6iX|YX60+9qVVkB~Z|L1x4 z-se=EQ`LB_v3k=@8@~n7tr#>oF>J7x}e)SALR)^rP4^X7PYg1)1Wy0 z<>dxZ#-_orJuCw`P9Cy!v3%{tMYhzPSt`daE@eW@;GAMLjk&aFfVJ4ZPEoEOMFDUE zP%2x*69B4AX%a?lHx}G!dd>7`chPi~6=L3(*IWWd5ET)`W*8U%IByf%h_I9W>vy#;>c~1^7b=iL zV8(sYNz0x50$>>I3@@O#V&c`^sik7-68~w20fe_ROU2A37neJ!>^0#+yQqD@RU3e# zvs0reqyWGzt=Md7cNBpcni(y|=(8Ly(w9>Z=ZS~!j`BYhE>T0d=dXDZW|gS^DW`au z!)$|TZX!LQO5RO<9~tg1&40{u#8o^cBFDvGAOy<+UL^l+%fz8o6oa;ujRtFSrDXZWlTB7xo?QPSnT?T}hZMuXN9nfm`LFGY9}W znJl$%5T{dcuo&kkrfD2UB0@lZKY26aC6T}F)dB}%r{Voyg}A;dbcZkDYGi=zj%`MR zj}WU@Muz1dg|-~! z55n3iZ>B|Ts7$|h*-yOH%?d6#fNfn-Cb)Zx4Ctx?wkDVUJzi*+1GaH16RaJ20m~Xc zC5o5;9CVlEpNGlFtYbb91{v50K%XCJmd3SflgCZqF6CW!-W8Q>QC!X}mV1}EKXmA> zDF2?&1C~aGW#VT1PuT7VLnz!S|WYN6&!6r1SAyhm%F; zqYM@z_S`+beAbJM9cJ|ObUFhkwmUf&+jci2K-wM08^Bw@?nI17eI6|*v`u@@^Q>Um z^K9PF=9%Loqo1I{nNy=@aG5(bp5t=dsSItju-(o_eSd!lm$AZosSX6R{fWZrYyx{W zB~kgT^ST*7F->6(rnRAqdqHuME_Q`!oFe3MwY&|u+BQ$joCM*xO0p49k!dXKj@>q@ z;D!mADVGKMXH%4ExYefNj%pfwp|2?v0O$D;VF1qn=*6yor}gge%nDdA0f8}|XOe!p z4~%K~fAoPd#nILa##Ea4ZsX3U?lkV&_U=E> z(r0j+6L7WZLWZ3Z&z~N>fD!-&Z#WZ?oKxP!z)Gc(Y+Wq(X`~11k#d@BB!}<>QUb2^ zLck5t(Y-NzAX{i2t9ITtG*o zXHy!}-ri2on+RTMlOK*v6azg|lDqr?VB_IzwK?LRdQLo`N|Csodh*iK(s|ugV~kGL z(<#vlPLE&fC0?k_+HLm~!c(uZyXfT8qW=oMVt_DeUQ;JcKuhW%0Yj(v9Oh`z&hP zb`~paiAiw^kM!*2p)h+Ckx*prI65eJhSRxo0-^z zSs8U=bOSz4j7Ri-k7q6};#+o1T;4sAy~FIp6FUqrmO<5D@rgGfFKAPn&lTDErdaCS zKm3CS2>6MuvY)5{(tqJoo9Oxfd-Q-DuH zp`KJ%+gu3aweYf+2ZgM+>R1mD_LTUwrz2juBOY;@zdI>?)oIa*{^1rb`Kb}xl(MxD zg`)qeOESO=4*n!HLvBfk+6kOATo|xbiyP*-0XSDB(_&?8*Q#0!z*j zL*nFO^kn+08b#-HyMmpx`SP)QLyf$zR1~ROR!wPVlwd3oiiiv8$Fry(;(WO46@=X4 z>n=nwvqU6$QwLW$ioxQ0+w>jyj|mn7VQ5xS+<1q8%LL`TdHfwxOmvnCsbSCMH+H|? z>Ls`Mh4WRo@jVq|z-AOhRGj>rUQ#M!y0Hy@0wjEtukLE^5dzep`E)Bz(iRgEL9E)| zZqg0L&0OyP%AMA)NGITI;l+d4pmOjk)~DS8b!R)A$UOk!{QiP&*LlW`HQ2d z2NBQw+GZRwVAY@fe^B*@4S9;5Hqnz;mc3_KS!QKr*_}+c;2&vsn4Wr7avKz&xz!}{ zr#|Tk&{rot=aJr~+`#tE*5F_!H-kSYIowfr(zT(Qr#sf*gu)0kW!scgtuHM z2ME<&4e}+T;`${Y8ZSRAr6>Dn;)$XH5s+~ZwM5RiNnRIsq~(jCW#C{*@v-!9K@36@ z&_XU0gy}%zW_wq;6+lQpqj#EXi+=$}0gWO9fJQL`S}LHW4baf&v_%;}OC4xw4YbsO zmO9W<2O8xopy}3urn?GgsemR;#DSIwXd?XpH2N_NXldy{yC$yDT5(+qMXccmJ3U_I z2SakXAIvBcddLp|@E{GT(e!h5YG;xx_K(hZ1Rjp{z z@umg_jfqj?1V@nk5$PuG&T@tVZeSN9@5@7KO#Ai$Li6i|4wqXls%6mn-RA6`qw4m5 zQG7xihsm!2<$btYfoZ{t^nr^+Q4HU7e6a)@cKzJeGqSKs3rPY@pJ8JTs)clXrH_bf zW~YUAWiEG|=XDY^FcAq~Ydfbn|11Zk!I&)`Mql#RO=fR97A)H#ZAVICAD)P$z@4PV zva4Vzfvq31QZ{ zW%XbW1Vg7D?TY&95ue~A?y1Tq^|=)?b!Gw=>(lg+*`oYZ)cNTX#g(KGYw`9bzW(E0C$ z(#liHJ=f8QqTt!TmCh$B=teXwH}x`IS)#Ayo&$$m0VQECJKe@=EJ6n{@BjL*{(407*SRyKg?WQUir4=pdp{AL9rwB#bxWV zp4TTh8YlRI@;`BwQpRF-bcMZ;(TK~(sH1!q<;c!E@Luk(yO!~qSBV~~ka~(pK=7R> z5Ml)B!cfeXEK=NBW@*7Ru|vyGUh$t~_yO8dczc7u_a0dTJcU7tI=<45Gik!XEY$gF zRo>5NNLM!pPcdrBF-q`8Y=3A@E_~!ot|zwELouZmv|ooc#+15?IMk+}7{zw9CJovc zfKjcI12E5b6fopR5rW$$Y*bcpcwTbI8R+@;tY-jOB~$@UXdSqMKPk}P&}G1+Jx``+q7>h6O)j-l>f>D|0kO_6K8s@qf z9lO|poomw`RqvXbC4X<(QM_SCyo)CBOBzW~tE_PI zgGliQW;~OkQDAH1eFsN0NOLuj&bN^{sPYqqK6f_am#E|xe&)iy z``m=>^kw?V>+SdoZ?e;eM}eLhE_BiJLqRi{Z*h6^SMQ<@5J+~NPU*Z3io~|$ZXQAc zQMi*`H!ro7W@OhHEo*CC$GK3|k(E`wef_GcX@_wJTPRs!3o$nEMKl*s#`u(-tD9hL z0oKHAB*061#w*2B#+*N$8zsy#We&r1IGBaloumsdzO5Hi;RVPQTrQBH?igZZZl-XJ zvj5VXPNPbNI;etX*zwRpLYw)4E6LfKB@(McN&Z_Ng|(U8y>pp8lHqK7by_NyfmQmPpwmt=WctBN+I$Zc z=I>1qSosp{INH=f-7%`*<4xI(an+L=E4MGA7Nz{E%Qi+wzAi(TSJUpvC^{`IH0m9X z-u>mz-L&WHA9*agO5M?`hyUcQkN)aC_ka9|UV+j@YsWW_y#3LyJ@ob4AJQv*DTMepiYP0ZsjK5%U4qgpUu&5Wk_XstY6) zoh@o6z*+4XHo6JEBhNDK?h)08?h|Eh&NFqtP{yy$<|5%R^5kpETT(K2_MW(2WrnmA z=twn6VAuxAZcCfgYL86lcm(!%JwBy;XG}HPpH&i_ta#oT|1>rX6I2Y6SRoNfRYVw( zIs`vhf4N%~yx*7sorS}w6I5p*NSuvEi{3TbHGKS6>UFA0xWHgMe*Bmoo2vF) z)A#tvxAHhu7e26;$Gm?0{(-xdvRifI!SB+^x%%-=Rn@K^|KJ-0Moz3Bf1qzi>c_|X zt9l0xv7YgMK;vzO|G!l@slR>baoRn(etcs;G_HR;(6ENag-vmO<6QPL{kn3ct11AA zHe5dVb$t?;BN%X>o}Du~PdK!nS^m{I9&85xZ?CS>t*koLl(;-e!b#bXxyzHJL_I-| zqJWDN-MKgcf2k93!gZTe$=e$QZh^p>_3rLpB0001xfRY13>LmZptn+<{M756O?*=uSB2;E9 zW0Har3x_S<<(`{tmOi1h=}!UZADY$D1|BpIcP81=%6UMa^C{T(ZQ93Ncr%wVYAqJa z!$-LPpx%>{Tt1?wgL=}EPGrDN-T$`!NPM8q?BzbczMiC};X9I^UVJ*qv|P)z12-9r zH$EM6HyF))fRB8Qo{pE_vkN0&3Dd6ocy;sV_#@O|1lRGR2hDyin1!UW&|T~SpK`Q! zpO7ej*Bls*yqCz6Ps;TmIi5>H**CDpCZVy-i{-uhsoS3OH}aM11s|M5io}=O3|S*u z7zI$o+u?Pn?HkILM0=^oa$J7>>yW9K2eBgaI_?twKEm5mlbzfO-S_Af2Jl6+?0tHb z;ilFWp`P!K3l$(_&}ET!(pS;mKN?<7+=MuE^oc$eBv{ zqXEJ6Bo{#{Dxq_jg! zUdat{q8o&41Ou<ci`ly$!qKurgm!bONOc7tpKj&aW@Oq z9tPWCjH73DBf>@S%!u9R=P;Qv5`D@8?*er!#@AaMBpXoNG)_9dGyX}bp-$fPgBHaz zm`L4;_?agO8N@wpy;tL0KlGq$0Y(TtolLk^ zxOm(%hxU%Y~SB3!fypn;$hDD~*OzFo`xD83DpKIf`A?5{?eCoJuL7-mT z7Vc(-L1xpIH)^`1Zn30>mVAX{EBoc(sVA%_JCDgT0{uzDU3W5}t0N}z8%!*5NCC&s z_|F(~a`PAISvm^Fv?x}zL0PY#{@;BAu{JASthoBb4<&g)M z=>i>972N0Vu0LvYfPWazj#Zp4EcJ-fgYT}yCp3sSJ*2*_6sJvdUre%VlHMNo#-Edg z-hU>1;gQo>oTROh(XsaU1a=M}`MsMMnDpyO45zsKq8_L9$cd40`Nw*cZa&GnC=jZC zw6$mdP(QM6CoX^G0ELfJVT-)()1wGdxrrdF9;I%J0%%u{GkOF!p$580g&85?xC+wp#T zH*bxSpybY;d+cRlFKs0oSVDy=&{8tY!VQji1io zF0n%76_k&CknXq2+jSY^J!jmEKGGCw*^yce;~6}9tbXoM%MJu+ zArqvGT~VQnp-NZ46TYP23wWZ6)r5%X-aF{BR5QAKh0&v z<~1%K)enYVm;}`qvW{MNCqHncpr(2EC#+I^Z}a-r(9>!qIo}1kG^x9laEH31VQq{Vd#GA6d`N-<+HO)tx zG}uPDDyr0Q)32@Eh6%X4Rdw%e3?bm=A?|y4{}XW~uPR@#P(Wv=byJPT&+->qURezK zR$K~CzxMu~EcfXmW>3EkV58@6ua$@o#l2z6iW@Was>Hdmay>B$ng7&t$dcGx+vVdQ zq)*0Fdt|5B@PV88Aun&!WxQa~rEWf@KO;7w<@Ma-3#bNJ$=pw?$ZS)R?pn#WH)Cz! z_`r1bvjYa+b?g;yzedwBUA|M7(Sm%o_i%Hgp5%lAz3)zR0%)is{A;acAQ`>2H+sd|DME$`zJLN*)b97D%&W`E!oS1zLRdb`_3 zA9mZ_Ja>;XGE3RBPMHs-ywBc2`J&V7zE&`|E_MygBGiBrq-nzOW zP2#|Z=ya=moJI}2KwwmwMC6*paI8H11-_Ur|5}%T(qH1f2P=0+$H6%Kh!s_d~LJ=C*{3X5P?WRHjHs8e((z$d*VQ)k`xi;}_mW~vbLDGBvn%5K*XF8W z*&YW`CoU~mfu!|$GR(FoO$JXk6Ow%t(42C?X($5@uTv(((JS<|g2JY)+O*MJC#LzD zrpQ(_SXfH0Ogdo49~SL@IJ5e?DHa|TYi}YGtlPPufsnULx$Wqs?^<>eDUXPiTn)(4 znv5XWn=Z?*5pOXWww7|q#uIe*pIo`TG4bh;1Kvzt4K?bfC`tmT`LuvIJp&>i&ANho zvcT{POD;j##OsN>Ug3+mumAqC_}b&Y%LNB&xo4T1Ki5lHEznpHd)6Sz{KdT_Cge0y zHm0oVc72^MTjg$DW(uH;QgI*m@6d}0UhKV%oA>BRt+6()d`!Q8KyNB(4=MJ94d#KM zHNy;)$)(83yY9HdlIE%4V7P^xdqN72B-yzu`{`tU+fB4HQr`P220(&d?r4irr+kDwB@6|;$Qo#+nzfXT8!Ee^hpXd)Hub*${zDHnREp4X! z+&7k^4o)PZLJPhBs*y8nS(u}y#zf`odB8b=#UXaahnzo*ub}*bS2M~}3NHB5aXeA- z&;4nG*%IaV{po~`TneHSf$*4>)MNE1nU`jmN2%en4=G9H6+&LY@es zq1(RhLb!I98wJjS0GHbi`)@g9+}2)f<{J=`sguHC_AQfVu64I>BXdP#>cS-5#?=S% zNEG&Im3&f}7$QHd+5u~#2zn^*#<-+3YxNoGTqvoypT^s|X3%}Pg?U)++eUa#tH)Q;v7R%ny`=y^A z?+u0D>xM2_Nr=WU{JZ_)Gn3`5b}1rhA?0J>b9uYo%<|?7yxFCP&sSwM7Txa=MX67` zcm$@>!!a5>`hJqVTX=-P?04Oi&Qdt;dbN>|&~D|w`7MoHbc_GStPn=-hJ#N*?TTRv zf-7dF!cqf|j;;jG6_rJNv>x2s<72c6_t#b-M=T$MS$M;D8Th6E-hLcyz)K*%dDxk* z*qRwQ`ZVA5Y3fqmC=j@f`yPB>OQT?c=Z{3A2nt@MQAol`vP)G6k$v$5kL*hfdt@JZ zZIQZFk^Q4k0HjEy@RtEP06I9DMXwIf1M*#IwjaZGHF~=Qk&UiguvsNkrRALOe#Z8m z5+x%s@?*r^l|D_oCHkc)F-?zu(%FgmxSSj$><)gFBF`v4ugf?#!1#0HdU##SKfcw&@-Cl*9B$+t zK#~S4Z=ZxJ_Pb0Qi+LU~^G#t-UVlpIz}Km?TXlQ=^-jIsqt|W~?)KOBtCC%Meb6e| z>90BG+@n+b?d@x7Fuxojpz5FG6`GD%Zi0^mV%U9XU+f?%BdHI-`i?6hoH|yog zd3nTMzSLe4aPnx_z4r0~dwHE+zL1iK?BzN3(juj2^3u)C1$$}XUzxgYtZuiLyY=~V z>yq2-CGyjW-anUJWJ;pjP}f;QgvC$L?A-fv=aIPsCvC9kj$d z83uCMM&)Db!p(vuu?gMpkHNFMFzZnf_kEs=&O|7Vc63wy5L)j48P;)?qTTF>)4m2SsB2d%KZzae{>yt^W2YV z$9`k>hwRwD!y_lS7Ru4)|L1PXKQ-5tZzx?N;|u>tbaug?b2eqcH30j__b15f^a|r- zxjFQx!jcZ7j&jJEPk&NcI6*>PB=X&&SFX2&vRrskzQZ(coV_=s%60c8p;mxMe<-D0 z*fLwQ%bN`Zv2$C8k(7m9sVRRvoF|ZfU=DYl-rO>`&L`imKKXF<$&<6$Juz+L79e&R zD{qo(9K70lFD9E8K!O)@mubVbNAw9i%~KVcTI!Du zTY;5zvJZqC$ITaBEA1|Ol_4*mwJi8!$iaqfDzX!0&vr;l2jZQ$y+GPL=I=;to7^Yk zv$Cx$1&J?ro8DJiXp+Q}mENj3&EKogpJ_Ooyy7rFn%&V$mvEowM<$M@qWx=B#381H z0a&?mG!?ynjf%7h|MsJ;=)f8kjWD!g=_rTx8*5Y)h6ar0S6WM2smJsrlGky5vlLwe zG^;2y4FWWObSw|}#PQ+f{8IkNy7hc$?RvtTtzXZrYu6J1w0=Dwsq6WPLE{SW*|8pY z4%XES1W%j!+LJVz<1b*&y0o|6!G43M~0EUb(UtoWdgfm zPoriD<)2F>w$Tyt{c-lZC|U4-RtB#cR-oIk6j;u)s_c`a)!mz0*$1bRHsBEq=99-` z)_%WU8z5Lr>;&9oYbjDO*U(#t)6!XstA=%r-SpN0^9c*@6mPCBhwvps{gi($l z332`HY?n9x78b#WSc#1~ZRr?pN>CpRob3T@^SM8rsK#;hS6g9TwgeRcvpc@y$@t10 zEe`UK>1LJR6)GQE6zet=#hHa8^-m{;7B$zP)%uVX{d*Pw;NKk70ZW>-qK{kA?+-7E zgEMqsVTtzdA_aO#rIx2_mF{9WWtv|P4h<=48NMn?v0GVXKctxD1zU|I*RNU95{j)P zVPJ|DL+i9mWGnf|IwdWI*-Em^V$C`^#UsFI?>Z%?>XNt&*Q|58E{Rud&63bfX#J}7 z;Lcelq39ddE6Pf_Q1p%K6(x}?6y3dE(c|i(_t~gAL+5EjT@vRm;~!q~_`2lbbxNL4 zmprmg$rJ06Z(46iY@ZiKk1Jap6)PHo&~nGy(%Q*qa9518e0P%X!yS!=J31Qf7+kmm zAmI)mhC8Luc`Zy=xMPmP9f%R`K&Eg90){(~Hr#>e;SS;mcMw##g9yVNR2%Lf^>AnL z4;zP8UU*+%MB&bSbM~tRB6KHcNz90iYWeX-=TF*Gu#Z8KOdR%$u*J_Kux}(GmXN}S zqn@uMW0dV|wQq#jxoy%mg8$mHW;fJHP38W-U5?65epOEMTKCBxPol=1LR3j7cCp14 zE4@ixMlr_^mS3CeR1(|6h^y+9P{S_U%b=oiUt-7G<)2U4OU9*?%P5n95?W#ZIGBHw ze<5YL%5y0vX<`TA!T9Y8SGOxHJHJ*wY#6fNEG*?$k7YNsl5w}?ls1QY0Qi6cTR_xa zB!eVku*Ir4vardub}QG``Rx5W7jFEH$FYdj)eS_uxJ-7FO_tN9WMXhucBb|!r26f8 z!e5}pfMf-#z&0%j7*TuJZIc~+B}f(hD_h#7#WqHmaPiDBUN|}?M4BM7sshJa`S(Wa@<31G zJd`(aP7VSVyHL|V)rYQ3ogAG5hO_r|Js#b$)dTY&B!gCjRg=Cs=}t{oSd0fq*k?jR z@~h=e%w*-CJiM&c@LGdyk?=-SJLboiElE{heUn5 zRSrcErNJ@(h7yJiLJ-4-fFPiR3J4`E2h}jB;0XjFp9CBL@eEH|$wIooG#J0sc9;1d z7`oW`fM5YQX}BYFVK=APAkM`qejyi{Ifn}spUFjxM3}3bA|4=^PmYl%&kHI*>jkoX z$isLkL~&&#@~z911x=5XcDl@*=nq>FXkv`qwdsrVtf8~;g|GmAn-OT0=V*F&)Ik{+ zTC9W(kPIUo)a6xx;YPh^^C@|bP?4f}0x|`l2wf)mlzo8GTKR_nZCGjk_vRhq z)M|}i^|0tcnf)MxLI=sEi&||e2yY|F^U)a_UWKfl#W-NkuQw-IHsJL&z-GYf>jszp zL%84!#FJmckc8HJ{x68hZ7$Q9qv9#T7!s~~0Dpl}!4v`FA=GY$fn#X(qyBo4xA@m>y+h%Zze z1TN)b$hQbW`1eX6pQ|3y1C!35GQE&ID!KAm}lGeL7bqsXfG$w&QHz>d{45clM@()JRT_JyO}nv5(bxv6VbO3 zXdiX@G3l(Ass?Mz_L*7OUxuu|$AE~Gb~$wmGexAOMlifhTtTOPAh=B$cQG3BhR zbhK*B6swN6YXb^xUfP*-b7`FCafL{9To>vZYE{XScJmhK{EXgnhJ$C%owdVb04p7S zGd&DGRB^zZgP&RDKCg@Rc=`uBrt6ZpB|@b`oZWTF#?L>**aS^Kcf~?Jc0RBXW3ZY>XZ|8n))MnE zN&9AZp1eD>$3S5WDM6hHvG%YlBTk(e$xvLQwD_gi4ej~l-dKBn^|v@uZobHzTw}CY zSqHU75SPopwya3T^>)IJrl$N<^@h^J$Ljbv0zTToXj)@*^LT&|uF(*>!8O|M)<6Y9 zURX{Km6sEBU`Y@vl*ALL-qDv~W#yr87nYFAAtQwJJN;^Rs!?t&X&!o`Kpw+G1qeZ| zsOhM@%BDR7{LM?9F+WN!K)s2WcpTvF;dIf2c7{0ZYtS^Io#2Td3i=S*sWwvXSr<7b zH=?{jOrkhKg|W?*;qtlQUk96vv)DxpYqXxW7xO&gu#^+sKfw!?<{xN2 zftU7uqWwM%MdfWD{0SZH`$Ri@+9z_$5AGN#N`0T;F7{94zaQL6yy6qAX#WIU8S+Wg z_ldbkaZU#psei3+JrFQ-n!qx4E7n)wOTZkaF5EHQ;SLlDcLXcK9dHhJfG^wum2k&k z!yRJ?ci?-tQ@b`ousie-+TonCKxgAU5VWyP)?=Ft-;Fol>DW0ZkoL;&Y)@@=imU@i zYn0`9O+kWQPB`@GrQfkft+l2Ty@JySfhbAK!IJ&n%$>dvPjXMzU&|Nd^*fcn8?>m# ztNb_8qAo&#;^xOqi#lq5C;8idFT%!QFvPfhbR@|d4Jw8$n}hbB&bTEcfode(W{A5B ziPspnl%02DD`-&*=IBCR%F#99jxJINdmUZ22Li)#U%9d-tQIq{q)4@EMXDOQ6sa*6 zRF+Bzi|FVKIFclSjwwaT{9f9gxKgC-w2x6QXYAEj3tO{RN>t#Kk{ia5CVNz-z*Mk_ zM{-gVoTsiX2`PkY%Vlr&n{ozc7Q8lFU5P*b4Wmgu&(gX1;5 zk6R5MRSZGRwEj-#fAoE4TTW|F0lM3vi8YF{r*t594pa-qzTe>pbaF@X26AWGR=WKx zc(Jg)+t1AKhqLU_RkqV(mF>jMj}O%&Gu@?yM-ALT&_zqZUrBU6#U~5n&~ZF^GGB-# zK`!P$026UfnEQB1e{o5`TkOug|_g4|-6Aw&b6rsQAFvgfb+)j#MfEzGYr zkYJO`IKO))d;6&AYIOY}CXKFl1>*bzxUrP-@FuSL<@~^UTNb6;V~ES3#VAByKE^N1 zc7$7s1lc+;!yL)Kl?v*G{0<7#+mjCS6Tpq@$gK)wC4*+2Ca7oErzp)noU zqthZd@Z8^I(iv21Vco!yrR|IKg5`yDQd3U>js7gB#zK+d=} z7xE*(T;Fps&S+8ylPIi(V4P1LiP<^WvKmM$wvv2+?vqhbm540e4%}BSLCn4kd#t0UuV4==J4pi-T^L4Vo4M4XzF zB`KuHuMBIY1?9gZtDK)VaN%bi(#+3Fj0;)jqS+M^?8?vzTXnsTy`vE3QWiE^wt_wh-yP^(=8b%v>)`$W& zLmwcDn;fLNFlUM`SHu)Sm+TprQ(Dk zAp&G0L}=Bh$}#l*o}YQIpFw5YVPEP~x%Z>hG^HFG+kvoE1V*9xoCp4L$B9vbRHo*q zp0Vh-!O8-%8M{-;op-04FlMBf5-upgk+i+2n3N<5nk+M}j_5UXcPS6mBp0Jj{#?ir z0(#|xS66+*o20MCt^48l7L#H9aZ&A*ql7$omX1RQQ}w}6v(XmOVF&7jD&JQPo|O8& zvM2j4mm*v852;0>Ow?-xtv?(Xo&SLBIR)w@F(#{B|0Pclm69RhoHLn5Y$F@CxYdyP zr{fUPLZ)3rPmS$yaI}e9EF`@+DJ@QmMAK6Q2y_sRUYEyXWz`Qq0pFmDr|PU5i3><3 z0YMD+)N8`l+7LHs7J1>|o-dU*aAetH?o0Wz$J)xyAXfXbShGi}@oEXn8L; zhjp_Xc5gQa#ysKnc3%9oetCqOM|HD*WHJAeZtkmY_Kb!%%iKJkmXG;i5$m?0;>x{T zw~cbos4y_j?@_yZt6m?fdi{8Hb0pMwbJgp^Rj;qBI(t`j^8`0^_E!9!=x=|NX78Nt zSxvJuS+SaCUxKCzybp%eG`A+5f5g=^cbTiRasp}kj^*DxXmPGA{GbA1SV%LYylF((%G!UI2Nc~ne`H2{ zXyDHgKmQHBpZCSlYWZnBD_cv`o0B+Yy=}~%Y@E`fJO8iEC6XUOJ-?=-j)PsrR(Xn~}fZp1slh!Bo)^BX(Ox3SzWBR?tR9zV!%vkly z8{_6K`!}v(`Xq&ELb;65ZR32G#uhUOcW1LcOY0c~jb#i7)@_B=5L?{G=MK3W7?(2f z<(DGn8kJ-w>YATo7*iGwQr_AEFe~LgHeUf0dYzq*#_P64Ea!|Ywvf@}%b>I*M96|8 zL_ZZ+IB4KzkO?Ha(4>Q9U>8%xHG^$@Jeo-J@yK$H^UrdUwMNAiD@kr6Uv}kw9?tKY ztTI3=ALCmYA`k} zuD%1a3_CoT?HsM2GDo?8pig_3w?$8Vd7E~nFS=zmn^{zl!^+0{nuf@0d zuGYY%D}!h7N40KpboC4lUpHAO^en(F2%d8yx!Cp z#kZf*)C5JLm&kuU%RZFoET^!cRSV(QbHZ4q{uBxOy`vM9aR-l^JXX(UJNOp54-(rR zMI0v01X&)7Ec;-jRTJ%1`uxCAz8`H1KV9GXy0oIh26l1dy>_LgE~$He8Y z?TmO@V`OK}lTzYer?A(N9np@7e0k1WuPP!qLsG~E0yy-l6YI^%VBHCI%Y%s%G`Z!q zI7dfc#!-h=QB&DKd%90k{LzbIgq7=Ml*tzwA}~LN4&$1F{O7O@7BhW(6mol#kJ;yi zyBVc7+B*?k_K_qRxxA&1*d7H(y}6FNc+a6n`A~6No0nSdP+MH*Z#J^bTJG0vMfAL6 z`;P5z*hP#}r||HNod=JaQ+=Kvef z!j6!D#Rzu*f5+6DuIk1DNW5cKx4h7>cI0m=T09o%j^a(P?Iskyih%4aKkhjGO+})g zM*OFu#pn7_U+O#iF?`35S9R0D-=$Pa6<1YXQSntpdR6vIw#%9h7Dz4^zdM&GLDWfi zc!;iu7oUf-nepKXE#pgcj5~lQLbUiCW-4V(?k#U9TDvHamdPbLWq^X`wFp{j;ERht z)mw^yTb9Wgn=A;QjH1Q80gW84Y#U0Ig;WsmU)mZIt(D9Eqz)*6AZ+Q0GH0(&(mIx1 z*!mkjT`K2)(R2$YfSD1@TNi?lgfNOxa58;~ko%?Vk$skw4e4{hSmTuWf-_NBHbP2a z9@_?4H}?DnLR{Bq4MkC9I0eLI{RO|^9;sg0b4IOQ@+j8QeIM`_V zm`=tusPp?I!9!yE3|X>FFfvbci(P+8Vb_R`yCU4eW{Jrreq-WZw22cr+U5SY(8sUF zYDCy+fDQ3NkW!tq*wwh=1l%jqLTaF*tY{U0p-^l76Tu#6rrCsdP;;T)Mze zs5$>d{vw21-3bp-nm{&D3N$qOA(AVM9GEWWDIAl$b2|s3}U z^2E(VtL5u=>hK87Jx)SRV+iDc7OHJdGl-`WJrU>=!G(7%5+O+9S^j}dW6%}TePM&f;1 zg3kn#_@QakSgV=Tu!KorSP*6ymNcd+dJU7cDNT!ZewiX_wg!=_mN6)7NyoU@B%<&v+*jD_Z<{6E;Y`%=j%q~bn1-WP1;pPq{J)tk_*v+UC`0&!?RMlbD7ct0MAF6w69 z=IvES_$e-$m);RxCOt2$BWhRj5sVhA?T%b%v!q)wF%z`iu?x}n$6m|^u3!YIvQc;Z zLP%Ql8@?IQ&#&IZfZ7GWp)|ZifAnrmXpYp-++IWT_o_kkLX(%Pp~=et%})>qG-!UJ zrNfddXnq1F9H8lIK!H3|kpE??-l+8FYnO)D36p@=3U0736`EOTs4`th7K)Up6@;M* zgq;+&?PNgG<|Fo1gAjz%9G?zqI%~_WjSA`6qO`CnGm5 z)2>GjZ?;#xBiFk!d{m7b)zY{@82OD_tvxD@0xZkB;Jz?sQdnjxnv}ON@QDja8kl%- zH$@gAIm8OKm4!Y)w>v2<^v!ldIF|XrB~{V%g~e1c4Q7sP^8AIYn0%S40f=4=Xi*mB zwn7EeHtaKv8YCZg-bz)W`Ayw1j#N=WDZv-kkQ^6dw>Im7ZJPCW9Y!Ij7wt{RKn|?6 zlAQ^Q{&z_7rYiC^G;I_j&jYdVWo$~Vy?SzGS~HB7Xc+c~;h`sl=KTXpF<_55SPrBq zErJ$Y+#^2v>K0wlCyo6yAQ>z5yV0Pt-;Cq7a?$8n#N4B~F*6*eqxsdg`87LJ? zLny}m5mv;*SoNq;YE{vw|GKg6GQ=1`sMh64M6tY}{6VP@a}8Z?m*mOxb~&MwO_%kg zN~$h%H=xTj(sa2J%%RKnC`-Y+Y>yg&ciA2%vuBB4B>9~JBJw=pj~>g(FB${trU-lQK=@E|2w1uELl?uv=H5T8$b$QmeoiX z^}Vxh;Krn=R;)=GS3aMJG7KVKcSmVSaOZf*C9KSNBv~*bFm)2Ss1956MeAIa@P_79 zSL^(`S~i@%bW!rGXq_dPFg<5oJQd~dmnNQ7fH`E?CBT4iJUC$P>IF=4sd45(fUzm% z*8zaB`3y7G0EV~Yo5I@~Fnlk-;C6SwP-_DiJvd-E-mU=*-_(HNL+RP80TUVufT^mD zl~vaZnARY`+#$d$EYUAgV|j4E+}+CFoF)@jw6XeVvURC=e?S&4n7ocN{kr~~N+Wm3GhL`Efm%%W3tzpd;b1xIi zhshg%XHwYiOv7ZZ$hXrRvOtt+p|kE!ceLex@a%LgLkoUyg9{8@TsF*?S1o{Y*UZ-_ zwf7?Ou8CyU9Yl{LOWo;^XqYGmJHDlR;to_v`|m%#wm5NT=S0hAdtD)AHqPIt6IAgr z!!<1sc||TWep=iaCQbPxH!er{=i_1;Lj;M#WpfAn zr4zR0ouVf)*++}x=u5Jo+tRwFWKmk0fK8xll;qx|D#n6%g3S7Dk}TIxv~WCyJjO|K zTjlJuG*kM+7xYX1Ci^Px{Yp`Qm7k4vND&ze{U|coms7$4Y()BWP~-R?#T2R&0yMsi zv2aiFD!;)(#DfF^gel$cjMC~vktu(0R2JJL+^4g#pv!>`jTajwSQrT38JZ!0aYih5 zG7F<-rXb0S z0L-jLJ6pBc$&2w$8(*JH3clX5$S1I-E(5;|WnX<+>`t98v37~}c@C!`Q|G4#hFb;bEE4&FBj# zKXv{k=24m|MwhTo0DjRv&zO;DicCYt3wl0@?TVHm0ok3&KRJh(V>)F_(}_YSN$LfV zA@P|mOW=(G*$KcJ#G!KDyAwd;IvDZ3!lOsCH_)fkjf2Usra=CtM6cW2ZXePkZMcP_2Y35MAxoK0(EXUq7cOSIaV zqY<&*E|!J13FUQB_hd#7RSzbF15Mw^Oc%ymay=lS4Zz8TO4zP&j--;1^*z;4fNnE7 z1_~{KLdP3MdM%n(#wRSRCl7RbB$0{!599wRTyO(?rs0B9G(B5$L8Ms41@8%55cyDX z!5PP^iJA*;SiuFSH1!ZEI^X~<$Zr{3a9`SRK}g!UpuViRAPA!g6F(YPjs8^+7py-E zT+sVb%!mt$6N7AEdc_4n!oUTYS#d%AhQ6SAFfK@QSutbm&lvge15|ec1EhP5pq~MLzK;P;I0Kxm8Q^SSfV0MQ zdKn;@baN{hAkWSK=V}Hx)x!Yi7K^C?3~*Kq5QJw9vmpA7TKBzajv)x?GkS!F{O1qdeW+)kJE#}VtxCnQ-IQyF{ z`qVa2qGUso0-r$`BRyCz`6+U%*d}E2tCz-HQEz zKuaLdn(R+AU9rDUOvQO{PNM-rqqt8|y_1C?%;T~nT*g;?Hu_Oup(QFzevg(zfda(7 zh%PcYm2JfxGzWI|zO#Bxr`<;a`rY#?P-h!aRZ z@dD^5i~f=TULuW7zsi!(#Es;iscXY+X}-%58LXed1(Bgxx6CbGoR+e&6Uz^G6mK{! z%}Xj>LdU@HW!odZ8c}1TYSa$HU|0t~#)0Q2F-*krc&m#HU)cu6xfw6( z5hSjdIC+-IsG2UcBo7CTz$}4+vv(X9ubZ1NQD~-ZCD6;Qh?)De^t+llKEcEmZO9We z#?9H%8s*fW9FN5~p3owKkz7XcDC_11YiNzR*^n$0BUH*@Dav5b(NJ}fbHE_)wqFEL z#?HOOp*5xtfv`+^-68)vI4JEo#dKgI@T3rv(T~T8&Rk^7$$p^Rae#6IWF*v?q7Yz2 zcUbJsP!LWst3e#UX;B)2q0JO(VmB0&I^>GW@m}x*3LakguoGx?42Jok|0U!$K4uT1Wg)u-5AAkhr%E7T7k2k}xWsR5zKyD0< z0MQEPRSK8XC+7-Q0*b#29xi366Ok+li!2XA48qjvGHFnu6w9a_l%S?VX0m4-{huME z8I=Z*6}o^7Ah4Lh*ty0PY=-rS*)MVcOE;iF=SWrOCyc<;;HITiZshm&qG1d!Mxu3j zckD%co}L#l#>g7d1TpEP#u*ve=oyS5axb6-jM-o;zr)MU6#t(E3>zT0S@dIJjMf4Q zZb+5xoG=Es=U;AhHEl3e!x%Q8K_Ga+Ibn?P`WY{H90jHBiX*|adkTUvW|FR35R91+ z#)PKl`kI~-$6+&?C1@VYYYF_B6~@d4jByZ%YhcDX#z1z$81Hd24E5SfN0bPv1b`zj zkbpQU+#M6*jENY<>;mGTr$Wfs05Pzs;;}Fxb;znzX?T&RZBWtyB?)bi%=?Bz&o!K$ zuN`qF4RM%K902<;VO^(~?3f1J?nF!-jwvu~T5+#=E(FImb2<2{3WtZzjl;jsYN%D)!QXR!QAd*m0KM$DH% znEVRR4D!ng&cF~Fu|z?WUv)u~U!mYe6@KcRmDqMbXk^CYP zqmf?*3|I!#ze0Y|5y`JmmxL*-V3qs=r+Vd=dcSBOqs~Ttg-XWl7lVLFyILiZ{IY?& z{9?c+zXpDG6!MEf^~*2$i{uu2it|q91udlV5c~lV71A7$Zw!{eoc3gfJ#FZSt$GF~~1aMe>V_4X-kYAxL^?D8Y1>*F|FZ@lYa%Ae=N^NccxXX49p?rXzS1D<@9gREtLuPRDK#;&-u@&h3s!jpuF&Kv>|n z!wLufA@5+Q9;QV#70M~*Zzh$ZGWMjnM8w{ET;d|P}wt1aX^ho^+Zye&pq1!AxAWVB212MgL?k_=INPLYma*^oKE$Qd|2@gE@-B^H8}!S4MNS1u`|8Zo~c~$nsA|0U@MMmuvGH^4PZ^@ zf1qTI5yF3qow%MJ1&hUyaSd7E2>a3!Me)b6S$9&;vX+18X~-;l8cvvHOEu5wj4|^% z%*ZQ##K%`!mIEaMGR-xxgrf~d;dEUzrVEbA4N zsn5C-`cT2EzVB_8#j53a1CGfGY9Rq5NF9f~O-XMn}rC05`06zKKzjH@aKFg0mREb-qgFZ7mk9+zp5f|k*COBky5t_72G^IV( z&q{{`8uc^q4Q+ul+4TwYSe-pD(((;9i7xx961+OvMF`49y?`SCU)yV4B$mq4rUdEy z@C0Oz*xjH$k(5h7QM;~b2R80Eicm=`0~h!i>AhGUU*7Q6JEL+g|5(lor6N-i3Cu5% zV;h#ER!~yZO3QMQ!9eA5Z$!R^@-RglI&UH0MrgWyd0I!bf}3En2w|^`Vhw! z^8gn?axQJ7uUIIimKeM`;#;O?dy^yuGA6OW$esN68h)M$u_t3g3}qE~q+W&r2|W2@ zcxJCvwa>7#rQlpm0S9tu>bRs5&^ z0!G?s;KZ=Qk1Jut$hCD7pGfQi23wxo1ChUM* zl+^?r?#TGL8`l`1qTWLri-{fW-8W^nxiP{%Hik&zeQFh`68@n&k%T^-LZ=*(^r1@$!{~B zXO|CgS?}9t#iDmOrDR}LZ~lj}GZHb&|K{oMFhh(kY3FqhMa)_n)6)}X$ofd)v1AB; zu*RPFD82X{CLQKOY*MN3nmQ_K$utGnf;dC4DK;^k{cPXr!1!d}z>P8|MX`2HlPW~J zvy1bQ_DidJKE8NTWIL<*N)+~tf8qfkaUAo>V#4d+yUd{S?*Yuq>iS1SQv>R^aXq7| zuWm2YA0Sn?=lm0?glb_7ML3H&2N25J)GUXy((KFYW?O2u50o05=Q`KZ;L{6Z6IN3> zLZYg?oH7>Zm9yP6mH&TUIWuKrQssVL6@WStNs7`Rsk-W>&s(+7hG&Ckz3p8X2G(~y zjK`Z{oLLV;OCq8QdMqZg8MhX|CMFmeST65GqHpDw$;I+L&_udjjc*TKa=!4*kk^eY%L*Vl>tb0iIdNoq1}0|v z*l7@5V2Jy}KxunsbhYY)mTVt8E8#D=)rzzJee5I>)m-+US(;qwI~uHJEF6b|9jax3 zV(u7*G=_qc-Bv;4q*9d2X`0aeZ?yL*{ zt?Gg^5~hm7jkI%zmew(%#8>;i&lmeKlp`$zK66ZliLn|j57D~YD|fW)KnvPAIhtXm zG2N^11wuoZ3ll7S|Js$UGAiM8)2emz7+ci}7HWxVC9MLF8aFhw#-}4-b=ytLQ8|)d zI~R7|ar3}%N`KnEE0_u>IR!!xXx3>$1|Z$|K&xrZm`RA~;TCrB|Lk3* zlz=1nn3RS9oTZ1#!)B}HZdB4T*b;U1u`p;cKbVVBWVSFB!Z>LpQF#MGG5;z%f{BoA zRj|^iBpYqTpMY#r%Vy7XLk*}Z`l843@P`=q{roX(>qeVOwB{n(BvAZJUuVf=uvSGx zq(q3}Sc~i)#K^3(_Flc9!wQEkmTaP5ci^Ff6)H~3a6WTGAeChYgSBmb0OzEBi5qL= ztyAKU#TYcBg3V^^DQTZNMqD{2fo1wr9~HTkD}}cM&os+jTN)P$K2RfH40*u@ zxQbUXQ|bmi*4MQZOJJ(#12M1=uy3=SeS;hJXeaN{;giSC^!4O@x0yWVNYGZ#{W zZ;Z*)B!tPkT9Y^ClLr(uZ(QgrfsfvKlfT-MAvJGf^}LavRL`42;Cw2~INEu`#Zu23 z**Tc_K5rwMH%pDPd84ng{>(E1WVwUXgQDIyk90@#NE}xco8K*>x8{?QfoJo`4S0LB z^XO_YVt&Ou?&+P!kGA4zQ4Pdlr_UMK0Tf&*>P|?5j|5`l=Z+(i0fLuK^69t&XRcp7 zVR;YvQHNop2oUTZK!E8f@hk9`)buBNx{DSl`XdoaI41+dvi>-#ua^vGz+%DI$j}by zn<}^jGE}wDl(kWL4GZ~wub*khPKv0zWj;|(`13w&(p#h z=HP75W%|5LgJu#Y*2>x{vgK%R3JG! zXnalGZlh4YB6k$!FZr} zb1AT)`4CdKz3VFxn`y6ebo17woyqcw;5?L(38m?hmvLvxgzKc5A9e3Qrk`d#`(PTB z!&OU0u!0X-nIoo?h!lz6Tm{KaQ@T5M)vg`U|EX7s;jmJTKQG?YPo5o;#%nPNy*oQ@ zf!NAWf_!q(-=Dqo%#^7IbAC=DwyxeEjH?OCI`0Ehm>K}Tf@dOHJ zEdwYl4xyH1i|A)lJ9Mcx$QJq9)*@hyaS4herNzNgX$gkquMCGZBC;6{AD{$*Zeeg~6+|+< zNlZG~rSiSvY3HJ?QY4F&)GqZ9@uR?o0H6>CDi$43ueu|8DOjL|=<_k1)zI?hQ^lYe zn?=%U$CRl944Inpk5g7ZbEKWn2RE+;WGY?9zzf`a&T637L(gh3F0=ZqhVj$V!l++N zmr>e&uMB>hqh`-p4SwQYcH@s6J#LdY6=^(G{J7z%;Kx^f2>kdM5%4|)p$AU`g535m z2qJc~ihu0+VG-orPX$3ZM)xT*kgHcB2t9Zj5ahRiED_}Y!a*UMJSZ@DV@M`v&&wpg zW276yGL>xZFXX|(f>IVvPJmtZ(sSlq_d}q~2?H*wkMlP1K~FF;Y;Rl3Tc-SF$Pug->gk*ltT6 z0P4wbk(5V1yo`oa9=;XZ{9AIsDcdGqJe?wTi#MRl@+LyGL2^$@j}~{PDm7*~7D~0S zrU}n7Om$H8NISq+QAtkvFyHs>cyPd}uXK|9O*)CHC0*UDs>4wTLsrsFyS>U4zo37V zQ!HO&YHLh3BJ&<}$I1~MHj^M2I+8%oMYRqe@zYW`j3OybURh*CZX#Knl3Ziun3gV> zHwzKBfuGE8(3CLOzxkAY1Jq|&MBkCL$8*mIFXV&cPfO0^X}fggLlJq0;K41FJt^6) zV)MyDhs-o7HR@ylu2jvS@!*wU(EM1`Kk8#!wr%m!d2oP6Sf{1|4(ul8A~IY*OLwZe z&=)GCBZZ<|Oqf+(c=>q;+g4d5NcTZ72-Q|V(1IAyOctKLkqRI%(64j20OzL&4FR`? z&QSqG9s5#*LJ%fgs*oEWa_wOV&nMfY*l~AKGLJS2{p#gLCWOmolI2pJtk#|83WCiB zOeeH$apenCYJ)3RTSR<-5LW<~tt2pWnI|!u%eD?Hm*Do&K25hGB%*zT(KJtq4`LLZ z!L5kx)MPs?-35}cFxQAmO{Eu{CQ)IS&t+lB_AFQ+#ZV&yrYTt6m2ai11T@BGG+`$8 zL_-cdlcV9}5SKQgQkOb20XqCtkwYwU&>A&Eb{1%u`YT!xH^YFGl9_+ld_A!+Ze`it zLKLRN8PpcDn4T;VDgJDlOsBE$;S>39Nx1|u)vJ1j!GA9r@Lwum^<$+jPO=f(y6uDe ziH90`TB}S@587_AWEk)Z!whYF?eWm0Seypr3v{+~Ct%xF(Cd#%P^bnX!X7v<1jzx8 zGAo}~9@dFw#*lRua8T$278BTJ!-F1FQMQ9&WiJX3z)@2}h11{;2;NhJkWFbGjBpDV zh!-_mhDew(J9QDRVn;Q4i?p-jpW z5jlWg(%mTsC!;$)yhsdDgo7pGA`Th}<<8WHr-JrI58+TcBZNQ-3mEzO62G%Z!TnW@ zq?0T#TI;s^L>rMOY@jeNT4>kfB(X0l5e8*o!Uc;Lm#{#DXzwExLlBJ!YiKVcwvmB@ z?zB_5#;rH+^i$pE~I0daq!219#s-rn+Hn80dP_NgI50JYK28^>z_gu zLiuTfJW_tFxcX)#rEJYcuU~MBywh#;Q%=L!0tV7#dc32|`>boa7%s0;50z5iXPB zm!=`C{Q=uhBEPKQ8Pq%{cAZFLlllbD2BY(vsTiTDauRU02D7DNCZ@q8Jxp6%K$}`t zyiecT0gI-@Yyq}3w0Vs#67w+?hJk4ELfYG)QW*Kg^ zJ}_-@Fcpd_nWCrB^Zj-Q?>`+7G)v<3ns}xjPB`g@jt_pp9&i zB4ay!=(3SvbJ+lHa^Z0EN;i4wD&1sv&`pwBH-W}plT_M3JegH$(jf!n3lDTr_!hS8O6+eMXl1Dfhxy zEtiVbnh7rthvBoU?Is|_{`he*KVTZe21X37_&OY_H3?wttnO2#A}|;w5m=kH;6qi=>PD{x z1%YZe)(XPviqIUzf+y%sKVT$=RFNqUGK{4o7(X_c_UZ^v=a^S(1bH}yTpZcF7;uF? zFUB@j$?@BK2k(V60@DvR%JK@X4VI_4Do`*^UT$bq0TK#PGtJTqZi<&{q|(4EF9ql* zO~CW9QBr~?AjR0S5#@$(O~CYTG=U!M}ld%2ORSbj;G%J!D3x;GEKVB$i@0PsA2M4 z{M6<7sJ?;_>PUEu(f{_5F3adnOHndjDbS(!H)+rh-i=PLR>91HJ(nrOWgY4!fxUab%l=db< zmR$GE<1n?QmB^~6VTp03LzCEu@wXhK7)LCt3bqx~xY%xl>W7MP%TR+Sscl^0L5y=Z zNQ}!<&QvPN2QjW(Ams|^Rb)B|Qq<2h)t43r<%`TNRZ<>D`o%dnlzAM^8f7S8{7@b4ekxKRJp=h+rS|z*3-dy!~@b5 z*jS$4ZVsxgI(3ft0%EN9TaL(i2>R%qs1|(+a4i3dwB7U-9OVPK-$o z$;({;j*?smRCt+G{tADo-!^(lvP&!h#QXxD@4<1EEC%F5DHspL3~HE$5u1kbK&%1V z!n#x|#ieR!tt1Vg=d*s`)mI^4Y@CAx{e!1c8# zOfUMi5Qq@6MsBF@jT$0SM^`d6gv%;5q#|?coy_q{+TLXH`nduk@~uw|8SqV4uts^& zSL}mdc`sfLN#j(wkRRn#Ps)4wOOgyG;D=N)Ifq4))PDgiSo--k^4X~hYL|HhFxP6> zxxR~$rqY(C+@dI^ZESaUgjI#7&f-kcHdc&b#Iy~%v|{{c`1rR=C|C$ZBLa(F>Qx-& zz*Osiv8g+-x-C(%pnsAE+b#W8p0)Yp95F2JPD&T5(8x*YMgYbesd_5nD#n7V7-zbQ zaRz=vaYw7VKD!cjjpjL+{fw1avdbK4OxJzN()#_oibE`k*U(0ps+E z6pa^BDXIV46zq#F&NmBE;Fik|k_pMkgj>(7b%{Y$Ruwv8vHL?$1%_3%^I)y7u`Z;! z+DOjukr?`zcSXHq=;v?&0|)k0)@kVMV9miIYMN6ai&Te|STPI%OoNbsS{XLz@d&(g zq)Wo=smUWiQ!0ca!Ke`Lvf-FVKq`cJMof5*tFWe`SA{Td7a7U=h2O-G4ci8*5W+0D zmjw+fw}2T`sI0KzQJ5KS0n7&6GPz?1L zXsuYkl3{U&!%?3m(1wxqxFX=*ew?acq{@e=BtK2%rdRBVYY&4f1H7=lMrCA@u#r~Pwek+Vs~ibrGdV(|M!O)g{QdoH*q*L!88O&)l>dp|NON|UNrO9JLR8? z{rpmbVlC#+*j7j>$0cq{btE5AO*iu+swtbwYVJ26CHclfO2{##-J)>SSvfF1c~jt0 zT1X}F8Im&yN~My*vdQv~7|T=`55A5`=lrsc^;#U505EkE&*X#?Ze?|l%V_gwYNdeE z^4B3e*eds~96v9b@%IqP-Rlhh6=3m?!|2~~6r-+M zABXY3^(e+)bFY0#AB)UOUNqzH<6i3l;DH|(0KDxe0B|0wLke{`asA5!YY_47m=_6p zgrfGy{qpv>B=(VPV#z9$gu((#W~=C;r46ulX&L3px;%l1x(=?a>p_-Tu3guETG6k% zu9vUq*4`NLwr00pxT30{)SE8fSD7XqF}7x9|6VelB2utgzW_ocQSvk z@^4gn+hYD2s74z(SOjR30jAvxQ6kB1jd50+cbtFcdXKLwn4T>MI*f z&=<0<#7<9c^@--Z1alVz#Qc&%w;CH&Fg6*^nnEkmOd&n6^)7ay1c*gK_aPM&3;Y}R(3bh@KJ3O)jK?72W8f#9a zJ*iSb1;t7|*kau%t)W__H69VL#uh6o)!0Kd3c~&UpJ&c@y=(2YLjnoKS~A%0$C~f_ zc;@pxpZQGR)E-VnmV7=<^~d;GT;M{8GoK>$$PFZrKh4)r<64wyE zvtClIbz6v-IZ-`ZY|J;i5CPT8ifa@!M8O%pL=9inub?$+WohMiRq%bGAU;JERC()R zRGj3%2AAVf_&7t+d)q{zoybHessi>^o7 zi&wW5xHU$mjJ*oz{JP@z!Zdg=!7XwUbjTE+Yoj^4Io|_%3YRe7fPF7j?4izD1?-c|w zqW1)K)O&C1;Er1Ke$^)7n&791u|U6gvNtK@-h2P?G@Gb|P965YX`MHsWBtj9PCKiQ z*mvl@ExMO^Yz$4T&bJibi;I{uH8l?hx%H9sCxOK*;}*EfMH-??98pHyE+~T%M<%3- zwC_sEo@GLX)zYf#=CQQC8`|LcGL}T&C20hB`Hu{3z@8e~(Ebbx0G9&R${0HEu0VqB zj(NalV?tw)@5u!EATHrhv%#aIIw%kjE-t2AT!3Kf7#mEW<0GxHLBl%f4p@MHl44KG zvj819Lr@U9Sb}^HTI_?#46p>_GEMYe*567p?!xc&0iv|VD`3}g{~|RYdVXaM`m~w> zDqI@f1nZUew%}(Rlo2V^0;s!Q2cNgaJ3&&)C5n-(7mkw{?lbT<=ia#Y89jwQSKNUN ze$E-2226ylMrVV>Ci6a-$a(1;-eXGeMop0STL9l!AK(! zZ}2Rj!hB;DDvo!pmrf_Gl9|oy1SS*VVs>U^9Ch_fTD^LEJdV{veD&(>@iR`kmW2#aXNp4WWcj zsli_(tu>g3BqO3i1Im?*T6@^&u+C=6;gw3jskF0z@y`+OC<#1PvepLHLGuGS5L8_FW zf=BB8SAI6xkXYuWw0L+qBEz(4kuGv1X+0Cf>$9Froe)ZfibJKX|29-g@YX!=XQKGQ zij3BIw9O6`a;qK#Gi?EJ@GE+6VM+XmegtmFUhrZdzFO}W(?YJKN$a~=mb#8K4c{1bHj_1XE|Je%`Ayb8}q1!eok z+22)mQ)yaiOlokiU8QjAw6}D~ZrZbqJ0$4$s6?9^MWNCU6dKsYe8$mJs14=4U#59D zh=vDSqS`kyMCS0!Y$M0;YCaY32lrC+pH1P~+FV1p#Wf7D8K!l*;n5W=5y9w++xUPv zW^I$t6{Kf9A!nd+k}>t0xj>N?7HBzKRnZ$SfS1-ry210f+DNDSBb~N9u1Xqoq4#Se z%8Pml?{(VB!C7MgHou$-2YSKQ74v(S1u#yaUhbev7YT3OX;3~OfGB$)pBfz)0Kyur zt^A@=sqgSZ^&N&QCgw}JVq(h4P@b_(cro3AJ*jbEq-sV%&L#}Cpna_+bWky+4H3M$ z05)-^PAfO~v43*p+QiGltDpc3hoGh^7DQYcf03`{cswPQq{QL3EX3s5 z+85E|hxPfah)S%r2hUxfcl_~CRn#HcFfO3U1(ZNt9yO!`sx!R?{9H)my`6ObxC`;I za_};Ik>A#k-1ck8DcJy8i4q%DUuEW4MvtT~t+aS9g;jtU2N?mg=Ew4DYB~eA&Nn2= zDU!Po(75TmRoG;DNSA66z$l@-$MSlOX2wS`&M2^sttT{M+YLEio?e@96I(}VRvwly z&7x9&c^>u}S|Om!VP)H^OwBfFsbQ&)#ifuC->D_PxX1xn?4{+MnTmp*ca~dUKsR1E z8Gq4S7{BvmBtk6(>k~_#1p$)ML@K>su~nEk3D25I?;U8QpLipLQtwoMaS2+AcO)z_ zo@5_I;exjRokr_z6XZIw9G5U8(GnAh?}rW%q9Z}X%$q-fy=@!01E90Ia14m)E$j3^ zYrgAq*_Mkh+cLl7lAXJD?^~F^_)?u@sVx+i@t+249F*oII62NKA1}`4)C@#wDuD=r zjVZ?F7vzx;6$rPqx1|(Q3n6bbj$J^C{WY>8%f_#X(@m7uT;-fjqmc3-RIT!gS^S4K z&-OTlSwwBo6*F8=yxCr(9rtm%G!-_F)zr-DxzgJ}bNi*kXXGD{6Po-36Fxo7bxA(Q zzzjJjiWh6MFR}GHi;%lE9Ru%iALwF9BMAc}_)B9V>l0_r7N20>ok)aW7A-uG#z{oP z_C(`F7UBY+j1PHoC36~UYX$(6If>xMMFNBC?*UeXKD1kOp=2gtGjm3+Mh2xrV7Q!& zzlr|Oqfd^lOR~9gVdpP0(G6WWoL!bDT<~{vWG-2uewE{L%N-5>29#vXVZ1gG_kYwU zg2Ndmz@)J-v7Kd7)IyhyRcMf=g8CASsjtoLv~+9oE5t&5mS2lUlqZ8}691i7FXC_P z&!)c+AirxU5Vf}7bn&1YS3wm#4?&;uZ+x4Mej8^7NoS~8x11RL|0O{ z1K*kP^r;F~>Mg4zlD-iibbJSkP|l_9Y2}*^+H651>tJa-%0dvT7q`pfYROhv$D^cC z47tNaVB%_Eo=}$dKhyN)H&@MX9&BD^5j4eKI`h7b?g*gO z8@9|n!gKCy=NXko+GjiTm_iQ&NaHB2-;Qb{GY{9G%j$lR{0urN7ye*D!`UlgNzLSo zy*0k^0g_-#93S|SYp@1ik!4nVEF^Q21)=XvO1~u?&Pz+LdU-iNQC|P2;M<4zlHpN7 zUVIKX(hw>}m`GHMnW2WHwg@J}s;OY(V-Yby8&U);Tg4;n<;&b|P{=}ER-_veVl8y! zlqJnhYk6lw_pdmH?yoz+z5lP?dz1%L`rY$|z!3YzUm<>&l~;dE8aDceXSzqx*5ZZ~ zXU}x6JF$N0=cKrQgp%&#+d0Nb5vJz$&5HYQ(WJ#)QyQ4-ey=gjb3^ifn=X!~12d%t z^q9X<@2MJH)D~GL@eklKEz`4-mojpC@DiRFi*zke>NRL5TwZ7C{lco4 zsiS%M^ldm{iSjPqA&_LAU6b)hHk4OW~LNx2iUXO zt6Y^8Q_GZxfxoz)O;Z!9@^*dpsvh-k?TlUPC@lD7#MaSRkPcpIQ~ny>cT|Oj^WN+! zfL7Rzy;QtI^`o$8K7#}_%2HOE_^ffGQ8GB~3o>n1DPYP6e#j(zWF=(F4;YYC!jxV< zPKIN&NzI4^T|<-5;WW&Y*@H78hKuV{n4y~FPX(8d2&X!w#LSj;4Al_ERAUCH&H%hw zJMNj2GOJcQsF^}0-T@yObl31C4)M2Bi{?A_-ck)y-0GA%1yj-Z!_dRJL)As5tnbPf z2+a^|Jv<&4e|A^K^-)m4EWHzj9TgQgi`!N{Skb{%sO0x*3IZJ%#68ja(nL^ea}iLK zGNmE{Y;X~Q;>aTrUFc5yzZK9`4ahiYSh z3lMM~$A^X6bIk0Yjfuo1-pn}V+5}Dd$%o`SFkJ?XPU^r8nRnp7=2;b?vwGNCrH-LQ zK*m7}F{c&_YqA)Am$S~$#q7itZcv6qFZjYtQ!Bo1DZa=1!oYVR$rd&hU$#)6%tXTO z^9sZrm%9xCMSnvbj*?BowIM?>7fGOLKx}`MLbkJu3&OYY0*IB|wF*h1N%~`_iNTQcc7Kr|XPV{IsH44ihRG!&P@0O8` zR-y-@pXGvz^%5?i7xB~^Bhia_*bs+^em?*>0@ddPKS!SBcYXS&`ilOm-URyZ^Mhgf zXK@qz?JF6})SzHk`o#+?3Ha^8=Gwd;?t2k>GZt+MP%;DYzCP_wxCAteaBXCf6dWsi z#^mi=q|P-zg8JV}F&PN7_#J9>{aaO=D#zQqY?fB}EOA0WnYmP(_=1p8)k_=_U z6%1M%Xx4b^FcczxHA8s{e8Es|FeHpE?NP(DbS{SiemR&gH##a%K1c6l4x7;l6wKiv z;?-&&K_1_BCOVEcQM1Q&l5X0rGfRtt@89egY)?Op2!NY;WDYhQKi(7f2_ur51G?MB zpu0UcVy=ur@s2*`o*~L-nN(P7>DdQ$x93Hy)px(Nt=uWBy&D79T%Jww>t@7SH7|bM z6u$Q!XY+Kr?EZ``CFaWI@Wf>%hsA0$p?i*nknN6uV0<`Tdq46ns z0m#rqD&@WmQW#aSBNG?bEypKc;dy^49V{B1C(Mu0*{*`txu|^^hIXdjyEhbf&L`Sr`%<*Ex4u1}rx24tSWmH=!)s^)8hwXAgB?zKx~$ z01UWN8vQOXU>aR3+Y4d1Z^C>+W(B;h8Oi}@Ym4Yz0qzk6i^>sh^A(cqdBPHJg6=sGLm0j@|F`FP3 z5`!&)*>3@SPYh=NMI*)@KH->s(+S7yN)Ix*W|*ycghM8d*dIzWSfJstDVhYcycxVj z#tMNqB&P~t#qqd*ieua^=X{1N=F16a6gi)3-k`TJ(Ha`5o}d*=qjvyPf$K^&6NlqD&BWm<6K5=H;bYPlTnm@)|53GYzVB<{W75KJ6Sln<)6qvk>UvAHc#wmdrQQ#3EW|pTNl>qqQ0`0y{hO;)(N{!p1W2GcKr`eb~ZsHDpMF?QYu^;@;QF-0zEgbN{ zwXi0-vJ%ukw|p>_$D>&Z|6KI%VtYd*+J58ow4nFWMR!X`1oj~TVQ}PB+8Dz+1 z&?W>47_B2ZfQuzJ&~QQm+6LHSVVO3f<#9xfKrme8@(K|b0xEOE3LL~D&eDu{6O=Z1^T7}P$QJ8P4 zaMvVnVL7&5sslMO)J$!$;%kdPFrB7d;vF+ z6ymnJ4Mct%1|b8EKoNLPYP@LLDwBC<<|jqwd;-9R@*8S%+S_EvkJ9GXY=tk2^CzU_?&*Z5 z6+gt!=5Z7xV^ACg)4tA!qIG23i(}zOok;qkvW8jMc}%LO?G*YB7CiBwEU@jpPSMJrb&lptrFI zlt&y3=-QZe^cvks8(A2I4Y%L#*wlF-?vyX6A+)DFGqZ~)1eWoFqQ(iQB&P6Az!)nK z@D=zdCax7R33qH{|5cNMybjBCI$;a3TzP{@YOUwEIwZ;(mh&)iXm!#^TA?3vfzN_x z6U-oga9Ib}_k?`$6JR~hJxd!xklXrv^QOE5&h-A_m2MDC2z0-zZ11G(P$Woa znd>GofLGn(N0PFL^DOgv=oU?(;k*@8o(SVUlF#S|#7m$u;WN^~f&neDc7)ahRmo>W zmuKi`BxS)4hp9q2P&(cUD|8(WJ+Sf_jXfTp5seP`jKv6_`>RcIgdJax z@lookK^B@&l!|;rUG+G7jDuDM;U6!LaRpoi>x_jO(%*A{vm@|KTw{0Ul$c zen}FjrK0{PrN?+FOSK9|Il-3d-BZWeQvI@4vyYRd8di#)C`&cK9Q}LIzvFAE0`wDP zsRI3@v{VCZAB&~>Lu?8p>XXe<4I_G-mg-&q-YwOLB9F&X^*9(&$x&FUG&sUi_4U%9 zZcFt8>~0nn$Wr~`6J)8@+q~<^WvTw?iLg{Z$X5P;AC~I%M?I4NuvGsYTdKsC{*+j% z|CA2KX3K7mkxh~VGR|BgOqQwKGQ68Azl*0HlV09xN`Ha<1`4vqWkG>Nj_wf2hO(|8 zx!_y~k*!Nbwh<~woqTQ?#R*7a8;ZFzEg&>4cfARZUtWBEiaqRUC-E>)yV&vupS8QH zz#WT;t=OrL7RA9{e~X~6T(pm2oOf%SZ?thrLfAlO2-(|WVj^~YVoTPNe;@bY=#Ezl z2UU+fp}F-K7f@!N8l~WBD4?%eh-5Pon>mWZc$Vb8NHr}AsHl11ZS}FE)Urg>3jhSw z$yuolhB)|(4-wts;qWun2-uiMoR+y{HMysrm7Go&Xe{M&`nF;xu%_AD@mGa8;k_+q z+jNbD_D5&3_Qg$YFDJaLTC1w?Dk%R9KnqolSKL*2C4ZL1xZfBg9dT8JE}TPWv@zT}0X?!DbSIv0EeF{zRtBqB{e8)q+109>V8*?= z(%U@)Z5*OU@>YkSW+QKJgH^SFR%#=ywZSjmkE)I9LfzNs3bO6m@z*)R0n~T~OI&JGTmLmUWiz+zJrb0#N~4Kv2N)3o=$s zwW9xWeDZ*0D+rP?hjHPpKK7|4#@?(3ZL0tbljz23A(5j7HCk9t94&WYA+cF4Bo2S6 zA=$!O9Lvk5o1JAE1qW&ljAAx>Dd`e~EM1KW?=L%X(&$_Tjn;!R^8RvjP1;@7CijF7 zwB7FGJr34kyk}O2(S9`fte~1I;vZ&Xv@ox)!(yA!MYuQoWh+XTrKj#hHkZ#qR|avd z+=6W>zH>X?mCvks27vG09bndmY&&xILQi>p1-H( zJbb`L0+#3$^UUT&-O&yXgH6r-#Xq{bXz`B{1B-v!TnZFn zjdNP`i~sbZ)Z$+=%Nxl!Ef|OkECe`TQ|JI<>7c`77aR5*>eptc5SWn?$y#J`MJLL$2i5ER{0YcGH^w5R^`+xzMg?U^w3 z_V(1;GrmcC#y4qikAZuc7($$-(2NBYLh-2~B13~*NtN{h3;|6uJP1~0+{Yy)i>$Wr zs9`hh(^_a*Mmkloovpo%e@k4NJ^{H0&d~&*HzWJO^OJ z*J1nCh`wwT1KSHIJGu3{zhdbKm$t`iYnKMo5U{rov|uTg-C7AT<^q!zESmyeAN{lh zn3cjH_P+RNyE<;A2Ey|$v@*hK%20)r2Cd%O4na>9#+s@Whq2;=zM1A=B7VHN57`wj z%3cb9m)oK3O7FjwC-8KR3u69tT$b5hJI(CIP5CQ%0lvLDN^>oU_KO9aXc0KmZojY!Y-_)^R+@p6#noZnfrNl=bM4U7 ztPcU}(IA3Jg<7M;R{WjqLu9!_gfuPZFjkP8-D29nek8!4@)ePE4 zdRFwRCQp@^ijSD~xcEhCtfu5f?IhCD^BI9)0g0;d!$Bas#FbI?!I!9yY@r3Ay-w^) z0cUQW?cnuAUImzIOVgHt;$X@??|L3Wb)EjY3t!^rXpGU%P7RxA%yvO{D?@Y!j+$>7 zFgA-VnO?QPRANx1I}$L3MtWo;j=fry?gpXz@bpGMn2woQE|^8!Rc4Xs(jwF_syxn!hoO7vacgr= zcNENOLG64=l*pxE{D!2EtOD6OD1(FuMVp;0{$#nd{lm`M72|5mQ1xy|R-BbQpVDWz zvG{y57G)|T*0B{O48n#Y3y$@GmVqAx8cjZPhJI_k@E{Nu%=KN+w?iK-kV z%lZxyC^9WBGeNkjKPg~i2$Trf0IEO<5t+@H6v~R+j^Iu3N=1hRS84aEchJHiE=D_y~MR0SOsgg@oWx@je?*!Yo@~rO=dFnaTvXV2vpoQs^uAo5v@4>mcVYfSkJudJjbj?+h{NlLi5K1ad;|I=jEu}O_oc4-$6l7$XWZb`bU`G1E0 zPvxD$h)<%S-C4vp=8~N~QxT5g`bIyDbKq^wk7JwbL}JFKw9vR_444! z$%7|HMXt)Wl@BPE7*9?vXN`!Yg)%YaJet*22Gl-@7^E;~mQr=`oS8Yhs9mx(PSFYz za$gElL;<;%t2)Ntd+DBUj@p@e{N{X$&ZGq z)++h|%GUavBCB_sd>SOrXC7SDbiX^#R%@`d0_^6%OYMQOzU2!5Uvegqo7tH z+!bDTbUb)*m-$-~0b8-yl#F5Aol^n@*w;+F0>JgP1|n7_PivT{{AH4_f|5u^bxpI? zGmcT%NRk4#47j_WyLS+1)JI7Wi%JLB2!y#9BNyW}+D9Kn4+>iJ^d5Z+lQ2}ZnTV6+ zx|u<9FVH+0A$yALkrHebP98mau4~?-{85RKUmJ{IMlqA=vrP}>?1 z($O}RHni22DVXu2`ht%o*STTlV=@1h`B==)Vd5~CkEM~#`9Iure80B0vi$tpKb4fN z;51p*SsCqh^RnpqD=N@%FN>ak_@i6h%Yyq>&jVhUM%k2K1y)P|z3vdDbYFM)U(jWA zCk!&Lizb(}OuP%FP-bfW7aNB8U&1gb#=GEuF=vh;kNhujV7f}XfN_L(dfFi`^Rlt5 z(Hsk|7-mAQ7(~v5*hw4PEP?`8L5>54w=+WyjPN=Vsp|Mb;0BlCSxDU3gZw=Ku%S8gzc`msy;`63$`*vtkbZ34h+BCL8o5ogXlUQ}8 z*=au_Mrg}CFQSTE6I9Zk@Vi-ge(+PnJWN8mps}!Vc}ybn7C&L=SEk*Q0ti;9HHSuy zg>7@sNrC1#ps6^aZ!(U{xNI2nL@ZEZQj_d~UzyGj=}Qs%HzVIKzeZx%A?9vr%<6OK zE-N7DTwvaql{w-VAX(cPpcFP*U(al8LIzoH<9vv3hxt(bJ{4kQDyAGPdXrVPC{+k= zaER3FJxslFV;Gb+<>zlnIxBAIoMa~sX(C?MYpm(b;1}!6cw{^UPU$q(nE$cdnQbdx z0rr>4i`gOKJ>aj9;hPZwBhcCczlmrz1RKaqf)nX~F9VmSr!Ao37)top4{Q%}X1M`E z(h~xxsj3E{kS?h<+6Xh+)UAfO)w*aBITvL?rh~EcGDywqq$VSjEvC5=77$IJ2+zCF z^&^)bVgj9JcqL8b6)lz~yQhE-(sXJY2PE+kUUEH6$n_*j#23I{CM`}5r$OlrlNR4} zPTiE7gLL&KID~`n8eJireYyflbJ#*qyYvi!E$GVJzHU=~UAR4eQ+AVX5vTKMpfv^M z)0p`$g!t_X%QKWsfyvO`1MJ;$ff2F!pc!T+xKk)xyc@yZ1t$Qf89t5_dM78-k;aab zsXum>8RAI8*qP?|rnCA*zPNVkCNwL055*0S-C(j}X&7wn!(grs13DSC4HNQ6&V%_A$5nW=c_Qg&9a5DxQpGypDOwocWrI&0nnT2oN{e%()p*kTC2SW zdr*kGW*OSvgUJqpT3cAFd=-=Kms@NFGNGgLRZMHcgY7+-7Ve=p_}&8@i8|nEXw^Lp zt!mgJ4Q%VMbal+020mQM)6fD+*zw21apJKK1H<{Za-5t)eq0DsYkiuzwD|rwF+Qoi z0GBO6hJL_z#%c_g&D(X19wmj{=z*G}MV0)^Qk8VPl8qxOId8ZpKU}JkL!=y5SLU-3 z)hz1E|6Zz^&=Z8GT~O{}U^qE>8Lo)#7%N;)AOorEwdZp5&k7n9Gjeb$+RtLH9IH$8U-dgE4EFKOYNKN zu%0wlbqgiOra|4xb!y_Iex-Ar2Cb8$bvl=bri_TK{||-kyUF%t6EN~t)?)cN_~Cf} z54>-t)6>(Mw|3b(5C2M=*o+rXx69vWUbL=vwXUqo{h_WX4EuC#w95DB3V*#uS2N=7 z`Sz_l@-q`m)Xws9`32>B-sgZ(u2sEi{7&uFG8;^zoZ7~sJpg8ja4$7+tRYW~)P^Ln zrMcvQy$pSw^Nvj%@pD*}fe(WWn#A(po0#1{QZmc_&s4hqGSF+byhFeKqw>gmdB=U+m)ClqP$$bH_(820KBGAG`rXU&6-2AZpl(SlENEOS(0W(^Y>7|`S z1eQ`7HCcLreeu!E4+)OT6XK0+MfT2iAW5XHlBsvN*Mg#F6w39!;n}@8OhC?+WKmjg z$c8mghN9K%`_TQ^N9b!E8Sy(UA;SgWxdr^-IhHa)!h#V5srG+Y)EVCAy)*+9*RSgQR) zo6sdHT+8Zu000WS!u}Xufy)Nk6oW8;kc>|BuE9Z%s=4^*rod5k4jALPQRi$vEdnIr zydlde2oH;^RWMf_ZqtKA>#%WN3v3dHjb`fYW3Vhii+;)3L!u~P0}{G-j1!2?ud1*3 ze(u#b2dmEo`n+Ggm|a$Ui!;f1XO0=nm(T#>C1w?9{YKS*ua_~!p@BwmtLD@yPN+oa zNuPI&_4Jf^pM^o{bA{rar1f8XIj8~&*$~v1GjR6FhuGKsNW}}RsDbguL%ou=s<>7vGS2vUID zQ@Q*OvFxC@s)VI~?4!iTh@b?kKqrln9@w)VHk)ci5X2Ms?rCtH+b-ZF#b*R_)acE0IE!f-95=@_2FFawN6}OYcqj*mPxoI4YSv;q! zTF$T_3vO6mSI=9mhjLE2)9}jgK8(L_g+@sFqD~e^D4^R2C+j2B+|);y`$2TMMi`Kq z5$250m;-XqcH9Y~X-d>x+$aEU2&* z3lv2*if_>=>g=ZU5Z;f7iE_krW0M==gom$?yWD7?xIYcDjx|=%jdMX&P`>ZapsERt z(nTb!c8vL=iKI7PjZ?poFS)os7Bkr}re1?!K`^LL0*Vedar0FR^yFxo;7I1;$B)*8 zNy>@AQGEEl40c>iNDN43p%VZFjbcorNHkmeP14`Lbpj+2v_eqPeSGfVhpPxVkSmqg zq&5TcBcwKS2Y@&7TW1rRQKGewj$d>(t`J=37iqIZ@xhh2RKo#JiSm{X9`GdnGvwej zf=l|Y33@_U1)8Urj}gA`hHeXQ{9J{O57B18)E3Az%s^t3s8I_w8pU@~*I8VrY2A53 z1x4}c6pVs{{ToP$tNhdip#N8U4HN28LP@YhM2qF1m?Ga)au8RiSa?>R<`j&G$YiRb zc4}Z~s=vSsqIUvAldqh#Fi11;GaitL>%fdwt1ae{u!vi{ZLIZ;s(0^r>w+@w)O#l> zy;Sc8WtjC&OXJ8ewd_(lla%gb%k7#3CO=GqIexukfmvt9tSx#ozL6j>Q7wU1AKM6K z4RVQDhl8yoTq-z?^9L%f~c79~kb3z8KZwVr+NN>DqGEZBM$ z`jyuiFiMVCuz7^gV$n~iMhAd6`z7GTG*Yoq3)1uOF9HEew3^d8%&zEMRa<$uygtN|z$eu9h=cf-QmzX%34P+;^shNR*!Y_U$6=lpO;I=Q_TtzR-piaMKuE;`a^-Uec0U5 zhTwMgQdMIUU!hQ`@*2A7XLD#~q=)CNfNq9IW*;m@$^U~%esA*H?WH}ZuP=8##AKYF zBrmk|Z1!!b!>pj%rgCgGw%g~sKhLLx1$~}xd*lAKYQqyZPzNB$w!tqmyqJhWS zE0w;5-q1E5$V?0pJOf0mU_%Nvdh5fK*0H8wtYa`%ciF0y%ApDA1XpIwY8wwsS=9rX z;8hm46LtpSH*i z%^I%g$VF;j6)J!776#mm1D;S1P#?|m@3l0O(Z}qcRjMJ|ofa#AEpLw9E^4k)0O!>P zQNfXhmlCG*l!YpxTRTkG1T0&)X~?38;BI@c`)0q3*MUbM)PBjp}}0UaHOt2eG5C2(D=H+dLSwpnt&Jtc4$0E;bH35o!heU+egv z8vYAgg#QZZHiv$|fAj#I<_g$y<1>@~^|H_>?PM27jRNk30)p3snKcUdxF}#{glHy& z2rSCPT|@`4Qk$OpSeZLkYSjo|3X?zsLr!bxFYCA7C_k&FmP3dZlq{uO!s9OM0B`Su zonB>cea@Sqhxe<1p{%%y^s8PD*+}<>HG;Cy^cq^RlWaqIU~MkT8%?to?$||D(!lXj zzG*@+mAHHLPQ7Ad$z>A?N=VD^=^aXOcn63H_>+8DTYYQ1>uSAQU6nId{87DoYJAr+ zR1T`5eEnj2K@rRx0zwIdW%O|b$64B%foJiXwDRC3Ptjh!(`>z}S^x-IOGhvm;oURC z)MikS%lZ0JN5df5CAmYFDtDcG=xY;Q^U!}JZM`S;oDi_0iZ@_rmYuLF!~xHs6`Hfl ze)_H;C{*#JE4D{L8LH?5V%=r~7|IcuD0!!KE?*JJWwdmN_i7Yx8G|?&q2o1;v5W*o zfc|}oz)ulzEpNpk*apoAJIy)w4^EwE-x1z###y;7p2!u3?>siYualcwtuB#9X|X|- zg961ZnHw#)fK^hHFd24(^)($TDR2Gsg485&xIoqvdzXq4XpNh&dMW%*`uMMjs${?s z5cTL+*4%>*<(TO=#H4Ixz*97S`EX=eu(iy8D?~%_oiG?*w6R(JX_$d%J0(q{4UD>V zX_lqz4-(SDXdnN=BpRPs*FE)I|A-nb_iL#ol^;|Hr$6oDcB$7oQ^g1am_07$f-S4% zOLZamM6=og7S7A1mM{0F^%X3-k(57pGt^v3<|8;oqhvPMvt)9XDp)2dZ;+sE;b}5& zPeWXrgMHef z*#B)N<#DJ2569I&2kHn_-~=zS{2MOCZ+9gI{~Jn-v*PH86NyV<|4Y{Op+3Ctrl7b1 zE{4G|65=2c`yfh1bkyh-CzBLCzB4Bi>nG-ANl|24wLn8D;1>rjr~*B*Fg)_C=m7S6r(NVt)01E+ARTL%P7h%3arUbF2PHF(R^hFZadotrTIU z<@Z%=vUtZzA#Gaz*goblYE7-vE1eRV1PoXp5+i~s@l@uXgsYe*Y|yw+>;J9F8{o8T zgX3CRzGSJ>e4}7+GIj7@lq;q5(Rbiyl-{`k(<{%^1 z^#@{k|7l?~m6Ow#kzY*>jB`aAoVygdLWK}h{mL?zL40~vBGZ6? zZE<@dSF|8!4tv3{dd7>dxDtb(en0rlzXp;l(h_!}@M^Rx-SM?A&aMUl3f@VKYME9} zu$gVOzM(7A%QMQI-ZkzwGhU5iXq*O^@)6o&1OQ23@xe+u9K2>|uus^C@PTVY{SF*y zL_Ua{@3pz=55i)6jQ~65e~D-!(s`dFf>FtVtD%y2_vzq*DiB!ajiFR7Y-4&H+f3iZ z8vL^bkf~2_6Whu|AE&B!8ihdvPNi>Bv59^$2qP4$DDQ#sij-IRp7C_E zd&kBnCZ}5M>1E4{6)R6#b@C~zXHI>}nzc`T+S5&Ee5*Rx7Grq27{l-Dv8BhS>G6;C zSm^Podi+y8o}|aM5`BV>4|BhMkOPwO-S+zi(e@gB@pt;+WPS0J!7sk4A8^Rlzc^K2 z{BQlRT3^iQ@rpm^ajhO#>+yYhT&YJklceR%dbI8;KVHX4LQ{ONeppo=)Bf5yqv4iMl-S7GYe?pJ;>%{@Erj)Rtt~+^AylZ8fgk<&R_UW6adXe4St2w3g z==3Mx4i#ZPm}*%FMJ!9-*Y$%zh|QO2d4Kh&-PyGYzIrX?wC+F!heHM0KUpiX_b({I zW=s{?#l57h`BfW)+Xmwqr@ zQar4xR92ilH7T9VH-94g+ z$<}|+52pwxk*)PFb}jIOZz3xXd%F~H`S~k#q96F`dVMun{;4ifg0Ixgg1z)nUd=st zyL3$v2k+5G)8)5x5l_AEkGQ#0qCcnzpBt>{|3kqSr^833%S1OBRE>Jbz~X8ermp?T zYjMN)??_obL~lBeXvSc^H)v4q=eEfw=H{lW>Gdx4nw3aj7%VPd8PurOMaR(e#$#-G zXVvn?$JcQF`ePfip`#5Mi{F+)Ya>1uU|*LXURARfxw=x;XbIVk%kn)@>vyG(JzUdwUSZJ_F3TlD!Huuu`Yq1-lIC-*%$8rX|Ugw z4w;sJc$>be(XdoX@$vWA4^DW)y28tbtAl3xM&ja17uUE)s9DoKM%0MR;y+7?aWpkv zM}O-z{@UU`0&=P2M^l@Dy4Jr@04#S}R_3Fr?zaCv*ty3)+?$7nyQqUfZ(H2EN_VNx z@cu`uE*KpnsvCtcH@Q5jnEvA*?`_u%Lhuh#k0imhCVdtCx4{CEY4a0=bxg2nXD^c7 z&d>%FJ&aeZ%tz#NOJM@dUtQD9%cKkM)|X>==yTarm=-;#uQR@_*u-T_Cvwf&mR6RU zVS=!2Hj_!QMncIRmXTs9y|9mEBxmMCYYlOlhx(l6{%|XP^4vO(O1e0qJoJ|$eJ8#9 zxd*LzkgK+}dGr@oeugim%L5W|fdxGDSA6)+>O;B-l!|+_wu2W;SyJsm*53@f&z0>7 zAl8U3+%l-JP2rvuM^Wg@)2%&Y7VeLTbT@;+r1;^Kbb2k25T#|IY6L*_CbvA2Ub?06 z8y=-5i?Db$<=7igMRPGhXPAO9SiUo<90V=jn3#B0lVpon1~I>ur9@K!4_T1sLMPKL zB)`6Vaz7x09N%(|G)xPV-#dVqnq(=*k(f2Bj*PmSYEO0_p57)hX}^d zRw$`T;0&Lsn_$Q8_fh}6RWQ+=V8E98K%0oLtbcV)5B$;KG4F{YB9#7J6n~#NeJ6Ah zpL_vmeSDR3(yrVspd8q!ByzY2v>idq+lo$CSX6FFCtBq#YBg-bpOsg*mba2!yTEx< z-sw#0aJC)BR5e6GMzeLB>~wh$c@+Z`^e)mFjNoy7>#~k+2RG!zkcNq6PwvX{U) zmQN`@CiQuv2mY&0A{qL~LtT@kQS`_wO-RS5qr+s}`(?WQp%k#&_EKwgBeTcnz_dP! zYGd_zoG6!R5rvF)Qf1A{P<#`wx=^O$0f5|fLpqN2c_$*7@&HY4nczrAJ4|>{7vmtj zesX76{mgx%d_Wx~s|PD}B$#d|B&8TJM6}>Vm8y&84O@cN4}W2yQqk|@zDDc+SK53d z&?8Wg1m|0d%R8y=C*IIYFJl#$+d}>~yhd;6HMVpve?yP6$wlSamXj~012GllBfAJlk4&t`u{c`tW>tC_qZO@Pta$>j9 zN;YS6*_kjVhxU zJo}wwuMVW*CcY2{Iop5muldcl-au_0ZN$gyC@wF$pxXpxVFbS}&j^EIPwo1IT?#f= zwL0m5=0`O#F0FnA!6BkHU-JD zXR{=s(PBqW8qcuICu(?TN;I;-XUK<6da~WJ~;4NK10ARAQ(14!OH;k zPZBZ9%3YkzNnBZS=SF#&4&%)|1stvCG;GW7YO0>DZWTO>53R2f!xXXXVLy3-$9tOTLYgt<4&MO7{n_sNeQ2IXI3~2L1_!GHhFnvtg?xh%ZyF zF60TQ5weaB@&31@lCz~5v;GeAPGw4M%(0k1O8T}TH;6EWqw(RVl@0}RuC z1buCjsB~cTZ-&uvsm?rRVk{k)b>7l}`J6dlCtfMfpiWJYKGV)vkMa!3z_cyxLkjy` zspMZNr5fdeZ(FjI>w4a==XUtOmb@(M6f2h@>zwkXEMfDC2kcX7(_8Xle{zCbw zrB5t^v%d=|zaV&%wHXowaDFF55L5_#6yR)x>}tmuoDRYA4{iq>N~WfnU}|8<V@EJo@!2JCWP^5HR4_mdhdZ~I-KprnX`g7gB9rg;Lu z^5kQB``-#IbnM3Q=L1h_9Qc|x#!uC7;9Gjpd;)ObBaeY&OdN~gJ9dsy=NXHL<1M!m zDPt)_U5Oq7RMZvf+yt>1b_pQPkjG6yYw4dNB+YcglZ zU*uUnLrOQLJ*Z{T!s8`hE6ZB)n^LV@jjR+{N;&qiT#5qbD>a@9Kq)9lpG5d5{)%|` zqh~+j&4wf`_Gm=|kCu8UpQW7m=wo1T zzl&o)z`$ECak0HKpXlo~Ai(k4cGZCzhj8gI>O%yZR!5`$4#A^?N2AJ1_dTKj_UyRT z4%A2#sm2Ul)aoXrU9@!_Wl`5_J5GaG%{B{7UO)Q{76AZLAtb`Rx5Qc3kFlk)zzeaep0NEEwfcyl;c_Q3~K5h-#H zEm0BSI9Ab=pUXj*R#g#EZ?PhdB6vs@0jk4GRAfd5JyLRCdPFw+sv_d$Vnr*@%s$6@ zoMIIBD;AESbyHuxAe0CA*p3Q@+AHF@722O8ka2CwZyDiiNh?#WMgS*;dR(HlGp&%x z%czP97Ey|?u~Y(P`d8+9WE`>lZ6+g_t?-2l?w>x#k`FkJ$BFwR$NOCCejW2G9c){_0LycNP zezc2v({E@O*rf(`>dNxve84t?IPAzE?yU}h+n5R9w!>*XlL&4gywv6zGH^P?#WW1s z4(dA$)I>H5jEbes6-L8{0yVM73az!*dba$Iep*|u=R&{xX>GphV^blH!jEc5Ft*H$ zj<6cbF7QNrY-c0JG-u^*-iem4ti9XIJC=*fJ&hRa%w(+39^$-`dC*zY(rbZZWwQoR z1zwi-jBo2Kcl6-t08b?3Q;;}MpX14fsVA}C`SDHJZ6Xuc>%t(JyqN+U637F3+mL+U zNMx+mnAUYRB>$3g`emKoM}0Ov>NEAV&n6xKqc~}XZRqM2gF9VUQ0h5$XbvN#_+dgT zSkUT&q&#GA08$7Lhv(Rv8Yl&}ovfD~9P2!%bGn_oGg0f0!E8i7SQi@6k7>=}%|LOm z8#mgUdN;1KHzT^SZ@lWpvXTYK62Y@imr`LvqG^d8Yr75ybbzk7a?E*dnCnr_Z zp!}%Sww9>&%up>t-Ky2XVjpOaT5WrYYBz;ypBt(@`PizRUZPr-el_Ra=XtfqR_U@O zDkTG$RmuT+1_EV#Jq8dgU!vNxLbasAwQ3c@)33IoCh#E=VKG#b5#b<19`)IZQJ>8` zYHKS;eWtkPBX{zoQJ+0!;IoGybxEV%nr@QK;lJbQP`)fr(pBtCTs2fdt-b2QwWB^f z`6xbo>ZlJ-If@UTHtNIGOMf_OB4&n)+x$I!BxpvpcIwdQHNbqwxP~)Logn@kog(v; z!SXNA*~O>ZvBl5fm=@i>X(#OBOugS|?_bbab%Snszp=AP@1JY$&+MFhgKl~M+|Fjb zf1bVHbc1eq`@GIC=L=wa|s(2rb z>>~uHdvYg557RCVF6?12^_z4pDA7_Mw)gNmD-Sg4w?!QcYv02fJUdAG%J}tQf|T*= z#1~L!ZVcC(!*xN|p#7Ux8}3c9qddaWbd;{Pb|6x_lGcaOd^=nLNLOrXo*0+a`5brf z0z1PI4Q(8qI2>$y-57dJJ-UEcHH$9bda@)shi7bFYE{7M=tmdm>=5>u>0psEQxFG% zaA6&BT5m17fV?G&dmtXdvZ18nD#!W{LzL>)l8fnqyKp_M37%2{cgm~o=EZVe(7c`x z?q*d%1(-8EKd9%9o-N|9d^hFwQd+LjijD1~ zdW!DYLgg#LMq?iPVVk6E#n|>o*}9Kyjbc}CDw`h;IjPRNBH@?rYzxqG-Ld-z6GC@v@=41T zy0g7JD|KhvcuvwC0YYiHN_T_-rRB-GvoNDmbO)}dBMR=G`0FUQ;)Yj0TG^rSVtnIC3xcl2ElLvV?_ zF7!g>O$fkpxuYkDMKS<>fTQk=IEl3Tnx!e|`$9Sd)MF}JOH54o;k;?Kx5>JN*>h#) z%-u84m2yABc?bAzPMJG29%?ct4OaL5vG%jA(gR26eqha^`thK4*h$^e|qVWil^I|7_QO`Hru z#|lPjpw;OFb)qF-P^WT0a99iui4K3Fx?$k6o|z8Nr<9<%wlp21zvtv;d6f4?_KK1Jn^F<|gT! zqM>Ogcft#NB)q6Lf};c4i)tr0$I)3?caGpkD7K{C7q)+{)j4})SAr}JU3uOTU0Kmt z(ODh9xdQ(WZkpA7kI)MGLlE)mKFC+lWp<6M?oUcq$~R!!^lcpS9hg5xPn{K3H!cA% z*lw>Ir`u<@pV{jC;>d0XksrGK+`(@DO@tu9zU3}_B6%WR6)#Vtdj|FXVtZYy^P-XU z2Gt?dOK5Q&A*y=i=?V498dkl}r`{K}pV8|4(#U#)3KHrSf2|=}RqwKXy)xZZ@AIhl zm)gBnXKrM@L6r&hiiM7n!!)*Do-Q159=)T`H_UiooU@9EULMZ3+PG2QpGiAhydijXndTLtYsLw@{q zOO-?>Sjm$pxlVi3pSe^?yj)iD>6Cn?wy*!(QYArMEBQ1^{+zV0pC3W@K@kk2hdn61 zoIe`Jk5h4@GvxQ<$enYiaV-pTjZSJJ2}+(FQFYKML)8?rqlfBMpY2s|K3B|ZWYtjH z`VmzJ^)ysXp^P=AfnJ~ERnMI}jpJ%$)ezjXMpS*fYr3Io3fVs2fx2Jnb-(0Xl|3Gv^-n8|4$pyi=a=3UO;P>$9|v}FZW(-J$D+OGIE5F(l3uh z`JkPL+9_7==-)?H1s9Z`v-=$I{Fgnsz<|t%qRQ5-3}JqhDyb<#Vq|x;yfyd(8VLu@ zlZwmQkLu!^fRHbR=!*V9i8ARDF5MmHf1M^vGF3aIR_hVAxP`%a-#FE+>@}+Df=yUe z7gau$Fg31TrL_O7gZgJnT#WOOs$1S`Rn-OMuBtAoaVlY|S?rz62U{hxMJ~MeTI8y! zY`rE%Bqq8qFwIZMv={>LW4MN3 zLxuvj5I9&vFe*aRnJC;=32=T@d{7-7o1~ z5ZdwGoZbb28{d_B7ldVew?*%Qpo{OGp?(J}iSO3wT|kWZ?wNWQa3Q|?IlT+hAK(2v z?*JWJ;)6`N)8xi!4*gmGm7Rt`EcmbM{MYsVE4gw4XZK&%`mfLOUpW9OFlYaDmH+x| zek}v0#lD>8U$D9!7^#2J_Ah=}&T%?*$w*NqXVU7ro<8%xr$? zoQ~I9*E2bSTvv{<*sbfPP5CZep9^!=b@QhDu(pmq4`!(AFKo*1)AjkFt*&Qn%J0Ek?PnPdzhZjo&2Y=X6C=pR*~yQCBhMd{cI>?lJUtqqlT$tzDw))6PnE==$`tl6hTm*FB||_D{&2nIPt3QTv0Z6j-w}Hs98Qldh?aGP{t!KIdGzu@C@K8uBdJZ zAG8;JQ#qtRd!;!Y&z%}IMtdVQ+ph#&TR8$AXW2P7{ErgTF_old7to_ZIN5lQLD zgoqP~8eQAX(IOH@wu4BDf8g&O?17DJg#~Qhut*beM+^PDVHKq+bB(>ZvG(SAd&6o> z{3@cTW_Y(Sgc)351|Kk{SF%uKwLKJg;68rZL$PwdRkYWCHdB4U-t4Zuxmj=4=er2P z5TD~<8pDy3a3X46ajqHefK!G`IHe+P8Loj_hI@)AQh9LIaI=Q1hPzJ-xXg}H!)cI}<9asi$8B!dk2Bn`A7{5=Kdl_f0woy*zz+v#KxiQv zh}`8kl7c+vWXZ)@9>mZf+9NcKe+R;Fa_O_i*v<1$!rLD1ML%Qr+U3=@WXb6n0cP!T zkG+9Z1Ln5NEA0)m8s7+!Ub!jTsWc9ec3AmKbgVp{ZVm)cT%K;s5lFu$wB>ZE=)}KU z9LM>=>1_JqhBn&oV>M9;Poy{zzj@abpig?^OZxL`frqYAZAgOh1WIqkDQSjcKko2Z zy(GjPa^wn|q;o6sKgiErp_nJRyOqL3Os%wFBa{M9d#eH^e7s`o&Im-m=4Z)Y~!s`!OW`bMo@t8LL|wU4y+ zk);HTm2kkSJ84U+=7p`Av*LDxZdo-)E9#;&u&I59M0q_Dp{5sbcCeo)ZfnK`Oji7D z#islmcj;+sy?tneK3+rIQ`*xR{900~~ zC%6`|{zSW-X<*)Ed6UNR?Kp)K(dmrBy^xrKDmpVw$`%L+>t&I-P;w5EbSX@ZN@UcO ze}*Op!4Pd)0x_LuMLb9G!6VToL@C-t8y!KL24evmDvtet)7&f5!$cSUEAcR0%;F*J zfXR!#MT8H0x{7DbVuwOO`WSUDDw=e*0qJV`XNvz`VwbqMy zF}J;XHrQ?swU@?HQ8HQJ`dbDW0{S&w`*hM=>p4s8PdMOmErh2e9fqR?vG*5Q+cLd$ z#}##-MEQmx>heweV&uP?Y@09xenVpM1DS&AJ9IE(Bz@5~HBz*F5AlECLBM{u%tK`t zB^j`@zpAIlCfNm3Qxg}K?+$d7t(c<`0vu9ASb2(o^)VkNVgQIu|GdrYMy3>^2>T#zv5 z*Bkl%n6`S*MUKQ9XhhUE5$qr6GK)34 zb97$N4HG9Qh1>IUP>9El9~B(K&s{j(1~uh%;Y9Sg2`8>5oY)i-g%kTsv>J|Z%3V0= z;9u@70}aB7XnzSOEL{^0( zSc7nyE+1C#QQY^LSHj6tp@?hHwIH0}GbWtu4J20+PSzb0PN6$YB=3T7Y6RhgAcv*} zyA4SP)a(=4JJu@a`R^iCe}0cS@lKw%hO;!Q zA6`E216^64y|T9q_3_&7lsfnzaRp)+Q86Vj5NiN#OsX1 z*;NV!{!==Fm%G}d*Bhx&oK8CK`M5>TP33ixVoE{jTf{o-RFb)@@WP`omxmhe>l4Ck z^ofpji$BcV+jWW}WH*5>U|^Kkw|2$I&}_sXa(^R2;FUI3hF@Yy^pATv3lK|M9gnCR zsM4*|iYh@}kaZPZfhr3w46V(DdDj^h*0zzHb|V`69vO@67@Z)?8`!9*IT08~uu*HU z7!6Z+S06y6$P<8|F>euA<#P~=y3y4cM1y(&K|$k>stClSUq__~V0hFN0YG9_>L^9P zO0F&a2uAEqrc1g3+LlFq3Y4Do>+y;3N>2uLGffLrbAgy4LN?45E}uqcy!c1Q3g(~R zlv3Ab@;o`A1I`%F<5Nw1jn{$=9Z5P>2^NOWCiFb(sD@zFbn~Lkof&$ZJM$wmX%#Np zieLzOL0#scZHfCfN84-xd^=Kvn78a`AIBz)SGOM-6P^UG%aNqbQQ+aR*q>XF7Cy9Y09p9bun23x&w4e>J9BrGu=P>O$HPgg8UE z&sLX>WUJrHNTq*CT=i$~jw3l94@dyU%eXX6+!9os2Uf!eK%fLGem0G~qv z3m_nJa;&3cN{jo*fXY1icj7lXU&s<_yC52@0o@I)5rHj}!{pe0q>IDZq*ZxirZ7!3 z$+XhY%A0uyvnubYy<6ZNEJp{f22VaCUY~s~W!(h}+WVtP!d`XA1&=ZF$P{UU#rev^ z2^qj+4bno;2cwTg%Xj@~P|lR2{5Ad679ID%n>+h&}}AjFcu0@_w(~N0a?G@%EDB*ony60w+Mv&y28)qGsvfwV#1F%g_B^E zu*7hN)=TAs$*0Gp9XVt8{qR8-9~eYd)0&zLdx*MS_qDFkW?(E*6&AAzSYw~!uVf&i z_+4Bb(1H2`b1~u!_cyA{O&KQ&bJf|}WBHuef?6|*8dNKGfs2hJxfc+U(Y;`2`!?iW zXw=*b4Kdq>eBTh$Oc%yn(<&eu(<+PxZSRyB{hmu!?ggS1=$(DEwl_JLmvy2uS$=Wv zr|=!R?_19gzL)2ikB|h)awSNZRlaY!7TgQwIe@p>8^lY^yyU7G_c(*S;&O*PAC~7mnFtjNHI*5%Uw`tKG`{hJ; zDvxcNXrRq~YMVB%&H{V7vDRjor_iPpDnr0Ta1@B3ShU#>z(EDk1b6LymTo18C>QVy z&<*v401`NE1rl*k_*btnU=o)Hjkyk3&G+$Yl2WxGem9&YX-ql--tsyoU^AKxECY^* zKB6N8j<#X#`HJ3e0ju56(dZcHB-fwKM#@)rW#lRQfGKAt}eFa%_c^$hsQpsHWxF7-n75W6>;=%GUSLm-1Q{m~NaG()^86%vA z=wKoL z4OcuwG)Egn2TX%lrLwzXJJITrP>L{NmQwJ zGzS5Bl_;DZVd5%UgOB`uZ4g?8Te2p;9{2)2CDRuh6VM(^t0Ut*_g3YITBosj?yXth zK!&e7vJlgB)uq$q6zo9X08_3ECQhylEsS-V#fMObq$G39f(@KLD*YA?15>T_!{kuL zEv)P%GHyxZ?$k4GAuc$zp{kC@p#)pXNwnlr-<@uE27O8RU`u^V*_{VQ7hfts=KaCl z=aXbLkH+F}7s5UVl3~Y*!Q%HaKLLxs18pqE;=AyRp|SmRV)4JNCv|7E_`4vZNg0gVhY8$Hkejm6ewI9`Um7i< zK3^r+tYo`wB#zR3Rg~`1T}&KS(tSqKT`MJ$9xmOH=uxyIsS1g8g!&9#^F%^La+IA# zvdS7J$z>Ny&XaKB8N6KQx#yl?XO^eM?XJ&Iy*}h3%fvr4wWaohRF)$;k`H^v%%c_P zUmOjsr3CsxFD_>@Jw2kT@O3Y`gPznq+Dp}ZS!NFK06eSt+pDsvi?cTdfA)=4Jgt<@ zczBVthQWVzzjn=|?Q_Ho*j!0Du18Ut(Y_&B*&7v8`(Yejw_O^=n{wBoB8>J_DRW71 zXpeAtdDD1)hMTT=w^GNmU0g%ZD^?Gyg=%ywsA=$&sl~G*0SO&Rcu!Etyh!wd1D0e9_2X z>YR*y6$DN}x#@uzP zt1ad}J~ycteh3a0vJ2fqh;TC_MtF?&m>dYt7gWcChjdr!GbV3k7?$4Gypy8r);ql%^E7940F?LzJ=k1H+W{-#T_Cf}8*aJrDUw?+$*_AR*ytGU{O} za#gVbf!O1;i#x14X8TZ_Wx7{vmlmvi+|e7^jPTx(LZ{|>fu3o5_aIg8f~xnW>QxPR zmUJh=&nmF__0^`U2P@b^1zY)k$|XX8hKE!uB8e|8&ujolzcyc~8c`d0-7MxzE?Z_8 zW;1;)6`8M@2@DRxeasGi1@c^(bHcIjTQ;k0N23V>0aGH^U{#C4u#q8D85i{9zDq@; znLDs4nD+r9$Ct->*H*+-AmVrBQ52FMwMUWtAyivm=4x-Uph8#*VWbjoTB-xxF5<$H z%j>v+3aoLxnmaJ$l~8xY_fBrEvRT!655c7qHNQAYGx4%DPcVM&iJGez54aNL6hagn zg+Ng&baK|R0$6tx3jU{ilh8Sb^Qk8|KH z&zb2f8 zAg%M{GuGGGid6J|rB!$TcxcwO>$48>zGGOpwgX-v!?FT7ynYeLtqS45*P-5l^!^6* zk!ubSszdcvXz|wJZpzJH!;C6&Pxx8NRIa*6;ElQ{USXiL6#{kdpmlG8UFRO_r_Op| zY4KLrX1Z2E)t_Snn{n8BpTaOJa0*i^uxUHLz*fo2qXt{7?=f~WeqMoYXf_;tLJ)!P zACBMb?hdm%x9w4hK7i7WJE-sxqA`%gDfSM2#i%808wf;SvaF^k8sS^S=J2(=AOf77 zM}8vb_lw7Ge(wl?i|(}nni$}gkqsO@v-!Ikvx#3v786;IYc8|SZ^TPc-y}|q|LD0E z*zUG}#jO_eBXhBxNWd%Sz;Pn16UpU2JEd;+MJLOaoJc=B1t*Zp9~-;+((!}pn~#ah zi(o5O6_~VfesNQ00j@PRx~_~!Y?^F9J=*z!nv>6XTC_=(%8czjko&)82#f-t(i zS|3l@n_y>A4K(ROK(5E+*cxv38+PYj1OHmXWFI~Fn5$HcsYU2AOoA$ z(S|8#-gSTDUc1(Bj|A3Z?)ebN=1k%@^iQ=k)Vy10AS|y)p9z`X;{3tzn{!!G?60^iVSp4&{7F3X3?30EH9LL( z5lY`|NQH+yYy%F9H>GV~!=PAU9YUV;CMt~WOl+Chb#1FhSW|9aS+LWxEJ+EpOdPR9 z`#h;#+p9u*M3Dd((_jAt{5JQr7dCQ~EYeO?fXK(-NUr!79ms|`tA!|iLUlcoButoh zYRjebx5+0%gi*IUzU4A|vU1JxbKl>e6gvwnBjz9>O6gX10LUpm?jczgbVf6Fj+Kzo zo7MD;-9UB=t9xe`H%4#-s!wT$-C+%)S8z1@hp z9cxmoX_!#4(Co2K0vR1l9rcCnd{MMOu)VkttHvi(vY$homx<_3j9t1;C zK|SRP->;Z42n+AwRnFZk*M_g>5oq-&yYv9c2g>`0i| z=SZE#5iwI>#flGjNq_#6s+a8_5uQb?3gHK;W$!9Z4OCGHB2^-z*3-u@4`786_VI(0 zpEFp2=$%IZkzxE12zOu{$3nOO=r)uGVGfJ0i!eu{27x4)9U418tFWwT5D_aoeh?Xj zIlnT@0nu%p3EuRz1rgazS8&D0tZRIW28g)Uchd<$r+!;M@gf?k;^;hYD00OVS?tgiaAzpu*YJs@a zy}j345q)6&JG&ZbbEG(3ED4J*Pe(EOy)?3YS6(!%Mz7hJgCF6@fgizJdDkY`T1)}X z)x&)O$F!2H;Nv|LeWzO9F3J>q;I=cijl4ewZyT2lv@^ct;>)(o@3>^=uHE|<<}bb! zzXoe+wwWv~zCYeY^%FBAWzcr*y(A{k_nB?RqXc8M0T-v6qaCo>sdbVX<>pekbnps4 zj31I7iUGH`n-tL>R=uF>pz{3FlV-sGy7YkC+ZpcSakhUd$N8hB$61UXXK@VU{OLpB z&5I}YSP=L^CwGX`w5E`$pVMbx9}u1nl4YG2kGBjON%WO&gWwSgMnQghvf_owB&@F` zz3QZGs6xKO+!p+$mcqNwO0+lE{L5b$Pg_!J4<_4tWAGT(c`viwEaXn%^+F>s3KKVp z!gVI8QZ^R{pR%m+>E+zq0ex}(Gb)KYMQjWye+B`PRq1eOrBR zw@TlwFT3uwfEJdpgg>Mu46jQA*i2w>60a=388Y!&lebiRXBx3|kYU*#`m)!~?m;Vt^L0mDWU}9<*K){Fihk-( zmbbHm=;SJgz7)#npr;XbA&s!f`ZWxhvzdT&vAo+tn<$R#ClJQ+3*f)MA{rIkQ^7qc zmX>hm4NOXUU8;Q`HcN{utvQ9Wrt=18(!bhUL)EH~8aW!XD+@Bd+c-5Rq z9p%r1$)3%T99Z0=%*VyUwFlOfM{5tZsl?;82RrrPRPDj!ULHKre*hIk$M8#O8$Gv= zaXUd!gC$PjqR$boGlo*?^mId@(i^FK7-8f*j*F+NT{NmCd6HUArp1w8K=xkFYp}C8 ze3&0+XOO^ux6I&qVPEe5)7f8UrB!215|}<`i>J#LdvW$_OWBWPFw6J&4}%8TD|mzA zxeMat`c_6gR1H~o8nQiaKOY_fq@WS>4y*ED zf9=Or{fc-|uV^Uj#*j>Jchycvhaqhn92CJivm5c97z#B^wG-pu-vMmJuv>D7IP1r- zhyL463}V=+T6!#(3?s{SVu+jeq&eGTLK=%teUkthopdI?CSv$KJy1lA9wdyd@`2NN z#Xs8eTBYVb`m3dZ#11hTNStqU6&F@Fws1jvx|YjHD)kg8b;D^Vs?;`WOz4%HP=MuW z>4S24%j&SRwGx4bwMRG16t2V0CQXXK%d{zKgm3JyK6|JG!T_kazirZ0ay#ERB50Qz zN9ypFZKLYyU!tp4lfsx;nND49ECS6ofM$y*HbJo$oF8eAq?G$Ud@vw{1OO^43TBj{ zYB5fGB;68Nqp(W1WH*jfkUSYxav(m*S-iGyC%__pZ<6lVel$&n??~S)S(|l7bQ$lq zU7A1{G=|oS)-3RX5-9rbm@bbnCi7eMgL!chXh2Td`&v|*&eLp+6&Av-!9wOrLdO#S z;}K&dV3Zg=n59kW3_!v{f`)n|qp3Go$jlsER(d))YUoz6WDkUxx1_Y=1CsD!yt+ZB zcgvi5z$JnOgk1;{`9ezlJ;^)gYVC+oBw)jZH^XlVuQC)p)r>GR4W7P^=R-m#h9HW7 zFip-$RLQz`G=-C~<8p8I_%g1Iy<4M*G-E_2=B>T9{e5$i%XdQR;$6`eib%_;93xaA z%s$jqfUZeJyq|m|B(^0Vww_AIsbGcG8P)Lk?Wz#CK zqIm3oa>2&cY#rrM_P)w6ygRN(LC{0{Qv4IU5PicCh+*$7#{XkC5+WLY#CyARKv*YP z*wtBh0hb~%XlqK-r#VztY&Mbf@-UE%<4&IVsDl0X8wsY0QPsdkA6hvxwzoGz zE6{GgXGiPgMte$EGUa)i?%Gi9p%U8|TZV>!{Hm z)$508Q?*VfyHv$q2u^^vd^21PCpdTYnC+OLO`9xlDZmNiP@i>3ZKpRXR~2QYeXq&rUzTQSFua9c96ZGbAX=D7@-|E zKLEW)!)K4o``Hpc(}67mpG{GjTH|yZwYD_?53;bm!di!3t`0BP z47}|4O9YgCxpv?sej9zcF1%b{e<|r>Z#RUu8(}4iMim7Z@)DV8dhY&aNJ&9~hwaIO zwI^ro$(h;{C9sc+2k_}wA`8Bnu_v4jQ9W^lK8V~X%Lq%s)!GvwAZXZsl5g0NUJv8k zNR|*T>vp6&xvaM!@O)f4JSQ3KNOLZ$#lVw%jokhmOKH1B@>QZT3tO}kGQm$y$W&x^ zAh|@lOTa<u*Zs@V!=%9lgv9fFhgG1EAzL05Cg~ zdM1y03v)bC#Q*GGgwHLTLjChOnozj=e1n;{Uv@;otcuS&7>nPX_0i%%VKK6^zJ3M} zRjl!BXg!-5vdFtx-MT1KkCHp@yj)x)lYKfL23*{h5TDCpZ95TN}~=4#^ke zE}hNk(er98G=8Yh(KGuK;=R(i{E z(_8jQhX5kSOmCU0DIm3u1-<3qYz5?=pn&Y3_cQ4&oHH}15=@8BI67G!GreW7HR&x+ z&Hn7k@EJSG=J`x|iwHB>4k$Lz_yHRVRfouP@>p6E;;^u3yLbHcH{_GF)_ zG8}+b)qLEZ9PTSOc1{i0TYGYdnU9Nm@DPOlNac|NgvuiY2$e?)5Gs$nJ*YfVfKYj) z0IhTd2$iR%0IjGLpp(*aP=Gk*S!cg*2Jhi>CQKDV?FNap?Ftax%FddWQz}3V#x_V!IbJ#y*G;oMX5*CzkUV~EfuPIHP2>-O3kWXAIR!6{%k5PRjhi&7ZBv1X)%M6XXa4Q@G_$0 z&7iB@pxff~sE0J)wbHsBt_I zK094k^JcrJ4oPn&KYKWQHa+iWQuC%}>uVggY^`yQ^E|DM@R^Q9 z9Z>T)5!F6B;%c6$u!Cb0^`4&n*-ZHC@tStXRLPO9M2mgx5NB9TJETZZ08KkQ$5R#* zz_~qTOKaL8U)Hq4=~>z#Z~NNeEN9qMP4jbS*s5KOf@Q_0>_qHspblt;%8@19G zY1{Qhy5;&JJ$9vm!T1g1^cz6nE;Kot%!PJeP#giE>x;nFZveX#N1aO~#j$F0jwhBd zw_XOAgwIQzvih7?vztJ<9B?+&%g)=c(l=KxeBQy7+GhQu#eO+&Ligx}4!XZsAln{ChbB7PU! zmLBVV#RE%b`4x|k^|J4d9?MzaqpY|GeHQ%^)iW)o2))_qe$0vF!Le?8cY>muz|aOX z(!3>?fNfE3$+tk-ReMmC(u%MtPJd)a@-Vl> zqev_i^D3>ny(D+~3B81ysq9VGnobs{D4M*jb1UsDW++cMSke36lCp#j-jbX;0w1FE zScn^#Yb-1wyT6oJhYaTjm*L(Di+t#<+@0RNPX|ioOEoZ^+k=88FtzigKK`XX{-qio zdb|8>TIFUH4v#TvH+PS;sE_M(t5)F%(FiPW%g^IA<|C?NoC|QxxB%!pAHnTQ^P?Ky zs^Y<8tj;gbel;TziP;IGW+zY&kv;d=mVr_GK{wP(EszhE9JTIp_&W>o>L}-5PUuf= zBOQ(Nh_?J=R`wMy1jFqRBS7J$?cys64|sldcNVpOacvU6xf7zZ6yG^itgOyDWhEb2 zkY*6f8ZI9A6(S%$Dl>=3g$}Fi_`8=-Vu|7%M*O$=zZD}&SdoHNw1uXKvp--bB;D|= z?d8I|LTrc~DtAMvs4d=8ZA7&e+0ihsUYfmaxcqAFtC|cO_z1pXb9fa>5JE&aNEBaR zn!Re?l5n%oq%^^WO2TtPNoj}+l|(XxlG5+e?0e>I9dQ*(O2=HNPG&Ncl2t3^=I;B`ki!0zmsC=W!`izZkt87x$1pJ26=uu#c9!D@+Np^|-q)zZU4CHn;X#Cb|q1Y2mS zVxc-KqNUXQq}`|3^N@C*V$Va`eTqE~X^5ihA{3OUDFSz6%Vc@d0%i^JjBHemwSoOA}C*I5*N%RY=RDAYq)o+UYC% zz|4!5#iHj!gbG)|#>Kn7HqD+evosXxt#I!Rs;-Ai4_iYA(PAeJhk#{$+#zKDz1cbo z_Ewyr_^B3Co;exVayB3p^_o4!)b}_}k^fq+l5r0o)%I4lh!@(ef=rJy z)?~Ctc3nZ>ua(~#O=vSow9bAP(REm`T7{Cq!?(b)*#8Z>_qS}jQ4BLJB-i;STOIo$ z)2OT7(dC=+WH+%wQ>6I20lcQ;dCVJlIT=2`jSoOzVjS5|laHG!c&&hXatLG}YFQ<0 z;&_wSMFk9)MJtMBKZ8}D-N|0Ot`3YP^Xk3#0NqEe%PR7LH9cSl;0Sk2`gnb19m-g9EVY)Ti$(&MQq!JVQ6fg?Y>_hn|EDM!3 zp**9}eoMGB=V(6|_MsnA9ubSL*Bx6)G*CV&S{kTwy)cXe9s*;iX=x(vvj;xZDMf45 z%4q+GaMQ-xC=TiT91WJ8D1{}(pl(Ola#Mr(!JUky$rB}f=4!r&xT&jInOW`SyNNnaL4Eg&$TLo|t~Ws1?2ayoe$dQQ zfo4F+l4gu)#MvK-Y_uU$e>&OEYwJ)VVmPkroe&|33=Zjjo2q5)H~WQF9%X+I{I*8d zLqxm-a@Rz!f;sWs^?D#47rllDUkEf3h$beFq~>c=Nkwt-7xrL_aW$u+={^8`@836E2B>@vnm0u_8xOe7O% z*!5_Yn=Lj#Fruo=TO4FiQ-xvhtrEkwdF4)0p=d=`IF7s;VVZr^{(kKO)3|#{AE(3- zj31Yb1DvuXq=r*q&@F~f4lw7wxWFpr`z(OEZ(g9jGwgU2D3MmslL-@GkR5IryQfbT zySEL?6}u-0ti<1K3=RBcGC|7{>x90MSU#J-guYF%u8+P#Uh#a;*J4s(xiQEh0vlkt zsk2;3P|g{($%I!6S%$JHjf+Z3fn{tr^Owz}>G_Q$-@$EQXM(j+j^PGF<(@%V+`^=5Ea_^SwHnYURpsoc z;+-})H_&6kuI2_~D(yV2}9{Ir4GrXO|~Zme>(L z5wb&Z#+Qbp=6g#jKWx54Nw?dqS-@d!+mju!tq`2*2xu~Sc)bakKB(fH7eXbb1>C zeQdoHUpgaZCJ7wC%d8d;OXpqZIi{!>9_25#hq9>bJQu zc3L2leUR%tK&Z5pO_oL;T(a!U2NIVO1DJj@8IS}aR7j=t#-rcI^plWdET$4LeM=3~ zX@=s+rxLTzhx$VG4uPy-9q7EJj_M*fL-T?b^>&;7T$TNjyj}vx&Kf{yxB`FygodjJ z29X+s3?ft-Hq(*Nc>p5sZIo$lwv_?;tTaehR89*gEKtPus5)Wo^o0miN%2l`KI4%_ zS1**IvB^-6Y0rDZhE3pH47rH=Kt8d^CoZlk$tTt~TSPv>9E_$|@$z-@L3_xZe5iDj zq1)y(pObuK=_pUIsMKtrkT+Pr0hN+2RPTY5IDGkA6qgIP6Jyv$#p+G=_LiC)cnSf4 zh2lD!lWR*#+lgeI1nsX9iID_8j5h`1Jb0|)AE`Ku5n*5`h?338%eD7ibZE)2Q8+7d zG(DoeFxK!68a2{6(+7fdL|v4v#kBTP>STgCADPyHp!z z#a$bW(<+2IN*#BOYo{EO4CcT!KM_P>F>%?~aIhlPo|EK|_PG z0Gu@QSDQ`6jkW)lLF5%8n?TQAW602J+HQCWf31EhJq)PO1zK7p6~Yf?|HjyN%8H%i zABB}!!Nh8Bq|d%b`s^D5Cl#Y16Bq5SE-ZUmlP%W%F}9~HN74a!!ZMnc(MD59AM|7O zMk)#yCD*JoV@FTRP0Mb3i7w!P?gKffS-7%}kBl8ZaCy?Yb8FKflz;%mJ7^<@zh)lA zb24UB>Ib``<4>|+?IGRw^0~JHNAw@YQA)gMj@H36q1)4dqZWI zgQJowhYF`<#3-r4q_7F?T-}p4LT8ig27N#9P~6fT9I*BqN^$UNG!g4&kN^@&9?xKm zU;LknK`V&N2yzhjAros?JexM@2&gaC^>Afkg%ZX^4c9qu1?DBknW^OijISXcjRy^9 zhu6S8lC@Gno}I*{?y}mx$US6A$a9>#Ze28Yb>;Y9xa&V*?)vsl(sAQZJnCX-0x;u? zVjSLy#*V+~O@YBy#-aErdcd$5hkeG1VC*v((Rp`CP;X$Y+!0qZ0;^Cm4&y3hKKrul zaJ1c)Br{grNR^m_J4?(lqGg4wuLfkEm_uEV_S~dGgndZN0sq34E#WSgtDR3rKTX4y z4&5P#+RTWWl0PChl|*+Fy;0Kzb-$@MreUb)KE;orYMYjr_m;Z1FNqeBqV7p@D`9c=1IEC81m_ghoSySAd?#(zR2SBQGKP;%yR(;i zW3u0oSS;FDpc;3{wL3^6)dIjkeOsyPD@cpqrbl_m9ohySjQ)FccuV&dba(>oD5s2Q z;m#x;n$${)`PLYE;t776+8FaXCZ0DD-l1{3)wYaL|8%77z3*D} zAnF9~XC#RPhgKhs-nIhUES?3eZ)Z0HU(f?@u7e=aaLJhER-yDajn|w5rn%_>1C}SU z9C0G6B~jYDFye6574d%Nfcjy9(G+TJyfmedAjH0VV`rsJT&qs2YlDPg?hOPpjY#H8 zQQavNSkfQf60bMO%tLa{3n>+*@<}bd!3K_|@FtWBV+ERfDWv?NR2XNh2t+nz)E)pD zvf9-icv8Q8ab=Hcjwo|ab<|p{7KzPNE>{$q+jo$V%ygBVT!00Nx2x;JbzPn1z`&y> zsEzsFqVY;=#&KdAmBlXBN(~zTq@%muGF*B6=Ty*Xz^mcLmR3-xD-ByS{tR6wq0+vh zZM|tfL*Gf?OZc4go&4GJld(6i&}!BR)|*zr?N_UWEnMV+)Unht~)mOpg*K ztHgX)7Unr!WuDVjec`x@N#%>mbGk~N(^c@!;BQ)$uc|z!t7<0lB!w`qOe^R4L^sa4 zY_aIkDf)SdOGZ+YuBFForE_<0T=NmG14WDhBzmZn|haBgCoW6Z|rSy=jKY~|$I|y0^SQd%(?%xQvyF zd=r=DGM&?WrROWUfv`Yh9KGf664Fz^0&XV%TCG5u+p7_OC3B?uw&AbPIP}$M{Z-Rn zkv~+gmeyYl`779oUM;g%b9daBojShFJHExrUd~M5E4!icmE9;_Ol6$+TPi8|Sj<<^ zOVKcj;qHopTul6*>d?^2)%yf+5u5rFQaew%a5BSiF;SfQLzu%CVtqpa+<7wsAT6K@ zaOxyGvQVs6q?4RuD0V!NJRY;DjqAx+j*5xoiO_^|>nF&3dk8~~2x?8ob)y~c1(Oae zU!)Ii>TL`!RiPL^Q>c`=z4iGDm|PH7q*~xnmq*n(i)^>#QIAKS{|-4A=PTrLOIfg_ z>Y2C)M_1oquizyr;Bs(oxvPLD`FM4{n)*4zg0W|ROc*@=v)<|;Z$|k|YqA%qzaYq`>H5J(I92kg{z3DZ}OYP+Muv}1dwU;}dA$k)UhlA?yxdT3w7GX{c4#4XBV zbA2~1ZH<`9xysM37I*bxiV^j>m}12GE~c1FeJAdLvCQrp>J`xH15pY^82XBjp^0K`N}rnU%;`sGmt#H7GinX~$Lejs6INr+fusuH{L^g zVDWomh!ErHTp~OMIs<`}b1WXy2~NG$T+>{oKAuxZ9Y5z``Guy?-Mlr~7iLvwbdKj6 z!xF@}nBK;~DLn$qShBeG=Hx*RFAxIE7(-QAW20iI<8~+BPeP#>C~KwnN6yo#-G zdU$+r!eD#k`IdRDKBI?#!4PWtA`ovcL|(`@ce*h5I_QE^KC;8*YkMHI!= zcC593{o#_WJDVP_vGl81M=3#`b8 zV7+<}>N{@_8hqdEXG^(?58WfQEw@}L*YW_GxCiBdJI*Lq7IWRUxZBUu;wfw#Nttct z6I!9zvDLy`?^11S=j}_AzL1r>KNumpqx`w%sPP@TnwWJUm zMCJ2XAs>pM=2I%bm_tBVTUD!e+MuR6rs_N*Erz7)+sf36qH}AxD3TOM?eKx>0B)@| zCM2{z5~Hzli+2)Eo=BO22Cgb4uf5y3BbnAabbj7V?yY=QeE0Gl$)kGrn7zZ5Q@)h+ zqV$uMTgR$;0%?HsGN0DHx-Q$19?*4cN6O?R`O+Qfl&&mc5;2*RKIaWwSh)NVE-dff z%!S;9H*q0`Mlr}}8mILID*P#3F-Q;ViZOafS7ScrOS3beo;`1Qb~T7MO)0Qd6S`V9 zPN#TMcHSQ-`gjfAUQDhvtV?rZip}K)Uu9%2PsJ8Qw84jj)eYJR+cr2Y`EymfMyt*% zxs<-rHSQ~2Bg(jsOm4ioH-R3;?N-jxdwE*iLxz-?t9wf~h%#bPhBu&kEy`9+47AzC zU16xWj>9To{WuxcksBy3hp-MzA)r>cnO@cI(# zU0d!SJO1MmS-nFHdSJoSyjRrdpWBUDzqq~X0bAzCl9C%mtlXmk%aK+6Mn1@qRsF^t zYxS13$|WYz%0uB~``3n&QD1;6qc|jDEErkA@Deu|<@(dfKGtF(yaVnikcJu1B1mKk zZiY4_MZ6m$M->vt9%^s`2WyDeL^F4-QpmjCvc7#3z4^ln55ZXvOW1p|cm zL^jF@$rX1Z48?&z+*?{YjpBT%2e^!=fEMRlbx*fYt7RK%7(ew}h)fI4>0z%%h}F5J z*@G?E3ad7qZkfha@$8td7V}3JWvDfj;ULF@jT^fk`2jMqk3WQgF!iJ1hd}K57)mFD z7uvx$qOgpGA4Z{sy@ZQLZQ7IEf`_F91`$Cq$sGjY5D`C87QhI=drcIx9EG!zPy&iz zXGaA16r;rppi^I(Et8OWZH8W6RZ=2`YtxOA@yJO;EWW~yM&zG5IE-i+AU zk?$7F9KL9Oyg?vvqNp!Otw9xjw65a*^&Rjgwr5y>I@$kd^<-L#)R;Sw8bvBn(^iXa zL`70H!M=dp7p^~TGvX{0A*5UYdNpB%m|=QbEoY|E(6m(T!xQ=p1L3@7Fcvkt#+KXh z&WSKfTb-D;mveEbn*7ZD?+*`*i>Qr5te{T2DS8%Lx0XXIx0URsakEQXD7EJK9 zI#<$eEXO!s35Smg*%Zf=vB{~C{iMa)%Nb&5jrznuJ-m+rXnE4{F0yS!Ga#JvcHydf zYD>P>g#-l%O(_@yBh#PZ?EV(d#g~y5#eKdG$W$0P_L^J|*PgMc3PMIQK?Ax`61mMO z@{^kL12OZg<$o|hDsBiw#w~9Qg#;l&CfoiZ_X*r&QpgkwnM4_qn#5nT{9OG2nTTL= zWYRPkXQP2oH7sIRL=>Hd#t|WzBsIzJIL#4OccnT`8=(=Jshv>-^v-{NQ@=13c`i4iUiLN8tw{)^GuaaQy`_1h3qy#bSULyc`%ZtiTI?8jz|R z!0oO^k)nu5xnP;MWCXF~!Gp$=I1)rxX9RMpNhD}>LG=wX0*7Or3H;^-vv%9jiMpNk zSv&ojcOFj+4a}qMzl4Ezy5dwvF%4(&_5UuwV^wM%@nM^DJ}NL6Z4w`D^e6TR&&1Rp zt1IdL>Bei?IK8;hdBp6nh$3td_92Ndg zHQ3SW^LS!ta2}^&|6=IJboF`U6Pw55dPIG*=TUI1&*LA4c`S(!dJOg!>|e8G8k@^( zli?Ccf*vxPlNx-N+_w?GcpLM?rxvkFyXv`;NuW`IQTM%mQfUd`;Ad}62cg4*g6Tf&ct z4b=57rnK1t!0J0o9 zJ{mZmES7&X&bJtIWnRwbhKiDG80SmB6P&NIPyYI1h&0O*FeuVY>zv=&D48~(e1?1h z0}7~?L1rl~AJObe*_2>o{i9MqrEE&F5!g{ZL$h?G{2HNUlCCbnh-2WvkIOX4X3 zv|ArdbCxNBQ^@8pq*@4lKp7IjBjM$zz^j306bYg2oaRpMqlWC6$}So1YLqD4R;6Xw zk^S|NY9CUB8f@RZ33fNeb zeO})tcGqy}+vGm#K>>6}bIH#}_K)nQnA8-P4$i_Ioc6%x^%Xo&+M>RPQwdu7E>6w4 z#`7HTacXY5a(A1D(E?wEHSsO$+u!OZQZhfbl5n^qPxG0IU&#fj>C_*ywb?qX#h(PP zEUvmTF%*`GT(($qWo9UQg83pVsoGy-yDhLgb8Bf7R$y#EPD6Sm4>S+tBF6rR>Prxj zoQ5S4M)E+*1PilcL128pN68!2>5L0(NliP8rB-oR2GeJ*&vfvFxBv4W{BOlcqgo9~ zVIx{UWUgYcLAouiHnK=YxruIEvyEYaGNLBR|w(6hq z)oRslK9inGu(k}f4ZYHK!&y61EFlgyMAyQ%DPO9o+mpmsg8M^}KSBV6%Z3qE{p$l* zUTZD0y-AJwO}}B1FIl^I%oP!%aRQlh$GJ}P5NF3*J;Vucp&U;b%ldYB^@%xNUE*K; z&+uwWLfbzhlwy4wrlU$f8D3A8Z$qvxO7LDKJ|0SF;g1FUP=y#&DDW%u7I=P03q`_X zLo1sicpJ#%_>oCl`K^pG3jX&N)$goy z>Utb)`#%B9n&(R!Sj14ZT2-|7WWQt5v=fj_-Ya-@0zVipj{L%OR9sFmy0Gss_xF60 ze*c{%_){UvDJj*HB4tiVZjFNfQ=HaXmHt3ju5iz+5xDt=JlQS8W*5dvK7!dWK$Z># zot1z&dmEv7ibVkbvcDMZ+Z$|cP(n$bDp0{nSd&HkK9G@jWG%){nQRHR+Chjc|268652TLlYITNQ1Mv(Fwl7q&U2pOmPgxD#h# z`+|)3fl>hY0XyrEgd`gui!<~}%kMU!%vH`aAS(dpNQLZaHu4nTh>9oG`~8&iCD{sp z>^t~%PL~_m|H2s329P-WuUe@xM*4p}gB+e`o^)6V2to--_PKL-`n&P=2kUlF%Nh2# z?*;nW)O1v=u*^)!q__m}?0NDUArj%#z4SG=!ZJYq%sB)BY{CE_ko{$=XDc!Uyg2Gh zUaz=&KkJbgl%lyjO2W?k~Gr_S?E!j#rU| z8lev@ST%&C5OyI0De;e~h<&Yrv>zU?-|X&iH1i8thKfzG@z8&fn-OFF)T`5dMt zv%68(m;?1&1~|B;e%q|jZ}OjLs)_kh0RZ0-`nlYUmBMOVaZQe4K67GDz(?swx=bHM zdpeG7aGK!5suo_YYAMv9tld~g;Dz?ur|iMRMMEvyfLsoUA=xF0GJ_IeXDul%L&AQd zSiQ7VqwK^zTj@Y38~O;aJ^TT#cG?_;ABxa$CQMlw z;Xw^Xd1W7&40>Tm_6N3}MRsLF1uebQN;YjXY^@&UnXNY>ty{T**-{_+zLSw!bdb0Z z@%#@_f5sqf{)83>&%i7{wj3g9x;oN6DosR!6i!#%f&XZL?qSsC&lv||7Lhbgf@2r{ z=q)@nI5e`apnA#aZ^>^BIph&!0u+A8WUVxEM^uRJ$$;=Rb?hq^ibLmg5=;aF^OjF& zN1xEg)a39ibZ&n#=uT7Y-W93Y3?~`-r7_nju_@EOEKpZ$@Qmx<(vQP!f|%DdG>ZKu z4l6bQhcOvFg^1=YN_Q{GPS&Q0X)7y1^D_9KkslXy%RU29W-kFI;@^YdrYc31wtuS+ zZW3&s3vPHR9&&*@wMnVK9V~A!4!rp);1-j+6TWVFB7@3N4I>dy(TJpHfSp*n09B-y z{T0GC`(hvR9UxDrsm-Ip4gxm@tj;LKTIXOY)hv|Ca+rlQ=wmEVuH>R(_k1i413tls%@D28VQSX z7oh4{LzUu<&{s{28q~7v2v;__heuE|x^QZBDW{8v(27Kx;=KSR$^PF~GO2$+HQt+h zN+}+{pclUahl$ARH(RacG?J$NN)5_>tp)QH z8+81MdQC)PF3FKdMi_UFZ0cc-%y;%hWjrj7sawX)t(G6q;7z(VU(tT4OkQNX%p}7A zNQDUin_ya+p`?f_4+oN*Np;ps52N-^CULW7Zi#bHk2(x-#OkkACh{{>v4)VK^pPhF zgsupqkp1R4VO(eh8A|qO#J!6f3X6JZns+OEarT(3A2(*kd4*E*1N0pUw3lTP4fx?| zz`!Qk+>6f99N=Wc>e7TnzUsBg8w!gzj_KLi^Y|kulR`e~v0;Z!16&QC#>MjhCu#W) z&NhvZu)vi1sofwMxUBq!e7;CiNkf;l^jICYL?d3Mfg#Q5U?ZCW1!POrO(i*8G{o2q zDZbjo1AW}SH>~vGTrif#IR+gLC}=XDLd22_X+>S1Pbv;Q<6b zqkC0nP}xxyOR6I&*dG9=Q3@nsv{gwwayXJg*^LH{q<}dG_d!cdHDRU>NzHMqlm=*D zsufYeFpXI>eV*aj+bY&neD0$UMMbYn&kNiYZ5t*=N_Vnt2NPp=n|81VqETROUB%@s zpL&Q1z(2)3&LHgJ2KCbrS4&Rwk;?K6W&)EUw##hTDw#3095}Q-*xVDKJ4W`w$&tZTQYZn%S3Isvs;O%I^&IRwFZ}#NI3! zrKS(X(v9e4_H~KMZmO9C#OUX@)#|j(Q*~GYv%Oqr*KdX<9qL|m!?`sU&eW6+Gqg0WXrfksA0w1Ub+y2vT zvigou?O`~IN7@fyglCN~{6zW5Au>dH_UFv2EHx}^GsY-?0+m`sZuXbbnt`1nZKCpg z*DMKfOpX=PQjB?n0n}U|FOB2!+<&DIOxsc1Yy_Q19!YxbYm(bRP=0V;I~moq*HE>4 zNf4(jNSd{M;TI*@)H9{|tQBRtLY*Xl^IfOqA@GEdspwmv4?EU+t=Eoc_)gQNNBJ^e zyF=mNX1WjyuJWF1jy-IaVGI0yymA(%wz-qk$nG43 zm}q}<@@Qf~r&hD#R>dHWc+G5Yx6BRGtip>uq+6p;C#Fbo^k~vsTW(lt5c`3-U1zrpJw3q~b|fb>Xx^XEb^VU?td!bXC+JLZT((=Sd4;Cd z8z!XH^5<4fa<*UDB)7AhJS419le((O#G2e1&~L=*>SEZckKK&}FWGG(sd!0vdFjB* zj=#*q%kIF-QGeMBFE1N-Ip!}ng_qA8c*!;@waG~v)}i(Gax4gJPZYsZJ|Rp-J?K9Xav!lcF5BT{ z%%UottMC+@GkmVXXDKYN6Srr$l}(F<&ENfLRZfmHKCC^!|DbPCkzq*oEw{G5hmugt zC|nH72aZAbRa4C2sIHrK&^NBn+mXWln|W_XdatgR5i_rAZu{q(dDr&OH}gxhf4-St zs{QlLe1rDSH}j1<(wn((VAOjMG)jf@Ze3UHitvav^Od`zcj>xfSM*c5F5eZsQ`cp? zqI+~jFu)_5QqG>x6;JGGUCCl_O4l`(M60PxsO0Br>a^^Wx*|g#(-rA?LRWO*$;RmLe`Jhard+%^i5`5fX&_r0}2pWb!dt z&IG?<8zQzHQxL91ZsQl_wC(vT?5thrEp>SvIGpFN^L(~gu&kWt`wNEeii=gz^78=sf_uh!j0?`%1y`sO%Yynf=LBDHg#-;<+zL4f z^Ws*>8JrilLRJ|sZiOUexwsXQ!0+PBE|~%^PDQqsHwQzxV0l9$d*no28?V;=^|7Fp%k2+EK__l(I4HlI6qhhJ=*9cF0K?yU<;D? zA#Vi=!?%*b&HU#>#REv}q1ryaq2jPT3A_EU$%YiI!rupd|DT@7EyP|wlCQYgkM1!f zL7u5yrBxZJXS?86f0S|deoON*Vm&GjRhd=lg+@#(kUx*DgNzHG!+|gsjM(C{@@!mI zdNy1PXZ z7Cpd{L5SlW-Q1D2Q+4e5T0%);jFBd4MID-+)x05}4W_XptZ+9_oOwqG6A~A-L0harFh< zNu0*<9>#(v+x*tBCB6cEN|(6&BnrXcIhLn#FM-ni*C1$!ltL64x1(BoEq;a&c*#ee zqem*8Edqpv*>Vv;BFuVsTpByC`3i0_J2;|H>VZ^l(8BBaabTF zPL(dJ*Li#c=P!#hPviZ!$3ImNx5NCC9p{d_cTe5|OLYqnz>&69DR%&-#son5)vXo2REbOpf zu{m*jJSTv3&l?O1?jL#{S+# z;{0RJ!Lk4BV#nUc`SZ{_@zA#Y6dS?AWHEn-@+kZDIKdB}{Y9hKz^&U<^eXXkxs zdG?z1mkO0E->ZgCYmL2ngx*RMF>W7o7~p2fz7orEOqd=m;n(TlH^x(|s%cEtKKi?U z$-k4mbEuc-UGcN~ABu`G+^SE+{zT4IK5t}Sjk_#&c!XxoM%I46YyH6YA7u|#UDLTC z+F3-u8tt#89veOY3${lDXtc`F1!z>i)ydh=s6eI97XpR++xWcB0me`XjG>rwK11qM8&_Oluji0^ZFjU(<)p+q3AFoNj@Cp6UL9a!)Sv?TanuEK{sqlD#^a zr2DDdjSVeH;R_nBoeBUQRsr3N%ED)ZSMY}_m!+=q30g*X<;Cq?3Hf*};mf>2cP^cs`ady}Os-P0N%1mp^e=-M7|F_{kgYziN=Tj z;WS`=muRfSCBKFRz)7DOcGdDoe#h49HH=rS@A2S`c~jx?3f5;qb5p^dTzv>Y_(z%S zy=;_V-G`MNE?3bvP_&9C701%vi z%Cz@J&h?gd@$KVq?v8=TO(u7V{3CgDZ?{!&gmSUz^?U7cW|L6hEMhYNW8l3uWDU>q zy;7SF@a~S-jEpjyw(%m)GsBeL(!8}ddnnD`GhE#9<5Z64Tj;%1j-$L8+$6N$QZoQ@ zFVM||P1#-D%<435*y%A^8#_JK@Z)?e`+)r2I99%G@$~RY=C(MoAD+7@d)II{;+ZmRt(VgOEBri(yDm$A@-+PNIK1dDvYx@_Kr_S**jqFA}aO_ ztJ)^>UNUDY1BeW+7)P>J3kIxOgni)bN--Q{PeOPSRs-1D8=jbREd0<)3R`>qO|^j$ z$n}P|Mv?a7(<}9b_Ai%n$d*!idS+yIun zMd!z|gK$cK-hl&@fMiVQ5Vg%Hwh+M(^?@J|^bf5(*m}6oq+H!%9L}u`t9oI4CXj5K zPmqk|^Y)9pPd%#Nvn7g(=-tFhIad-4R}`kW{sm^3<5^NHksBfY!5?y zu<`Yp-3GKfB!1!>qcRa@Yk!}Q-vu2#{SV*%);GWYC%^G@w2!>I0yCrv){4&9ku1a| zCxSu(;6TtLl7Xm8z^bX|H^TqH>u z_WpR@yanb-O;$O$zNa@v^)Q*1FuWzC)GHCeUJ4tk+EdX*XfxqhHFa>r*jiJ2RH1*S z-{}Xs;YKylq%PV91cyj;NjgzGLei*rJhQgQlJvA^1yjqGE5V5*Jm$bE6ye`kzRq?U z*{8i2^s58{y7sHq>v>01M5JG+)(2&jW>0EW8~sV;qEAXxz)TET*VMgt$Fp`%nv!5Z z6G&r}1Vkd?74(;RWVMZ15X^`CTx)H9WU>WCq_i+QLrO~_D&kj~ZlrZP+~g1ddQ&r0 zC(;N9USxO!hQseSITXMF!em)7A6lpRiBFNQ_<* zRc9r>Z2)wMafLSWVaWENjjBD`=m`z!N~quXt-2GCUPd; zA`Tcbld=@F$-cjMK-??)xmNoH_1}LS`&ROAa+p-Hx;XGIRLXB#S~4&9AHsK!u!|f- zE<(9OwQ_fbfGGzeZT$z0T0Jzj%r*#75W6QNxU_v&sZ%4c6Rsom1|}oACg>9f52+T! zCviBC7BAM`^huxw`j$!YKtuMehN%#CILwDVxeR(DPN+X17l!SqHJk-C@mQ4wY0a3# z{+NcazaT-r_&lOFdj-T5W^Mw?sHKcip8=(Yuq}jjsUO*vYMMyRB1J0u{$3(l=sF$F z5XrzueFRf=^wf|r+4*~nUAH(Pz)jm+PaW?c7B9229=lJnOqvj+SPb5`fP_gem=31eO?Hj$fU>KyTLE!3nhr+HbFA#HcR6Iu0 z(#(Fb)dhr>o&YYH{RZ0bcDCbyh^}hx215ob+MKV$5QI%O&oDOBkLBr_ozpG;iC3VG5ooHJkLP?kZr(5qV_H=#C|mCeudp zRpN=V9L?Sausu%G#^)iU4-Jl|Ox}nI+ zNgisFm*ry&0a>eYDZeV`^(5cZTf-CInx!)Nn7tdPH11ErrH2KBW$1j`xize= zuC9JCnQO`)+BG|_G8w0jgNK~jiV-27gjjN0fZ^0}jV{T)kJ`^j&Y9R0-LbE}IPmUI zgIKhzGfg+~0GxU~J&Kk1TK*8->ddkq;Y#|)dns?n_5pq=QOuNC`YRYtzS6K%hwow@ zuGDtnAuojQLa8{HDoZIsTtn=5Sh$Q>=5$*S58Cafpb`=%j5xB0rsX0c1K3nQyM@wi zb%hK8OGjzmOn6J#Q`)@35+M?nvM-^fEL<ExHV}M+P`Knin#6v<%whrVue>P?BCyEKb4l@1cRl$brs$7I> z2GgFr4FQ^C)2^g3(v$J*gPC(*< zH-)cOiXin={?I((k^iD=>RBW73{#n&-Hw@++(=YwaqM20iM4COI_IlTEmz}AyG9~^ zhu@)+=>db$W#|WB)2aRW-u1nhUA@B^lqiaO@e7Tt{m?=kUWqnP@34L)@TOT^wif9! ziTNCip{GOYsf~y3+=#4~2H|~e-pG&U_pT>nO7WORs7z1A!_`=2uG%ahw|_z#b;5iA zw7f~Y?MHZs@7c$&is{-K?F3jy;Jn3ZL*(|jKed&C;@9W-)GCm+qsF%a&{sKqa}ArDSWe`;~NU2n5ezsbrc z*?GRkW#M1fZ~SYXWbK;+QrKLcAK(UVIR#m1OeeTt|K-kg#C$9n05npYkk|NpE{q27 zI?)ygVOi$HR*XR!OXEk#L^s^N#+MvXmrY?{{y&b=$0X>_u%)#x-t}IPEOR77&oxdy zog`P>F{FGwQb{+$={F*ZEa47n30MMF&_#rzr!3bGB}7eklOzWIt0BRxgN+UI`xQ%V z*4Pd6pV~h)jUo;my7wgCDF2XNSl-Bu`9|gDhL%EZ?v2IqpPwd;^!u28OU%7dqI08* zPDSF#TbhzLk8TLWQ0+?R1x3`qnOJy8v;4+PhIg(FMb8j<0 zu^YCazWi!iSjJeFZjBy^(b|_Icm0t+o=7$nXTJ3IU$8?DNAk_tud`gbHJXlrg@2P4 zYseJGoZw&{)!w_K&0xFio_f!dAb_-`%`$q1q@Zr#LYJ=h%cNg!^vkRLa2|r0aGMM)L&g5)9?XQHf{ngpff*{Ef@k%(p60hQK$9w``+Tln;QB(Y zXLswCR5 zX#o>WzEYhz6F!6SA`8*@A`)u2w_R(BX)z+L4GnEOez@LtgVjyEzy`=Z#romaNUK>~ z@BtTVm=)L#QPtb;FCO^2&qUd;X%WF|lE#I?E^Nf>uiP8CIf=n%z9|(ZvVzs>wn}A7 zA^Ikw_?ieON#3|3TJn+zzrD~;-nxlM=XmgYseZS$sG*ue-{61R#AL0~c#+vVI+=ZL zX{U+sRex2scu+kim7|8*-Hz50@$VTmJy)9oVp@=*L;F94aw3E@-~KXz#Cj#GNtQYQ zWt7Z;lQ665WeG8LF$P0=OpKdQ9&-UbE`CSmq9z<0v$tIan}k!oUBn35Z%$sPr~it3 z9+5mXVEs)zKn~qZX@GV}1aegQTDYQ27IF3oBRy&M$KxLTA0#{;AJXG*Bi7R-j!^1j zsdA(`@rq(g?GoFmk;7EhugFd0U#79R_+(s88mwzqbcC~yES?N>wcSZDT@k^p# z(mf!%$DVCY4r5Xth&xy+6u+0^#@Modi-?O0(xV)Vg;0#`nncyu*vc+xe2qD}^!{_Y z6dHe@8l`)r|Kgu_FLY%)S%hAuo~X46+5#q1Q?`FM{Rp@uxP<;7nd#3<;yL@1ET%uj zd(=a3fA_ZiFO6-69Y6zp-2T$o0JVL0w*O`EPsL`mT}jKp>D%$YHFoGgqJQdV0F~hH zfVA9Y+wZqkC=zrw={jKRp)pL5bF8NvzCvORcKEdfPT;r6K0it+ktQ}V{_9f^)t~8+ z@G8Jw9u;cn^hY~fEO&%>$9&L#yP!V2E5a|yKaJip=QKpd4em|9%wqB0 z8q{{~zt$+^-8|dAdt(1f^{Yg(K^R^e1sD$Re_8ZS>6*08RCB6=^<)BMB<@HrlxK#& z`z^7Nj>mG+OQ#Hv-@vOsr$8!Z#get6(rO0+h%lpnhlvqyj&9QNMOqc-lRtr^J-?1z zKN_uh27V8xt&kiaO5lI7r3(hI#h>~of%2pOQ&cobeK5K-6mIHlB;^Pbr)a8a1-4+K z*ZU-fR1ON^g>(pmk_iS7gh<9;(0XjUAf@pt1+BPurSl$&Fmz4Xw%%1zm@L4^preI* z+6GRxgngymj-iY(!N6s}Xq|h}w~o zK=oc>^ye|If}zdPOe{c-2)HKS!_18c^h3qhfuYH&4taZMVnbocnTLvV8?l(hi_pl` z$-Qy+s{9fWq#S4gESES)Gy<{fL-Nti*hod*9Jz~YXd;=3i3lJi>uIqw)F&PWv2jET z+n_x@c=Q#PrqFJ%);?gLoo$Sc@_-By#q<-jusNM-_O{=T14Y_&pr3bqon%pkxOoK^sl;C@*Sagie&I$h`88+85c+}F8&W((q*N^ zizsOQQuP~pt(U~GT#?Z5j_3;RuG|q_#${|*bU7DZZ-IiCKiLi0!)Vh^y0jM;U$xG9 zh>f4;&Os|?!n^2L&21cb<5kV#;rAZ?RHe}o3V}9M7{22+_*w$!^EJ9Q` zK`kvlTY<>V{K9imytH&i%eVk&X>oP+1oJc6D)=a7<>#57iDV0kI@JKHqcI-g*h!p+<*V#&hNzo-O?I!56!k)BRxds%tCxr< ztC#w0n9O)c`7xWrS%^GF>AGQEhQ-|~7yP5)VF@9SwAbuNXVeS2t-g?E?sKF0m9ku}WFq-e z!zdeX3ky{=`zec$9(XDL*@&cYhl^PyBd(m3;-`3w+JC0eA;+D`yGMce0|r`B^8#@R zgTD0W%MRMCWCw#95o&w|C4LzK5;`-n7w8huoKht6i1cfsRE5#=cISwVgYRqoDo!A` zgk_IcStW;xX;W3nQH+fk)B$14V`z?#2!`Ar0mF_9I2-n4zud^Xg4-kLc2V9H0l+Uz zjmY)E?ZJO=y3v)^{enz9+zDOoZfIaE;8l#9E}>i+IQPRG z=$WnE394|4gXmJImEjmH0g~uxfK;JU=6oL+4gdI=j;z|CTw!C-zlr1^?vC5`WPdI7 z%5}!6rpXOtlA-h2#tzd(3)de3QnW~wGyp?b2n0j#r$7g5%tpW@ehzL|&?aMBALbWc zy^0^z~O#sH!NN(GO8M$kBgj8Yz(!>h4iZ`fPkw{K+_Uy z`!qk(M8F8B%oBf~NcUtvZ7`jd{TZ5A2&NzC$O0}whxy=214Ey!Zl~bg1uOM{4y^Wp zRTe@}{qX_TiNk>CgBBYQUVJCb4I(C%gKy=?F_|<)AkDcW2ZJwo;8f2DFf?M8d6~|d zp|NDp(3pu$>~ac$#9V1Qi0in;an|%DQ!Pq|tpw{5*kuuSm&?5}QoP7yLvixVXJ8w{ zJlH6%iq$q!Tv11_6T`whXDE@s8x^NM_Ze2JvagKw+M{TbdUU#c!~+ZkF(lZI zWQ@XhWHmN5L>!e3jIvbTy4Rtd@~U}F^n*Nj96PvK+^K3VFP`9%9q4qG*1BJEiApw$ z2UMn0JQd2|z$yL~ifR>hDKcFM4c&)tIOo`K%Fm69_Id@ z-)4Ze3W3+6*t)0aW`B>7u{C;~@C62XMf8I&LB)@YF{Jp`=!Z1XsPZ>Uv%*1-3yVzk z#O+*dA&YUbM#C$A;6~*&2Qih77l6wHj$tYvNYbQ;x$=Qb8h9^4DDUiwevAv&!H@5X zUe6uQ6{50~Z5fM@c#iSgXdTztKcqy=qbC#9|3>?zcW=D)RtsTnDaM-OjpEWbN;zll z85IMNQy9$XBZ!%L;*ole=~g0++|7q9Di4f=52ppPE6rb+Uw%aty##Q)ut@ggm-DAo z!nQ`Iq=X^HPRCLmHz#M}?$!D8^B2H!4NgP()jN_I=^E&ZCw0Xe@|dpZrzg0I4RDkX zO{ce5OaOtauflH#TNcX!osC1(z~pmOOOsZ~+qY}z=X zDj&hb&)(8;HCnwvc)z8S_r%)FYzdsaCkVN=M$_{8UPFy)5mH#IqAciW)5{cmVAz6? zJeJ5!4`~^_4b;^e6V76Z;qm~=8qIB*RNg`BPEu<&MYg81MoG9kIl*1bw>Eb074>wt za%ExgMO+9|x*}i0MO7zP#BXiG7tTblX9FE^CynmvyuFoQm+A6j-A#HJ^`6K2VRxH4 z2JFOym#I%!TOeMdK>N!eKI8_d(ra9oH}cEA2Y2si#2W=u!7i#doBU0FMd6_=FuM1r zcwL^3ZyAlOuII_*4D~!Ol-{QHR#TPf>OGJ~rvK{ex-EfX;00XIUT}O5%<@HiLv+sH zkCjd2TX_OZvM;r}Ep2eT6uN*jH}YljDFKFrtDjkFy&6lRIAtqj)V-9p^Z|yqH2MaY zOT~iM2yTcj-Oz7(+9C2H>XHT-T+xJ#YF>u9FfWQmM0Mda_?rjADefM&jVs79i0*G| za=K%NVhThA;G;ZoJlLRBNRHZ370|TNjTlByswo#3LizGGUgGkk@=BYmu!+R!!#Op+ zfv#G27==!8GcDY4i_lYUSP^X6dNOZsvyMz8Z|KI^$CUes;}bP5c&$3co(Ex`sqI|C zLtVzbZkkoELQ$@TP9jv1g zg7P?NLy#p9Mop_cDlkgr$tB{zrHuifJfR1H$s`sSOP7T_ss>4@YWH+6WvC(Mo^Lq2 zY*Y_?eN^Z#@Mt}^r^KqgW$L_jT^q}^9NB!;Xw1mrP0VMkLkv9blka$m|2Wo)IuhKr zbtb zF9JOKpcOr0MG1}8Y1E^D>VOje%0+h#)eslX$1GCK-#j?2gNmpaNzJKFUh}BqB25sy zW;I!B9MeQ)RvNdvfrGsD@^=;t_S~^~wY9+sKSUL}C~y&sw;@79*yKo30=J*tP}Ssg zxr`vIJwpgWzH4-U1j-%O?PgdvqDi>I;{yU7*Ml)`u13KT6ox2paT9^|A>5Pep}31< za)MRJ?(=jt4VdeFF-y3Of-`2itBs-JMwn{%lq#8EZG3f*3>r$j5BDJh6q}Tb>L|Cu zNF0-D)iCpDr9!I42QVa;flA%%8OCRR(}O_uF!!Po&~Y_l z^%#t@#LIP3=jW}IH&!JmsS^$JWwja%ALSoQ6&r8k69#HSg^}6daO&gW6Y&%4p#Wz` zC#4d#+|Jckee7hk4*cj`rZ!p0+ypCfY{DtY-2l=s#u~QNvBDU>CK;cvO>$LEy}D1h z08&D#;KVgLX9_&IhRX9xHOVG53E%B{1iCnvM*(Gzb%+TEv-Ycds3`yol*+zZ}qlle#%;(+xDcOjfO7LN=&@en)~EsTOSyw21t{yN0h zy2By}DC$MNEBZ**_ZdnU_*yaV2!4j(vjtB{1qN8bX{{z+W$37;2^2*s zJ;j+TRNr@ytQBbf5_QL1CSr!NX+>cp1v?q>x)w8N!3;~DiIL(8e|FZN@nC~Y40oNm zi;A{XgS^fo#da@#e`TE4i$k#^vLKX);H6&hla;AnFUW))l`3v0n3^h|y+e)mLTCIV zF>JHN)jX#n4D`*0<*zZ-^)9^=j z=ODGMdEzP0(~sF}S8xgk45V>e2$w6@IX##iMwzFskst zE!8qN{_myoi5oBDS-zBGPCQCtDaSR*6K59SQnJWX@+4n$QIt)pE!7f!>4sZMph4yO zCN+tL=22UUS1iea$(HQ#5MKwj=GURBF9ol2TG`UW@+gkLm!D$#FwR(uge}oqeUB4* z3YZp+Tf3KFXRMK$xm2QwzYMD0ahg&T(NZBb_3otJ2It`whv%x7NGa;IA$5CPABIV- z?l&+6@6+o!nmF6y`6B^#bfne=nzwU~mdXqKRt-^3=yFBC#xo5(Gy+*0Z&L}m1z-RS z+2Nm_ZOJpel2&lWk)MV^aJ?qEfs2u+)TruK;WWIwJx?&1 zlQ;O~hy8L>zgV73>L0^T1PFp5|A>789Dr6XFu{wH;w*2H+G+{x*q(qt0jClLC{m`6 zWjcY^Flt6MJOz-|CG5=+g!BsjU&a4YuxEzKWLRKDA`2WmVG@j&fv!!rYP13ji!^OB z0L|VIOgrv_SlnN^npXB2W5Y?>h~uHwFf35#j=gdet);2upI+djwYFKcY8KN&!i*7F zw)|pY$^G>3^=TLj|Gnvzqlh=_X4OL-G0W**h-&lG!)`d<|_pV)7*PT^sVvZTb{sD6Yl^ci`xxMEf# zcn$lFyucgTRBL3*tVXV!qYZTx z4Fwo}m5^ftc57r=rmve9)K#W=Q zzyVjxLwSyd&Gr{&H#0C1ukmL7b*-8IHM^NVnyZ=b)Kti-jx`^`&}u%&fl$r|{``wK z9~@?-`Ox{^npn}8rCUHb%RV2F3)fz=IL+z~Si?@rf-MN-Oon0pnoY8DSO)>4!=i%0oY(j1{Zrp9aZA|9#s+{5jV z@wjiBI&0P#B5SDpLaWyj8wDNsawU_k-#RPl6Y zurD?SYrrtZYb?=93==2<^Fy^@vRnqu%!b8)3_2NL@r61pzBn5er_O-|QwsYVuZyA2 z&u(Y{=${P@JydV#w`Vu>`*Ss9K<~mEkVXgqE;-7D;sRS}Of4xxI1?^^;e7%Lcb-SVorV752<(Iq?9@Rn>?k!Qg0*eiM zdgHc~w=Ha-&|(FooL`cYGVF!26S2{y?J4pO|Hk{|{lbICbAk>7y~a{^HWB)oOiDY< zg))j8kUkt1L@>eW4?pyH_+^P!AF49S&==G}6~_-8ii?GBlTCns@v1JT{B9 zAg=>U&{4&hg)6yW#As80hOa(5Mq(yqjbLE~qj_tzl^rZxwy;&DWs#IE8VbE4N1je{ zNpI3pTGU-mpo-S=>Tl86CU}SyQ^L#L%I=`hnO+Tid|LdG2P^8XWhPI!+m%5e6h@1) zKlgByeNszhD~ic{)%so0US1)AnHdXXB!%GNF=8eTJc2F1qS${o<=@rGGyLjnd3Uh( z?%wL%Xi&Rtfdp&oQ_7HVLgsPyyQBEswTg!i&6O>h-WACe$q}pgIHi-z%gfX->4s=F zWvmtKindTA0G0L6MGG-pWM`rs#whVTufeFWq?>rNNLH_kJfWh$BGG4PP8ArwPT z@7i)p-q6UG(-`|rvnSvmxHcMKsXSnwykSg%a7x~gj|mgxz?4^0i*xh`bQ8uv#0rsE z-tUOI&jc?2|EPN(D7&gU-}C&r|La!OsZ=GY{6F^^ph^-G6%!tz?b><#b3~2rWn8Qt zXPPxl&#)541<1IvX0RzBO4>$@8Zins1q2Bi?AXRO-H)~lj1XJ8JC13M4&4?=E3IhL zHok|`sPp;$_CELCs{Aqd==Ek&aL+mW?6d#=_HY0GZ>@LvHN%g{0f5G89uyCO7HNPa zv#IMab-GTF45Ka7asc1D&B1SUJI?O4ISU!&?{6&(P>xPVTQcM-Vi8}OEQ_%kTxA8; zy#Q(@75jwjLipmkl+27sQLSGBp^7?|rmZ1HZ@&)*#PA^tueHw*mZ-H?ZPAdq=idvM z!%3$CL(bJkA|x%Rgm79w8J(0mwY|vQd5>Q}ix_NZyffQ5jp1f#p65$ZhY70q|Dtwl ziOaKx23a+FRXk<3*3QZo6)Pq+&Mj{*%FoiWS(LZVi*hQn)kAwEB@iRoZUvesHAet( zlI^oPN#I306u!N>NTLVP49vBT&ej>iXVMH1%Ot0}FKMeUMMgKp+l-0qB7zf@jS`x-x7QT62Jb*t|77h%T<>ZX<8dV#5LptWJZ>IalhP`}zar~a@d%&Fhle2KXO zpwlv%owA=9oUy3I>hn9+P1r7?lHL|MB&EdfbB0OD85;PF*>-PqbKV>g`kJcAcnCUYC3teWFAn zz}#*69CVEShB!!|k@`3=_-gId=N9CHM!PPr8c^pe%vuu}wjV9q_M-f33iPouH4RL=LSz}bn5Np!=Z67^m8aK8O!S&NZaWm2f*R_dG$3n2AnLe;CY1d(rNPJd$ zvP1ToQ8}c~eyGoUna`+9a-la;xBBe2l>LOst_vyAMa4+s0_7u1)IcGXFi2ctdm$c= zTcGW*k|F9NiAx|mA$|zg(Z&z}VpI3Iw!f-v`qoP$mr&@OkYExuX&$#-cNQYglz?X= zmf8$9>H-tP8<`RIbv+zy*{OTiZTZqDVrj)mGVG>iW;v{z%AQVUnVjF-7vBzBQ5C5MN+5 z>+R+8rrxcl{#KpvH_SGa|3RR*+r!yw1Z) zMyvCHNDZ?Xs5@C)K_D^)Rsc2~R-C|7SQ?ri0mjA~8A>QZ^HK?o@m?b8RwxvrBDBtY zSj>m1c!ecer*iUzwwEN?3(a748I;ls&7O6dDHF0P(zz8&;LFtTA~o?aKIZdiiex%v zl#f&)RdYnFq6g5_L@0_J)V55QI%OKkze*m7*oX&@#ESgdERd9a0!>?W-!CLrTH4tD zYIw{#3_lpJCg~RHJsO~}F_#jBjjM`VG`C(LQQ}T8Z$-v8a(th!!LGPlZWKmPx$tbg zjrExqt1p(3hAr;EGTA+|cY+T!5@^GOAYch?)DUhUZ<#BDIe2mz%-%u<)1zZ6o6rWs zM>)9!==Z`M3Azq<)5O=~z#<8f$(z~)+w@D2XUVO@e6uo4X0w;L6_Td1_lR0;2o6WN z1kv46-T+aaK$LawDpqwU&oW8ovzBz|A8#wCOcPtZV-*mFL6ZqqsR#TJgj$|6HCY3Y z%os;aPFI(lK|($CXqHf~5R4#`JCR(Z?4G4xg5T*v%C`@Lasrl{_N0{UHi6SVY-+`5 zi}yFqKl|E$jeu;{Mp%fdIHAZ0XOx=EfGL_J1n@oLV*o=` zh29Bom)#e7B$ZxUKntS&$%dNmk zW%mi1E018!j5RmNk(dfR0Y4I&`=Q?Eetd3o?>?@%aBBwAziOULRph7RWKGbV{5q3i zy*p^mm?u*S?Z=x(ML$^SnT*f-pwHcTeyB2cGC;a7`(&`ql-+$a_vDlDiO}4S_cr&Q zxy^mxxaLCd1$`D*$TW}Wy#lRxqb&AHH!~G&WjHOq7@G#FA7YOv<>S%MV|iLPC0I!m zX(b47n%bfg_nr=1G<`fz5dlbYv~TpNLKP7vk@^>DpLSQfhh?F@!?AaEn*F_PF&M?D z+8&3ere`*oTx~(NQPW6zfzZKA8#)!xv!Am#6Y(|l48^?>S_{Y=Hi|*Fo1}8SfTa*{ z_aMO;MMLeVNf$mHw|heG4!S!LRJ7e5UlZ?lV1ccClOijx=m z2Sy33$EK~?u_&~*c3Mg?BIkF+7|OyqEHq*oRe4d^h&MYNQ86|sp{Nm6Vgna&xOK`a z;Neuz)yo*ftJoF5QOD&r7yz`?I1)+S8>k$1PE|3MH#RbDxAwfbtefdl|DCKpwgW#u zAbKacQy3Ea3WG&^hC{UHJ>ePKg-$(JcWNn|inC6!qOSiPJqFPNsIBOUU0aUkA-;4j&zgp*4wd(_mFd3*f`kMU%F%|^nSpNpIp?Sk2#*xa90H4jo?Iykn zq<0vcJUkV|6ssXPE9L zjOKXyuKDy+{hH{>z76ptwaT*N>Av;R&Efu8?*G86P<|T*24xq6f@;KuV`ufk{$=!+_C0|oD>9vmYz(Z8$a^s+TCUcN zCC~OrG`$a-X+1rI69cxI;pu5O+C2ykpv}_ki_#b*ZnAGn_WeFa01WT;z(m}k5j$4V zCd17%vJQ5e-&DJxnS7Q*1Q1sIf7=wYR+(gQq%Z3czS3JvTtJ1{k$yMON}ZkJB3*{{ zAR-9vZ*Zc3j3>vE$D2O&kSykTo^H0v&DT@mSn|9)u(>|hCzBa<&S!Z>=iA_;Ay);B z!9VmV#4LU|eTcF*sI7-zR%m$q48T5R(13k-62|X)bBJ})O7kX~-2HGApK7JzT(PT=*-3vXd{7jA+ z^dRf@(DSHZjvbG=&h@jh0H9bCEPbZI!zciB-l+lTyk8%H&VBg-=>H4o1S|Mi=mh^B z4e3eH3B#|qr;SdIKtaME>l(5cGBrL6;c> zAw~@#WH{xp9>)?aL<#pT7)o1p?M!;U)Wgsvz|c9ThM{wQeHeO;eR`#l8h2|T*)oGP z0=b3+79xx!p7LbBBn=t>Y>}Czmi7 zkWV7j+?~~eE;k|zA`@_^7Sy|KxVs2%FQN)pld3o5mQN&2)%zKphn0G)wag94Q~mm;8)B>~I1@McM-M03(3KqXFOjt?}TsV8Sp9b z%yC%?ZU+x6X|*X`q*sAjkeNgFrvfQdV`~eAj#^)m(NGD1V&LR=Ln&e}&XG|e@wvy- zF@git#sAvNx^!qdj)OPZ>k<6c6&}dM4W}+?ZV~9iq!d#7y2tK}0#?Qtt7Yazl*&oklQ6^ua=5%O=WDc}Je5{FI{j-m_R?||cp$tcvuqn40@NlI$csT)#oK9pE3G)JpkI@}!mk(`+2^D8H8m(0T4|KA6Mon<2!8D8j>W5%=QAp%Zsa;PPzr^q+F6D3 z^!zcd@ZIl8`x}H}SSo}9RVS8zuyrhNq#i8)WP;_3>>mZD+*R9k(?ALa;^HHi!{E%&;E zH0g@v9Y~Ux(~X?$Azai)_2l2$k|RStER(i!j_OVL#qIq#lED2szkw~9s011fb)cW> zs^$xi$gL(ch0sA(#=yL~D&WUI5A_ve<$d9+s-p_dV0XolZ_4|^`%{8(l+byO+DQBW z6X!zeR;+SBHqwnqzRIcvpu!lcfo7)RUuq|YW$wP@xo4KNG$@RINOj`jVk%*qZ`UsD z=ePyo{#ci7Hi0t?E6AQ1n8$P~jsx?Va{{4eBd^l=GT6Ia_X##dexfFF93JUt+t}&0 zZU<7NOA&^9ytq-1rLw|~*3Dy)IbZ;>emF0(Ai{M;_%KiHy2Ar4mg=<5XS$`gb$659 zLXXtl&AQbDiul4=<9uX2Tz{n5zjFE%>qwr!0|W`kJ~C+8$C67VqKAy#>a&i?X}Fo)?q6%ldmhQgjzW1|8t3YEW}(XYq1bbHP3K8_E zj9gWj;tb#aip8ifq(qXr|I2c?aP()Q zu?o`Yl)Q&ORxPyN2vt!>Mxox0g)5f*h$Fa+$eg3(9sW=FjW{Kmmgy^q8(`6LqYf!) zt5;Y93sF%r0v+?*>~70xAu6b#6QW{QH$(;g??$5esO=}I9k>MnS_D|ukS`aPaP1S; z0b-p{j&Id^T4OFqiMaUD^h14&-}8309h;6eQ$EbYUJlZYc`hGvF92h~0HkJIg* z3P$|RiWD1WEekzVqo%chY|>cPqd4a>WoG=a$6%M+arz>H3Gikm)&MguO?cR{`xBO$ zMOm58USLa}S9{{t0%air1@2Q8p@NVskhFA&%ZS#B`!CQ097F^m!94gaoY21(2?5Yu z69X4$v&6SbJqHJ6FgWDvG+6A7N`dtU#M7`=GWfxwQg{F*$>LJ$~uY^3Zr=1+dXVF;@hln1^rp=lZew zEcv-vESo3`L~)`rixNHH4Fg)m_Xc%7GKL-0d3<|{Z&`^R(&)ib-;q%PmxU{^M$(hL zYAk&}QA;%%MPms=@fNig!%!gz4?6vLZ_R=b#To7bMi&5pC4fmAq`{ES12JF(>IfIZ zqRhTV*rWk4KblIKPBfnj``@HgL*3aw7_}67x*&(E#Qlr$P907L;vjK9w6qQW0Wm zx02lm>SW#snDFt3X}CZY{Fz7s2o!0a_^2qU;+;`n*#o>Eg19_6@V*aoO9AgKW`-7k z_X8a>v{2XWg&A7&Yy;j4y7DB>Q$HmP|Ca#6&-cRci*sT4=H3d7Y%`9{__d%#Mmici z)qB>pFqb(@7V8>1m~~xf^fjz3c|;~A9>L24`N&@}mrw*kbT)i(5Q#7Yvft5Yd@#sl zeL*J3`MwS5RFy5-a0R)(kJ{8m-(;;eWz4y(WZ~PQ=6KH};BkD4Nzh>ns`kO&N%;KS zNsuq8m!~tmV319{lW^bM3T7daPlO6S-dn*vb1QhDw}OAONr0C+^(0`1`0`D{n4bg* zq!u%qGF)K35llf};-v0{M@x7k;|dUkxP@T8nz-rN_N<9hfMk(qJ0Q`_Nu81imS1ww z#i;+;LUl$2Y1etc#an&Wl1CxLaniH20!%wd0NWgKZycbF2`b*|n3g8)pR7fGq1(KZ zCcT2pAU=lJ5b+}7$}m)t)6Ikpt?*X2)ojvK15=iUu*z|;`Kj6Vi*s~6_sFCh*u2XO z0t14$zhe*>5X5H+gTN*O4s5=?7dAgSw}M%)`GHWut-TfOnp?pgy%qeM!KOm(o)SS| zbNceZ=9wNgjSx68cZ_C{7>C0ceYtmx{%Y0V3Y z#q=V|S!b!#Bt>an^MJ-6nb6iT+S?AE)ebIW(Ec<(v_RjWWiZtVH1im1oN72RJMZu4 zOr*AezJWXn^o=56S`W2(6(PK&Gr>uRl%O-|j8E0}GKsKEgsM)Og2l`>drFcMQ_(On z8EcIq>5x4TU_Ap1En_4&(x@R93@5Of_3f&*=8^lemj1goAD?`ZpJ<=t3RFw zQKd>K*hUP|!yf6?Lg^qugWam%2XO%xWULESuc5>Z(GJr(0I0awnM|lEh1({UIvm@j zToBD&0B*3ag1kJrj06OudDE9Bftd-bKsg)VFBC(NCSe;R36Q;kS|n|=_#47UE2QHL zuUX}>TOx>NlVpWq!wHziI`74f=Kvi*gD6Srx=Y1it3Z&4Wi;$#@73^5u`2Y4Njp3x zCK^qYn0zkdYf*g7_}*e&Yn0nSH{lrKQ^n$k!>t#>HiboN&r|D6pJ)z~Iv~VGtRyk* z6+&0!fZ6olBJ@oKGf0#rg)mK*m_x6|>t7RpQfKhapvN0>H$ePL`OsSI;?{67fuJo! z(@rJ21gmE+4z%ZYwRQbuRqnIHciC9g=mR*sm6N^-hjtVwlKE9Ae%OpQ@urYzqKWK43;dY<(}`?^tF5x z^t#Cf%#}=woNx{%OV&uSD{IdI6S4zq@95emo18Yhyn>fR^5}U>f-xh0*x3wKD8Nv+ z7HP#EBeI1jnF;VjaFZUAxfkUOpv(-ICUIXOI3_~0Un#l2LjCZfB_#KEzhuchO;59X zW=rmom6(<=og=xQK@A8^1I{TV_na@#5#4{X_ArONL0Rgdici6FbjDWN2% z7=DlPD;fKpmh-T}OS1{4 zbOiYO`ezI9^}PqZ(~#iPoKs2gt(AzUnF5pGpQx!O!4IuPf`74yYrm&Kuo?WEP=w!w zjxH2{t|9Zh2%jl+mWNH_v_<$A3Q|M?m$GmCN)i5xiV;WWUXTd?1;{sv@a5kl5&q#* zi0~)VmtBO9Qu1Xd7y~ih#xX?_9%MgkyhbpJAC+MQn?HBc1sWI8vDK}(=0a{-Z!wFT z!sNwbE4)xFdRf=yb*L&RlwZWx5OPa&r-a92$%GxHEiv*1*xhisP@6DfmT9)SFBtzvb39?+UMJF{7xTCfoz}({Xn0@_eT42;)LGd zJL4^-F=*5CaQ7MQU6WA=@0$!0wgY{-D6S1yeux-qIi_5ODwZlVRYa$yUJ#hglWML> zLQap}H*Y3_$SR)jSKWQzmm;@)J0M_(E7d8|e^S>hU~wuP1hk}k9D^_$E*;uOP&s{U z(`NBlj6o*uxXm1tK}RSdae`W4%)=NLid)LX7suSHxZI|=TbxnNwzMp2OfDv;%&ADG zSK>kK@X^^UI-00xQyLlY8^tmKCD{=N!APx%AA(zg>eKO1qn_{KfkU8{gym3!s#Kh! zH$z|(ZbCs^v0S~B3w+5S7dR;q-?ZP(oF(Ks|F&tI{W~@K_(ZxMT6Nqz5f#BAz=-&6 zgV9-mhs2#|=+bUY*w(^(sh(iucv8WLImLBUK@v`yJQ-Oqm=2vuXw5~4rtvvzNc@b= zsXNzLqQpH!N)a)EsM0(MJ*cyI$?_YX-iH)g`!V`XFmM9Y6&P8{ehgUj?&u1A1r+fY;^% zqT>vvVIAm<;iI&{U{Wq1Glf=pb89Kg8S9i)x>(J?wt^W0E#HtY62`^?(yY{$=wb9? zw!qOhENRD_codGNaJKWSFh25D~CsIu0ad;B*2Rp>2(2H5Ecn z3f@%kEa5QX5kq+j2r7vZ6T#e-rLT+$R@Vk?dw~&x9|=0nE&36whifJHv9GjGC~7BM z>ncw?#B1WU%pB4N6CdlYv>}$seJ(N})n2RJPbiAYOr@^k$rVn^*Te?QmGWZu6&1inl-p=*yk8=)n8A$^s;9Q@>h} zRT4j7qk(}uw1*iR9^W-(w9~DMzDWir1fUCJDUpi<%Q1P48RTx?| z&twstc~){$9X=hfE`0G>rl2T=%JBG!g~ovsEE6pXo$^xEMTN(0%q+q5GB`1 zG3Z>k$E_v0Zi5Qray@%r?4AKI=Gz9t+{37ssg&JeodQijw0K6H?rAP%Xt$GFfg>wi zb($<`X91S<(2JiD2XqeE@i52W`Hj$@Q$~g!DAjz(zERLxKM9n|Dij1QrzJ#*a!wG4 z@=;+KdaoV-)RF1*=2a%Z%S=J<1q219^bZbXJh^VYqHWj;f#RGGFg?imcm+_}=}#vu zvna8E$Z}5!ojt%yhlrzTT@(lcm4%(_+*TGP0ux~p%m@}lvP13lK5ZvzuZe*Sxa?mj2HJJ*D@|aF~N)l0`zCXqF*l3S}Au8E5ZEymg~#C;hZ*V|&?!O{^iN z$h*cKIOP!U7)`_u-DR~CQU~3;;Kkk zWvE*)4Mt4DYn6@?Giol=l){`!L#^XC3~bPEaQMc5^@6>~#D|A9?7=bsyus6~1xwKF z&Vro|5oWYtk1AfsF>(_t5F7)?J!nU7FvQ0QZza)!ANM;n?nQJ_M!e#K1X`h&ugCV& zLk+Im5oTQ8=bpGlon>qb^R5E(`T+rDYA$yWT?b(Rp<{h?!o-Ej5JbUg+4Leez_`Jx z@f914o^EYRHT<-OUv}#bBEw?Bhe7f~V3VR#MEsoU8@4M=Dh5l5`<$#?Pd);l4wj^Q zdo4+c={b7@zR^YIc()^MFh zn;C+aTJmX*#>h)A8F#yv9g&+e!S=bvHM78mIHI;Xepc>Ti#N_St|1s{0Godc{{$o{ ziTh_WC&iRWc44O(?6%{w_;x5Ew)ZzGgin}XW5LI>g%T_Ryk>Regw|cu>YX9?w>U0)crHgb@6qZ z{nfYU(qgk_^8X67*x&ThV&9xgi~W6v7BdR}Wp=VLLhLb`c?z`u7onXG^|tfS+;)Do z)6UbRi3LM}qOewkds_njKF4v~R$17i43y`DorBcOFY2%8gK1C6P(sX)Du=P9@Bt zaUdy9Tr)*R+$kK-)qi2u2+>)B$t76mev}fWe7P_hAE!zpDh#5H<=yfJ^X2w(FA+}( z?-!#rvG_oP?iuWXT5hMW<)wvS)oH1x2*G;jq#;=MrdP>Jp&NpAFA^*XtQZ6{=VzQx z6oQquc3KL+og@USFKl)QR)xv&%x4I}%Af^O*N0#w@+#ok`3NgRgJoj6jztgSfK%5= zsB5CHpnDr48x6IyS_80*NXal`##0pi`>1I$%l6cYEKjl?ye70(qi`z7dttE;>qzu ztlyb9`;%JVRdIZSS7)TuZt4R_PNHFH2+>qaO<`x}D5g&s)L@;Hu65tuMfoepu$I%g z@12g^izIk8vM81y}v#HAbZDEp6!hi@jD)5PhGq(_m31PifU_9vdF?w9m{;=A{$#=w%ZCfhS{H&Awg*i1-6a;;ngAMJV~KHio3JMCs}!_nKLl@8__`O8VS^?bDI_ z$0&PG29)$Z0Cb>{N>MZMk|4W>tf9_vSFW65xlgyM4}HYX$gn9+o6S}!(RYTR6N0ckQ+v>?|1P|4Rd7C zn#mJqf2L{JThoYS57byP69ySCni=bzSU$z>AuZqKzVo|vKkW8(>PfP-l)^wm4OuO( zizo}=*y{0F?i|ek5WM93wvJoi|l?CZ9!|2c!7p`wEYgcB7CK0 zqDWyz5JV)|7i)bVd1aE_ko+Efk#f$AhjNGq49~q7x+=SUc;mR$AkTh|oCf~?FFn%{r9*PL}$gZn{@eV0yPkhZ11PO$PdMCHY0@xU9?w8S< zm}9=x#)l>3#d+Oq0j#*1oBBLsN&j5*=Ke&jmo~1sHSb@7UXCJl!&iI`YQ_3RG~%EX z7E&xz2HJ;KOf`g=a*N*}inHdPwEH}}mUFlCwqn)^fHm$<{Q@6uRwP-sbZQe22% zEjP(nVPsBE4NCtwW9X& ze+}rsiatbBf%u8sHzS4Z>CSatqV|&eI?xfT6)4{X5VSGL=Uqf&Z^#qPKE-N^OWH%& zFcOF-4Hn9T7=XY6vxIFNI>3_qZS|+gRObEHTF#`%nUIqqWu`6v)ml8nHF8Z7RAg!y zn{M89Oz3mbH7Y&rd~+>r&^#;7ySBhSZC`FOegn^@GeXd+uoM;oUm;>Z5On#NS7eyp z+}xCyu=AqdcDuen7^kxP4&t>vgOZd}hR)@Q6?96p8$(cXnn`->7Rz0xWRq-!@u8JhSgvhQ?EU5q$quJ+fJ$N|8 z8naEYB#`a&&1g#CE7Zfz{`E-zy+}{|5n_Aa=Fs zQxqdz>UR0*4jZipC6MML>p7*FD?HX7h|~L}$BS~qD0s#LOtE0iLs#sc{{jbO3Eq@q z%NCOwb~a4dRW23fwn$rPXG(m$=O1Ioq98wC0xWho#9E6m(P@ z4qt-Rzk@xmpr{pN3uSw#e*sF$?iY(sn(x{GzGgv{Q0uApS?_F z-}~g$-$SCMeK2X%cAx|>F?;*`fbXE;sm|xdM9XiV4)hN`2xDrdPBy0H9U=<&VWP6_48-av<2x=xwrdGf+w2IH7uZZ| zZtFmaP;)UfL`)SNye^3X@hG@84vm?-hC8h*my(!p>uwd$|1lx{+@0JxqQ5D@$czF3 zmwc}(+23JI!>Ixw3OdzF3bh_l~4oZH>>U9{M3|5KK#Dw6K#4gC>rQnX_X zh+XXDHqUynTL+cSi;;`4tw4UV#GhZ9ig4#hO6Vt9^Z*J45D?x6PkbO5Qc?}nu(c{+ ze{7FqqdcYj$Zi!LkG}$Z3vO=nru5*i$DkyQ_bjQ5t+sq)zxM|75+xe&1i16B>Ns{ zgxu`x9OEYJ%N?&7fB;Cwb(+)>8HQ<@A*~g<)Efk>HFR3wP~m`2S#&^_d~_f{ zmK=Y=L}CKc3t3uNj2;KbVmEJn66gq$tVNNBq&WNLAn+!T0sO5-?0tJcM#43-(NqH( z$H5A~1|Bn*15yO2pm7`Tr3^F#Bd~|tf^RViege2OJ>cVb0Y1Pcsz04z&@2S=0H|?L zUQwbcxilgA`dJYocD-Lz3^-;YkVMA-{gg))WN8oP^R8v(hysS&<~ooM3f5#fkzK3- z#iJH^u3hW2yrB_+@T4Cakp{D<5#gEE0?PV?Zug8xIr|j!u}z|o17wctoC6P7=^S{F zOe!4I&=wC#CX$jOu5(j=4i(L>06zI#7@{%>XzVH?qd+-bx!{ z?b48-8s#$cTBcYW!{jAP4>dyPNnofZ3%AwY<-e3Qswi^?OAIly(;0q*F?r-BA3Ch0 zoX=Pk!j=*JV!MEJlyJh|X?eKqWX&eQ?EcRk(UKFU=Tk!-mDSNo?aTVhDMG^AGks2}_7QtM)!H2(GvHxvGHku$o(pQsVae9BpV32@WbD+<|#R z$n!)3XJ$yVf>=SMGp{sP?7~WiQe_9xppig2Q83}v{7Ytskoau(LS-iZ7m;k%w9pGd zKEPRjVFjC{jdK9gX=pe?{gp&D=oBVl1OQ3pC=c&Bo(gi&%@?_iLx|wN&mqdUv&;Q9 zsns!jztO1oXE!0?TOA!KxuJ{tMHtG=DfY*O+DxSm`$6~2m!Su~-Oo%#A_K+u38(Xl zSv+vSUb1v%-%meUe3aNne88fxud@G}OKWW{!AsAI7@km4L0zJ_^_=aH$xX#2}rOPbnJyyBIRzI@$h{ z#1h|<-S5q$g#`c&-U$of$o?5R^|wQi1wsTUfwfifwYVAPS~OX};(~nL(qj=PA|pB{ zasp}+^)YRYkY_dLJZeleyPcKcPq-!^HDxd{;VfwC7PR3+Bxplupx3u0Tik1mAjXAA z(+wIC{Tw||lJH&55#)j?2y4pWVQ3la21Cg zKld2JeH-kUczid4MoYI)A7W-^G%#ZNDGE&xicPHpcZ_6>w#+`z<}kN*cO(%n4>Cmj zr>SIw63uAYWQ6XY1S~urg11TN3S%rvq@m7N39&4)+eGLjsI$ zayWIn85Z{%K7zM!hxhRCxCTlbU>G^xX&8^`-Q?l$&VRsGqRHH^^A!aq$X1*%{K31) zb~h-SVW|=d!}ST|6`=vNik}w#gXajsvPTgr8RKfPu*t1a73-12o?4792CpV`OGuF6 z>O4|goc*HTK39$yDMo_=8Wey8$g2A)_Nhq#^(rwc70dXs&Z*J(0mnF=%_l~S$DHjDMVXl+i~8VcDEy_%iuwfc^lXoX<9>ZT;= zWR$AXS#GB)xBK3Q0Wa0M5iQfLN+PrZChIgvHrqz+>b}V>7VNl4vS9b}l|QE3N|FQP zVJnE{s+^nzict;z3v-F%R;8#i2Hzbk3c0nBG`(1K0?CO;UjHWv?4@R8&dr3K3;>

L1OeU`MLb6g3gD&ud@2N1CTt#%od29Q0rwzXy0&e0_Apbv~<=R_Fut%E0^q#0X+ z3HgvdDa41-k)7u;J%b#=duU_b<K0 z6}IpfCXhB?o>ME)KAI(`OQVA{EQ%l#IJMLh5s*4WgkXZWS=t8n;I#p!`P%&I;Rt%A z*%q(%o7#A@^_EUSEo&duUA7r%Z}!$DLYdmnT5#sZLNUgoF(jsFYYa8L(Pp0QoD53P zJolCWR#it}1Ik#oiA+2}fx@P}1^(8F3j8hKr2hE$0_mhW8ejXrimHD7JMldDx~XbO zdl%Eoq2JeO0c2b0NJLvSHmxRv1H&xF!H0#R-I`eIljgv5k`1L|RbV}9>&b5~OcwjN zpDbEW$-ZNnPW6{{AffmT?*#A;{vl931DYn0>8TpVD_zG)n^`NR6$n90=+8}kOE&Gt zHw+i&HGr!KE+b0Qs*&$Y>AE($kP_cY$43l*XhS9neX8zkwWfKLeI!Js1j4haBzpux z+xQ(2#OkQt5*<2%q>1rI*W-74g=M2cYGQIVE1Kavep_DW$^<8GgMu0aG{ja}MKsq} zgtP@QbGM?*+9KHsV<}})s0|sSJA@v{t?&w?U4>4_?djYdDDL>kDCFqDjlYa42^WZ_~ygWv~2~r9)PkZklAn{A~*DX#qn; z8Rtb)j5Lk}iMug0%{|}gXVmvXC2mNShnu@cLhQjJUfnZ0fS=Du775u~BS%Nt06q|u zs%w%Fc-9KxgGmjdHriFIXvvoBAL*|UX$k;3Oh*6hdSkP8idU5*}%b-S893>MG+0d+kku%~4|FR~#b zW5?iC3nof_9@=Cy=0*FNvBdr2gA^_&C@A%tDwIM7m8`~>vL6zWrl7hFou%!V&&mR0 zGJ>v0TPA=Q0ZRO+r~sy!oq`Q|TB3Aw^m*ZK?x*i$-b|9tW+dbZ0U*&3xy5BLG!kPl z9W)5};BA>72#G5sqfl@9#}Pvk7|ij^!$P7iciiCF=pqC~*Ub@H!<& zR``M3EUVQcCGvdJ+#EN~AN~ zXFoF45!KtqC;>%hW2Etc%_@M)!&nf~)P;$RVYI8h?|ZSDG;Tfx7%i|`v_Y5~7mR7Qf@748+hF=153bAnh1=Z2@mC}$lk&}tisAFjGBPIh6^c=#M$BA z#=q2pcdOu1c8(imJf_9_iEj?6Coa6r(RQ9NVykL)N4wpxF%gfRTMh}}b9;{*+p-Dv zSs>zzucjY7UBv}Vb)`rIx*Tcz${IiUP4gqko%bQ6BNA;n#CO;TT|PpFgP;5gb=Z;0$A9=8`!JTdzcjO8tL!fb z)FLFSB?6IzgE8w|3o}-KH?3#+m$I*d)r#?&X3DG+;&K>Hr86cHdC@`1+s7ErDEkQo z;OwoR%d!t?Tv>`{*VFLj?F^il<+}=R{Q_khFgwH9cM5ck_nq1eq^zg9iLGv@?)Q9* z{nF6+sS4Ov6!3{kQoSM8>Yo6Aa{5y&V)^*LJOUMo<1I&VQcAH6XK9jf5uqfI0og;M z2jnRBkm>;w4jG$S0%V@TrF9cZ7eh@m#T=j%=YYGI5ra;t^0TMSL8r;V?4U^Y7UA2x zA_5#Cmfjj#7G}jRic8dr$O0*h?J<`)`x4X*NT?U9QT?9%vx zo=+N6#c{RT@y?+k%;s7>!OZJ8?o~d+n9s1%XUKWt9U-pOe5g)cO0>h)TOzy3KeB#g zW@n~JhYH~%Zd5&&QacLOQ?IJ0-k$0sRd1kV4O8`G=&7D}OH-@}{R~DcBR_Yv04|d9 zbAp4K6f+fZAnsCTf;j`UKl3JH=nS=}wYLTsr(w3Oj?p1De)Vf?OZHiiC=1fo7$c17 z9>I6d<&GtzBS0f5$I|SN$tFq<3QQLau-xcXw%d`D>YG;~Mc2+x5yDErqOWbXaaQa| zyDmnT$|45Kj3sDMUWdc>`~avy(Iwr~=YVw?RJqCGPE3H@gP|ES=3TOCfCIw?OVL}Z z05*R6=eYYYuy{&UFv&!Q}QamJQNXYgo3Vu&3hf~$t0OTl55Qk;T&6%nLJ zX1dXPmZX!Bfj6ZtfkzVXD2i9@LjBgMq5MV>P#0Z$t?^pfXB#;pCMJWk9w2nLH{iu3 zHKL0z9EPU)Y27fTepvUg`#Ziu>L-(&5HylGF$RdKc#_;n!ZHFPK@)S8Sg53Iyg(ix zv{={n%@7Z*jxLo22BzrBP#j)Gr=DXHe59_y?EMW%*%%wNmPj<{h@}yX%z4Z8ki(TP z%5G~2=_nWzv9}u8oecnmM5Xwzentp0|01y$g!jrm(Lk5BN~Y2+LelF2iOA|`tlfZa zl4fw_HS%gF%p=P#k9pYUAHWYhU>>D6Xf1hA3`ibE?BOc^08Zo0mHwe=4_EjHh%w$= z?jIOe9^URBSQtE9rm|Mae2qg_2?fOE9Iz>ubHR38&PR95Wda_b%LTBxTrL4~a=8@P z30>LT?!$0ZiJK^O59!Qdh1)6JLd9^41W>niZjt)wc92_QJLtB_EwLTY%-Ls14Hce=sWX!r6^g=po7Q=B*S%SfQ5^=3_!1W2+& z3r05?PEZcO#obEzgiE1h$y7H>w~AC-5Goj*iluS9KjzC=a{HVwEc0U4+qAZIpv-~M z-K}4vof3-pg~<1UbT4dnPd`Q_XM-1avY_0Z%4+*LGHaci1k_8`L8Xz~@mG(K)&$`W zx%*8WL!$JR#~#sZ=__?Nq|tP@lGzlNpcq_2@PHNCQ7m>QWSJvQYip3gcUFV>pfBG0S;a=$s&& zDd>Nb-JZkUF`v4Y+at<*K3l2pWtCo%otf{Gd3>`_rxx^yaC^x|ZOUUabSiCfWSq^2L6dzrmiZ;U*o~wn)h?qk2DO`^3pWVkIn_f6M}H^?W-`Z zGnHb<48vC`Hm}nL6OTfdfru@}CVUUC+>S>DDyoGI+Df(9tV`W)y#U8k52UN`m!e_s zRVp|hDj6dc3Zskg?8G>NT&ccMY^z{*lna|ulgs14xW=+iBBYE2fcD^*Da9h{8HBJ5 z8DMQ9rZpA~o=I#kpfjr2}O*W4gsS`xz9jG!#4Hcd$k7h_7lRJ@#z?n3S%e^Z99`Xi0IALzQQ7gNyJdAh~>w*xM#In@M2 zeC>H$S=J(Ai66C=KVtwWb;jQk5SWzQSr zJWek}htbR<7+_)fsN16zW?aG*Idw+wfi-1`3M?tHZGl^Nma`WrVB=J1)YEE%0eBk_ znW?x%vc)5Xs%+USE`DUei)z7PB4IXjmQ|iyb+K%Z-JL>;-v<+`a<}L$OI&(gD{*k!t*5?y=fk<_wP^+aD#kDG>LA~tH-7nl^AWHf?mq< z#MY{iEFcEI#iwTKWd(uQc%wPzdOgF&WfIdRDQURXX=CKG^-Z&sMDz_44-^-y%l`gDv`#s-LpTCvA!Cf6hxj_5Ijm90Ji1w`KJodj$oN)pof1Q&x7*f}&p ze!EeCS+S4L|23q@TDS8EqiQ@14iOfpTE3$+9|Ef=bWqK&)3Q*>pm0~6OyRlit)svZ zRqdN_UN1aOsq!o;NT0I%01NM^=%DAsJ{b8kn!Sw)kULh(T(9IP1L+S51}ih)y~skQ zYk}xPKWz;Qb@r<}By`5KA0(y(6n1`)`|*#|-K1vu$l%uYQi@(Gxl)|n3SZzJuWs=- zx54-T4z6YU`cn5tgY4bmsinbftpF;j6f-%0YdfQuOh?Ki$cS4^yOa?618OqSrtRe% zcfeQZB%Yt4uY1v}xnm8^Y``0L*OR2YuaPfj01xQi-tHVGP%v+ghPRp9A#DkMEQ_)S zl)3Dl@4Pxf0GJ_mzvX&WVH&`tR9qZZLlS~Z6rOH(PZA?qCuwIlDbL1}9kPujnfaxO zK2Qp)DH8x>iY=uPv;_9SOyOCJ1bux3@nel-R$8-2*E+Oux35^G0F^I7a%}F#_(0@e zgF)K!T?PQ&prP%2K0kq|Z)jzcAPU+O{h2^wFuSn<3eL#buIs+Z$P8wm()doo6X4*C z2=6BO+0=dN473+;O+r)Y^br_gV6a;$ItHUb%FdpY!z> z;&-|WD1lG+)arbo7FHT)oiF?{;qn%0T%kPq(Un^B^~RKAlVuZE&>j!hIvs|gUzFWV z8+AvFMa>b1pj*l@2wxdzEYh4B|HI%{vMD`iJrFrFy9AX&yO*gj#7&sFfREIrdIg zAk}nV(J~6E_{|czkmD3S5DmwQ6ey6{+S;0rrE8+yiHXLxLTCbVgc~pj zTUBciL}e2!v=pWoxWk|mVDh1 zM<)2B*`Zx26~Y$z=85g6>04*DP%pzG#iL?de%hyM(0FbbGhG zcwz$~JeKWN0ImwAPPtlG_$K<7 zwh$^Jof#`?RjI&P@rm`F#i7g~R$sbbHH&-!u%Eum94x86_?204dwGtm=W|yaxQY&16M!#eF&|UilxdbtLB)Xq!4EcC0)dY< zvX30F#;`{L?oWsJq=?wSm+pvsU{h@hUB%j zAdBR><2WDXKE|YrP`6GnB}MwA&2mqA;`8qf={5$+-{;fW6~mlbwN)gX!W)F1;sRS-Tv$Y$x`gHA(t0|m1>u+W#Yld(~Hs2I(p zPk$!l598A*XF8;JI%XYSph((Qj^#(dh}1CK0nt82TfL3U0vF{AR!7_8_F@Tv30^uW zf$TnR^+1eMp7w?(m>HfBtJ*u1ggi}!CzOOdAzZb0SJ@NtReM4;$~#1?_H>0kA!W6v z%k2pc&z|0HPdki=Mc(gul@{UscQ6$;s|B7$HLaR7iNW5=QZ8-V+jPN?6)zxV<4^KnZzkp4%4^hLy0gwaD!c2@91lhK<>Q zknjp6tio0LU`SZ0gthRh4~2v?lyDAP;&ezjQwis`>h4fTI7x_Z z^WS;RJ0))&&85H2-kC4f^CdjL5)Aap@O%N!;~=Q<@I1luSl*Y9h3E5mJ`3vhtnhp; z&u6mzof)3b;rR^2S7(IhwLGt64Xq5%t9X6|=<5~Xd5q_U{4EO4D|sFU&kcv?oaX^h z^FVlB%CllF)xz^A&#y-6{_5~N!t+|_ueISh<9Q7_gEir~$@8n&m|hj0Ydo)JQ(PUM zOFXZFFkTg&0a^t*0(e{6nGAa#5g|lMpZgo5Fh{cwqXxhdUifGf;O7~}O&;`KRki}e zW=bw;+E&1Y!7Rlt_i{;Z#e>m>grWSPWpugQ{w*i~BtbG*buFliha>_MX#UO;7oiz^q4m%;$#XNt#(k8q3WZnk3^Dl#_GfoHTOwK z8}tSy?OB$$B`Y{v3QzQ)paM)`mWlkMaU+I27v>`x9DYW!M+ZFTn~$uH-tMW#5wVU7 z(dfa4ghr1@V0AFgM@;spz%<+k1Cr~x!+zvCUgql&Qd!sN)e=v*uNiDIIn+8c3;wz!*;Z0DekT_jYfUcyAB6VTDA zYnk~L+mx1{Y*5G{UB(66G9(lJg4uw(bFa+YFd9%gYJIi)N-o%eT#+Yg{@b}okjd?4 zUQpzvRwQlp<_L-7aCYfl7V>%(o)!txvQ!f$Rlbze&l#A|ENNsh?TgicgQiuM6(5t3 zkBl>b>(eRT<7gANVu3fSU|?nBXCur>!c2>v$8yxjXzG-NeWA+)>r9c*5D#|JP%K)|?r?a` z%XTNSc9GpJ;BKDXErZHRx3G(MP9$o$25Y4Ec?jyP_Zd)K)cd?*3+z_+`+RUioKr!4 z9ZoP{m31-1HzIP@3sj^=5ow`D5t9V7Ku#GhbFXDe(C7&-nJ`A0Dwn?z8M#&-8}s)F z{UHqr^aW59lV-k{oa|ET@8?a&{fg@3CuQ}hI-9guhNjAK)BrU1j-ujX z%o;|x>2>i%eA2g$bBE9+Z;1W}E<{_|%%yB4{&(E@34E)2>d(J~yFLY{hxPOiW zFCeT0w2AxY^kS4#H#=B+AxM{7Z2{@EHPL@;y#l+~=q;_4dh_Pi8F_6@ zd}-@U8OvVMI!lQcx5h|}E^Lh}r)#}Zi4(0%IbRRETpNqeYb{seziX{f&h@QaIbVxw z2#K%Z6bf>#Z7o%qtB^F3cy_Cyoa3xBa-P9DBXK3`jGS%O8D%a<7C_=M))_gMu+GT2 zkab4l0@fKhM_6Z+sdY9@RGow!{uLWy!a3wCg`|e_GtP@Pa5-~B^zXQwwJv%cm$CDr zbGVFeh+o6ymFwbHap9nt)m-Lph|cD+d|h-F7tV`0lS{rKUdaVlmYmCww%Xx*>4s<- zmx|WYa1L2y^u>mF0Z)sxx`yS7$l+fc1QQK%X=<$v%gedJrM@BNxL7Gd@r&2Ozy&`~ zHn4t%JL`~+*6HYR>rm#hQgvX26P@NllvcB|5UoC)s>Fh)_Rd1Axx2v8oI=*|?&1J} zHPL^+A^JoNarBA}(H*+3To-**R|fZXUC-PQL;Tkm-UPD0rt$rNuHze`_v`w~bCvUEedjSJ>i*KuK(-^pd( z27>X_80P4I1sem>69hr-fP0jMPJ3>U`gA~Z zX6i`=6&`SZ$5W!O^^^~+iQc^-zCd?~$zx7>PSse2bbpIaM2Q+*%y;ab{Ian_S3F8~ zaFx*fLSF>HxlsF3r&dJCzAGqd)MwZ@w+@2DeioBiJBqqkbguJ(aDVXv?f$?i28A7B zfQ_tMYv>O>3&mNBA(5>C-~u&aF;9>`N%5f0>NH~CL#Vma@1DdizQ~1WTslS0?wwkB zqTZ?TGX_PTu9UI3XyZUno-N(_h~UiM04wI`Xr$5Q>(fzp@E(ZUQSuP;=GZ;c5V|DT zmg0hSt$jY%ytXJ{e_R;o8u{st-b)cPMG-Jy?9;fJ3>HC*`XI*L)7rWwzZkZzqcM&> zY&BhdF7!IPJbV8kmfh+|;i`&SOp)mh?4g$DI<;6LQb0MZfwMF{h104uQ7DdMV}SA^ zaNz_T&q|TTa5(I<*}v+10A$vp!&=!9X$#PO>CMCVJ$Z9T`FxLL-@s~8V7H1axfX9k zQ>)nrswA(~bI=|3ZH>#pqsNSuWN<`gsnM|nk#Q0LB@10_MsH7L?U}V=T}Ci~DZd5f z@-w)Bx-zBnymbpQoL|<<4is-eDbwt2e60q!_?>-Er6Cd^B!7c8K>IPZTnHf`2Q~~! z&*f5EpRVPC-2yQcJcWz4MRYonL}`$bCDI95*Xd5G@XPEj<8HIv$s=MD?_kkjS|+;= zN>E#vdm5j?+a;2CR8^=qyK-^y7`^}89Yv%e{nSGRjw_!@%^LNoCafh@5 zF0>&8=xse@cPyI^3_mb`98X8HkLxoy@waiITe=vZ(|6lQQof-sQ}rpVK8=l+Y0wBu zj8WrjOmGYBstB_L4usChK?EYGOqp%$H5jb1tB{L}?-&XP0^hAv$KAPXWg&=wvy)$O47tFB*t}qHL#n6r@p0bDK+X&2 zFLG{RE{;Jl47gv~Hb58_vJkTKUcJmPe7tC3`U08VF1<;;(mk{=hTC>KRt&6$>!=ci zzG%xjMIR=Pfrkv7!pGB{9mtU7eaTy_HO+7f0TCx?3VNv@TGaT*1qPsR6QG7Rjp||a ztxH&|s;GG}17FTQVU8CE9$@M$+NgL(n{;{V*^E;a&8`8;T$-)4*ehh4C|!dgY{m0B z3mkivm_!b(bVu%G*)lKqWX*LFp=S%X4uFIsXpLC;|8pc0SZ-tYfLX(GoA`JZ+${ul z!~0RU&u%04q>ut}vBx5dw-LE-SpsGRnC(RD9olv_fkR>r+gTsIl>}SU?ARdJsqeDy zeTUV-9D@tAZ87o@k&fn*COS!4LTj5E1e~gE1lX{<1@0D0ELt&dZYw(HBv|#twNUlG zJs7M4_P!N6PuU7%$nh^ov6yma5`fbh#968?@lhwwd?W9Yt$F!k4qTZs+0gq`UXMgtb+jmy zJOpFNW5!^Z0WmYjN6$XRkWMOz0j3x>=bC;nkFfS&$wgCC+<3YPbuI?UjC~{y+4=a_ zk^3V{`DKUUp$8(CqX#KgM$~9Zpw?t~!+b##k-Y>lAxb@zT69yn%v0m@G|Qdgo>1$| z7^#z^Y>v_*_e&!8H6lm^!73Q~fh%K=W`J%+g6%MJsaj9X-t?O6g)J|`Do4tc^L9aj zZYi%2=RR}KbmX2T!Al&_ulYsprod_*J<9!ymEPwTqRmlQl|E@e1A-v?Zqnrc0u_TR z7|RbMUVe8a-XDA~1r?ErAJzSa zjp>%u8V16*#x`MdNTdEs)QC&1e7|=xLPPn&w*lBA`TWiL@gWiVU@C^*-DacPMA0O_ zn;que?VWTwtD#MXao*48+0R>- z@Mc&avcdE7)+NM8(-1;LXq?<6W9)}X=Incw#1K9mt~RMW8&bC^Fjbz06j~7bQw?>W zXq93&FiO%kS$PQA$cH(HOJ}%mjs4v2X6n5C+ujr09W2tA5!*JV;>}D=DsiudqFRh( zzlMNfKVEOr>(NJm#NrM*)5P0I@1la^q1GuFkAU2E}QV_;% zw;#9fm6OU1mBMk^6e5yTNRh&h3G#y;Y}c|sSI7%goR|`4zmzu$VTITjAOb~;;qZ$# zQkPMLX;t}Y$_Gd!mUeOrz+I4Dv}%NRNR)CeRTy>IwCgZdtZIzj6x9N-Yc~(ux40U! zNSEJVjLp3peMgI?fJEDP^n#QmuN5JeK*%Z1gaZ2|C>uaek_6`txv$GJa+C9s3xwAdw_1v4j3e>w%tma3d9o$ln zZL)mc^@P=90n7ag$_sjO@NGyVvfm;YsKxFO-Br&App?Ogkmg1iL!JrBnikrH-O1hh zDe$#uNqT1^esz05g);2p>9+RZX6_VRgN6gK`G6snP27|0*Ejyk$eHOo^3L&8>j3#@ zu?~pa(qF`FvG@B4+@bejA;3xa_lnpJL`dF+>ehhwYJwB7gOsy+`FjEhtRjxrbTCC#Ktae69@}bzmJ@bY32JM3dt?6l>ysMg z(!37;EPMJOm!m7i9dO6A$PR|r)MUJKc&#uMg*+t@LMU{vr8agZ(N(gDq;L2C@G|$_R(vW5JZBDRffbd<>5%!=t0UG@Ejp~i49#d{>9zEDGB_`boks~blX%@PM zbj62XVv;QrJoOe3duI|VB1;Ij3_Na%p)Hq`~Ehv4ZB!sm58^pyDmz4{n8xtlsU+%_y2owCg)L*$6ZOaLtU4!q6R+-nW6>S%{Rs@by!7!0p_0%FwZ0QoE!yF+`x1c=$4 zwFcO~?X?Up$cPesCEc9_duTz`ST;SY0Rw3k!vc~Sa84&Lu?Dy_IrSU(%34dzU;*6{ zN^Q2Oh1#816&$22+F6Zi%RQ47Et&9;-4d=^Jt2BHQnF?A%)j+uSu!A_#pQfq_F<-n z2!yg!qH0GUWQ!PYZRN6su|#q9Y!K=ME5OE`+2=uHG7+ zW$LA^IoGAdjF>k`yG7E<0u$M?Cej8)Xj^ZqT)Y~AJEYd$bYHQulmnW|FRRX}PV^Cg0G_18^_k~sB$s7ZV4em+M`7Y5 zVE@}PT9Bx20o8#?X-iHLn{M{I6f!9iRt+)ES;iNK04#}h6LD`CW{9tQF$QsPcB_ch z%j^~~wUfoI8Sbcn(cBel20E-lL!A+m_Yf^2I zDMAh1um~n4hxW5iT_7wA`7RgrTn?>suUDA1GgXsr=Lrw#_ zV*uSHxUgIyc94p;c-jPN3rgey8>_;23}1XTi&(H)W@SHTn$9L;!};t+aY$2Y*#g1Q z&}*ru7~l$H6l;6+gWv~*VHKSYG;|06!6^Vai3_4$g$t!aL_26RY`4E%Y%(u z2#Q6>3bhvJ4;2nYn)lh~Ry!!72vHnD_;<(}M02KrPes>U4ZzqgEVoKY%RpHfluas1 zn$`uv=4q{?rwsniwUug|IqVW}cn$;3f=S)>1i>}aF7)+$Sa_20GI*?8dICm;#E1gQ zZ#OhP_&)G&+r-02q@42z+p@cX_zUz8ANPfZe2YvF6}CLLU&?ZY-pBdhJkmvRibu zxD0(yB}sfkpJW6O0tH#g6(l?s z9Nu_(d5ftSPp@WM=Q0_$07&uWtZ)Xd28M{-w1ES^*{7wnu}KpHNeE-!*l}yj=26=6 zIY8wv%2_4*j70O`$@S@OUEvPl<0Ay1DUu^demh};Wg&SNEP+H_tU3wIAPpo(V^0>Z z3~*aSG%c+Cd}+%F84$89V?C$1>fJMX1{)&l3NU5@8hiH;Y2mx%fbwbkvyEGW4uAUf znm;LTC$0&?lg28Pvu|VkD?A{1NHLQQW)iZmo_(jV1qBD>s6c^QWh-49keKr9Q1E}K zXpp7I#CrA~mbtk7Hc?x&R0&g}$PQd|l7sdRg&N>xUdz6Tgh7~^?f?H}?`?xEJL>}9 zz1QC7{iRoTPC|z?bNAWywNB5Z%eHPLU69eUxxsYh<^wkD(>K5rAe=k^rHw+xuV zf9|UwqqHdvl|I&$=xC1|<9u?a`~r_@{hTOYOlCaP6ub%w2XM*cb{d8^GW){#l<%?} zpn@4=ZmqJL{jqw!F}NIcCknej zRWlR`KffE88tflZKHF zt} z_*XesPnij%+mjhz@4Q6(E|`YUlkrbaVO6m<|6b$=vy-qD`eaClF1x*)Qh6t1K~n59 z7Bw@=(*-a_=bY;h`s3|1qX>9;ZXJ(sYOF|p8gv(#UDRQKKa zF|0S`6=h^%8Gp>@A7ApvQvUH@{c%Zo#oXiFRQy%uEQo@df?cdQC=mUC z)B(LDhOWMUrpv2Xa^~b%q|xu~?cCXA`*zFE&eYedTrL(R`O5|!$RK=pWX~0z(+8_V z-HbG0N4UhJzdJRwENo%oW|CSl#$i#-MS(151wtZE6rjmA{oN=9NP^|p=mbLt{C0VZ zw61AZLKy7wpx8E7{_DXvK^{=muXW>o@`3c;{cd^^?$|RbB%x z710hH_%ixLwm+D)kt1*9l-;lN$A*RA2IiYC4|xTi5C0*O28jNBHM&VCF~!qI^P6BsL8cj&AcLngP^bBEtlk`~VSW&mE_Y zEfA?HnG`je)8#L@aPU8D>-Q9C=N$qDo1G^JL(p#+^lCoiItb>4h#(W zh$ml>4lf5lB0x=XQtH5;N8ktlZaWNdcHMK6toPibh(v5bz_=kY(8TM6Qd)~_h92~A zyW_-1>Dmfs;D+4^MGW}GMKJ|WNwki|Q^=aq)~l}!>R}-OlV!z2p_!yB$B!^tz%Spik=>)1+2#Jp9NgWvA-YdVzUMcr;-K2$c_g&O2 zrN75WV!;>6Ppa8IO45pj^42n-2HJFVTLzRMV$j2Wbq9|uG9Q|~Xi*j7QS1=|Zk?La zzQb#~Bd!LBPkbJepdTGCU~*NQSAVM>PH8T(D5KpHlD}en2>WH4`=XzYBXhivvp=4- zQ=9%v)iy|YzPEEIa4#o^(@90zO%jgr6}0u`r)SMz#oeFk;*#*CPD&X3cN}~1%tvsW zJ@F*u?@L5c%}XXs(P);M>Eu-8kU;>9U>>ssS&*>)>BYpHLw8K;2F?&eOZ9QH*x2|) z`Gr~T@Z_DWjafmDakO{*JqCh(Y|>V5piK@~!>gZCdNZM^h6?ds=s+_602K{P*MW7e zb&Sl}p5o>5{;AVJ#t+9=0C>LgN$BnaT}C+T$3UWZm<6Y&qfG2tv9+J!8!jzj|MMie zs>iFAXWe+=VmAzT^Lc~Q9?ik)(-a_`)bo4D4~3nRBfHeRImIgHT3dR+1w2+4u&@>& zSCPPmush|4K%wcME-gz=KgWwbvSIK@53e3MEFNYBvS<)r37&AOybU=|X$wQcAmrQ)K|3+YzsFcv>ZhK{X|6KfZL-qhO)39 zifF0)p>%C;XTc}I7gM(TA^r9fhQMIN65j2NB23V_jZg-<1?0q9Ki_>U#^GOc}1?2ZUM_ z?;RE-5;k_+-iNvtSdQ)?%OuEKnBt48uZ&ML?TcR}Q}u;xuGsIpM+8uSj#D;+`GRA$ z%fIbLI$DCv=IWXMg9#p>V8Ww+n>p7S?!EX>b1|>eVLm)pKaqM__mOeLsNd1m_$;`q zZHQ{LgJ9j@8rBD)*~8j(NJC<&N2L zQ43d8R=;`OJ;>xV4b*#bKN=T()ZoK=+~zbd`!^XdQ42**rPt{Cpf!`YfV7~ z9M+Vq)`X6qnyP11l{aF!EXJ9sdMqJt8ccAybqS_J?cT#=6={TAnS@hlrFK@>~yq&utcg(3Q=%UnP z*_l)(BvQ~Psox*)+bUfcxxa{B8Vp#fcvdDibO$oHOtt!)tNHlH;AG2ps!KW&sl4cz zy3PC%1iLJnM)d+H5?YrMBc|*fE(|avqMN2gjEWCz{%On>6jpyH)&OhP#zBvC(H-&_pT?}qXE)Go3+>@RJj7tNbmvJ~v zg>*=)F!b5(8J7}aV!0?sTym>kOcjwPS9B@yGgy-QmPsiLpBlnak zRuSLhrZa#v;TchtlwIP7@7&wX#=>o5+aCwUi)>`BpDCR!g zr=&p?G--tX@;0>f3^jPH75965Kl%oC=XW9;_Emu&m}Kh3$6iTj8l4&Y21gP-DMeyH zZl`>YVE#@luoX0x9R++Nxg}8Df0GIkK+gk70m3AppX*9G$5l|`fc4|R*Bl^4q`m^AA4qJCAw^J?&uTz@I((&aZv`u`k~Hn3t5tXAb<$1E0S6 z3wM9%cfJ-GQ(1wN??+zmmA?UhR~{F5ix3OxF}wF_4n7c?4a7MHI{m)a!0}8Uxb&6- z-{{z~)?1z~ zR*O}($@F!>z)K_52~#3~KTis()Z_s;9^;&8L%p=C;2Pl(aR=nv0 z-8T%TZ_ahb$QXX0`{uFsuG2ey8pvTuVDa^Ef_jmLtjAbWAqW=`JuDbdh^qA!#oV8N zU$OMYS<#e9AdzFmyd-o2^DdURh5QT{K*T|O{5?5!#On5w)#D)Iix99K%;VYJ!E|If z2f~w!vD1QD1Y7WUIQ}{Ex?YlQMDywuNOCSpB+ym_D-l&>p5?Z(G-?3deGsYL-dw`$ zxGdNm>(z2Kyu=2vI*HP(Li}q9)=?QAVPty9BFIxmsbn7B30SVWu}1r#Cb@k|iHyiz!c^=4h|@dm2QL!L6BtSFwWloINsnx|D3>fr|(t+ZKn205I60V{7 ztD(@L1}^C*(-&n9TJQgl7$I-3@2D@fx{3Zebu)jE$UAtI=&VzQMuNX5p;hw1ARwu5 z2#e5aNI(rY=p%yKHy6%u0U51veu=0Tu8@+f{)&M07+UEYofNcbsGP6kG}*IWJ&?=k zvG7QIF=cKXlsLWQN(HkP)K1Vl!5JKVf{ta1Wz-UEPnFc57hzw<-YdZ(>^akq#K7ow zmMV~G;|jumbLFwP!W7g!))9es8C!D&_a3ew`qWnhaCR%>2xq8R7WLIv z0@LaA#w+!timNDCZxLMC8OJ=LEFnS$`WR6$0VKB<#cI8JG9JCqKZPgixT zTVg}Jp3eha<@4B`_u}NSgZls*4n)i;JQIogmZu<$(fQ?R(D=9->}~+FcRnQ;kiM9e zV6bf+9!3e)lZ+&BigOI3y+#QZd{CnVW68?cFOv08g29<)C72qob~r6^5D)DdF4WqY zZ_G$CFd$aHrlKr}b2omUge523H;A?Of8F~y>&>9o@b_BtytZz9NBxcYGCtTd7kxJs zucxHSeiylUHrjb4*88&*dS?BKSn8=cd=G z=MtS%Nq4Hd(8*MDH4&PL zf_zoav6?R4I;|Ei5lKm35;oWS+>!THVhuo$V3WBz zm?D~iwW;As9K{tdSA9i7b^@Aqs#}1yTCg&Vsk5;RGBy?}21z0xd1OQ?{m4UnTZ1iw&5*~fSM_k})Cw~O z>k!~7p#d#3RLf%3BUK~Fg%%HRe_UvB33tWpv<9Y&*v5W1)MIRJhi#vZdcHl{IUald zaoq15@7ZE`W`1F=#)pT)LWOpmbyttqW)7rv??`aw?(S4#lCK6B%`eACr`c1XNXa74 zNQ=(X$9NjuGWGcy#cNBU-oc|)IN|@KsBZx>FAIln0qeyY)m!wMC=ixdb2}RYsxe7@ zQ&iy1(DR(g2(rGpp34C?YCfkQd`@3x6t!fdsaLy{_#76m;c60}!|F9x5}(8J)zFdo z9M-S7lK33fufEdoIj|>q2a`0Ja&~kjN&J{z@x52Q{0Pe4W9htihV$d$lmD>F zQreHVA4g?Sus1V2O=cU|8c!niOcD7rsp?@-eXa-exw!w67TtlMDUL!>hm!j^F++Xo zz#`s)>a|qr{^S&~#dRsb3qZX={L*CyRVU7n0u=525NR)ZB+(&PW&Y+g>3qEwp84c%yuq67ewP zxF`I=C85e@IL8@|9sz3{XM>BPCpZk@l@e$pyyKC}BYDSeudiqiu+)(LqvWSq0B5L` zTe~;fabO1sc#Ugk(ly$~n>mdMSXPf$>O?vbp^ZAt;YB*3ZCHJqq)6IJP(7j;4}>0|0kScWx^sFsb@xIdlu2H|T9&Jx?}O*&x^ z!9b_TOlJsni3<&#nNVNB6AdMr$dGfoi+FGr^@-~2Nt4~+tIda4W*orq-@*#MYncE) zjok~yPlg*`gK2m-dn!$qKg@dmj4H(_ri_;T(TUXJuwVY#6ii!RAD+R|0c0(B zR*;JFgG!ByaUZ#)JT?uGq5{5gu%rtSQmEi`u_4bF6W$D-p)=9ouM!`j`sH|cxbym9 zL~)<&Zg`R;%H?|vbEHc{Rm+65@zPp%`7)0uy9BkxN0wi}cb&z&CR7Aq3G|_DE~al^}n`65L^pM(aNrWjxH9KT_>6O}H5O(vvf zjhG4G=yDEN*!n}tt?Y}i+ z$eeU(DdFwj>Y!jX@FW~s%wurLfkSKefB7SydV$}0-hgy6OM^?}Pm05ym1VhHu_2tg zt?-&4KMC9*9VuV+u3!Er*hnI2xn*K!@VSH~^%loRIdaCni?AEd^|CvYE~`~O?UP4c zBqV%J*&@0}brfTdWhSR?>-5I9F3xS8j9Y%!(2z}<)gkLC+M1e+nLSxLohGP+_rRA;rw=84 z)#!?yKCLp>K>|nY0*%l&l^;hTM1gHsDH&<6{Jvh$otK8#=5&`2^ujh!Jpml0q*qSu2P95Q`K<9GC!;4~@`4jn`diPMhJ&$M7MGpr^ZwCaxj;HZu;RAZ7s*LN`y ztt>I+)m#!Fc6taD-a_`T1BVWM_2%FF@+B`r@4}C@KmFskeRcABJkBlw<6iRmAva`7 zp<(+$=OJL^O;|k)jFJK33T}_X8Wp@B=U$p0EKM1vpL}-%(=`gHx8<3*72A?an`}#n z{JHn#y5>>*j2eCL+>PGyY&IGoQ;+n)V;e>a{~XBf_P7-z}y2xcow>c&p2~^}u@awubbaio_BFoNhejR{@mZ>H=qR$>88JcfS6n4Ny_#&?wfhD15uG7A z&g`y@a!?+HEx`7y&K$wEI*-W^ckR9#wt7>_wFtopckOiXs26$6ImCxMUCdb-xiPxP zBL>Y)q(}HgQoSehFE(`J^ozR9)+O9rPDjwhazMeqO~5641{lXz24DS$ZyBm3{Y- zai*8GMD$z0K#~K20dNo)aFdofW)29}q888_~7mq8E zZZof2_)cK{RgL#&w^=HHg2P8pqENz>Ja(1%l2+lzB2L{tW(0Av3=nVOj4YJn*tl z)sr8ixyw`27vNv@&dZ8z$sOr9cK%+n^W(IF&^|M=^8?=4`T3je{A4o4&cCRgpAFNt z^UDdbHQGZ7kD6rX=i$cAZ#s%_Q^G-4b|3uddTQqvYbxA@@6iNLCD-}LF0?$&13CgE z-+5Fy8*KcM1QZZEr>$SzsZ7O0;zu!L9YkaeztoYbpEA7X@Ss2PckIJ3^ zv(j&D1|4i}=Af@Y_Gl^H#2)}_gj;Z%-;ve z2{JYjzLd#3b5r%!eeAkr$ddD=Woe(|J=s!tBI{WzWCg@f+(nv+Y|yyQWyZUYB}iK6 zJJVU3?PZ9Q%MD8kBGVj=gFVQhcBsZ24UP)(VUwW6;6_Mw1rd+wxi-xXqO1GhbsRwI zGEE@$S8&=K<3B`km|yo$44$y|PD` z*$+=9FyGrbII=vtYrkKk<3!P$=u8H;=flZqelnXJZ_OiQN~(X*raDn(ds9S4CJ6Vn zWG;&>k#IUaW4Z8Ef zI7frWa)W^hXz-4({aO&EHsj=RQ5mH@cgZ-%ya_GWVV3JA#fB=cxr1) z+uS$mc(TlGoT-^n$K4L^#}wgKzdLvQt~^uNSVFKe*&|3Rrun5vdkmyQiL<;&hecBn zv%_{|KqQc8_6d9ORyL)$!_0^ECno(w+YAX1%9k&rZy%CO?)ej3?_=s*1O}H zL6MT{3gSG&{#%E@Br6R9`#>9kt?JX?lPgvn77 z&el4V*0>01G^!UBWg_fwd_N&Z=roXOF0vrk%pl5d*sRZjXfvV`siOsksJp+`Wc)-* z%oL3J4H*WRB$-6)J|sYj*yhIUgR4k$DaS9Qmt+&r=LZ$e@e3IndObL6zsbP#eun)K z9zqBWt|_cOFjFVF#D7H3>9eOrhpZ|($HRr?1tN4aE>pL=xuT(m+##bYuy)0L$!}k7 z4YN#`bFRaDV{&`p^cxqpe0;3?`;!3@~A{kxAPZJX&qC3BOy#qS|B=O1mY{ z1+xzit_qJmgcuGlujqpKgvo}K&n43x>^;~_@hD6-9pY~p=5PKE*nJxeK5+o+EjDST zVzqi`@=sEXh#4?BHyKx|&%d2FpO@HjCFt@$Ov^N&d8L|kr02?~>3E&rdSn?qSv z{tivCFnkUheJlX6bk)1x!54Fo{}VF(DRC$>Vep5p(9Es5SSOQmzt-%R@1DjLuaI%Z zX2xE`grTBwxf|L)OyY&$g_pe+gMz*eiSJ{M^dqHY5mLx8Lpcy73pk4*JCz2i5?j>0@@O<+$n;DJyZOMGKmur9r%S=FB@!BT{xu!q{BBl}@@niTh{kb;2@h z%}h9cC(MkmA%MkEVU8WW+Nsc!WAk;xDeV0L^e4wel8NFa}Sn}wkV_3 zP_gVBvJ7GwkJn-u)q+jRoW-)460xkOScV{##j=NSzO43Muvm8M&Z2zdMC9~EEJGI3 z{W=OX56Mo%jt~W5!if}&_b2D;z!OMh>JVzQkS$|IfC3XK!ohb;=^am!fPj_9A~q(D zfq)dp*piB4h7U|IP2{Cfk6epmrmqWW%=;mYG3X16VveLCuyUgqX5(K%3)Hw;7qHPO zg1M+t1hY?2ud+JwWRky%;At7HSs)tu3p^ikWVl2se?dK1Ox7NuF`^rTJx`(^ob9@n z!*LL7^r8-?B+bd{7{f1t+UT+X{O&NMgqbTu>ZF;%EoKN9S_BO{%DOg6sta_+rex1ZP;XDtXT zkHf&bP7wxcLa_L%>~sfLt(!HX{|kBe{6gJG;@@Ltov@6Iuc00V6K-t~Ep-hyeHHx& zvRzjo`-&`Bu8z0$!LO{5cp|kGykyL{HVi5+=5G2TFGR|*>_B~0iXPkV4TPG+ zm|nfS!0i!Bn))1K&Jw;>W3k1|cyO7ciJ=9C_BP3*FXq*$Si?Uf0Mvr=IXW#C;*5PUqIqxx177rcQ<{ev-X)@w))IK*7cb$j`i9N z_msV^LxVSVab09^46J7A;S6iUgTObf$cK-GYAEJV_Le!6`3*p3zPuYer>qQtz?jVuMXz8>xIwk--jvE|&ouW z<-26MlJl_*yr1CB8TpC_aS*w$Y8|H2?zn`_YmP~nIFaw`~32kpsTzQMZ_RsKpI zm}W}(voi&m0v-q8+d&VsvpmDlrX@^dHR3-EL+MRg{F8oW`a$f?RPh$fBYy{Oq3;D& zU8x)|`D5^qBqrNsP7UNYLe_%2XD|)|*DaXE`+~!~pTFp2U=6Wk^C5q|nqLUF{3`F~ z4cJ%$BRK4|)YhKfKEwm{$NOXN5*9gO{R*!|jfx2?R zi$Z)a>LBn)vkr2=n07UL@MA1qn49g!90M{}c8Q$PS$i@t>#; zi!HLn1@TF$lykRfY8Wy8wS&Dm-q=v!k|A(%kaK!@H3v*PtI-4gz(hR*#-9(5GyW4Y z{`KHB(ykl)i1Ba6zWE%2B}Wq?pf!plMUe+F#az7IO9L>Z0r}@Wc-7PKQH4yzn<|=a@p#L<~58z=MR zxk)fGCC0xm?Z z{LzsCQo;D2zt1rKxzCyLr$C>L#_iP(Fe$TX8b`5DFe_3+_|3dhiz#w{yo);dI+O)&uo4VA#14exnca# zwd^T^@$c7+KU`vF{6h+*wHT@3C6!yGyak%-ZtDZ zgcb-@F#gcRwLHR#lxfXp?@74~K)4)@x7oGkyg}R)xQC&w4ZSwd?(J zL$EyMFZ2D_Agl~x6w=knX(bJ{;5;1ZYhLaaiFMs1!If5XNb^)-H&sl z^-jrWXV#sUPs6&SP!HC9G0LD>TQ8no>mmX82q_J&M`2uO)lj%t|M4@1vo?pPPP}TKJ+q7 zAxItk`L~y`PUOld|3Fa^Fb0zX5Xm6&8B8~b2;~nCK}pCPKLXN-DI9JaEdB^>Sb5D{ ze&vtG6O4ok!kV?3r|daTEr6-$>Gn4`>pdD?e8XVk9)3X((#!k!=60o{ZGK_m9zGHx zoK1z4M5(uJSxV{|gSO8v;tL8EhWiQuh%VwY_M0L5TRP9Mqh$sZ(1k1^6xHGoc+n*S zGzCTA28k##ZIkCBBqEH?4J*~Umx5(l-fJte8xyeSdb_7o&W04pj*u{U*B6k)JIUQ36O zqWVfvAVqS`RvW{B6TIn8b~#1Yy5;7!<>r=E5_bR+NrW*@ zslwP0n##7T)|Q*wmYdtSpW2q2+m@Rf9)eqLZb^zq`1+sT&FxD{|1a3w&R49~|6u(a zH@B*Xr$zE~`|G#!^8Z>3$w>HHo^H4%c9H!NIjYm&f}U=__zhO}MTDGn1*O82P^gnD{;nx)&E{M|Sv~Bs_#;P{* z;nD`uIJMO#z}O2YQF-MGHDP}_DM}fT6fPpAI8LDH%0?DCqv(i}E@s)J?L3_9=i#6c zMtigro$?Q{S&vyJc||)UtEP^QzK4y{@1ft_?0d;lzq>kG8$fh<@~ti3PiRXh z$x%E0;e><8erE39@NXuZ06-3d@MdO9ZL%1GzsTOz-uj%HEp4kdThdl*YiJ^%^U>8S z8b9t~1ncBUIIIT5e646j`SY~=72O3Oro+kM5nE64P;AVW5mEFUn=Mi{S{k< zP|#Yp{1us!71jh4@>FI^rV_t`w56q3&x+Zyj@Tj0qNvT5=kN1Vm@Tu9CD=w&t9@n` z#(M24Jsq>fiE@^j8cMK$tDnsYf-E z(-RjEn^5f04KYHrl%j&fNvS&^#bmZ5K_{$x>Q6FT240DLUUCb8X|vffM)0^S(Ze6nZh4kd z4VO=P3F7rQ;LaJ5{iJUa`*y;1i771L%3GwPHWib`Oa3I|C2OPSXZRrD`B`YpblYfj z;v30!nJ7@ELt%Ra$U%b!W;SCb4*rIh?cDY@vOV zUX>tZ-O5SNx7JG4>*V;G*dY_Ayv`KeBm+#WqGi{%`hv1H_s~$XcJgfG3A^ZeUb`5>DOAin zIQ#r!WNce0UK_C*5944wZNcmb+&vnwXIBEE6V%EUrq6;TtOlnIv|pFW_BI&~*)u$= zTe}$!b%VuGM@ItYp~Hfb)_??mz2uXex$fBG_nP+)(7Jn#RjezILz$|(xe+;wvhgxD z97Pg}JK3s~q>O#a#>Hlzte=3zEqH_pC5Jrn`w6?j@3R~akYwykKA!eEIj0`>NZPbh z`TG6&xaM`wJyZ{%wC}4MV!H1ChWZv+ItZY;z|gpfrV$m%nb;sw((cjNaQCRMCImNJ&S$as^QGi zV|nh6`|+Mb*YS=^@!g$#j(m4#LF==^K&$*Hq_Xzi?ThvG-R<#I^4;w-bL)I}zd8Di z+y8Fu0)2O%J^cntj5sw4+WThs?&d;twT?n5Fb5c{3)&L^5x_>l`Qf`;5B|dS2OE6& z=AViFfX-ZK(B1{g%cG#Z|G9m4^XdZ-wbDcBnfZok#pO{cdZQ2=7oTGxxCMDnM+hGG z-9?hz1z!Ir^4)!ALU8W$x2NweYQ+om-9@R_^4;wx-`$9338zR&L-_6*0#jcx!eu;Y z4`-~WAq3Or1^MpwCENz>NuI)Ymx4zM@DQqRecxS~q#_H!Bi~(CW^>=&x1EFyc|Jn$ zbLG36`jdp<+IKg4gKzC7zPl$ss?dSs-LvGotGL^JDp%bWUk1C__QvgLZAsp^wX6(A zN#4LyMjrO{2j(RO=b03G*f;dBU%p>gXS{CFTf>(UdYJqoBlIvbnk z$fIZ+5@g@-Ld2>ST@`m3d)|(b>jjHTA_+kJJ|w1<;{I++dfaDj6lxzM6LVM%=iKBc zkJo*OkJ&qy06WD;D$1v3l~QWIb)hP|>2km2rprr*6u`I|Zo2$NZsCgVx0|@>_KmP3 zpiMX3A>O&$(v!y6g@Y_I-vQlc7vC@>#!exR%Wpt3-~O_2y4|LuEk3R|+78huAU%Qv zkRGiKhA1^8l{OD>GhAkOB+uWL%Ph&49aVmKu&B!{PemREf&;V5><(RK$q4TJ*h+ZZ z?i=nffN+Oj=-*>2S&S?ZB5?usQ@HqIVX1D%Z#D7e?Kru{zZFnetd8tqA@iC^Buob9%OtWDP?&-si>-jd zt$@O3KcMg~g%Vu~pDUq6Eq@_J_DglL0Bbcxj zYt9o)NHEW7=lAIa6T-PP!GvV9F_@6Fayj~8&>K1uxm!^8B(J6=x`J%1&M7Qk z*!=Byt0l5Pn1G4-`$l#ZqDKW&M1iPcp>K-mdNRn0wSF>ylL%*T&Bf+(TIWcK2^v+U zNF!seBG$`p)XtfaBva2ym4?H)@ru^CC@#4U9541*REPT6Jrku=XRM;N6;c>*UC|l? z!cIoWA-iXW2{pTCdb8y#Ns5Jda#!^pvnpPUPo}R5&LmN?S~PjQs_swVd}&vjy3xU} zZ*aQgiKrVLgb1h0PLPOVRe#NtFko+I2GA|^g#+kbgC7BKFvw7WLdc{`WOET-Sbq+r z*-dw^S(x>Az>M&wo!NyaaM*=KabAivBLnidK zWSg{16iH|1>S;hsOO70Wi%KBWMEby*Kd{c57&tsqc}LWAp1#A~WkRT1U|)}o0mnAM z%#y%u^Ta4RUwj~vj9d_0v$HmVYZeul7j9FR*SAO)QxL0*(DP`9gVVOD@e z)?fy}Z44H6XXM@|1{wY05s@&>;B{cW50P*_iE1s`b^y*lm93&C#-4!rMtc zT3-H6+BwrDZ9sH!;Ayatt^%CYaS?PZ!?G(Wh;d> zQ_G0`(@tSMS$#rAd;lX()9X`Mvpc%whjlV>pn!cW0W5o+MvVL~IgQxwe1gw>Z*ny{ zhbzKglKifwqWwfgvAVRWC|X{qD1S2*jr?U$QMBDHDyrQGRdAxB%m8RxyHQY4p4`1D z73H~eP|=ZdLYs;vT#2XFg}NsM6$Kv!6~&h%XaY0VP*Ls;H>4I5^+83Ce4Sn2$}9#I z?T%AX`ac$ZF$o$ymm-k;)NXhbeX)BGn0XL)`2$w_A35FcGzk+Ak5f^6bTSof(KM4S!}hTK$6nTeAhZAp(_!>#|fd=I<@pkKM!* z_#cm`Xzi^KY52yqqHOqZt!&N3=5spct)ML#TqIi({ivy^-5ACf-L4Pd#VBzK3d3=R zxeE$I;a@2XlQYQUfWkl~%0I)IOA^2*)=?OK$9%dL?`MxD3KNs!YSk3RPtr8E&zuAW5Pyzny9Thayl{!G^*_p|f*SnEW0TreT)?BmCRVSuiP^I<)b{dz2+lMl%~ zoS(wzXuAo8i3GEoP#B0lX;K(#YMg_@faTg0CeqpVTNEbnVWKcvx`&ZD zDku!ZPYPpd*JZ=Z5GTk&R8yD@4$wuSFpvQm-uN}o0SY5r2P=Sj#Vj}M2-aH)6N&$$ zNJ5c{Bz#2*V>sa^PS`2ACT_JFy!etQOq%IpX>uhUc6)#;oPX7@hsW(c8C%-}#<(Ht zi2EUI8L!rRghZ(DB$fvFAr6Up70FxH8-fF>Cv9H@glU8;bk%~?(Tc@9C)rgIgVN-9 zAv__Ix;s9}c<#&DXwE_F4o?AEeXe=K8kq8&^Np2~SnMCcEX2R*z05 znUb)s{_YM#8JVjiGz0IA8NFN0xYnD#vN*^i$e$C4r_*+DmdPaK0U`Ofrtrv~(D{^& z=z&ckSES$UM-iLzz6A8n4qVS$cJi2ER}|7yLho0TLf^vg!wd;dA9fQ5mkY zJTFibfCPkKFd+r;?w(s9T}p zaGp;4#*wo%f8N*e(Sb0=@@2BO$%7^^eHlIAt2;UH)$%}> zDd9ITm}bZ=E2Aq;-b zWsguV4~V;`>n3UH<>6w`iiG7U3rCAvelFAUDcE%)7d^2Wkqy6+!S+c%Wh$v!dTsH!Uyl zh0{1-usP{7lLv5JK=}wH%j-g4vA6SYliq^%_OTb0Peuxp9~$q393V|;eBN|vE0l1lArs?3D7AbI1-2L)TbxoleAwI%XBX~$55Yd0Qr9sJ?C=0j$-U} z>lj~0Khj#p&B4LXY__(UO}&m8?}HueLHJjLw3BC1sCz`iv+ZD9*tO91a13n^Bc9IM z9=wk_JPaI#YqunkZ_GkOak?iM7fig9zyl6h+tV|FT4;MBRbgm*rkY?}2r60K1McD_ z!*M_M+aRcmayafZ;kai%$%R=iFdzQ@y1yyTYEE^U2JX9pz-$w!OV@IsE(O&hP&clC zj$1mT=uYU2a(9Gqp9r1NRH&Q8+X>w!Fs*@gZ)acL<=-td_Iv&A1ZLyd20cZP1ikRt zZqQhKvT!A61a3ex{d$-%-uaCN=#$0?pbv0oFJ{J`z03Amb_)yNp>iS$!Mz5A)_YB- zT_{;E8p%@^ji^|p5|nM{8H~%sh4b0#>SkUVVZwFq4tMFDPXOQiAuD`vU>%wS^Ctilsf+LTmM2o#_>p{*veBPgz~Sq99$OgN z`KcFyUmLIskFCQmN;ob2f`pUt3m9dU$;2ok>_CuS$oy1QhcDTSm>$dapfT1VNuPv&sA zZGaxS3XZfw6IH%56wT2=%v^IuO9s9qE@&{fr?^Vp++>}hx8#y#MLUDi-l%Yv_?Pkn z7*(P)hspIt0zA7?tSZ%&sb!wD)1zN{^Ld|G!JrYGWJMim`0YH*KzRAWNgQux2o5Xq z@y=MnE_WcfkK?KM1`ppm#hh?ln}UhR6_{b>XDES&P=%*GQJ5XrisMDF6*W`8AssFR zS|vkQTC~KB22_i0xLVC^3Lf*T+^wZF)~WO7R4y?DVroOcVQVi3!l%x$JS-&+`a=fBze-h z246uLSDA^ka4j-nRwAU!m)MV`>OuTzd)1>q4}bA?w5|wA{P#N1=Hpze7E@s1oD;Gz zSgKBtj`xK1?cdeCX?Yu8J=zPAWUzo%WEse&x#dfP)rOIB@)r29`zC&%kA8?BgG;YO zY(l*vrM1q;5JsHQS5cytQ>e)=TA_sF2jOcx-jK(dpjb*k_DH-n3+rI-G=7&;}j-rJ#Y;bOIYFpYM~ zKhu{j?=XpVfc*~N0_pjcYU!Hg?RkL*+x0MnO=WW%$(#cxL}i z)gAwV^P_*jd>Ep~lCga$I6Db|^XKje7o|!%Iq(ydTr-@$Y`8t`k0E(WT;;G=r1Qb{ z*e&3+R1ap7>5FNOCk=yMQCOTRKfa9@>Aw{=hTBWPjW%?h;IOp3gT*)o6ah5!`%=dg z%Cb+mAk?!RA{zPSsq)BThHU0(O)%OaE#r218)lR8&BVFZH>@X=2)@DN3uI$nKJFmKlX^6>rPd)mJs~u_d=763mZ?CT}dYv)x5jOr*c`J|; z(-k-1h1rYHx|rwo9hH#Iuu#&PWF`_xg~(ARa7P+)%4#ITXGAFzcOlbtacjC{4=?B? zLSUPPfzNpQFF}r<{!16Unr*m=-N*{UWL?p$U*wBYCGpNlc28P{9SNMFbUrzayS}&c z&6w>jQ!R9*^g$Ogxp`p%fa%DE4Y}2ORm;Z;Q4>t$iEed~8?FG;KALhXAj5zO%TH}n zkB!q$w1DdK9-A+uk6o|-(&K&)vvzNT$nd* zg|bFHz6$?R-6@%Uk^xlr)o0wk1!~i;&J;Cg5_)ly$sg)fcfEJ5Q~fJ$AL`vyJ?@W( zd^1q`LU}~)@hDhx9{z)L-(ZO&-u}5MsRYHE$e;4U;$BlY9D*s45~@oIaf(D}ykcjhhmM z+bB<{YB8QgvzgCkWi3c@z#@A_eto&Inphhz38x8ZrIgvBQEgoay^amCeaouQ;5ZUf z62P|GobF$R(8=9Q6srRBJVhaUTJ$FevoGpsc4k^Kvoag(%VhP)tsm=DQ{{h|7*6ou zEYmaG!PxmsXSl8WD56sNm44h)XSzI{8tw}&PUW_$XRE=)A%8E;(fz;G6vu z<&6vZTdYT}QXg4jJ5Ff=2UCy3LL0f0*1ooF;TtsHeg7n?kKLvlkn~$ zw}7TNf{MH{f}!BLwPJ(^jpZg5tdu=xatxLuJh#6Q8TlmJ1Y$OYSx^e>54lpkY{a&4iuh9A*ye zEIf{#rKg=`Mmx()ZD%RVcUxHz8_P^nzV96N$F^bT;}??xB#L>D`LALU8qU{-7<`uM zF3Mi0=jKl~#KbNPuO%%(Y`w5!&QKYi*ZQ@)4YDaXkY|SzOeu?|h;?iX(Gvf+01eK%DnvgIXQNC58r zdW7_n(XDp?wg3nZOSkG=g;$CsV?|K+h8lxqM`aVn7eJ#>K@P8#>U0AcS1^!4wkC07 zT_V$toyBz2m_|lO|A%mqKo6zuzdA;P*NB{T|=%uO29tBk56e#YP9) za0Ad-y3-xc3dff zNuIt8Eg^Ns#YgFzb%NmN?MN9NIRM8p=wG&sFFHy;PWa`VU55F7X6``8-!IW!hEeKE ziORWNSJfKp)>WT@a2l!s>RjOAXEv-qukJ#pLr=@zY5|BQDCm~=A)NSoZzrIDV|O@L z73wEQ0H(uGSx@akj|W-)&am60^JE@a|FK03P>pF~1=|bfhtdkojx7(sUXmadP9)A! zMilq19zx9B_NEKNE+vh)LgiOfMw|e0soD`%-^-TEie^3W#Ta1YYBVwD(wEg&Z(Yk3 z%)8_D{la&3+>6y0(vq|+cS$(P@bQ7Ch7W+Eh7UkxIt^v9hK~RX;UfU01s_ENA6*8L z-~;?U(yecERrn69S&u|mKqh6DMo5BR0ksjwoz$hQ6l(L$af-7gjT07FWYs!Dc=tWM z!O(`%s!gI_VgmxU+}OwVDryb+lvQ>qz?FJ1S*O63!WCO<6M1fx=jvr0$1Nf$k8@)kItW;i$F1jru zSAf7nWiSeaIqUi5fsMbO1O|&a;hchXYIYmB0@@8CJpLZoP}omn#`matAP+^fdA$ON8LypIu2hMJ#1f5N#Py5G7?&uG})ZLbrP`*1}wH z+IxDhyRvtX3x^K9^Do}|NwPwM^W>6rEK)eAZZJ9&6kyDsS2`P-4{8p)6pgiPe z0Td7>AS4JA>!oLei3h%RoL-#yGut$M1BvESTWAsr!JRjjcgFL>k_-9H!)o(gRd&R!2E ztDipx`~5FqzoUmd$y%RVgzKd}KZEY3FUu{E$a0U|<+81ey?qZ`X2c;TuXde<&cPzW z#PT>yEcP8@pk!hvY9@9@N1+Ls*pc)21u(Jyu3P9kehfGcdxOkD3y+`?C*!+XXut-5 zWAB8@>JFfdi%67E)X!suDqn`5NmmY%%K+y?GkCXhiq9;G4dW92Sqd6TA9MdOiyvR` z&ZlWP0U6BRDvLq~u40bS^}^Ev*|CSF%d5P(Qd}*=hah$kNs4sbgi^YF=~;No?Yq(> zF31^vK=>}dID;~$?pu#t!Sr-rTXlb2hLgU37=m2Q{UFRjFQFOmZ@9*h_r-PYA+nM} z9d|sEt=It|#ohczGs9pR%bUSrS`@`l+iyNH+yQ?FAcG!{xLZh$I@r#c`e5n<0urC2 zM=TUo3>6}y>tI})2jHo0+Kdy--2^bXJj?GxX~{T4{p3a~6u%~` zhyM6}E5QGiRt-F~rmH{q!bG~jdd^hu`w|!Cy%71}BcqN(KqY}am-gj}=@7ety&M?D|nPJIPicZpb8r|JoX7Qru zs87`RRcCHl>y*Fl67syPf0F8v`01X$q*bp%8|FTrPuT97%Ni|K7Z3?8R>ms$8YV3k zAO(9>9eLXt=nv~SDyD8Ioo@BYR8l&nEAQ}%WH&#PTTytMq~FWasZY4w*;sXlkN4HV z`MQ2~;E+&)O{!<;qDk-$MmxMKGk%s2n=DT#e5a2!SQ0N)2Q!W$=W7%>KZYXTew!_) zt_O;&e#I+_fh^*G=_b5cy{o>+Le>{IMW%zvxjcr@fjAV^AZ+4Xb{7!~g`4lz3OIiQ z!io19xcPA{3PcPU-MJhjbqN(%P$iX_V2@CrL6zO+l45{HqRlTTwg=odt2Jgd(2yj2 z;AveD|dw47QNE%cZ8fnL4EIK3A0K3+JaycMw15 z%$!|p#U!&*=!bO1hyJ#l6oPq=rDI>{y_r`HMrlpjOf&$_(qtCHQ9JGRS6)V>zKoK$1x}9PWiKJ zEM?_HPZnkdit!^22kvRc-@x7mKJ4gB2j&g0W|zaxVH%9n zIzg7CC_+2c|Y+2pUC* z(2?R@$Dp;*%B{LP>Ea*ArZ^M#N^I?T(T^yCF&bN8M2% z4HhEI%JygXIX&Rm6vQwWj%x|{>5eAaCcTs$6disdk#fg@rrVm?BS%);vDrjtql z2J9vtM>Hzr0~Iv=vs6Ah9Sk(yvgTEMYf{d&D1wu9$Ua$ORG>9GTg%MP{J4lOy zE`&VPYD~w=dEn#&st9gCriMPhf(xh!uBY)Z8^5r)F-|4b*KtXwlNgtznl2sm&$UTO zu*QdydHfV-Bm<3-0FO0SpY&?3seQ-q*U#R?Sv8DjVKlWwB(V+2?|j9sPn?4?%|1Jn zX)M1V(-U(FC_}f#Dbq}{Gq5fH$tcsKhqovb6f0}Iwwyj`hvl@1{<_R3!hKA|u&uqH{WbR;pMTFS)k&s!u3ek@1~eaa+B3OITtlfV25 z&s<~OlXwNwz7#K>rJtGJ{YCnCJgJB(p@ef$OoK@EBGNF4nnAmm775b54@#jJkQC}w zT!2Eo-hoz6sKoxUIK7Iq*Kz5gpiqoFQz!`AO7ZeUUt&hs9{2GtwI1_o zrdqdry1se`XVrJ4XYXyUKIqjKq_56OwV*pH8=rz|9osg_PJ#Z)V8xuosR(H*C!i3A zoi~k>87-19wRs|npjgQ7iDIpyw}oj64cI6Vh3cnp0?!(=uKK_WN<;yw9fbTep3X@I z2A1?Z>70CmL==zSJWjA8ozuu8yd_Sd+YAv$P4zkvCkb#s0z78B;YdUQ*rs$&u!)1X z%OCc~*GxpA1cf5zFq)WFIw#~LI5K(HtfO%exU?~yQ@?5%p5a8t#fVlS3L!c%_lkMr z>6{R^$i383!!+rfekSYeRV*M}tV=`@^4^BYfa?r#uQeBQ%ZjI=ZEA_Ah<&38GMy6> zq{BgeZqS1R<|mrFj$f41y&nls>N-kwL@7%r2Z#8Lsg7h?9}P)xo({xR7wPNkQyo3T zvYjv0QKKqDGSXUs0!5#p5QI77^L21n7XDHqirX=QRWr44*h)lE=M6eXs-yhg;qEfZ zp_mR9fOZDyM?ixh^fTvAMB$o$AOyM#TJsFL>(*S4=ch<@WW-iIuPPuS)lnk^0$mZi z0HD;O-#SQ8{8I)?VviEs6{CUX&;b?Mh~a_{QsJH=QXMskC=mN{I8}s$fMw&!IuS)k zh5JKXOdrl&8cT^Gf(nI>(;5g0nX<7IkHo`KA_{H9(4h0BItsO5)B^0H5hi9TR8Kuv zcMUrb>GPB2!61mY&dksssGf;Bb9ETWqs2Nfb9iI|-c z#TPY0@%d`M>b(~7j0Lv0s@SI8i|e$d1&FgS8eB^^&PdI%8!8%dn?GoFA?!5)&onm6 zlx$LEN;j#MdWFj*BPtpqBXWVQnq)*Z#ONJYid8#{R7VVDXAV1ZOo0^lkw1_GLunRvZW*Ml|4be}oegzl$I0vBWsJiJArrOm|EpFZD zpC6ghcK=kA_QYqOOG=BPBSc*3>%;3?`ex8q3Jo+Vk|&;q5*o2Qd-SAQ0#Buc=J}RG z&r>U*!+e5@jrBQScvk3L2qnr&XpYY)8}j2v5`FEOArAsTGuO~-9f11YAI$=5Qei(2~ETr zS|l`x=+j0KYbc>ZFQgJWK60KiX`^(}yXa0Rp*yvjaL`*VU~K8eFute~I_N7)J<5hW zu7qZeYDKM%6iEr~TrTqor@EztuICd_D^Wtnq^xjYQg(BwMO;5Q^4ARI+68Ar9?{oG zt=~8#F)AF8a1T0%5_&{m5h!aVv>i!5R6=*`_ERXKUGrKAeF1Bpmuuac*GlNR%NH)< zx^YlRkCf2otLA%tCA1lDo`w<{ef_tH5?VDl+Gm`Xhy-br(E2@|C3>l)gx-)2If%n( zld25`_<)VM58ijVx%+1fv9@q4<)15 zC7tohxq!~tFY1#N4o94+<)$BE{qQ%+0xSCvlTWQP#)V0pF=#1t#%E0gprI~i%9fs3 z-x6dL4KjDo2iHxhs76Z8E=+`-{0WmQrdE(+ieTkA7}TN;NC?I28>oN|^00OxMfv zPfORE0yi&I*ZYrkIDY&aTkcGoQqj;RjZx8W0f*z?|Ms$_-lZ*d{^{FN^LvN8TMoxt zwp5g@7(%|qrPL>%fs}gZ=f7D}>iz3m+OnlyD1H6M+EP#C2-GcG>c~zP?!w=aQfkoG zZy#Igh`v5OTk43uZrM^p3%q4Z{Z_K21~I*0DfN*re6ys~C)c<1O|YdNdtP^&X@;!f zNu;V_v5_hyk_-`=)^bs?E)6$RW~k8hMrc}OhMF{O$THz$CW6cqgO+Ay|SjU2KOy}XB zbgXNTDwy^?>BMwHHLIxVX~1%I+B94opPcFTHe<;JkjJ9ewPjcbj>t|hF0;HoKVPjt@e#~rS_xTkZdDik*BH#U>PNW#0B;EX9BHIgsPj#%Gtkr*{(mc}|)HKR_mcb7?mn3czy>T-C-bFI&{CtKG} za!pr_Bi%Y|lIht~yvhWkX`ZH>LJH-kDU7t-q-l$RxuWK#Y3gi5AYB?EcZ}*kMl#eD zvrM@z0zzcdEMI0O@frk7_jnG!tTqH}1S38>0*TxCwjgoTHkjK04UWhB&2%i!bHuk| zxrft84K$>dDL)zOo3?|HpJs4x=l`@O93|oUW+E4=Or6b}zC-FJV7G5HFHR*zb)s=j z?p6`wi%*MbkE)M&BSL%g+W_lw7jTO202Bb&`@6$MSIyAR&qP9NKH}Vxdy-|YTelN8 z4*4+eo{FV3|73;}5;1To<)ExDnFo_3v};ZPn4nx8Fa@M2W=T5Kyu#^pF+XbAztJMP zNAKh%%aBIY2r!xY(-I((S%)T1XCR?JfzZjAeS*y!~l{%Y;EGzc^2 z+H&1rYraIk>I;MUI3v$5pP8GhClmF9Lt0}}znAfZ?E zCGZDT9`B%g6AWuAnwTJd6!ZJY^{q#{l+tZda#bCR&`vJ^V9Sx&I!)|bEhzbtK`#o; zB}`N&>=MS;CF}wjn6PUCcQ->bLq770U>jo%1 zy6WXm1ErBo%o4Pt^x$4hd%HDm(}y+VCbhle1~u__Uknmp54^ny^O=$I%iOx8icMsW14{(as|JpAP%r0< z3*ai`WQfJ~pCJ|wbnOdbY9%i$ezYwR*pJuf38WG|?iyt6O!gZK4RF-88EMU<8 zWc36|k0t)+`4j0Tsb|uVl@8!6cIferTWORNNRSzjqfauh;uq3l15fX z#7UEs1a&^H`!0<~NosQdGQ*%UQn;>740{#7%tcmbRfnpmq>86Z8Nn~hiZV(1IGV3F z>WMafiNMa32^9E#+cS}*sq+rAz@PBJNfY3bz3&q-c0GzEfaO7`O1F9pn2v(j{qq0v z8?Q>jwHagkQ}zI-oo zI;D1)q~yIAxd5Wi9s)x<{TU$fC{hA*0_tUE&NP*-aUK_lHj*UEODY zuSiK_?&3pLnS2>Z^p?I--4UPnRlg4kjayWB^b86cG}m)_`@-Tb&tNO~E5$U&>q>D; z{JphXe>&y0V_J_ptxU6js7z3PPM=0+H0H}`Iv%M|$r=Y#=s02^d86Uc=Yhd_cg{RS zmFKBp*yhnwF1Fy&=M#_4rj$RIhIZ+a^xe%;82mY3 zAC-FfY0`OQ{=8`M=l>P{{K!8f!%}zN8W}6at-+tuF9%IjG&{)ff|@xau`QE7<}{x; zOkit$!y{(wNEd7kGj@ohaVzKE4f!Ea(oQh^9tuF_;GE(2QAjwBN7lwV|o_#Qhf9*nXv zJ{WA$B*=nCqkw^IQ^;~+kOt3zyUjY2e#`8vZ_K75b)>^uW+>2U%SZfBa3#kW0OE?6 zqb75aeishLEXR5>(`;~y!xjIQye;`%Fl?5XlP>hX-2bQ1~(yAPiY%Nk1w&XCV8 zT*}}-B84ck6h6-Fm6XpO2M3%~MoVifEi3yv09h&y*c{>`PBk5geky*+&n!>&R*O~6 z699k}8eUsI`ydmZ0i1{ScD_IO?V{6*-upCMc2udsAKdhhqP?2eB$2ADnIi{++FW+9 zf^M~bw9R+i(z9~e3obE~jTH|;D&#aSECBPd7wnS#4Xo=@=T#17lj)Z_HJ22fC^g&2 zX3PupjClxfm0S2fj4Ii~Z(D-Yr!C4@0L_a1}YuQZ)}w` zm-QSZew*8Fn1f~`&AIc+>lOrnhruizYeP3cbULow*}8Hju27q|20nr6cA7sGUp?A| z<407Z0lNWX*Iv!UW{)~x#Ri}vIR4o0!ES?50v)iC4=D|}Xo}|L>R1^ZzKmFzlFoGa z0aZ=Y>5qM*+2ZFOCMW8Z0cpa9bzP%(BTju##7c^Ef)xh|)U0^l#HWM4G?{{a4J$5- z%jV)Q^XAHc4r2@Qmw9WhNa7JBTQdgJLBxQV^I8rJ^B@P%*Q+_u*HaM7>x`r4hRuuGLQg3ahADqlJJ-!$Iy%sS1t*7vs^iM(|j~Vd%U<|3KCbI zryv!a%2Uwd%0WUjvw!^rw7Bx87(Yz;vpM`=%47IIXg&Nu8RNqbd;unN34$q4w2cd_ z5R^{D-WehCX&HbPQ*KFce%Jf`98CEbo^*4ZZ87E4tCK08p^>2|wdTOj!<6&Nd6{y* z#S)v-KQrYN%?qYnK^mR}9tEZxRAB7~newR?Q;wSzEcjH5DW9rj%BQLkQ!d+6Gv#~? zrW{t2Zx5rWQ849Hq?9S23Z}dRNj^k*?QSsTfC7BBGrUwY)|I9ZLL)I%arC{P8Ywn;&Puw^mFIapw)nSL)2R9k1r&1A= z{fV8BS(~KP#SoAI&?)|Ra*7)CA#edL0)oE~7CvUt!4&rA0*xL!Gf` z5#?(axs)npfc^`qAVrsoTvNkKCd$HBiBG_OlPqqYm?WgCox^!Q3nMX8J_NVRzF*E0 z0ngce0x6iB7)UHKmV-rJBi-rNHd9x6n> z5!1L9gSc(_B?}}&ZHb`VE#ErD>+wB~k+q)Vp(p?fe-%3&PJrC`fBezJHg**xZ}k$= z#G@QJqpL3rIg#^SoI1Cp{p1hxm&Hg#+?C?01lXtfShbYSH^{AivpN;c`5l{c*%WCX z;m8@p{)NSvbk5jbXxW}_^#6R7W+E$$f|xWD zu?l30Z^c=1+wyQ=&>ClMC=VBNXLd&B4XuYb6S0#`G@Ovh5H}HE+0BX!_!@c(;Ix$( zJ&K!Aswx8>q@QNRjw#Km+pSfaJB+VUiaK&4Mrm%D->@&Ol4%o^89YDaHKZ(ip>m~T z=D}H(s;LBou_`j!0}#vev{^=(U(g0kn&!8P+S#aBrk4x0BXtLwdcw?as{bR!POl=y z`%v|tZ~d5hb?WvM>|IMSWA2E$J#*IWDXiPW9a5*xGZRD2FY@+tscg@nu=Tm}zjx>I z`%yC|YM4_q2Tn3}xpXiokc;X+-LpmwWonnrxNUh7#Az|}$PgJvP^wp=bg(?M)XWNT zsgk$^rBCfTrVq(EsT=}`ItRo+<(1HZ9I3mmc^0y$9&?_pTs#SK9ugoOePHs=*N2dH z)q+l0KW#Em1i%%oS?In%&P2m9l>x|CaJcid7y%WOJ5*H`_~6>upP=nfX~pZZ)?KNU z5_R61D}s5h`FA&;!LQLI$!s$U`GVu_LHpM#(T246i4XGBzWOQ4we{+XzF0h99w1Xx z{k^hBxi(&Kk=dtp8?lKCO6O*zhG!vA4=Eub|}H-l>4dz&LEgO#)GmgP%6jnutUGV zg{Uju2C2*I&}YblgHj=%ir#=A8DS`5IF+RfNe06i zTyrCiuW!jkZMC$ayiU6%>AdB2QcIz7iI!v(;R7tM{o31Z=HU{ZBq}0@4i}F0{ zl;>x^1m)TGZAy7^=P#7<D`g%XC!}(k1GdMS?oV?Y z*AHDJ=8~0t#1Jqd3%{izn>>Z|I+G3Qt2IwPb`1B|s7?)A{E|fdX$uAqR-vg$6Q)RCKqnUFEK zI=Bl)Q~r0X!dNpZWrs^qEp%L1-jL$|RQ;{S-%T(xQxanq&{)J3s@%QB((-p7m z8ZK79B9Yq;krPzr2aDBjcwr%5=v9af^87T(N`@CC9pTI?A&1fFM*4~-L;A{1I)%C% zhxFCS(pM4ed8`@S~@4^X&^9f+gb=n>Va?H4OhoMvx0UT*U%g=CXWD)Vf`%{sGS*b@Rqi!sx%pR8Yq?j!VYX^!CwhDvPRFzR;0(P|L+ z9W93{KxyMZ!#3DvA?A))WFLpw7j*_4L?#@--28DN5p-Wl2m5IlX+y}%Bfrt;NPg4( zpi2j04bImI%&O6e?=@JGPN*YY*9ls;XCX*Mm-rKXVYV2i=54n{dv#(K^IYSNJ}%vb z@Szx3;0OY^u~;){_%mtTGchMs63g7b2!l*S)um>82>Bs>Ra zNP99f%#5pgrp9GaQ%)vBGBBHY7DDiMvrl=+?}5GNuXeI&FwZna0$( z!GHsT$V4V4C_w}#G0A+sYwdl`xj&xtWXp-uJgfZ9x#!0|d#}Cr`n}e+omShRPgkuL z9032&Eg9G;^x-``xOHYaMdXuTa7EEY=Htw3Eaw*In=3Pv!`y1+! zEHbHrsip}#rGDMS0e2xhAFdxP@H+a&tb*%|#}YfqVPR^y@clrnjV_2)*t}IVlVWo& zei|i)<_LuVF^hY+NGU(!A#4hd)_ct<`eyclK8sT>Tdyy^QpItrc2Zk7_ znLOVf-IHJf>rb8a_nCRPko+8d!Ca*pfVo&d{)YzVxA4@b3%~9bxSOw<@82v8hoXI_ z9pfI`4ZeR1I=kn)#CSS!hktZ$dGf7p=F9@yzjcurt+<`mv~C!;%$)6KV*7OnmUwPp z`zcMbcw|k0?PGV~_s!z^MrDliFFWVoW}IK0T^?>j1kjt#>m?e%>v>MRUa{@Qg`D$? zh7qFmn{@dTBA^xd4Essnfh++!i<7sgz{^M=Sx&i@opLdtAs1PyB3UN!8ad;SdV@m* zlGRr6-AJ-bRw+iy^h6ScZsS&IS26@pAq)qUpMc7&3^5JW2^k`SjE}gFWMm%_+@f)| zGJV_Ll7mS>0wbmg5*(u-5skAmf`lxF!&;DF7431CZ7|N7o!X4E0A)syV0p_pTS*Uk z71^RT&gQ{5OII4=0WZyn2Rtz$9=P?+`E%+h1CNF^nr#-6g=B^yE$sA+eKxXw#Ah*= zYNnWYn=P!EHe2>e%PuKCQ#k1fFewQz_DmcP+&PA=DFO)&RSN-i1!3{|hBXo~&loJ9 zt5PrY;U<5d-SFJ_yCJCaclE&Xi?eUAMp)4_YqXxFCOt&fI6ul>tPyfB$r_;$ ztdv>S$o$N(#tdfY3<{riV1>>K@SDRA@i7pH(=I-cjh4BNX3!GEndD`zelQ!G#TG{# z|GmXU3x6G#F(AgXH{e<5Air2}91oYR|Ft-&R6N$-0)ht`XWvQ(BQVix_z&TC1mN-t z25!CC(>tPl!9T3Q@&2y(7;4@AY`_bURu|SWGY*hTjEY3>FcTq5IV$Z?8UcrRNB)`I zUC*p;@R!Ggs+l?O|H)ET{?gNM;!tMTq!0-L$GLb-1c8%k-S<1E*$K&mKGdQ2SC9)H zo9_n22`YbPQ5yu><=HNiigYV=%~pd|a6*z?M+gDBitn;8w2&M-As6sMql6RwZJTRN zXXOHQRH=x6?e}B~2{~)p1UwCP)mE{ev+?Q_V@M?%G`1`?73tN^$u1u@$iag zdUYZtwZZw#9m-`8{LP~dgxxY3qeWbG@~3(M3Ql)ob|BIMBu|n z89-hxDtmHo`B5qDJ7ubtJlEvIs6#VOQftWgaA-(MmKd(_;cUi9s-bHR5}N~gNmb$w z*lH8njt)5eV8m$Ejps~u>Bt!h!azKTeYcs`3!2B!=OgJTfg$w}>FE3-Q>h?%n|ru3 zer_>bdo#WvBQqon_me}@hgbz5^_r$&_} z2Up%uTko*OS0^i4Y#jHCV8`4!97kHL;G0Nw^l^D~}wCM_;wRKDv$ zi*ajM5CYKfB?8hH5dRXL>REMp+Rv$Sh+_c!Vx65$CDojrhX2M7XPljn{kgaaR+1O( z>`cYe^V^c+EE0nTBMDl4b91#VZepJMY8Ubixyhv;k1;h{+~noRO@2q*X%sKB#Z6qAn$Jz1{PeZvChvMt+~ntWX4~CnsnR`dkI8P!=R! zRj>#31f91($7R`6QzmNnoQt`^e_H1T->0cjoJT{Q3R24O;v1A1(tFF8L*9)qgGWZxWuXfj&0+Grdow^F=5`! zYPE`tvxJ9H+d{sRnKu_edh&}X$o-PhDAx>T7r(Nu$Zv#D0`#DrSq#5PFl=v?<9>T`G_mU&aFcvouG()TQ3 zP#bP5e%FvmPjx~e8O{{=M`)_M(>$RY0XyeP%=D8&A$(GSoH*I4w^L8OCDxK$<5&^0 zRM$0Ojw)wSfJZrau_Q&4W%On+1l24L`da`F9M>*er5B;oSJ$LwA{dBG*D^hG7lC^)&TlwNIJiPo+- zWsBEpl#Y@^oo+=WGE!;X42Vpx!`W1_56xjb4!hLFx-A z0S%E_a^#eNHZ-lgk&S&d0@@QxFD&ZMB>oMe{;urZzf9Dh8$WKYOlQ&^COrGAuFf?6 znrGjl{xCCG)Sr3wvAH0-SB{ulaM^m)UlOY5aa&P;N5ATFSajBxuL-w4F3id#h9s}3KdyL)sp?(Cs6X_f9(8@C7L8}4{!}7E5&qkFz@q+SNU^BD z%pw!?E0=wGZq%Oz7z`7S`m>M&i~2*$@TfoP4=d^~m46qE@u)uw^8pOfSx}0l9pb?( ziPuupA5j9rHR}*z^9KVHHtUHc@|4 zCGp9Js6TK^GnI}K0NGaVvZDT&8eVDHB}>@$s6Q-Bb<|%Nk0cd~Jx~rnrl`MgV&E(FDxkVXUrC54%F)E^^iMExlyqWUh2q7LWJ zMrKRMM_54G*i{z1;pwQqI+y?y6|!$S>QDI?MHKZ_`s6ZNO)f(@ho60fm4 zKe}Kh&JT?6RBBNr1(E?`Dvt>90zR@mc&G?!2Q#kKMWDPj-{6ew^H z-v=S?rg_C&@bwU7a1}9YTU@O?xy9ACxEc{jSIN~rB(7#LbpL5^wJ@Gpt`=@=akUuB zzQxtV1dXeG=Gt?$w>VdmyX^&YwLdOM&Te0Qh8Dw;-*hrV%WA>xvbvfZBxj?*#N=#M z)l`*IIP^xz*&d9|Q>bh6A{|yG&hl@=)a;zV$jhW=bK6q0Prf6DHK;B!Ras}9@7%EP zXNzi3N)Fmu?ZB7ZSOr`o$#`luV$gRF5ptATcNMAGmiiRawUDD4so6v^RLy0p=G*fa zh$O^7NZYdD1v(U)*x^lBnW$n!P6^T6O4Bh-kTk1C=5|{f*2HnD@QIDn3IJPG{XxSP<2?lg>0V2y4XHG*Y?YW6BE2i!%QLqps$rqUSVRKHm~a&{w`Zzhnd((n z!;*G2y2{M$F3_wpw?86&)y&-fc=JNH%G@R~m5^Wg7y&A0;fT`Ph+W`Uh+Qy{m>OYE zOr&OIuA~vJkX$iyo3cl_=4ofh+|J6-VHi?NX>$=rV)|CuyU<>WeluNEE4hCH>e9CT4 z1R?~4oXYab7MYqD2j0ly1~=uuSJf?$kjN1g{7!~DFB;5MldItTd8VQGWX^B5|X)hd{=gpeLdU9p_rH2O?@`?)BL)Gjd{=L zAidNYCQTV23tlYa6|>t*UZND2w0vc#$YBUz{bNQ5E4NAyTt?;kopdt zzC*5W3Ul=O1Keq^|KoC&JG~te6EsvWZOaO`<}8HlZvuGs=c}XbIvk*j7ACL#(0cmZ zkOLpD-TV6L3Ky9@&7~)SQyDTOfzR>cGnc5kjq=vkF<8iK61e;Ckwq%C7dJUkSzWs4 zNpCwQo%NOvu2=%zP&qMk*2~~mRT67B>)Yth!wz$BCvtD3i z@|zC()~fvLknX!wti%5Nz>PvkHm>QB@CKY7#Bd=Xp3o719n%qLuE}QM0)XXjPnFJm z^4V))TrS`GGZ4k^^rDz8IqO@S$^hSzFNlA-^!6?J!ZOOY2I?fA(5g#bYMRwntC z>XMxQt82|o*hFTFn{2ev&s4!Fq6)8{35S&j5#8j8E#2g0t($yM+~nK7vA9X-^Hp$@ z@WvK5+2ST_hIl1z^4!I1%}uo1^_Fh(;%g?JtoHBOs&eI#G%qjRI5w)w-`6(5gQ?FDLF=s;7z@xSg>JAQ6;`om%YhVWNMgu9v|g46&j~ZzA+K13XG#*lj7AFxkBiO zN!vHHygjtHVSXdP$vsfc>dcbJroFwxCL*!Aj`l3FqB@g-u>>$p18Nr76eya7955>K z)nUe1dg{Tbo!j7n=V-~fp4UsG$gfrGpUB*!NUMd9aPk8Ab>b7wR z1+A<$xD~WwXVj3nM=UGJbt>PaxKrDh+Fsc^&dbk<{i(>K!aGos%Xj~A<3d)2k7iZ) zXcodp?U<;-Y*qToK503A;gd`&*FxzlPY+ZlWF0b;s;a-K_SHUhf#bIbU-B$(39Udv z95ZYovqaV(ft;bgFfyx^R4nCoIrQ2tTNt9}_c8hQ8Z(kwGag0C9Q5vuO+Cr1&G4izuMxks!;UF zULqaQXpjyCVRMVh0}Vx=0`_~7V1@m^xB>PuNp(f!Fa&b#`j;DjRm3g+G)uhuGZ|2U4zjlV4c~K-j zsvX5uREdgZ+ObuqzGG`98lGv!*|C+6ujo(MQT&3!7JmEccgFeq%zrO!@!u`}OF>Db z3em1>&3}JU?Dka+{`*_a3ok$Z8~QuVe?zaYivNbD=JMar-WLDe;=eB`|9v)f{(Ir_ z{P*OgYr=p3pPyy1|IXF(->ta8DsJ%k$x=02ksdEEYwD-Py|iuYH&CQU=<|_ul%VBo zCT=ji0k_i|QLVBKU$^20vsL|**1xp_jb+oH_#0;)*KP-z_r54=>XD^%N3^C^I|dZm zF@R~i+8xcperB?#k|garnIb6f#g@cj4+m44duYd_0S{qT^;~+k%R(E*nuS@_lxI?| zlTpGWRW?4aXmdPX@#Je1TT8O9tVWJ%0pZAFHroToZ;=fmQxG9}nw;#Bp>>pK3vlj! zYcRFK`mGL{b_mPLe?aEjkr+luUb0kYUg1nRw6+5k&n2=LTJ5H4KQmLtC%>bYRD|A) zW+>p&@Uc?T5B^~F#kxxKd!Zhb+K%1FTx5pQjNELlw}3`RMyYUG)`A~z|<*7bO1^^Oor)=BmT%p+M>>t+E+F))sC^tsU|u06&tb{NojS` zNa~=){xCUYrQ**FS#4{0GL16$QQxs7#jb9J`2~z|F`me!Pp7K;_vjxC}VPzd4lv-Qs!r>`&&b1 z;tUO8rQ%vJak9rRud0@ol`#X^_AD{M!nzy4y5`oUN{k087zPWs3U-)qHXo2>Fwp_a zptfSL`C;3{-0%S~8wODwpXtGj2Ljo9DY(i;eWU|ypXfIk&7u1VD%;Fy4bC~Lc?E-`+l za6#MmWr}T2uzcE9qTDH~dsrQ{y8xaSZ_hk0DhYBxRDdt&yo)BiZ@-p^q`{M3l(umvK_7!^g(9H7xVSwl!T*O|5Z^ zsbd?t3iJE6HC-jX2lt2V9a6Cl9vomc<{)#kD(N+OPjlBAzwRUn1{3zHxoj1e=-Ok| z8^_^j94CaW1Ajrks=N8EGl7PB0)F#Q#cw<`WJPs1tNm%{d%fHC26Z=uz_JCiOJVb) zleIWkzy}z>K6_%+X25{S)CR6VfR~EDFeW75ixuAEC~JNDkoE+T9oifgG=Z1nP^N3F z7?u_@Qv8|iOJc9_l&u3jrOiL|)byKjps4nNxPr=nQVsM__Ja&#S=)Y#a%=Ai6?+*# zYF=2`Pev;a2>kXia)^(Leh#!s%+$`(6+*DFq4}Gvc14G3pQ5ko64fJpXKzNfi5j0X z6EHi86J$2{=I%n2n6r&pKxTo_~SyaQZ7Y|`f5wnOMr2BHjX?H9kGEn&DX zX7Fc{jWEhW_7Z)-{6ip)Z4uin0ow5rpz;C75}+M<%mv%9$xJK(+KFR@ZN?Iy1FLHi zZydp=rm`?~PFS_^rtrYTr>T-K9hHQM-o4opph8v{W;cS%#&O)~dZ! zLgi2YT$5i8Gv{WxDt~rhWPR0>>^U1#_3fFGpJHEHi}bOolfnijY_x4oJC#J^b-|d> z2%6&ZCd!`h!erSK~Am#VC%4LX$% z7G~OX(rJ6@F`KolQIPfZpx80nspwAX$FgFy2PlA8=fz1b=gwi!QDGDh{_VA3tK})0 z!8!l7g6XV_f3g?MGSjwgaU%ia!avP+-@hpCy2hq(s9WN$3*{M##4H!@Ld)~{-k+c8 zs`AYvU2Px61KKWSmpCw}aB%`$aOuKe$Td!^WIi}o4Q}*!xFPiEkVk* zqcpz*V623~z=wI}6*GKTPyAd;#Q&GpZ6lIoz_w)&!o5zz!{+OIbhQ_hz&6c7N#-hn zQ=jZr`p|7gm}&VGcS(B2IXK_KOCTBRH1lo+;NTMd?9!Mmxe|8%<=W4>~I07==b010m@BTh)%a8C?xe*o=j&jZ!hR3 ze&|Ks!WGC`BR0pnV~ja;$ECBtm=PFEaYg>9I0Bty)f}iwyz%27%0kh~T1lI?4U%G^ z@FQcX3O0$u3ARx%_y()|76w&c4miwYsD`)j4Sr>X;ddVzzFoMyI=X--E{?Nfsn0*cLxfiNkm<{|;`E_U*@tcxS~`B)3V*F^AHv@* zLlU#dd|kcdb9qR2(-f2(Gj_EoG7DVi?;fUad1aaMfG`6k-H=XC3nbb(*WtG!$|FL zV4Q0Smu%!#5Y}%UI;ycjRo3`Elh3Er-S%R_zdAO^E>4&Sl0`RCG(b+vf|}xT^6we8 z-sB`$AG>SOM>J|n2-5nO&B}^14qGBC$P=UX?5rt7 zHncuo86Xtr6F~MjKz2_6gt0dO!XyeHz-0;`{GI>_Gyal;1X~lZ7kLuo=M2A=mm}0_ zki_o3)+ARb0C>|ew;%HWQ4vr zklB-Dypx$&$ABGdOIXRoC?5CJST*2NV>NrgwutP>T-1R`BfwUdTsjWIlQhs}X)kwz zc%sh}*O{>d*$1QRF>XmNvNbf&Iz>>bO;%^S-iOzM)eGf?W%kM{&mznziZP()0=l=5 z^4zjZbfX(|JkuTRm3&4hoXKhHU4#u-O=q~QTKVh?;I^hyox|f6pF}~Bod8J$>v6O^ z!F$BSD0><#PgDTWsq zAlqh&u`L$}%*F3vFiXnEeuWFKaCvt@QaA>M`-Xe(qEW~R8+Op3PRO)PAbT6`gKghB$#KDS zXfv6X*`kczNC|?D2%i>#4BO0ttL2EjZ)~l4>n=`F6;>1e*fZ;FN&3$9q`1HaEi)qo z-ZD_CMUy}y0HP%ct$nZoV5FwodqiD#f&`9UOlva|IGb;74pM5W_>8K07Or$)4O;?O zO8_YPpK9O%I>69`*@zAle^ZRxnrX^PJ2shwXYs*EWdKD~r6uq(3yjYmQZO})!GSCD z*U~AXgVc#dJ?_PUReUJ7CCE~A3i*(uIu=Qe zFAheWmd7*c8ecRrA#vQs#jy?Bz;efbZxL%S3mp0YI-(Zek$7GBBhX0=DSnquPMF4- zE*ZihW46$xT<~0AHQbzOueQDlCZ~|xYYmSJ52e7%K4~2Tg-Uiffk-RM!|wP)__ zGZ7TxP0%$XuhXjo8f!*Dj`BVvzE~5dKBBDgf>9qMt0)K}G($FS)&lwCw)R-=AtY$4 z<%T7MhcO9zdF?%7yUB33n6MU3*i(9sA^z+q(3l|I1#Z2O^Xbffw0Yr4#BIWe0(I+88c|?ISSn=GZW>Yk5ZORR6bimKj3_93#;%NtnGpq3 zKipHAMQudMR;fSDYcivJ_&J2Z9l=UMRqFELr`O?+Zbs4XU)FCktDsBr``7fsVr5oA z5w#Sdrhx^UNHDPQZJS@OcRSa>VqKl_d;k`!ouAJ&urL6a+^IBhyALSVV!55S+G$tl z5lAvfVE`|_Y_=9l_~YL3%;!^9k1+aR^{^MjkP>}BbH(ytw>YGhu1hUB+@wM3B?>1p zd0<%yUkw~0Fsaurv9qp7z6D9Z)np{G@QRZ#g3C7?!8WhovcU<-?P&>+2_YT|H4# zYvKGM&hOLZs=E)Shmzqdswo&JH;!J(6|zuo9KC{*-8$LB$&EVMT_(ewI+&q7uSKO%XM}C@Agx5|4u(W!|AGxBtq^U z1q9VWJkEfyPY`v36%T?m(riIv>XpF9gq`A2AZR^RuQj7yT54s9aTz*CRERf46&k!u zDy?{#On!~5MtHPLe(mCKr7Nc8Sxq2cLYNc`p0N33R^y1vb9RMUjaP=R{I2Yyn!i^Z z1Y0?>e$ME~`njkhNPdC)#*1qWIHEW+w_j^Ge=j6j2l(6kUE(e1zOu*otCI~== zIN$&RkRe{#3<&P7A#i66fYo^bV5TNP0BEFk%maa2_vQ{aVtN3GgK1H6&0^KQOnWlp zseK17mN#aBWKm6uX&J~pW}F-Lord+zRuW8fL~)>2VoM;k*lYu47!Z=^Owmh4fBhUD6>rRCoxGR&Ak z#xI){0cVzMJE29h!h5GH15eM?|3YB{4@)amn7E(0nRxc`VGw?@*<0%@6PYgfWbs~; zNMu}k6oh&wErfZFXIkS| zRlRH(p=_1sTX8+Kj8L}9i}e+~^>|CWXtp@bp5pXQJIya}x~kLi$?*6+oS$vkzBQOB z_vh=a(Km64kmv^rf2TN@y@e}cEwW1rjK%w*2I=rsfmH*&h2o#dU@0Tz-X9ykVz~SD z7(_e21nA5nE!*Xf{TRB#?$^sT`vW&B(Ht6P+}Tz@XrP#Fz?78P1~9>@0VHTGA^JYN z;b4B2p$+%4_%%e9!5RH-0sLFChe^6FKE|XKKTY7ICJ_6y4h5EJ5n#D#TgFqd)*3nD z)&2S1#xUJ%ivgKOaM<&A^>FbCTsY-%R$m{V%6Uf{0L6tJ+<1Sxnj+1@$@ak<3QgOm z+M}I1KGc?T3(=@;(c$M3_x}TlVJ73H`aSLye_+8&J-jG5#0H~a>ohydaM1!ErQ-C; z6FKG7lx=(r~a8j-{O4s#U^ubz7auA!>w|!bBj{CTN31G+FtY;BfmhTQ@?AF?^3W zpW;t;W}3N^J`nIJBcF98Q&_(`Bb%F6ES%RqAyDRm zB40E~c~Jab*9?=WUgPZ`FVFQx*ICC$Fn`(6yEKMvv`t%WiP8fO21MCp$NBI&K8vmY zSGwct9Ckb-2=j~}d>sMw!Mr4Zwr!CE3?`HvfxN?T;O(e9w`6Z{=vw>;k3uGYeTPjm zATJ_hF_u~f1zE+|B36Lkb}fFXwF+No1G+^AU4a|L8{6(*Al8)m_P2-Ii{B=gwD=w- zZo`JUwk`4^Jyx9qnzKU+nB}Cg?Z{7lE|B$+X{UZ?$sf$(gMx;s*(z*eE|H_Q5{{+C zuW1dfp-{KsMPFUwu82(WtG2YbEQ57*8TbwN4sR$v$XyXeq;`&vv_`LFfM;aGq+5D_ zlvk8=q4=Sd?5TWA7$oasn0`M16rw=QgQtA5^`1T^qX4Z3vW@SEhd*<*hoe9~=YQ~$~A zAInjz(|2>qw#zHo1=P0hqkpX1@1>lLVd=B!_ff~=^uI)5f0cWOxciR@Hu%l@QhDhi z43)-G&13aHFoehcg~G7z#&nb&%zlImyKIv~9d4(KEMSP@J$6=bwyHB#Q%K}EGytiH z0z*5XKR5fQ6H!XFzVj;=?eY-cCmp_@&nyTtlUoZyMZ1JC{#XF~3Jhfqq@1AY( z38t^v;v3ZB4~G_qBNK4ZQcUkLHnGM~#2D`5wcc&X-TWGw_-ocMA{3J0D{Z5$L~P_O z-Z)l+kFlu5Fgg;@NF!03>`kVZ2~X6QG|)4~%4ZnqjR89Y8y~$&)c*Y{P12G!G3*zA zxJ)Dcns;C(gW`6IKOqJY)hH_|1;oPO6RkIu`%Es;?PKCpC@T=6r1&Yq7mBxu%|Yml zUGVB)M98Da8ry%B58(j>=ZdGcqqx25$Hv3qt6mS6So$U5C2aYdoGpJ7*vaCIhB6e^ zR{4AzK*I?xd)!I{&mm#e~ufi^24>zQ9f%|q5_6{QC#mK1dbN2cqTj!f>Fj=XZ z>jA8vJ46k?as~i5sGgm24doGbs2ad8&nQAZPj92iBpELWVDHN0fh%v$C*tSDw~Y z(V+5?>g?pNa{rrsT?Ws0Xy}58OXcYg(cX7}-)BF_$=RymC#xnN{J&`;_{B{Mg~7E1 zy|1Q2GMChEWNTeJ)e%?P#W2bX$KXo;I)%hT?w()9c)d_Qzl=?AxE!Pt6*XgW{*CDo zs-?q^FZUNAzPkhih43m6l;9a-T(5;dbK%l5O%VUNl0COPUItqTIS|>rq$A$Yi-bcE zSnwXgNVW5xg_Ww0yl}>>j~0o_VlLjJFKA=F1p-y+HxaGRG3GKsYISN+>GW^u<85Vh0J6EV35fTngpZsA&p|4ND_B)A);X1M8#iAAu8kK zkPJWYmEtLeQyimj+%`q?Oq%BLGcCYtSOT*~m};3sRou=O!Im}C90~S5iWvFkGJR9I z?TtWh(QE!#zwD{Y_e;n;(Jz#Ux6?Oe_EmjLecG*q+ZK!e9F+UuuY4>i_ZwV(BhNaX zUlWQNnGjt5n_u9Gh2mt9tEWRQ`}%kz7q=njWwS6}UinTfn+;2K#5 zPcLyse5J*x^+pgAQC!6V>ys&9vH*6)v0LUys#R`@G2bpB_-2Jc3U~*`mKi3Fn<@y) zmOC#imWOO7!afj~GquKBw<`-hNs^Tk;hHfr=mSy% zIV1SiIiY2FVyy9(K|dPLkOr&Y2E<$AeGwjoOId>~fnU)it=Kd^v5+m^-;ZfhV7LOg za|`6o6u<-QJ%9%>T@cTUA7X8Kglp$ea_Fo4x2<>p(>>53?k*|*gF>EC#+kaZdxORInuH=aA& zc}Qxh!)%}|FN81$PtfWz3IT{p@thN;KmuZVXp zHukKtpkvM!OK_|hfoGTRh3hafEyHt6kz}6U%a1}m#d&hef4v? zI_4_KP+jGxtQ7+fo!O$}Cpq{WOBpGgHQ z5fZ^ZTOFoQyqy)v_{kFD#32P>!M0uZ#7tY6%i}B=nPSl>beC~NGi$Aj~ z+j;-)NYzltJ^54VDYl0(3aV4JVIvu&YvF+M7ML*z!!9c{6KRFvR2K_duh3WGR;r7# zYoz5Rh?i!VWAT4>xB%QcQDNY|~%7qjqh~v2wD!l(II|;lOCb zTj{$qQK^5B9?uBbo6RBvkrHU_UUln=v#DHOGn?TNk{vK zDcyO*x`R@Y@^e2*g^nl-r*&Kjt`L+3bij1@ZNXE9vT;nmzcqNvOeai--{KB4RE&GL zxlcsU+$k#@zFDLVkyMIdIvk4~A_TmKL2$e-cpjjekE>lM=2;zEw=h_a=#d9Fpaa3w z2vC6#J)PEVogT+k6!XkACh=S74y7Cd~fYlL%KlW=yWz(m67vLOVj&!ZxoH;Qnw zGUEn<(Ku)P-HXVbBiLId`CpH5YZ&ww52&O;iRZEI3iiahqdt+{e z#Mmg#fQbyL6n7pUaKWzp=;zKR#nIx`NwS<}X`-0^bd)U80W(X=whio_(o;Wcx0F2a1;dB_`SuKD3v^v%EuCvj~qV+t9K3t@P%$()U)5e%@L! zC2N0n)4^=WI1U^hQ{0(mF=>jOj39UmxrCXyY#J6rsB!4meH|5MBr$U+H4qIW$UP=s|m`Qs`87Pn!L_L%egyF2b{odkl zSg*1>>vPfnfFy(j!*ETxO~wlhmgXhgIDF~VdmU~~xd%AA+yhGor%_E1|EbZcULO#z z=Yh;;P#|x)$kYo{q_xX;eTqIRI<%8nk?;K{{8M@PJGx4MLHVxc)n|2e2fXzi@wuy15hCuyGTu)o*@8H@8pTM6>XlAD?sc zRJ`fCWlz3&Cf@YjvKu!`-@%i9VIZvm@SacF=TjMC>#M$_4$q!wUiF<3xcZ*vRWCEm z)pL+?WH$%5SDEJO`Q}xxW69ME&8uF)lB>@)uX^P$uD-YVHLuLV)rOam@F|#n8v9^hq}^Yi+_$TFVQfh zG%sH0r;D<*TwJz<6bXhct4l?Xu$)98m%d>y?8<6r88DJ+Stv3aqOX(H+>$^rGW+Ah z-3Y`5md%2g0EMm9D`O*Qmo@9@NKM8%%Yn2HI4T?fJ~-;}2*PNhb*JEk_PoqwC`;p? z1?x`)M4~>bm*|{zr2h4x6cv(=m7?-MbfWXme|6n5lGDL9s02AfKrc*ccnTcitU58m34(F+iXDj zhulWFlv_A{3)(pSEp!gxLX>74-ArGhaCK)2?~HVH#c_U;`nx(P%S0CE?UYctVeXiW)f<;a#$3+CxagAAvgb z3ouM~76#&$3Pp9bMSfyqL5anpcB+#*?x?IfLS6&z!5J3Z`ci64ib?ptXLF??qKrg zOG=B?YUU-KNS0z*8|Q?MK+S9zoEquEEN{vubjdVOOjVU#&BYa?8fej)BUBdnGi*OE z{_EnuLASk&pVoA@sezcQp1>vh@`B>u`a|WEa!iDJxX{MYeXQ)h}K$prtu(BTtwnn2121v zZ6rvukRF>pGa2= zPLNY>r%WY7{=F%rWJgh3MI)HWxvIr99#3Zs=?Q8vJ@Ixt zH-FSeD2L!;Q{Jbrdi)YHs)(>HsQ*TE;g?np5UU1AJwIt^>cdtU4+4E#vJZ4%YKPV> z8(#6(s^GvEdl+bs=yPa${#`5pvTnPsWj)a}aH)W`g*)-dns}?@>SKf0$bo8#tqLMp zc|c}CRgrM!N!hj;0`~;5;QQ2c^?3Yiv`#Z^VN(|Yr!RIQN>|?3qGN#wrn_#3&75}1a|B+3Yrk8tCiQ+Z-b|(#uH$JfU?2?plG&$6e^$L#E`F8r(U}R6;ORhn}&Tr zLT<@FdI_`W;IOnd{I}q%BG?ymur;C5RKP z@5HeQ8`SLwq)1N9xoifFId=xLsW}g8W@^qMz2Jl9)VmCGuyI(I4JxV(SOG{Y20%*2 z(!${YcDW}79-~rzv#U#x6Q%YAE;@g6m_)`RA`Sv{P{v@^T9UT4)6Fuf=hde4Qtnrz zOsn9iv2{HuFRyq9hG*(Ls5=LSBO*|IX2rnDiE7yy6EU5-@01=Yw+^*e z8>)~aEs#GXWrw~QVO;OZ0w!H=oQPTzMTS_+;rB!V5h%?rCHU-Rs%Vn4U4DiF>9J`X z6qZIaplzAI868Sl%GgR=8fErB1#Q*p*j7IGz`C?#eKiDz@e})=e$oj%Ay^Ro=f&z# z?@9}5n~NCB>IC=Z(DTYP1)CbNg1~N^MjVis4ww0lBA4M7NqmVJ}%o9M1d#o1^h;8Vp&QCq4USFb($(zwut-X#EtMHqpmH{4C#Gy;nXh#3;H@eR!dK zt1pxl870ix3JmY_t5zJU_#S$OkX5_^c&}L$kg9EfPc46*%xsFB2E0_(^>DfRL6^40 zAHvRnyP^W1qkT^G5GsFITk$E+2dk&8fT7~6z2GQI3usE1l+^FoAY}u498dsR88Fi& zSM5AYl6G}swGtzN_=hzK(A_NCqtuaGQPhHC4K98_jYMk_FbA^5r%~+e>oO+^>LXgv zQ;IYL@l_TK;YKC?z<=;r4a>lUnO_E`&$Y)HZyKNLj7=a+#-`I}vM1@Dti*_VpN~)0 zt~3SIIm|_)&7wpXZc@+9qQreUHvnn|DIElI2uUHjBa39rjB*y;0rj%z4!TWr2LrR{ z4wQ%x-C@om6BcR72c!jKBH&m{Y}~Oz0j@JMP_7NelyYT!f|1fQSwDJG#!#__pr;k3 z>YgxE?4$ufg$P>LdT{5A0Wg6c&@iwrE@{IjgFUhj_5(F)Vty_Yxx{oe1iH!|4m=FI zG9=G(of(AEV|@7v%ui4jxjSssPJeKJaX zVm)O{Ds3U=eXQf6SP;mVa<_qFmf`EmIa~BWSp@Ep29YcMh3cUEpWSgIP7k)$QwE3F!>2Xlta?BdX5FSg zp-3qePMh-^p7hT8{Hklf4dx|`YfPbJ=f)HwJBKNR-#4a^xdYakNuNSGXbKwIL6}0} z3DT4)1=^fbBqYfDweVc41Mzk{AmkfS~S}af=*~L>PufZmgpIJA5y5A zi%Tfdu)+|Lcfh;6fVexBL{3zaOJ7#tk$|QlNK@HkC@D0QaNQMgGH%U}SP_&^KNzOE zL6UUnhMys0h!CmDcCg4SI5UzkV2lttcBTu_F!=G~qsrUh_(&I|amMtBLo1Z3e6a4T%6wY15RIY=0 zk6<{vM#dS7pz$N2a#2CX#v(D#Lc)MZZk5Xs0|uhJRt6SyA1+Xnh*2ZveE*GOH2A}) z0x}bCv!9%O?~PhA=IGkw^DG8rdoZblz-cJOCoKz1@-5gUAd!zJaSEIg5Sd&-7&!zu zGQgOL0N{{11uO|D0l5@bVUkY#t=K+9zagZDX}Nif6vHfno(wwC+z}a|5lfO3+(s> z2>giUqU02bZZwukkKmT(g@f87eWLhoo}(Fwc|hV;o+V8z@>T1JZp+NVZFD(xLH2(1 zh@SL_?cBk+j^bDHh~R7%5E(+GYYWs|Kw*(tp?vBA*CQkgM*L_2Hera60`7s_9rTDS zXb&nI<{CxM^$4Ef>yUFo;sE^sb)q-iZh8cn0TRDx9|Vee1d9P8Ps341xQX8Hmiuo!8UvY;teE`8K6#}7^E8?oOAc{1pLWBzL zpq3hz3W1szREV56O@&y*s%k^AP`q3!gzm}60P%ch$9@IR;G#T(@Y=8rBs0&d5Zn(c zgvr!}>k!Qn#4f^)^Qcc41vmS;S@|()LmMz^>vq~S`R5Un*S*Yyd4 z(w%BDVT@YKnF0hFtfs5YY-k+`WUNg$J}_98U8#x{B6{swpAgj*wP%lynK?}I)gcW7 zcEEamee^C*U2mJ|UWY*cXvjmgy7jZG}Uj zOmybj?i+!8$8SJ^XvLtp2?b)?3sxY^9tM^<)f@nFs_u(O4P1f1E&_ezF5@Lm55{f^ zgeCA&7OyJ>Le~0d%G#6ykp~5WqbU%1R3P%8KyYK80+CCBIQrwPY0UJQ6bK+0_J5PS z5iE_HRUmRvWh1(hp_L1Opcxbh5j*(>gWSu{L~h7g1;XXA_^!>bzokq7Kp=*YklVoZ97?zK^Itz^5E!0wAA8j2>(8iblL|z`yW5yTH@+*?7?G(l zh0L9%kVWQG$NK$N`Y8#1%fCi^<|-< zKxENM-&kBik%j^Rg9!>m*A)m%hf&6}U0P}dLM6S}Jy+5&80OY_F>axovl8773Pi6` zApDG5B1CfZ1_c6ZrL0*4lia|!ISPbD@1a1Dm~ILL>_`fP8R2!9qd+_lTO6j~oGTEP zCp)7+taV`?yU-C}49{cVb_L>m$5;xQgDVh7OvCgrDtJ?YNa(V}*UDr+p+K0)p1g(4 zn(X_uW(ov4?Jgm<4CY{+L{kfpBn8;CVz)PgMnl3%0TvxM1;S)q$(G&2*hj$o;UXFX z^yo14v{-n*y>Y_K93Sv+mUET58a_-z?FC=lPN zhuLQ=bUT=YeF@tMPZ&6*BhUl0+as$dXtWFgSR4MS6}-0+4LD=R5CO?FhnqNS znfpPk5{!VdFhv|luQxk1VvCI<$E5F^)Ljn%LpCG60x#w(V|@&jVIjI640hlt?E_h+ zc0rp`N{_nw zCbYpjgiqnHxhW1I@f}JQ(Ol4tysP$HW&}zg1`ABFh`CyQzhmx*s94OpBcft~cxa%Y zW7CSorAo1w2s!UmA?KB1VZI3vdN>Te38M~RCfKA2)^eKkO^~8?1;rw(6pIvWH{V1S zeG{;A`6l>^DHbJcP0t8-0SKxx_lhqN5yy9R!H^VNpl*Q6heu!%0H!>-x5C^RN6=&? z7V>11$@}(^pz{XTM$k*ZU;8F{i4-DtZKU=Ay3rroh!b?*e@7prm*}49B|WlFJz>Zr z7W>jm5KH1JV}Z@;B|-Uz78*ITm_^uMBVjb?B_W_dJ}Vf)gkHi7P3R@SkE9qtqF|dz zy+jJV>m@9o*0?{Zmxx%5Rm$2HSJX@Nq>PkO^QBe>y+jHKLfz)|5{rN*%zRQWu||Vl zGCYiapET4FCH|Ge67m|f5iNR6J=zF=jTE^y5|qEqX(J!so$a{4ea)kX5I-8xL-QOO z%+!QF0!74CB&opk5gcrCXke=|!;84Y*CcxA{8!dzqlfyg2#Z}{OQPcn*+lgH`bQ6W zER1X<7QvvsM#~ew377bUZ7iWaf-W#zIW!P)kvm-(wRumEs1nRsAzvqIRdsR53s(L)O! zJ+x3ME=J;9?!zW!oz<%3EJP2bacLTVy+ZWRa?_V#s>rrURm3zC^JNg9|G=a#L)JR8 zXp6nL4x+Lv{3_gzF1|>Bj=Gjv^ia>jy0aO(5&L2SllK`!JH;a!l*}W%g9W@aZ zLe%qspT2T2CFmfZRS%P{>3X_fB604J8Qkq*yg%+p;6ouG2|Y%RgzHfo8v#ikrB837 z@LvZY;c%EM{Kvi%L_|lGHmXPl>wCxgu72o}1uGF2cvuOi3HrdUL)mDD%0$}3eLa9D z)}(&cDS9m-N+JY?J?8SsT_sqMMi}Fe6ed25`hgLG7_NjJ47dp{K_w8?r?D$VDB%~a z+zXt~jZorx!@cm5L@1p%lLcRwe9EeOF%e2#Ur8H8D7}pUCcY8e3tfrvSe$}{DLybO z#&bWo7rsUjO5I7xT_W*xgc8Yef)dj%+A|ZOv`|a#b%fH6xgLcOq4asVu?_a-QLskM zo05aYQ?*_@8zL;8ZP2-Y2Imikx6r-&op{tg1RbFB*9d|20RG^rb8j(px zc&Uozkx8gZKu4KZmn<^LG7=#DqP8(INrtK_4S*NK*0K2nLEgoDOT3C{06i9IbS${d zjL4)bBwfA8gsX?1cM0Ac3oH&xxT@^mblM`5ViFYPqCn?~031m-p5r9_jxa;Fl8aVE z#{&EqsNh)0gN(w@1k2kT$ATH2t9O01+FLqJ2t26XsT~U;G6{A7mXR+ulXE0N9=C&x z_ecblV*!QMSdvF3A@49)9?;BUFqdpwITqM&q&LEq&DDIuu@C`MWrs~V7LX@|ClDYx z7Sh_WV1UK3P-lk)1-TiSgnMDw8KwCu$QWQU%|3#bE+OdF`f|EjI%x65r8wpfl)@}Nmkx7$JdS`up>&T?3WG+P}HKs5+7BJRM zOrgL^N0>>ULOdVQu@I&(*Tgm)3udDAOoUo6uOpMLyAGK;vbKB}vDKO_Sy4g_SPK!BM|6_U? zNjb*2hoeN$dECP``tyHT$0GsP7IKy+#^1RVTuEmughybSvqUojP~|o07RR9Jo@I6w zVXyDlp6zn>asu|!cJ|UPk8UGUs*z=O6gw*ay+t@0vdoTev%psoArPJ{v!j$_pI)p@m+BEHfe%^*xw6vU6}>^URoF zr$0&r>zLN7C&)5;^axXf`#Prel4YiaV1w64EibvY6JgO*mf19?0ZK+tr#@_E5Mw+0 zeC-ddTl~Q`@wdt{gT&0uGUNJmmKm2!b@Myk!$~_4=((YtNJ_K&tzm>x>de&bBnqi# z)=p&bdq*(QN`VAKQ(0yJ!<=f9Y?pO84U73Ojdmgf&|U`+ye7ha=-fprkhO?fSv*Gg zs|@Vbo@-NCX256|5SJ`7)@bpkM(hVns)0K5yRXG1AK|IF_yy5sfU?2?eAR4$ua;$| zCYxDi{9cg;O+q3NQF1dA!WsTx>F6Oc*0an$tH{~yik!8CvL^9%qssuVa-g_qqirnAf-v$dV*%2{R-%(Zxjp)FrAQPmeLKe7P+j=2RdOVl9zO>5JHc6m4>JA zN-<-!Wa?QwFl#5WRDT&NqMgX>7nXu4`^8|4snEpa!{y+AM$+{xGc3&9yODUyKZEed zG9)_@QjhFJ$QCckPNb?zCy?gldWHM3oxKi&5wYG3eN&okBO@-Vu%S!7~ia1-vj`Bld{V>@7*7s%#G=s8$ zlBhD39pmOfodRoli_aw#*AF;Hp#J{s4dRS=i}man+oNiyEA5QrH}UQr!|jcyRRI$- zh{%=oW@qu=(f)rQ3?x6uRSLBT4vvC30N|H7O{0axoTmL?3b9a*XdyvT376d#%Tlw~ zmq5pl7y>y!fJG2QEbZLGHy$9+-1BcvY(D>HOV363QUKkA72aZpgsd(sP@llE>F=>A5dJ&pm^Z7?GFHy#PJ;`MEj>3>Q`ypUrPuy_)^lO~TY4^Gw6X|PHtlPx=lC2OCfJ&X=oi;=GmTlUKv@CI6=*icq_F7u)nq~~hwu{WBQB@0fL>#EKKF+P{8GqKc+&9pibR#>90 zGeLM{u({9HnUH&QqdF7Jrve-CQ_AXn^>rq+2z$f9rt3`1JnzOt_;Lo^pm{HFIz%O-!+yxL&I?Fr824 zObc~qLnz#eJa(QYmYTbZ5J36Yc$qY@|4a{CnizPU9v;bqM7arNx3D$)XnRZ^OM$d} zB=%~V@Sc1YN|sT-Jl8@Th{dc`6yo7%yH}N+u%|WPn|SE}-`9qPkn!R+3PA8A#S1|@ ztqCF^w6$KjP7ekE;uL$JsRIHc-vTo1jhGc5$W&-cAAG-XR_S6u7?X<|Vbb#b+F24K zjQX8ZtxmlvFNF9~Wx{&C8YzVUP1qv;_kb}F8cE97McgI?6le=Iw%fr^5Kc3U^;(&H z+CXmgFZhOeB2?XznW-M8G5Y%I#LC)*@KFMY7>uGJVpdovN>LTJBXt(6RX;*;J9{N| zY%M$NV_D0rZ-Y`1D0B!&$)hnSUZXGyWj@}2M=U_m(w(mREc%-N=-5y^NL9nm$Wn|D zC6q0=JaP{$ZQJWY>4$0qRk_wIKoPelsq)17j8bypkh$f2ZUG9eHzGt|k^&S@8@1x= z6A_}I$|eg?ut|c7OqicAyKDi9wTS{0s&IF;1t>O7^va{xeKyex5Kkm}F*Hl`x^e*u zqEcOgh1mE)m?=OJ3fjrJ5C0BvY_R|Z_2TMq(YgS|{DO9&0L9-8-<*?q$;lAPJHr(C4G^1 zELzUcE}!%@5!mtKN=DDZGzRm)o-d#DWtGUi3?(cPz0)EV7RRmP-xA#8{}kdgu~S1< zuC-p1s#LSW02Jd+epyT6fmptjS6uxt(svn4-UEY#Go#|D(mvcB04WX>=1dr|iSFuU zq5{PB zszef(xF^eE2W?M+s-n^ApdRd!l&@95lCWX~(H1%}aziHqmiTQrL$eB4N+ow~HnGi6 z?aGO50Ss4N7CXFmBtD3=XbLbnNtZI;~xUh;9IE6HdKz*HY3OQqf0 z{D&^pzg+shj3M{Ml*P7^e(=mn)v`K!t^<%CZJkwkj|D8zapi(>Xq3fn1}wQU-~me} zcNb0NNkTnAG!r#8EYHmXmSz*%S|(AmLM>p4)y66zI>-#UOrcKL#!3fEY$ISviPp`s z*xQOfMd()6m&#%@_t&B{} zbgAZA{^ChhB^hc{M^u&dW-6RViH(*rC_qqE7NDw2m8vp``UyKy#8Ykm?W)RRrK+f6 zp&?#SRjP++EF`?C^x<_=rMIK1l8E+`p$6GKtkpiy@0R+}tiv5UHm#~GlnNTFRTY4E zDl5C1&V}MNi}aOl+pPS6a^@ghQk|eV|9aNR5!IS5qn@k%hSma%P56;|4S%c3a7$|u)4>pdeeyLET8rhotx0Qn zNegj*W_Px`-uDLb?g?+~oHMSJ7$&}{#AriG1heM8HQK*b)G9jW8NJaXhK#IZ=Afc3sN zMi_nH8wHS$ZQq+20pD`6T)?+5LzD3AEL5%_jYa~#vfcRNWJbb_fWLi4z-MRPkda^_ zCK(RgRIb>`<8j{`l?EUOh=cZfNpW&nf>v0=`{&gV7cKkd}Zs5my5q0Ob4Uk?-5Ze^vZbOQGbx z5*egY^9_HQFn@Lce;vKVhAl0`04C$0b6&fP_@9S(R3CySc%* zFyt{hU!G_dsl(=>F)t0Qq!24{@FpXhzffme0dW^zgRK_zz@3qQ1D${}-#(g)g;tKvG`&jxjBUJL~CJ;QCo z-KG!>WXv(u>3V@HQ`Z{b$>gh&2oze+vD+R<@?qS;pd+Cq5d70sRmY>bA&^*&KFo0y=m>&}ZU znw?G7wphS|6L;OoCU)J)ri*4*wJoxZie?i`q&O-(2WUUgxn|L9m^Yx33x3R9pF4|m znkkx%#Y8J6JX6=Un3}>yG?b>0T;ec=h%k*Q6u#0CVJ}@{vRngFG*p;E3v+8kLz%UK zWa7B>rWKv5bAICO%SS_j6B6^Swndk8PFA`FpsY={%PRoxN4aMyc4MijxAd%ASXS^vwq>>h)Xm+S=A(3cb!V-m! zZM5r7TQ{w`g%!;ncr?_YGSTabrYV31qS+UEqE?YE|gf1n?3S=hf z%*#NwYSOU5>0Ni2Pf7o#YRaU}FH;GuXtsEh_kHiNtfSp}k-= zv{f={VPe;vO+7ym4W*$JpB6~KcqKc#B~5JGydh5BtePB}E1UQ z9_kIFlgN+2$8YDB_Ur_@XeFX9oCKXjYKpWhbdm>yYk{e+_6}WS-3Tv)3R?P$Q6r&r zq{Wy)4Z@k(4JATX+J=M}glbSU%F$L#OLqBj<9&XHCRFgGQWHdeDvgAqz2>x_2ec-A zgmQkosIKl*g&Zj;#c)@>r;h+V+$qSXtR~v3z9N;f`60O*o8PiRj*?)a_riAnL5*Y1 z>b*u&FV#nuw{@PX(xyCv(*kgW6#9t4*7Ol%SFj9bp1MZTD)4Z~XuMFzWO+7vZWI*C z)`-bc@&8H(G2$3CKPX=Spj0a`p>MB48_S0`9g{TxYonus^SO==u5Z%OF}*1eVv?Nv zSKe3jMQJC;I-Al?RJ&~Bc&aKW;L7n-tfh_OsmxWWZ7W?>$>*plebFB+E-#$TDwNnD zQh)@|h^K;eu=eK0Q|+3os?czXdmU9pCLKtPmEW^QLp&A1Lv=XSJG=9B6=b+Noa!>V z%I0clKX3!78m646^j`Z~g;SwYHEL*k^&=LU8PlYm;F*Q&x_aW3lQ0sY_VT;FjPoU)yl1^P38%dV=YYbc1*$*=`>P)}+;c0t+YV zKk<9TBloTxP8Gm#)!|g(y(4MuZ9y!nL&cDEBr&LH%`bC|*R|o%*%*nWEQYtK zaH=W1-h{UWjV6RP`Ua?`*~1bfO!jBPsb;WU(ncekidcn4{ijXU2}kn_;Z#=q27V$b zrV6LxcBm6xhjK|RtA8Q;iU=bLZcryYM07yOo8A_QY{+G`x5bhO-PZEoK9fh=w);6)f{NBeI41Pp(Z|O*qx%>V%^}; zA(~a5!+%Dw#$n7FOi`+9v)^v_$OmR_4)U6;Blaiv35GG2! zaIp~r#5fE_vX>}a>ah+^vf}l)Q!Khk%Y%q1LI)=6gA@3qEq}N*fRZzv3Zep5gSh1n z-W2RpXf7QA0sD)9Aa9EA63PYgH>41kXCHu<#w~wnMsgI(rr}K?mJfmc4em`*(Qo+@ z2+Rm_b4w~hXHs`T^cG%L-W1bjs-ocns{%VJtzyEPA{$7hy9~5_kX8g;V0f=adD$lT z%DpuR=^y6uut{$!9!*Ecw&(~ki7xs*!l=fJvai@BTRJS}wSXANLi^9{+HL8GHEMd2#Jgl(L_@C{lan7oMcctjzvsNHr z^pwoY8?RLnBC%lWQ~_69s&D7hf=$ON;FYJO^8!63kb=u?FDlBV?M2@)$5T>O0cVuv zDd`{sjS;yi4LL1xOVR8oT_6@EjAsAf?Z9GfW^mceCp;zO&ql9Doi~03PYKrc_)eWS zKH(`r+=t4}dP-nW?v3codP>6fq9&l2?J+SkJAW+_^n2wgq4%EcFo6S8o)X;QA#c2epgb0Vs5~VW zXk=BuJH=ytf^khMl-VCid?IgL4h)6aA~bHCH!f_KUJ*PcEw@Mdc0J%5bgcH2@Pj(w z*pICacw0yFlyvzJ^+|sQI>;ebU&TSJ2IMI@tL;TIa1I$RdP=y#N~k@^5*8)qSq#Wo z6B9Wt&-nJD=38d-6(q=O;wh2XbvaLo#mXSdR-Td|*;@Qxh*;Nl_(=@4`QYz|CiF$!_L7DIwB7_+n3jiS!Sa8)_gv z6G1{Lynx_Vo<(jQDS!kCS#FX_SvLp?m}7kt&7&vH1D!@b6RUxO$^x9tT%oPjl=LJ} zOBvxYMBnmg(`RCcL0tjB1`-)HkGM9*Vh?y9CJJG(@9(2{U5qU)jcd50JI?H_f<-8(jBM1RTs$@R4MuS%b zZR965&_*bouqkb%tDvoJNzmH9WZPo-zF)>v`|ZWsie$0;4V@pb^ZzN$?ymuo88s_S zFJ&qAMkxe@@(_b@?i<}=>%J{f+8U6?XjFdX-_jC;DE_YR`^SQqdZAT(CRNymXqpJ! z;`;V%$<>@w&Fzjz>pZ3{kD*7sgV_)&_dxi`J|d5IvsM3xd@vMwZk3PY#_AUD%ca$J zi@Qk6x{KqxcxiwBIJqGE^C!DU@02poDo?W6#Q+^j;>XFb(S>ir0h4K!@Ar)^wA`%+ zJaaIo3#$0PsTeanM-Vx4;=~xUHj#;=9svEC=fq!netmW$)Ct2U1Fbi>FeM5lLx@-V zEzDLh<+!luqiUbeeXtyq@FDcktZ&#S-ru#Dx|!I5iRoWOM8r;}r#5dOO1SSu*-tHST&o=7sq(k zaB#FSs*FW2ZkORkM8}*6lN+I042x}qYGxiJ4|}rC7pKil<%_rF;Lx^8B2eLE^)Lj> zW6(t99@2C+GD+BnwbHIkenkq!_3?8oK~V#grL~Vi zgyc^ENs;kb>BT2tkL9zv@u?Q{rF@>#a=$SjiP;i*v*M9naoV=5Dt@_FoDl&%6VwFE z{@hh!qq?|I{2#sYaTuTkZUNK`)$rn#Y;W-a1oJ~{>!0}RqaVr+=E!ZdjfQc`AJ5AN zQ^}(wH(*>mky5>mw|1#z5hR$Hkme^ySrM<1NuC(XAtml~pOzWWq2y3fe4KMJEem== zt>lLB@K*T#+E0J_oxj;Sn6I${%hTz-@W7DK%wy)vIGCT(y>mesfK^ze9hc~;r;W(7 zFvgBpON4CNzKl_S*t{OJ`2%su|;b)ky? z@v}IAz%`z+*q<&-s8hU8pgLnxb6A#Oi^C4x}0-ui~!7yVo)Cw9x2H?ab;dM&}2b|;{cv`R+5OE8jN3X@`x zU}#|-k#&E5Hb^j;ZP&F!5)9MV+`mJvCYlP{cPMAwJ{h*^5+aOJm+A&Ad31hh;DB57 zjAe-+5LVbWZf}$Ex6M;#{4Eu5w@tBrBdH&2dDPaAQK4Y&PLTIUDUG9_+m4XO%=18` z)jRz}8+M&0M$K16y=B)=WHWnq>6x!)_m-E|qEWaotIY9CJ4^*zxW>XBB_hh)joTnX zQ$a6iM{NL=Py_Lp^Ywb~!=rNH(ZMy2wrCl7c5m^M{9MUCoI*1=o+d1PxFi}@8;X5v zDBV4ij)CuEY6wH_*~x}JA2tEwp-?zTCS7maNZ4t_Wj-w+C*{LE9 zSpu1?8veLHs5AoWp#YSWXX*Q01MTi8gSqYBH3Jqzuy$@m; z$c*URlAX|~PpUE>M@C^~M-8AR6r-Zc58a2@aQ``oUD~V$)DNi^9Iw-)A-#4&H6S=i z!o!&NQ+*TGtTtpS!T3ToAQWGbHx8j1P+!$7tQru{a#Kdoo)__vMUodsEl8=ovKIur za1?5wNEUrq+W#e8*d8vlN-Esh9+Ski=nQh(Qm9KjGN?w~Ap4}%4GN#+F|LKWL0II7 zkx?f^1?$D5sKnD&*MpOP73}C~OS5e_m})`|Y+>`UmNp|J<0p%~*9K%|Vq280Fc+1O z6$jI}ACR0mD4uK}prLUUbcdLU!)t4&`mcWiAMOIu0~;gBVF35CyQI(GepMC_Za=c}RUnYEU=Z ziwXbAI-_BUi><}-i7&4EMv!H)II{U`%myv9%!{AJ?45tlaPdt}pY*Z2qBhi81X^(e z(p(W`!(6ThBocX#+N5YmZV}8s%-95TNUP1o8I6^t$6vrf{JC_QnWE4`)?CD$G@hPxf{tWL1z$b!R@VxU z2BF0Ivlp$vC_=A1ubZE0fq+Hv&!Cb6EGT12rEV`D?2@cq{ElTi$^uOc5K-T^!;3lG zN+^>nC-j9jz$<8gV44!MbTdEXVqo2~(+wuUUhxOqDQ@Mu=|i1E7`tz! z_d5^f2RJZeD|EeeTQcOAC8#s5eZ2QEbiv}MWpI{Xj{}^55E%i6ewYZV+#njii}%Qg z*r&{`roK~NVzA{dm&kVjN2FgtzOqeWSySvlE!x>+N}4p$j*9g>9(QIdB>iTpj^cBJ z^h?Bmns_`&znO$hdXq8dNWXvb<9z))T;M&ebJqScy z%y$UCnD3(S+cM#IV=&*1K%`xCO;>FSzoxDFKDDR^weaiGtqH$u$Sbjd9TQ#nU8W#T zog*5S$#)AAetTLeW&s?PI2KV^J^rC7{Vocpn=-HzUa|GI(|DvNXt1b}XwBEAO_JN4 zbXEw!dgYT4o8yO~0K9=)sG*Y20$xA zrX`N*9DkScDE~f}N;@VJDD7jPU?|AH=e|JCz5-{RB`iGA)8|e8eO3)I&S%CO`a3x6 z&YV}S((&1JxOHE4|Djt51%4`r zoz!t1(t(bk{E6}D_}_y%!bD70?-sj~bYUG4KbiK*i{MarTe=Ez+-%j>8S;?TJGFfW z@u%t@!Vy`kI-~cq74oG?-&g}U3-6C>H#S7mZo&|Gje9}6@eF{~wHpXX(f|X5@o!Ac z>1KJW(@lCblvGSq&~K)s*spyHst?Rhy)v2_^T!~vmJdNNCD6exD|S%-Zpyk9}L>iG1k85*f9L?ralBv z-4lVUo?%{|)+&cIJ*Ok2$v6hf=b0P~wB@mO*fvFxd5AObiXzRMhDP&xqp2vqpw?uS z$ZSUBzLD@qDMHe-teuQ$ai#A5OR+QPeanwbPS+5m+ zbX}BqQTT9gQWxd(fPL1wlNzl&O!wpb>a)&pOdB>{WfTG%g7WppR9JvJh6`aTzbVaX z3}t!XEJ6#n%!6(#QKHsu=a^&@SMXzlCADsgt|r}fChE3A5nyg8q9a_*Oisdz*|+;- zIM2g4S6;Oze?r!Wt$XrwI&RyO%LG?$+LJHqxOq>0T1P7PoYYaOyif)(KC5fgxo31F zUgv_2NQ+PD2uhu2JD3qt)M|3SI%InfzHHyu9vd4AY^m;c?ZrhWc(e>8XXOHT5)t>B>ju9&4I~Y_* zS~jSl)~*5-gO))X=oyrO=E*Eu9EX<{4)SviuclVM3T&_;G_`VvY1GQ0tx*_)0A#gR z?o)w041CalgfylZn{+a!meYc7@1rR=sVc6{kyOp$beJVA{+{dQD8jzO#*Bg;rI)i4 z%IKc!<%I5t@=7A7=$LG1;qzk;bkmvz8^&rwEZepiYg{o$e`zY_t?Gp3bx`W6RUPxw z&72J6^e5e@ztxk*mRZN~AWG<$QaVCFBXpwZ*)Ge666?VYkP zjMF_<(3*0Cbjm{d{ss=;l3NC?()K$!hu%MJW?Wo%YozH^VbADUw6HK2yk)%x`6?_+=VvIqLgkGV=`56+xV`F|r;hR4b=<_$T>sozD>ngee3L6G553U#FUW67mn>8WBblP} zd@+_i)}LZ}rHjZSg=QHD@G5T2Ln*8oh++k1h26s`hj(%SJnwMmU<)Fdtkj?2*%UO> z>RAoCg^j3>VMvga0a@XX7mIK@NLc(-&7RwUN@-#0a;d#m}gUwk@5o)K0wP@ z!G!+&p&p+jV{l3zL6D@-pRiCCBHHNqgz z2g?>2)&vIKeklaHBjOL{R92eM=Qa*N^Hu`_*n`2b)SrMo0$Ey}_$b&T3nRV&!=A^% z9vLc8qa1s<7-fyX)mCSnFrw(1S7~pz8+la1Pd)rC!*O^`SH>QM5>Gg_xZ>= zCORzxVk`QFjp@|pF${?CgJ?k9;O_HaKrG}w-{9`^^R@fj4T!SeVL<#7sbLw6 zUwhf!^Z#LeR@~c>0a5XPxqHuzjIe4DpF{j#E(4-nj>rGy;>Od^kIDGIX#i*Of3$F} zt9D}iUp|WeBch=h|ChrGXetC47=-l65dWv}hgIYMcyYYOoR@eY{%=%cuG5JBOQ6Mx zm{n_a%OQBmzlO)Wl+un;Jg}quv-m%QUmXk9E;HosQ4xm-49v=tz(CeBGgbo@tHTskcm$yB^aCFPW~!4iBqX~zFS<(lz-$`OYoj^h7}AbR}YwD^(5|B+T&$N#mUZY_EE zQfUB|Z-Ke;Jud%SP#1eDftiZ`ORFV4SQ-B(ijESIg!n%US9Sc~vIvv34DJ#C2V0h? zg`7W)=no!4R|%Cumad*p6xLUKoC0U^Nz2AYK;q8)m~2iQkI4AJaVb?sjRuNQ8=V{> zO!X+xi2yUHG$DjAMRlk{2(5HiRxSDK?5yJLlagcYZq%>Xd_adn#Ro*IQ6^HlH>8L% z!XEp%sH&OdLH^7V7*Q025T=qAEs@>7&vGSqL((GOk0FG2^Tug&#?(3*_-hGKCsSCd zG%=SI+2CahpIYn635hHc1o3FH{AuGPfWv$OK?Gcq08JJ&K~MmI1~=mjvA`oWO8V>Z z4U`IJWQ6@?)niD1dB|F)+5$~Nyk>`MT&ckCEa}gzDG6&KWC!$=9nfJ#LE_Cm4PSDl z!fysuL23FD^z5cYJDN7-0OX|~Q90;97vjb-2>lDgKxkJBdAv^X-ck*Sncc-1c8Ylp ztf?IghM~hVB--&Oh<2!wo$CDxdAu6Q4)UleBoNZ_q(B@O>?pKGfw&;psk|`nn7oE0 z*vGGnM3+{}rWt5u=!F(20Xm16$1#Zn)4jz!UPL4z=8@Nld9*Ub(-PY9v6#nc32ixo z6(4~4n~;Q9l#8;yrTRWguX>FOYA1F6Q24Wmv z0WnmC10MBQ+bJJtk;B`nmYA?ayJ2hJ57S@V*ZLRA$P2&F0xrsnzL?2O$eLJ?FqBuz zA6cd|#W7FZ<(t*#;++@y8lAgNpBhM;#2&(;;J7%J~3tU zaj!CR7OIvwDrc`YwVKk6!)_clDYg50hd(icz-G$=k)zmM&n5XC^jm99Ajwo{UPM-f z^YcYAIrR2_Y+-kQvCoi?%QiXLpDuc+>xp8wQy-;v_Q2NJvn4$8{WDcybv+ zfquO&-D8C-v2LOk^Mv47x8`I>-qCooaG?0xl!uIqN&n8YrjfXf>*TUfj0qCgKEl!= zYo)^KWi|$WjY){m8BRh(@W5yqI=$a!0zsyp2y19@(A}2~6l_#Z$uHt3gfJzsh~O=n*$F-%df-REq%uWz5kCln`{0e}<$`rmz;K0xmTvRM`qhN*fC? zQI|Q%GZ7;E6;-yMb>NE?u<^)zOz2WlO4!rkDIpFlK!`)OZiN|rSDA7$54I?27b6^J z^BggpvV2&_f&py-0Qu7;MXGCYrDwj<{~JvjqD<*i%NdN{6d)F)PiabNOP^JqlBU0) zU+`gjL1-Zf$S#Bx5?Jh_H}k%9b;?fQTcqq4CD!!RsXDKI2_|r<7Xy*I6hV7<#T9?tyIAj2&SE>jqS|o)(NF5V z`j4!Oi4&}qW!9|;yDWje7Cu;Lsx83#sFKa^v#UyGC-=MvCsvNLwZ(FBY7y?8C}uB zw0Wplk*1Z&g%wUrJ@Z)>aNgmd(Plr2_J>Rm>;lP@!MKLbI~2RvDwbsscn&26{U639 zH*Y-%;;r`XF;}Xn46`k;LO0-LR=fa5B&}w}?}4@|riO^5&%>@zSBfv9_d=D90%B%6 zd`Yp&_9cRD%z&-_fc!hNckCfXi*~~3SV<-X$7yzwM#K2Z_Ex|9exyl+5s&Isp_)TzIt#X{Pf7R#I=B2T46ws|azJf`kB zUoAvJPIGIoyZq#ofMx(FKG|Jq&b&96F&U$Htp62F+#-pQ<5hN)Nps%j75s3MCeOAG zlj_@v60?))?>U+|z4|_y=BXbphn!~O#F*6WR8_*bZX`n}2kn+klX#%6Y?|aWQxk?( zFdeLt(>(FzZk^M7Yl-|Tr-_y0wmp}W`NIcyAy9IdS9BF4z(#rUOCI+Kb*D>uxFBNn zHqMbV?`SqbUNmFp*JzaY(PxXXvqp_5#7t9~MMJNfg7y`U?NcruYczfguY1_ zLW7w4vB_I~Du}Qg!S&7b7r5TcZOGFfUzyY zAtk*KrYB0s%fzsDJSoVw2$#VNiX68HhrX~5Fs_P@D%>L^1#y=FHIsq}v?GL2aKuQ% z_#6^3+1w$dj;;mykkoDqsk1u}VI&4= znNo?3*se$z;tktqJSGe!Wa-RCRJj4uFPk*`2-;w#c?(sJI<*oOwr!D4)c+Rhn(^SGlL1e;1Gtd!d~WI*b5Th zCcS74qmG~ppFnfTl#&JXGfYK7kJv|ozwCRy7Kbe!=j!#KCw^iJPwS6`atFWW)!SHc zhH7sd%D^56b6?6*&@UuunC%S&5*;z#aho{(8mCj37sA9oVXJU<;5}l=SOZcfty6EM zMFX*|B8h}VbTJgO8#>^>XV8juoCv8+skzC*^q$y47Ep=%Y7R0J-IPs98AvunQ7I_R zEgtiQ-pr?061_>JP_z~cT-(JkuXI-&<#pcKy&Ra2>p0No1r7jOI*?i5;_T2)53-+v*Ze{L zQq`PL`H9x-Y>PC~p7M~iRl$lhB;iT%p+H$cJyE+l3+XaCk1J`s^K@68hnTDLjA5el z40NpfqKud9KAJm&ls0{lzSfSDIKt=?Go!uXvF2)40``_Yux@928~`TwktwVX(&Jp- zgnoO4f)%_{oiNw4(+?Rw_tuLZe$O085&$8?G^maMj@LG@k9RP9W_zW8b`=tpLs!if zT1qS~)EUG}^@IydgVW){;yC~U?~=qL%3B9V*`gd>@e0sa8O>5tEActxFk!csQydvZ zikAeOvz$AzzZ*AF!C=mJuLZB9^UcyXi7UV$21< zK~N(QD~I#xH#=h3&RC)f?<-M7FhD#zkLcCq!&bbR%_4#_(3IW>$76d9=4S#MU}A7nhF@J!42j@WY(7PuRiA}-I#rRZN9TZyZ$Xf-35JJa&K zgRaZY&Q*}@wNk_BJ2a$hG3S5lk1gM(xSv7YwEgWL+wwI4u!P6NeXt~o`&y&C%%@4f z7L7D_^*&>#HC9GFm_NRE#9{ z3H5(Bi?d2y+}HIl>RS0Z!nSrT?i0Kb#C^IJ#C-%k6Zh@TxVUfKF>yb1$H_?$_w!I6 zAc6lu_=Vg3#6c-Qg5oCUXL*7}55NM$Al1wV^`(47BJAkB;4 zC!azCg3dt%ohXJmq~pR(`7&(f#s%#JjNRHrsN^U=FO}n|O|F zHf$CKb5%N+0a_6@68r^+7-jRuq4upqfXL%C+?PV;rGbeI@fT4nu4x$?-)2>VXd-rU zXjX>+9s9AoMiS5Xi!reIV@!dIbU2MTs@Hi7GJw(o5eujrU~KKkX}d}@xV%VF7s;H@ z?xMrJW;V!3TD8Dq3FI_BiU^AI6Yxpz$fZBzh_9njNtmrcUsEXiT0q>J-fpi19HM~< zx+?{wrn?U{>2AF_opFqnba$?%y9*<_J5F_FLB+~tP`*5>%i>TK4t|15O8{Z$b!ZWH zS5V?nFjQ?D7Er)0vmX*MY{C-<&{9&B^=C_*ZY#_xtNuvhPou=YLIM-MSd6k$kdi`~ zH`e35J^T?v@Ie;5774Rz{UjawuRdj^@B)y z@*ImkM2TgXF)VwicI9%|!Pjxm;;HpbSbI zRbeebNfi+u1nNE^tM#v_UYlG$?8~RmK4`m3FJ;9UBz>tZWIng559J3c#AX##uuad@ z&Sz!2f6Q9Cpq4%aFp@As231w#A11{oK@W5mGV99e{lYdB8kFQ}`&|eJ#Um1HfqHXr z5*fG=2FFyG6l=rM1*sxHN78Lpbc#PfG`@hsD-#)sxa{b2eTLP)r5w^Dx^4mUA)ZXK zb4>|aVgrWa^PwgJN)7gbjo=!kM}}LAQ$49J*kL83N~j)m1O9Qrc9ZTx<$!xbgtogY z$*MoO_sxp$XM0|HYOb4Zg@b{&?o^aD!yAI>ZMRy|vy=I5uGs~P$>knxX!cc>Rk*Fkp#2>u=YBPRZvDYsY^IE91DZ9}zX zkfu`^>+T&)2T3Y=5T($JTSG8nK>s5_h`2}3jqQkSit_r|lB(+GtabUS{JNsh z5d&f3F~wDaP4W44Tcy&O)gfEd#G3636@WK;IkYF-&+hQkXrN#TY* zn6vPhcr7bKYkYD~&|BfZmdz6=?}vYTIjJ7kVvx5@OQjO_J^O3i`54uGn0~o@eEPQ& zJSe0E*%j|OL->Wx_eliAji^a14-8U%ql7J2O1CMeB&oh^AmpQ%N5N_JxOf3nG?t*k zPmKS|^yGVANQzI>U3si5+6@zsu(?zGGR9)v$GZ!@R8Q&6-_4i{F0tKpKnDe55CBB6 znB57&x9|d0Rt+1WRmiP&LKR>Lg!H(Ijz0UG8apolU=>9UuD+7|jLi$r4*fOHzN2US zPOQh9btpiaa^r7C+KNw8hOWG-_ z^#9*mLdmhL%HN2n+>#G^r~$X$UhS}#DB}Vvoi3B&Gjq&8iMwk>y<1f`uoc*haTGWU z>}JGKWL$e-#HZE&L-1f&Q6?02|1*fLw48c~JQlLU&_3DY&+o~JwvObQ2YWzup@!m4 zBHy<$*r4Og!_deVK9(^$>z#`Ce}=K@BW?a*ea5w@h%MM4xg;P2Lk=s-WCHhJpB4Ys zimIN|YMV3nF%itv9?}y-H8cMKBmdb217&rLsW(sfSuMRi$g6xXAX+{kx3;t6nAhaT~@NZB5`p!@~eYNeZ@x|t(N9;$7vj0?$}3{ zYvXFG+*})0hX(E1w2Hf(SEIXqo!sr4gnyK+lr42BxZ2I-&4=XyCn)thA7sG6)&9FW z53cshsKfba+K7O0Y9qeKbeH1FA`LGZd&=S@AoQXyigG$Lg&*_crQ5`S2-T5N%dE1n zMR>y*bK_@f(1L}YR%lbM@H8X~kKHEJvP|4*t_7J$6PF4CSCV3_XgHQL(oBeim zylN9JX?hgE%0jOrA?+t2i=p)24VfvHctjFPEVHA>MEEsvJ4fM}v6SV|#U;*wRPl)0?HqnS`OY6c`y z;rE$~RE<)!#M)3bsu?X2szxbVVjV!%Rsr-`WW}Q;Sl847W?l#_nq_6wMN@fEE*CKY zo+^%Mn#Y#%tioRwTLkMyDwmvKE^V3Qop*w0FS2jeC|m;5SE0G*xYmv`$*UxpNY^L> zY#q|GhfAa(TtaWiB!BdN*!Q=|Op(BjTwoerGKnazCRnbi(2E2Ik>-i@! zl1+Tl9PEf4HzfB6J7kMihxh|`Qu3FU9A8^#+Pb;Ej(&g`!J-MqR-@<%d*biVCMSE% z%nOe-GcWjNX5Pkk{*H=8`VPTN!_6if4mWs7riAp0%~q1B4x=#al(MPI%Z<5!HwP^KT?BOw%|;pm>2=zj({#anJ^v4 zjif@w3z?3wvkUs#2@Lc}%8jqj-ppasp6o^r8(wca$56UKvALk%?Ht(n@>UKwDS?Hc zwZH*j-NN;R?O1}X4HjmMY*SkgpgdB2upYR2D*>77+VL8K!qEQFOY6K7dSLIPjmT0Z z#aNZUWNo&(G@w3I-#IE&D`)b#AJI*TFcaw37nH`aZ30~}1FnjDfomUB16aaP)zSf2 zm@fhYO|B&^2ffWSD#KK2E;r1~7?jM+%+X5C0=sBthMOh4jG1}L&CJ%u6nvA!4$RER zid#^pIE1K@RJAnC%v25}3K zWHnNt#kJmQE$KsznoZV~(Tet>PYWQIHsTqs-&ejzYkP6H1qOErTELyd)Y91Ui9x6Qbbyv64%8MM+G)Ieplkl~-4ghkVB4WTj9t!e&~WDRf`_R1d^nHzw@9c59q7%_E*YPJJ?XS=4jb_Vuj z-x2+_=Q52#RHA_baioVqit9*pH8bH;qMw#@s#r1TeW@dm(*!lGyVGN}WvBVn5W{S> zV7i!vF)Lm}i$30R6Kw4xE_p~Jx6rh>_t<@SkOUv|D5$_&h{|A}ZwvAbm1Pm6&ew{A zbV5aCw5s#Sa59HMU0w1r{Z)|}w(W%0lohi%+f}KXokYRHvN;m8u?>L_jbg?(_?z(* z)MYla!-`dW)blRkX|cvlu58j9_{~RqgPNe#gblh~R+&(iaGE3OaD$E~(|d;N%MG_; z+HF4qa6HXZ&y;^j-|o2w)<@ojp?4$y z*1v1GUhiLJe|~n`u)S??6~9|wa)MRKtXY_4P?+16imEmU?|Djw82_lJt)9fJ#4Xe& zC6=nx427&x6`(n(BT1eobR@Q9Nk=b)m4-rCsR~}5)qND)WgRi+eu$$uiA9$2RdPts zeN%2em0>73N}i;ILDCGBjr+--1+-a-xhxU}z5F~PC&GZ=Vkb`ml&WWBucg8S&!K=> z@rPik;$4O;=HlP#;tcgFv*L&FLUGq8u$Y)3X_*CcjthR3duZLE97_b(hjW5u>}6_- zrce0aN0!YoR_xGq&%AKtE zV|ACxQoQnMPN~0yX^=Qi&Oz&zVb$4|;m&$WpyK@~er^cKSQu^*3X1HR3DfWid=bWB zH7a@fF3;x?c9q#9ToI}UJ~K4haAapftdM}Hk#P1NA*fo-9-(2=D%CIuP0P22<^d}R zhFuZgBtKkS`9lOPA^WPoltY;^cGcnE{Ja~bt7Gx30ixVM6agP$nMYV^E&#Se>|6t4 z=N)1ft{B8NM1TXIdw_X_j;e_|d^Q+#Snkk-pWSAPk=Bu9UzXbzjrDXrLMGr`i$F5g zGIK6(7l4xA2y+ss5iZiQXJ;o{yy$CSpJ)(oSSGk|gVcfJY%syi<3i5j*NIX?Yx@iC z$QyHnpX#-fq_C=JB1$k)xvXgrEPg;>KUn(>@JUGVAaBoSOZwcil%@M~A>}#N-dy#( zy8hoG_lWr?s$c&E`OfA|s4nR21zE73*V(7A1y?8ZzRqYLDg((2*X>k+n$4A7au|r7(K|fh?7F0pU{k8g?!TC z51FExp5TfYeGbF0oM4FxgWJT4Q&E?d44IEwlSeSsHeZ3nGI56M3(TIqz1)#44u#N+ zaI)Nmycc+B(+G!WG3LA&?>F;B$a&#ajBu7B-jxx~tbMizV5>I5nI(myUO`Y2g}YhJ(Fc;T9%zv%J~qM>D&2Xo<6cBaw0kZP;}Yd ziN}gxbNi%uK91Oie!RY8AlnU=9rgr9rh)OyBIj^WK_6m#^%SpIo2Ry+AHs$kcDP(+ zL%&O!bYg@hdRA%Z77F^LUeHI_!J4nLUxvfU>=(U3L7!9qupE+Ki0Wb~Q_x4e&jdnA zP#_&0mlAGTwu1YS5)&D9&<#oMj7A;H+)zwGg1{}^@`650xdqj7oEio`oWc9$+LhR8zn7zg#Xh;AUlcvii6cBU z7nVeUN<2?50E%V{NR2l13&5#2^s_CDcQ_~4gm7k*+6(%CB$EYwltj=7-;uH7vI_dZ z7;HF>5^-!sUg@?K^qH7*NmY$Ge~7J+E_2Q$(XE_wOakD8=JcWkeN4NzZc3M}3;Jl` za0Pamk^`c6xcrLMWr`BC*|i5n312rt#yVQQ&KMnS=x3@{i_Q_O7=mJy+aT?lkFy+r zkZc+}4jH3pQT+GL(52B8uZTcFh~^EfMxX>=PJYCKKC5h(eiCg8i?wT0=9Cw8CRwrN z%2Y54;y-0?5AD4tUUi>DRZN%%IdXQwG$qp|xKzCz+;#TIL>ntWi?3HI#-WS_6qJls zP%={Fi1B}d)`b+U(I6w2Ij&JtI^wNu1KClYMCstwXILSsXe^~8sSYC7D?8<*J?R~6 ziIbz5Nbg8Q{?D=oYrSKc3x1e^${e4|2G-E?8Foy2`AMFaB>%eJfy#nxcYXG_-MwB~ z3s2dqh+}mW{Q^0xI?Ped`U~hEf)eunppD)^Q~{D2?N^V{zbWY*d=hcjk(41$N$=1M zM7=|UXy_fO=^ec>y@OX=@4$>-K0;(x^4~0Se4x{z47W%=0JOC zn$o~d6GYNnvYgb@A3;(0=bjk<+d3!A#x@nd4A=eluE{pKKln%ALX$XQ^9T2X*3btq zv;5ze)&K=t24_dv^N2^N1?$5WnoWOj2=bLbc!RVCjH*)E@ol+3825U;kI*{wf_1Jn ztdsRsF`iI-X$?#4BUEpqNz_B_4{j5Ww?wSg94{RtdCdL6SO_knJd7u5MI{2SOr6nW zb_gjE=MhLjhV!@>>$;#T_Yl%6Kg{t8ABtY#b)XiJRC2S;MQNknLz9OlI^*Aw9)WJK zs&jb7w?{6zLt=zT$_KUP=^TGy!eI~1r&3HLeEob1ADLz-s0SA)zwCPm$y=nSaC^ol zPAY?km~^8dT)>OQ!&3JEpHGKjw;vS$+66q`sA^%z2`mq^q4Cx8(9Yd&WB%MY#H zaY*Cmrd(Fh|zr!CI4` zfbXEos=~$V>byBso;Q-&aPhK1k-2y|nv0j=&t7bQpBXu3M!Sg;*1BatQQz9dYeoWd z@pg3=w>1)zMO#XUx3J%-D7%*S!xg*xK=b34B9Nxn2(QpmhFw8X^hQaIH3$9^8H;HJ{z~maP z2L>@>`PSE3jk}ZY2qES=89VqSU0PwLU{>xZ?g@{`-R{I~T;x}+65U;G10Nw>SUqaP zeYt!Q(GY>bb^^;;yBqgu10NKiZRQYeID={0{La1t$J#(%QX96wY2zx|*rv^Qd=sFC z+m|-v$z81x_02c%@x^MSFKpv@6T7U{ zt674?kYN0!3ZrZsuwpF>?WqBsxlVbxiu zjc!1grg=j?Z%v>$+=vA8^YQI;{H<+c8|wHy+hiwz@;+#gwI+Z-r=ornLDG2sK<;D< zM^8#O2`xur@iE99AqZ%*oSsT6nBRN^Lf#2{G3U+|*;wF%e_PLR8$oxIU zxHW(0b);g-1;IhnW&7L!5CeypmfU{0^UTt{tRrp-+<~_L4er21Zod;cqEjvDi0$CK zjzGc`aM|HCKiGYw(-e{x!rIJgnygO&!;9_0d~2l|j$; ztKmKHV=2oP$Kj$$04`GzE}#a$vM?`A&Lj*b_N{T)MI#w_8`l6UZM2)LgB;bzXmQxi zoJGj~vZx2m?PO_zl32)|S`uhEkuGZ=*b~tn0`{+gW~1vP;Q78aW{J|iHIySB-E-?x z*fC53ZC~vyfrDld8+)Le)+{3)+fa7N_N`fm3W$7+yxiQkCX4&lY(ZYH_pKrC(fmN{ zQ-hGc)MGO=j_g~rO~->hXguw(Zw@07FZvEifZMTpRiVVvL})uYhse&=&{^@-0+(Vhk1d zkc;x&%z-$DMGkDdvzG(p4lkOh;B6d;eYl0g^bN^CpSADFlY}9HesF6R+oQUosZbwG z1LvEvtopz>8p=!+uTspm1*6vP!+BdPw`zT@_WC-hp~@0ZB)mx$B3Mo;e;@KgCuXwPz0J8x&-(yhsS(Y5^{Va$upc zb=ec7vk9*pWxm^ZC*g*Rfw#ukB&n{ zh0x4D7w2IGR1wStwsDX#T>6aNbbu=31s(E5dMG%OHE;$-x;shwsRML(g4@X>WE5ip z6p4)`I7jhMGg3Lk5o8aSq+gE%u<)5Syx+%SKWW)5L{ytGG#+`Q@V41I)%PA)PS}47 z(Z3~$ie@Q6D^V&uxR1FX7c)nh^(iPU!Hdt;;hOre_{GHZ$*ERP9};E4IQlZAr{%27 z>S>%lb0XO+!Z2*!kf#}vayBGByC==R3(Ac0*X3SiX1W6u!ZwVGkQ6lxN9HqVOFWxW z7ff0Krb+-2Oyr#M^(GE!uJE2)$-z{DVHN;yuH13v25E=Zw0#!HhFw6P5I(w?0=vci zExha4BGV`Rj5oF1q#T4`#GX6FrfZ>OnS?sjX_CgevaIuMXdgj^7@7ec8@<0BNGk}~ zoL!J)r+KLa3=mxvp~%>Q)P#K4;3D%Ll9a1%(_^Bs!RIN|X2Ub{ZM9&?;88(jPX8WE z)^oQ)yYfen1f3zzm9wz)HQYzETZ79$l^3m`bGIaNfpAD~pyZvte%pmpi4^d|TVauN z{6wxFp5l}#Ipe{*_ySk+h>7BG7MKz;Sj&!LW1d`!X79&zCZXQATFS^*=W0l8gmBiJ z&8BE2XEQ6Zm0Qim%B>Qvy*hV0{V_P&f^)YQ=t}jv%Qqx%C9%k|sKnjahe_P6-h)m1 z>{=OC(nrB5+je)1yQzQzK>2 z=_`bpiw-1uZ{AC=@`g&VYG|PuWev&nI*;p+Lpk)EAx$@-eP-Fk%I59KU;++~a)z!W z{x%=5tVvnmV;I?VracC5)zC+3Bqjs85ce%=TWCvL3>A017^-%v5^Ys3&n^yR@9f|J zCtc)#4_VRhz)&tDx?XZSrE6{QO`(YVDGw-nCqr%vQg(2}!`h@6#GBAGrR0bbQJhcF zhp=Py4pMJcHDb2mCuZ1MkYs6(7!=$q&K-d?lXK_&5c{tYMyB2I>8H`rT;4_xm`ie$ zgyou2DhRKEA8RO9w`@EyM_ER_OC{!@KzD-GR>~GH!~acPLwc7wVlni+Ix)wDpgJ*! zs$pieHU4W>Tew|F*0jW&9w4`$C@p8K*y}9b!@#ON4X0Np-}KamS-0p2XJ(tCRS6n( zNmu)%Y4zcgyvDs?VP$g6!YWQ*vq=^!XfBMWS6mEaSqEmm1;?9tPpCMy&>4?L}9QfrmSVHgwYZX+s#R+g6;bfMyP@q zmFs;8lft4U%vYHr4Q}-%oLz|}jQB_I=(d^YdrGgVTu`^$ks8VluHllUwkS5lG}iZ+9#Bqm+>L@^7Y-{sRo^8;xbnF!<+YRvD=rVMH=a+f1&^o< z$|lif6p$P^hfrXKCRMaCeN!P5lCcR{mW<8!pdtcQPx2u~BE2A`ju#X~Otpgn^a@F< z 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𝔱zOR=5`#k#pTb_09?TUWMp#vT(HX|FwW=ICIbbdS+ zZeq%c&rg|H!A|Q)7d^c9OjWTQZua~pSNJaDo6~+%Jc9Cw;Z0$p8t~+Qs#w9vN(k3H zhiTD0gm14Lz$?*mPZ!X@X^DJ|-M9O$h-{@G~kUUw7HeGWeSK`1ewAn4XH| z$Q3MWQf_;#t?;g4g=DiwIC_PtG@X$-Bch56u7?m8Qr{w zn+v0xptQc%DxRho&kW6}`)2TxnJXF=A-TA}__`F^749#dn)?e<(r|xS1QhPCOq#>U z{bi6b8sRQJcYFP2mbIN-t%xwmJQN29BVe#loV@tcDZmJQbIe!JMRl-OJ^UF=Re1AE zbRh4w_)6PGf`+-JYAFT)%jA|}J7yl5)eD&d)1a6Dvmvd>7rBXSK3)MH`<-fWNFJf@ z(r~nhG-b^YppSf#<^F2tML&87ko+3W;Fd3E7x8R1Ambb}5(3~uk0m9A8Ea83QH)#` zFdrZIs)B=t&OY)|p$H}w$VOa~jW0s1MH5qO6Gr!3xnnBiMMb?IVK~$#dQm+O?4*^( zaChn{uO(A`ia0O7bEq@px{1X<3E+V9%6nOx-qi)CnddL%BMz`BkN28vr7n_l9X}vFM1kzr=!ajEZStkF%+evcKpcF^IQZNsmVvC| zlbD!x=BIt}P^lZTVw=5CQ204YU<(VifULIARQ1A~kj7OJWl8gn_%1KEVkE;f*gx%& z4AUOTFdZWqmN4|jr8FdfFBq(ILC^5(oF^^_dXT}Mm7^6CS@mBdp5a_-Ub)@LH~d5a zd$$uO$<}b@NID%1V*r_eoy1oNPGDMlGi8cj7 z?O12epZGh%qWSD?L_fo~1a5Lw%olW+qrtV^;7D~cFu|w zwP{x&;bTW>Hgr)rbtx6aOo}J%<__<)C>z(lC%Rsm{INv$XqvR)0$nOA*mIX*YKr(fJb1baP%H?m_!U6)Yx$t>kq3)kT} z=%}b$oKS6LI5D9>!&Yo_J|{4O$i>m@F7v)-_fh>WAdSuReVV@O**S;%AT`AZO*97M zbvmnQ$Te~;0Xb=5LZ&yuT)6uvW1VSM_oMQY?a9K?_GAG+Vs$^VhZ0`?3#AGHZV_|Z z(AFwMb-mwmU$(GMgfT|qT$n~h*;{o#e3D^L7QlvjWg!gwa4-Xs*iW_(*H({zc3G0T z7xOF1wbh?V;#wDO%+%HWtX!XAFCDS!es)BTYgG5MPg-@q@JS)N-oTWjVxeB$FRNVA z+nwC*^@j~@5t;v6)}Jc-2m=p_BoiaPi+byZ8|kc?c(=| zF%iuGVOdDFs(c}dTQW1YTIj;<-ZNV!hDkTc6;qM%#4?$c;_Nk~lIj?@sQL>ht#2LS zmWpS7o zNF0il1W{+|8_V{_2qenhW3VS|u+N9Vo}1GUX zc|o|RfLxGAw5k!OCd&saTnwnEeNcp{5Jdh`DkV;c$R>9HOuQrHy`7$cU`v`Iw)r?3 zX6$g7u|qo2^ApVd9XeIAp8ftVuCPcPv0A=iag`ZvO9eXd$7x!%E2Im8Cu~9m0aFDt z&>ozo0k5vw(?Y~GYRJqW@r6;VvG#>|W5toMhyhIo9%M7wrQtxW*by9k~Pl3`7FjvSwBoJ#RZX`ZK{+%=hg@Yik1^Q zCQhA0mxq#%(D{{4+f&rEs_qhKJG$o%!yrW}dc_<;x6`^P-q?Le1y&YXW&El{7>beS z8n6kJrd1(lp6`0s6-zc{WwocO^U4_-AsG&3Tlv`br&P~vsQqFVte=V;BAx}+W{Lwg z4FZnV92l&F@h-b?x|(i7;*WHj?}wzFpxflG+hEm~Zev&5IpAAF65@5&ZKMwd-=cUI zpd`Rl9!CCz$TQm=W7uZZ{6Bk$gWUPf|>Ns-XLZ4n0UKP_Py1KZ!E)JB^6e$AR=+oM&?Rv!i%;E&S4GR;%2!?}o#ls2&1V2LP4~(wUqu zxRrQx9glwM=NnH`o@V=rEY{OkPCk`JjPd+8Qt!nM>6LHSd;p9`fdD==L z(bMgdPZ@pH*-tquo_>NP*iFAM-Y>{%)m30`i9nV+7gB@a7$`y6zfyZ+ntKmU~U#(=v zj;h$-UvD2DhX*orwf3g|279yu9ZK#RGR;5~X z>Fmo0%5r*C9TzqE4mq*aDV^E=$O#(#Q@T2@`{}^7hFsNi_0?20RUHx*+ZU#*>FQ{GHB-%0$Lp)vYPLF6 zU-hegb*8?WtLCc5>#H@@n(C?gs(_Uq`tA6Iwbk0{XnnP=T2~#fuhv)Vt5fyWhH3+; z#PN3#M7)tE;E#t81!js^{vfYpZMV&4w>v;-K6{wmQc$PIS%B7#qT-#a1#u0~;c3 zUD9xNCsNxrVjS8?=NB4`!q~{2l;Grbwqiral~DH%Ucc5}XS0=Gc>6dF=O=ob{StU9 zdq?%UCgTx5Lt5dZKh5Srw!e@r%JfaJn|4)l7nG)h5*_($>rF5ku>-I6{P;&1t8>bh z_U5sr%|1%bC1pHT0xb>nmHh_4lVO6c0!TsY)K}dsT;qB8(=BJb4a52`QsMGD8UAFgwU3 z7a@wY@2v8lmk&Y6RCZ*AMUW5}0NsJ=pG)cxe0}7gK~^37ozSbYBZpDhKJe4XanJCP z>L;pWNGqO~&&rfg-Idz5vG_t;0$Oxd@s+jGoY@eP-CEVtE|O6YExYFYmVW;9zoX6F z)$@MRsg8Y|^W%~h|BDI+tSi?R``!RD z=h|e=WL2~RB+BA96m>u)l~P-co30@F_%_w;bLlmeOsSA34!n9&dZ)AiN$yNQ&_Icl zkVb*=M0(FLjQuvEY*D)Rjv!Y9;db?bPh#6zL%o4q#5P>tqzlY zi8-fm5ZTxFW!yTrbo6)Le|53U{^lrKN)S{+2Hz3LB}^at4d&?6>={&ixG*)yyHr{r zLIMD#rJ*U)Wjj)Bg*T-WY0DJU7ws6Ryb}y>x>%NiBy~F1=-L{ zuuGpZjY43t!EjTqhm!);bYM3D0VSX0ZT4z@b?>Dr-C{b!wTb@%G%Q`{W;6h`8e zpHd2ded;mn5zTMiqHo*kuI!VuY%FNO zVG6EjyKAOxJ1J>jKyZ;=ESFKW>J(E|W|B{n+V8<5A!5*$@l6>!tcanliMFgOmd(MN zb!sWf6`~q1sB!`aRZc*EQvw01*Q%QWa^Kez*myac0!CL1EMbS4HFqa3x1(21Kt%?d zNBaW)*l@Ld0ZAY@^ltaU*p^6mPUm0pzJOY9!gpv#^P@^0s8W;9uy4bY40M1Zp zZad_I_@8iilPl0q9Zsr~0Iw4_%2X#o+}w8oq+EFMKl3si4MOg{r&X9HW5Swcqp){d zcFVT^V+Pp%59K;;{|BBw0Ba~z=pYN*|G^rebMe7_Os6hu6K%szCMmpWQdmfqi@??CEElMOf;X(%*Vv`l|mG4_5zadqbKhbu1FMskTpe={vu zAz;N+@`HtuO)M5B-fM)BZ_^??HKPR9Efv3l;}DBSyrdcL#Y7QDjH8+f8)j+_2YP!Q zPaZfW4!7WL{MT^<;&Q7Rl;!_=g(ln2ug`AbDCVvBE_dV4>sx^@9Hkj*INe`>4b~fq zP23WLKCP|EsLzi0PDh-kEoNno|Nr#a&n4B5Ij4E=XKC^J6|2(=NI8F%n0=2a=A+c0m|Vd z2%Op(ud?x3sRD?bOWv$0re3?`2_)m-c&Xe4gSvYft`v7s$(gXZY?Hg>HFuHkxWQfQ z@}+W@iCGeNY0T0J?!vtMXxt^gBzNJHICYo`%=XZ~7yT!)T zE);ul7q+UYOQ!|y!u?6^f(vAVyWq2c7(;o-cuU|cun)0uILzLP%wmGZiq3HM9@%03 zWuNWA9{GH*4Hyp-S2+8bm0aP?#tQHfHn{>}UYFns=V+!1Nyr#o_%N?WUIc%EMZXvu z__tyMuV29izMf|-S27fC3At7LS8DNJ3Z0Z(M&uWNL*$onc0k~qJ#3R2VUK@8u%F=U z1oDZqtNw`3gd8rSnpuRsjx}>f;;EzTtl)xiJ-EBaezPB*&4Fg&wjoN)Uff=-f2s8o zLdNY4sDi!Wpi(9aotE|r+it;H)fL!twfsk#Ab7HLV8ZSy1h~6wf=IQqm^<$64-}yCNjghA)pkFBO6M>452fPw zR(Xl!_`vV~el)o+w4>H|5}p)8g!bjKLKNRo-6vETMe*p*c1tJ9fE^$oSv3-QEKLB- zJRbIg2NIYKM(anTXB&ifg8A#WV? z=>$6dBL3Mx&Iw1#D+~do2!>sm*aBKB+uY8yr-kqG0j^ZGDlPsMc#5k|O~D)IheR5g z6-)~&Ra3zvr1)xXFq>xhNjS&AmEr{-THFiEKUGuLc>u0`)zmQLVLo$b_>6xu*u^!0U-ME7vF-W`-gfb?CG3yg6e;$F?cf;$PFI70 zmpWWjJ9ybPs<7|esP7U`s_%6DJKX@e;u$NJJa$+1po8W+C++iSYS1Gz_DC9Mq9tgx zw8sO1Bjy~30%@a5n`b;|*dkpQ7!OUx%B(S}R!ecXrQWbkt$jfUv3FXkpR# zQI${TNQ`A#9mndgn94d(j|2!}5=IFS%4f1rzPc-{Oq}M$tF5y+TD0dwV8HARXBzns zo|mN_*~?N@FZL=bn&R{f`ZJhn4eaE}h}ru{>|-X5Sn>r?Nn6G~hHw{>FKmZFf#31l zaaPvOcRDiDs)&C`zR-jT{@Oikq;#bfF=;^OVcWAx1(d>KJ5J5mV}xqx2M@v!J8$YV9~_|%3QS}uei2_1ax5|u=AQE{?%Tyc5=WHBT1qnRgcFhAJVYK-s` zr(^U^bd1#`Gm+B4=>fdzGuaJRk(a)p^J{rd?Gl${a2Nnt~OZi8hLpvgL*S zN9z9fFKI-U&WHGTOx- zb_dL%e~z`U&$ag10st`-6vhD%!SABy*MVs=g%o zjXgi};8Jnq(pt5#Lpl`g>v?0)n-`+BNg3t=ztWN9uW({;}%;H(CQ(r%Kxk(_Ye+9tg8q zwr`5U#T)>cQ{cSd!ZIp~?{=wdL7`C-I$NAkyJEJSGx|<@LQBvnGpjD?ui8nP7ICO+ zoXAd!65xi&ktPi|o7~%}mYxGnWK=?sbbq>d2B(nRb(n3DI+3Oj^Q#OTYsr9hE&q0`$Enz{7r8vg)?lFE`o1kP=E-FRUc&hk=l3g=c zc6_N@j@-7@AP>%C-c7@|u&69pXm ze!jo8_CCA2&uPgQoP-da3$4eP7b)|_*d7z0gVbqUzI1pWMoC^|j!s}$`FM-r z4`v#zQqow`H?!P8)HA%O!%JM#al`h#j%jk8dO*OD=FbN`f@ z?10v`w>Npp1U&^v*_@u)Stg@yCg>4!vcbOC4FOf&2R&wy0PCo|UAzE_HapN$eBDg2PED+bF)^ZD4mg&_NeBXIQQCetJE zGBGNosBmUIsmxKb)A~vilL;rnf!$>_E$Y?NwHZ%j?2nx)IM?HNM=G(a2-&N9m{-D1 z;2V1#NfI3dks*PJx=a%Xk%*f(?8s0h5)oJxHpS|~(;UC&f%6Yw=Z93k4Vr zW5;V#^J*_u0aZ*Eh&B8691UM(5(JtfPbhdFhW9$Xnp4$`wpaZ;K!Zq#Y zZt^I6p#W_#7las1k3uUYw5lfmqn>{h=ew&AcO^0P`xe=r%f?@4BA;RS#gQU5@%atvJ`bCdtOY|s)EUKF?>r* zmY~d;EEsEB_*>{Wz&Sf6OXI#WlNCGKX9$zUV4h>Lm=TN}bGIa#S%Jx_!(>7Hp#G^C zLQUiL2jZ}<*ift$JVhL3Z857I@`j5qJNa&gkvXJbd6m&VF%C%pHf?N~s--M3TY00GgOy=&eu8t54*k|m(gAe)iaB!=FwM}iqo z{tV1U3FJzABUA_ObEpmh&b9*8?O1~9ZZBCgYI<|KvRQIb2b2#Eq9drz? zyYk!s1c?I|NtLQ>`j&y{LlVA9j|0j;-kLrVEFyX(9@-|l;0l(FJ@P^@`v4NblMG;Z zan)v}8KLmVvz_?ESZsvPW#JU1U205&@Fqm_DJPs#SasW^#NU{3st8L`;7yL4#==E% zAIYe|o5-j%qdoeRrq2nd5L1c$N_k6l2&ZhZd&QncFQ`5dY$f3o!7WTCg@(i3$SchW zr{3n!w^&z%17!cTF@{z~;k*bLQN%tmy@oYLuuk@6RJcB#{=hXm6sCyJ}ZE>Ic#d^iq|gPouOP3p5D~+ZnRf#Py{jCFtk0z ziXhezS16R$Q3Ns8q9BX2eay^EB-yhe7JbUOUpcb$Dsp~FIT+>VIldOHj|y<-x+QjD zRhAvp>y_j?RV&ckFew*IgZ$pCL~0 zBy*+h+kkQl+5$8J@Lgznx4~ik3T9B#)W`NM&r0epF+eSk=#U;yb(xW(2}%Sa;$;*V zLUeSE5S^Iny0ZzUnBwxm|T_FIsPTPgz?<%&&a@-mW!NhBpKi2~xH)@Yj`$3XAGWmN)E%7C#aR?L;6rh6qZESzfR^&@7UC^ygw^yh| zl0cLRl*3$?r%bN~UC9w#P-;+{TtE;Q*fVmiH*X-PmNu_5>QZcWE#ut{$fnTPzG(xl zdyVYD_p&>E-X@}G769n*+|D!MG-u5Lv$-C1#3WX~68eXtFg4?LNQ6*?y-++jTPPw7 zV!o6xf;()w!F-U`m?{v)#VzvsrXZf7$uiOY*Zc+aN{=%+aK_Pn&;tgJ`4mYEs%WSw zvFD3ji)+-c3R<=~+Q_Pq!qOseGKSkAdYNzUdz|^U$>v-3A>BKR zn$N{yQ*#f#+V)$gnW^S;&&{#w8Ri&-CbLY(gP448lI_sVs6~dX0O|yi$sRYO&@!$# zqdHv~*4r*Z7*n_vIxF4)qr=v+e3po2WR|e=iB{BZ!j#Y~*{Chc7OG(}ITt`Kiq3&n z5OG}03K#pEX$0zky$Ipz@_htC-e!dm`5sZts)=bR6*>2TNLP@tXOtQ}{A0EFr1}yQ$eMxw28Xu>7UL7IYeHu@L#*(<%=(o4O6Q23hDua=rF1gf52Q zq1*;aN_?EFh05jo%^n^kpOb&N0*{0uQ_Th>OrC5SQ4AV;Ke0QV1jlR|jyJ`2g~@v? zmXCd?dw8sO3y*EEd1Xao?!uLw4Mk#h$ZTukH@5$;A`&cnsI2VRyVdF-yXV6nHH>Z) zPT)^r^?r6Ns>O%c(G7g!0ut;PSQYy>G`0R@_KLsBQTd|<`I z6A^N0)k#i0b-l@OOF^npWa{fo@ijoogtoyn!Qr7c18y;@Iw{Lpvx{AvKI19um}!mJ zoq7@k@f{G+oHSwQd=# zpxHh!rf4>ar*_N9cn07k!|sL2$7{A+=rSkm+!};9#G3+Y1d)KelK}u6lzbh|j3v(q zsRg~NmR9WGwia4oI!0G5XJJgrOw(Q>RM7`1QP8=`EQ9O^M>^PKwE8Zpj1CJasUEY7M+c)gBifp zC<|AV+^A9vxY!C*J`E5$BZ^TDhN*Uz)TEeerJ69=A6^qZQK|`KWR=p=ye4%b<+&-y z#bip<-VYYU?8r}#Gc@F0)dUgpu(e_0?CD-;J3P32iy+#>w#>XvnJ7M}4;Wtv6rjU`L zO~vOy-eaLhQ+Z{5g=6M9-Bfse(CMZ^%bc=l2AU-dUXO zdb#l`5DmhsTAe>Uyy{Qf1Sgytbrb@(&yBLkB^2S0g>-HSufhUA89vRa(SJ1xu8p(5 zA`bZPfpt%TE}~(GyK#rc#pJ$`j-wX$Wh_`HISB(O$x6_AP6xk<(=yg8`Gy2}VvH1Yn@^C1 zO@XPg?uVUk+86BnP#O@1q9tWOTT8xKm7FXr_VzTOKABi*TV@NCvdxR1mL8zZQ}z({ zW4(6-k;`TLCB;Van67jnI}W`h79`SUrr8u}803BvxvkV4C2+bGb~J+8{$MP%{Z-iA zL~U3TJqW;7u^kQxuHWH|MuC3Lcesk*;pmtlI~-pO+2N{egM)WCn-{Q&bj=rAf@*~y zVf#Jjz|}a1P^=x)AYI`&2Og|p8ht5HIKm+NK36DXh5^pu>F>E6EnnsW}-!jDqSz368yCUJywV0s}P)kU0x2=x-@5QuXS~ghPyi#b7!48UAgJIRf}C@pXN+^;8uq-$4nFwW;bQtK zWbVT`SPQHnfn&-eAhn195bScd5dET-GY5@xFfKLBSphf)mC)lW>jlaX=b%EkSmAb9 zpl3AT94u0bAQk6;!gV<3KvC8wIp+YytNxR;qqM^zPSSYEnin(`fPU`-4}sV3XutR{NM)dW%LI0pk0QW7x5 zxAZv&W`{V3C9}1RU0BT!|I2nbPcV)(p@CI~<76h-|Zjx05*_2%ImY+}BKAAd0vH8lwV;1G%py@*fh)C$y;< zFS1;OE~Sm=(Ybnu9mb5Flw_d3(A0`T5~R0C->A3DyU92^HdA44ZKg+nsl1sgUz@3f zT+$}6(QU8Dfod;fUXgQDc|4&$;bB^&i$9M=2 zoef%Mw?89VK6}RF>n}Isao`VOJiN#CSs>59X!oTyIoY~YYJ-UpWH5id)JAk|iKdm& zvZHBb_2Hy8eKhZ+Hb3$-?Gu0Jkmos?c8S#H98G(UrX4N~KYNF7+yipwuSf1RNgsM6Lh*1nr$(LJLO5Qw?EHb0@5wm9$;IG-HuIJ&FnGO^ z3*^lm)d}QbmBn|UDPsW(2uxkQi6yC{rdXB;jE*Fvd0F^%J&MFeQ6 zDU}W}N$Xw}iLn~okCFvS2j@yDD)yS2^_YvN`>Q%a4n~ z?=lQnS#@)Qs6^zLNARI!fz z(V!Z{T*v9~(Krq(@xM3<_AnFs1%`gxo9dO}2pRz+XlqKI2%7J(yr@>Db%yBKXge<3?@W| z>;V;Izh9l=y6>rP6BZwOQ&_V~83Tz|ujqgvWq~7wL8Be;>uZ`_&mhF1&Y0(%FV>G3 z#z(GCR4WDF*rv>eR1L+LnCZ28wU}$|ZiBZp*PLAt76hpYm=V-C9d+I7s5b#0V5SaC ztga=IlQxJ^(ayjaAxv;nOTuT7DB2$Qqus)hsII#)@{{$L9Ld-cgzPshil1rPY(w<# z#VApDK&nUD8>vYv1MAe>C18P4z|yr#fTgHK;A&Bw5#0Rf90qs^Y!D=Uk(O_fH>K6U zXM*Uz$>`g5(HG{pz?AwDW^bdt7n`u6eI9r!_Q#1W~O(J{0Ms3H_ zuFWYsy!?2b^~iOh&Pp_^dE#5Mp<-!>wy9<(kw3)-Vdmq4K{N?{eMK6n{d5g6HpZ|> zmlB3Qjf5xD(N)^OqOHNTTHnsFi^Y-~G;Q0i(-a{vR0z~bko*M{5YkT$_|kVmD|mDk zE-l#CN3x8ISdEY}7?p>rWLkf=D5i-l-Fx_SC|1tcy{MO*gNi;&f7C5@4WO zq3dO!UIf+(bL;vlPt3ahOin8Am1TWfmi2N%p*wI=F#~^D_7pb$JY~Kj+m_M44CQgO zuJkZ51&c7k@^QlMzvQIi9;JYtq7~E!eam`$oC+ru`4wn3s~{%0L5)=&=PdO#b!N+& zJE_R7T23k&F`0j8!XmjB7Uwe5b{j0RgC4gnp53@`@<0|p#CDr6w(y0EMzX|q+s7h# zskYm)Sf#+ib{p*Aom3XtZd3D$w%g26!EYDhZxy!N6=%DR)v-XAJlNT8D{=%038`gx zuH{eCCcCrUrb6bC#LMR62LX=Zs%*FIY+LV>5}2ROs-3clvPJ0Z8?{k68FZ9AWk!xV zpD=m7&Yy;^ml2QG6)(aOF@Y~~{7|BaJzdYMxvtm(8jc8L3vOG>ZE&*hiLM`Ts_hWE z{+GwYv1P`OIngd0tW}*8?%MyfHxDAZ6$p4He2IX^+W7}0;A-XTFOj#$3Kc6Ej9gANn-pVglaFn1$&n=A{$x zcwOfNe6DRC3~Zl(_rL9(qY^mM7r*DPE!9RjDW7&0kUkd}A>I&o0&{;2|`PfR9Q9yzP9R zfahfhc*tlY;IaA9_H1Uj@F!+-Wdyub=@6t4QNVyeOS2cUS88(NgG5HaLu){II07E} z?ST1jVFW@5QW-s&#@+HWY25j^A$mh9C=ic@(J*5y85@+e?<`JxRaAQu`>M8R6~vJC zp}lK5czs_`DzX;#iugsH5kaZs9pNaIqARd!zL{RTI z^{A*B=oFLD5G31qjSeDHP?RnrQzTG1D>5aLqI3|g@}K?)fr>v};w)@nesRRvz%246 zm2+r)5#6$2bj#8DK8ZnHH@2lF1^Br!N3}Y-1$mT>V^4AOON7?km||n{ItQycDN75Q zvN)j*QJCcL43?fE6Rq*ICfi~Z;!emy5)o;G$GD3+1!*cd>k1a#CFN+UQAU5(wQGJt zohi->*-CGja#TtY&JcRy#hh4C3^!tcNKD{W31Y>}N6rkpW3L;9mtist7OkK}F&4=S zb#zJ{X+$ex4MAhDhK_;4kM0*E7uC1H39@&KH-LP0-R<;U9SKfxh|nX6yTlW_kg|G` zzlq+|yOs)Y!6-FTMds#dI9nO1h=0#JLzV5_ibYrp43r6u z#XAL^W+M_el^Zt}&GJ!~~ zQ;__qQ*uV$P9RYrM&CI)n4Qn2-7svTM`V(ZH@68Q3`no4l^V32OI1wjg1>9w&&r!f z>hUhkkGqpTuB2!zsZ)!ARy}#!)Odjno9Kq3H0EN$N@M=pXFukC>Mj{`uLdqaX6hAZ z;^mX0n5W|1apBN>atnuxWY?O?jE7^?m#r>IW29N|ycDwKQt;!Nm~v^8itxCmsp7b` zX{L`?s+pySDb<_=-|MvU1NC@J2xYO^#Ma_p&W86>=mCYGs0KD%+_w;vzp*$dl01O7 zz;X-zD|v`STFsGM=6#LEdCE_fSNVd7Juu#NY0jwI+pp)_n0>1ai$eW|#UUkPceQ6J zXq>hylwjJpq+|-UYaw6Q&t$fBx1XgBmTa;-#XA#(o5ED1@!A46t(v2)nE64DwnQ^3 zz%OC+<&L&yywg_EX1o&>LjM1*J;@p7oDDDi{$zlV|K;VS6&?=B|DYHJ$dq!)KcQ5Z z9JVR-gA_1y110}UcBYps`PWKYS@N$pB>8`C{%j@xIYt)7UxJa{zG(dAqMG~ISCW6Q z?^OmDe-MC`Om`~9{v;&iCI2}l9U}RMk=4snJ#Se87La8Li|hxK{M%`Cd1F`De&j{x zdwHnjzuy5{TnGI9O8zU0HVCuzF`Fh(&=S*~V*l}`I~AI?&2L+D=?S!wVSGrsT17M~OOwlrgL(&V3is&uI2-9*;nb0_kwITd(bd4+!{r*8Q zeaS!FsX2T`(;Zw5X>Zhy&IBw3;9_8bQoz!+OMs=QMc}gIoEh9fl79!=N|JvDCdVa% zCI58ZK+~Oqpg5!H4jf@g@~@Nady4teKWVHkB171|FZs9g?ag$@s0%R{_x$J#i@vG%P2hH|V=-;5{YFlg@FhqFoDK3NllIx8=?zdP5xR z@wt3^I+OM{XX4IrtaROC?))6b+H(FZOKjE7ajYg)@eV+ewwfFOfu-XuIppVzOyD_= zweXFB4HvawVxq#?R`Fpm&E$Ku6dW@*`!)%s)F&1xqsJ+n z-h9eD`dpL=3wMWIiOlWugB;FQWnIM~ICoYXrn3I~b5?uIhZH(F>WDZ45$9h zxZkpPsBtz|`-#xv2C$qsTT%vWkwRF=Ed=jl9hZSl>F4pZmUeeUmq|>pAYHLtF<*NrI$@;;fZ$x=BmOJl# zb>-+Airs(;|F=-(Yl@Xr_{_Vq3LkViT!kM=h3|XvhoZu_7@YB0sPNw{4ZE?<{6T}6 zN8dO*6+RIN&Y;4VGusjsK9gZ79TW{#;TLO z=e=Pn{4+$~cmTI@p(I6Q%2oI)1KT%;_rMNR;R{&Wy$IZpaXOR50gWmIB1>RfNri8# z)EY9xc@KC7s_@U=dG7~P;hXc`*{bmKsJ1Urh5x_`DtvbJK5c?os?k9fT+rKn7$xB8 zAYQiU8(d9=Z#IPHyhof5Iq&f+RQR9I>7ZdjYR7olMfq?Benn0A#!*A=8#h|m_Eieo zzO$f%PK`vPcf|_Ewdi~dBp^8*WHBU5%SLn1qRdqCosE8q!|g}0*DujA4SxniN0Hw!D8=@p_zqN%fBDm( zuF;*6G{|h(K;>9YTs5oSmYFk>DJct!a9j;Ve98gWZ|3JBL&OPB3`lxbYH|LcEws4G33%-cv!PVAmV)GE_>< zQ7JkyjC-h*ny3`0m?>Jx#ZxJfe6o#7VcYdoiuJZpDI#yWA|maRjhvA5o{u08WCa?P z(oRRRZ@lo4KG{+$s1(i#@Kg$b7?omIDk)JZR;5uXzDiJryJ;Hi|zs1(sA!ARf< zH4^If(KrgK`bb7$1U#38n1(0WDLR0FSvkCrBUPIa?$xi@uFPqhng@;U*lgIfKA_B7 z^DlkF>`SR#7Jo@nUvh>a5yt}dDjo309AcSbbD*jL0vLRM-OVgk^r;3FXqt8-*}D5G z>>(c&k+s}}ZLsz9ZRAy?EZQ{lWPWE7vNV+W9aGSm-`Oc7%rqIV5vxxw4fvuoxClXT zv3*B05|cK#1|U4BM982ke%U_2Ea^h()$a^-vlaWgnNqUy6aDKd?Qmg#79?il zWdQNVAaNt5{?KtfbSvip`*BgGx-zu$AQpwYGFa)*t~y?1Ps=r#0~l#?W+wJ{*_e?% zjn6`Wg5(vESyiD~0Z0 zlTe#ooIOosMule@P2PhcJaKP6L`mfh72?T4P}&(wi?A1?F$xCm%DMQ+z?v9B$4 zp<*^`*L#X6lFo;UGxf?oR5Lf*Axu?TeP$=1ZjEaFspLQX(6HP(NC~Re=2lO+&h%X&Gco_TexEy z@8Uwcca|&p7U9lR$>uoijcM}*%?Q_pd4XmW!Rml*QeoY2@z=}0jFx?AJvQA1acquu zb;pbf_f&+9BQv&e1#%TdhQK zP_unilggbzXpRO9=gxw76~4~x<&EFB))jNn+3Yj#Gzn6A&2vO8Hz`Eb5l_(hn$hc} z3CC#d)QG!nT($UZ)N0X2+n@1nD^Jx&7$bMbXZ=>Lot9;5F!r}{=b^Uz>%e_IMn`EI za_98|wpNWZ-QSrzyJo9=%|D@PMQNyi@ognEfMShNcg(9OBcm3`?zPZnlQZErKGUMS!P&RI#Q=gUio z*E9o5i^v)F`%}kafBFkkBu(5RVw)YjdKRx8$#s6fwZm2#xwFz-b2-bUaJi#&q(&tl zJuRm~(nv4o2oEGh*g}Yl?NCB?hv(R&@k$1vXFQuk{Ue<(@KRAi(dMwHFgDCr(6=2z z$kbsA>Jt@^;Qb{6>5Xx{;!83!sb%*+cyXv1+vAJaI~Hvx<_Sbd zk0l7*YW{%CP{gR^csr0s%i`@sp6yw3k~&?xC`_is;9)?^F?h^*ik>6a!eT1gCC4gL ziJgWc(0N~Rc$gLDmWUgnh%dUOFU?T&owJfKcumWD#OB&rI4>at&!@)AL|1VP=ORN3 zXuPt*C8kl1E-Z!h9wusdi9{CxWedmkfkf9Ck1;+2(Zw79XRkzb=?xKG$M@xOhoMAQ z&bu?m7|_9v>nYDlRrcBS8$f^vA+EKj{P`zLbmg3AiRi-JHs?g)2LJIBUHMeNoqy?6 z=o4MVOju5I4V)L}h^}))*I5%?OBRt6=M;+wRg7Om|5S-CC%{3-^Y=`26=#FLWTLAO z5II8W2PV4M#}^8R6(lsKD~YouL>IJ7PITGn+Ynt&s-%G3Inkv6g@p)7Mal6|RL=eA zcA)*13zCpc<=PS^BJu{E(7i~A6zNDmqh*N6PzaD-0xk2zXw;#QpiscPq! zR3!HTH~T;lv5$9@&H1AZO}GS6I2UF<*y7P>x6aKafDt$U5y9bfbS&baN3NeHj8Piu z?kG)J;F+W+kNfKpyRxCjxAy{0(0wA(85MB<>L#L2@QGf{PDgT#WlZP`Xj2zg>2!qt zAR@Ee}txd(sroL@xe&se?>&@bXv&^j3HOV5g>qxa{fW#v&lGI%76eQLQ|eW>FN%3 zCjU7DvImC_5YcRyd|58A_q)D~^1ehp@PPV|>jCvCwo22{{jM)*kadt<=}WHk8+}=` zzNEB$F+tzy)0!kIYCe7CKCwQ9-&LQA-ltC~m_DVdi~$uyQX4!U^-vSsPN?;0cXs}* zkGxA@LW1+OnT30@F`vbW#`GyHo{LaF7gIuZEXvsvGqE~KKQaoasc)83u#EyOvQfYf zS)&kW6ymOkefZD*D8P34QIMEtF4`XX-baX)_btOg??+2}KkD~BZy+#;vi*IyjLm?< zh)Wzs)y{%u`S*j%R~4M}*-sB) zaZ*FSd;bFQ@__=f`r9D~G6$|e1gZKmx1sos&T1B8%5XJ%e8?d6!sH_%-SbSve?|-| zSP*6}j8I1bE>d?N=oru`?ls!NgWQ==cQ;}NsR&5JZ_VB{KRb8#J^S__IJ7W#*S%6$ z#Kga1ayHZ)mf59U0fl^G2YjYAht+g>uuTOZ%8O^B8AuLu^$?&;qNz6mb&#B{cY##1 z3dzRJ0tQWoR^60ae4B2TF{zaziJ^JcYi--fxwgRh-X34U1qtD$23j|ComH{Uiiuj^ z6U@X>_+PHS6b!i6roRYx8}wS`{t^O0z~l(J0Irk}t5JPC|icD$|Dyk&k3cF_NV;sB&lj!=F2Mt2ZKEvV4s3IM2 z&so9l%x&7gMSZ=^e;H?{yl~UNzSJ4r`m*M~q)g2V&9}U|$R0%uj3H4wz(dmK>F6oW zwRJlqMpEspbdZ&vK0OLzA^hodbaGTU_v9!k+WoYy;ESiw48e4><=D#5&Q{HiabWj* z{E%oOy3GTSDm}0bJ&igQ1pu&+*XiLL?Evm6d=MgLy@`^Yo+;u!BpJcF$wBDiCTm9t zo5o;0S} z7Yxsm3&c0uOw=Ea&P6O5yMC`qY*3Yz<))zh#f{PUU6Jjg&6|65w~N-Z1u$W?AKs35 z4GSFav^hQ+S$Mm8_8>@};C7gkJP7*d-#ZoDt}b-P--iu5IYS8x0P!Gr^HECR%$ zk#6P~!I~WA z0~kc76GB0=tlmCX_!y(BS@oz!8NjT|4i!GkK{1P> zdveG?<6sJ5E4PUYWhHw22{ZZNY9=47)rvPv zU1suOhN*p%4<^MFG!B=-Fcnq2nLF4tVg^GO6o#qx=Em%|KZ>0P=NvWlsqBeHosp>y zK?!e@5hE4t{I8x zrV+*(wE0_M&%U8t=DM5F#R8!=8YN`9Xd3&)aP^3W=$K8=vHnClO2!CV?^I422H65x zqbBYy=I{}+60%BDxMdG*QL{FZuQS*p4h}Ta4&CEd37G^zZ|k5Slf5RImX?4t94!)% z?P{P+X4z*PX#1EI2ig$i)u@1YXV1Dxq*+m&sWwX`iRUURGyKEQ7VzXKh&tki z6n@_L^;Bcf*>l>qemN}qEoMwidACw8Jv^kBK$^>Y$#a5+G{Mop>Dd*_alHg;E#_jW zmkzwZXM%Yaq`6B9n!3PV}lxk3OPt2;@l$qv)>y&i?X21PBXI|uE;Hq#Qs~{?} z?SAnSy4=(4ZM z$ZxZA`u#WB2)Zje0MqHB=fpwIA;MuN;|`nCs%UXh*EdL7VRtiP`cv+O5=9ux+<`Z) za#Z$4rRn-*vm#SI-XAa)CNY6w+`96kJ`J3 z`|loE{H|c3Nl)3|r^7cZE-L(tC7&h9!E_xF(jKRNosH$e> zspF*DMQVRdJ3#*IaZ<$Q_TQZ%)yY%o`1bgOn#c@OY+6iS^k-A@6%LfJK3exc&xu`RYsucLMgCeh!#<+>)b3$m3AY}Ix8%^4CNH=D&#)rjK7z(d z+$5+a=A?nwG5J_`Ce7K%>x?I;QT}GIV`dr+qGf?sZ(*$mnx_rps=2}T%J^%jQVNJ~ z=LIve6;ne=5>`llLh0ALN@&ej$3@_YDA1?EeC-aqxaxpB9B=OrLp#RD0ou21w^uYf znLJbmiioeM-3ZU&84Z8nmm^|OKWSl)E zOPDcG?-!^Z*adjjktd#3q!5iiHLXD2`RQE3Z;^dgN= zs7pn&xw}P#!$R0yqw7JV(>BNN=(d!+w!2oB6zeW7M`Ym4^+4FgZhLe5b}f<3@l2QA z<($^;I$a(O#YS$9_lMo}y57{?pv#Uf-6DhO^K>~JcF)&!F2oU$>sz`P=&}tKj!UDP z>T)OqUvqtDx2wy}Zcmr#?kjZRgetb#Fx?_5!K7oGv!Hu1c^7BXns67XmoMHetQ?RB zS9`Ia2jgis?WM0sFQTTjKCgehP4GkO(+%lHEEQscNuYyFlmrtVtIl$IsRXNXCSuGD)bH3Nz9>0^E zS~@;IJ0U1mryJ*IYt&7d={&vCYrBtI+v9ieCi~0$Y~w!m0PvlA!ru3Go>bJ5b@zd1 zkhr)f5DPciHx;E*>bqcjEK^U6@GPf2-)nA(DkoZx%G7I{OqJ)nPg07H&UW2 zZSD5>THYKbSH@^62d3E*g~qMC0Swi=fTZ`vbQU@{RVbw zVVW$xT5=$^s%Jo?uLF@r*#$rQ@SRi{D*1C}3=8})HgLqIic9{u)&9*eG}MjYOqx%J zkEF@S?;81?Wn|j-0sZD~Os!RFwN~ZF6Pksp$^iq~j-kCpr4?zgo^(1cO+Tg(iSQn~ zr@{I)tvKD?md3ZHwcE5ER0Xfj6>hixB~7(WrW;y|+v+BLy8T91!!byQa1#VfH?oR&X-P#N5AvEsfnX@-C}nnk zrq$1T>WMDZ!Q!qXMbG4Sd6!0(K^1Y{kFZ9*-vC@67ij=j5k*=smHH7hp?-|jd+Ijn zK%CyY{Zp<{=oUqEMv(mr0c5|mE#}^hV5D5NA~G!%OwaHV|L-tt`R$%=qJsej60ao^ zWJ`|>{0ms%TsC?77DPsBBj}dP6a&p=QrdcvxKP_-Jz@MIYkRFd`M)>9XDl!mTIi*2 zyOqI&);XV>#;s|c>2YgXkY&B~ntOYzm63v6$*AV#M zl>tks5;yQ*RXU*utMs73YdqN4+sK2-bd?@V>OqCqc#!ta<3Tr_)PpWR9tFI}qfNc@ z_2@<(w9_?vdnr4Dnh>Yyu8~)FFdO-^p|& z4`OMy^{zCfoIBa=D|hm^wF@G>O?!ByW3Ax9u90c>`4-JmJ6bpTsFw7P2ql8N7>^*?39 zsj5X6Sc|YFwr1@@X5XeMeA%%EfOB_^YzFmKXpx4Za-&az$i`XtS zbU;5wi`J1g)(mR$x&-UksPxo6v@Pz;FH#bs+vFrSlIK+r&7%~ z0r;RR(qu2FYuuWE4au&Ni>>AfYXXJ28W9R4!dD|5+Y8!FtO*!E z>>Al>RgGH{D9j}%tO-SOl{KMAPFmMnvaS|YtwmV*0j!{3O^Y_DnvOM~u4>jmk=ALE znoz%SWUVD(QCxD0q&1IG23oXHwRWrl4b{34Mx;TD)P%;3Bj=H@ zCN$IpzB%8Z%9}9an?M~G(1g`{dp$M-VWdXd+ck2D6*gu~pfHzAtO-SO+?r4%C#(rY za+NiqNKRVUTXIA#s#}XjQlK;FQ(APMYmpkzQ;WK;0V8QoO(3IZP%Ui&g}#C&boR2p zt+pnR*fp|^JjTYF(7e$n$E*oOGO;EU$#H8!k({t56v@e9?r?E; zq_{g;+?_1$P8WCkzny>EzdKmu9VzaP7I!CBygOMu-T$4uc(|ad)z~+y7U^ z7c1T!E}kAK?oJeUCkNb}F7o!D%Ii2>+#MtxGTMTvXWRhVr&yJj(LOdC{ zTWEHKkvpN&xx52iLV#%fVP2AKd4hL!R(mKmU^=>;9hOVS-gyKPTd7@a#r8T<6Os?u z--BVobCL+*ASB)A?_@(Ly+J)z20OWXv;5FK;_bJ9b5|^02ele>!es-Cw_2A&hgH^! zHNO>1vSQ89?XKpz5Ndy5)dtbvs)s^_Gvo^WaT9oUMX1)~Q0)sPwds#YzrPLG!B7na zxXB(&VS~QnIILlh_~LD{{}}w-%0qVRyK#RAV>1w7Ysa9f>md0dP+@gE>=8yK!ycJg zg(zfrp+o9(g(6{+1Z7a6}03 zcsftaAT&eY2x;&x6XLyJp~8^Hp>8w5-2)uEs5G0p$?WbAyC$?liDpu}ePOqadP}mm z9lP}+8)GN?qrdx&7fcFxlcOxi-=V;s$mjIV+w|uO9{rBKTaW-3bAjR`j1+WSuh9w- z)&YP0(GT8jz|hA$p~v})!c?RLMmZtTf2^{%m!I1gfH1C-D%CI$7 zhON0WZ0(g`1M~qvGg_`gg>$&OeGt&Km4U9W40K~euB{AoePy5x!wlF8-e(}p|UU4K0jSef?^k03@mKD9yD1rfGRc1&k z|Ije2qDNWov~V^?RoHSlBuj8c?PZL8YG@gi6N(3vHspho<;S{C%i+AGfSqBLodF5IJagR! z@jM_lgtr{x6*tT?px8=(jxSjXZ00iFVA?EsAQWpLozDw~&X$ApgJ8%(8)#AI1*{wN zuc*@c)7eoi2vMs2#@MWzv^51$&CB+u!>bXxa%EI{xNo7xFjIl)2v^HAOh+C`tB>^7 z&Dvr^3Y%VOtxwm@S|{&K*WZaSFhwx9{z_X;Jh8U!O*h<`uFs!9i-tTg^s_hJSbFkl zdy<})XRW(3I_6$Z_owII*&}_tNMB&-6G~Sep*+>g3r~`f9l}i1#78*MhP$0QJIqe? zZ%-GudiYcbQ5d1$ZlRes<% zq?*m^g7FxN?d++);Ql^k$m$tw|0yz(_n}^8PMEeIsciQAU-H6fY0!JRLW&m|n3<`I zmgJnoqG0hmPsK}fPE?lW9IGzPIa*tk)BZQ!_~4YYVW2CpC5_}CL?g56_1Wvw;10!0 z+f%tKi&67q__+Vz!l4i-9bHgeu;j9Ry8n>nyT&}gJ@dV@%6%$_b2IVP zD;VUPiLYLvKe5{lvoGjDqRKd@lbL5m&HBRiP!XALx}<_HkVh!s*TXPq@ZmTdg13bR1rzjQ zSf5k|^u9jLhZQ^QGJK~?rJv+p!-{Qo8II@mN_Eia@Sa18zf=k9vJjFbm9sixrwo&W zLe@kXyjNGk`9Vv|MkvgpJ1!4E0ZLByaE*VRyWc{n$QqAcL$aEUa<`2;?8msf)b0}Q zevG>?YjL;T?k2dqj5`WTF}|yi{0WkA*5U4Q_h2Lb5-Ryhk~J&&_1s~(c1IRtSd>M# z@3}m9t$j6lNA`wWsi3B;AGi0{+(C>C3aluLARFvm?CR8qi*qKBgxnCfpqL;t!Lm+3 zsDT7qnB`J2SgzrY=aT@b4tOKU*xGTG-Kib_j5|;`cNuq;%mEWSV6G;M?-iOtZMojQ zQZM}<_LXZ3k;Db%8|rnvkmk&Te*Vf zC+$v6eN(9}+M$APphTF7M*gWpQK0-cEyjWludS8&8QywdVNO-FeB5MnIA-2*>B}5d z{94&Fz^no13N@GcOt57^p}Y_4a5~HOyM@YxHcUi$xb6Vcpj%byXL0wCU*D?vE*TE%x-JZs=aB z)D7rjNbT&tPN|(3)RNlOy-cZH*v*rAOLx0cZxLfR9lf=?L#el7ZcFN>?vE>V6E^gu z-qyWbskdQDPwMU6pHS-U7}S%xrF(@^w_s0C>K)zJEA@_U%7l@oQii429FTXrRF7Ps z148UTZ)ZI9@Aa|_CH)T4GLyQ(r*9#BKEI#v>9>JKE0FlT7H-MG&3F(`Zei~`Si7uL1gs*UG$uHp&R?QyF-&l$fKdnUi^+PTrP=nxlE2uJY-;PbYjj@6&Og&igd+>AX+Jd^+#b zQJ>EHbi}9WP?QB&>&v1A2pklf=sSmgeo8)p`^jGWI*b?XeyZ2G4$DQm=U|NMFjutuv^RR)2---M9pB>60<^+)5OQj$ zq7Z3X6DF2Bb$*nNaHnoZ&cdBK9Qg%z>gp(Mai>m3fWV!)7r`la>R2q+xN}`vv+fQn&+d*CcSno66UE)h;_h^DxBnaYw+D;6!};C*80+fg zqvVFbCO?D)wuxSbP@!j-g(g>suVcJy2rQ2s5k;^DjXbCXTL+@L$TKXPxI7d}=#n*P zyazR+_i$cC_ocxjZ_4FODOL%2HuM`^-bQ>R{BeO1UVb}oSJPc*}|LXUGq?TgKzrz2YW z-|Gz)!q(u@9_K~aciXTfd#jKDNRZ{PQ1F(37$LFCC7@_X>~x9L5;wTSMoV1l5=eY` z?JAeR)`kSgK}93xBB3~5Bw*}F>;RU>Kp+ge=z6xEpQjjCq&6${UR=zqOMlDRAI%24It;go0NmCJD!d3HUE-PVe_Zu*QRx1)Bd%uyFv&Q8k*RuC(`TJX3{vpMOpd9~x3oWdB zaFhpxuTER;gHcZYwhB%y{lGWiVC*XJ4QOO*-TMdV6*bsbT!-Vda!&HT8f*=~bDJcF zI(R?xlw6n3hxFU8w1nO0vR~yUdAIgd%pYySi5(%H0HXkXo=>Mo!=7RfXmB6a*gg!- zSK=_Jh2&wMe9$Ey^vOdmdB`VGVC&`g`y_g7B@g-}ntdf7@JY1VN*?gZ`(5&WpWN?~ z`$;Osf*@0{KQWV%Dp&(qV1e`WNTb`FERbdb^rI0QKG(-WJjHa4*z&pJD+&tb8p+m; zbJ3*n)-__==ei(Gx2_QzKi4Nh$b4NR$Y`!dr4iRPf{^C=X=%iDjUc7D9z!E;*9c;o z^zjhJK0Tylp#uNjn6ox3^Nn= z8P6(1v|CPxoK%L0wVV)nS{b6wa!TYWWysz=CqCI0WT)i4zz!zE5KfpBYZflLOr2ItdPT+V~0 zUs5mYg87D4lq2jnqF`8V~F<4wyF_v5=8A2|r896R%7#J=Sj2oA6hKozW zC~+B)&DqvqlriBl#t?I9!QgOd!`X1@FpgYma5h}(uryp6@G@MQvUb=SRN-Z~RA6Gb z#9ej*p(}ROt%1Y@x<7NC3Ca@R$<(UIt=kFa})t? ziQI`gL>0oFs6&tnckJoT$?Uh}JtpAsvqPRPm->E#23?k*P7t-K*wK8c6as~aN0g!3>1K8S#`O~=7{^|7# zuD%s0b#wi#(u=ge8ilO^E^yMT1+(?Ny$E`r!-tfvC>?wHpL9d%ilu2CZe>bWElu0- zKU2D9X;v$aXiC>D%|gZhOzDQDS)90?Dc!U*OAv1}rCXL}_2FWsblcKRI=y|Rjb-af z8_4FBHj0faZ3ydE8ZB45(gv@3rTQVQIOF&DN*l8XbrR(K2~mee#GfqgP8WCkWu@&% z{NnC#ad)J+J6hbGDDF4HGn3)E0o|?1^27UCXF+b!XF(5F4A7f=_pB2u zJv?M^0mCCkK8GMq`TKz?<^6{*+*rwnki02g|SL%--Mj_C<<>emyyUz zhI)z&vC(!`$HbBj3ce^2MMsAX0`b8|gGoRdK!)Ot}N*GRV<) zavAIhO2jO3(ISJLSUxn)7mY|U^4e_6UvNatAZC<6$5*JTT!m?3hZXQRMB#PiGB}2a zl~!aR)-LXGVk_ON9QP58qB508%tSRn9jz)9LZJ_P?%*{hPr;6Z2$2w7W$?)4JueB5 zCN*SCZX$Z>E0CEkEg;r{hnjEXC@9*2*i8mEj!P~BX%t2KB!RGsduUC6k8hlc$B%0> zl^f`qFDjIwvepPa-3#V$-QJdmV8_8Qsus{u215r3@;XK+D=!yAXEnsR)9|LRZj6S| z@Az!_-UcT52Z~He)DV0|aUxR&v{P}9CZM=i8=O-iM6^1c4A=`f25MaM2@`q98LDw0 zw@OFV0M($^@%H0~sE^K~N+t6ub)Q#raT=*1&V{a@JwZdvUlLzED-#gq7O0&BaUo?! zatpMLrMOok(#Uxa8t7!eK*%9bBbkF9d(aueNkF%1a8Cv=Q<7faYUQp{Yt~rdE~9*} zSLH0|dQO#Y#qWxSI6t#~_G%hJ3y`;{`}qv=Qr>_t7V_M}pBDkNTzUDkYeWpSLC*Li zNXq>HbI6+>a`OZ1xN=9;06?>HUv1^CQe&p9aF>AqmL8)nmn=Whm&)(M@M>JDXozzG zq*M>u1{$IXL_-=B22UUtK-UQQl%2=DflgbXg5>|F(aAy2{m>z^{lHGfu>G7yW?amDlU zqw;qu)|Ju0eNUd0cou3zw-5`0G0Zib$*$Z;ISl>nbB4jU4{uk?0%_aXoa^6EQ_VySl~diZt!W;cvto z{zlBC$%j z5(~nzt6|^}Q-t(P6j{j**VHXgLK2H{L>>Y@yh{+EAuf}+r0Mb{D1=YW^BZ}-1ceBa zTt1&u8k`Q|K1yS^;7kB3_C!@;I@;{ukr+|VSz~$%>6&)j`yBtRo6?(3un4*0-h@(h zZ=&N^@}?w>Y_#dP@++AHj4-&#e-s>Ha!B>)#vV$_2v;lZnkI^g&MKJ`9wP2?FG;kh zQ_;?jn$s~wml>Mhm%9ZRE^2%w} zio%LB-=6XdK;AW#O+my0SYWoqS^Z~wKoBn|9@Gqt#4e$1#7DDk>sB*@)Ujsbtf}B{ z(7Trh@0Qyf!JUw0>LXyNNH)GTfLG1lZ8x`Jk;0~P^PYt)_(_Q{{~Zg~7LFDd@e17` z2idb27Mjw8`8UtF!>Ez?(_%6XpQ@|##EJMWc&I&mQrD!!>3w7 zuBWZzY_Mg+1HAg{aYr9xcp=E|$6?J@Cpd`S0s_vPjPVujT69q@&u$gDU+U$491JS? z4pu;5laQVY34g?}*7sNhE3imvq1ZW_Q(~>T7Z4puYF5V%#!}o(-LYrSW%Qm4XN3f- z!tpa^B#O3iv$JHW$_T}RDCOxqh*F*w$^w=6_an1R%r5ALV$cn)u^j2;V1o11yp)9; zZNa3{6czCTi#%3%M@`jJ;jIhcP3Fiorut;qB`@NOm@fqC&+_p?Y6mTWEA*JPxZ6eL z${zb4etd1(@1{DrOKGa~I644>8zK1!QJdXmgbUWdfzDk}FW3Eay<#~rpJjO?JIcJ& z>_Od0Z+Rk#*1Cf(hPjF(ELh?!&Q!!+13&`I`SBef)sVp4oW*S$Sne#&#Fw+UG{4-) zgRSq{CnqJ#L|W@VexFWzY2J^=mVt=8qxNl39$ z&2QC~GZ-@0ur+zja|4~l)iTp846b@8REF1w_Qy@y?pA^dISfb$2=@(i78g`QJdf2O zLji7qvxkh*P-k%)Ksk%A2(W@v8o>JpI*SY7AugZ-cxYQ%!`mXE!;rQNbr!d_$XR^F zwyewBa(}2Ta?orX;_0fk3~i=_DnkG!KFY91qr;my)LGn`DQEE&o2k7Iaqpl8HV|A5 z0kt)}fkU0eD=43aHc&@352@>n&f@Ctfek=HIIK{yqeJQ&>MUM?aUR-$@nH?HTG&bv zW)6mOsI#~_Y$%jNoyCy}4};Qyf^-RPd|-zSbrx6Chk|kjXK|_U(Gse=7dwlq(4hk~ zKCC|12$>xq3LjMH8JxvMv!anKf4R(A9OrL5mk_~tXK|dyA6FVH6mu5GX?&5hICd-# z>-jqGERNGSns;*=Kcp*8qtUaF}VbZJb@<3Z?Tc~x4O(gbH&b8s3Lcu81jri=r+`;cC9{gC*n={ z2bsD_N_+VUxf346aOUO71tqWLWO1vUo1i*lPk9!#VVR=pe6?1i3!fTi@{)IcNu_$# zwMD(vN30hfaWPgym0xa2YDE)1oG$Kvgk}YLQ?YoAa?fEs5Eft`EN=C1ZdtkTtb!Sm zUr|3P+aTrEG?eA4WJv^>XlyS0Nzmma&2G(;&@obb<+ChTw`j!^boRO=PNR&US_ z+M0{@1_WbNOdI^F=`%X%=Xz)-5gpFH;oZ`5_u&Olodv-&Gn*GoMW4|}g0@IgzS`l_ zvC~3d;+Q#^!spHwaC0mg$zs$Eg`kBg1M@c%hKNh~!ALN5A3^8ykTL7m0Ubu4yTKWR zZ|BoITCp>TJpHt1P2Q{mOb^m8qLvq73sXf9A0D2^6~tjBQlu{~?_^#c&R~)?tD_)@ zB0d{f|B3wlE9rd$zx)LjhbvciH2?g$IBJ5QqM1QIx{=$q1W=Zl^c<6)h!R2T!ypMo5GMZERQHwGN2_-HkeJzBl+f$c6Kzk zGsq5pjWIR7_hH?cHRh4x?r3p$qPRO*+?_7&_V>#x?hY4sNAf#n0Q;YW-%YbjUkI?w9u{La zk5+>)jKY}Zo26az7+naufjk>w*aIyBxaYa=`mWi5v{iN%pb4;N;vE|`ts#4|Pk#?5 zmKvWT7CO$oTma=;!;+iU7N!s3<1x9R?)#r-TM-`Ns4d>rE$%OEFVCfDmU84O>*+%m z-TN2*hAK*aGGGx`_hEa$jHB*{xu@>J8*8w~Yw_uG|C=(K+284+h9B3>ewBwMw#s{& zjFQLeU=V585D;^Z!7_*kmw@<%7(<$V&&qo>K$K({gFlElC|_v)5-xH^`viSH%~eNG zGl!zPGNf+#0H68FawRPJ?RyYq$O%>6l|dLSb+4S9oLtq;BD^NE82`ttf`?;P#ji1| z;j)-DIoL95;e(iUa4*cZbvo_rHMkOH6CAmit-@_Eo9r~&*=i1j%huo+n62gXvTRD{ z6|Ltyl)vVtC6(LVx=VJTmB55wR|6NIQ7RALj%)YFod8pzx8)n~7(w42c$bMVNaTSG& zEY70EQ~Y4V?4HwkQReJ=f04x5HO$_pq&caYN9%u3GFDOM(fR=;&3oBAT7O5$F+DYp z)(;m?&7<{GN}A8Ad92_Xh2P;UWS^qK$o}a0b6qortJ@{O+vpmt>5lQI<^5w-iT$GlN2I7uj4EV zBQ+65Cx6fqzX`SB4%M@B%SdCR()K2cSSC8&Lpu>u%A_~Q2a_-0vHzYB;XSxh0(w^) zMRTYZB4tzokGH7X70*`4O$YLx3#UBuAQHkC&(HCuhQ*|s0Y~>x0daEG8%G$SP@5yr zEBYB|?{1LEJ9ShzyS@Xj1RI2Dd>5xKR8{F43E;2Ba#pEA`4^;P-kP*_OBX$0m)Qtu z0P99Is5R`kD6eUVGMFw=VUM%G1VtnSL(8*qp+>NjkPD<66t*TOunMz8%sEikj~A%R z0GVW~NN!b&d2Uy-lkbn~xDIZ9cf#MiIDU3tp3cAg&HT$pCfX+>G_MYu>D1>LND%FU zLf&k4YU4IxJ6QJ8fJHO$Ohk`~`KTrzaq}SyIiUhj?~)FRjwqNTqeoIZh4J(Y?CYZV zv{+S#FfDZmCzI-E8;v#hgncQPN<@kDDk6(8KoyA;am=9-^1Y)zm4Va2tvZn$HdBXw zF*Aa5w&*%|C%`|e8EkkX2&Qnh0ixiM8AjjYn#UhFmzn}e!fr<&Lz zOg;w7jt%Y`(f4qjV(VaP{7rB@(8X@Xg=$)mN>4NWub5d`V5gr+S;8!%vwAft)9G8C zje?5Q6^XlUTH7s#$yyw%sTIBj9mg4ZqKeKwrAoqIA{jB2P%|65o?0qzrpHB82b_(O z)o>ov&QMBL6kvc=Zpc9bD6G0Y{I=StnHR|7)y#%c zdiMg_jyi=VT`S-J0=a3n`58mPWK&4riJTjZUYkO4D;dzW_wr}oZLGqNshb(%` z@PWdZk+vS8lI-Q@US!hR%Q~ zxViFVPEn#Q09jraQ`Bl^tNhmfH zF`=Yw&_2dQPG}#zhX*6sf6|3f7YV#Y%E?P-vT^^WY#+W(u`omV955eQFF!bf*5j%D}af=kj`Q3DWr;L=cne2_2 z{$jivoN%1wQnU&qoG}Y-ma9UvJG+9puMH2m$n8wHLOl%r^Xg%qNIlHd@#u{Zk^LW|rsUai;TEQVAPJLaT4DxbJWjHT#BF@;L_?OX zE}EtQO2XzaJA9wWW+b(eQN+-Q+0}%%q&OrV5dbgs5A?N>2M^z5~BB?K~bbFDdusp_0l(C@mN3xecNTb`tALCkzDxSEZnl0C;2Av14WuseJFmuTIWS`_@b zmPzzLO>~j=tcv2UFfTgoWe+sxb=G{C{q8(-IZpnJ3Ls9@r~biz(SwRTVAllk>PUE2 z1ASepK|_hvWq$1vl>>_S(X&S zWkGQQ7(FVp1yViaVrp82%u3dMvnW3;wQhwy4pI)=D1EEBlQktE)6vPCv5_p`kKhWS zt5u{<5;K``554;%vchicdgRV-!;Ht&OUnY!xx6LYvxAX9HKbh6!tA zpUQ!#35YNglfq)3nhk!My&(>$jASAcf%>jJns#~n01Y}4ynt}6W>B?c(IC@YB^w+M zo3?&t1C(l8`xJc#XfpUA?24ArThhq*Xtu;R{IwB=G)xmt$c3w zYL^jBG|Ju}M8ilY-yG*qf%^T)8c*rw9qQ{^y8w^LU%Jef* z7aWv|@a(CX)$2DT?=jELPM5vHcosE|?O6*=GIJLX?&070q&J@mwHPoP0cRxNL1XWh z7;(mO7DAQd+!d=ekhzf}$yiH21Bs2NAPbz!h!#Hdlxt(GHXdtfE%3}d80~;HKa(O& za<8Sxyc>G{3Ecu`MYqJRTdp#Rn7Rtq!+NY2i}M3+`a#w42xdn6n7F;m1JM#W!a*zz z&S`He_G*Xz!OBL=f7`I`fc7^TCkFF#t@f^>BkWUkWJevY@dX6-Mo9PmByxeL3uJz* z#W;xcNWOyTA+jc=LHl$V(Wk;-jIO7*qnZ5Y8Vj4aZ(SrRjn@?V8T8PZSX4D)QKJ;-1sfJ!7|QN9d#w6?A3N_6w|$_XTK+_F zRlZc`B~i)-{j;@V(2r=p65fmdYK? z{>5=~X=?~6ByQw$9AZIg6AN6p6rwL=QfAG5i7rLJJ4*s7P|9{X>5w3RSSj8g@S2(_ zsCw&367GiRun1g~IV^Zq#6&lk>Bm?R1ZHmCt&)pd5&vpuYbalE@d`D}Mzi+`gSQ^L zctulVQdo5LT$qZ^g51OBUPKvp>+1`Isrq)qlcqCUqc_1a&;9eWAQ76qH3FBMho;W2 z!|F5em*S|Ui3F5pD?NV&gsplyNG26P3jJIkh5w3+=~lAhcQmIgDPlmAhXK--h>4<> z3@2D^?1_9lNWW>gLF_C6h|wFUj9Qd`ny}lhTaoO#Z~1 z3tp#g2D1~SQc;EvjQi{TJ|Gd+dJ3uKw~(1C4_`i2Ls8wGSA90x@S7=#2mBhHt)f~(JS%a^ z)w?_Ow}+w+UHYd&&TvI2lSzS4!iaQ#{T&5;ElLnL?qDscxq^Y?-2XC9q~saYvH_9L z5ddMDTUtvdf;2a!E6!;=W2!+Tg`(hx1Vzt&0eB~CWKGxd-wKjMv%;yEr>h__PtW^_ z-e=^NbzCl$3eMzGADC!RvM$QLXf9E2(Jq>MiWb*UfQe2;W-HvzQWag03W4vtcyw6R z0oA%B_Hd8H?)vt}rNm|tsgC!n1&NKN{>S2~s|&6&k}}${Y-dk9@unqHPy+ocyGG$G zQG(B4%XF|-ovt)a_PiIgbhx z3k|YCaM|1_;nX;qBZ&$x{ARiw?p>!jVSS~!pkQ6f`PeXJ>P-0xY_y8lZl%E_a;JDL zHy^6%SS=qRGL%2-+?>(fl)q(qy2d`dIGm*xidqB$WS!s_#DSrkyKC;l6AhkWF^QBA zQ+$rfw;7BtCfWC1M{y_^RHzef0ge7@sG{lCb6U( z0<=#pM@A_!t7LT92C1w8?rK9$-D}aI>;R{7D^OL-u|@muV+lkW0t8>aUEa32;qpCO zDGgI0oiuxZ2l8RPjgTvfRD{2HwesM@s}eQUt8&hJ-bGWC?^aHJcvteRdKaI+=T%v9 zMYU1(6czs9A?T5D6@qbRH-Q@BJ#++=cCaXGQ$t$L~n=Ng)RL0j1IJk=*%+WkqCfo$Jw~>{BkDA?t}~VAkDu&)2G|~+sK#mC_ z4RM=bxasj$OpEx{U{mwaj!cHq{(AOr$B78^1WEfN^Y~D^Y4#v-DT`)We{hgGtjvvH zx32a_ZX41ekq|i04GXzJZxKe33(?9!$zx|Q^gX}HtK4Tv208G~S@)DZG|GGw1FCBq zF`#D^h?X(~Du*@7*}O5|y#_f1!S<->=gE7YU} z)LKJC|4?5b? z$GZQx>vOOB^7gOZ`iMQ}Jgz>P&ZGY#+pUy}U7;xfg(4=jn9T0UsHHt%v4d(8*I4_s zLo&=&e%EqMi^w4bNtj%>_R7l%#VIo99a032SEne7K-DeY2hDVym`=5kT>RRWnBYTV z!oYzo&xxt=73>CrwZM6LT;T+)8^7ub?dgD(x$Zb!a)aL+>$0m_qgPAo~W3oZ3r1Wh5ml#zrj-x z(N;s5*yj}n8q{oHQgcJAb`vY!I+!Iy5AsuyELg59EMl&R8ivWbiI?!Fwz-YOmJ*Be zPdrRZWJ^&5VauFmZ_IwkniYLhBE;e<{W7gM`dXXM^QaopFAvBuR;D3o7O}E-qP(Ru z>`yH_i1c&?xe2evY01PFzr($)f|R`JV2I)rbVSmjrqr(4?-hV zpI}_e^wCwaNm>i-5jU9;VffV+x$%{u9a(gRghby$83tDDoY}3^G!`sd3a_>ZDS(P)RyM< zhXuBqrc<^qUbG@Vq}hm{OteNI5aO8+1hQJ~|KMxDsjwW?PND(436w-3SWw#g8!Qvi zf5NtIo@~=Ho>H_^4VB;;g#(N}dN0psvoh@Di}GjWTd6ibA^Vu-C0He*sX*Ra z)>b&k3|_T>HJaE+ay;}lZYoNMqOU0Miaf8ZLmzyiWio`nVUE5Q1G7<=GPW3czG1D+6Xs z4~#=G7kS@6sqGuJs+q=DCH)~|++5e#e3Sn)gB%6H1eIBOCe+baa^pmS= z;sDc@f*NArh)84aE~%NiPeN)uw+I&BkW(*G zsb!Dayww@vF%+423~Jx3pRc?;uoK~+ z5!iimUF+23Jb!Y%f1JVVS~_C;0|P)$~t?D(WrY&iG{Q?}Z z>SJKSodSy*rRp0U5Hb}e*(VEKDfB*Nsn`3aEFaaBkWGvf9-p*?HlU=7N=X8TNf!=f zp^Cx5q3o4l){_!jK(RIp6zg3wQjURJ@rg)iGBR<`gGmQ#dx6NrhR>oxQbQUg2my~? z_a=CBDLg7ch}F3qt17b6=zpC?>b}7MSs;hn$`?@t_2&CX0xJ9M%7CE&vW@&|MQT3~ z(`oDk(;H^os^2Dsyx(;B291}rjiC(IS?)RkhFQ)Ajg?LS%XrTc0GhO;lx2n3=^r?C zp5H_MfdmU}mBx0PFX-<79BqCj@hl%k&07yT%8Ut+g=X}6`2t=QXeE9O0#dXNC}r6 z8<_k(Gy~+rv9)_9eifo3k^0+EK%pY@(bDEku^Xra8+}xvEC~dKfRR4(>;*+15HMtr zNWiS-8&9tCkCjq^lqlH*F^OPgf3p<7yv$qZOIk=Algow4j@VJ}hh#mP%_w1cei!X8 zp_5ottNGtbLmC>1D%Qcri2%@P^$e*dl69i&YZ6zGL%+bn&?NhD@f>=nA_OBA2$39R z`5%fyJC0HL-<-Go?~s4!V$(rHpb1(6jGv~Ei%8fqn-W1p72e{#yT9EI&+3{dOsN(WtG04jQmYQemM2@sh4#$3>O z{4lk#-Ei^gC>96#_YvwF5j=G|v@J|&(+{Rlbz_tp z+Ctq}26PhruedKYRNnDf861}0@5Ec@xGF<_FvU3Z3<8N=Xu!f!Tc zReRK1iO^S(`8)MkEd$mKfmiKD2ME?9f^|c!W4X}rIUEeC0X+?Bjoc_vnw**=EqZze;|Nhs&dE; zAd`FmkX4QX^F&+nN>^oX1400xljirRlqT`WmM}^YipeWXBy=imQ(u^~LtAF=Ageli z3xO|nn|vB>Ut<_mhAGdr5n4&}e=q%9 zx7E?{QFa;Xk>G2a=b7vb4S>jZ^4bck(py}x2vYL;36YAIIw@ny#YpxZ;!SbLj7H$| zvvtJI(M+cDU(0_ZKT!>DbOgQHIV)(}PvUcM$Xak0b!*m`8bNv|dLc38{rADFw$Sw6 z;;I!jU(!ct={Mw+nW?<3wv0jh1RKi*gWXzkS~RX3ii<-H9vY{qtjnW5hG4Au=33Hp zD+`V0E;#n2B`yfX8dA(QJ{oNs;IYoAIq0r?4X8s}L;5pY$c$RT;3u}xNk|~HU#02j znN2DXX~C__)Qr^sW z=-n-28d!rke!RAekXAExrTD{N;}Ki6dwEfj8sq<@<1%0WAs*IO%{h}#ncw>$?@c45 zWv>!oS2i(rw5&)LT6|;)pNQ09CPKyKl7bdpRk(Yddt#DT*ARZzG^k2mV-;!nrHWkJ z8DIC4_{EAarR;499PFB;Py2?C^5PYARyE?z$B<&2b=8nWGrbro=VB?6A45=Et1B$% zI3|j1Yy)!0)@G3#zJ+TY$z>X>1symT`_(mb)F~&w{F{7x5dSPcT-;|5tnkFAN8)kY zunY}0j(8l0N~~Gh$-cq)K`<)^k6=V2yMiM;@-2H9mE-drU*hdIj=?b)ymj6JHF^&k z5D2?jws~EXIoc77S9h>SknGPPjftW)D?7vaQh}Q0ogDqj=`f@Qo#&sciCQrhFEEG4 z1I&P8lt_8lB$aYDFHmG#U>(M%H~m!0m-3i=4AomKNOp)rVfOX$PP~gz)r-NTrZuT+ zs-^ONwfzsP3BxmZUEw#aBhwzuxFlm56%}_UAy6ZVm)G?yO46SlQS5{?8-^xd+8!aO zk#D`f7#Lu7ax|`Pn&XvBeontEy5If+I>uos5=Zc zSjmD0OIZep84Z?A4ceGl>xs{5wT(%QVVwnu%o*i#qsGy|df4+|Tb8sRa3^o2HH;1|8qvW%N0@++*RhwEnh~s`Wu4L7utvUyGY4?92Y5qm zCfBjPiqjbd1k~GX^s()2`wFdkdr^jXnWde$}hO0=uT$CQkmv2<#1EKdUptL$f zpiv~tX;8^*=o?gx^vQ9fi-e&mWpxtdkyx{IK4U1) z@2_6l=dbZhBj2x+REW(pvHH)FP;5PlM?P!heBX_*+h?%3q|(461A!o2K;-SC{w9lAto#NM-5bFK!Xe^s=#{#sE#ePaXQGa{Q1zZVW0c z8bH+iRqe78-Mp^;mz}uSjN~S~D@D_;|AC?n&+U9D|Sf4D2?Dbz{Vm(~#U`n^2L5#ik-pTk#{-^P!7x_)WCSP-*6>Q(Sr8&-e+dzQwPe}nn0){dk_#Bb7N`n&Ss^-X z<`|=K`KPfE*uY*9@%wM!dRn}rQ_ zaHtVg)Ig5$5w!ua^tTChls~rX$?>O(ooIYD?hrPUGVM-|ccr{W&I|ZL21qKQ-h6!0 zGSZ1B+4zAje{jG!?tRq=3D%#|mhif_`G78NA zvb*)xh>Y@>>2ao!h{26rup!^+JC?%ZEBRL2AP12yV#!rvg2LAzC>tRzl-N5JxsK=Hkg>vl!#F zMG}tyFAZPO{1Yk@S{fp-IS3J>!%qU33I-hV2fSQHM|E~m{|by0BT-UhgsQ`^L2POe z#6yYcS?lRqDjJT`P}Kw{-qAhEB<1|;uT97rB6#L2#-4{_ZG1 zQZGRw$+BOP<>v>IgU3jcSh*EQ?Cbm>S-7V8`)+8=uW25_H#hmwuW9xt$5_++Lmx60 zt7-Nj=wx`+@?}qjra1r{NuzqwHI0>9;lsYpkB|G0K+|mPM#}t}=1R_VHl$29`-I5l z&0{P?-qi<{#b}yC(FNVAX79+)Rf=qG9vhTcxfM$6>-;D=pgHM2dv!j0;tBkC$T2XK6p>xsC6^A)=tu13{AUB;-O4Q#8t2l_V$k2 zAvE^SQTA_>p}BD0{&VxvWT+vJf>A1yK2D|>B237W;~Ux25gJY=TiMD9GY!*GsN|O$ z^j0mb8ipojMFywZ%rx702=WG>ymZhOY`a=-Dy-Po`LS~M0EwdBwQTC3+hVm0vVai$ z()ldb!eGUY?y*;uOLi2N$n2g?faA74I6~3^=BnN8^=$In0VBT17iFayXn)R5&DLWi zM6BEj81{93V0`xogvk4jScts8Z`2keMD|reL_?Sh`9DV~a(H}EQe?sWY~@zNW?$zY zwj=RHZ(f{*@Hm^Miv!7Rg~PEU?gI&jwI7uRm=`1;Itq{wrU(HG`J%VT_xSnwqPvcfuVLj@ zAhECWgXH&^6JVZ{84sH$#fZzXTVw+=hw&z6xhz0OG)IOSRHHx$uF3TC}1X~I+kCndHac%tk7Z!{tcbG zLT$+Reo(=4&ADs3*46~-&sg?R?r92;dz!Bu@>we{u2sLe!x575Cz%xe3k!5oGmW+~ zuX{UXPUCCJtfQM|g3f{{T7ef8b{;F7$ z&-|=UALsi-58F?J=_&51nU;olZ_MJeVzU+vC3MybOpEZEC9BQL2|J76BR8>Tsv!6< znTw1$QNtImz$btpg{> zq}i=S_NicyPi$OLOX4^p3@dc_VhGT!8N$fpq^wXj?9IRebD(;O+!DhAX?C8cVtJ)R zz>6eYL`5+=irafv%W?RNGP%d`?no)J>SH`eJ`CT)^1A}A3zQGHIs$B7 z+av@@0?MH<9HN^mwlpNC|JD7-{O?Ft8 zmRPu!7kWg~_PEM6i63M~+ATZM9@(M#CE2@WN9wJfpL;)9wD@Tv?FMNbrRr5$hwXD+ z>olGstwX)NT1TxrTCMYsPqT42R#NnnPrVf7{F-2(qEHJPQr1a!yOgf!SJ^7tE32+c zlUH2Evl?|&eluN37D>K9@Q@|38r1ZDS ztdp6GLeU>B${5Ob=&nowTJFh6XewC)yY<6#um)`F<~jzM8#sAZ&zF*?$~>@16(WvC zC9+y)rIPl#dI=Jf#>(U<)2F9$=Hz`&J0Zqtwj35xhY4=N$I_;@29784ZSSB-X278Y zyL4i80Ezn-T6l!DsquSw!feR4=S(Pp)w~Q_4NFH=TfwPRBu509t$pyPLLQSPjYJ#O z7~3@KP?>ZTXMY`*GIQZm`IJ{iTi>6QyI7iP@LpSSTFpqWEtiwtRlQ!O?jpN89EM8( zELUo_r=n;PO#WLw`ETkW)`a>VM1&NJZD0jeS9WZ>i-??Z6^|9kp&@3GFia#V)!PZ^ z)+X@2pyB!lw|*T$k`TqPDQz(OY*QOSWq0XKG9)xGWE_^%*(upaKLbAI(mqN)hqLP{IzLKE%<0Kvq90;+Lz?3PwLQ71^T($!M ztny+7sDp?++nfYJ{D>k=Y}n5H@f0ygpuNQMLvJlm!~OAg&Gm8dS4mEJdY1m2(-~f& z-Y-dF%W23{5?ynm@#JiFTjVb3` zj-HQMc&MS&96dDBA+1c0;byVG1^%KwtBoCVtzD|L6>lQ#4`0k$mopAzozVo2PuN{F zA)nTj2%m2)uXgCl^2x9$FSJA!5kD3WD6cFK|98nN6G1JrED4!qiB>ST2+!pQJ`}p? zSGEV8Tyf|?sm;Go){DMtFgE4;u%Xin89E4g5#COcKUtHPWQm*pTy{lJ;NMJBup}bnsb|M$LRIL8{0UnrMcHR3n#~ir4ZlCMq>RU) z8NqDGN97fA#E{^P<|;`~5MuipAc*7qceEnk#beA~9f-5$AG;e{oi?qMPi5VMcnU=~ zrj~v$<>X1PZfVDo5IpcntxW->*{8IaMiB~L@NC#I!J?6GOS8LZx4y8mm#*2)*ETpr zbt-*2*6G}wqMiTv?|_Wh7sPUR;==OIX%U%x%JX|BSf;;8{!I3;wT%c!0+VpH45l&C zp7STJy8|5Z2s^Joro_MN{vPOseV9pevIVz^HMMzq>BL(eH$}6nM4WvQprg0mo`}>! zJbzdN{7%Ywge+;dFV2n<$;|fAAop*NFLj>3n`Y&!@*P`g-M3&cibXL@ z@*#5|pA3hND|fGXeraPVB{PT&p-ifXv(i37QC$a_i4Ed>pWUTdV;l0lTz8*h7C_pe z42uo2cqjYtL{mdAy0P@QsePR6i#=mMpWfXJx~ZSNt}UOU1zEmTAFOh*DtA%k-*T#{ zlf5eXYt4YF{yMK;+SP!6NV~rL__*eN*=#JZrW3aeG>TVRuShbsC1fb?hJloeu}+Ps8kk^5 zm8}{(s(_JxXnS>83`+24iHqQNU(a*Ui9irV@U-gO7cr&UW+{*9#(jEq$jpuYWiw+sP2F6%TJ0g}oDN3rVzC*@B zLs3=U{!rBZ{-WMGe^F|>@x|(%mJ=hV<)TIxg&r*X`8A0z!>kc^Z;2i@4^dX~SSMwT zE$onQzVS}vH-B2XVX-^TN`&z#8cH+lfR)|yWPwmOa z>Gav$d61^9=aVy&&afYr@Pkg^(GREa`P$I?APTzZsYSXpg#p$+k1<#5v3fgj4T~!+ zXSW4BTiM&3ceq}b-M;k9=0C(yGS&aD<@;l8T(XkA2Y^6ai{tvxu&(^S1|JI4B3cv> zX_`gAxBhlT77+Z7yVzF(CHg<_`n3p)J}Mrg-y<^p_eUUC!-VGlh9p2_uc4m^r#XGD07fl%O04@<^Xh(=E z;5lp_vNqr?)+RSibx=slT%=Z0zcIKb0w4zkGIlLH!w8d}Z^lQ8Xqlu^K8xtvsY4Oe zl>iAHgkxMXe>~93DWNdf=4LPiIl5R2)$Ii|P?Lg+rOxI`cq@<{q}NaiOGS{O$d`kx zZBwNh1`Df&6nPgYtj#JLDsgF9`B6p&9P>*M0_w+RKae3%cfv@GTR|k)t5SlKr+vk(Q{#YS!yIk#u9CwWc8=EUosi@8U|ZOr!;&^)31XI zp!_c8&-C*$KA7F%=oS6Ux=2@AlA3Z4^F2krJkvsP2pz_VI(nB`;y!d|%E*Lo8BBz% zJlp7C-LxPbg4v#8d7mZnn*@_2-t}G-hSKsGd__RCG+X)b8c#0AENT1R5zeb{o#mS| zgDVq(-})t};RMjKJ3UHJA3hRLv()5>LH#K*^m{-}3!Vf}v#8|h4{979G}QjSq39~B5Em4fX2tFBVMqa@0g@!e}`K<@V%xvMcES=RoNGs&9}!qhP#u! zKiFS~Wv)HJ*+&1N3)YxtpVI}K#rnnOctiH6?&$m@`{_V&aScEHPyMu&i^p`ay|}Zp zxN|2L|7its@wk=4#gBDyfQujK;xHFKY&M@w%g~-(VG!AeiiCXPDQ9N3t--7qk*O87 zhp>O${GMhkk;3osY&L$EOO>92{*halN@un+M|PzO*SI9l`S(2;WBKx zD_Za*fSTokzW|_?Ma9Cz!4}moK^;JS@Ms<59~=p&Su}mbpnkaDF{TAi0;pLX{R;wW zR$mVW^{!vq&Tf7j9zRO+41-Tr*7<38fk&G5R2@q$o^|OtTvl}5GBl2E;#K+xgAy7kFrTZ=181wt7Z<&T5gF*deD+>b3Qo#M2w>?IyL>CWCzIt zZ!`8vnAKy9yGEVzHnwZ_s1mbbCLW|!ww(pPk>?cYS?GHv>nWpg?Uzb&nZ2h>03P9R zY7&}Tgf{p;wzAmab3}KU_0}P&Jl%@zxHD1^X+^zAuO_d~=b;%f+s2R;a{7&Fa?66v zxeI0E7p`cN&(}^V9M{bbzX8saWc#*SRo)3I9`%Yj0(91jsl%I20cTkZw#d2FN?Tsp8mV3(?~RwKXX6L+vHGry2`sMJd+q!#>XnPsVxQYBTuyZLGSj{x9!HOtWu_rOFth14Ff zZ{jTY+Boa9h%A}>G;uJcz>SLZhxF<1r}1bdr;;gaZ^u&dt+-WQj^0d8jG|K`O7uj& zhBJ+INX=4=YKOyS@W)OB)cASdu-|Y>zQfz&e2uiXQVs_$W@AaAF(g zv^^q`{I(ynlZ{2!x(FMAkt$BoOK|0s!)$v^n%$svrd{d&0x{bTZX`v<);?p5va1;d zG3g?6tFBos-l@jD92-%QMYERjV}e|0!{yfel#F#)cK6NvZgEHFVD5B#j6AE)3`B$?~+=Hljhq<3?AJQ-{ zV`Fz4W}Dh2$F)5+JM%6x=FOLpb+wF)N%jihVuKCoNbiu64^}d;?~^ZivalhgowE;V z!N6=gcMKRXTRyTRyLN$wb#!4vTN`uO z#^v*oG4yCRLl0}WUPgN51;)_C9KcOm`{~1*Y=y5~t7ovc_VrJuB&hSTjWBa(SmVoK z)M9z=ZNMVw44;Kt&nyN*$Xpg6=U9ZzcHA&Jyv)^fuI- z)KD@#)8+%2o(H=`JpG#;A)_=vOuySj{OHj${ZD0AR-@)juVJj1ezFfLJxmW&`p2_p zyi4f3xlbrS3>hPZa#tp4zB_EkF3Vy4qIv$&A&@Y%AWc0b$t_L&_!8699BK4aXlgd8 zJ!(eB04db?dIp12mwFkyi?D@G|2dAyQsV4= z+8^KU0exA|?Fs7Gg8S-by^iqV#y)wIs#X7Zjzu&qbmnkmiQK%YRib?7q>Q|7yDREg zFdaTZl9^7BwYT_fW4QuUnbh!{-n$_|72MwOCAS4AzQwKSBD{+ZQ)FU z6O*;=R#*5uQkoXnV%9dxvkFW@3j}()hRp1 zcgW5e6A_iEufAabzSK!}#9dTXMAFKE#Olnv6IyO(G1c=m4qTm>oJ}UWz`;XnJ#2dh zv`bZhd1zr38b6=k=A6{Yk)_+JdeQw zquNVfT~y>p>(pOr#VgHUb+t#ppVs5VhI*C8z;-Byzt3tw4|SQ@m4Pj8+R=gPLZA@wCXT zmWgk*-Y6C~NVU#vqk0sYNtkJx^$q!N=R38`!PX+izNko}TcC$U)qLxMi8j~rRf;`O z08ao)JWSw4qgy;AFLu3K(%3~}OP!sI+*;e35MsVbyzDCmSvycn^^bK- zp3pNhvm{-v2C@3OS;!^96@NL+S8tFA$UcMZKGw<{@JluHV=dNR5j#qefN%+|&9}dg zZrcJ3m$N#m3AB#!fv{bsm$?cnP%Y{qt5CNaxviXK-Av;It)3y&<7+sY_cW7~RF@=gWY-6&PB&btLjrXVM|QAOM>I0#H&lWhO)tM+d{hbcu)L-c>_n^)UlF?> zl%oA%7wyJgCfNk7)Ez#_wAmZFZZ4=(^*ICvF3stiVYOxv-C;@4(Qkb zS-!TC#z$-GATXFI}+%{TQE_Z$DFB>7N>~z znz538?+h}X=iE}4OkY#V^tB8$@2x3i`pjwznGPOZrc-1o(^t7nZ^^1KnGRd8DP{W1 z!mwe)b28c}uk48!&=eXBh`g7XAuSceIxt;O$80Z)nSC1|)=%jZ>t~l@eX0`c+SbPe zv<#g?NK_p$y4C{YHm}1{o{skYSX14C=R5EwOI5=(6Xwf_N$b=U*)4I2Y}P)hCivI8 zZ9nCx*P9lnzxHiBgER?}{;`fu|{qUE}d{+i&2)M?S!Tl(M@gCb=%0LH2 z4~hAc9%aBSQwH52=3axnV@(-!f!LIRw16?TDFf_cO$2F5F1yK;!EzU&%SvT1=mk>- z;T7RF81_K0Fq+3rn(uIBpuwz^!Jq<*7C1_gsO9U0GFVkAgSp->fhjHEJz43>04%DN zbX^ucZ6454(ZaY&lb&;$_XYA$20H55=UIT$1Yej_^T|mCSeeZ6FNkToG6;2JvKvrA zXCSx@sweuMsKO>U0BU)IV54~n#SNW&`_faB7I30#EBS!wmJ3|2Z0I)ALw)L{%U}3c z(=c8B!VC>_358M0YpC}zvyED6!YQs|?lKi~yt5ykf>aECLnMd6W`<`t43YMx9(9Ld zkct`PFbq&J`{#BT)|V#xeS-{X@i*Lm*e4>7T^>OZ#-pC8dtpROy&5YcS2PhNi)Fc)%m|6myCD4x8L} zc+CLc;U1<;N^QaE1f{x|MsZ1BJO)q7TMr6@u9oftRhs)C492DV0O!r+K6FF!$lQk; z7Vkdj6=@6xj(_Gq(2>}H=pMiaU1!+nR7zuZ58#IJUJpX=7fR#&QfbWfeu=d~9)vX% z!3X6{Z47FyIT4}3gB6E?svAxNy@(1fgWU**8BY<^9-$xc&3XNZgNC)|B?km97ANDC zr8)Kp++WW=H-{r}Xkb|ANpd6}UW}B#>Byw~wt-T9Un%9W&E!bTE#)5_T9}lVMU6o+ z*ps-{1pPoyV!%6vC!x3GNrdQ-2}T6=0D-u5pse3lNyAsVtbcha>t{B%koBcEL7}Cr zf3eGYyop!3tjC*pc`55>7FP0K=Y6n6Z|K z57J&rpzsff)|#}Jms?4DW)kL-_TA8&OWMzFUB7qn{()YRw7z!8{!Ah07jMyjV_u8?fgtPe7qspVvL4shWc@$QA?x=YOIg2n zEO}-bG@3cFyDV7rI?%k4eQ>csBTU^Lm7v$eE^=KHyFC#jP3&r7t$SjZEs`x>#Ki7x z9xqZ5sGLYkl)bNsU8bI9o7Wv+<@U|%4tPSQs$_ijCKKC}?d4PgOPz-bL9VXn8}6b_ zD7Q5I`VaQlT0J(IOkv1tPFLYcx8qM?ba`#Hn8nJOS!FrDCcneybSbodP8Uo56ra<@ zl3(p}x|2?V)#aS-%)(V`)u90sy6P7bx@WtFJksu|8lvYig$qNzn2{^ybJt69^L`!;tM4A9rkce@wbw>Ip zfGw%htP=~~76}OpnE;mU%#cW|G7n4=mL($~$kF~bCvamm2i*Ux9xA2|ZVcKWM2k+T zqD4#42gBKi$BFwS9!oF7PlF09YAunHHB>9Mj#Xvg@u5KXO_qWk%|+BFp;sqIb%e~_$Omh`B|j)XCKkDUgYz{h)LCZW2}WT*a2jdYZ3sKP`*yS zi;3;LmG69iF|Cj9!(7MdJR;Soqnrt@Dq-wI%ateQ*qfC*B*B>|DCobl_qlpa{+Y-` z?KXM95%(0vW(;g3jz-nUhtzHPT_G1+?X>oPY-al}(#EVs^KXFsX8&eCFU$}KaS@{t}=vKC;zwy;-$+QRAS2-Av=;8nJIN!KE0vY>O3 zQ@K#OvLiqjT@UIT!{Qv{ow;phXKskQ2}^3;e4Swlq&mYHjkJFEAPVYdHty>r`2%&e zVR^x|!yR?2! zf7^D?-nNgd%m)X=`CpKxX2G`JsM9ZgV1Hy-AHtx^5rQ7^4a1=-sAl!`4 zf-D%)p~4Fk4LfHx<1Ia7&bpHM#+aD8^@`NrLM5;c zb#pWOm+?-7MQ9mKHQl(MC0s~kPD5n(TvHg+d^WX&mp8Wdzrl^_jUj&l8Q)yv&mTzo zYT!ooJPO5X&dQ|=J1v9;M?1v6+zJ)6O`%zWF`P?%| zB^S~R#3!W_zNVwM6T1L;PZdWu7QR-jw~C#CPC)ia8E;?H&|Al0z^!fo@+YMZU*XtW z$ALg9B*>Fe2j`W~81Nfp>(UQI$dghBr-v_~j?0n~xpkWYbDr*yr=(P9+^cGNLK6(@E90FEY{0&R}B7Y;m(QBp}M~*cozZLwn55P#?qZDp3}FoXegllvkX~ zo=8f|le&CSB3Sm6Rolo@tD9KlM6$mWzdA^S(U+rDl&--AbzugM=P9FxLR*}Oe? zDxZ_CB__aZlK z?+@56hQ}se2K48S#q{TsN8cZF-r~Y}Qx8k$EvcM09}d`NzUJS#nCAa9UKoSn{`C$A z3?{>c#=5^3pIG>F7C`Ft_l%p0-x&bozQW%txJ!OrF znEwB0f&I5dwS91urAPl2I?y>5%zS&7hCTa=;}D|gd6DD-p@V^4R*0bLvO)wsUG^bI z!xvo+h@Bx&KDn4Ke|?rN_X`wTF5cH=8F_SB{DvL~qN0He@%|Ndd@-c5*Q@@?ULVju zG;?47W=NRbi|HSS_$)|ZYRP0@_gq|>zoZqybSn5uHS?Eda3hw{d`bt{H*J0ea-_nD(9ic&$^ov zexy}fc4QefQ5*-<$ig8ct~7jYoT7sxb$X4hJ>eU9cm7V1hb;CdLQ7)ezk9}M6|)%%|C!F=7nl1=TO7Ty2E0=nOep)Usv9oDQ=#fkUNi=jZp8K#qKE3d_?@z(?y*9yOKE zqoQI@ByT<{KFVR-ob&S_x87asNW8xV=B-%8iPOJ<-kisQ5UWiasr< zxNFf=d?-+Ht5y7|!&(V!BD zc327eELyR$s}YKZz{W+8n}`SnmSGXw&`U9e@^{pebd-N*8_)p+B>rbr>a(bFSyz>c z530%#@1%5!EQ5n~Otn>Ezc>GAP!&u+SQYv#su=64!V-?UdKFsjF^RzgrXZJ# z`Ms#p$vY6d7JwJ-LK>9=k1tiN_KVW)47`)XU)YbAys~SVrpYJs-NkGT8Ls@M0KPr= z8}mKLD2k`%eJ;_C%?o%A;xFhqcw#}%!F_t}n#4D!)k+z~zHAQzOR>8WrRUSzF`|R8 zu;o|?;GI#0)l48T0q1NF@=1g5X!qZ}BO5x}wn7l;T5MY^shw7`E@Ovu%-*PdUdf77 z;ym#`g8o`w-KlTvjOfPLz=2>fg6dZD38+zwYRtAMU(u3rSR%>0Ac+WE_S$i^)zd@R z>A)IG!iW~dHp6mUVJ@BKkoQ;7FkAZ7{79h6A=1iwsX~C3`CcU!I8~S}!MZo9C}EE+ zn6#6jfr-0HKW3W^Zc9AX6|617i6BmdtSeq?fkm33G+{_sSID-w$2a1&_U(M0fN&^0 z5l*E-t1*+QL#;73!FD2waM|U=cl4xQ7H!BRBmhy+-2^4(`R0Ps z%bg%4l4$Lskwn#9NYa@X^B~FQDo0&s272|-BFt5`+BZ)GF4+RovhOyUs**{9g%zY-es ziXgHvN7*fID8x;NDA{Jz6h4;>x0L5e;}62&no$$avOGdu!Lw3*!&=o?a18yb`J0NT z4=WAV*kTQD1q!g6o;U-&k8M}>y%i6XBVr)bxrvd2GL$LG4Ce>qUeZjnVos#7sX^q$ za<<*ZAC(*vd)OBmVVt8ck|}FWCFE~gd5;!-VCObC06r6k#B1S$< zM2J`r7V!f43TeS67{W$%KD!YV_Ad!aazoJ=C#cE-BlMXph?1ZIDFs1Wz0^Q<&{B}Z zD^9OFnd>vS(JaZ`f?k%Z0WH`{u$x}?Mf56V3);S*Qb9a+++`at+jGpZVZ^&Kah6)s zFPfFD*ezuc%>)6Bd@h5fkd!UiM=W3>u^P(k|+XE>s0LpA#=7MPs-vYK=jSTw=JH* zgUskNg zjgkd#njW(+5Yt4qz63^XLF35{t+4_C&Zz$$#J4si>JoG;Kp-in-wq&FI-4CJy)H&2 z4+l!SX(Tysq@oF7Zt?s<0P|FJrW$8a@RTXC$dnKgyH$K){8+Y7rQ-KUq!)~*{s%RV zMFOsvs%}WO@9tGu^cl@(u&Nh2%ar(YrL>g)Bug6pa!ZIvw}4_v3o}uV*j!4=vOLpCUW}CHrE?V+eW^aq~YJcw2>m zOy;syDPl->25;bM4Y5n<2yivQa zb+_?9RHBmDdP_9Z^2kd3sY+A|oR|3H(8h(A_;A|S#-FG}rEYnNkB1UX$S$ajEWGXQ zwFoC=+E=2b9t|$>#ns3t4~xNJKz^#+JlRn*>g6i?ro=#ZJDdR17sH0;6gtbCquqkTaGR3 zrNuS29~pD;au#JqXG}q)5-zDEJ~~_b7f{ofwoJt=&krdi@}Q0i3S3vS45IDy97V7Z z$uArZWtVArC|73F);e*>|3=IF)@U6m67f{^+a? zW|mA1UZw^!d6!CR(O}D;T3~~xs|G9kX+VRS{_AeAvU7a8K!j4|zQ2o7RcW>&5#H<_ zWwXNuBqg1Ptkp}@Y9`B4$xm9XgtY}W`UVoy0+p4c=8djM%v2jKjtUa@w|L2h{I#(u z(6YrI@OYqXF=ll)Fqj!H>CA+EDpf{{EroD_O;$Q}XtFW_2hf=*|86>Ci;2$Rzzw#c zz)Ta665JYDOoj81;2o6TvFTWhTo~}yy;a;XQ+d|jk;hcRp6ser%9q|*PUr%Ar*ziP zJLPi@=pFf4-My>EgxlI;J(%~ll(Og@{#Jr_SN3jF-zUrO1>CH6A1=oZSD<_BNOdd6 zjtsn1h7G;5jNb+J?hskIp?6Bq9nd>+_y+f`IQo_n+->YV0@X&06s0(K8 zt1H%K4bz}z-`Cr0Hk>g=nbxO?&}lKZz=3%c_C{;Iw}eL@Ym+*pCc{{9MnY36bCxFC z*)t2I^qmzvv^v5mT}dPIp&)Z9jaGYeC#|*k0@_$zja@@4`jET>=c60SK|f8Xt)#G} zGH7Y*V)WBvB-jU3DA&Hftz^J;x3%I@$1&&6y{k`h?lA9Rhmx*awppXuql$G(QKQ=B zf)CT+(%NI!0}NC%gUnRR6Iq33z!E#j-l^02Y&8V#7pp=<08}jh>gTLrYFm{M*V5Xz zcEmoVyrZQu2`yX|u@S5mqM(Fi-ZJCuiLdgz+X4fT9L=M1UTJ@eZPjsai%S!ztHola z`YbJeG#otlWVcv}JOf&6tGoxaSc%QvVzZ5;)n{w*#!8x@#VoNeQBhj1Gk{Ur zuHI;w*i4Sk-sp#tW7BA5(GDOpilQINrBl$=Vkw5%$oz16Y+9`3=>aXa1tHd}+QY#tj}C?9%2iwDT$(qHZ(vDCtBExxgFY+9_`V_G~wUf6~Uy;v?izAh|F z@6OifPaPxfQ?4(K{tc`SX3F1t_1)1)5gW;)aC*>h#P;=HAH(Z>ce+hw~zF1-fp)@7$gQ-{N=ZK9$K)3UoImzBlZ>Gegq zwW?f18_Rn@G$?ykB9yV~-;uBsdAQ8*`}>=E%S z^(gfo`BBphrmC%ThPn=~HvtAfEDwUaUiJT_&4zfc!B~WdlD_(^= ze44fxo8r4%E_f#VE;%><*dVbMJT{xku~`5V*DM-}YiwBTn1C)|Ef>mQD<(CePxg5w z+e(->uh!bff@tBycupCcZ~@xlF!(fkXi1JYqY-}LiVo!9d^5zQ5gPx+t|%8zCYi$V zslhB1uCvvFwVri1#}?E{2wMpWd&;q}&L0%3YA&bw+odRoK#N2d?6@Yo6+xw8jd@#h zK@$9kY5k=1>0c|kCe|MS=*+5AcQl=D0x>m-k0cw(P+3K6Z9$5zf#<&Rxc zND|G1;?ae3+pV#M0);GAe0A!%@tE8_5eF`=hu9Y4{1Sqboc{YU#lCqh2&f0 zmvf!Hbtzv4mxPbvh3(tHOU$O}1DfT#b#d5kdP#e^?kefmpoWfukB9*yGd5q(Hu|un z-h8)TW^Y;A{8Stdheercx==!h()6Js%+khtZ=_t5IU<3GG~@a+{);c{#FSq@7xy=h z+K@+Y4grDGMp=y1LhtNm99rZG={N_P$r^QMHKm_fpNsDn_7PJ`c2XXI+t^NJ&43U5 zW|LFDsC5gzSO0 z!_5*Q+WVVmmvOiTQjsSl`6M5#_+7;ZW8IQ0Nv3Ezx-^2+*=3-B)0NNUbYwoCZT6_@ zB=X8{HcZ@a==eT9Ni%%@c+6g^;uCNe9@9@*9$##Bu*J0)hWJ8yXsq`<$RN~2h`D{T^@;g<4%kHK0Dmc}{B(p&|$%4U6v43%*-mTiX$#F*K_QOr209lc#-v+|8UoY0lsR(Sfpm22$SKBNZ9gKRPH2LIB=0r05pKG z0YLHv184Vc#&5^csQD*-J@BpvC0*+ajlu%i73MpqF zP{MIHU&R< zg-&^EcO>lwY)9 z9WXTm3D5)}Xfc|A(8wM(Ahh~`uqyjzHxM-H^v!_Kav%r~0O93yjQj)xf;w2UuE%Ej zg7>PEpn(ig*vZi_879CT3>-2+#>Va1j5z^VZjcjY3{6h zYU^~`Cl1~furO@w#mI_kwxvp}q!S-325?B$y>jR|FF;2)^V4W6E~EuXQ3J&V1qFy; zl8B`P<)rG!;5^Y58qq(qmczGEzF}jBZ;~-n8^f1W$0T(Gqf){^G(e^sYHKNJ4#Scu zG-c-b3)G6>KticgX3>(0hJC1XvL=9mg z9c&I8r1|Talhi?YZDqkjzA--d83$`7`2gRlF7OrE7Y@FEHn9^(C~8(DB*rC&BhX2G zsz@jf>LTGykVZ=(%n8!c(IC7E3LHu}klk>5An8~D)@)%13aLgVZVv|Gr8CshT#ZX} z72ZI4?Ge!|9=FD5aPL>N^d*9Q9a$S3`nW zlF%oC%|-%QnYg?sfo&j2D>=4SlHQjaA^=hh8NL%$3OU>us=5LLoEnd!t7imb&F>Tf z$9e&1Y}^t}CYdGA?3~saGLD~+aaz6WGVY*Za57*JMQO@zb*AG9g}aqfcB}n*xs;vo z$SqDKl#JU%zsa7leyjh=?^XXRombHSq)m1qZB37u(~_kgN`S3Fq&S=Iadb0N|4_mf z8Mz{CWZsik6(aDJg#^rsQOmj{-~}!KbuNx#l=`buB>?YI&rJZXaUiXk0VMo>PLmS- z2gAsc3LXkD3d@FiV08T)Fd|)3q0_kxA9&(4oC z8^w$*U|rX6m-PC9d9E;jFT|x5i6fK*q9B;7 zUd{<1$)F+c=|L_{`ubt4iUZIgZ|Zajhu3ro9jARa8ZL36<0MhpX8D`Y`OHi(ByP=W z!5lpqlDVZYr1*1??(!VaUk@&tMucF3juwu11p*LZiLUkA+W8-N*3^F!{N ziW`U-vZ_r!)f_OSR4)WDv)bzLq}l3kkdcM0B3u35Lh1-Kc1++bB1d~YxX3v)3uwME z4`?oMJ@!f{M9QH-MIG$3)vHdNOm%`#q^PO~~meDa(OeI3RrF%=v?CBOEPW*1r z+!I8IWLI$zunLw4`6qR*S5-j{m*b#@obtj}hp+=}b#yis&l73z+kA;ssj76^7g(6x zZ(|`qHx^h0Fb@`55+1ee-z7ZO_`rk8V9JEHYbp=KyJudyY<7s)3>dV`oY7V=4uc;V z3}(7)4~SB9#e8=OK(4!8wpTg~UI7enWeo=ETOSOn{sDv8UA8kMHLQy$SeK5rEWA)6 z-pH31mdZ;Dp@G15f_M9BFLR-xD20qb{-{um{@vy1&+4f`NK5;lW%N;yjQ+DFGY}SI z5*9?%3NbO(e0^aF_l0z%THbHam|aY;GNv0E_-k`QgYgq?WxE^5HTfie1wf-5|3lIY;{AAubX2~T^d;mJ z&5H9@_U}vV;8^)@3g9!>Oe`e7Z^s^4$J=dzu=syld|YH+ZoY;<{!P63|R4XTuHZ#b9MryOSo<|d|rH#ozQTz%< zoDOp?OlEij1_!yN>n#63u2H8}Tr-7G57+il^dILf&fYb_S{8*oNvWz9wb#loL>%kI z7oP};Xh&{yq(4bLh708hEICwBo2O-*gO!!eRq|awq z^60E~B9g0&PLdCwo7479`QG@#GcVEvjlgU>o=Dkvkv6n=1&Et8Z(A*Pi!jwoy_Q<8 zly^?k4y`-nlY?5TqTug978H ztN2MNCp+SG!8>_v(f z9n*9`Wiq+#h3^*+72Ttwbq$8l(o$+8xor-BEt;os@W^Y;L%|h&_7v3Q!`onAX!APU`et z7Ok6p?d6+WJfCj5dEI02>o(uiyg6aUTr-Y|!HA+ZE=giiFrlteWU}cc6PoBMrG#yR zohU}m38d?ocGbLVX5B?-r1^W}?DYi3xM8pV4TDAlUT=3TgN${cdXmw2h+oCX^JETG795C`q z;f?MF(!YqCCbIs*0k&XjJc`6NY6QAK3(y8p@&2 zkwM@?7scY<{B7*pW(N)=`5WU6i0z0j=;QSLJgt34^pW5H z8Ap|VxDo(-aH6fr<-{@%0Ts!gZ9IPueKGr9SsqLx(go+bOP@cE=?_)O7m_c*^K-VTRX;6y zkJ^H?Jd(DFK4tSz$=hTc{2}C5I|t))&meqq zKx@<%mx5U4a!QCKYK|1)Ac!RS6DBw@hYK+z$*>QI92WY4$mLR%0wSk2>DG0`{}J(y zl0+!EmfwYvEqW56d$m3R)#e10ST+ib&ORid1pTtSlL{qpKf};T^9Q4iIXP?j3FokL zNh`frBNOEY9I+$xGT_Y9QUT`*wG-eRVT+A&Wvg52rCJSmXmv}iHuK=5Xw_m`t?6tH z34PikGyo_ox5H3rpDF$<6QB}AFwbn&GlnUCz>yN%-m=s{lkYCkw4=Dlqny>QuS>YGzH~l1kOO=x}Q!6Xi zHglnJyht~{RQX6(<;|YTr3t$#x16*8(O03gXlqa%ts}4FdDgxBmVaT;H&cP!6XJ*h zF>*(VDW;>%Xprsd-?i|?GG~I_Xli6e(vfh6>85y_O27C)?pa0y>EZ$-PG{O?8YRZZj9Ik zjP>pSv?ph*|0``XsOcQ7jSN5`ln%w`bP{ZYSihQ>iq2{!7b2sY|6H9;10s{D1X(Ae z4TlYAZWITmVm*VXXB@&+wNwwLa?fAe?8w{0F&+c3$mlvg(zbU5Jpq>l=735yon>!1 zJZKwFj6D|_idkptFyJGu(@mSmv?B|W7I0FSWmsNDP{0%pqEuHp#rq4?@L@DjLG6&I z`>iES!7*PJtVSVWnM_6;x4GdsWz^&7P^d((?40rFgj^>1bYhpOOs#x+x^~VAc#Kpk zkw$sqm;Y<%YiPkkOPYIP%5qv#k|%nq7&WHxYOLbK3Zj50|6G(`v)3618J6ErUXz97 z*GdSC^3O;4oq@sh+`Z*B0nhRp)W14E-1T+&tMki4DJB@%N-KOtlB%2eon?g->enVi zfb#9l=2u5BRLv%!)iNF03_-iW;K%tEh9DnCu8&8*inS00SFHsrFnT~Hzvc6H$fjtI zYZ8-CkpXMuGh)I9~+m!$C zbyq$SUASUA3S~t(XkRiECrOf$1;-mdi&?@W`=xF{Y<+N7&V>~9D5IJucIzr~1e0^@ zH`Q@MS;uA5TUr;cxQJgq9-n&=EsgSjF(-~a4&{}RHsN0JzXt7}X{<$7KA{Pc&BZ(& znov9Kw~b5wAMgE^5f5x8U87rj!S^r*@9~+mzwwywg@85c-Nzv4$ zXqtc9q@V0tm!i6wFexfImLKGK_jVO}M`;eV=nb2l(sv-mH&KEdEK!1Q5RZU^dpBG|l z!zPpU){|L^tBXFp#Tk*5!4&78R$GY-s`)jk0TF;-5?L+l`PlyVQg__YK%K{phZv|; zut)-9Sge7o}oBqx_Za5ReuR@k;%-qUAUg=h=ePu$l%Cb z4ca=-;cX;!wDnfZX`GR(O*PG6!OMUOtT%f zuq zb`Ft^w=S`sLCZB_H$K;z-eRo5Vi7J{4;Xwoj;8eK<79GPr-pLF_(hEH`JxpaEzZe4 z7gG31eIu)EhdTUC-BM*Xa5ik&+l;-|QpU49n){n_JWel&02oe=e&_V)M5u{mnG`0p z*=pJ%-2B-IOY&qpPPj6`P1oQnH3_kzIFPTa&>PA6PD4AN`W!cd0CgaX)C2u<*H#6u zJ=Ga*GC2h{D~q#C%c``rHEU@aV7-RY!61AhP117RK@rx3*4wSqwg%c44T$vmCz-%> zWBx1;9R7r0OjXW>HCJ{++NEGXk4}%pt8Ck>#QK;`-4hke2;|2JxCQ-+g zpbeXwyyfjU`!sEVjU;Ko4f6#S82n=(0M^Qfqnyadm<$sM1zvlnzXm|9$*B)tciVc~ zLLKm^w?$3DTnG$NQ>jdbOxH}8w&Ku4wVW#!jmeYL4>nnyhXvtTN15LjwBr^Y;#fOMrZ6R9 z*^^qhy3y}1r#ocXw#~}RakiPxZ2r0Tqnf$#1`?s9CPZZRiC|4HF9T>Mq3KTkEL(5I zsG&0}D=Vq2EPn9~%cUL7U`kwi|G)FpikD(?9R7Y%>m3}w8xS{Y(LYxji;fX~EhG>W zQAt!2mafL_N`hI~$8x~|FuwU1n^pufH-<1gaz%Iqr#$>DbC=+aVmNN@nw^_3B>@pz zcl!Ry)}^K6rL8Nk^Q1DAiVY$pnq^S+Yu=~b;6i)L)(vsE1q_|>=aW5j$HR?fC{6Cg zolBapa2OSohGAm*oZW`H7X7;7fa=K+j_0jIzEB+&8ODPdRwLM}!`v7<$K2P(XCGS9 z8kScvYNI=>iHsWFirG%XCr7_h4$W}>++t{WVY!%7qP;M5)J)s5qfJ~-aEamNF^kHZ zrz1aD_1Zje(REE4)_)Zbp1sW#RS@W8_#x=<3$m?CT0<&o#M(9_Xf+&p&DOXhk4URM zLYN`^EaZ*wj|7BmTNYW1TBtgV zOwOPVLKbr!F#v(1)UaAVisL!TM4?4zO?kwvG1DkSu-l_RwduRgXcm+AMy)-=F63`W z$^*p9=@~YuFviir-H;ALDiPyAw`FY`S`EiaiA84|NL?{bS}_hUIOCXTLNLe}f^j&p z=bcma-<(TPZgcFnLgB4I;}dcJ%k zEn$-lqmu1x6R0F?s4W&Vm_>$t;z^ZZUryp7nJdV!awt$fVJHa2gwt9z7|ve)SEI3< ziDOezzWYXcE@Ht%Ad5S-S4r(0%{oXX4z)-+;3x{sKPXv#`Wq-G+lqnEwDb?L90rEo zBSrDmaKDTRv)xc5RCE@(0nAFX)r+PG>hfIAS;6N|;&WD@0nZ&ri}eJ22vt%_w*f+2 zyO6K^VmkvX^p@}YI?d4}M}A0GA9Bdf^{O4V!tmu=)RSWLz*0GS-x^8AFRlG0q}^R6 zSCLu~LO!yTHpdq6K_KV551K)=CGKQ5b<|02yl6$XQ;{2TqS~W;Ud!xuQ(^s9cD|sC z1tq6dy*3llf-Dx6uv{VcN2syWF!`^z6Am%$ImDHXwdICopCQD?RcBah{7#Bit5HHA ze?DUi2s;zL#gcLs^WW9tx6c31-uuAWRaE)Dd+&2jpVNK%&+bkq>HGoqIRxm2gaimA zh6ufTP+>rcGmOK`c;_+6*W3h zQE>=E6jVgSD5#(T-uJhv_U^OOolcm+_vZ6?mwf2Gt9G5LRjXF5TD8`yRlP0;S+JBI zZ#jJ~2fwYvzwYAImy>h6s|2hE^HiY}S3H)nV1X3#MT+n3K}BL~+!SRkHf2)V2?1lJ z(OSUom>pHw|17sk4Z)bt7Jg)`1z0{Jh|G6H>NnFSx~>RFU0q~1g;-Zy4s@=VFV+>y zNy@+}C|T5{bU`aPm+dFjE`%kRo`@MNJ9MBh5OBpgkRr!R+lHK1XGLr*yBkFg^hu}t zLKk75{CIwFytGLbX^+b3qKq(UX@O3XNdG9$D_DYVCZYw;#=uS4Zbzm#}RY!^O6NC5CDSPhy6{ zaV?dOhE^nih@(OsB)qn!rd2}cuQF|o7YD32;1EHR8ATo9;8A*YC>*B)cpc6UuEIcm z{>r4b(qRK=wH@P70qV`9O+%!8RkN0KY1j-6CNXtqNo`=>B;{s1oQN=Xs1C8TFi=!f zbt|Ob;&3M(6UFL*t#t@!yU>b+Ili3BgXJ2fym%p6UxgVumG+s|rzDYfm~08N9VRM& z;ZkaPP&tEuB>nNSJ)kO*uQ z#2+vkGpexS^k5zP&b`VCH{0xF%7alTExb2zoOMnB0}+}&R?Rp(%{dNb}t zrIa)r?(^bs$X$kgyw^&wx9S10Hya^q>vKkbgNOz;5N@!IS()EtQ;VvQ2FW@FGQCP5 zPJ|=r{LIqe%YYszC23z&lHJ5Gx)_S+N~*$W)i7$hZV4zYs&1>hy0@yk>bUb5df(~% zBxIS>U;qavZYMylQ)B;qzK3y&1SvA%MS?J&AZ)cYL8yxfB2~Gza@hR8`spXb)BS`| zLoMpfu_Z#|XzI;zJ2%Xz_D#Yw{0UpmM4Rq;K@V2Pf5&G3xoXtu6!pXSO^ZK4z%A4> z2=zpTf9mG~#E#K-J#Bkli=`20reI~zOaT|!ObI$W)I<1io1_uQ19#0&?PR^)gzeI* z&=Gvh)ut3-FCg{5{h&cA1nHsa#t&1;Bl1kv_JWAmI9sfU z-@y`+RGc;)jJrz}#J_FEQNn=K^jEkh$Fn-S>gl}#$z%?7AAw8LN39Pc@z|tU(Cn7! zC6ag}eURd|UAg}5gQXEFC*3zUJI!TJjt|xN8Zoj73Nq=;>7pAQ+*xwE;5AGGw5};^cXXZ>KU>#2+`B1kue7+W;s0RyJ2n zbAk=pq$YHUE=}%05C4rWCvXR^F-aplAFZUe3p+9?j9LMJ)%LV59Uuf@9b}c#r-dk4 zvov#Yhf598aw89uSLweCV{O+X62I;{(pfNfXG=`|0z3P7>C0KGA5ygg$< zv*d)?cDWI@+f=8({NNa8^D&k2aoH-ZsoUsguA#5f@OHbYZVX7%4mr?-QN9_WjcE_x z2G8lNPV`x%B5AI*5&)c=@rnfnUXhoQfl1?CXiDz4g}RV(@6YHgeN=B=Xx(=YBiBQ( zTi&~e$i8cYPOHWY)z}4Dp7#&2CZ*{p-{n=Ms3t0N0!?%VS+s4tN=BJvM5NG2q$qX_ zO+;sQv0!8kryKNUlKZE!JWW_eUu^Jx<+;dKg!6YNxRAWujFhaDa{ZFZa3;VIMRy$Vs0AsUwLP1erk(pgE)v zCqId$*%=ZyhD?MYl@3M#s4CNOmta=dr$1e3u}@DxW0{pih9je~77LO(m(kegJ&j2x zVw+=TNxXWD@SI1jG#mh9iX^e6efCNlVx(pdE2=`zsr=AFWm$vrwV0I3@X(#Os-*2C zmP4!2`*BLIo$2x?CASH|D^T9Q4?H76tW_R7O;i{}BnOi*04F2Dah)DX)}ACTtWKNl zpI9_Y;nS_%-_Y9q$;flU?oUdkIXqqyX5(oD>q$a_siRw;!M?)j!o42FC|DEfB_-Q0 zOhmSKw%|del|k@QkZsoBOG&oU62C-b`|ks9Uu2tU&a}S3944Fgd(G7YA={fS_zy?{WQGzC3-54R2N!=Kky0M8zOF|GY z7A?u#RH9pm@Ww@JBb}$zlSnJo(+%z#HP2qlW;L>*{I z(@Qt7%V?w*`m52JIiX?fjewlkf5AWtk~h~pY{ra`*!(iyo!E&3xZAQQNe**as+YuXdYjf`zrh5!U$3@t?j*j{VG#xplEI-k3lOzcLc zrj85cZnl>jnF(itCR2#|Qzqx4VgY&uL6`HOgc_-~^yG|%Kkx+lnNK=p0|wGQ)<_pt z|JIQg!qp?mr6b*Ikd%~XA9>)eRJQaEy^+z)kLq{T!ggF(RzxM_pe z&OX{s@3Sk)^gc{=^8#pRP7wH#wMQFQ=Pi&C^xjX6Y^Tguk^;l{{oT^UsUD_PE&hnF z!jz;|%$rwatZLJCUqw-!5R5ZxEwAxa@R!W4b$VA@XSYTeE5>7QzZd_`n6<&cgGG7} zgip3^-Z)y4aa3xhdCm*L)W)`7g;hxc0d=NsfS*#m)y+)(6uOs|+FKzPYXl^NT$`-D zI@tn97ojR$QL2_!VUkXomR`=p<brLWQxN(&8e8%bt;);eGY zQ6Mt|sZhqM!pKqOtMR8!*Z;tCzyrh%(=I?`G+9^?Pce9@R0Qx>Rf_s$b8cZi zu%R+w+F|$E@6sLF+vETiTW-Vr_9B00M1n$N_lx|UL5wYZG)KFQUC6*)=4m#J-~g=? z$GmH#iIO@?0y7)Bs_Cx|h@MTvmYFbb68pP0WKQ$S+I#PhSW^#5?|TGNU`aI(RMcqB zq=yA5G9`7p6Tu%J3qewXg#eM6BXq73ZI_mE`C-QrrseI0Vw3(Lr}oQkE=GX6kr+Vc z5g~Wl?DORAL|bm;c#2mUu?wG?`>e2bWD^;HkV~8n+Hh?<-vcQvG-+$<-HE*UyL929 z!B`vxxMj(4%iIQ3FGb5&Jv zT1DDvw9_#1B3dc*J1pL^z?sJ$Tv7E{{Jau{WJ?Vx6*_sTB3mJr?75B3R(>q!qlKBU z0so0_(K$JVRucmC)f|e5EaIjH!hAQJxQUEgq;6Psf@jG>% zad?F+Rw%-Re!7fI55Nk=6Q;39GqfZ+_#y1`t!HIv#0&Sx|?w3@^hQbyq&GiL} z(M(Q%X5_FYDbdsgKe|cfTsOiv*+4ghJYbC?SMj>BxejDY*DF}Agl0!EEw^GB#5m(G z0&aI>;}Es&-{mCGvu-2*~5f z>Q*q9<0m=zcrO*1yts5Bjt z`Jt3<+s3;bu$C8LgUEH&nol3 zpQHiyN;I(V0)XnKJiCjD3mOqRa5a3^F<$7NlHNmv8P~*Y2YNmBksgPlglWfWNtidq znTRyXIQ=*5twUu;X76+qU@*gO$S*)LF8(p>vO0|=sIkJqjWVe)7 zzVvR?CZh=J&jLYLl~vr=S52xz(b7dMVi?CcAjV>D;8nTTg@VkH{cG`a0C!B}zcIc=a8`lSmIO98SYEEB3LY7Tr*F!crSt0Eov*UjPzzq6Y z@mqhQ&5p?qL%Dt4$znuf=%H;SDrYjk8zO}Q>GS?dN>_JaCGW{g9)Qh$OC5qinr(HI z|99K$51`%8{4v^nv%_|h`zhv|tiz>0? zabCs(j};Lu3$-bLY-+Ig3`sZ=3mRt)#qw(q@9xZmRJf)?LNbl8pkoVmgs!ApV!h*o4+eR7t0MonAi;L z5SGv?+spnXPjGJ1hc9)$y!#=%mV>~UCo^AOubur(E-ENKC5vn{tOYG?pvg!>7YQTs z@knXME$66OC4r!=HQOc|!GN82SwG3bi1;%#I%Jm@g-cuf<`CV;?+HXaFIXxu1eM18 z;N>R<9N&|gkL;7FSiXeAOqvpTh$VJKMS8r&9Su@$I1jS~I(W97W*rdP&;~mPXZLdl zC7&yFUG3wbhP3cH7p|#Q|BD!el`7p9#Frt*s!JijDfgKt&>O9lew*Q$(96$8ooX-l z!DCs<%E*~A|KJ;I0&96p{aoH#{hVN;lJr&8AsSc#KCT)DHxxQam7f7nOd=Pk0{<#z zN{nF>c4#FO9Tp)|l2)ug{hYF7LXCY!^-D`x_hd?BuU|0zAV=VCII!P|c2R+f0>mZvRlO^wLZ}Azqrl5Htf1NJn`B7?>j4q; z*dNs&jH7NR1v5=+qHLk8ldsa!)ien0!c!UHfJd#-g|f-J@G~B4>pPr^%2ZaG-7(l@ zhsj+++D_oO&gQ@z|2JpH4@TrPsl7M@p%G<=_C|;UqFfKvYuCVEgmnI{huFgS4&=D8 zkv_ZW9OSY*KxX*Xhh*C+>nIFZ5hB5I>R#2cr$tV>!^YdH(M}^uKZfUjls*__V~7;D zB-j`NADm`c6Rm;()0q6#iNP&;jZcy*v?zT8Zpp*ivQqTaX6y*~ud%nH5nK|S;vy|T z+!J=KJRX*>Sif6gam~Jh=78!HYgIrw2x40$hpibdrxOzV`dGRZ&ubyV!6EaXtX~tt z5gh;=>D_|N@Zqgr8Ae(_i(eiJFR>lIKFMs3$I&Es!4TF3<{U79CGZR+#l1|TY~ll6 ze6w@ZlnTfw0R0B@eIw@s=$rQP>Z1aUbT4oAmT(>FVZMn~zFz4rhCY-IRJG#AHVnDnJqZofMb6%@6+G9T(Ad zCw-JXzl%O%=SQOS=lLvRS&{~(A{8oTJjM*2m4k;BP!oh{0X=6!Z)XeGt1P3}u!OT6 zU}>P$h8WN#gGwBM5BcEgG}+2`izX##FA6Sh^@W7x?L~$r=$~wePZk(Vk~B|8-y3nMShQzL4ScF0pACHB3$i z6x%HBL3+jY**X%bKk?-{?I0^3$h{?W*tP8$jEOZ?3q4@04;w_k64Mt__ZnncT&g1@ zq7#%&&IML?jHFLoM`J&fk9eeT;-=Y2r09@>$5Vr8WCrmKVBk@}%#mZeMoW{VLrR~8 z(mi#Eh^k|{rw*ezUxkXHs6ddhH`vo`5nfAnOKIiH+(&JuYa&>>AS#d5jrLcqGG4=y zht1VKgGg5jHsx;tJNK=d4@qWRvEMR%`cZNs5GGQ^*l|}>pQ`K(b*tU!m)f0vsXf;( z`BO9kPFL#0&s&619L&8?V+uEkA1Wc!ImP-jHJ9w-q_gXdg#i6hAfSWGX8^C7t*#R3 z@*!u&r6x%T|8!PpUq2^~h9a~-JSD2Mj0&agLO#VbVpM8qwf%1-A2y{C$Qpo%Ip$-= zCcJDk0ht*!4yw8W5Elw6=N@2#u8yf;ohh51sG*?Wq(=c=?mYa za4nJsBB^ilH2Vr!!&)I?nUbJ`WQ82>!SNk*hvL=2uCWbEdRSJS?O96cL1SsEFQrop z)ti*hbg$8yLWd2<|H<`CBH38ito!U93Q!=p17o<-SZ3eM7Hs;;kykSC?HnW{`0dD5 zKMY~c38G366ocg*I5nl5x!PbnDme3DQ~V)6ce)vIVh*5HP2ISR2FR}L#M6~Ox!yz0kbg!MHX^d+GSZ>V!Vae_{{aDKg~UUHiv!T zA#Y(&e%ltg8@$EkCPPVd87?wpa-* z+e?q@;pIN4e@EtXq%i?Axq_p-!A z*TzsZtaEDCD6^##B&2m3RB=(bA}yV^QmZyZVslEZ@vbMs6 zxxnuh9hI|Ntdb#L1>;rPqQM(9#+dE3)fRVPV47kaOgtZy5c)V(*fY+--jNB%4v6Ds z1kOlF3n^)mJ|@?YFKJ3Zj&p5#YuTGa2Bs-!4H#D{_z9e)ds$cLVJkBOD(x7$HqDf2J%(;p)3QH?jtH(gOc-#-(Cxsv#1BrHa}He*LReWiCe9M9H6?a$ zu=`$nL$jn(D|J<0g;8MUH(zVM2=lF2wK||1_sIBTv#H66NP~xx{r1f@Gu_+#_I#~_(}Xg zhj*DyQq~!hv$eAdc$sRg1BTS@7@Q8kXk4sWHc5($WNmW7^xxbb&DwqEtQoKpocCRv zt`5*hM2~h{+XRUZp=(^!D>*e;GITQ$?ge2;ce{i)Tm*5BioY*k{!;u?*>k{=HpbaL zL_}%3j*1Nzk<&NmhpO6-Tt9<}O}h0`0J-C`(uMIKG~T7O;l|rU-R&W<Pu_#QPQ43!)!Zm%>p*;1V!;Pa_p!(zjU-)-|Yk5 zB+I1nXp0LIWW1*%pS&p;b9w&T&g8^V}RUt0LLl6LI^q zZrlVdTe+$nr1OtE{YPrVp&Nv>dG5}65BRC(Fval(abAs2_~Nwf+=V!+3|&h@1n*^g zrg;xRD4dZe2p3Kq=50Bf&hg-22SmJPgI zA>I13{&Fr)a7KzE0N--twxhqQWkDixRkR5P@}GpJ%8~;hr`yHdtqSpg<6% zw8M*niowvVnil(P72!7=?vMnFDTaqe#4J_P3?$W?(@jFw=ej_ut4Yf_r}9Co98D$j zXqU=^QIT@Pfi0cxSlw2sV>RW$Aaq`Y#BRY#z}hTSOVsy_*}Mo9`zu>r9c*SX5ZP#} z&X3s7&}D!W)m9|&1F!m#ZWY99(a&e$CIV?YnL;nR>51BO`xaOou;i!G;ZZuI=%6w= zNR+5`RAZpU8Mw9cawQ}uX(mZT)<3bwvssUANsZF4n`RH~q!!hx)+eb>6GCI~rpftw z<^BopWG&FNGn>S^P)vZkfyA*RyHx5PW58$2ZZsI3!yJz!UT)%91~E$i8Oe}>QiytbiA?BLkAG;9mNF~_ ze+8E4oUQt9qc4tDSoJ}pw=A}<`p)w3jCIOgrRn2mGiXBp25u|0R;1OIjg7Y9S{fwe zi6&}bjT1%Q%P;hpx5sT7?9nOr#7Gz3TQ?=HA@fXod zXI{gKI?JM7!D(i|X=Z4Bnl4h}J)@)=*~lVOlCaV3m{Jc#d&q0Xd_r!SnQs3BT(2BI z*q!u97O6(VNslB0A2lLQW~Mt-B+QGHBj(3m#l+N+1Nw<*KtsEN6-{>(2zWaE#?my* z=tq|~I#mSg9ri&s3ly1~)C^=Pbmow?3ySh5h};K$dp7ylk(<+?f9`8#(X5%*Zd)=9 z#!rnPqKgWsBdQ%2c%-nYguIRf|&AMdL zR!w2pk`7I%TPmEjM_TY)`|kz*1LWu`95U6yFw*g0tYpeIakmY3o!u z{vcaV`FmH&!3m2p%H18C_Q7M0SV&tL*{5K>ki~M~IE6xEA zMLRH|OD!TcuIq0-QFoAHG=0iQ{QN~Fu@$shZ{Ptj8%s&o{SrXG)Ftr~nqF#$sB>Ce zXKHWT0@Tt!@YBgAhaoH7<|YU#NA8scV4ERlxfybX&5-rl8dM?8M$IG^C4XPMd7 zS^87xENt#oT1c(46td1zsL)xy`_9_d!s6w*uHI%{C0McRs?LGAu9o6otAFaMT{S`w4d71GnAX2OmU2Z%Bm*)C}a@AdcLUdtK6bjYBXgHmHZc|s{ z%*LumR|j~|vwruGZ~juZpB~g*>Fw}x4XiD_HM-|?5&1yrz^6}84N|`ttJS5QV=2)v zAfg~UO2MT2hh%MxAMN7F65Lqmi}fKKhSLrLVLf}fXrSYMXGJ02pq3C>3Pq!$b z(!#Mh93nn#%FH!*nw-s7Lm!+h-SWGfWfKPaZ7ryKmQzpPR#R+J_ldhw`dEfIP&2UC z0GLl2T9ephG2Bj(rpit3qEF1Z7J=kkv=!K1rX{f{pE6NYsO@AW1y?mEG)Kdl!7QlE z6B7+DB^){8b{f5s8>YIPRo+DcmUUjCIofwVGx#uoY?jNXv-^o_2k=e(png?`Op$@+?H zK^L8D!HZ-IH^EJ|aMRvoi)^kVg8602<~lQZY_gB>0h{F}p0!N!>wG68<702iI(fe9 z0+8m7rmO&1AH}!z#cIx1JVVH8$1-HeXpd8HZNUFv)L{6 zp&u#Pw{z)&-%GlnN|qOCXHB}mP=*_!XPlBQdcAbfTa+&Ph1T9N>4G}EbkVEDz)2T? z<)sVjbcYuxI>j|JQNy~in5raQbn`^IC`r0dgGslfi)oTBrtywoP?B_k*Re5<1CcJk z!IY%OZdPhfrYN*W&)8LHh$Ip%r^qF-#sk@*%mbVRNx!t8?eZ_MD@-irV^z1xv)ilj zl)$6a*`RXbPWm(&7Uv0W>vpdfLZ-sRr)t6NOs0-VC@>w$RITaS?e54tpjG6JiBlj- z7CA=?e3IH>N^T5?-DtNTe_DnHM3J}YaY97A=&aIn$slKiDI9gCk7&!PkV)F~5w=m#?#r$m$Q1lp90&skLV*g#bP@!u4LG4QWjJ%@)zio75HB?4ad94kA^C>**}vX7JiZjfif2AhQpy!|ze?^~dkT$2aL? z;c}PC_UWCL__y_aBK|t1lbp!;Y%FMi+yNKGh^gR)n(AWayj94ij;L$q$Dj>f9RGyP zja{mQ|b%Sqr z7|}4a+K&*#04b^iCRA6yKn*)!H~q)zl0hgu4{e$1RgDyDm&Ha^Rgw-J&eYb9&w+tJ zTGXm3sr+^kG<#HcqgQ*nojbbKllBn|liICvXw;DRb6L+!{gTb_Ht>hvDfRZ5XsGJ? zRNWvCc;{>$t~xNR>JlWjM1@prrUmFj82Lkct>DU51KF2kkm@pzvP!IQW6ifzz67^<(Olj!2I{k zrAq1g77lev&PIJ@b`D;fI!wQlRpU7F=9a3KjjswP2Uit)oP9&&s@m34mAf54eP8GK z=33m_UrNT=W{eZ~=qF2y+Z@6#m)Yi!m$MM2j4!y&p-oyTqqJ1*J=BE8%7)s=t2or` z1tuBl&4rA@i$l8LxH|EvAWe#w0WW#KeLov0+DeMnyb;R{!-w?V{ z-qix-b@}RegCFHtWVoFKBSNQjv zJVP;LO;#{N&ECt_-fXM5Y;j7$5646j%C45-7>w@EG5LVUy zXUtkD!E-?SNZAqw@GjVfgoEPm78X*&cr1#DmI#su_hqrv>rQV;#uPNW2$n1CG!(NFt1*TMd# zExt>1fQq;a3gOW?E4@bEov4RxsqY%o7@<)28Y72tHWTTis>_^A$4iaKxr%L8Us$?4vcnzv#$97DWJigzP zOUuOho21{{TKYXN7>zXjy&mZzRsd_73!3&Vg`x>`RiH$g7u*%OU2#^&-PB=A+rVUX zI7xP0Ue93kL_Pq!{Qx}n(hmTHD_>9kNO(iP4c?u8n-}S~GiHzN+>M3lx3d9Y_nB)= z-LBL0G`2Gx+qLGh?p{06%^vYi#r;g)-#xy+Prvm2r4t66dW))?PQnt+`_QSnv+knm ze#yJL-gh_f+U{wZtLI2jAXhBflTV@F9msa?)ZJ2fkNuZSb;|FldXe&*hbh0iO!+<4 zDZi&W<+nXzl&UDd`+1=JMz<>EcZXIC#=Z+$mzpeBe#4)}l;8Y5SAO#@MpR04PNk^) zo(ciUv_2JP*J4`lRi~zov9jJ|s%K?W$CTfI<(1#YuIze65YjK2%rxQFjm18j{C(m>sMd&De6Yn@}i#sw6vfK}lVyD}8>ay#r6~QVzUy8=* z(xmnC*z|rW=Hg`f2wJh(WbEQVTxT*}R*Jbi+?|tyyiJz~XSN}|4>Dd-=&33MvoLjzUhjXsCIUJV6S$5$Okn*EdxBLco0vN-4u&WCpg_n80KIreVckm z|NIotZIX1&2zHje*Z(??L|EpFojpZ?hm0;^QJ&=l-jKEx(M}>58cxYq$UYSIwOV7+ z+`0A;)?C%ErfRvwxY*}*QbQIUPB@o_(?lnQ!eP{lE|VgvN)KD-|A&<@Zh z>-cE><_0DhK#$yed@_)fifbyj+U`@Z<<^Ots zgma^*)LV$fubzdIGv>fPBwy=F&+-PV726kh2tG{9IUX4q;2k^#_^~_%xC9RYKAook zAK)p#kK-x8XYdr@ET;yz?!Oh_y5~iJPvI%Rb*xE%AH-9DAIwvLAHq|BGY%loq)+};ZCx;Y7NU>?+e8(QpQ^LZ;UoTr%mPhPl<}N%kO5YiNrMN1 zQez1pHkHKfSR3WZ7k`gyNf~1j7)kFZkt~r!fUhj)`Bf)2cyE?;^~y3zB$x-RZhBH$ zo*WZzp&8d_ zS$Oh3Yg-ooe6K!3M!phUk|wT%4`Y>(D92BYtK?p;5IrpZVi&Ga0Ktd@`e>Bx1$OXt zj)yx98*HWdJhoNX*oM&yE6|XR4F~jVy=A!A8J2OKW#q??*(zGubGRO(Zq46DE z$?-`uzOyS4^+IQ<#r1X4RFv*2>3E2$_gljU#xf8^OFK&X#xxj;o*;xNucA_>K`9eU znJPokGxqHe_ifahje>;fG!(6|V|xd?Z&&2sqGXYL2BL&`#6fb9`+QygnHf10t+Sub zcHcJS-Wh7_DzRK0N}Cw8?0w2+GXFO?Ykj6pMgWc66jGTN-=3M?0#Ze(&jyBZTr=>Q>!ia+zO^n-QSM$MSn8i7U@xL-Uk_O8lUS75g!V*?!v2!i8Yhj~JxeVj6tK~|k7#mFH?6o>1{qId+)ojiM^VOy?x#1ktlR~^W(Znn7! z$MQVE9ekz5O{o#Q zf&-BjbL2?87`Vo`o8QVr$9{nWe2VfAygW7G`>3oy9+!w%3u8fv=8?!E60z#)*J9g2 zV4;pU1EjqVlRf@!SE4=uvE$iY$t)bZ(gil%BxwL@m$vR&D0wLI34S5TOi3X931)1Z z!;_;$<#wh4+;K*7UU15iU=MCVgVBzNfhwmPA{N$kt`4)*lf#okSg?}Al7qE&%t;Q? z+F=I*AiCVK0Gb<$wwu#|aX=_7{{~qOMGx3FV|7qv{tZ`MX}l}|hYXcLB4UP$GLFTH zpv{v=9k3iwNP{*#G!3?fVnA{xn_|74!ek;(3I21E>rl4C$91&sgTZR`0DI$OKG z+v{xQjDq?g^aw8Dyb7~O%#17w z1>7!u)I<{COkjsY!T)k+9Fgowc4D$M=mSA|JQc8+0|fy;Vf&)fxk!X-Ecng(GTo}b zqc`et;f{3bnhC+wkS7(97Tg{~+^Z};NL&$BWbd395ILY})^se3_i^li7i1@mZhC`w z<3-w!>EKL5T0Y1Sg};Ww9{n&Ye#Rz2l@B)A?d$p+-aDJR&6D>kotEIP4ReKAAcm)u z8gia(2)<3m7$)7U;7peqNuD_ilY*3sv|w_-mC$ZQKWDBRd24AI)a-S4@E9*^qch6Q zIDU0bz&JqKE%Gs`#7W>VTQ;k*CXlz7X~SbFn+Yr?!quwtraG$3$oD0^ z|ES10QEI=}_yS%Uu&c03Y;m5|(ePkZbBd1P+gzaNC3lRSlo}2DUDv6e!dW6 zr{H7&6tmfbb}Y&s9&kkCp+)@IjrgRXG4l`Q=i&_tTAbIHkrIy6M(|0eF;ksXH-|cC zsg!a-CdcTq^Y_-nG1oh1AL_G%H>;YxIrK{*JE`8ZkZQpcLBdI(HJB=WPkI}DW8GLP z5?t!KF`RYdRGpG8bVKGe^+V*yo>2rh{-4$oyS#$1e*>y3{+TA$cDC~<1UzG4>F6B^ zMjori+xplGmTDB_5g;+tq>Mt<6Yt_2N~7c&;HYIaQw1V_M_?vWE)bIY1CBPjq&ukPZ)n(wn*n;K{|e_NNo ztmaciJt9Bl%GR zQ4R4O2MtpieuVzI+^iV3DoNR43q&Aa%+s=bo&pqUCNc@_y2UaW1WP3K*6guEF925& z>t%|_rKi)>Eig>6LekuyCU(i9q0Iq6RI{TpPT_@EB*vmS%(BR2u(w!Hm-ru)A{fd0 zG=94S4fUHJ5VeLX#Zg3uqX^s~WoC?pdcu(^Rn_sB5+Xv$F&|xbmu`MI8;X3$eXTl% zrSmtPu0p9OxDggg(BTIYU83t zB2i_OmTt@6cI0onvNveOdOYQ30U?Smoz?|qDJZ&&j_Cx5kqgCSM}j|NV|nXnvv*|O z*5{(vF#zrY`A$N}K~VioIPi+@s8k01+qLZeRB9GP;YFoEib_tTD(g=sGiW)_*bCU5^v5F?j}=$udjv&DTvUzs-K&Z?-gahFP3Ip({W5s*i2MM*qXAE#vpd_E#@$fm`TH9PQ%F< zFk@14O&S3$Fd^;yP(s1fN?y`Huc0_5#2nEoGuJ%^d9*{hu)$^rlYfrViiU~a55v>A?cMZ>}JlFD+K5C&IQS%BfvyEN5MmkihRRSlSvNj}x z(F0}aX$Pa7YL4eFfl-!XN&<_S|2?+%5eac? zn53q!mBN}2I+h!Hw7UnDj72m|IXG;46087d$$3p#%3zr_08b&L6}D>J35&9e#lyFd zU*cy;`zztJ60qUV0qb`B9prq3o$JY^3RnscXwWr=9HFH(vD#6)3oUFGliCWsaZ-ud z%8Ja^P7}*YkYZKPJ#lZ}l>VvHrVq@RIcxSo2Op9&nupFg z?C>K7hmJgI?!2StFF5Ad;}#x&!lK15TXN#km!EXw{#_&Vohrisw}qR-PlTTgZx25eemeY2_}Oqv__^@&;TOWK;TOX@!aKul;a%a~;XUEK z;g`ZMhhGWr3%?qEE&O`8J^V)a&G4VY9pSgaZ-?Ir?+?ElelPrf_(1rB@L$3Q!=2$n z;lG9thr7ZbhCd1)2_FrA9R4KyY4}+9v+(io=iw9KFTy9oUxvHGUxmL8p9-H2e-r*T z{9X7=_-y$5@DJgh@VW5$@P!br@H0FXQ|>g4Kh#Hb$ln!Gm#l65c6A|jVg$En4+^QD7E-@aipY=-mNl2PrmileK2%73qLA8FNd0pm^{<80FAAwWh1BK$)Y|%c z3#nTQsV#-nR|=``6;eMgq@FIMR$t!Q-n$B^8w;t;h18ve)He&MhYG1D3aLL7QvY;C zYwOn+QX31Y&lXZ&E~LI&NIhCeJyl3u{EpW4t}3L~7gDzsQg;+m-zcPZ7E(Viq<&vW zUG~n_)~_q1ZZ4!gQ%HTOkh;H+dZdv0bs=@pm96cqE2KVHNPWDJ`eGrqy^wmakb1n3 zdbW^SyRNnM_Y_h$6;hurr0y-GzM~WyEjKqGE~I{5Nd2zxyGyU)cZdbXt(4(}mPsh153+sUH+lKQ5$xRY*Oj6fxHvEdTVb*3^3nsSSnHCkm-M3aPIbQV%GF zF4nd1uZ7g3O0h?E-+rbPah_c2SB2EGO653Pb2TZvs$9v-mCAp2wNmVY-M1SGsgEd? z_x6)Y<-GMSrSe+7s#M;>jza4Dg^~{!zWt=|?a4yww}sU6h2LFr4ejMvy1bCON~s){ z>k6q47E(7Aez&Rc?e;?I^M#Vzl*)1T)k4V~O67QYpz!VC!tWkaD(}OSO66nwRN>pR zO67H4bScBOJSzgmq+4ZfdcNbD0E~GXWQeP~jzE((mzmR&gkor|2^?V_9`FmSoxvr4< zNFnvfLh8;!YI`B|gF@;jh164p)ad(KTYpC(_1;42=0fUIh16Yz)He&M2Mejk3aQ@| zQWxLQ3d@y+)D4ByErrx)3aNVvsU3yXLxt4ih1Bl~sWtC!h2^S3>H~$;#|o(}h18b{ zsc#oj4;NBT6jIL?QkQ<96_%?Dsr7}_t%cO*3#qRZQuh~9KP;r4ETsNWNUi-~D=gO* zQXeX$ZY!j=7E)g=q`p^3JyJ;RR?6|E`hRtS|GkY&YBUUo7bc36B99-mLQ*(|>7Mll zqv@I+y&X-@`(y-l-(i&LWjFF&8gK3(_uplVkQS;wUtZ%|hy$Gpr923OR1QCSTrp+Y%P)w@wnrN8+wtw!;WdX)^)XGp>}pXja6bX8z^ z!UYGlFpA6gg?5yA_4=yT9!Kc9($UaNm9n95a8Ce9)%-#I$`o)^trza0`>`%QX#qcw zHk8}_HlPjtE-Ehdh)&1}LqGEB%nT7&&0}SUYC@Hf@hSjyy2T1gWpffx0l{33pCm?& zP!*&XNzX1-Ic3nNr4M|B7QbhXwhqT9=JhxQDTuXt;;kKKl57V27*!l9Ri}}A0naTN z1{t4gO5BANUH}-lzd2_JuI_c?!7xRq@m}UOUNkmn^vf&GyA|l94dx7mGu)mwOS)E^ zs_;%rFREdQ!)xM|gyL04PM_7R-+Do_(+sj`s*V-H!Bizr0SoTV3a4IHhs8mkIbjxsL4iEB#rkYaxS##d1HL!$%E_1d3URfsi zxSor>&EhEQL|$0BUO9Z#8=O?7)^-bY4+uCxYSg)U%ZwV>fpJ*m&LH!XX;%Olxk{P7 z6^*a+`=wEo|DkLI8U|UI-57F*F?CTcM&rt(v%#&EpxTt(u1e?SQU4n^q6;z$8AWug zbT=b!I$)hsk*Nu&=78ovD*lp8SP_O=Sp)Po$Xfycj1D)qDQAI3d|^&4XtecXkfZ9u z^oox%qh!%y9`CsYB72__Mkbxmu8@S&eL~}6XM>nu04AXB>{FLdB|WMGf4(mP zePPm{%IwU*xGzYr)9-)i%*USaAW$1!-7u}ulP_Zg!w?%V>cpy)zMWEYd4l3O?jZ}) z4I9-V-3mbdY)T_J1FVeFct)MUgC3rm1S82JY79m+^?6;)2O3{sKUiR7s-KErIV;2) zmgT!5num$XkQT|5;hYsUPV`ZX;8hHjCF)OmGW1?;DsT4PbQ2V9Cf>{nj0?1|xe#U& z+SHiqTHo?d~i0+EC5^F7SHb^`^DdKwlGA6Pc zFs2Un8wNT)&lc`9v8Sf%XHo3ZfiS);dwHR^J{xRnvM^QBSTi}@t*aYfjpa6Qi|a3i zfjStd-zeN>v~Kf4ZncheP=yvvP+S8loB&}9jSy5~&Ntg`+E635n94XNyd>t@nO>~G zYXX*^qz%n0z)Txd!H=1MazS%zC%@ue%SODWhi{P_mgfX19Tx%c=hRuahFC4z0;}fM zaRBFJp+08-3sMjC7{CtF49NIK2O-2$QWFEqv$r^ZtGPD;pG*uqLB5j=cpJDP@Q;_d z6DQIFj2y=L9f6Ygk{%7FIdqwaOcKV=5d4VA*^Dr1-a;@t?3FWZQE$S3;^%vC#e#ZR zMIT^tr}t|7j)HJ{2r{AfCqBl!7XwUp>di4w;RB-|Z7WD~$g~R8!#DEy*zH&Dx$48W z?|zVULi&XbpIiH-tN!KU_u&J=93A=fPrmTThi`uF=8up@oE-V-_M3NnZ^zGX{{m^r zj54aG-?$Bqb8>vK*djD0U$%I)Tq!o+&Ie(I&TLg7JV~L`&;{sBK{hCW|KN*eXh?T| z{64qHZ4N0l%Fk`d+Zc*Zdk6dw29iFYng?x#;oeJyX8e@TV9gD6JdU-K(WDZ5hy&bk zAU(jtnhtdhm6B$a%hgA|_4d)x_yS@g+O3V69IN#!E62IHk%epb`o;t>i~L02Y&piQ zZ=!Ev7ggWL$*WxnVVv6FKp#M72Lc?~g@RnT&FCCWmFsHRJ$jmTJb9huu=S!LkWV+-)f~p zL^8UCVn%yRjB)J9`VJdSH*a!Fl&}Yf4b!!@k_kK6dLwFeCvRioVpHB0*kfR?=EO(S zawC=RR+wHWzDDJqL#5Z;n$4#000G+bA^}>X7PR93{KV)l5!FEj#D7lnuW=b$wWxFs z$kfTiSMo$aXoxB5FbAuy=)Z9qPu9G~pYoLB=IK0jVo{4ThaFzcgOmNQ;jwsm<4hh4 zmp7L2;CR4mdCXnj_%j|jApJRyIm;UoYm()SzexW2=Je$A8htQNlk)mjG*3Rw7<$qN z$J5^KWSfS65wGvTLG>&>I+H)wqa*na{ zkesf^%;Zn?n3bHS$L!=(J&p$ZHc&q<- zt3P4Qn#qBAvS(TLESJrBzvDPRM)rVZ54dccqo*auD*IT=KGtQkL?6##_Nn?X)jmwM z56hET9G0jnyKdQapIs4n6$7v0!0S>@m*sT1oF3)$SWb`2A&lx>iQD zOl8ls?3pf`i?!O-PP?_!?%Fv>IR{zJK`!TD@+zU23yzU_4mI3&^foHpdX?JZD1> zS`IpBZHBcr!?o5>PQ!8jBb%kHsk2$lP1yOiB!*i}K z5qOD#mpJeaQ_f+QbC}CHTsenZ&fzZS2<04MIY+phLFEiu&Y;T~QqGX&47r>mm2;%! z9O-h75>Q7OP)8Y1hbZF^%Q(a`fcyvsMcD^i_Q947LL*%0bcI^<3E;g)^4WkaY(f_`NmX4!{XHiSB~Jee=><{NnP9e4|sv(R!D zx}29O=Vg}jGMBSNIZG^OiOV@rIVW1qi7scUa+X@oQkOHVoMFoub~$OXG+Dx->!Xvo z$)QPulf6V{Nh)yrgy__>U*vFURV9EK78*# zgI?>N{Qae*zkoH>Xm2FO_vu*;G|F)he6nD%<({i=HF`$8j{= z35awl>7=p_Rn}pZb-2n-0ZHmOp^d1lcfyW;?Cy8o%;~p35q1DbmDQ=NuFC3GS>083 zw(GbSaVncSVK*Q9=nwCVG)9Cl2OzLvkd5!=Us*T7U9X)ZO=i;11n*uh2*^7=O&yfq#cWOvFZAd!Zko@4+SKbIM5(7(EWW;$wJ|&S)$;bx*So3D4ott6ctTJJ7 z{1m_9{p+4$$E_Q5$~L|{sjRHZ%2rv~RmLG4u&pSCoj}$}W#bvZotxhEAPj&Lz)1yw z&eN01Dypnvl_6IOGTqL_EI}Mf2>;l@dFrH^aEftqhVlE|mtIWuoCj3(Wp!NDkMB4P z12(CMCK-FE3X4_4V%1^s%U`(kc~ltKRMhc`Dx0|DQ?27|0I15u9@ac(K1tNx>xefvB7Oh+sx@3_wY3X5Gy50!OM*?27O{LbA!rVvMI z_tSAWEFBjXRawu3Sp1i(e)3r+A(xfxr{i!~dVuC8$6`(0tXVf}uA3i!=+ZlwC0tRm zpKfxKJv~6atw|7XlZ0B8?2X+jsd+56tNM1UzTH)S^;28!fQRb>w#i2vy&oNCT#|Mw zt4)Z-Et{Wufpu0xGC5%rcYuxyi>j=BLM(o6^u3o*neLgKe0;eigN{#*#dkdR!hNuZ zp8a-nignYlh)hXjH(`H2>qTM zi9h}Jh8tP-xD0GR!^?;;yptpGl52Nb2)#5UBF49ABUaV!Vsa#Ix%-LT zRIh0>`G7MS(ud-q4+A^R7>94ng~i??6D`#vf=P{suo z=SpER*AymmO<@9?T(~@0EG5QbQ(`Q3N{k*!lWoa~LN~gd$CN%H$`rhB<) zOi~@c(Rt#^fBgXq+w}d42TmRoDl_q5yomnHA0D}$$_`Zeo4lKsj;{GVtK|N9<_zm* zSMoaZ(Fl^i+;3mN-rjr6;^<4;jisu%WiH}d#sl1riW}i#%TkUvt3cI>4Qzy;&liQv zHwu|=6vD#6TpVw3A<`Th$(Aj~_)X=tH{J0N3$sKvS{R^(SD=lo+BTXe+vuu*tJ*Fd z1D1B_6n3sMLGp4yosU8ofEE})3j`3BZj;FwPzVq|j z5ejel9eB&il_vx^{yE11MN#qBiORVJ3;v0? zBglR%+kb%nM2xpCM*7{$)REclrGI3Odzmsa zS9Rb?p`UV4<(Qy110&AB=*ht7&cNu(!061u5Y+)jX9h++1EV7YqdfzomVr^tz-V(| zXhs78=a!BM${84?42&oPBh0`E1cqEw@IFW~j}?3a2t%bmfP{<7>eac!%%81PPB3!Y zGcUaGOB`s|hA0OqTM*KIk)Z-jKbR+;)Z&N?j5SR5+T#3YtsE1q&?BjADi{MhuK`1RX0;n%ACo~98Rq>f0 zmH3fOO_yPGqxxJG+o;0(7)?|KpNmx}W3MW%YpEg{4+Wo#RVc$%L0=sdyTdUk>f@{6 zbFm6#xGJd3RY7#dyd%@bSHb6E70Pf`P?@V@eM=Q{$5+AUVin48RZy9$0+*~DiU)%6 zb@07dhca9p)aL5I(Iu~A0xc6Ypmb_b)jqS*Tb%$WSqR zhtbR1qwvBWxfZq zrt~p_Tr%|od}i%Q*t6}Qo#1+ zrVf=xqg4pHylf6v5k!WUZM?7)4V8wm8}L|130y1*ZOw-m&p$95zwTCmBgielk?cH6 zNxZ9+BxG`=msR}7!3UNFe(!!(ryQ4M*^i-rl}0aXNrKS3WVh9YCzq>hZC=-^RY|A( z4p%k1U8Pl+{)ilR^~)(0rxeHd^ott4)#4+)dV+DMu`z70N<;9PK|7S2W6OaYZOrbWe` ze2kh%0)Uv7Z+16Hfnuab)Jp0U0KSQBYC>V%0Bo;O12EcAS>KMBtD5!gWE{@7BbrvT zzMWAjRcBm>oxSRe*(p2Gx9wGUz`dRa#a0QN*4secbyZ*yBY>`pl9lL{q#(Gnj9drz`2_31i92kKu5Ph|Kj62Q^ z(R*fUBbiJ!ZqT|AXjjC^K>97R_DGUMAe?z5?IJ0hWpeqc5RQR_l)*z#kA#yWp)hz7F}3t0W6j=<JC%c z;$TN7v|9A~Hd!q&6u+@j7x4CXD@Dy>_PG-h{_utt z4BH|4LmH%Or1OIrq+`4Y-|A7snu4om)RSjvvaIC&XDW?6UJ zR?gqV@6ZW{VKh_9TkcPulr5XD@6=aFv8*>%W=@!yPkiJKy40t!32}Q|E|I#*bqE?Oe$iiGj1I|!axZKXQnbL(3M;oHtcw|7i zrbhvxXg!oWFfvEE1NB2W`+;hJAvL8J)i3vFa8Qf6vuX9`Bd5&Jak$EyAR2ahtc&(} zjD~}u1awRr>0Jm&>1cFbvpVZEG+&?j2M7B*YqS+3eaCWgOqX>QYJalliqglsKMFmiUcKu#ajKpyK~ILG%YO<5~!bEfbuSZf+Eq+YYwbw67h%QQ^2r> z|CZ7FD<;G|9RxB-qtqMK4>B5yKjiueh{Sr~Dvl@U!l?SkggP6q zkwG-rmf*C}@lmie2(vE(eBrdID;ASLz2_1&5)h>&mImNgZv!K9$rd6lF^5DoOUx$0 zh`BHQB#0mD5}hPEvP7AL9iL67Ek7;{*j>9qD1DbocditShEiQh5Pa4kCd!5TB8bKK zt(YM83@08D#CT=fm!*L=>XfMa|_AeO1az6j!}Swav`%MyZkdX^Bx#x0Kv+dQ}u zUjcW9D}oxAA_};Z3D&8D8)?JRilZ@hP#V#$- zhHeF>u%?c9e?=iLqG9T)%mp=yJsh28w*`@geZPhP^PvTaut2;KhYiOU2|FtU#D~{W zJmkbx)2(&I(ctq6>30Z| zA_+xAuS28!;o^(;AP;fV1x6L}9d=sJevX|7%}+yz)?-X?Hr9%B;rVG>{d70E2bRaz z^?1R7hAd$-l2ykNHdX9R^c=+3_r&kDBj7*_7og&L{lA4e4><%f!;!@-;jH;~x*km- z8nHEG4ET&)NSz^84*R_OkkxDSv9?ypXEdvk2YBC8wI2=g{(MQfi`TML)ZY+A7s%Qq zo^qj?JYpKW;H;I1f@1y1LSNYSq2E7#!)L$$`3uilnO^v21gzG)*I^nYmkKX@Ek-h} z6eHU%{=r4x_||)VcISn!lOJ*Y5@wYb`gFrYcq_Hu`P@yPmfH)W2Vf*&>m?&3o3=TbVqw@|hr z((EO(?>L!g%I0Y!)CFT{4k?tVH2aR=pLU5!b`Am0yg2|i-ZlP-U3^!r~EEG4> zr@=;7F~GUxic`4l9uQ9A@;hC;`ERHZ4UCwZbF!!#q8~?jzyFq5^c_o zvm($_{C){Z435@2mtbVHe7OX}qSb{&{SEe;;(XP7yY!`+w2OkEz9Nh?qasG+RwST* zMOpsv3orCsU{G+ikzgogYSNwyH0yxX?mQCPRxe115m{n@gm_W@lfY_9$WH3(-1O!5 zHof&Hfk}+pr?F73(MR-YCQg+t#Q_LQRo0BjfS|+4gRm~`h!NA)EMpo+BRdqG;F8rz zS$jB&!NmA)TlJC_NpNKyN)HBMjj-zTH7vP}o_BAf=My&i`ufnx(%QIymt$HEcVn=J(PW(xst#u)a!6VW0AxkPL+SXa{%f0E%^DdQnJh zb?9j<7{iZWJis{mnUT?5hO8?15O+m^;J2Kh+OGoaV-cBcj1hvywtsB<{3`Lh{~nLb zwvAvy|HSm;wHo3@C?S-iwcM8UawGEE~P1uI#XrY=? z$YSyLnb3og?e{dT87UX8jZ73P^tpyGVlgFlP#)T`!E2V|EzXP|#apFIc>=A8B&A24 z`UAk?uPA?q@sA~r`n;n{h7xF3h!s%8CckDYPAb^r6dGdB=hy>>7R}_$)_wyYVnHX1 z7gZ_zkr3dn*${7ZZc@AvjfY7JYILQD!dXz%^}gQEn|f@wJMgX!*8huZB*{9+c@H+Z z`WHWLk`Y(0fpbKpevKv1*%qxx%MI@!&7!rr>V#Y8l;nhD))wen!6qEsre?B!(8#9G z)9YS(O+>C6cyEcw^*=>aK-vkTe$>KD32f++hYwA+3!IIGrbBzmVB6Rlwf;ZMy$zIQ zRdw&XKhCK-bXGh{f{rGOkATI-}-Lr!1RGy9Em&(V)h=Uud9|! zRQC_eSAi^bkO-_^i7cYW;<=FI>>z*yj%0`S#)762$@#P90b=~*#Y8_n2S*O)WMv(O zZs9H`X$Db8zo*4{#(uRdMRp396}cMWt41zKLs+~I^jbPDR*Td#X&26uv5ZOvMV#6I z8*dc+h7iD53Mgyja}r%()WIkETt)htEQ#;^6B^{Kz>|0aZg8MbgqetvnOKdS#j}HJ z4ga!9B=nBLb0)DdK@Z1MzI4|lb}nV^g9W92ig&L;mvoqkF#pFY!rnQ5(sByYNs!+q zZqYm0R3~p((n)M%b<)I;Yna22gVd4qBAs;-bCzg4>!e6v-LsIhjP4nsKr*OM9zeRN z)Kx-^&P5bbJTYLLe^I6@bqAT9^~**N)=*72i|G)9BQ_2yDh+48fgYcE=>lBPO`Ag` zEr;JiUEYF#B>s~^J~JGYv`8O^LzUbZQ~>S4!F?+5^vA0LJmZi&&gO$6QIVjf5Npv_^Y{GZjPrh^;LIwZ&wOJ_^0mv*c~Z^*5TDPCe_KRqMtk)mxfO&1uqb zkj9F);u8cVy_6ns0aK}Kd_GEc`6rpid7b=u_-C zDtR514CUs^F5!MCH&=EM_d~h4vh%nf%FUI{bvlNhP!=DX?)*l&(%@aS$ohtwd_9)x zaFeg&ez?g?xF2p38+D|~^Nh2OZVB8sumnDx<5>cMGDLm7rOI_B=5o)2RCv6qe$4uX z$uEKPK=}o*RH?v04NuC4c`*;jfrMlDu4x1(!?TF2Q^#9vbjDX4h_^5B{;g4210gu-_#%(l^6jz zzYSlBK*P-v8asMpQSsowvMja@4EZyX7ls6f4%X#n4V&~L-1#SP--oBsx7hei3%r#- zOi~g}eBLMwm+pD|ExpvBgeFvjHZ~2j*g@wprIMlrTc2~~p*RQ;0pr>qFck0r+{6bK zZ?P>yrD|r2Xg~V$bf<{m6ho93Msa(TKXdmVwt#1qKQImj|0W)_so z$tydD)$<@7ynDKwMiuIhG9%9U)7#9}c^##3<`ItINklnK>~*AdI7`k(27(#3M{HuG za2Yy@V4jLuUeB)QbI-_ro&w%!Y(dg=2AWYqEm(z`(NY)ALabf`s2k;sEeB19TG7^i`!*boWWlL%Idv!=+Qcop zK9b0a$8+RD;AayZ=BMm0&6q+CnKfC{8z23}e=RiM{8H;Tvtb;1@|A&(Vi$*T$pP@$1u&Dks z6xCmD#ff3ip4VTR-bz_d@Lnv<`J}W%N{6MIhVpwULjxX>rP~ISe1L6aOY?h`Bqkuy z$ntbpU3Iu?TOG(9q8ww(_hPJ3nKf2sjh9)T{A#_*thX}jz05{E*=SET`jchpu$Csn z66EB6S-K}fkRysO76x8yxO}nUl5`&!k;~Iz&8p>DYkAgN-lQj+?8zp7!fyDL(qS=k zS|OPhZP4_DH9cWXuYp&VrNaV7s$G^23m7@*aHVuuvn!>;S|J^mpdZODwL;1)(uE1g zp)6`@mDS3n$9vMgCJDnrfEq;+Cca)>O? zKDI*sE_G@oz0?mcWfol+PRz6{!4;6R1$}AGH9^kC>ZLjAls(}ENePf}%v(QS3 zxF|D{bn289vTlLSAJvXU%8n+}qIw`7O>qSY^>8@B6);lmvMgJ`$Y!c#slP}7@#9KX zMQbBz#FnSyS|RzBz8cv+$!@-739e{$`w9uJXqBC7Q{^kQAMU4=>*%!dm2CfdCELH2r-+K_u+CNm=k<3e8w?*%{4|O$ z&y^F?VV$GmXZO$YY&gmpr8G~=v*E;aSm&$w9OnsJ4^c;BTU+~g*K%FuyICtNt~D&K^@Jrc9oFgKWo9om z>zC>$RsEz@PliYB`a9e6L{a-%U{$`G<@t06y zrLyIDz+yVAvxOZ1Qe`Wr!#dwPu6_fV@)<4fW=w~54!8g^ONS-MmUnZPbrW-8twzi# z*%K!yC)S3cj&BeaHy9Q-I2L0%EM>5wdP|43a>q}vJH7!}SMGRBhqd*X9skL?+yVcg$`&eZgWwyqGIP=9CN*rMnZ6)bZt5jOnn}9<$?Qu*$Wy zohZ*p@#Q;PV>&Eluv$GG)>iExMZ_nqGGTGKh{tqT+Qd#S73j+^?6Z6e=!=3A2vW0ekTdAhUXPKV{`&af-lXo6)a&FB7LP&S?;{=7vA4$$ zrNhD`9+RCnE-QHT-S;sa*7{?1oUD*g9J*LufK}6Bi6pBtHft6zw(Z9Oi>s!?Qqs89 zvm<$0sMV7{#B^B4&ZWXme!6M<&n>AKX6$h!6^rSxM5NU_PEI9CX~aP@ve zktonrriSIL7}H^`IVO3b2>o6ii7_44vD5f@RwzRvX8f2YV&j@!tj>xt9hSsq^^SY$ zkkwf+ro%dR>JTVG$5&^?m<~%MS)II)1oEzq#h4E3*m?_+KwrZmGpXZEDi+gW9b1z@ zq+<$nOow%BO$JGhDbO(;*0D92CvIFFi!mM6@#-zZB6F-U%^r^xiv;|gU7T>q?#F5rl!@=9n)bEa(oPB?>cXFbjNg9$E)*JM|Vtz zb-X%nb#xzhIxM%u@o_!V?~!U z^t8^qm}>2?OY{yutr$5qttf4a0kkrTMf*UbIBe?Ulc=0Z3hDPFS~9Ze`n)UZ9{0ycl^$_ArOXoo~l&(5E5?PJN^BK zKitBS_Q4qbkXgV35fBP#P}~D++5|!nE5O3PlD%kgo_oR}ia%g?>QIaV$=-%z6nM3n zMZE0t7?*ImqOP=lJbo#`d3Ah(ox(Y$b?&jjIyakg;yO2PY@M5`(6tt`&62hy)KNNE9@{YEl)5VE0H&6^CH=&?t*x2;65Ld;mTPSRe@DtvX)M&bPg* z4qQw;7=UfEPk-Xm@9u5`LCyJp`{>_)^6S6xTkkBk5i`@Azxt1F{MbAG=^J1BzZB5` zY>Is4G!Df@5TvJHMZ!X>iUYHs%r0Kefy8Dy2Yy@}2>LEotOFr+;y@u_yQ&?19v&tb zX*mZHtM!;(z=1?Z)Evm?IV_c5CqCjuYZ?^fiw1-Pkes>SYM z1$9snDcsxnfAl`G0z@N35|;S*Poyub;!+CUTU^SI)^RBXHI_V$v|7)}3Yp?k)+;+R znu)lS{_b#nj7upLm%<;#rS$!&$E93M>AnsLnfADp^%BSRbzI7N?3CfSlwv3@r6_+? zaVbTNOJVxt)X)Jeli1Pd_j3cS^fBorsi;An7DM zElEKE<}T{9GS2UL{THxAgp-5ov->6IeJONhR=0C~Vh*(m*DTBO1($JzP3W)?%Q6+~ zbW@!EK>AgEi%*u1P9etxM?d|dyb|1Q?r+k0R}-ujlc1!>H8qe3U z*uxhT$tlt$!hkBdYO>A+d$UB(+ty`TcTiy+fuX_;inLgy_rl{=n7E8z#A!i?b+!c_ z2R=eCQ3prPP=11=1T6RLW!Mmeh^+C-d8^*gFMJd#H_6FaYTD|f>1nNglbu7AQdmvX zb-W`gOs8Z7>RnrVa|nK52~;RstB)KK@7$QR&zR&juK}I-s@1A}&Vh7%z^9k=t-Xe> zFBWQBEG-&(CVo*19cU6Y*V6Ybp5$y=+oM&Q_MYA0ozML0Bb?z(z4X;uXZ@iou&fcy zM{ruUtpcEnUp59`0;RltE4%^URh?~g0Xae=+%1LYOs!ZOxHP+Rc{|`6pY%!)Kqnxu zJ_37N5gFEzajv_fg<~5mSgiyk51=0(#>dce$b@g+s_6ndj&G}Ek}9Fo%CLjOqreWE z9tC#VVL`!QhaI{KKXD>(&3e}WWh=lg>ehH4f*nk0mgOYl%%E6_mMmb7_KJ81b|9>4 z8=@~1F-)-iamu)6=pFr{$Hp8?xK4D?kt1bgF?{8;4F^GbI|ZU$PVF_ueD7cV-FL=J zhTsqwk>0Vo27ksElXQ)+OMA=`OZ9k+$1Q`OYScgJfcObLpx14qGIiMXa9&IG0_=##BdDyBS1%wes5u(2 zfCIXZ1}uVuwy1zzUjzFiL%^~`or^7302Y{52G$kI3c#W~mjX+0Le&-LUM5mbr6rgJ z@9@WzoAn($%z}j01C-tZQYUTw=N)rLujQAl*r%{$ObUA z^xLR_SRJiNS0V`9pavL8q;)WB*rj2;{TlM_;2YS%`a1->S5v{h&OtEPQGP5Jd;eE} z9eX&Ph*#juAI7Id5x!@|dZc{BrU=eWF9xDP%|A&C( zq%M&QRrmZMU>Se0Dpmy6<#PpKsn=EAQeXjR7+6!DgU-9ElN-i$@@PjvO{G14Ovc|D z;#QsqQ=G{E>j8NK*3m4&xelGZxqJcUz7%lDLiq{1!`FWME!SeZfGjLb8xQE_gdg98 zYHW%oJvv%4YccfFSJxZ!0J>g@QPUR1)ySU%B!f;%LvXN`OJ|( zZM4PP*kIKf>_ux8&ua??Wo8I{rFE{bf95OqBJUU~H;50^p_kHBc@Cy{S-iw0vZc=EUf!>jD zJY;YG-~(AB?5iIlC4QM1`p^Nh&I@Pcp4f40E1{# z<~Nx2iaA_x@Cmd5ha4Q|?~t5{Ynm|66YQ%siXIz*9b(g{Y6s97c9bq|(h=B)ui z*9YA}R)qq6F(VVusw24h1P2CMOvn!8lvZN|?+Q+fK@F}8qKYVA2(v!(uLu7gi?-Gt zd_+X#;05@4p$VkDa1Ane3y?@al>4Yb25%$D1TQ1z^Bi6vKWRuHA)x6yXPdo>f~jDF zXIvnc!UQ^9AngT5BUE4T!Ub|gU=df>9`@GN-QZhi>PppV7nq}Y(-5!_zS166#}Kg4 zW@TV&Rksw_T6?SrEcLAd><}k_*|B=sJHvHT6JJ*+Q5a=QL^?~BNtvN02M+;Ju&cue zt&A4?9FCW&oV3BqG=+Ha>;LfKza*!JQ@%q*_NFsa8Xffr`&%V)`=cBu2C$EQ1B5HV?wqv} z>`tu;_HpTeh%g2>X)|lKRuX8{0gRgdtpqzl2R>>Ppgbe&`q|Dwa$!Zpbtw@Bk& zpfNl}7n?_KRR`x4 zb%22loZ!S2<*4mMVt45$ZZtb|c>|70Zl^CRPxJ;s7g5-9a&ai0p@arGsQwrE5&}#M z87EL!Co~6G14rGoAXzIBp-PoJ!JDQdtVC|49HL2#X@|`@s^>B)fUXY6j)7_>UVf#5>F)75F2xKir$Q%3KP zjn)tI$ECPU+Mxu7$%ibGZgk8c*k@!Hbnpq|Fz@5I&fIamn947xfndzi$u-1>398RQKRw?@WQ-UZq z`Ge@0loV!akS)2zL(`rA;t54bUXt6gMVD2vjI|Oak+aXobj8khPXaM^X%8Gw6$H~# zrLszq;Q*BIkya-?fu@#<$TDE-O*CCRW107C^Zj4M?cb!;_1)IgybhS}VR1u88)e$B zPX3bcR`xe5?}XCIXzMa*I38lXQVTEaTvqc>*7sYu&j3efM(Jt`SFP--kkWB2+_AlV zGC3)DmjLS|)hm|BLTvtlrOkg2mQgcanOCa@whXEyn*&+HK=mug*sHZBl0xXG=x0hU zz*-YaxFTDsr{pEH>@`W`NAZ%<5_YbO7^!JsTtXV2;&UwESucc7vV<7q!ZHN0gnN`I zvmT@r?xCrb2#w2GBI5xXg6@+jOey;4uu`t1{8(BotufmQ_dSoYJ|hwPYo%CZ1#bur zt&p0+I-6AIsg|Fk5baRl*-;xoXggebg%l>ISK14<6e zA4#tvIUXCkH4>$lvFzJ{xoFYTqF8d)%y=0Y4!;4IVFR^4e|LE9VXp5G+}|bdg{4HH zcF-wS@nkBov);?jxd;r<@(?hUdm~fw2q%@&l5hpB-Vo9&Sa0r_uCTQ+7G{+Q=!ru# zrBoT8NI5{jR(3&BQ|ow^H4*pTZdME7uY6$-XEYsn6K5Ed`)`N;ITMS#yZrY{yt6cu z>=75Ju8?5D20AM1NVn;YrJA6=;;&ixh3ZmYas!~Yibw5H(&=Ybh3hm)rdL6&2qJ1u zl~dj{pO#mp^0fRGb5s1RYY%#W0Mf3Bd6fYv4PW?EklQHUu7koPCP8VYx{&f&djSQ= zuki%eWT21)m{d=J+HjM|k`-T`>HG{$SiQXrhJtfOQd2B`Zb@ni_RlMe2pu|lT8jTX zQsvgFN>dU^xbd%4C4HaIwxLc)t|IBRpUqzL7X7gPNTLz00E#Qp^Qw&01HUH9t3!Uv zQpjoMn2`TC&4Hc!lZEgf_XOOaWW!TX#7lS0Dh-PC07K7Cse;#%8bdHiW%H-ihi4jd zE|ab;kuB)U2h!i4N3v8Z30I55bOH~ZL_dTZL?6ol6$#XNS&|{HXpr!M>pv}O0bF?ErU1fZt7_zR{#VrNTa|sVVMeY$~N+n*np{6Uu*Cb5Bh8YtsC(5>dS|()WIBg0Ne!FDwNK2DybiZmc4zNV7dS9ULtr%HQ zVF^_Ye5z~Qt%IGzO2EWiq9HLqC^4T1pVAK>hg)>!9*d}!1xA8LG!iIK>z=`&-4Iv9 z*Y*MVP%MvIrcas+d`nfZw_vI=*})CWmpEPxj`lze)Ib6+z%xJ~VlhDS2+j(3S1pDI zbftmXVpte;8As_`54Eq-;x;hY4L5xT%)f{cgVPlEa}5vLFxhZ={c@dUsmTC_;w%1^ zw1-!ymrwpRUp~mVTIRDbSQAZeSz$EZ#DOVAa}-~ewFw`?kBn50qlGM1Mp|iijG*(e z28=xm)ZsLWeTDJ!%@J$p0%;N{k*7IKv2lemd@=ZosY$oDN4IAtxW1GljXjeRy_|g5 z#TQNCFvx2bK&q6Jvo85D!$$?UT)`W6hbJ`(J<0>`HGNSbI6rsJe|uIVz_po>Cbb(D z$&v`4gvBEME;e)lP=wI%cCSvh)ZLmZ0Gm76VQCnzPT4k)wXI`rQcE{{<+4 zRuG9?JY*8%g#;Lbr_=fSRyN^=&7oE`6#y@rtF)Z3thBc5q~5qVy`l7jqyO~Q^i#v~ zM2B1dk_P|K_*GifBD9pHjihI!g*21qa#UM-#V+M|M!#R~vx)HwC&v&5ju}CKdShxt z8TB^uDWVkeb7$$nRF)dwY07DEKUy*VGz8_Cz9KSWVKn?6S>WGU%o%%R|uH;XdrEuoiCAmE=7< zpexy*;gS07-PPN&L4O@d5&uS>CQKs4F;?`))hUf;dV}f#*H^p>Oz`}QJ|iOpFztmZ zfh=ca4=bt%03TFz>)X-859k6NbEkgqengu34lbpt@8*|>4{C07(60~b`Yz=aUm6WxJYO25m3!=B;Rv}18aIZ_J9|QZ``A}Lv_vCH_(kok{sbjM!XwL zc|<@@j>jWdi(9(MUyzW6eb%sIbwMM{B}%(2t1QY*5qnv(MwNC1Nf#%d`@L`F~?t%}2w z0f%!r;Ban6Ib2jVONh{d+rv|8tKx9OMOXc1;Ih%{F};=!KvD7Cp_Zo06A2hfi?2<0 zv%aW>NISa6JZii+>>fp~>a6T_Y3i&1gClom+8=Efeu z_wx9nW=^1E;*}Ew5FS=?Q1_& zz7|kn1EN0^&B6GKL547vxqi?o9Cx9?n~d~;W8>xm%m0sj8Mq%u_1NJM{XCq>X+u=O zcW%=q`e=c!NG-(^Gbk1A7R>e`lBJ2Pm;+RU4#LRQ=A^!xw6P=R5Y&R?1B34ba1%T* z{5ldJiAV$kn@GyX&&FPhZqBHC)w^KUYpZ_9D7GLPoZmfgiCn7PQ;XS3{c0Ys7VW?4j%LEM zFdUN|ffk<7^<$_mxBR>66RU`l@3iF3)IzFhFijeI$_`j$U}5ePE9%ITC znW*%Vrm}Jj@U!@b4_VisW%Q7C{J%^Bal4X4Vv*siz$!fP1o#k=us(@t5qA- zuy%^4W@xpcw(R5(a7`tB-OeO7?N$!^=idCz`+n;m|M-(1z3SDVxPf>A&&iy9_75LB z@JFAy_K|OYC3&@-D5JV#ZG0|uq;ebQ5542IPrU7m|8Q{I&rGKNBFXo($n@1^yOH%L&(Ww?a;F7GcS-^Kax5YF2wDSt4Vfmh>kn?7)-3ZM%aSg`8B1o)Z&ti5GvUeoYdonAI5gDU4m- zGZ;4Zx?r+_>LVIiBO3Zj2Of+u4{)KR9;>qGHsRBi{_$yK6ADgEq*>l*j*Yh_7%?V` zZg)Zp)k-7|-2ArmTTFJ*Zn_a|H5In}`V0=*zoTbNHC!f{*5O>$W*i&ZIE{rXO?gYZ zil#{lRoL|>(9?2Cpc5;F-;sl|IaXT!`?4rBG-`TmbF?2u+tjzkpqPO-&=ki5MLAOl zdV>RXsjI4QmL|8S9al%GD?L!)-}Y}|_M?7l8p^SeSJ(g*%Ff=0X}}STR1j(5RW+PK zyv+5IKX94DRjiS(qe8Y2=%i2=oD>4cNhac%8tp}cOkfB@{RwJh@Z~3AM9RxTbRs>i z(`ghe7P|p;h5!M`Hh!RBD0C@(}n?S#j8^ndg35cuQW4(?m3H*nE zz)rLx-18I-{HrakA!Tf4lR$Hl82@olW%Dmk zMYUQNkx*kMd`sMe(bMSj0(Y(J(**S7jk)C-#y+2#XrWkI(kwu#;h1V9$aZ;TtShg$ zp3-eCxbv%X1(rU7)vFKS>*^BL8WhAJ0>G*cNFQHmvWpD~wBjw(Ci((z)BVQAexu?yPY|qu=d2~w;W{s{r)S9rCTDSX*@{B~n+FO|%i}Bcs zI%jxXu_c>CXV%ieswLMLos;5nTce*sN7008Qo&M9-wzZviBn^)OF`54NL!@l6@^7ACly71WbnNzV-A?KDjrGhN z&NS?~UpSL(CI+Q~!B;i&8@!1)B!%QBZq$V^8 z;AxbV>26w!W%|L|tQ(HF1=0Y*Kz-#FpjTKF!UPo{?-2{ai7P*IdYFH}4}sY>v_Rsu zV#d&k;(It6q_e~;&N^ko9pxHuI@hQ2AzNqYw5G*i7I3LwD9-Q`7xyxaGdneXm6qwC zF9x1}V%P@Jpq*jqWTu|2=i}6kF3k!g(&4jBo1*)|2$B_GQa=Dr1?>Xja^B!m$tn z6ldW9(Op;;dO5`2(9QaEV0jL7uo^4JpL!xTvQ;1OB{t&Y7Q2t>qAb0x4NMPwmD+6m z2TE)D1H~omRIy2##5urXe|9eQ`M|KIC&B~r>`aC~*H2Tdsf*9~ow*10=Aq{jqK4d-pc;3~-^!@~-^7p_NF~J7L`ouo4Q;6XlxI2CzJsd@Z4@}^a z&Pia7`e8YQi>lo7AZG30lEnT?4iqOPoo&`i;&WX@Iehx>!PWzb8TtT|;$o_)AW}IM zI`2)htoD(arUnuHZ2rn3?dKfF*m%=?f@Q#pW8RuiIjA-fU#SO}&r%sW0F08FV;8T5 zNyLCNeGab!E}E+sA26*N&&8;4E??tfNIv>be1{)v>$@(~Kd}cgY$y?;O;K^NQGA&fAI9g?VZ4$;#bp_?+3q2zn7}~e!lOBsK_1k?9A08n)9NJM`8>` z%=mMlU{O!=Yo5w!t>f&R*ftXU=TY4YuCwAdhbL2DJe1)uZWF0HL$yh;JRK!tF33(o zDa0bdjx1wTH#SsA1J1t(1kJvHTzUrOYrM%5i-5#KaQwlQ)(H#V?iZ-CDH(8ayv?5GCK)z!R$vJwLyU?ffEOpvpQ4HYVdcOd1MFX-&AbkjOuxKR!~rc>dAK()k0aj~-Q)5!XZIwj6KOJhL$zQ(_xsfHS2IYm2h>aL9$lz=am9 zqmA5_{kLheCl#B<)Z!2kM5uL+th`#9&NmT%P( z$hN$skVyu4Ypfluf>(-7xoqOc-~=fgFK#OMKwi_%p1LXGnQ&c?Hif@kO%bl4rf~7g z%ZKMiEw*sy42 zE_AwJ$tQw9JcdrxgzJ7{NvtM8g)XgYI!s4LYWf|p&U)~wRhch=&$bNed8~$r0lpkG zt4YLGY0+)Y2zZ6C#mc1kbuKgPJ*w^!azZQ98|!rSyv@!Po}IyyI}mK z;DwT!+NRR~%G^b@ozuY`VDUsp^JNMH!AKWr(*;h*11GmWi)hi&vZXwR5tiHFiw^YEbb}vsa6azsGl+jhv*+PE>l@>@; zuWC!wYl2`APC4Q6f za2HL{oetYHRGgtf#6fNEWL*}uU2-?RivS`%S|ImBpG}@x5nvf|4+uj7Xc;Pk2dke1 zR(P>kao9P@`T}#xK8`>U7{}KFhz0v-y*RuIy=pxIMjhUjQP#9=9gw$T&59|-s69Ey z1cf~`o@^1VVdjBXD`ws+7nhh2em9+)Fyjxm(Dj&sj9$l&obQQUx(Z@2E}WV`q&>4l zf+_ATFK%OS*E4ErblYeaYQ55WZ|t1ywT%xw3&BH(O)iWcw$$L0_`Zfetvpb_WWX2; ze_(jL;{Nb-eYGekjg1CZH`I{Zv;jb&G3P1ta+|ob%-Oj+jz=iU=v9({r^W9UnsbCZ z3CX5un~Dg5@-KbR^pm|3-{I%s19K%xG0@YbxTAnT;z`6vRaE6n-%33ogZ3rkkYodM zd{BEY8TqD6{1j7-gEkpYIz`KnBde_JD=y)z{`T3!(}9nOf7%I<=?KC;+^H!c3a7TXFnOOJ5xpetxxXFM_| z-G&LEY4PUW#UGk;NXDwIpJ+uEu=GjM$DV^pP#KzKafN}$58-bLZ$cLXtHg#P-Al2>W=Nn%5AOR^QXIyP4R=*nm%6cS7y`BUeGNVOk(x7cW3dTcfc$gw)`-b=H&e2#8p zr=@Qr1j4v{e}f(P98Z7{nB`Fw`ERCXcakksk9_>)B*|50t>Hul1n-szBqk0wJr@;_gIia7nhoVJf{s(hFDtS{FSMMV5<=`}s{R`m~E|KZj`c$f{X zvkaMb=zJsG|77D*!mJtI7*=-m#}p>dI98JLvBmzj@Z85fMOMgG@jFE6l#K<>XXlnB zDY1TDylaN#-?m)aq`SfFWeKIRC1kM6OD-);%z*z|YdJIU|=O$nJ zUuzPa{vtLUwTxrE)@~7@4MJv=hpfUfG*gA9xlX{b&Vg zet=ra$v1+J|7V6XwE4WLP~s=+5|i`UK6`tB^c2%LJxbDfP?y?zZcr*#z+emjww9}% z>nx(&_)x-zzLzDiaL9It>$pc3TU6HkS?~d3ohvT)!KyAKXnOvMWU_L@l2o3BD8y?7U9SB4|bB)l`^<;C!ShBwf?uvEP;*LEiXqINN@vyyU+xj9v4IWlnCwpDfJuC|l_nhW)@pFUP>QMO9 zaF3NLO4#FWGy-E!*H?5YTa?jda#&0_6M=#SMOnmcA~*{!k5 z5i<2!HibP}*OL>h4^$YMjk0y#WtbLE*6$j;>o*xAXOQC~N3Qv|+rIdvnb#;TzOV=H zyzLvm|CQ7pOxuGeula*7o?!P=y8rk?&+Pl%%NL9{oOJ%konLO)4Tnd~e|+C7>>5#>f6uRv z*>#ia-~7|Wt_fY4|GRO!MCRwe;!m*+xtVy)YzK2(C*AiO=U*n7lLDIgX|sNqAR-RD zE8e3799pg!JC9(_I2etYyp=S*NRKn-m{6^Bvohn) zv-a2$v^#8-Wchl%vGSAE7lUu38rCuzPI23?qClw7ly2cu0nmw3WIfTq(`hS0|f#gI+#txy<|Dvt?ndJ zXg5{gg*$Ym>3+DUzS>{CW#ExdmLZuTUPH3%na-FvecSCC|LYU-$ z9)VL;2Zu7IW6^3xE1Xz`sWz22`DPFfB3dp?=rpXck*= z$NL|WgQyBMxSNlBo3va)LPu&gG%YGS1D_<}9?CFFcxtBeu8b)~wRJ%q9{ek_sVq;h z2~)ML$!=aLA5Cmr80~|8-rP6d&a{oOk8MtHF}w(O?#&7LuN0e!@E%G zLNWwzc_o^Hw3$O>HnA12AodCwqT60U1f;4U)e=eDx5JwaL(laI?JupFo${DdjItMM z1wEFdCzzgmfs2S{d{4Vg8t?$X9XzU>yM{^&K%L5xRMa#U)+CE7R1zX_#P;RNZ3&sF zy7*$d^LR7s_+l+UBU+mALKKUOreE|?6sKRBisdrpOTSb4X702O!Us$Z-Wh20-piKHwm|R@*2O!PJyIszs>)pKED>Q^jf0{hzQ0xY?53lvk4__p{jtkb)R# zW>yZE)_R24Z6tUcb|Q$C8%S-gF1Axv^}bz0lfy=!i|en<=QU;BG}GN44lzZ zJG+_9$2q)3u>l*C`{L6!+`&usN$x8GS0>_>l28@9FwYZ7^Mxb!T1>`?XTJNCBncnC z>H>5x<)a7Mios0Mm&lZ6kAq_3DdwAT$g_#1X4Q=RYK|TE?`6Dv$6)DzO*hyk(04qW z6G(lf0^ovSUOq{Fw5P?IX~t&G2O9A< zz!zFI$ypWQYhNGdGb(^|7Kk|zxUIbP2>Adst3~xeM zCkxUzI+c;Cc~UB~R0z=y6YLzVRb_n7<}`%=2wNG$6UiG;(N83o5<;i@^zyLpFzIpP zG_7#}PfDhm+OJhbKIhbsrOH&*k}trzLLjY06~nCbVq4kg42QF3%8pU#ZLKzl4QRfx z0J78h8~&7up8dS(N|g8jK&-_jV9~s!>F9v7+|6huy&v_`Y2;=vU_qokAmgap{oA&m>x zy8KkDz1DlFOG?tRm_wVgr0o%=2RR{7mEr;5z15=%s3+ioTKpyJX*ppA9BQ7ix16Z! zl3g&S3hPF_pr9Bu&wBdMCriMQu_{c^6;2TvENS{MHnll%`cGI1NM);}qG2y99%50A zs_B(=NT5y_@<6IR1g-W^KO4QIvQ@GfXHsZOH4Y+-9Ta-F@oEg|GTiWH*j5P_pa_=F z?w4t()FnK{9PUPxiF)9;bk4)J&TRc>0_^me_KMnu5tyW;CG!xg4#t^2IyP!DDK)f1 zt=Tk2a$hM&;Z-#%7G6Kv{BQ%x#b-ne1)4!T&T4!r+~^ERB}){!-<#^Hgq2b`eIkHpFqn&KfFW<|1Xep4f|3 znnli98ubiy40K*8M;leFYX{j7sK)F`Z4oH5-OF#sV&t=zg9d(}(DFWcwL_h1i@ETW z=!cJ`2GqCq8QCTLfU+OBi)!le#Kgb|DMQpdp?L^fH#wX|bl~dbe2#gXNihe%fHdBn zj)rQe0{&`NXbx+A!!{6p=6Y-Ob9RrjA=$cw(D3teY{G`J1rlpChmvIS%R<07&6%3J zn4err0qP?f4^dDzRX=^V#%vdc7*M9a5Zn-D``SDRzoiR+Zk^Ho!C{8vp2R@TkahqP zzUEvbEy?1%@(Lv>j3d!!JPJP#)2o=n0~YhtLostG4T^VxVnOx`E1CSz^Qu@IN%qjtps6J zA)S!LEC9*sh!VSmE8l>*0;uX+gqDHo(QD9PKN)V2ZEYGXcb*cpD{hiQZG>%G#6WHM!;BY>VF(9iDs19K&iIr`)EV3A4vLsFm|%{6-%QY+Eh#` zoxWDasXC@~SM@zAT{)=Y{TO|Y>t8-J<8dl~QHm;PBjsVo3!Us9}Ydhwvv5ph0ss+}*CIh^b ztz09@CIYbt1BvDi{`~-VHg`}FokVDHsjrd;Bj#PKCcwl--ej4>%#V-)p>T+LPUUO2 zmlimggv3bAFRa7jYv=#)uUlo`&i^PCOV84ib&*hItC_D~f^`F{P%> z{iMuahVm@U_M>{A|KitN5#k3|gP4~`f%s7Bo2Rjl%_tB{$!x~lWMmb0v(VCzr)d*U z(T(hRQ+E|LPB)uoQ)99qc8sHvK0E{zQ3N@DKWSJ!B8*Z6q&JfyM05F0b21v{UClX|!T@&6ApNn`=UXAAlCK=o`VzPC9Oq``1Q{ibz=$3F3I@pyjyaSxwOEngE zuFi>#0_%jcq6#%sfKgXK&M!(h4%-_`=HS9kc(92K_9;pz@|N5ZoZV6>9$BIh(wu#w z=vN`PdO~l}RT=^CQKT8-a*wJ9)BQldWWYsqo-2w;r&^Apa0bdN40--!M}e9>S!TXk(-n-;f)(X!(&5WS#!7o;B-xKyK*+c2;spRi)Pcxaj%i&=3LGlh=b1oLB+|_ zUzs1lI3E~N8PW~5eyY*e)NxzjTH;R)L0h;JST^XFZ3RAiWJ~8Rxum4^*mO0(j)4ne zqz(J*Pj>u3J5VM37<9IjrIQsvC2Ul@2i;VT330BDgcwlFzvfQm&{HGGJU{L%?o2d<+IE%<~+4K4J~=)g|FaP#lc zq*mdN4E!Uw0cF$-|3fQ_Eu}Au>u2m5pO;v#-&BMKEMWnmA{i=Lxn%m|98HPjL5n_1 zJ2pd9dNEM2a}t_~x0#8uwpe_Qfds~}&6Y?ENETx=wM)*6*H!MHE1iv}c z$3KP^Njyd$4GYz@7Ab4z@Bw=IJt-Nh4Vp_d)sSEim4{%khV-!(sA|ygOo|Oe$}tiD zh8ax=xLo>FZaBp1UNvb+a|FP{H2}JMs=kZ98!-*Pt_t?^M`hA}GHZbb$t+cZqpvFBisGi=*sn6fEqzGE zRVWp>uy~x^kIX6t@{-WkzTQ`Yf?U9gh+-Q4umTsD#;CoY5Nc+-UwK>n4cV9cA)3As zl5=H%qjfbaWG}MDdQIOvqmk;Q#=EN;H98<;XDW}N-g!luf2YM`1r2d2RWE2%3PNmT z!p3Y#`I2C`>Km4rFmG|R^#Bd<40v!Y@DgDJp2*yS!=t8|mheCghEtjgAFg1+XHFmS zy@_dX4yP2>b34u81!748%sD#(tM~zXU;K>kCC}$SyxT6HUDzADpT1}<4;3beHwl)IQ zCB+3Fsd1`Wsybi{5qIdL__haG+`hG?4|6}q-lfGgRo5g3+HON+->oS_tTQpzkc*Ei zE{j710=c zgU7J4_--KFz^N$%(S~+ZfE&uWWWmzoA#!obV}pmWj|4a_ze5<%?M({c6z8s3+)Xp8 z{gqZa{=ZOnXpI)7QSCj^vS!or}kZE1k<)|6Z;E&f*Q%B6IXdc$(K>^|do08zAzCK>|6K8xze zw4}+Y>gJ_p_}&>;(|T&tN-Y3}d&N~6s9i%<=wxlS(pEJd(GYS5#qnUEyHu@#TI;U5 zkXDF`Ye@&~MbJj9-v9qVg;fKat1#A7D?p;hHIG;P;FPAx6}8}@v9uGlpk;i7 z&ny=r3a47_WvZ8iw^E&%9rO=0IX=*yaV}}YQyh{Qix3g*?8oV=e>NJy{0iUIsE`u| zZ(|8^%#ae}r^h8jZkfyMG7}h28LK3)Fe?~nV)6MPewv6e*;Paksyt-gRIMRf0z#Nr zV1#{OwD=$LsahfX(*VJ;a@wv&r4eM2lC7Jj5ckTKBh)A4|U$CI`7xa zbL(!e*2dU%q8nO&t0JHnk8EPvawLrYMFag~vM|-k(==@|F(VKr_mMSxndi+3o;Oe= z&CuULP)`$6dB@~fCtUw7$gm|m_kP;{3btw(C-D)_oBR+9Ojc*CwJ^pH0}ZN9oPaVE z;;_z?(jK`@`O)wZ-Ud;Z=YbZaK6YV0w#MCn9BXyLJFK`OlW+1X8vY%>qV1dgiss+# zS3q!!UkMdDK?KV`Job(Iug=d%&V)&tWC{=Oqll-LJj)(=KJlT)udJ~g&g6V2QI1aC zXf+GPMggKTd11{s@_mMf%&_H8#Iiu*wua%Yap9uAQ6***)O^jt7Nt`E^HovovWILLwF%TFBk<&)!3?79=lnbFx zvNSRE=b3!6r`rmfR|2)idcI8XYUPnE`nk?iN#BSjaIZqe=Bgcq5tsDlwU>jQzbI#0 z-F?+Ag(F9jYpUyiK0@RKY4FO%OY>qrgHuSWA^#9#zs?TG40jBn#RHEpy`BsZfUeR@qfo4gg2h)dpZTr_pi%c$omQ@vY@eg=b%y+ghK7 zdYb`&GiukqY}=z$KR3AiISghD@uU=nS#{ST-UIWC*ARv2ga}V%IML|XkW(!V*mwQz zr;IeYACi&>^dCAm{8y&2Qo6K_Z*41AInFy@sp6HU2oe*|Oo@?kL~z)q^H(_-xNcLK zV609t?0loZJY&r3+B`v5lb9qY@%jXtuW&&S!)Myk*H9U$OWkj}Ag_!niCZjrxlU6~ z%4ls{>Igj~+YH4DNnO!~3EWX(!>)kLTpr%OxY*cp&R)hkywUEeg{jX>WJ9B~U~zFo z(jmixQqfR`8kOeA*x6fa?2OyBvgk4pFM4x$dr*K>X0`AYWKBCSt7WWqqoh_}@oSho zm1uD>ELxe9@+Ev5)+rv?s0eD^31ssxQIWQdstOyk1^T@6o2f_cf_FI2I)WOuFp&VD z%r$g|FT`jRPf;PH(1cQSU?`01i{cZ=aHwqye5WR)>thI$fr^Fc?kBVQwS<-j!r+)` z)}KH*NMN}rYz^Z(jjZYW-Xcf_y-3+_0)h!O`=%K84FYsI2CV_&o*7cG0f^Vy?ew4$ zsY-KtCR|7^GT=TnY2&Wjs##+ryx3ERO(-594-D=@6)pQd)Az@U zkHyI=Fc!riQJYVSe=;>OTJ>kz%c|xJU|O)#ta=R9`P?y@q6@_4uyQ=qT-j1{ICWSu z-c`2d-}#}hJ*@vv{F%MOcduoCBo2bVCIf?FYFXs4X5ZLnaf>}1M7i&;Mk?tECJW39 z5F11Y-zH*3*qz|hKlOiIpXwl^(4n9X7-?Bj#e~?Htc>Ih%*32GGVo>&BPmBvj=7IUj{ERe$O*vBv`c5JEe)@N1HpvZ8icNsn1oS=i^cNa?-+IyRaFJ zD_R@9js2NEMqFrxo2@LO_k@Pt_JAuf7u6>svCgBn#AHM1^Dcu2CPKMasPe7WD-}9t zQXA81E*zI&3So+EM&nC*D(|bz3*~hkS9HQ^WpJ;WOrjW@1Gc*gp^qFesa?$wxw% zF~DaVLkDYVs%6?%VirIdEYLdxWlf!H^R1f%0i<0ccF@F!cR0c95PQR-w2nBD)&o zts!mQZ;dF>9FxQ12ca8rS7Te6N-{BPn3l*T|$IATsI}Tf-ks4 z`VO_ZB@9%ygzFHH;UHR$k}=n)_3Y#6g6-GUF{5eZuO-%<+jiCu>_iy|m1&3m!ki$h zzInW0EAgd*Kq$e|+;CAyqE6RV;P(c`jW>%+#*9kPg@47+c4}hYIUH;wb@kLjX644P z3BO>=Ls>Y*2e47=ld@8-6=?Qpb!&8qeKoY|mr-BOyRE|M)dg&7@9V4}WIi$;2iEum>;O{ajuPMaG>f z=S3d=1~juQ9KNQphu?qXSN7wx{AzCUFZ^m{cwo0oP$>*QQu`We#{zI|rHCK#t45)< zqJXg|zmMOHha@k)>DhriG-#+`Cc|H&F$>P})xt8Glta^c)gC{Oax?gSmsSUre`S@* z1zxy1ds+JZ)J{&>LG52t?TwW|r(hO{%=msPH<@(2WM~I1$YKpWZHw(Cn#!ffus05Eh;n= z?ja^L#LV}%vW3&0T!8n4($7$u>?)~Eq7nepqVKKgwq$|FiqPWco5}8zJy9U}kwjY+ zN?yM$krQVH_!ZSL7xJ29azR{F|fjzNDWov@0OJ%4F-dZawi=byBa9;+QUf-RldV`hXA{XtVv0ug*HA*KiruMB3{i`N54afbL-khHyI5v_ ziq$kODF+TQ57c~pIj&K|v_iP$zham@YQ$z$S4>POAQb4eh5r3%k1{3-o+bpKAW@HBrL<-6_{edXRxh?|= zlB>`Nb4aYfXiAOo{6O)wK`)4l?^POg&gMdxPG-m0d3P0!EH-k8Zjuc`dGsT5+oXZc@*-$iTO@57V~TV~dj_N84)=UW+*V0kxPHpVEpu zDDzlgeRwzc9Lwgixt#yGU!>enSJaKglwggzAByNiYoDC$OZxzGgMh&kMFgz1=pP?8 zcDoB}L0rK(a#rg>F*4Ne8%6VQi#@%ErxSY0p1Q=U&hJWjCOaKl z!2^rh_DvziFOY~3SOuEt-J?=8;Xzj&DlLfbO1B|xZCQOi487agSSTUk0JzkgeAmNI z>?Ogli2e2PiTHHb4~JY;`E&MwF(W=u?BUPT1a6ksIW`nKZ96jZ*8_$Kp#jhc@t8rT zAroSZLkwePfY=8RGW<*xVdiRVgJ<&a-waKDnhsjfS;Tv^X=frNtK7JOo~m*p1P-FeNyn)eT~mCTYCA-w0S{d}V#u_+ThFWy`+VGdg;cu&kKNi*uSwHCT$Bt4OKFaWieoFLu zi_jh;l-rz1!5HroRo-1MuJfM!24qKXF@ro@mGCQDxUibG57h*pXoMOelnqrP6yr?s z9sH4z1Yn<`MeKAbKOpG!Fv+-yC*|9b&1|-djGoOUuy&brs{$)9O+&r}9d&VSLhc>s$ zGbV$0=G;C+jp?q7Z78)Jx9Qo0*dqBfUdy*47K<+{d)Bh40~NYa3A*42fh>Zm@Dh-P z3G>lhlm7tRWHad+y=vpA+$74wKR(+VVlBzGVcD2T<7#Eak1!LwJIYK=O`fgNl$c7! z-ITgDdCtO2WVT@rb8fKkKIgE8=53M)l^(FjGVU@v4y3JC1}-(+4s)QmGBUB|?t>O; zCNz?0Q^bHBe;hA{%WztJn@}1F4_uBxJ8ZXW0j=}F0q44nW`-5CFdNM#i*TRvV!LO; zax4?OsA0fa0*q-Dlrz}eC`+qVP`FoSCJQ*4%&r`R{&N8%OGfXQ6yeFsY#$xM`~ChiAhc?{(V|v$uvoj(ot&C3 zX4b4-xBi3;8_o6vR8$OdOHP(9CloPjmXdv7rn^Cg%-i41JbI(vouJzf>ULJQoE4Ra zKi2I@x?QK+$8~$6ZgC^z;k&xknS7e~=i%D-aJyEwOu(_4>RYpzKB!wAI-@CM9zI&% zGWpBHpXk=AVkVJ?zpURf{N>?G^{p+?eN(sAkg}kLH{Zgo0jcQbaIF#AUnRAzeT5J@)Z`R}s@}n3ZCM;iDMA4JT)F9Q5g*6XWC4^cE(Fx@TIN{Y|V3~tap zgm$P4yNgBEhh3aLzdoDw?G+NJ1_H%$g7)>Q%KkdGU2@Utli84lC-^_({~_oGaOSK% zD1FotN8a!rS2V%-J!r2g(Tl9l;s}qx>U*xo3_!AwwJrP5N&vP80Je1m z%m6@bnH>Pwb^tX;9Rg6Z`(Xgbjs;*zC>Z}*JNxOZpwjuOO0mox8>1CCN&adL$-H5m z-GHOJhQzX6+)pN}z$xwvEXlTa^?=19#M69k9`t)LaFOqRagtoeqfEc$rhU2uZr%BH z=GXgr8b25wh?F@O{8e=*;*@Wi@pDSq1{;fcV-Zj#b?$sl^r5JAm8PhW^D3dkK@$2= zyS)iWkTIdL{FM{10N^(lfJXbb=q9N$sr#zS!US0lSSr(#iDPk5OAG|OY41=!m)?3OMR*v+nS zLY$f;0NEPcw8UT*It;WUu(xCaK~3U}hhSH#h$XPMD%e}gU>6(N|GQ=pEl{YOP1Gh~ zvVb3@Vz>GU9uU>lA$Ax@T_}^g?>8{Ik4H|*2b`1-I4K|Eq@2`v##Q1ZZL@=yz@_pY zu>_Iuz*zUF`~+8`0#!at5D#4Pqa6hu`%GJ=*>$T;1)UP>Y%4z)NL%aZI3Zrm0 z@erRSr-RG2v5p^{@&!Mew4@DXWkoYW!C>L=w@9#On^};+C3lbMoo(Qg$ULPx+i3%< z`klSg-Sy8@wW!XU>$}l+t>JeA%?Slq$KNUov2kkhN|YzJKMw-* zAcqYJ=ai77d(KQ=p$V%g+A`PbFKz}5XWv^iQKwAO=vz)mHKz-tQ9{6z^C+B#v-V*2 z5bnDm_Dm15x;gjL_Tu?_#0jmcK)$TNbX|b&8+ska_i&oYUcxxzAL(PJd%&DI$hvN=A? z`?zxOxt5a`PU5C4DaH-s3LW%++e#D8OlM_G*r_(h)+?WazwYv^{CTQ+4!f3 z>hdXHKQeTeg(vE}49G-mRFYCe@RRG3|54hO*EW-G)gl~hJt5A| z!wlUu1U7IkmqGvu->AU^!uiho{X0+rB++URs_taOAPFTj^ zmOCTb+f0Yd7rhmork;nJ1qG+4X%^Yrb}d*CY{EC4Qw71H=#=)^+6v)5aLqTM1cDlO)m7K*luCK#TKNY;?QY&Rml~ zrDX8!u;N~RO+{=b&s9AW!kJ|gLYe}|QUEb zox9<-C7rv6db+eY_R@Sy-81i_daGGd)kmhJK*n4|kLw!mTw3Etj{`EMv+AULYN`q& zK$w4EX;mLPj;bsv<9#4Hv^D9(z)9I3SKTrdPQ&MPYtv{9jWm2&w>E!88*dGTR5mbz5~x<}&} z-3Yw7Pa%l^n|36z$W{f*k6&|9zsV+1N$=s0pmmP$hy45DntS-w8@OCkSgWqlVVETn zT~BSCr4+yB@YOv}N?z=jBXOUg}ER4p@+H0trl+g|GbWt%~t285$*1|2|$E;g6lyPNqK z;j*^fVwoO>-cpoV>PlE+8^nVa_yIo&N#&jCGnkvhTYtLRt)yLMzN|yQu?FK(+^jGA z6Z2>NN*^od+OlF0=(*t1+1%@oW$=FbYr zEj8OZYF1A8d!Z*^tL-kH@bfi*2JKKm6Li>yq<0+#pyZg0k7a^il=WPLOfx1Xptn{z zFh>akon)(2gdw1kJ>;fU`t5hdh{30?`rk40%l3W!mfQA=i_fu>ravKT7@aXO^z>)g zxDl*D{1;$DC(-jC3S_opLGyN&g?ws8dYmC>q7hcX)?{bh5JXl`j8yF>)R6D;zGL*X zOxPAK%&;Xee)r4A6M~ei-2DRVMNyRr{fR zZA$BVtlMo#k~0#0rr-(9C{9kg+q7ne21{&R+*GZU^~oMAg#SENYc`sB$fGN7f{N(g zug-Md+aM{ZbA2|aYURtbT(|nXCk>b=^F9}tDtz%hE{=z{+<3>KOJ2vZwt9^m_V-E2PEtd=kNikkc@+z@XbrTw9dr7_(_z0+_1(4;Un?_o|<4@?0`U;-oT2Q&E?F8WRX8C8&{Q519Lxoc9fz2d>kHA z6Lw_4!*$azhK;T&BdPA(H5|y_#JHWak(}u)BQOV5BU`%orMv@oi$(}K0GDt z*~B_-hI}HgGyNL9D)}D#3YTt;Ez4#zW|6Grm^`e~0gA6OdX8kXVLHqAbvB!}xCN@f z+Lp~GXb+rV^NcpiOD3|&!qj)gZ_J3eBx1Kw)d(%TYdJ^BaVR=c-B4BV59=aFNpyq# zZ0scTREcglKENK<>1IL(Y+@~WozTn9?a+NmuA2z-pj!aVtS|y@!?0=rZX17Ml|d(J z88@jyS>Z!isFUZYZY9rQtmjf=C+w$7dy3{`1IAI4=R_+1avl8cYcU#$SR?$-4E)ag z-Zrw)JiYi+@zYUmKaKjv&BhpHb2xC=NAi z4)aa)wubauIt3l)k5=}x760jNlaN8%8a|$;X)B#*n`&zMw(us;IFcPyuuw0IoTdOZ z-yIHG*#F_k!jrhWc-xGJP4&Z5O5(IXgAlNQbWS*2Kat-moEEPC{i+D_D2B;!bN#?p z`@7-J`T=}MbauG6egGY_Fc}`MA3(Sa7wu#91I?(aBn-YZFPC=SDqFWv{5FYq zz_@%hpq8H7;HHq172bZEx2Uh`?c4cQAn~o>Ny6eB+k<32(uzj*xQ9WH5W1V-e|PiH zd<0c+2wE_YD>YcmfUyo1$Opmph2kdUV<7q>}l4GbkEC~&Qq8{jJ(3166N z-jg=T+i)Ml-oPK=ET3uU6D8#rOBrXsqBgsndX;D(Qj!b))N;X)Q_DpaYLL|tMSSjL zgW!o$g)t}&2B$a*NhxWttcOZZ6qb2V3za&TM?8UaP)K1{r$JNzNy87~K^-3TQ3)fQ zGc1g{YvSfK;cFmhjkLj33OF+tK6?g=07E19X*O_ckeoEkN72*5A0)Tb3xH&e!AU8c z#6$rxpuft*5JQzr$;-SE>Z7U~^h@Pw>Rw5!4PlPZGVPpN6QtHviF6gkMUbed_}0kx z{>)Q_mA*2Le52Zgcx)}hvql>{m}+M+RhMOGxV@wyK+{NmFvtxac8}d?3*u4I8ZxZZ zuGzWrHsF@Sam7!DUBFL{C4gvIO>~qfddSd`GBXZ6gBvwerMOt<%V!M_?i4gEM>!niJDoYpm7!D7Qsk_k|YkK?p z;BxA)s>F$r%P*}*oWaz@_TnidtByF-ip5f7zGFtRN;ilH8|-m6xfNQ6La4-j-#4fp z6{I1&0`+Hy10^8$fEWC{kctzG3 zh~-elm}&mr_A4XcVeE=$$JBgC4)F^%Lh_E5XgV1R`Fjy8Y94eiVnNAt6t%EZ-5PIyAO&BbK~# zG7v~39kvqz1th@a0ljuVdP{Pz?riI;cD9({jR%JNwjRb%Il0g#JuYS`(ze~B#v~GO zHdzx|bSqSixh-CMViIQX2fU>Wof|=5&5lreyD_Rqw=$yWh`?64YXPxpAWvXkI1KKG z5Qa-9YOVS}<0EOW8h5a6tSg5a?+TTyp7NiC1X`*p_x(`x63uaF#uPFMC7rrap(6B< zlgxPFJu1nOpJ(u&*S_B<`L2EW9J#}}-XhVB$LU7;O%?Wx9^~tIHqlr!g?Q9WUbvS$ zyk_=E7Lg`AM@FOY0SlGgNA~C{@}1d+nko)mB?T%;?of9$ncpnffeIQ@k9uF(u8L$? zbD;s`e&w&$P1RcMdboxO#6BD&t5tx#?H(v|A>qR;!^}9BAwr5A$5t|~Mm-#!;XjXQ%Z+8WtVZEu`hMn=_M~8*bMbLceM~-{n0KP{%`|U( z*Eoh8@VxYxzOu=;Z#(v%IKOZid1B|OX&xz0?k{C38dDyiNEYCS?C=A!y+0Nm&l z8W*(Z`=#EnON!ozFUz{et7<@@f%jXB8ake(?p)7B@28c$dycXy>5P$w#g4!_#SWM- zX_97f5b7{Z$%E>}g#=8ie4oSUCB_t8__{2ErjmCiPyP~EpFc8Jb@GKpU6ApZZ#&dD zphaUR?lXXQ-1*0>Dt!h}{G{?b3*0A<9{U8YrIH*;ujG?QpK)B-iE$dCh*gk0OXV-^ zlSj@AA~^4@d`8m$M+#0(_t@=#&dk`{5(_Ns(2yLufCca58PhLhAakR;oNZIj>4Kou zWtxNJYz#rs7WW@Lbmsuzt0>^qg@fJxNx;F0HYRwg4+7CNuJ*X@Pih7gS9^bfQ#z@`8|hCPgA19is=lQ0Fua7?TA&_3|6iJ489zi8LNZqgFE7>q|zIq$h+VS^534 zXNn(oS_VRy6)YwT$LZPA!2xMgh3uVC$t`qPMhodgWf%wXiQ4kw9@qy%;aEDFL3>9Y z2JA)S%KtkUOm=Oh*oA}1!L59*+>F5#;(#qV4(tp-LO;+t=R0NXZvv@jYX^C)yX#4$%Fgs0VC?% zn;hf5@=4oiZZh`)NvC1b%Cser`s9wgd2Zf-0F!Jj>e+m2%;OF}Of$W*N27 z^DQ~Uj(^CygXzGCmMG7C1~;gf;C2QX4+1whHg`p^M|8^(EZXIc!}A`Bu#SlWS52{2 z03LRFTs;oG=dSs0p_8gvUDcXtw2{?p$Gg!CeNg8f$vOu`Rp(R%b8OeNDn<3HGIhzs z4xYQN=c?6+4faq3$GQV1B1n!|3!U5%&8ijnJNF2W^2Q!AWeL<`q=Xz4$-NJPuM7i> z;WUItA+zrfGjnax@Rsd$CPFebSS>X#I+`4NhKL7}g5v&kV5n>pc+HcwIQGoDCD%u? zR=}>@Z6Cd&kxR7goe&*GN)=H$FlO5VqRcN)#wpLsMKe@@KCZnaSE};qh2`5Lw++ps zmsv}rEr~i&>(LPq;|+FuJPA==tswfBBhz z|LiY*>RQD*2R)B{{8zvF^WXm7$@9^A%QY4F-WN{%?w@?{oB#G*_Gziavmf}xmp=CW zKm6M7^D)w(tSM!pYkszch$LxMABjE(W}q%`K4MbwCrZS2r8AY^TL|mZ&2OeR&o3x{ zGmHqr(;+Tc@w^$8Nd(uh3Lw-%Hxy*33%tOsRMQl}3^?`W%Mezhr0vROwIVvY88V=F ztu7{lkbuicfz}-1XhA}Xvla9ZmXeSImhju?{0oE~)`51)p2R$Et4Kz3?)WNz*@5LZ z(&ByUx8Ox4G0Qq!4H=LDo^c613eJvYEacALPFcuO!NtH9GBs+SDG4k8I=@`*Zaf0x zF$mzb)@GS*cBEKF|siEJtQGGWH@% zRr(kWfybDq(u}Ue1<>TG$jX=rYep4asR^smXqVNR8pJx2ND>kt6Q$rE46D*x03j5q z@&#u#x5MQGAp&kB9q@#&{0MKH3ZixA-nDw1c5u69K1K`>);h4GBj&b~LQ~ za6Yy>8$YQz-m?)D+8hsChz}!6C9{CNbb$N3Jn(9FQ1ahg=Cmuy&Hwf%af0VGYnt`|xIE{A{E%M2xb?>`o#y$X^?b6sk%3JC@r zHJ3c4S6gP(ko>@^cZ2$tYWO()5Py($Jhq4@;)0U<@AE{+%(D#$cOq&7VYy-xlo}cY1=Sy*Y*$j7*P_9<2`*AGZosO(V!prqNY)UMl{4Xu7!G%JO)Hu z*XN?B;3N-+_ST+bzGfd6dzbEYhQcn@S5Q&d=PgF-v5!~>snu!4lx6!u0m_!9@is_b z28lV3CNX&+a@e?(ETR*cScYhIn}MfR(z)Ie=$+(>JwfZ!^lp@zY~Mb8p^Q-^E&`P5 zfFE(mRwhuQI{ZhDD%cjkj4Fh*S3rHxTWZZ$!8rm3G>c8KeqnIc2_)FG9I%|YJ{Pbc zlhc8vrH$)mCa}6^1(parHUSSTl)I-E2w3!S8n8MAthDmQ4|H$@y99BKQ;u8=34R?VCkSenKnplL=E%Ml$cWEefN;9pX-*ATQsyZ& zZHaWbBaSO>7yvBhMeaES{d6vvwDi$=hQ5T09S^}*Pd$yGIfMpJN8FofgQ$m`x27O0 zHw<&>ic-kDg`3Z`68vv|iHO2LS8N&z*|an!qAPTO7yKQ&oCg2-3U@^S{S7X=tupvW z%ybn988WK?5Rpg(pwvxPTpoBJyaOIo3+NTK$fpbK#UxvG6iS{2y2)Q6$tUyoCa07* z^+&*4E*8^EhiU01a|k4nS5l)3$ZF)$K_c|V5qV)#NPrqZiFdqlB=yg} zka6U0O@CW*GEpLlAasd^%B!YI6q5UH`G(j(qNIjtH8owcGyQ(ciQ+6TzoApOrRzV!1V@%wb!y-zV@u3NC{jpaKI$?&6FTBU3~d zD+aYlMN35*6q-yBt|?Ns?*~l*C#DOoMXa;!-&<&p955~{*9yxVYvLFeSwh>jJ4{Gq z;{bnTZq(AeeW7<^iA5mXnp`2m-9n2Q;T8dOC$S`*j%r(uC^xlm{EK>;eEH^giB^Ty z8=r{si9(hzI<83iTFKFI&Oi{L0YuSi%_^j%s$}Ih;6vAdxO~4vb#hKZv_=0(E?XjP zh8GH#N=%UtA_%bxwN%w#ZM9J?2dPs+uI^eC@M=z0pi^NMxWqKZWqCDFS2Qc;aWS#i zDfV<0zA)dmKN)^V*XdkP#E`FS+A7#6T99uNnFiA~m`raQP!(2r+_F_Vv1uZXu*R;g z*>lT1nQ&=qUVKL<7rLb{#hEy05dsrNOaS4jY%Br!ZYlq4J7Hmk!wzf!4vo_Afha|B zaHHYM7wBfp8nzIi?6<>$KSp3I}A^mjWq#0bBTR(y?!Qi8wlV0*`emaa)dH zpG-qBdCp7@0<-ab%s=PRulB=n+hncv?c9QLR2Ub1wj2c66Ex>Jo^XKUtWWfM6;Td) z$#MYSoE#uL0O08m5fpMm1nglp61u@Cgahe_kp~t2=vN342ezfk!~@!SY2ypyaE|fK z@r3cs`ecsrf#tUCZg%hj3IATxioyxw%q8!WIGc1UNCK1r6p$=Ujc^!M0HOAnP#;Wq zty^K9KpTgk*s0tiPv=c=_l|1!MV#CuMVcgV&!MHJs7E`)KsupeDVwG=m&NK})$_Oi z{QARjYldr^6pYz!RMU}T;{#XzomY)95PMe}MrBE@*V zk*UeJpvAo4@MNu`Wm3@u^GFRyR-^%hJ=dJ}u+~~tcN^tw-n7~vO)PL#%em^jqRE@D zy0p6oanDvi=gKXEmeD;6l3++S6rDO_>`}U&ji4&e6%CM&>ygUsMHg8?BW@yW8%J}> zgH=GS$_7ZSU7(GixtC*>+~7OdB%yQ*?YCAzSjJe0=eeWz8L>95^CEni?ilG5j|b97 zAPl=b1!*VG%48Eb7Hy#}Fhq0O0BXw%0M+3%lWPsO3#je00JW_6X{s#&RJS5hph5)n zke)lB(m~KPho^p{W)5qCLq3&Zw3Q4vmI;*o@~rvTW#yueU=KD@;lU zU6h>XK=MOsrho9)Tnhl)>;$Y(!F7r~iN)%J#7!)#Y^mpklD)tcUBXmPCv-44+xS*36lbwda&Yk}To6=-8rl!DIy)(k!lcxqr}^4Sky*F4>2d{?@0 zYyNR0Qf*>Kt6b3q4a-pifle_*z=$3U3OF(W5Ek1Kw~ae{HcS2BsMC&s5kjPT$SOe~ zXZk&|i`Qx~wT-JJ;$#Yp$fzbIf%xLdSd{YY3 z5>jOUNxJ9U$ZHu7mqT&eb#?|EYbkCyv|a!9gtwB-zwfi?3am%&r3TEg$h^1$;n!_q=6u__!#n;<4Ei6Ed9jxaJ%{9pH7oc-+w4NO|MgeV1 zp!^`WIzpfotVU*Dua^gfH~Iqa1`9@#cYK2t*GG*Ai5Hgz#Q>j4Q}&wBQLiQI%QP*b z^$7gssRrZ}1;?B6;R|07^H(y$X2=$$RgH~)og-Sh(oS7Xsz+QWL8YM@wB21e5 zNDWLcb&W`#whGHXh?qKHZZ>6&eEpRG1wzMes%%mK)Yi(Q}}R2rnWXR&)-$86F7c5?ro^mCn$`Op*6n6)DULq98)I+B8L zTHF7{XE@G8AX1bnySG_Rh+bJ;bd2b{tSg z6IJloSCMv8Y+Fq$Rtcp=o?Yws8A(wJB?#{z>tj~${a;lIPNl zX_oWbFks3J%alC(U)^oxI}6Ish3L8#UF2*-Oe$O4%ub{6AO_H?vp$9_I@1>9%rVB! zGca9ec=#f+4;xR{a<0kFoC^RanI6Mi02*O6N~HgSxdqTkBvo$|AriWG0)F7!PmU}A zfKIx9n*#Z00A4S1Silzsq=~j$OdoLa7|0xGuutO_nzQsj6~hi6xoU!tU`&j;291$M z@xy1t1x31}+X<67_*|FH>=ZP5TB&u2gmc%a$PLg)y$Wf%0NZ9QunbL?3EBH7Ms1@D zpba<{G$R(b2KVk3g9?~??$34_X&1O)l(As8M^_#{H)~gR$|@t{LSuY)+(jZ%`C@fL zLobaZFQm<5K}%cLhmB`+A{1@UIsp}HbV4d9;tdDtDol<(I$bx!uDm9|kpztB#}fA> z=GG3{uNIkJ9ZH;93)EF!1{@d(B4NAC$OvL`9|AWnm{4W@m5o3v05w~Onv1#{q|$Ge z8%$=_!_H;Z!^PLr?(4xP;Lb5+NhTZ`LnoLU^9nPec9e|OFUW%N4zh@h*yL(+Bzc|#kRraLj?%SWUpV|L(tNIQ>oQN!#cLz%>{_u0tMU>Eu(G~} z$rt|#N&%fxJyWm>mds$~Uueh9#MXG`Zs+{jnwfvOZ{{VmBHKNKUY`8^lhzCFV~^~x zg4y69Sirpu7EYg3M%AbXtH_3tfdkeu$_xq|XiL+;k?-dVLBi9X7i|S#ypl$=0)W5B zYWW|cu+4jUI65NfVEQ;DAvx75;jw7J$SsLZ6460Eg+Zu9$?bkC`fY-3#wru-u|r-M zuXQAUz%;uBDpX~IVMp?%rmRpWWwrClkU!sm*V?AN7Ez|@HRLDbjw~DHFI6Xyca_k?aP}IYO+#D zrQ^vP59F&s?zNef3*W$%po$2)Nt+|*duD#d-EDF=s}G;p8qRl>giFVhv*0)n)1KBP z{?Y>+EzVOJO3P--B^E&vA#}~0YxvGIL#!q&yZFT1HcvU$S@)Pj+JOupLlfZ*JE#_d zbD-L(6v!)~gHwCTnKhSHn%Qg-7jxF!GN$abSQTn1tt0cwwOb#MRa&glmRvy@UQtdY zM4HmZ^0R)z8d&Kb3d_Z?Scx?hD;vzu>1=eYP83E^(lc3GwbMrbK@Q0&)>=%pVKvWu z9cp6lw+tI(03l=`Fa&+Pi29b-VC3qAPD2+&e@=TP5XuKNgwW(^ zDjk&e6M~jV#?97Y>ELvh+=giw%;~iHW9(>r%XIpX+@z=xO|Sk-=#vcFP@JT22?rEA zP7@-iv=W@o^xme8Rc<_)aa?n z)CZmPNft*+%NOw56I|e z8h;BlCy%7bi%}KBe!i@E{A}Vi(9v; zEa!fcTbY(C@hu$PokRyg0eRMIFtHLJf0d}BVJH9QqLCPgG_Sp2mmX=043ir+x52VV zIxb}Ba7~Sda;qcGDpmRaG4xaDFK9?pvpHiicGAnU9{d zN373cKh^S zaeKgSr=I5a+e7Yts&g>;^tjzW_N(0gw9Ed$=E3B?uWh%))34><@a;GEWQp=r=h;Ojm>4<2?q6Q)=VErW`BAc3D8X_)kAmZsDLk#=C18e zOOcNCjhI5Q1$H0Ge9R5jzhxK-w7Z&5iD2@zxUE8Ai{sg1AYuu%(n;CN^uY;S(1VDZ z#vWQR!xpw!p&Gt#Byi9sJ?az7fr7L^=T@0unIZFvOvTj>yQxTG<-g2V?V8lT(CRNf z?U)60dR`$2Bl~6*%m};H)~={0pb~U`h^}sFDF3J(f;(%rL?={HFS2&E=;KyC!zuhU z`~*^8iE);aE`*=Xs01?FGP(Xha!mWlg`CCYmv4TTQ=&lb(|Xc>w&mXx0rmC z4j4`&IRF-92m=V5AwNVxN**!D50I11vGMeZu9BOPC-mh;KRKEv_lj!OD`+_x%&y=d zGFR|qz*jEPc@)865>6b6+u6fnhA3wrmMPd9-rSw*@s(YHM;lFr#p_9AlMH3nC0ope z%cbs7v)NKJiUtJ=%0F93cPg@9Kw2yx4FYWtrggp_my(lQTAcmL)j+W4_A6Q@_SRZ53tM2x-%ElSfs-vfd99cYj3tJLMXYuSUSae8xiOGH?V`7vEi2vm zbWB<6ElWq)$2N1Er6__vn6Zb<{ww#Y(3$?xYA2T?M_!e9K1GE~DS)$J)ho{rk`wTa z1Y6H;uL3s|Vuxc({1 z?mylv`)8!}tkTtE4TGJwCT-cOgO~ZnHunK;J`!Sym2)mW7qSDZ(#GWc44M> zb|U#{e&7%S6>C?ZQeTtfjGj9JXYEe*k||Cg(^MOsgs_2GY(MyDG3?UbXQpkw%|EPJ zh**VqAVMmfgNdKl6&mkj_7Dun5PwOJml0a%b8_x@1bG`ET;^tGUI_bPo1MUm zmiS%}=#~`Y4sZIwEE!ZquI=mHK|J3B)^>u+a;4>MpPYhXm{yJSC|pATa8+P1vlhF` zahGkia)`h(79tdATd3fUrJ=ipv;l6*2d+l5E-~U zLqJJMBtdhq4*|7mq!u=Kz7RC|kmF`f&Q~L;@SohOC%m1p=5h@lCs!EtmA{nVl_;uh zLx5peleFLFo8)BEtVyav6!3z^&rm<+(5SX7G8;7(0%(N};!R)vS=ZyH z@^bH(%utZbkRu`m$qYFnBQFr?OlH7s;bjI98w@~&OlANLB{PV)JDI_ec_apUg6uER zz<1GNoO7}PE+{V>@M&+1kStEyTgFRXFt}5Kfu^ag8oFr@h_+?QVC)Py;X<|`txN`| zwNCLYpgEmLvTYu3n?75@HCom=O@d&c39`Mq%aaFSUyOka5Am8xNx@@czYyibM+q&V zZDyhEOnk(Z=#Z%~vycx3jpyeVVwE+(6UpjUi18Q_eAxB4QHa&2kxKL{ys~K|3@bN{ zt#eG{^hsn+XPramO37hl)l5uY;Nz1Q$SQ94>1LK7@Uoe*FNgzTmYh)jqtoZ7YLlWB zg?;!dB_fl}|L+7aJIE;$-#JXp7Is$XV_-IAOm9?N+^IV$+)!JB4BIvEKQHc<(wzN8R zl_HuK$2(GSTptijx+M6?1ZA>}C;{-xZOX-QtaL_@)`nieGKSt+?3H!@Z|pq9W!(r&}0^fKOR$ zPOy^NL>A5whx}7vwyifbvLOm4vLOn_wM7(6>w#Hbo^luNJj9X-Q6jlc zG=^Mw*->1llD%@_Wy$U2*Ifq`Pm=>5LMI1?%$g|Em>W(%z%p-mIsCL>P=GETeb8uel=rEJE)O#HTyLFj}KSwyByK74hjUhuyJTeap zE|0CE73v~Fiv9!FB|}SB#W|-d3Tw9Sq)?4mNVcg4f{wR_8l8g z^>v`<7*vFS?mVzKDu1E{g3PJQz*PYNi-@@tCZXIO`QfjA`)?Q60eUKqK};yZM9Z2N z{#@3bF8lmg0}=nae$sE$0vg+j(2`C_`oa$I#hre zoSNf#o1ULM^0v92pM=ILhNfs1CU8>~ z6bJ~OR#FQFz>CgOhV@4ozF%r*bEl7z4?cyoxIDR=i&;oMSB#2><>2644l`rH+qjGT zR)zq|9VDwZMR$cG(&9@&_)E)pos##sQezI2L^Fcuv>((|Rye&D}-S!wwr&`|nuU)sBm1R{ebVk6`HuL;`wb-QJt5 zig}JzF-VRnq{^L9DzOF5h!NxuTZpfUwt(b%!x=1q>R_!6encLWfHkdq%u5I0e?c{* zFpXWJs2O+5T1X}#$UGE_(FN*Hg$m1x(wG}#0=Yykh6lEn`Z*LTLg)juTih4k&N>&&tk=RfAq-`_2)`Izkiu^k)4cNDBXVuQw(6)(MW|U<{K2w@e zq|gPC2-^wDn6&XVN={0Ifck|5ayXc%?6|q2z{121(38Rb>DB{^Z3kcihS*l1udBBn z1kf!9M-#s3)y5gZY)~*gaON|6(l*;$_Jpw7S>Az@DjF38XqQn*G1Dz}tf|2Upy4Tg z{{7Fj>hxl}?&Wyl;tN$i7c2Ly7Km;$}nD(jr&eMp4sLTTt;^Qqd z3#lt?)d9pHtr=5h_B!T!5xi?%TQ2wfjGl=i%H&|AQJ7d@nu*GQEE`E?rY%AQOQ3C2 zO7Vm;xxg`YG-Y_klN{11qR4`{Eq(-<#9UTgKZ(Fl!k=X*gn>P)d;!<^&mWSgJQ$Aa?(M#rg2J!i9V)j z0Pj?UXZt-9)yvwlu4e^%oqC67e=do_x--Y~5m}My|j8-?Xo9OZyh_ABYE4uO75|afwbQq_YQ3`RP{9x!j2nfHe;`TEu ztZEVRW*5Q^sv;%;XEK)|!SE3>!EuZ#wkGI;8*)J*8?6RFvw#7Ep@x_0%ZKy^N|x!^ z)>vw^YzzRKE}T{!NfpcdGa?3U^o#}r*Vh}pFVER~xQcoY8Bp)3TKZwRx%UhT{g02f z+CYGz2EygF97s7gkiTdQWd583nePTN-wg!Mg9b8x&Vex0&bTX{=f*VOjfu-^Ii~r! zG5xQ`m=?`BrbTW{i`p=vTUSQBor4C+;Mn&N*g;L%oDfu`262HI zh>&5-VpVATwgfwC91 z)q-`C0<* zxttkKmc7)H=bQ`@_H-8KM!J)?>8bTuEp!;@7*?eDa#YgI-15YG1R8|U90DSdGwlD` z>f@|<98Q-Wj=elN{&x;MFUk-ukn2edB>Bh;Gq-pML=*-DsZdiH#%FUu0vCqN1mEx4lgB@khXz64@LOO20!G`;0sL%kqc#q1^pN#d2K7ntDIf}J** zGIfR9`T7*r>@K!3w z0BHelt`mGUAnk;K7NZVhA2hfc8AKqi85FCX!UYM2acB9@+T0!m#f7*SATy9NTBw$g zB>gWY?mosE!Du*eTVKaX==<5hl&P~_5sKH@!ShmhufRI%jvkTV$bMb1>PiBgPRxr> zxgVNhTu%Oz_0!TAKSkk**&E0I^^bARCOT1($Rj<%CqT3#@;Ni?J~YD^FUNWuU92Zp z+P7!q9$`+H;T)ir!PexmhaoBqi78+oyr8QkEYBf=dX(@&T;R}0A}Wgv6hd$bNRKOt zC{Sw4bU9umppA0}G$p*EQj|mZmNL-puv~ko+eo`oLU#fPtwL+9sZ_z2YSor?8j__k zwJBINI^@9S-*u@i!72~^CYA!Ty72vEy~z&S^&q0uf|xF>WHv?3_#hKHhp==_VBaai>IyN^t45vVQx|nI z5xvl$P82Ud|3E;BkJ7T!X2ptxCR9od+1ll{v36BfYge+3(33sdHU@1QE+sCgFS-92 zxr&H5>)~wTw^BmvG#8|`$FkB;C5r;O-mR)tr!QGnM#qdsfKuWr2&zH(jTX(2#4JNL4h`bStA!lQ5{C!1*X~75 z`#tr2=coK5I|_G8*{UU{W-!#>6d!8a7E<*#%Dh=u`$R zBO#cnA9o65JFNW1!t!54oB@=CZX*L+nI#3yzyYQX#FHXs$?E z>ZAvf$-}ryI1kFVONQj#rYTKwPB?hreTg-oZ5{_Zc*J`$9P5MCj zrXLjn6f*p(V8A~|wn+vbAEpbW!(_2QP;2iw)hfqcd$j{_o4BRj6o^pldFU{QHDz#( z%7;t1fSi@`)?!SZzR6uKRc69`p-h!C*oM$S_)pW`_?CQJJF^v0rs*|_O!Tg!M|dyzu6m zmmUr$#TEGSjK1?3oK*;_?|@8@h0Xvgh8u+tIntfgMbM*w_4PDDLp!j1$Cs+BP)Q5% zJ3jHw!2X`Tx!38js~k(RFFD>)TbWD!nA~2g(vLp2-cnngK5RQeet2sSTU7No{}z%P zj}oZ?w+NTjR`i6oRJ-Gq+fe3;@#<}Ed+FyD65bP5SH|7jAXRByaZK@B`Nufp)KuG# z)q-W!6+KZ;$f4}jmB}}5NFKd`TO4iGfOpH#T(q9Igr{UMUwMAv39iIF6&_c5#rcKD zbj3>aPf|1+A{h*Ur9_v)YM6ZW2~0l^^A9}_uBo*wb2%XrcN{INzJcs_9KA=MPF)Vv z6q%v#@v%jYNM$6zcF7fY(oXU<>ev+Bp<51(x}B-0zCkUJzTKH_8f71uR@Rr{JGqg) zU=_rRFh?+eMI4x>S{dkFR=aP|opfalssVQHjN^d{9x`ofSsV;;bMike=EJ%G4{S$9 zHQvbn+t*>ULE$-^1o5K5coDY|8xun@z8tLDlgAJP7r=pQE9`67+4K;5LHBfi9-H*y z1?$2kv=a$IN=))ew?Wve2C9U4<+~A1I_-^%0Bx2=YdX(#0IDxQb+%sjgT7g zN<;bix71eg`ih>LKL{$^$_V14weG_#g7|2>QV9_G@MOG_B5o1XRvhMC&f1Mv`yAe1 zb=Y#!I{8>Pe{GY>tgT4ILGZ(=Wg_tQ!VOVkPt;Z&y$4i}lArevSnn*7c-5`7?w;^a zZ8htZwFNKhxV%f&Z;oKND?Kw9ho^*ZIrlK8a6_z<4zWW@A`D9Qm9~WCli1hIx9W`R z7JK3{IOMNWLD=u1$ECH1^T)jz4)6UF>-0)MM7^`!1ykpzn+kJ>M1Z6O#X zfAc5{j%ZnqIP+(l>9Dgik|~`*XNR5n)6Z^CGkE*YiL&`?oc?QKC!AnH}aJVI7);@CwV+Kf_gdzRSrY8p1zFwe3Xa#7jYo zAv4%96&Fr0i*a}5)B;J1{(W}f4Qk%2XF?uV(3KVOnMZBeai$E)lORsFgsaw>l|3C` zS`3!>UQzYo>IzVC^(~NBtQhpm8<4FBWT^)rY`j8Eqqhoe9#=mFTh~utDzGlD@rvyXnvrb>=nK|{OPG&RyyES0fS_trMw`yGqiZ7QgS~5P65GCK8gNupI+kn7(Dg3mf4}34)uKHmmWG*Jlr$&nLjyp zf275FPmPhzXQb%u+MI2|R-nUqrI(eG`&2Jxf`^nPyV-na`%*a`%y*|TRi3o%@Kzl8 z=6MWWWbuAC&4Zw&U2VtQCm>5PAH;nSxfLPO0`N-79fZ|}1^Up<1LWh?S9f*L zq8WpA{Am?)stKc@J!n8P!hfvGwsU!fZzZs=d?x9M zGT)qUjHYB)ZdWi@yOd0&a)+c#_~-B-EOHHSpm%X1u!BV$o~W+K14M8)fJ6=;EEog3 z1BjMR28kGK+iUP9aN{XG9{OCC=j=eJG80I4bO{t| zK*HLf1%rZ(5DYIzWt zyrGgU@oCE7_#oQI+{91?RxorFV|9nLP>5Q}6i)qF$^&lu6PNDu+Dt-#n(oR;D1wk}O7B3SbZO zAiQLL1$KyrnyyjC_e`niQr@?dlAPnX%!#>_ScaQHBvh+MjNN-6jpT{+$r}a+iO?8! zt6waBg`3ewJ7M1@T9~{-7WV9*eUM2QU=P$uTi0-ucm*PgA+{(1+>YgL*-m(IPY@I5 zctXt3^e09)BqA9tKq$oqWXLXjfR4@=Ea&SEIemIp9MPdGyyfeFY&k+w7MT$vko_Rk zOga6UdnQT@!OEWaKet z3088jSdeE1S$TO<{Y*i#02ipf(UWzRdsc*)v1TRd!kyyNkxITPR}uy=qa;{WN{$1X znCoMhda7KXDeSG*xZVjjcr!H>RMQ!bE>vkVWhvd!GllADO5a(k@*xya$?8Ieg0B`3 zFOaL-@G9hRY(~zpEqkjA3~<$eVqmWRqbNv-`-dj+gJDq@MW~8kNal$NEatz3Mu}iZ zuVb*&(LR2&VLOJ0bOCfa{4ZRpC8x8&W?(!W(1$tXQ%k~X2gxpKHVd9nGI4m}E*Bt| zr(&3_4b;6~Ob!+u-ORB(nyp7sU$qmHOr{wavcbT}%*XhcPh6Hdyo17WMe zQ^R;EaE-+1^`S_?Rf|J97}O-Lr9@;VSdn5KSXo~zdBg}ELEhqy?}suf3Y(NgdvnA~ zp3*SfkhthLv>*o^^PEjUl3}}L9L+nU|+yERoXJ(KCa2~^R0EX(!0pK|?ycxj4 za6{-kh6CW)F}xYTFM{E3%m7SZ=EiUXu%S2rW;g)2!7!mfSF@X4G`pE$#<2nTN1_}J z0JDz7Qor_r)b7t$oU)qo{7O=#Y_yAi*gzUM-GE$BO%QImiU*FkQ9S`BN994 z8!;WZ6_sHzWMmdBHYNv<84^Io%b@{l$&;t87GS@?-I)mzQb=FA0Aa3A|D~S)O9Ti6 zAZfLaND`D*tE2s8@PAwx=7D*+QiZ+?V^W1C0tn76RnXu9^9P01E|3mQTg)?_=XmQp zC!NoetY%983(0Ci#@U6n>`6mJD$OpfDSLKlZTgdjw3a=2F==gH()2Npyu{|Z^O7Vs z!IqlLF>p29EzS*;@3#kqQA>|2ekEPL2jC23STs;QWp+ zYt@F5u|o*66JE?~2ua|~F$e`mUS5pI51*8HiT_$hga=rG)&wGgwvWI#Db`|g6J(^= zOi(r*IPb*>GPm~aKO;%*Oc#f(jC-?{;l@*r zm&EgRkSIs=$U(bA2kdHfpKQUEBr}xO(*xOC#XJUZpZfxd){E1@wDOXpQp%R*l(P2Z z5hAJDlRLAoa<<3qtFa=TUpUF8`NeVj+VBxJ5GjDD9V>xMOee8}cSjE^WNHzan7=Fk zxWJAEM&RX18|!MCDcxv352dS_z5W{w8@$ZtEW{th)cz=MCo7U?xHzL_sFvrbTxxo| zl#NH}x8%Am2?DGMZY}1Zh%G^569u4`K=GIx+?ABSCxpmBjZ*HAcdAClGq;8#6 zFY4C8)a=|k+^q6$odO<<)U88ojNCdma#?kLVL#g(aq8?Lg-_>tE*yjNQ!H}t(P43A z{+uA^&sjN}KW9mT_0xHDaPDBV&U8!EuGj+9a+a?PrG)J~j ztfI1ouAG#m$yq~J$r_qXuskxv2gQN;Vzhc?FXEQ6;?Oo_#!Vnvw24|*WdklcC?c)1U zdf4>bddRskdike5UjEq~#`S=i9sQFG48#6t|@@#@2rlK?UQmdV=NbM0)TlGTT+n~n8XFNoLhLiIwL z&D=@tjHNp+pYScc<#6q-G|gp|8eXTNrd7+S)vet1llVkkb3#Wq(C(}QZ)a+AK8wpb9|~0fb6HR5 z98%TpcvW?^>bsidsrp#J=7nOKRjtVy?j3N)+)=AkU=@h97Jub+G7_y|4CfwVbzxep zo&}n&JQSa~y%ylaB~Mwh+I6Fl zza093dh6o#laujVC#$P^qWA&ID z1#Da3x7L~3Rq@)%DhnlEr&yxyc=aS8W)^r$Lp)UFpLor6SRMtCHP-?KSEpCin4eey zS^8(Vs;Ibf^0<)De2a4ppkz_o^5)zT4kVW0utR^d8oRs zC$K>)6ZkRc)iLy9WxU1>T0)9?XHFeRx<Wq3t-35OrlUl6P}Oys@Wn z=sGYl@*jK49&viBI0#4#f+OTgGG19-fu6=&XT2{D)WTV64UT)A?$p9rO)c;W)6{d_ zVO*3n!tLV2P3=&i(GHC$$+j&<<-QywA+Mk=EkQsaj5$D8w!Q%>POV!`q{~ zjkfTv6G}~9KqiJt@vazq`VJUzr-V`u8KOG(0aA4z&KI3 z6(Dq@WLrV;`CGBunhOo1@>Ze>7Gt+9QIG~4 zKGRMIDkO&UR&xS2B14`dK%|K!AIJ6QGCWIuJj?Jb`SHw6=vngZX-3?RB~5WLHI0k$ z$x~^*ORal@vWx=qZ!1tcC=QR<4a{|Dey5rk^{HQ?%v}E__R3&Jit;6;6b%+ zP>Ah5#7M}dAiElZs%#U1*(7A!C05*AUA{j8p{#{A%VwZxxs>-?c)u<01tA0ub+|2F zB;PY0!z6}5izThj zw6G|{Dlsip9b{%snHI4n+!DZzu{JZLc4J7+Tbt)etQ-;4j+7@^2}R4bE0Cj<#im$f z2Z4RFuqC#NWNb-8HD?Sn#+Yj`ip&!e#0^)MaSsTMxJM-JVZKChk9LtDIN>q5a@km1 zZG~pL|8VJQM!ZW`E_d;kW=`Q9UYh3|T;UKHlV^o1>lBE}U)!4Z*E+z0Z*u+^zjuHI z-I@Ul7NNt^Zz0PG{Lj=Qo1aTJrhqG@QmC} zcw9#rq81!H3k^hNxz7ntWF0%zQ7kQ$LZ-tr5W;HeKp6p-aaF@UE&vp5|;Q%MFX*H*kqGIj?{ofPy!FfF(^nipRD)cw+6>M^Jp zrds?nUo_E7S=Vv7VhNngVfGg|)xT4_77=!Cijt}pHHR(hjOpwIv zWk(g27z4J>1$ZQoxd4wHKs%^iFbCqJB-QB}10BmWh7N0-@2b|?6+>76_1m3n*$&f# zGCLx|C`3fsh4eL7V>RG9Luq)kR~i=Xt({?{QFw3RnL+J!DIHPH!uZWw`R5E#=Y=X+ zQuqz|m(NrhYE9Icz6j}?1$>CAcmNyzW(fFFy&)p4q9ko8B?%Y{(oYH>(+Pvb z7@XQ!68s<(CfdvHIM=*L)o{HKY|`b?b}0nEZB9ZHFS@D*13|{GMR*>8azM8trjfXy zOk{1DMP%h5u)N4>;_52-=~{E*s>^MXy;fxcDRTqh<`7lqc!H=p>k}#d)m1>JS<3g; zDyJu#rUYzEG7;HOq+=6Ufg4-yBov)0;7UmqC>7N)CGZ06>l7ic!YrIJ3iCFo3(i_b zGl>s~$LR}g*nm41N}A6(*v#&9FJYw4?gUmeoNqG(>^$Vae?R1$g3>~svrNcIYXUZ! zmeJ6?GJnv27I#@nr|Bo1QZ)&>dol4k)j3v8SK=~lWYyeL{A!5Tru@w@#WNL=7ll&_ zC9u8Ii7cI3j=;*yDtt)}@!H^J5s9h3Z7PYr&d$Q<5GV-kdoj?7L`gH53A*gb|1UuY z;&h}ilS-l>XAd)=!q#ZXN*!h$Tg<{}XaUlsSqU)1c_=P1j_Ty*D&_(~A>q?&A*+S= z`OdLC>!nBZ zlEoc#r;GUsnUtIS>N8^!iuSD@f*M4^RV|^=tD~4hI`Het(z;FmY>$iU!s`;}5>@~L zdBrM8UQ(}}Z9SH#v|R)ANoG)e0Ys z3x~K3ew+gAum727wq3$99E(yfX0|KFm!c%rS@miz39W7mEFlRB!Kpx?S@#vcvad}E z25Rz!+jvELmo;tfc!KA{DC9(H4C!fDTQv+GECz!kzyJyXPyij= z?&|2CxjwoD1X)&0!u)Ibr+Bm)u`I#l+zATQL8lTXRy(=@!wc4)2f&Y9c>@6N16g`P zM$6nMCj%R&zRumFWv1PU(XHmlhU}6$dZb$D3FGKiqv70HnOn&OU`$&axhRAJ$6J*D zusuDoIYRz3S#8i_jK$h1s-qSZV#nb;GUsde0;iYg)CcbQ92G)6$E%8g4wB`*TjI_& zZxOMwuxRE2zZ27`7#XOOC`*Gqvk`&{6sMaNCS{-AR6!`$An8b8nF)L;!Mw?lDIi0q9j2`(SEdVzS`!BIyo^-fy5 zW*#Y$`H*BK5=MVD2M}9lOdzdIjIH_{seAz(My;=5@i3M@0yPc;M?jNw(nF>I%y`6P zXhwyNczNC4E$~L)DQzmQa=;)5XLw1WX&#i$%@Z3C6gr;Glg`gi>{J>zZ+xSmkhCX0M>x!(m|yz+(5ZX)E%1vpBE`gM2sUYA?{VeFf|cZA=)Y z^AjfHgPSml1J2UmvRTy>16b2Yto@i;$WbklHyMFV;XsY*#J>%^?;%#H^S zL`9WEZZ?2(x@$%oU^N?|%|=>W92u$S)@EKtK}DWO8(riHNGM?@Ji}Huj8RblHC5kXBaQatNSsB8UZVhOXRHt;L;y zLTCmAR$vOzx{$=g*{Nu%*6IpqbE3~<$_WCg8JU2c<4|yi`QiP@OBo;^Xl+PHA8?ji5RSU5eOS!FNEQOkkUQ(hlMX zT+WUBs^FmYvVtI)h*}ii=jUMadVrG$djzVrY|jS^O0M^ zHXpeqZu5~NSvDUzl4bLeBUv^dIg(}bF_UEZ`Dl?Z8_X>435k3MrTt=qdZp{GRyxcg z1>9P#t%m`;o^juHc#>5Z-#S?Wz;cA*2bQ9i9~0Uxd64 z7_s#U4pPq4mM*1BV8<|A2~-}40$EMwB&>qsavW#`4=LYK;21qsGUw8Psi3W-OQ%G| zrD}_VySS{M9EoGK7K1>_Pt+;q(iIZ1cX!~pzY~LSd8`Y6$BOZHVmE06>75~d#;IX= z3<<=SGpuMbWbPb1i9d|fR5)Qd3rB2Onv?J_hk&J-2$(kff@tRoy^16AOPWr8`#(GW zDhxQ7hU>kf>(=)5j_w{=H(K94Fg8AV)4H+IzI6k`{q-By_Ko(A z*T>cljI7yk!Nv>vc5Uw4wDY{3=bd-{E_-v$SpVRf^VV+IxOTn0G&VjmT3S>JRaEo?Z>CaeljW#7OsFT@kW^&9t7 zalL=&rgywj2<{vh?;9ByUIXH;U%O%LxrUuX13N**PeqmBCxRe|!XQ}5bz*2}bfVrn zG**A5jgHkpyB&MSMuyjHSWB}T-J(D_4K`C{=GE)andV;qaNW#{1T-KX2Csn>TLSwfTZ`cdoyncf-#5hFyJ|&)c-Ve(t%u`p)g!yy3jQUG=`5 z>zK~bUZ_={XpWIA0JyHVzjr^^v30bx4>|-Y0{y$_k0yNszxG$qR`1ZzNS`&KX($(%yfe zosIlT{1i^Fzfz38q z*QdfeZyF!bz-Hp*?t$@jeS7MCgD{UV$8`1&O)!wLH5>bPowNR&P4x}nNZ+oF=dIhc zVdDk$_2)K~vdO9+RKI`}!yE4J9qm5|h5!P~@9!P&)w#n(7Us* zzrO30f^|>*#x>%6_0fYYse^Tx%{gl~*eD#c*=}TfWO(Q%V}A5wOn?Qv$u$>k-5M-v zuLQk}<7fH3h2Lw~q5grf{X@Ms398^Z?bf+=Mf`H>uB;e_|)g#MiO?#;Xzh?8S3(FOKq_ z%^`EP|J4}y`n4OII6Zy(6m4whdJzkJ>9q9grlrp#t#!YT*?D_BR3GNPyIgri{9_j|q=D0KrOwN#doO)jz%@*8Skv% z$5aImlTP2?#QRHf^?jf8JkoFC*U3+OHs)95hsF5LJK+ld*-jy>Oj^L!rC;nd~c_N%-?jlp3^PswR(Pr68!02KS4l$ zX+aS^gSr=`!DmOgu08jaZg()!mn|-YY}H?y-sF;5TB}%p>GRDlnWZn7mPYTizqGulk^a*3TU|0szinFj z?WA8WGGr1QBAZvCg8q397kcS{B$^=XuRG!bo9bRI-J`#be$j`-)&G`wVyvDb@GI`c z*w6rc%_*+IKhcjXX+EMK!iiU@_OX%C@pVWeNcrpfM+bI|YXMv~-$|*@)6N_CrRg7V zzc82nQ|`~mrT=_ddJAc(7_UKJ4@?a74XX3%?=$pQQtnm!L}k+SW!%4>->cdFgydC0 ztEmS;FkW#SRQN8+_zr$4wcEmd!Y{?)9`5y*Y8@8^$+6Eu1%FPuVDL_R)_8jHwDcvU zFXgv~pK8!3^_SMR)g`m^yGV=9FXpEnT)|J6l=ei+D&_zh?_3y5aO$?1+ zc;UqG4WqsLyH{Tyqi#chufKS7^m-?nQM%Fgk6Egbez#AjZCyiJd@$|nd;D{aTfb}h zy_a8F{<lzBqwMGX zyDt}~a|}=9#rWM7izo@tQ(@S4d?}L-)p6}_!+Te2iEAOuNji4Caw6))7Y`>x2J9yQ| z_{GB`6TA0ZS>HFpL)UoL+%*&X=xJkaMGw+4y`ux;H(e_|!slE(G<3}k5WA~sX4lZj z4Z`Yu7&``r>rOsA_na721!_L5Q95v66BlB?~=sVxNHiyNfGWKHgxlBi zJABqXYGE3>g!{gTo^?ps0X%W9WRk1i@{ub6RI7nqe#N{~~GC_er1st6Y_Tf@=%c z&-?VYv7O^RCNypz8M$U3=*L6;(!Tg)mewr#S-J?+Kpm`)Vuf-yW(>Y+WH=e?8yLtQ zTYZ9|e#4e>_ewAFX|<>Hh)<^!XunTy;i~5cd^+vlDCyz)_zfeYgYfzBJ^Mk|;qe{2 zkQM8rfNXdiv>EE(fyl6v48#5%=p6KUV0ecNXF>45X%04D<|-NDVXoq%f5}yI`W>zv zT%YpS>!>Ex7`{&a3V!+Y+G**8^u?GKuI}#-Qj5hZ>R(lTo3ZQfuHVgmTI# zeDc4+Rdi#(o2xwIJ{#YH^CHAS@GW2VpShMP+dr`%9w}#ouZ_I6WfjxH)A~FWM#dT) zz)VStO;rYG`|@w&DjLG$@jV#sW9U;nJd(aQmX`ZT%1JAS^N!!NzrMq)B&5@MYGf4><$vUVnUw!L@%cC6dnHQGPKeI@{Kf0&=}R`uP?Pk(7&r?|hO z-n;86XvGj$Z1RJ+1~J_a_w7+Z{$hR_=ll76fM43TTe#O>TGtWoRnOMpT_byX$M#U) z!TK0?JN8)LcW7z)1(Uw>L3?Ku26!2E-#VPv!{kb=;eA&+?0V1mjUy?j>TsG~%&}si z%Exwf^)BbK^hFv%)V2oqCi9&sdU5|A&*rz^cv-uKUN>R68Fbt z45(4&s*x-4ZEWiufX3dMgTsfo*Izouque)S*v9+mQh=FH^bWzlukq$@x+3^(2O;zI z{0s>{MtbdLNAsfJ&+?O;3K_9>Z{w=Jv=1NV-oLwTv_7y8$y9Zy^J;2`kRNs39^~Kq z2#JeE_U%Ljl%$(_5dq;fBNL;2>2zl8eALQgavdI<7`vD^`k@Y2)p5LFf4!ux|5NEw z&1CQ0ZmCB4=SXK$-najp^EM4`$Z*;}xbA8Uw^^pEARX_|H{QRvuYasJleed}^9zk~ zETz$rkr{IQMe>S{4E4w!?;F;Fxz@QT{7Y7A+V&l!uA^T7$(P!Odv&09=$)AJscvjy z-+mdz^-}td0jjjJ>$DJo8DnmWe3jY@e!jlJD{*ux>5d4(wE@1 z$=)$00mryR9{z1|?LxdqhTmBq9;o-zv0>*pes_Hr_L`;)oP&+$3CbN-9V+s9_5P&4 zA5G{zV|Cr|AUTM=U-p2W(UHOW@V0^d^<+rg>86Ws#1B38-jRu+{ya#xO04$a6_~c; z_3CGBzZV^){=WJs>mP}CbOPsLe`76OJhJO*k#{%n6i%NY3B9$yWv;6>bNnuj^F4BmW{?VE4`Zb z;V$m4sSj&KAoO23(YI$mL<|ga1V}}*vY+Dqk_oAk(1rRn#Ddu4?D?l%GE4vRwDd93 z?*{7o`mfp3%j(f$->_-DE~H#x#2cd>pK(dM7cKd$PjBI>^nc^WOlPY=d}0SGqHxD4 zLXzxvK$y`dQ@^>ggnZXXoi>c!J>ub-!sBl0-99?4l+8?v2m`nmw~dUY6azYv-U=mn zJsbb8a6cP8Q2+J&RepUV`yg@9a%Nx{q>0JXU)rC0xM!t~LFvY=$1hhX&s5wITj!F& zKk;T~OZX3DU-9=>Dy1nfXnJ@L#B-plU{ej4kq@%wdtl6!>T zpW}C&U&_}{aIZf-Q~BTE_nZ9E=l5~{Te6x3VxXzl_w5)n@hpA8rFIVNKlhv+NPq+K zJdO;b7pns2eWQ-1w0{-P9LtqOx+7)8V+c>I)<#-QHx*DuQ;G53{k9lsL${3=HQsW9{1M=xOS2MHLmlx{&%hwuHW_7 zf8{FNXkA$`yTekhdVVHX=@D=7*DJV64|p%v`CNDT^Z}oq;;Q#<_vz_27Nfd6*Izof zU*~?iW9&T>7$oZdA8*$I7)9~*myXoXq{9(G1vD?9SfY5(4}KUv#+n?X)-j&6_tfnKElz z*#4*N*vC@^m~EuRq$=65IwQT0tfo$q3F%XrQM;o*PS=mHE3-$TNio>WzTULA%{RBP z@efX$h8^iKXy}c!qF}sWnCMPtm%L-2lx!K0lA4xo%@~OMXAjC5oIAw6 ztKZU1R(pA_f7`)Vds!PGuyvcZN*Jj~(PG6*lq^;HwK8SPm9J3IsZ!-CRja*Ty+%#h zL#^6%>ej2TYvA0lQR5~}n>BCIvXzUg8L`$M#TC0PQ;wC1c0qs+p(xY&;V+>O?cjbLaVCK^rM!82Mj^`v;kM!HN= zJR!v=XnMdO{ZX5z_Wu(B{P8}p8+Ij)U{WChUkqla8C@uD&2B#fdRQw>S7H>m@DDa||u^ECGY$8bqK21!|DFG>6G-5rMf?T4W; zkkrPWHn#Dx=!2F{Y@Xy}ly*!43+u2?@d=2khxqv(2gwI%9;UwzFhuhK82aNh{|vj# z3knMlrQoo}z|xkZo-_=C?T_-z$w*0#VbdJ>l6eT?BYuHliYA2}?eb%MWW8q0Xl%%n{%R%5 zUK=4znlIv@vT3v?rBibiY2$hL6@Gfib3Y^oP=8Cq2mEpOBd{y(%6g7DtL{euL(GW= zYzd+t#9$ar#cC%tDmB}tPtOJW9&AXDGUO5?ul*)_)_#?vSK~hhOsh8HAt(>BBnVw2 z3yRxp9jJ?Bj3(rN#Na{(&AMWs&Q(V$!HE!1WHAY$E)7BqU4mKXuCr$9JP>bdS0~1g z_ELT+X`b)nu&e#kkV#Ie+i$R|Vk}vH^(tzX#1b~Q40Zc}Rq!s*O8wjjL;OQw6NZE{ zKgD2_Y&JAkxz4O4>5vxn&l51{*HO@5#@?GO;!w&7%TBom@-`R-ztjdf4p%UVuatg6 zVxGcgAs+=oV`gqfmembo9Cc1AxMJ=yKhhKx90)o%t_R#j!1aMc1nh$`q!BR113hS( zLKIaatSb;F%^f_hcT33S^a?U$fM@~ixuW@Dv8ntz);-i|bxGL}4KmeLVqu^p<}FEw zL7xHiwZ%G!#&?c808^g9{ANMsoC*y`H^%DR;ZG|wnEQMiwQv1R0uq$Xc`b7}^~z}&_eW8 zf!TZURTv%eBUbm!0E~`nzVO-(T3RT3(N&^JokJrziurnqpA5YxRS@>aV zBl(;Ui^bk%saMkw#6DyG2Bh=iw&^{Hu?DoV@QIoSiwS(7no#nQ6#HA!D)R zr|4O;PtdDZv>aRbI7taeyDr+}>-gok5is#-9FsiaHJF#u7NCm{ioBFlT1+J(p6OWA z>?1GaHi9mi^Qb+tHmTrhz|CP~9+|XK)ec8PfE42E#B^$6V)e11;6u`}Ux-Z@-YIEw zjHy1eb3Zf~nq3uN1^SVC7m@qKQl#MtlTXx&4)PPxDc@g8$>n>%O*w^SKNki1{zExX zAGRp;zQWWELm*jU{Fu_0v;5@oM6aYRvzJa1{gP~pco^am2uEOysU_g+Xm>S%Umd;d zd;=u)?9>`pUyvI4J29P*ElT>=6#7j{Ox84$uxpgA!_4tSE0TR!7=p* z9n7ns1G60@w5mu%YSvmF|63xx>M&Te#XPwyt4yJ&M63fM6N9MD+So_%Do{`a{mOB| zQl+T<>#yF1wq`Z7b?E{OcRXB@IZnC*M|MW=BCe?y!BP=y6hWQ{PKe;D2p*{5lBAz> zm#1?X>8Rj}q+d#ak#|)fucu6V9yvB9+W!(9TQNs_Ui@Uw57cO{A;Eh*!Rts+1WQG* zQ3QD+I3a?oB6y&Jzmd*;F&z;s6~RUk4;#d2sVl!PXs4Ka8(8OP(Lc5`WYvtBZ8$O z*eHTL5u6agRS`T8!KAmvbVRUJ1RF(=CxR0qxGI7NBA7H@Oh*Ju34Fe#2#wCyVG6xt zEg!BSo{+I7tAm}`@sXPl>(Ej|*{)|(okf;Cs>|aqv34Um=#MYs?!*2-G2-`!0FM+S zet%4WB2gmZ@lXbfDn|5Q4Bv_?M*Lm^-%2V*{9X#*N-IYEPUq~(C`SBV7T?M#M*LnL z-zq3Z{9X~?oD?H|uY_-v6(fGHf^St7BYvm3_;tmI->c(W4aLxRF2<>eZ?#~=Z?%Ez zXui?1ww~r&ePEsDTLWNc&9{cYjWpjH12@rpYYN;<^Q}2>3(dEdz^ydjT!39Q-`s%R zHQzjdJvHCFfW0-}e1PfTWno!ID~?jf8_lVyIMU+jcwq&^add44bWyQ!m4ymu+DR6H z5ngB0M5@CU=wnCDD`JFD*rg?dN_K6$D6k zt%-p;s84rxVj>wHH__|@gRK!=hOAbFZPTQ5y5S@VYE$;F*sHW8=Gwp0s?n5b$iaRI zw!I;%%o5Tm#+;jr<4;*_*MLLGxXJ&n#voPf*QBw4#~} zvi=;zt7wZ5uqvu%tVl`uo5bPCq@$9KGKmj!V&ZP<>r|#evB7E?QG8H^rfXgxMYj7* zfM04?JZzcmd~M3X|Xd~G}&$G;>6l3 zEsH4)-VQT$xJLk(yVKH;;^*!*jXQ;PaOa5#anQ1y%9_U+13UFUMM;viV>3DucPAAL zN|)p9u-6nYsW4GJbN3%%uc5)zAG!M;*h!Sl^T0J2IYy_;vf_kGJa;I#FiF9Qoe?h| z?!<2GsfD;{%;Q)GdmRBcfSu}xI=$1*jxR@j!6@?>3@$#i5>i#7z zE3rX9gd>+wGjQ}nfoQaYP?e~EN)W+^-0dNR;5|MbN8fNUN~$FdXWjUYsXfIf{X+|Z z`_I7P8Vn-OA6q^Fgy?wrO+;C>5z3E5Rt*Kb2zF{u-2W%AllVISa;4MRX3~IF{m+D7 zYJWWZQrNu&{0;2X{t9dc%9IkHW@BxkYJ?LDL*suC3~fbcS+g)k%9V-JK{&^mPD2x^ z8)N#^VM@x1r}Bl8G=?Xm*=(X}MkQjaRSBkR*4$N!Lfj-)G~k!!fjRgsieL7pJ9xkK zAc(~&db9$Eh~!FzgFTKd2wM*UPvRFths5a)g`L_k(G3LxGpaQcvztsd5hYMdB}zjo z4os3uPBJ)X+M}a>UOG}%TdRRzny&=46)_4|DmI=r)i>pj{hjV{r87DU(Lvc!OV4D* zksnGm&1}x%#bim#P6N3(hK-9=X!=54p)!ZGNu}-+{8Bygyt4Q^3~{>AOO9WOTlyRR z%ED1wHdMw$hkUG0E()O-o>JBri=yQC8se9D7@j_Bg<>h#TnlVs>_#9A);WlWM5SgJ z8uvIRF)FotnX|&y9sEJaCeejowEde0jHQgkCr`~ZV2dY(N4g#bTFdOXVnIAxiYbxi zjpA=O$$b&=iu{Wl3kk2~(^=dfjmrTr9M^@N`Yy-RUudjmRcj!zI2bF8S2|?_oZ2Y; zjY7H<7Y|4Mm*UbX=Q8CzdUYu!t%rXxofe9JSK5y(u+&p=e#6L=YyLtUO%U!347Ke7 zgQbILw*=fyf>J8bBdNhtNupk&o!Hz-ZI$xY3GJN*aeGrY;9x0h>zJYjSxgu==t?2- z(~LR?S=#DavyXP%d@SPiLwpW%r0oo@<1=MMKtc{q_glta}?X^e$rVg z9V7FjN@v6Pg)MP9@CwZXd%RD&wh>%;e%m7*%CBB#LG5#q4h3hj$OEE$gpIm8G}BlI zcSuv-jVA)0bj6iR(s!Vj*6{hb($$X&@!Zw^h3;$mPsuB%_ie;O;&DEI^PXjw0XR?WIB36I#Bi*9pg22newkc97_g`)aEbamv|Un26?bk8E||6 zcAAqp{#n74H%xGuO>LSiV)#TZkq;W9HM!I^lRC#av8})a{8GQ>WyaesyS55CWh`6qHdYQ1<|I5uZ!>liNEl zV-S&L#ZELGYk$%;AC3wKSXt@YI2|hxuMURe#jq1!Zr|ok!dXG$5_QD>tN!l657oOo zugFbAwzK$EeI}cISGa1nAT0?&dWh*Z0K9G`e7xE9ZPEUxLXtFnsDkO4BDuP zi54TRu5q)b%stALEw2_C zPxX`}q=iUBkGMF`9)+fl9g@w|+r7__~-f*Q%!z<1u-<9Md>W z?VXP)A|I&qqXa`Lt%6&D--6;6bsbXP$)xV2w0_crkn^slLwTfrz|#p*Ftt!&UCvoK zgPeIzF&3!>vnEuN+%v1Y%5OTcbtLg|H1BdubxCveGwV*dFr`1@A)bliAs&XyI@mhi zphyMST0R=9a)%G0jD@DvI!z1mibmq`5f4K1L4kB+(eXWKLSw0q3(kEY3s$Urf_$S3@ z{sYg8d==u(KbR4N306(=R)Ja=O8Ouyf%rMdBn$RsOf^{0d}(#a^g}}VB?4?zhqMHP z0kK8NR+A1wMJgHju2a{i6{UP_o}zOil%d_fs7WFxLpPwxB`vIUNuo*Own?v8aE8TAUbvv8Q)m+(mY6_;wFY#SZN4b*j$O9>-o2ELgg zV~XwTB+*(x2SeivpYwPoZ*&DnQgFYV76pd4f7+rF*i_$qmBJ!RVh6r zKXmX#o;Ubm3bu0l-zm+%R~3q2L%b8amc+531c4vwfY-@+*on{J_<{ys0j4&?-T#A~ zFqzW4ru0&!S1Ub{g-&lu8x=;}xkMK%(iV=QgB!*!rjoCPWp=s0`l?sDt~My^ z7kLCw;^tGrb3`sj=y17gi3Eo@d1R~-Y0X|RwQ_{wrL)}~<5OtNzok5dVx{PwHKjZy zv{;xjc^7p_AuRL}p>B+mz&c9Q22ziBY0 z;<9zebP|=LjodHE8L0o0Uv>{W1d_O3I7A<5-y7q8Y0l2aFHQC4Zfr9nQwj7ubqr}S zP6fZLLfCC~k}^Rb##fr2<;ZFNq>I1to#%npk30{U+OgPpGQ-?2=lQ8@M8ElDSdCwg z_`AReVZ>^di~o6w$2=I1XPBVZt+c;FwGc_Vl;|X72;~qCJFO-3;&M*MQw!8(CCReh z=OI<8NgkMP1^b`5n-7q#NM~<_PR=9pM2HWnlPn(vdmb8<;^e)U?U%5HP+^D#ZT_Gk z_la`k$yjg!J=SgTLo$cwp;IYK9>Gha^Rz-IFGrpLQE0Nr*Cjj;eM&jvC(}UtZs-{D zxcHJN9R*s(yjWSiGFr+Fcz#-xauK$sP%`Q?5&x1(2deX+X+l2jO-%|7u2qW6H#|>$ zD(&r+(;Wqxh;DoP6DgLYvv4Q5%=6HkPgzq-ROjEqbm`)$PSPmQK|(nu;sSHPA-MmGG!NMIcZkNWLg4^#4^3*8!QLvVy7yq?x!@mOkXaHh3c3Q@qJ?eIRY#OfrCLm%XP3nlnmgqgEgr9Y*u7ltIsKf{S#bNRe`w0oH98yxXni6n@Gl|YTaeKW<=i%Op z_Onv6>54kM1BkPA+~Gw=RfnWhWv)VHszRnLOW|W?!K0r&O}5u43kYS6r~j>D*Z^9X z4EzH6b6%ib6gXHHh7iyYYjcuDzW^GRnDm(r5DbfIMr{j*-I zE}oqB3YmYT|04O%XOb-x0sXUIEdLI(IqtcHUPqzQKmCH~3(NuCFkvyh1RDAea$;92 zKksl*09R6|vN#JmM!rB_c!C8gRO*tHn#1LAqVhuiJTuPILp|ZSIIcobbrm$d`+{Zi zJnUUzh#EE6Nt*NmG(E{J%8I9j5XDGUb6>2@=EHUtnuyt;Vb}|lg9CG0mx zXDD8z&(hf8$V(TFh}odwdH0s6zvRog7mfs}&QMv##d)E8(+H9GhN6^hy^dyc59QE{ zv+PrSZ$J(uXo-dX@!O?-#5LYQQeFtQEo~DzsaT9e0JLSMDgLHi@ht!bWAv0oE5%ER(Kt>+2L-mG@qD1QnYz)R#Qo#@5lAk7*1(vWOCDXm;{FAHXPItulC;lw|q zO!!$#8ds={I1YoI_QALuMG4BzB62?iG+|PeFberkrKaFqKRuW|qmBin%~rwjKcy^4 zpsN%krV&d9Y0aW(bDkf`>F z7i;T$<%#hEWqtT9Cw6Xw`Z3iV$JE}b?vzq`CJhCb*RzA$ORk_^Vpn8)UL8Vqjgl)n zJez8OrXBHa^pto!B#?@p41MBbHdoUk{>p;aB-pzKG0$!;At zq;ebw0;3ZWISgj!Tk%29)S}}sF3P*vbef5W&Cl&ALDcvh2UI@qD~$^y2i{=en?xq% zD{lZKb5NKWI?uuzB*y4?oDChsW*@tN6$Qdn0_`VqNku%%td=G#UZ(EB%NM1dg_mt| zQ>_M5h9N6C$dVLofHrx$IX;7~8C6&w`Yc#A3My!Wv&PALn=v*FI(W)JRtJjVzfT0% z1OKF3LG{KC!bY2I8901rPOxAvkyI<_s_jU|(i~2FFUJ#L z*9mwE?5zYm4R-3=+&|6vbS8kYP?(6J)W_8~R6n1>-3LY)3ku9u!Q()|LG5DzPYH#p zRVY%+=ou*$7}TB;`anE}V{sT}ubwC^Ac#rlu+Y$AZAFG8NuvqvICF_^7ON-PDy#7iTHbE+0@OJq%z7%P`k?$AG8@nJT)dbF5SHA~#RX7~Fe{F1&ESXAy;9rw6r9`8-~rSYPu-7odWCy$n3qfkjkrAaqY*7q-l zuv)Hz$KMBjoZwy@hM(|Z&6+a?#1p`c`yU1Wq;E=jrV&EkE~Ej2jb^I9Z{V*A{FHB#O^usmaYr6YMp)z+ zDLNvWidUInc{^3)29=;`o%7$YyNr6*M-Ac4GV+ox^D$;BeT9 z59jU{*r{!CoCZ6cOX4_1gGnwV`X8#nqku_1z{8K$;5cBKf4F;Z*hz-K@m$zN`ql!I zjs|yM2fG;mdJXc#n9}o9 z|8u4LToKvlMYcrY?W@2A2DNlI^3E0%K2zj&NU|uZH;$=Y5>|5O5PiY)J9@QKsLU;b zR=6;&NV`D?jY|}o`U;E1-hpL?S5-q%>r))!)Sl=tUa4Ot=_1asL3M}SJwW3P$JBmA z%=@I0_kt5ExG9jKCpmb%Y>(pq@0OV>Y5J1309ezu&eHGMLM++KR*vg^DU)`TeeBY#uhX(!>=sh zD84Yvy_`*vmwWuH9KFEoSDPlEnTFzWq@pq_s_DkD9MgfMU_4Y5L-#dhI(`GYm1>28 zcXxIvuzLKTy|qp&6x`Wl)fsSpi#-E7)EPqtiL{&potb3Mxs`LOB|QZ&IV&r}7U<@N zm*kSO6L5qx%`Jl7PK(4lIOvZ24la7@#m!`JH+qKA;8<<;pLO)V>bCD z_<>~3}Oy2(fAXFv_1p~z=6SCvX5{3gM&D{y&+!sACVl`zOEvPz|9D^+l-(6hj zAQ&qZ7ngLaiy^_{jJ)zD4^ebhGIGYTR?LVP?y!Q*Y|h76q1r?NnmwS2znYY%uBa~(~9K%a$x41)2rh1xwb&XD!F?F0(XM}XDB5jid{A{C$) zpfNlB?Rod^%K0Dsh!B3S*JLnr(p2FjXqXgFnh$M zGw#VlL<(EPCV{7k_wqT{D$Di2e%l2n@pN?fdG=9}Dw4yF1oeqRwLCmCGE2VV{yEdd zIsh}kOGvoqZ29VWvCbeAq^$=z4V?-1&ZDq%FbpTrk<#QqDD5iGl*{k{;%K93AMz9h z#X6J>U3YB}!=x}e zR6Z|-{LXV_9dfZ?pP*eX{uig(kdcuJwcM9aHSWjFhweC*5E`s9%oNn_-uY0z^GM9M zy+O$&=kKOQFMG0&HBUJcFOM+F=&M#G>lpbDymqf*FMpQb{2TVOLa`3?)EatL=z{Av z|Inm(%eftXn~2b|_8sm5OV6bBu#H)pySOjxD4 zK7%=iN4y72Y_Zl9jc)M?#%+8w!V7)86{ha zC4)~?xI{_0pGnpVgqksXUsP5zvQKsSdU^)&bnY=8qNY@(tnj8*3=3lKs0Ok0hc$Dy&Vbrza3xy)mo-?lsQP1rgZ+FwJ#?S5Feme7+ zdBqx1j+~udeWrKeq-*|usnLZ|>wnh9fU4L|k1g^L?EX+$$m-zk&`;?m34V7DyG?=` zn=*qbHJ@(Ic}j~zZ^s3w=*uLBE(b$$Su(V)F5eKkPcZdhn!|X*kj$9m+$85Axhefp zIFb$1cP^KuUmhQYA$N+GWG0kWx(>R;FmJ=mf>{K!4rV({9?S`t^DsAH9>ToV0Q&+k zbzmC9xWlxCA-Omil6jNq>5S*YVN5V7FfaFBd10;P$`+e$ndT(iospT#?!sobrnnkO z;$d^OSY5EF4KOD98+{Xe5`29865ZGp(k=sG+Z0mj$T59eGA-P!#fSTwn=6Gp^Nb)fBZv2OWaq| zADg~-yEHH`J3S}UkkPDpf8twlw{Cyj^WR^-BL^YmTPdkU2Ow-=a|NXW5B3b37t0LW z(Uo!`r3ZW!V`#;g9=Y2)pvyLktnlo_r`Qp-=0$HXLu0-(HleEs`JXq@G5G+G;Aw zi`vAdqVfn>4m~^qcqxV~+QA?pjZ0dF5#lLXUqLqrqk^lu&YWSh;7L!c^O(jKIHAC$ zh@Yg+WGHU>}rn zBZ|(k)|1vBb}II$;msmD=ID!5o9kR;b@hi*i=eT^wtOF1bkK}S#TGQlDY~{oWyGn! zxeq;WYUvOn1YM332BweRJVPU47eU&fgUc_2gd%RL>B$0zP|VFpuVq7qg||>MjPce~ zlZ(M%_V72G%-&uGle>p+qMN$`+w}qN@CpSB7j;9_=BA7$kT_(TO{}rd{f{>EfQ5_Y zXXXyh)vr%uLIgeu+e?5p65`7xo+{R6xb+ye|A31*K( zqrZ=@yV=Vt(dcFL_wX?$nvDr=h&R)K=>+m(`F#b=yCzGK9<`t`nCxh*d@`>uHY25w zic|`XE6U)^GlsZ%>w0Sx0RAS9Vn3rK`cINZy(?q#$84jO@2|<^8-m4BpBWfY4NeiTn{l;V%mQCg07RJkwY-giTi?`+rO z>MQK!LNb$$n=X@>Y7@QIhY6!=XmGH;YkbG}XgpyN5-&ew0hXI&Ens`)x7r&Z9v!(gZ#>0k<*4%11n7+u(_p;X=8u72W(dlPBK zBb_$NNTt{N9+=ec;PQLMYVz0)n9W@&U@M_3%I;EzzlC4P^wmX8DM8e7dC|GDJtC0b!wms55er$d zylC%eNu_s4I#PE*l4|@NG&Jgg!`Oqrspc#*7d^&clVGR=YBG+S&J0 zFYZk_ytu)^x81j&{l3f>BV(=2-lwI52}`gm#S z%Fa799$R%^(RRsR^N}>~tWrD6G@Ga$e)f;4yvFIr{inAD?0WCPx1*LU{P3@whkqXH zRe%42_N$^lTFS|$C$MO0=9r$pDlcGq3QNRB;6{SGNrSrs>jd{68r%t(rUjl}go3XX znNg%pnchXK^qC|5+Vyaeu)jYl5?H=`vCFw3MZeY8k%pOD7VY(2y+RLa1yrf5Sc{u} zO=d4os@%L4^2@^XJPr+H952z}uQhn12LGhsPj$7EJGxyuRX1v34_kVVzK#>dvp$5+drZI_^@248P444=l z?oL?r|Bc3-u;{)cfz9kDGk1&@lROve@){~ zSaiRk!H+fm35))Vf>9I8m$2wwN`tFt{1X=azpim7EV|d$;HDb?ghl@?H132&cQ*}g z2Q0Sdwi@@23NGw;|1?3{?DaAOTn_0tqup}+nv$-3tyZp!(Q3`a?h!aayPvA?LvsOV zZnbP+ur)p1%+w8{q4$e}sNx6gad(CuSsYa24G>R2{UHLk&{#85gfDjg`UGnxE>%WK z$~UtKyIGlG={Pn-7C7knDLf^f5O9k@nRJ9W%93GLj?{(HV|TV5^!P^*=_^sV5WJCO z#AaJ=n9XiiKf*^SJ(5K{Z6w|qAa354iyNNP?6z>LH6sR3TJbE9OJ}H2rDF2|vK&wOYgJ zj5S2HOhYUv+m;(T7*|7Ok$3VzUqV1CWiFU5iZ|Ora9K8#$q*JNsB*)h5C^3XMivD~ zH>8>M%0=nnC>%-x3J_s*hAuNZ1BEWU7-HwoL#>IRKQgf!PBEb5(xWo1kOA0iky*)5 z;=^hKFSp@r*brrnp)%w&-qRl~(#X(wPYgO+oH3$EStiSh#BtsiJl0Z)y$C4 zh}f`>VR%k3R39E15!Wp=S|1x45*ORiKL$5~rzgdPz7ZE15gZy58jD2?RzXJjdlVd5 z(aSIvFEVDC2g{&4ctfj-!t_4!=eXEls{Kyv;gVD;AcEa3Hd3aOy##fOk}WtIiO1(4 zDm3CS7E{Dz#W{H+iSZ?ACVpufNFNmy9u};R4U3G>_3o={wi@4QOxcQGT43$iAPY2u zBT*ndV_jmRLW7arU>$VJPrwiH4_d!b(P7j$f{X6}Onb*^ zg!EA@w2XhqW z9L#l?2Qa0-!?6^YmM{S@kubes5@FI|a$w$qnG7=*W)aLvm>n>AFvnre!`y-?jXJCX zQxB#kj4wI!)6jSadcqf`&Vz4pRe^mc~HH)oV2hD4jlqF zN|)|&Mnbyp<&BrKNP`6a^hfnYeV%x}!p?uJ2f09~fi-%7t1pw*;k`4GcuTX9Hnnp< z7&jP>+bB3PECer!*+nMYJq_-(9)1ypTX0hp}9)Jr;=HJ7AM z;fMOf3jER-$j3of*z=Tcu&U!H^+A0mZs=pB$b-s_#!=3bJeN*)YT+FKf3t zv2EH2{3Zia|7Yzv83G|Urr-NNZ9+qT(`1exV1rgPy)NkC?arDO)8qdeY4t%m?iduQ zO>^7`nAGk$ZVXK04afC?bprke_0>|qM!3`11!f^L8+&FpWRQpb1#Yyy#k?fk7!OTG z!t^SIo!?^GgoUl4r{o`>sb_(%Z5TW8TOJbxjlmp;qjP%+xIJ(O0e=QeWBYLDbYydA zt3J+s`t(WYlh`M{PiCL2z?U-&Kmrx6(;fcgRN+8{wDc zSXzhDyh443)}XZRq_w6&(cj7f7eQ|&LwiMiX-L))mUVSeHP|^}T#x(?9W`PIj3Hvp zrJ$Jp&4x7G3T>io6r_Q4yCbdtwIFcnnl)65)lGR|3fE8|&M?H8g6%MBLoXq2$}1aV z%k6ZMx+2a2C=(j164{maq;H#O!38Bb$#lWJtji%K!!PxZ#xQ8k(pX>~o}O{1zQpkg zV4An>@#PRt?GWL5gs%fX)nO>U!$N#~eOlPOW+kJ3Om1Mi4NTa32Wdnit*W4p<_MBA z@b(c4dmN0jq`xz1yHs`sQ^g=@s6iKEvEjXf+-EnE>~t<7PtE;bi5IjI7@Nzw?7AQ1 znmPqmh`6P~jt~iWry&`GqmQyjhEo-4i>tcJi9KY$5b03uaJ&R|YJnVo1-mbdef>ci zE!cUWZE|+n*Y07Nv1#E%6xd!VrxUGPf z!Y;=w#!G)~{C`lV}XNwCo7f}ulDhZNPp3GnjL|Ps&BBtSmW2zGx z205k$3e^wCMbXxq0Q0;w04~hLt?J1XuprD+XeYXUDljfYlL2C{O!)v7V>1HTL(q7@nBJXn#pQTVcvg3e zn>Ba$@bvQb@%8f$FeDhUn{LPYpx}_uj)iRsq?SVKPh4^bmT!=mdZvSlUMxxPplt~? zd-%hR8F=@et<7}$nBcH5srEj3-*_VO)*1%Y%>G^>VJ4XmK}RM1XbsDXNtg2}bY=jP zQ5H^&Kf%J%IR*C4GT#4^YVLPp0_N8EZ3OC9BTrbjNc~}G@xyU>4F4jo3{36beejdD z%G9}B!3p3EWz=r4KB}-KqV`&4`D8;~;n=PsF32>{i(E!FX8wSDB!ey*iz>mOlA#M_ zujIf$r3eE9m9h$g>H<@uEOa-(VnF4gQVz)Mnt!pE+4q$`#twgAvKS(3tp13!NEk5$ zhWc5NC#!_ijd@376;t@k5*MasSL*q*lhh4qFGV9E8eUTTG~%INpUhB-V|LW^k16S= zpfhsDK2_bBgPA>#&a=aqBq~jkeOlQS8L*soQa3%~*M_~FSo5r1V3$VO+ zA!Th&O12Ug{g9z22I-Hx6Z`SM7NxL^P&ww}hh&cVUBpY%EytXL{$JBlrvmB&I8#ni z4(gA5N~HLyIz&uzGmaO)PTVZx;0sLzn1bD_++QC zm({=pxdn4u|#bTyeo40hgsYr`M02O<_(@q+iZ~azz&*}Fb1em}x7aZOn=&*>!;i{r%P%01$b?jZ zDW<;Y-hHsTxBntr^UvImSN0^HxnJ(EJ+qrFl+DWV)53ev>5yhman1U5zT_GhxNYWhzyxTB}~E5{lQlk86~# z`C94fk1M}kzjhU97!`9WTc=!wlEsV49-iU;O7kr1GgDPdStqbnjQob8ol#wL{41Jc zsDMd@tAT+30w$J=b$nWsC17bTxZi+#69G?v-5F+Oj{&XI-ivB-ujXgh)0a#05R|1MA6>yb9mlcOwwWdXjt@)iBi^u_Ti*lE?p@lp*w4NP%zcfw-$ z-+;yNhZT$;br>IpauV@yU<{Xfo6%xX#;L*;R5qG?E>D;Vdx7>BEDT}c^WNohM`FY-Wrmt#`%B3#&vu#+%Y8e_Tar|z!P za@o!uNS#kPNeM`+E@&VYoa08oH3YmFcIxM^iYAa5PXY~UgC{@}jd6i6L{s6}p(j~& zu+FSMN1c{e&wnBvlHxq?7A+5V4`JHFa9khdM(lTI^I*0+Zwtd>2)iN5ZD@rpz5?2& zvRFpiwa>_P`WEao@2tn_JOaP`L|tdtX^{pEI@;@l(jVWr0m6PCzCyf&S3)dl*=cl3 z2K+BXoFoO^gx{+8<ZCc+%x+DpYh9Nqd7q%q1Pzj7$yCdAHZsqCdMSen3*N%XYT_3ysj*8 z*Ck~eu znjZGxa5=dR_aQ*UC+}Xrg2GC$WH3gcX|h{@&PC@#%Q){=*y6Pqlc~*66Y7XHh&dD6 z3^}utXJG;{Qib#<>{%JQa&6v z2d3$lV_tq7d&8Yp5F)N3-~f#~VbMKM<4%~m0gtb>#+@(?{oK8c#+@*^d-I~gX)#Sv z>DY;EvFEb7`=*0CXH3x`ebmkX3&u?+Jbzg$=HmU zmW(X71oV1qj&khWdR{)|G7bfyLq0Wq0(Z?=Z1EYMITZDGWQCOv!ufaL#*a2ZO?4$p01j* zGRbb~%ks&(FOV*=^c-)3y_SH9ZEPsuZLrh0$^CDKy@3Yn1WarxwI}YM*eek?25t`b z7<#k6l-q%Bf|qck{LgN+(&(cl3ZoT|ZJV}PSMj??=+ut?7q4L%24UhscjgD+|DWevWf z!B;i-A7C;4YrwR;Q zlg?h1>-R7G5(}od(Y=b9=$4Z7mwdTCcUR*Lgd#rtw}Lyhi&xrTlteLK>V_lL&yXh3 z+S{I|GCKU(^HoM#4?k2NI~BizyPCJ7a3j7%^dshvMcTJjnex|UUSW6{9La~B(x&+6 zuQ%NN5f6!>ro#{`%kc)-Lj=4Wc53t7eI@MFM?_5hpW`*Ki~b3das+qZ4tpaFrZ&Od zcfejzz&l|_7F72iGD9rLsf;Cnk5j*r7m<NV`$Y59zuFC+3N;NHgIe!M`sWF5{P!_UZ>L`u7K>{=m}<0M-eZ z>#cG3_HY;LtOGDDC!rHWPrqd5;-*unh1}8;u#MRnT&_wAsffeu7&P_v|s)S-i61r6?vm|0msLIss1_s4Y;19 z-+dOVRR~!n{bkiQ>Kwi`q3tU6mrc_gnC7`Tk-di$lj{CeLfSj2gftA>YNv5m!*}GH z#c*7;{Y|zO`NfbEElCegmzHXjDNTHZ?IbrkhOV!)QIsY`H>KI@ATY=MdZ0M|?6Vl5J!r;>7N?$}#6Y6ZHh;GB05zfA=2>mk*7`QV+v1ElOz+dj+&*;N3enQVU2*wc^zY)-Q(L9>&GA^+-39zM?8IzDn=|N5Ka)-_1l{0_>;$^uo$m3$8yZF~j3PaC(F@(A zL&|`3D;>t(o)k=RM`-zeQjEo<3JAVcQCv3Zm_G^-6%!PTDU-c+VRO8F%UwMOrQWrr z>;mu>?HLsp z#4fid`sBdWeYi6#8A0^)DqAEw5x^Q`t-Er+_z=S*jYS-PqQQ$b_$v+mT7%bV@CFUu zufeA@_)iVK0!;0Z(|19Gf7AG5)c06V46aXRe8XmgwaJI(bRBPyoB&+%|z z$`8jQVW)*1$1`CU)0+cKb=(8&G0DfUQ`8-c10x%c=$zN9DhPF;mD^n0LwW3=ai8WB zn(!Xumw%_l0@2B_UV~}xi}KCgLo_%UnC1}fo&`Il!*LGmG-q*~0y_y{Ii|KtZRPp- zn-IDzjf#|w+iYi~6=VA$x5Oggk(1O>i2n!JiJ#!b+bJk!NV4AbJ|MtLQc@h@m>!1m**I-(-is1=U zcr-o-ev*ksalr*9Z#8W?yhnmjPD>9>-0{GEf;*`Ki?oqyFZD4Vp44>-^R(IKn&3|A zyR8LmQT!|W|GHS2W7GxFQ&YH#4=SUqqQOptbc}(77aw_AQxR6IC&I*Uy{c};$GeTl zVLzl32}Ave<4o9z7vz}66B0gf{4?xL1^g52m0?~1y$a*)hWijw@DKrRlT9}!V{|Yk zXX6%?c%~kY=8$8^C4mGTf{=G3IrGOv6sbijF?}j3<61BrlTeHV)UT3mt9-UjYE-lm z)7$Ea^r#(j{3h(wZaF61AsX9NEdp^*nY2$KMoh#bH|!c6A>1`J94TZQQsuqiryn~H z)P-XW1EyFmQgt8XipiTa9Fq{7 z#!rqTG`MeZ+=VK*4+W+^nva-9jbj-6(3mJ;TPG?mrgPAnv7s^X?heSq0eLzgF9+o9 zfP5T~uLJUPK>iLWzyWz^h;gLG!;u^hM|wOQ3G#5H$itB&4@a6j9EtL9q{`EgDo;nM zJRPa>bfn7Dkt$C|syrR3@^qxi(~&AqN2YDlbQ> zyd0_Wa-_=Jkt%OTs=OVk@^+-k+mR}7N2pCraiq$}kt!cYs(c)&@^Pff*O4k;N2+`ssq%HC%GZ%9Uq`BZ9jWqlq{`QkDqlyc z{2ZzBbEL}8kt#n&s{9BQzp}yM%Ro6Ca{OW8NO4D-=1)azhXsg(rM@=tC&H2a>~&XSX;C>KPK&9Y1J8xC;yxeNYTR zMyor1coK40Ij9^`4%jV{;tY@J943>_Ep$PfOfT6OwWwqs8@H-7-(&WRt%IM~0wBMd@)-93wxtb7*kan6OUp&aEo>>;sA=HcarqvFZy%QJn;b$5N38 z$FPErjPeG66E%PQ5IOjvE{7lLZTO*%h9B0)c;a%6$n87c!=D1EfP$%j0&@`HE&{oQ zPzQbrC6GBbDkRQo#5l)kUO$ z@kZQ*aYiZ-%Ybo3s*6|#j3ZKA#4=#qkm@3q0pog2Tx`<`K zcpue8ECa^(s4ij|FrJ6IFpftBVi_=QM|Ba)fN?sii&zGX%TZm#GGH7IcVYaE3dAyC zyp8H2mI32yFd*y0!!YjA5b^x78QOVeS3J_502W65aos-dTg}YvucN0~WRVT7@OP2# zVa4{btS701(4~@O#1f=5lox4D`50?4{LjwhHNnVhyR zb}&9rT#C}wmssCWTzn(JvDK)@<)$V_{SB#o)=*INaPR8{9 z!&kMt{QD1o|I`6-He6!#Sd14A+*`lat>VJHl_lbzhKRVv-Vu{Y@$uIz$o0OJm$hv^2> z9VQVb17dscGB-d}1O6(fZ ziwH~cR0F2EtA$^xU;3lErFf%ZjL&}*zOW*e=Q-XYjR&0xpo`CFO$0{aZXe6haXl~R9{D7lp!dJ zUdG7nPIu`wkKxx4HG_NoYE;kqjbHAN%3h+YZKMhK=LKpx+>nbsBX;iT<&`P!dZr6} z@IO1a!SCgihJf05&^Q!QB4`ZnoVt~!J% z_j)C%fe>~Z!cq^=hE*;nq03@yxUv~~J-9fAlos%Y7_M|SQCyu7mxmD7NhK~$=Vf5I z73#lPh7un&s`#3&#lP!(Zr}X_sV7Ui0V1zH_N` zeBr%9VwW$ZhNX-9 z?W;cUuZpR0HTMsR(wEFO3xlhlY+5&TbD95Y|C7C{Q(W&0qx8G#TRwJKV_7@3Xsut{_w7{dw(Ixt zGa8T1xN#-5gXfkTA3t34-ib<81H9aJ95~W!&XD5Ygs$APwQPJf3I!QxlO~WEKI9?!_aNZpnt=@j5yLSyK|J=_|T0l&8w~sd$hWf zUwBBffO;EhpZn}D{lQLG*EiquVa>yff30(+Xv*}Q_%EiX#BOvg*{I=>+uz?w80YV4 zdB-VtYlPd6k6Pufo>O6}X=KWd?mHW7ySB;mr`KyD|JI4WQk~y5 z{C@hug16iB?5Ufzep;1N=6dB4zpS+R>&^Y<*8YA&j#rP*jGvajv39Y0M7et{iXXE? zmz-B^&f4W0*O&e7-+%j$ajn&H&W8_U^^IrDc{eSp;ncT2TTk zrud@^?YkC#{4h4+i+yWPolE`j>gF{oCLN5J9aC~!?H`XF`(i=2sQoiX<`zAYG9>KO z`GDLRdAC1!bhqN!Z*_Zr@)|v^Uirg&?hgv?{NJ&fW$)@|cKV_0CvO!y_jmtaB;&F# z&u^@^w9M7tKU*GO!F!|8{Bb9LYrkouriAxv(&l^LBwN4IV;-!y<>s|D!DnS=gR`cV zLwZcT@mJNZ9(8*h{Kt8xKD|+^^;gQpoS689r?upS`}6*r{b>HWoeN8y+;^^Kqm!fG zZEhYuZu;+SyW2|r)^o+iHx^ckYIE_*_w%>JG;p~eG@-;`&z~pjEB;!1&=*mCW8ObG zKho&eqQ;WOgI3Lbv(>Mgrd>A{-*M*H@~WHthfKb@XLZwAi)#M6tlZZJ_Dn6iEBc+F zO@G{KUV3FtNYaEo)1BHi2s)N?q`haC-=*>&tatkMsDH`!sQ|1Tjxr`*xHTX&ns7|#?K3;1#g*OW8t;4Uc#eT1cU(eQi!wfmrS zxeK-GcG$k#I{D29Q!g9lc^vxdyDsaS&8hFx_4K*Ehl46#Oe}q9^gDyjO$;^pd zHnYs*Z_Jg0KJcs*a%KF<$opG-7wue{?(+A~?|gpjx6TI|-{_KY3ea@tbTtDs4+1kxZKnxGpBd1zVOVN zqPDPIuU#mc`I}+c^()cyPjr~@u%G*XAE(D`Z89pc(#ZCvehqj0GBUpM5ATlK>058} zk#EkN4)fkKDWypX=fAhEzctt;Kzh?Kz%6u2?`wIpHtgB%_2u<;?@gN4dYEnAzh*HF)N~~{a1RyvYoZ9n|xX>uuR!I-FD&FfN%2-O#Nfg z>Md>lNR6)ee$}G)KfV2^>5@f<8z=chHk#lzXZF!;F@tm)Ywusuti$Wc71qVC`F-gp z-z=?t*HWv_)LL!&et4&2;8(x)NNsp+=AS+*M||G#;LW&0W8G@6E4HfGZ$Azlz4hC5 z|86>4>rROuVh8=~KPT4dlc3)7N|fCE`k=K}OU`|5#g1cs?!#9)*N&go>X@%b6L(v! zGp+KD?!44-ffU)NvvKL(;j?mX?Hj%>G`-o~1Iv8>n3Hs`Tx1FNW9_?qu+G}+{Z+ko zZ7~e~HR_|c)|E(}{okL#U$*=5?^4$$4r=q>-ZCenj=Vp}yI*4FXIUj$kwr~c zUmH~Yw_k2-doTU7?MuWtyfAq+W z9?~~CJ;S&C^-;Q8i_gcU^xaVF*TdhGE&bEBAC2>iv}^2fXL3gE9d~n5EAIYw%c|7R z=h)_?#13uT=A)dR3mXUgFl~fS@30F^!q2^z(ZlVnwED|ZPeyFZee~wFLn|&#JnB>L z#)Ws?yJWtX{b0HG8@W?b3~#Rp@N5yD`OX`aj>g=`I$34^-m(XW4E*x$!qGLye>-Pe z<`tjCkv01l342#xG^Q#;0#Gjx1-n=sv)^7Oc z+?7@9=62uo{?VVu{&C^E*8Wo-z1PyZzQw6YOK<#kvYU6zvP9&(+C zROmmy+V|JX>{{8!wY~eaJN=4$(EfsNuY3EtjazN>e>CgU_bVQ#duqnF6$f2iIAg}) zexvW5S>AhX^X~#f=C9kj_^?qqpeOhrHS5 z@u}}W*cjaO;a9IW95F3y=_ub{E)IY8%(~ddlyv(?>L%m%9D0V&DadrWUF8FK;!JV zsULM+uyX7D$ZjF!u3tLQ#qYO)+o~8!wy$ft==^=1z2j}GW=>rCS%*DeEWcqn*n4N@ z?SZYb|GZHuyw<>|gx2-y{X4PB)?0ID1!cb#yuOL0()c2AEk57h66{lGn?}={)$Uop zX!Yt%26<*JF1BdV;+Q%6hy7PCq+L>YovMpZWTcF|>9lCaz}G6cXF568+ITScL^x1ULz!FvhJHDlc$gU`Q)0I zal6~PM*N+!*?awj<`+thO~18uxbvuK=Wlzio3rfhl(N#j*=?O_7)&kp4r+g+$e{h# zOB^|S{=fK%&3jBeFu2c;*SFuhKg7Ig>h(CkU*{OcZ+@fha@3z=DSUy+$Tbx}w5 zPcIRDbHs>}$9^ia;@0K75t}*(K0bbC$Q$1*FL`R`&|k~CRBRCa!Qy2#mmf_&P^xHB z_YWpE_O&I2RJvNV=NGH0&-Ajb|0nPA6x)M+)8DStWI(OkTkp-hY@>X{m(ZT zv`sfRW$v2SFWQqnj=ICit%n!5iMnX>j?GZp*wSu~{Q$WdC>RldBiQ{won# zym|1)W_x`1#-89aO^S)K%Z@|8BUlbob6W z$>*k2TkBo4^cP!C+~{}Ua>-itGv5w;JLvNcN6LpR|7P8;9phG1D`Pt_w9eFJDWlWt zB^ob$dUa*&)EVba^pU2t+BC)Q(ML7Q9{OVQ#m>vt{&Uy3;*T*IRg-@CXiU=%_iW#V z%xGEa1LutTB^G!8tlG%zl3jcFZM=10PwQ`ojrr{U$wgBSE{z|ycgVKg6<{mn>W8Mf_F?(2D^j;;Qo6`Re2b}ZaxE)q4i z_x&)lcZUyaW>@~@(CGQnRi9sex&L5&k1GNF{+(8C$nd4VeAJ;?m7C4ej;}pFv)aTv z+0vfFKN@_t{;kjY)aSp_|FrsIPWOF@DL2nnI=H!fj%p4kf16ijej!{Q8H{^~RMOGVBuYSttHoSL>s|X^pmS^9%oZ`Gv)Gie>%&w`E_8tEJo5 zANBbC5<&l*+dHjv&1xfmp7$u$x~2Tch~aA|3^|=@n76URjq@Luy7ig+{;!*zseP{2 zqmx6=8<%u+4sh+bZOf*$9V}i8y~eF+JojpoymjV1v6p`v`grwu{iPChy}t;k|8bK8 z6K?EGJNs|a*E3(6T}8huar4CC|4MaM%?meqd=m0^ug5c|PhB@}?3$7XtLH56`>L!l zXZNkjpMCi5=VN~x9DX8ma7cL0GN&&;Jd!wJZ0x#qH%?92STfvvB=t`B<6rL2Y;|LZ zexlJ7Tg$qCbKF0b-q^h-%~HL6XkxoYAJ?c~*Jon4D^kla%RkG^(*_MMH{h!t-v+Fo z+Mqp0Be(T^cw&uj)$cuO z?JGL2@BUghr#{?trp=t)eqZyZnK5q3ec<`k|ZU-!$8+Yt|yG(F${m$bbJ}4bAHm`lL zusd#Vd{}IUyVIok3)k;`d!h5eq9cap{S6}PG#&r{q{hR&n{MyaB zj2Q0HZTb9NgHz@X*8j9OX_xcNO#iu`txLN$d1COF`y0%zjR!k-OpKp=dibY5jvQF} z)*lrzzZo-SQ`NtsBDZHwJ?Uz$kkhsC2RByxg?|?OM~MHhPG|1E+u>aN&w;NEPPzYC zk$<{wC=zn1dGyrkx0eKMnl$(g_bGP{Hr_mG=h(ZC>Mi@U@q+gIkNE_xJK6o6>C?Pp zPX5!)w_e5__rFJ+t7HB(rQ@lykIWC2%zALD);=lc=+M=rO9$>O`k;F7v)cumb3fM6W#URzPYA3)9&2fQtQ}bb8xY>FZ}mQX>GVAJ zUpB3%=zXNrZ(}lQ*BUgW&#qug>#42Mm+b#E2yyfP6 z`%3dZscmKt9x}&MKhM@XV&jmXr2}2QJ-GYhM?(TGd+R0-zrJSrz#7YL#!on7X!XXr z0e37GOE0HIb@U5{E@?E{^{3Z%UfcD{wrftm_8k{pEA5ZEZ$(sIGUmILgU0)LY-!v3 z(24Uwmm=4ls@yJh_4@iv$1d||dL=ty-m-N^1_Uh0S~u=^nZtWNoHpRCH`nR+=I*NZ z;jJE;(1S9-*ecHa$%xmeFQXY|NlLX55U#+e8I*ni^9_9Lc6ws^n6-&3kQ zuCighDKy@GjouzSBR$8`g}UJ;mdXd+pcVU*)#GdM8t}MT`H~I6a{AZQb?@8!Ml% zMBJ$G-@MO`UOy95cUbuU0V6=%zd7DDCz53UpVH?M99u&Qw`TGRJCa~L$0e4k%z=I= z;t^NX7rcZ~-PUO)R3DY{iz3Xzy#b(<@6BgxU?*SO5p~5{mC!OEm2qxuhBL`>Q$dS~Vk;px$Di#hK?&{i{6~GVf|3kn`^gc);40mY$fR-uwSm0Hel0q zOPjJceqs`R(f&c=lXTTkRpc19HjP|sHfZN$j=~f%KFS*lK2Ns;CKInV{J>ke7z#G) zeQ{mKY2~Ca0W@?HH_sn{ke}R>TegbVqJf{fZxe(R)!5@KgAS(%W#HQZoBWc8APqxC zph& z>xTM;B?Upm-eYVT6(w;d%vEG%b5e6lhP|}#u-p1LXJ_vZKh~_e-F&KwN%%FMztc6Uv~ouMv# z{BVLsV4$^FwsRp<)=)u_McRKH)Pht`s+X5syuCE_YLxNiGscQxc4^{Jz2<$d6>w8I zmK-k4ZQM72@Nwxb>@RsF77xffN%r)DW}}qS&YW7Nsb@|AuXHi1K5{eOYLqZ}B=Oa~QT}R54A!8->S_K!p$!tXTjSs4Vs^c1xYs z!JkAbWz-pOn~x1&O$sS~23*R{DormN1#DNnWOjpEg&X4cDL%jb7!PSg+)=kb#AW%@ zfIW~FO1Yvga)b-nO*?g-AI$H`lC#8*QVHmM?$hq-_hy7W{c48?5j+sDHTWV~F283= zC2k}PwialYzsa&T*8IaCJ4NI>o(#dqeddm4Cor}d!9s@E@H8}FZ_T(3pi^XHpe$Me z*2E;Ib_fWv6KX#aLG}-OIEv*| zJ3a^0>5R}!xcf$U{ASW}?wqZ=DJNN+UMSl4(S#X&bO0n{sQoY33qfLoQbQxvy)vw* zaUsSow1Gvuo6KfA=A1^EDZJv9cz;3oo{aatHEB5jA8tSgS{kN;L0KWyrC%3{1#g1y z5MCOzlMc7W?d@lfiuDHQ9$4XAWO0X7F7e1h2|V+{W@wR{fg=p#i>0eul>_-SncU8w zjhgBwUzEp7?I;KPW?j(N$2c|<@eqLohF**~i^r@s3}eIK7-?GD zdx-gBiP{E0UBBW1_H=yFwuo05?x2%9=3&v>=B#(8`WH>pYr4|Sk_ML? z@sZEwU;SiY(C?;Gyfd&6KC&pXCX?WKtyW~0Odc@95?A;BI?gvia0CdYMe9?y%;K;+ z7aB(y@GAI&#%p%vPf=aq@c1v7Zkp^TE3Vu^KfI(6d+u>-~SZm^PxD%SY zy1^#+slkTx{6fImq>06ZL4;R(F8|&xGH}_NTrGG8>j3i8LSm9 zEp}v*vs^%BrMo9pfGstnlkR+Io{qew!z;{yW5GaDxLF5Fi?4yJ4FqWycuDN~8`U>6 zxdTk}{-+tI)rwLAgvTZs#$yW}7LDZks+j#xvp{LTE-WbnBTveXeY$V6a?V#uyrK68 zL=DhSx^3aVCN^5EDA{Cy`#}~{YNJ$pGX@w__slYN;NI)vtE3nBQpFI4WHd1koVGl_ z$3A*r4Ly6S$oOVuu{xS`cZ~dTTlPdv``q53&a{7Er>}kh&}Fei z{L%xtdvF~%qnV*+aBPPXROOthQddtuj{^DHQPxe{x`CSoO*eri1L?Qd;HNYM@fj-P zmZxreZ8WD3Tr2&=#cj+T97dYrL|P|BiufxH+o%&~PZwYo9=+%N(7M;&Jmwt5mUr2Zvj9E&)Sk&c7qb#zqE1(}P^*P9RBG&4)xMpUar)?u$ez7Ale znv~|}Ne388;QBqJ%=E3sn7yywaJYCSNQTufioh0cW_03xL{h1mw?CFs9>9Aa4JZH+ ze(Kb>f|uJE-@JXz`7GgsS&+2E^xy=>i!t+)18H$~Vd5F8rNbMb5vUZLbsWF1BVU{A zS}+55n?Te@*NWDuXvHtzmBNBHTi)=W!jJajK1FiPZcf)qr&ca27YuA?jnW=J<@V@X zgYX*5-~|2Po`C?b!QVz`{CNG;HTNjxFlMML4>B|txvuF?jKqVyj1Jj8THNXWj9r)(n(HNWq-q`OriVYp-V zZ!Fn=KCMffVMrW&L)i0UuUGXiF4@sEjj)vF0!4yz-uM#-Pp{>;2tr=|FQH=U-{SAf z9;z$UQ`bX?VW?hY5&MNrqei8EP9z<0@S zeBjf(MH98)QsSc&4JL?`J*@9p{Cdx8XoxCYliT<@<@k_km9b^lueNe$fgu{bMsySK z5|O-Qcw4qTVV-P_<0%|lXdQ*CSbx3k+-DX^(Ig(%g8NurYif*qRx$M%jzA}xObgxq3wr4i#51Y-gu@O0vnK~G-Y->$` z*aw6iv<(15CNhTgZ>oT%7X!5g%KjRqQf<>{^o8Js^v32E?2*XM>Go#wkA>#J0+HFt35;ZLn-2h zc72K?b5#=!aN7)FIQit94rR+bKx@=Vl?{C*u^S(Dv+fJ_x&W&FlX0#|GIE+LG{7OC z6j2|dd1m-RV65y2;~T3M_e!BvPwx$+#%D_D{w-T}G+ij5JI(JEKAqn`b#>}uty+9V zad~CD+0gO7ed&TFjoc4BD`IE`tFU!(6HLa_xj1Mrnhl9sd8+Wj%x8a+bBjbWFRBQ{ zAmt*UmkP>ZSKQcCkOdLHpGP0&tO9Il6uEb1F%&bUoE5NFexVaq38VN&^CmVbgYC`; z@>fo8n)D1i*ho}{ovA~z0!NM<6(s(`G5#n{vJK=Wcs7bAe7L)7=0rI)$TbNSU!X#l zP;AeVW5zEez?~_0Y`?PhS`ryqgfxV=--}pCIwOLK=2rK^aH9G32|@5bv$>PF9Zyn6!z#yd{gkH)Ei1b4Yw{^ z0Px^i&F$;f2IW_F)!@ENn_y4C_i*Y^`jilE?|s11xtr43192Sf)PQtf9pOts-7{Zar|biHPiOX@_*_ENV+}qs5&k!h4@KZ7^5&+ za~I(&CPs+IKuoc`-4!;)hq?zX+wbwrsv!L&68f9|5czpiT&n!Uh*b>z6%*|+$~s^s zFG!%EGW!<1g!2)>cyk3%;g2XQ)UPP8cdS5R4D#@qd#k%9 zzKGizy-wX1laXbmZJ3a$!u$LEeQxd|g$n6+n(vVk)+XWn6q4!nuk~lTXCM}$0$X0~ zD2r~|!XmLdGQjDcCr}Xq1VT$A8pO_yva(T9P1^HV+V5KV>I(0X-~dh7cGz?y5O;2C z367j>AFaLa@l=|cXZdM@nR(zkZ&E{c9sV1@ePh^0hxBY60=jw;aKSQLOKac-=YFHk zL>88l)|9Okrb8=c*8fz|6Vp(FXGDH)=`WYFZf}Xj!seiFK8uprLijfTc;0imrPQ8V zhqSg6wfFKsh4BMt7$W-B*YZ%_b@Cy5@$&#)52&dhAqZVyHQi1P)!W_oV>hC+s~J-}+)8M7SrB%N|x! zG5L@E6~L)b4>P|=671NN3H9slLy*lM`}2ccTF;Dh4O5);`>vFc2p^Nh9L=BV`HcQ? zd_CsVr2eGHci2!agW}7jp&JWMvONQAAHWCH+tSy!KRt*FDhN0I4fyELE{g0SQB^mh zwhfEZ6IE6gqWpbx8C7uMYK~#ny!9q|I)7^0Ic6Qwmi_J+a=Ia%DKEFV7$+s6APuO$ zQ?XjVx*-@`aYhc$O=Q;Mnhj*_A?E|I7(*-<&MVw7ccA6O}8av|;!Of{MVGqGH(%PkgXsbPk?{*}|a z9$W$C8pdep?8Q~IF@r{2n(NY79Q$y3t#*Htg7w|2fH(`w*0P;=?R_`=ZjA+h4u^(f zY>0+{ez`EXh_e<%llHo4=C7H2kMML|c~X$)lQvP#r3%nysenP23pBhh8i<74sf4E6 z8)8X%@DGu3bHPTi~A>ZIm?%LB21HiZZv(8V< z2C!G5;{P%h7jQ^*VbiN0@33|&6?xA_O~#}e5JHrnTR!YBsB56k#uIDL+a=>M2%)pd zMAcBs$%4)GbF)LUmAT2r+`G@R(`qH0%UDxe7ibMrRJPSf#vlSf~olo*1t8Xc5Xxe>B~UhhV*JL-U_} zBSQ%)M$!A=B6X7e?qbC`E#-lIS4Npo#TbDE0(6CWnfhrWR}(y$vbHBe|BN zZ5_byh;%TEf@6pm%6F9IUjbS9Z#$Sxn*Q=h0X1&~-*i-diI^{VGSjLwFHmA)jAHij&aNM}k$MGNz zQLIHAQ!;J4IfSk;Ua5)X(Yti(#oqDeqMkw}{+nfxCgJx0`yNwJ;)k}nbjQR#yL)r& z4H@i*WwUD;o<2N36#2v${U4BU};M=S1+XbCI zl)EM7!g!CLdbf8WOMJV6JZZozCmOR{JkLh3b8*e}x=*Unkeh~j=DU9TIA03LLj{wfjX`suHAUz*cffr-){F&KNr&t_UMQF%Rqw1@1ncVB3Ei==Q9eQYKRN zoPbAx81U4uhD_r|IU~KnqtUOT%YhV(lw@jm`}hhCcMC5bH*vP?PZB-gF~%xw;!(u~ zUDpr!uFrfq#g+twLwW9}-B?Oogo{F$SmHN4mZ<4{L%WNeisGpP-Y(V)v#+r6S*6Mm zba$K-Xm~M)<+Z}Ny@FOyYR;WPm${N7%y=O06gu~x&pN^-LY3shtHh$;KxR$q`CO^( z&UR4<#bKvd@^&U0C&2nppOGs+JOjD<=)sN;GU_@&X?SN)U}Lf0FU0-n1t1v*7GiBH zRV}t|DNl!qQ%NG_YpYCFw8!>n?-$O)0DYCjE*E}&Lue+&IU`3@(qOA-v|&;E)va;J zF#VJ@%&>os)buBJ^u=f z=%|^dQAa&GVT@y-_US6ol@#(YRJ;*2-J(mzrE&q8R#`GFRxcKKvD30?6fd1i^o5Sy zZoH{#+x}Ci=@&owd)eTdLgz{Uk5+UK#d82mA$6dvx{tsytczEj116ZBXGSOdU7r80 z(5c}N^miaK`FR}2NuHx};nVDti$`_RHt#-|mmD3m*Stz{o_^i$25zqwLiucjjX-E` zt93q<4fw9eZjD_*3$3m`mn2;S+`dUa+b!LoxG(C9E?A8u^B@45+w&5vNn-s171OcvAWmeHu0jG;Uf8(0t_rR?P^Y zLb%R*`;g@WXvu^8@@6+k(4J&MSjbc+WyhHN6qOk!{04}D0#+wC;fC56oj&gW48$p? z=EWgdQh@2gw%Z4-EzbqKnUtup03vG&3*I1OCh`GWi|zZ8pc0uGgQC(gRb(sL56$%5PzTa4msIaf0iCYO-q`QST)J2Rc&!2ja#Cg zDrNA2Af2hG8}@+WC#>D@WW>oW6Z)C4#7ft0>V34bmICK$dFxg_0^hhCAQIo6f}Dwl zNLZCmWA@D!A7#Ab+IVhq!lv6?Q{hT=e4NI=I6ZJcI{luSYSvW~X0ORGE!ECTB)1cq zcxLa{7H&#$o4CFJyUw?B30nZ~A?;xivTb&_L2a}Gyh9=C4;F{mVTuQ|?$?aNm! zUgBv*6M2^A)_oJp63cz7UThz24zR-gT7I*(S5wsG(YUW@Y&D|OMTyG1gbQ5gKD3Fs zzom+Q_>JCxSP#c|FlP_N7-DpOdbz)nqzD${A;1VvHrXzAnZgs8UbFY(xs%F`=#|TI zz(x8HQq1;oY9%#hx<#VT_H|(ZSmu>hU<3>=Db>UnKpOvnx(6qJAN|)s9#SHaB zNihtz-U7Q|KV=9sDJNgrao^N6JVa(&&qS6{{!$*F<@35HAX(oQ28}MhZ78#d^2!%k z%hsn7RE-+1awfafhwus-?}yphY^z$qxqBCWBIrcTCzS?>ddvkK5_RqAsm@-J?7J)< z8T*n_5iS)1CYwv!#VbO!HwZr}{%X;s(5K8@ee9wbx0 zw;h^N?_6=veVfL)rbot)j_p)>#g)_^E?Y$f1$33tieux3uGmLUh^@dt@mwDFNnYZX zDjv>{nufv}G+%Vn*Q8p}*btfZHwh+!SE!ALI1M4I2j;7fL}8P))SH;Pq644zkYdL; z*QYv;WTqs`xt`|#zwg)a+sGL%r5a#$`DILdm7eF3 zG>8qck(TM1hxBw$hLMC!#{EOhJ$|OLQF)*1gdAGIBS)nGr6|QKi_CRA2 zS+RCHT0?t%Yd2jKXIoj$;;n42p?mX&By(>L&KHII=Oc+f$+zbFUVh})N^)#*tyGH) zsE+%7NSCI6Uk2J7NJWa)^kD?_+8j3`HEv2@sfzn6x_#|5M?C2FRIx7ofNZ+i-ru+H zLRgG9Lt(O2XoSd zFH^Szcs{M=6}#&{vj8wQ=Xt~rl2wmEGnSq*&pF|_&W{Tg<| z2bplQ-cHt?OA{55=v2Vk{Q*QZ`w6;X46^xtEy99RrK9aa=}gu>wqHw_Y-}ddigT~& zcshHT^dk{zVB{tGu70T?`68=*w^9JI5tJKmfmBi>@}2Ptr>Qp#E4U7sRa&5!8}ujE zN#N@eMhIuMpb=L#$`D>1n=f96A-%>qn4$E>pFlcg@>@Qs{>AB4Wl%PSH|I7xRFbi7 z6MSl+Rh>CbZ2%!qAMwB@vOEb`gZ2G@7AhLtUgOC*qF!TDK4Ay91#<=OI`jg~&b6gZ zr@5Ww1X6K)!jPW4DE_PzT2Ga6YcaE;&j7TT)-BJA<>-MTk<9@sryWZod%PIdwkJ24 zgvZs2%B#p_8amw-H{|SvM+-4!jYBNUke%MXr!D+OvZ~Q8K1CH6($L#b54j*g!3!0& zuXc;VQ?%~$r;%|2TA&jrIjT}r-W_nG)A@xzYE`I2&dsYsL~HFTGB!5~ajTT|4+yFf zU!g67IejB>uhEmX{Soiy**9RF8pNOeGhjaV_=a1a#ExVXSeSMi0F3nIob0h0Sh``T_aNJ+J zy8>kT^+8$TosS5Yjf=oLoY4(OZE&&LHs9|3NBva_Czy~cCA8cOQq9JYqU+-f2ZK)U z39rm8l7#T@(m_J!ir#6r1zu^$x-cK4vXsptI2u*~1f!rllO!sE0&v@o#+q#vOv&x~ z3;qgkRAXpPb+AkV#FQ~%?6gBp$Pgu%ywXx;MN?8BczZ$sL~byStM+WAJq~L+8X%eR z3sdnezRj>I32csuS|A%|Nr%*lpJ=0D-#b(-+zWnB&A&>TF6DuHDZ?<6;V7ea7Om#H ztXNu#49vD*O|zZBqWXX%Pz7QC=|m-jiI=juEq=wbdtrHzq1pu(ABxusCge~A{G}%#JjXc6AyGm5N=It`cX%Y& z=$4U5|#+)>hI8P~Ui)1R-2Gh|%OV?n+Zv5xy|$3}W$XmBq92+z0&B^1sk z2DIyHxV(GdttL1@ijNqMPt|8IA37?K@sM^LdL2vJ2Ul~TX@{{zwxMYB!=IwA%&PdG zYbq`-c9}>RWcC>(LVHAFvaVbN9{Cc7<~;9t?P*=dn}B#AIu$bG1PR5Gr3GE%Gz;O1|Hxe@TS{^$gUg=Mh%^!> zdx5`FOx|u0q8Tx0n>twdsd4m{aEnM|bPB4p&YG?}1RAY_%`tzsJSn#)2H|x!1F?V^ zxEdW%0WN(~1Q??)=mLc-L2|`PDu~?(KfA1_6nMomFVxS{^xQ{kb;$YVGZJkeRCM!! zxup0q)v>?Y}(VSZ|jWs-l$RO^MW20ns@ThpwyIdgP32sGwp z9~lO#s?gRlkZs^~Yn7wrLWFGY6W+Q)#TSI`qd)LZZwckO_(jAPt*hbr#=a9vv z?{j$Gdv>2)?_k*>!wERMae5Slh78`|LNrsoZs}ee9$Z~y<&8Tap;_zP+HwG-(K*+X zf}t>z&n8_Q*6RtX*sxlwq^nU%;up)d-N1}}QV(HI`z8Axe{$1TQBm$K>Vp2 zO-GK_GC&dWo+^Ui1Ra@*%cOX-1!c^Q@!gq9&PeAUJCct1yb&~VRf1t+2@GECNnDr88U;?+^-Dw_1}h3dOcXox2>Q^`Em z3!J~d+oJzZWN_}Nitus~^XknR$mc{1uY`bUl-Vv3=OVqW?G&&R(quYZLStlRqZL|2 zE1#7yXbkpV$;95Vo#1ZVl*X8AOK6;hqpC)OZKsDTxLw@%r zg1Pgnm0Lj=a{#12U^M-g$Be%04al}OWQmAg!n(IJOJ|$vBeKIW;m{Lr?Y(P01cq1a zP0K1yCkx(W#7Vz<9f43)2s!|3*4rvj;?SRDoKG)f8$g<3Vj&^b95t-b|J*D-_gBZT zAfRnhKp~|2;G@9heiApgwa;dnr$b;%J<3%7svD|HSOfcByVto(Q9K~n&yU>0jh)Nh z=tl}$-WLMxWGL~QD7+E40oa@EnfYgifxQ{WQ7(~VUhz7>-FwFZh59Lfq&Js*(RnU& zLn0lgZu}VB!;o_Pc9_?<5}0}ZwAs;Y>X>aXAFh~PF5SBI9C?270wAa)(6yOE=omq* z08ir|WTwaaE316s;ks1ZL)*k~#8%(?4up77^5=_W6}}Dr`9b0j3w+sq@=?|`*ZCc%wMXg?} zGDS766lD+vGg!WCIYSUBXb!9-$?nY`&V>4^+(^S92Wjf}hM> zMzYa^YN>}?VO(^F*)4#n(di7iwy`x@hI4u>pX}`4-lkX$i_Gbab>=n)0l3@VVR@>~ z_2cfcvBTde)cwOvd*FfLm&=%d9;x|ms7Gd{TIN|Q;+V&hqnUqJw1TU(Z%GDWY8nXi zj5#6>A(P4@+YlS0f%rwzqL&c!*f@<{@mbTu`|HT5g?F7cbWKm(cUzUwot*=15^2UB zs`^?fX5MfnXxrM*PkCLmirkbjikyLk4+LcKi*tnaOG(CYCQ_n=VoTC{<2T(?O1(%j zBahTRiWaG5zmhVe3cZOu% z^F*R5n^V7~1baP9Qp0BtE4hg65wDc4nIy}$FE5ObX5^qn#dgWAc5&Bpl_UB1RbKY$ zrF}6`S30EYqRs`}o?QM-HPtv_W#(thu=L1r@P2G;yVNwJLO`TM@VCS_7l+G_z2QS$ zINCE(W%qmoLWw}eyXmm{i!DD3Iq!#w_nBcCH3I23^D*J|p%ytos~mQby>0T2vJddX z(C)zx~MU7YgzT=a}#4 z3&Zr2iVT2?j#C0pM`HL<#E8h(gB{1b><|3UlhBMhM|z@6K%P8J4RbkB}Y9jG)X! z?wy(C?1Be^Jx0@ojE*K1M{&&uy6H0*ls5+a5`D9mc5(UCw! zS;c|g+6R5dN8*6e-LDjH;=WMii^vIi?;ilma*fEwFxu&*kb08K@lH(>GFpbqkv(}i zIFuTx2{-H2Q;rQ_05zGOrkfydEo}^m(gTM{LH~h%rPz0)pSQyGRvcvXtllHA(!&K{ zQt%`!Ho?ruYjdluD`{(q0hfI7`+D~1KST>v=0PD2W#)|DsvZS;0_UkYf30L2%_<^X zBf>u}Lr#z?ILb$DdO@E-M1#6(9I~v=$uOr0M)?Pr22v=f!7&$M%DEbXNMYsQOvDH7 z%h_j^G8}I>1Deo=VJ`@rNzu4~VR7$YfaP)Y<+%Bo*zN$?g3;_%4&kd4FC_Z9egaKK zB}1fl34_DNhP?3RU+#70;1+@XaTWkt8iz;bQa+0iU(Fl~woV69S5^50OFplkJ+6$4 zFSa-5tE^!h=++x1FCqW%WVO^jb7$tRY|?!hJ6Qonw+C@a2YLEA`z)aahN!vHXv;Y& zFI;+r5HM1EKAk)!noJlvF)L?)KO!e`vEmT43^C;YKpy}ai8T}XlHN;uG=fqQI3wsq z`4dFy88-*=fM{2TigYncJlMst1WCel2L89q5t*qOp}Tt`Tuy)7BX2i_*{aOSW*N4Q z=S<*6LEYqD3F3s*MTmJ6;cw(MH&f1E$1-#GoRETWe6| zGPc9u?Ut;Yr?NGD=nUgiG_gK02+*IlX5^!s-TmaXV}KdIP>|+8quIqwGA`MA+T9<7 zli>yx6;T1~_Aft|hEPByr;Fzuc+Vwg5U^nDmW&Cv3uZ?AW9HwE`ygF-xJ_-u`z{E% zA?)yn&rD*Idgs>TD<;ZnihO#v?Y*W6`Q268XAf99BM7xnmli&*{8k&B$jBeJdCk6Vg4wAPK>8=I$kdL)5H7gb37Sx^pK`Sy0?Wud1hEfjiB{E|r+ClBHN6BV zNqR`Mx}dM~1BI&@@Ut$&r*>MtiVh1e%@HpK0V5PjSzqs_e;NM^guWF@a+hK)q~qTy z(BDkcqc$t+zYR!E^9|7#IGpHZe8Ha8cpWY9^W|*XquwzL*;e5tv0p+PhsqPO@i(5-Kj3)^Z>#_uy+osv1#iRQ#_C5WXh3jS+}h_l7R=+ zatUhRWjb zfV3{8PXu0VKUT?phK0(Hl6Wb0Sd)?CTg5sH{k0m|#r-ya``Y@<>OM!Y@@9ayS6G=A zxt}|Q_?9!LZ>%OC5ZZlIu8{+&ET*af8G}(?;vHj928s;dQcrN2>c&4pLGY18n{v)P z>fC;HTo#GM?+2%nEc$eB2c_K!__+6DZ9&OfVr$TlS{%TXgkfxaW#{sJ+>3+8h3$lw zfnJwk=2tujXhxv#7rdQi*XMOUqj2U!7@M7*Io}Jt)h1@skTo-n1L5v`{6Nt~bRSCR zb6($@EwnFHXdWvDXf1}sG&VUQ5D>{wNQhbrn7$Dcgc^0fp@1Dcg{xc(^JJ`wA`@-6 z7cSRd<6J^D!mY2m7NjQm2My~pz}w6@9vyOcQ^ZFhNq9rw)@qd1LTGKT@qo7aRWLq`?-_(T<@xeLnt{(iB4D4C!F{!I@*uMt}kCi0*12UDi|ka~ZqUi^SsO{;sX1a{^BX)HeUGm;aQlUll|R z`z~!mZ+HUny&oH~Z0*E8lFf7!&Wa%R0Tq%v5fZVr%{5kwII=#V$YLILdwdJL%Bdq} z;SVb@t_AbE9zWJ6;F=@QZdG^)3Tive+d78k(-j@Uhz7h&)_rhsM9g$+?gDbq{XuPE zBzU9Mv-ndBX(yh_aDF->JkK9?F~CF1)pz?6Y?Z0WVnO?ZxsL1q@KmNvW#J>;+L6r02SrrWa4(q!@}WgSv=utG3hQ7iUdl z)F$-SwoOW_8djBQ`7-v3OqB|)Qr9qr#0jUM@^2cKq)n!w(3+E+6j8@tI?q+H%;M!D zqP&vZ%RcpG9c|+daQDiL5x(^@6S@ja2d! zK+nYn76#RP{|dHXL#!0lDC>bJBCaum3t6!!PFQ~LhPm^mPt|JYjU}mm`1Ev!DKtVm zWpQM!8IAhwZ55=sTFNA(5S2e$6jy8*?>t#b00mwTt+dC=;&%%P&3EikJTsVq=PueP zkqPCuGcJ@0KA^Q=XrL%vp{wXfQdbfsAS`?tYLPg+M@m7|ugksW-XcAkJUUqhs+rH< zqB^~DB{yVBRT2_&6Qc2?$$FW1Qu9Aii+@aFNV)aNtQ7CWls5(ddf5v(^3<+ihy8As`PUc0 z>d2_CTG+{lcY&C23;ew(a1tH~3a!eOjmudlqt5I$PK0t3kuPZp}$ z4<`iOagkxp0;)Qp9#GvLw%?y!psYwO)T9|Pk}sDs`x2<7SxnMl?k#^ zJ)Wf)O~a-U)oe}Cqn+F$EbDacHg+W@?Bn;fUP)hJpw`<6PqpfjI-8569_D5@&6y7t z19?!>0;8e?8e*ViAEU?GH<9F*UG*b6hFkojhPq8(#Qi#ntQ{z}x$IllB4wQLPd%@h z?ka`)(#CgiLi3AU@axD|r}+{zSWV>Qs*(tXci@Y>0O8w+$9!mMY~u;ChpUnHJ>!kh zOUHcRN7{(1-0yN>Ut+k3t+G!Ru@Q>gsjOu^GMpMvcLwCWTtb&rVW^hO74+DZPz1-2 ztHE`R7D8hK)3@@22$Cfu@c$(Y<~o%&Zdp-HxsD+U9VCD-*${f*X431GI+R@aLM6hl zh+JJOd%teOYfnf&)9nX1=4dVz(_87}?-Ika6 zVj5YB-aM&pbCk}-4Zo9ntF2riPcq~*=6#h=Tg&Vag=qiI;baF;rrG0@$uOPAsrYsE zydxm2s10ja$sguKZPYj67uQ*`n3~f`b*dHuA~2cf{SH`my(HzDmS!4gmF(`EC``C( zb=a^(SW83$w{0^Wjr>y%wREffBYQ}5+r(suf1Ax^6@1mh_R6UmuPy|m`gdXntoR!Tv+?1K0W zv{0;}MZ`#*aF}F2w0+1p?+#zD1aaSAJbC>6+F_c**_S*J%DS*>O~6Ss#jtaQ^_PLD z@Hqi)!KE0dUM3@(ybF4}GPicG}|p{V0d!g;`aL$I5j4WuWi(ARDa z@9F?uytWHBtJdu(+J*ecVE|0H(q%YlK5bpj<=rzPc()hMJO_X=5jwN4G9{uwNM67l zO$X**gB82&2=QW!YE|Z#=e*aThjsGGCkZzs+2@K4-}^BJAoe|RcL5UQ1LC>2Y{m{r zxO2c`;w+T|3Z6LWL|i};XR5?&9`~{(9Qa2TY0&O`Gh-9Q;jm#EE7<9$>z-q`QjD$eD|dpI}+g*vnB6M3^_l95+Y_hRpxgS6+!Vu2dTLTkQ&Mt%#Uw1KDIKf_J}4w zZ81GbGZlBaKuY`MMK%4DKI!pzMD@v8q?UuCK3;CZG|F5!0;UTDZJpGuqaQ6vDt?Y; z-G{Zrh$l^)eF8Z<`PYJWb}mu0`LzP}X_TD9T>-tS1i}f#=~5v=qs_zhb0=z6Eod{R zc6(3;z`#W?*BgWn$XR$2v-@^U^k387=K!;}1~e>p8eRp%(9Kwu(GcN4)tHZwvleqL zI(O_TVn>^e?7|21x$^g{Mez>Cx5hkpRsx_pTqs^RI#M@vR0*`zAhy!>gd46Rf=GTb+ut)JkHBmyTT2yjPA$wfX62;#^+j zoi{!hSW_r>wF1G}`L4(tK;1*5f3J<(>d55rU$nL8ja-%tz7HpxWgH0ylNU^wB;-Seo!`Y)2+1theU<#%E^mnue?P^5AXfID zPmBtV5CQihdgl%pylW8{1@xnaNM{2#u{LB$KeVi-EHOJNdw@##-ar+))TrnNBFr>~ z0D8x?9YE1piHOKoav$PZ@D*X!3J~DPD5lo7UBoy+0ztU`*H@Qm0znlFlSEViw2CN5 z&k#b=-OK!Q%b23q1=0Cxl+Di5SGB+!w)A)yPuaec8{nVNr;~ijI$7k{|77-X2S*-5 zm0p-K832XI)2AYkQUwFZr)t+hK(cx_i+q%7X%$LoQfbhgbYYsHDi>w_H4p2dbZS9( z>IL~Sr(&h>U5VUg(E@gtEb_ZMf^b9>RO7~5!CQQfWrNFKA7RJfe6%(UnDeg!`EGOn z?y&)?sz3ssHvbz*4gC>}8@JarQb^6_TqUFvp=-f)S~R~Nd~R0d@_CiIkfW|qzc*;b zwHpf)CzFYd`fuQwDT|5{ajLoglod!knfW0dd7VXn7a`fN+o$=E=r<==)uo)K7&!

NSp%kj?1EW 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⪙)~@N9T8PLS1ywqQHVzl>W{ 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
g3qI(a$f- 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 ZTwswl0v!dq5A++za`O?0PUZ1f{}+Hkx~~8L literal 0 HcmV?d00001 diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index c1fb6907..6ca698ff 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -1044,7 +1044,11 @@ pub struct UpgradeContext { } impl UpgradeContext { - pub async fn new(worker: &Worker) -> Self { + pub async fn new( + worker: &Worker, + previous_satoshi_bridge_contract_path: &str, + previous_nbtc_contract_path: &str, + ) -> Self { let root = worker.root_account().unwrap(); let ( previous_satoshi_bridge_contract, @@ -1054,7 +1058,7 @@ impl UpgradeContext { ) = tokio::join!( async { worker - .dev_deploy(&std::fs::read("../../res/satoshi_bridge.wasm").unwrap()) + .dev_deploy(&std::fs::read(previous_satoshi_bridge_contract_path).unwrap()) .await .unwrap() }, @@ -1066,7 +1070,7 @@ impl UpgradeContext { .await .unwrap() .unwrap(); - nbtc.deploy(&std::fs::read("../../res/nbtc.wasm").unwrap()) + nbtc.deploy(&std::fs::read(previous_nbtc_contract_path).unwrap()) .await .unwrap() .unwrap() @@ -1124,6 +1128,7 @@ impl UpgradeContext { "rbf_num_limit": 99, "max_btc_tx_pending_sec": 3600 * 24, "unhealthy_utxo_amount": 1000, + "expiry_height_gap": 100, } })) .transact() @@ -1145,6 +1150,10 @@ impl UpgradeContext { .args_json(json!({ "controller": root.id(), "bridge_id": previous_satoshi_bridge_contract.id(), + "name": "Near WTC".to_string(), + "symbol": "NBTC".to_string(), + "decimals": 8, + "icon": Some(DATA_IMAGE_SVG_NEAR_ICON.to_string()), })) .transact() .await diff --git a/contracts/satoshi-bridge/tests/test_upgrade.rs b/contracts/satoshi-bridge/tests/test_upgrade.rs index d24a8c1c..90eb98c2 100644 --- a/contracts/satoshi-bridge/tests/test_upgrade.rs +++ b/contracts/satoshi-bridge/tests/test_upgrade.rs @@ -2,18 +2,70 @@ mod setup; use setup::*; #[tokio::test] -async fn test_satoshi_bridge_upgrade() { +async fn test_btc_bridge_upgrade() { let worker = near_workspaces::sandbox().await.unwrap(); - let upgrade_context = UpgradeContext::new(&worker).await; + let upgrade_context = UpgradeContext::new( + &worker, + "../../res/satoshi_bridge.wasm", + "../../res/nbtc.wasm", + ) + .await; check!(view upgrade_context.get_satoshi_bridge_version()); check!(upgrade_context.upgrade_satoshi_bridge("../../res/satoshi_bridge.wasm")); check!(view upgrade_context.get_satoshi_bridge_version()); } +#[tokio::test] +async fn test_btc_bridge_upgrade_from_v0_5_1() { + let worker = near_workspaces::sandbox().await.unwrap(); + let upgrade_context = UpgradeContext::new( + &worker, + "tests/data/btc_bridge_v0-5-1.wasm", + "tests/data/nbtc_v0-5-1.wasm", + ) + .await; + check!(view upgrade_context.get_satoshi_bridge_version()); + check!(upgrade_context.upgrade_satoshi_bridge("../../res/satoshi_bridge.wasm")); + check!(view upgrade_context.get_satoshi_bridge_version()); +} + +#[tokio::test] +async fn test_zcash_bridge_upgrade_from_v0_6_0() { + let worker = near_workspaces::sandbox().await.unwrap(); + let upgrade_context = UpgradeContext::new( + &worker, + "tests/data/zcash_bridge_v0-6-0.wasm", + "tests/data/nbtc_v0-6-0.wasm", + ) + .await; + check!(view upgrade_context.get_satoshi_bridge_version()); + check!(upgrade_context.upgrade_satoshi_bridge("../../res/zcash.wasm")); + check!(view upgrade_context.get_satoshi_bridge_version()); +} + #[tokio::test] async fn test_nbtc_upgrade() { let worker = near_workspaces::sandbox().await.unwrap(); - let upgrade_context = UpgradeContext::new(&worker).await; + let upgrade_context = UpgradeContext::new( + &worker, + "../../res/satoshi_bridge.wasm", + "../../res/nbtc.wasm", + ) + .await; + check!(view upgrade_context.get_nbtc_version()); + check!(upgrade_context.upgrade_nbtc("../../res/nbtc.wasm")); + check!(view upgrade_context.get_nbtc_version()); +} + +#[tokio::test] +async fn test_nbtc_upgrade_from_v0_5_1() { + let worker = near_workspaces::sandbox().await.unwrap(); + let upgrade_context = UpgradeContext::new( + &worker, + "tests/data/btc_bridge_v0-5-1.wasm", + "tests/data/nbtc_v0-5-1.wasm", + ) + .await; check!(view upgrade_context.get_nbtc_version()); check!(upgrade_context.upgrade_nbtc("../../res/nbtc.wasm")); check!(view upgrade_context.get_nbtc_version()); From 8c62c7de21119c4ae3349484b76a75dda25cbfc8 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Thu, 23 Oct 2025 09:21:40 +0100 Subject: [PATCH 09/28] fix sequence for rbf (#15) --- contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs index cea9346c..436c0043 100644 --- a/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs +++ b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs @@ -42,7 +42,7 @@ impl PsbtWrapper { original_psbt: crate::psbt_wrapper::PsbtWrapper, output: Vec, ) -> Self { - let sequence = bitcoin::Sequence::MAX; + let sequence = bitcoin::Sequence::ENABLE_RBF_NO_LOCKTIME; let transaction = BtcTransaction { version: Version::TWO, From 938124484c3d599435d46cf12c45bc01a15a6ccc Mon Sep 17 00:00:00 2001 From: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> Date: Thu, 23 Oct 2025 14:29:00 +0200 Subject: [PATCH 10/28] chore: added ci (#14) * chore: added ci * chore: allow `needless_pass_by_value` * fix: ci * fix: fixed clippy issues and loosened clippy rules * chore: added `make build` call * chore: install cargo-near * fix(tests): nbtc contract initialization * chore: cleanup * Update contracts/satoshi-bridge/tests/setup/context.rs Co-authored-by: Olga Kunyavskaya * Update contracts/satoshi-bridge/src/nbtc/burn.rs Co-authored-by: Olga Kunyavskaya * Update contracts/satoshi-bridge/src/nbtc/burn.rs Co-authored-by: Olga Kunyavskaya * Update contracts/satoshi-bridge/src/btc_light_client/mod.rs Co-authored-by: Olga Kunyavskaya * refactor: use `u64::from(u32::MAX)` instead * refactor: use `u64::MAX` instead * Revert "refactor: use `u64::MAX` instead" This reverts commit 4c53c2cac2d047b59c3880552c9d68ff00108aa6. --------- Co-authored-by: Olga Kunyavskaya --- .github/workflows/ci.yml | 46 +++++++++++++++++++ contracts/mock-dapp/src/account.rs | 2 +- contracts/mock-dapp/src/fungible_token.rs | 2 +- contracts/mock-dapp/src/lib.rs | 2 +- contracts/mock-dapp/src/storage.rs | 2 +- contracts/nbtc/src/lib.rs | 2 +- contracts/satoshi-bridge/src/account.rs | 8 ++-- contracts/satoshi-bridge/src/api/bridge.rs | 15 ++++-- .../src/api/chain_signatures.rs | 5 +- .../satoshi-bridge/src/api/management.rs | 10 ++-- .../satoshi-bridge/src/api/token_receiver.rs | 8 +++- contracts/satoshi-bridge/src/api/view.rs | 45 ++++++++++++------ .../src/bitcoin_utils/psbt_wrapper.rs | 2 +- .../active_utxo_management.rs | 5 +- .../src/btc_light_client/deposit.rs | 7 ++- .../src/btc_light_client/mod.rs | 4 +- .../src/btc_light_client/withdraw.rs | 5 +- .../satoshi-bridge/src/btc_pending_info.rs | 44 +++++++++--------- .../satoshi-bridge/src/chain_signature.rs | 6 ++- contracts/satoshi-bridge/src/config.rs | 27 +++++------ contracts/satoshi-bridge/src/deposit_msg.rs | 16 +++---- contracts/satoshi-bridge/src/event.rs | 2 +- contracts/satoshi-bridge/src/json_utils.rs | 14 ++---- contracts/satoshi-bridge/src/kdf.rs | 2 +- contracts/satoshi-bridge/src/legacy.rs | 5 +- contracts/satoshi-bridge/src/nbtc/burn.rs | 15 ++++-- contracts/satoshi-bridge/src/nbtc/mint.rs | 15 +++--- contracts/satoshi-bridge/src/nbtc/mod.rs | 2 +- contracts/satoshi-bridge/src/network.rs | 10 ++-- contracts/satoshi-bridge/src/psbt.rs | 42 ++++++++++------- .../src/rbf/active_utxo_management.rs | 6 ++- .../src/rbf/cancel_active_utxo_management.rs | 6 ++- .../satoshi-bridge/src/rbf/cancel_withdraw.rs | 7 ++- contracts/satoshi-bridge/src/rbf/mod.rs | 10 ++-- contracts/satoshi-bridge/src/rbf/withdraw.rs | 6 ++- .../satoshi-bridge/src/token_transfer.rs | 5 +- .../satoshi-bridge/src/unit/post_action.rs | 40 ++++++++-------- contracts/satoshi-bridge/src/upgrade.rs | 2 +- contracts/satoshi-bridge/src/utils.rs | 5 +- contracts/satoshi-bridge/src/utxo.rs | 7 +-- .../satoshi-bridge/tests/setup/context.rs | 3 +- 41 files changed, 297 insertions(+), 170 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..1bda6dc1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,46 @@ +name: CI + +on: + push: + branches: + - omni-main + pull_request: + +permissions: + checks: write + +jobs: + rust-checks: + runs-on: warp-ubuntu-latest-x64-4x + steps: + - uses: actions/checkout@v5 + + - name: Install system dependencies + run: sudo apt-get update && sudo apt-get install -y libudev-dev + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt, clippy + + - name: Setup Rust cache + uses: Swatinem/rust-cache@v2 + with: + cache-provider: warpbuild + + - name: Check formatting + run: cargo fmt --all -- --check + + - name: Run Clippy + run: cargo clippy --lib --bins --examples -- -D warnings -D clippy::pedantic -D clippy::as_conversions -A clippy::must_use_candidate -A clippy::needless_pass_by_value -A clippy::missing_panics_doc -A clippy::missing_errors_doc -A clippy::match_same_arms -A clippy::unused_self -A clippy::too_many_lines + + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh + + - name: Build contracts + run: make build + timeout-minutes: 60 + + - name: Run tests + run: cargo test --all -- --nocapture diff --git a/contracts/mock-dapp/src/account.rs b/contracts/mock-dapp/src/account.rs index 6a16a191..3adbde3d 100644 --- a/contracts/mock-dapp/src/account.rs +++ b/contracts/mock-dapp/src/account.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{near, AccountId}; #[near(serializers = [borsh, json])] pub struct Account { diff --git a/contracts/mock-dapp/src/fungible_token.rs b/contracts/mock-dapp/src/fungible_token.rs index 02fd9737..3c85e128 100644 --- a/contracts/mock-dapp/src/fungible_token.rs +++ b/contracts/mock-dapp/src/fungible_token.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{env, near, AccountId, Contract, ContractExt, PromiseOrValue, U128}; use near_contract_standards::fungible_token::receiver::FungibleTokenReceiver; use near_sdk::{log, require, serde_json}; diff --git a/contracts/mock-dapp/src/lib.rs b/contracts/mock-dapp/src/lib.rs index d7621dee..0c201aa6 100644 --- a/contracts/mock-dapp/src/lib.rs +++ b/contracts/mock-dapp/src/lib.rs @@ -7,7 +7,7 @@ mod account; mod fungible_token; mod storage; -use account::*; +use account::Account; #[derive(PanicOnDefault)] #[near(contract_state)] diff --git a/contracts/mock-dapp/src/storage.rs b/contracts/mock-dapp/src/storage.rs index 9d7f235c..c18f4ac7 100644 --- a/contracts/mock-dapp/src/storage.rs +++ b/contracts/mock-dapp/src/storage.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{env, near, Account, AccountId, Contract, ContractExt, NearToken, Promise}; use near_contract_standards::storage_management::{ StorageBalance, StorageBalanceBounds, StorageManagement, diff --git a/contracts/nbtc/src/lib.rs b/contracts/nbtc/src/lib.rs index 7bc49d65..3e6ea2dc 100644 --- a/contracts/nbtc/src/lib.rs +++ b/contracts/nbtc/src/lib.rs @@ -171,7 +171,7 @@ impl Contract { impl FungibleTokenCore for Contract { #[payable] fn ft_transfer(&mut self, receiver_id: AccountId, amount: U128, memo: Option) { - self.token.ft_transfer(receiver_id, amount, memo) + self.token.ft_transfer(receiver_id, amount, memo); } #[payable] diff --git a/contracts/satoshi-bridge/src/account.rs b/contracts/satoshi-bridge/src/account.rs index d795da3d..6d02b2f4 100644 --- a/contracts/satoshi-bridge/src/account.rs +++ b/contracts/satoshi-bridge/src/account.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{near, u128_dec_format, AccountId, Contract}; use std::collections::HashSet; #[near(serializers = [borsh, json])] @@ -78,14 +78,14 @@ impl Contract { } pub fn internal_get_account(&self, account_id: &AccountId) -> Option<&Account> { - self.data().accounts.get(account_id).map(|o| o.into()) + self.data().accounts.get(account_id).map(Into::into) } pub fn internal_unwrap_account(&self, account_id: &AccountId) -> &Account { self.data() .accounts .get(account_id) - .map(|o| o.into()) + .map(Into::into) .expect("ACCOUNT NOT REGISTERED") } @@ -93,7 +93,7 @@ impl Contract { self.data_mut() .accounts .get_mut(account_id) - .map(|o| o.into()) + .map(Into::into) .expect("ACCOUNT NOT REGISTERED") } diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index 2a69d6e1..67474852 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -1,5 +1,9 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + assert_one_yocto, env, generate_utxo_storage_key, get_deposit_path, nano_to_sec, near, + psbt_wrapper::PsbtWrapper, require, AccessControllable, AccountId, BTCPendingInfo, Contract, + ContractExt, DepositMsg, Event, LockTime, OriginalState, OutPoint, Pausable, PendingInfoStage, + PendingInfoState, PendingUTXOInfo, Promise, Role, TxOut, WrappedTransaction, UTXO, +}; use near_plugins::{access_control_any, pause}; #[near] @@ -35,7 +39,7 @@ impl Contract { let path = get_deposit_path(&deposit_msg); let transaction = WrappedTransaction::decode(&tx_bytes, &self.internal_config().chain) .expect("Deserialization tx_bytes failed"); - let deposit_amount = transaction.output()[vout].value.to_sat() as u128; + let deposit_amount = u128::from(transaction.output()[vout].value.to_sat()); require!(deposit_amount > 0, "Invalid deposit_amount"); require!( transaction.lock_time() == LockTime::ZERO, @@ -57,7 +61,10 @@ impl Contract { balance: transaction.output()[vout].value.to_sat(), }; let tx_id = transaction.compute_txid().to_string(); - let utxo_storage_key = generate_utxo_storage_key(tx_id.clone(), vout as u32); + let utxo_storage_key = generate_utxo_storage_key( + tx_id.clone(), + u32::try_from(vout).unwrap_or_else(|_| env::panic_str("vout overflow")), + ); self.internal_verify_deposit( deposit_amount, tx_block_blockhash, diff --git a/contracts/satoshi-bridge/src/api/chain_signatures.rs b/contracts/satoshi-bridge/src/api/chain_signatures.rs index 54460373..f546edc4 100644 --- a/contracts/satoshi-bridge/src/api/chain_signatures.rs +++ b/contracts/satoshi-bridge/src/api/chain_signatures.rs @@ -1,4 +1,7 @@ -use crate::*; +use crate::{ + near, require, AccessControllable, Contract, ContractExt, Pausable, PromiseOrValue, Role, +}; + use near_plugins::pause; #[near] diff --git a/contracts/satoshi-bridge/src/api/management.rs b/contracts/satoshi-bridge/src/api/management.rs index f68f68a9..41a5b3d2 100644 --- a/contracts/satoshi-bridge/src/api/management.rs +++ b/contracts/satoshi-bridge/src/api/management.rs @@ -1,4 +1,8 @@ -use crate::*; +use crate::{ + assert_one_yocto, env, near, require, AccessControllable, Account, AccountId, BridgeFee, + Contract, ContractExt, HashSet, Promise, Role, U128, U64, +}; + use near_plugins::access_control_any; #[near] @@ -17,7 +21,7 @@ impl Contract { pub fn withdraw_protocol_fee(&mut self, amount: Option) -> Promise { assert_one_yocto(); let total_protocol_fee = self.data().cur_available_protocol_fee; - let amount = amount.map(|v| v.0).unwrap_or(total_protocol_fee); + let amount = amount.map_or(total_protocol_fee, |v| v.0); require!(amount > 0 && amount <= total_protocol_fee, "Invalid amount"); self.data_mut().cur_available_protocol_fee -= amount; self.data_mut().acc_claimed_protocol_fee += amount; @@ -450,7 +454,7 @@ impl Contract { pub fn set_unhealthy_utxo_amount(&mut self, unhealthy_utxo_amount: U64) { assert_one_yocto(); require!( - unhealthy_utxo_amount.0 as u128 > self.internal_config().min_change_amount, + u128::from(unhealthy_utxo_amount.0) > self.internal_config().min_change_amount, "Invalid unhealthy_utxo_amount" ); self.internal_mut_config().unhealthy_utxo_amount = unhealthy_utxo_amount.0; diff --git a/contracts/satoshi-bridge/src/api/token_receiver.rs b/contracts/satoshi-bridge/src/api/token_receiver.rs index cfaa05e9..26a0c6a0 100644 --- a/contracts/satoshi-bridge/src/api/token_receiver.rs +++ b/contracts/satoshi-bridge/src/api/token_receiver.rs @@ -1,5 +1,9 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + env, nano_to_sec, near, psbt_wrapper::PsbtWrapper, require, serde_json, AccessControllable, + AccountId, BTCPendingInfo, Contract, ContractExt, Event, Gas, OriginalState, OutPoint, + Pausable, PendingInfoStage, PendingInfoState, PromiseOrValue, Role, TxOut, U128, +}; + use near_contract_standards::fungible_token::receiver::FungibleTokenReceiver; use near_plugins::pause; diff --git a/contracts/satoshi-bridge/src/api/view.rs b/contracts/satoshi-bridge/src/api/view.rs index d3e810a9..b98f3cbe 100644 --- a/contracts/satoshi-bridge/src/api/view.rs +++ b/contracts/satoshi-bridge/src/api/view.rs @@ -1,6 +1,10 @@ -use crate::*; +use crate::{ + env, near, u128_dec_format, AccessControllable, Account, AccountId, BTCPendingInfo, Config, + Contract, ContractExt, HashMap, HashSet, NearToken, Pausable, Role, U128, UTXO, +}; -const REQUIRED_BALANCE_FOR_DEPOSIT: NearToken = NearToken::from_yoctonear(1200000000000000000000); +const REQUIRED_BALANCE_FOR_DEPOSIT: NearToken = + NearToken::from_yoctonear(1_200_000_000_000_000_000_000); #[near(serializers = [json])] #[cfg_attr(not(target_arch = "wasm32"), derive(Debug))] @@ -33,10 +37,14 @@ impl Contract { pub fn get_metadata(&self) -> Metadata { let root_state = self.data(); Metadata { - super_admins: self.acl_get_super_admins(0, usize::MAX as u64), - daos: self.acl_get_grantees(Role::DAO.into(), 0, usize::MAX as u64), - operators: self.acl_get_grantees(Role::Operator.into(), 0, usize::MAX as u64), - pause_managers: self.acl_get_grantees(Role::PauseManager.into(), 0, usize::MAX as u64), + super_admins: self.acl_get_super_admins(0, u64::from(u32::MAX)), + daos: self.acl_get_grantees(Role::DAO.into(), 0, u64::from(u32::MAX)), + operators: self.acl_get_grantees(Role::Operator.into(), 0, u64::from(u32::MAX)), + pause_managers: self.acl_get_grantees( + Role::PauseManager.into(), + 0, + u64::from(u32::MAX), + ), pa_all_paused: self.pa_all_paused(), relayer_white_list: root_state.relayer_white_list.iter().cloned().collect(), extra_msg_relayer_white_list: root_state @@ -83,7 +91,8 @@ impl Contract { from_index: Option, limit: Option, ) -> HashMap { - let len = self.data().accounts.len() as usize; + let len = usize::try_from(self.data().accounts.len()) + .unwrap_or_else(|_| env::panic_str("Too many accounts")); let skip_n = from_index.unwrap_or(0); let take_n = limit.unwrap_or(len - skip_n); self.data() @@ -100,7 +109,8 @@ impl Contract { from_index: Option, limit: Option, ) -> HashMap { - let len = self.data().lost_found.len() as usize; + let len = usize::try_from(self.data().lost_found.len()) + .unwrap_or_else(|_| env::panic_str("Too many lost_found accounts")); let skip_n = from_index.unwrap_or(0); let take_n = limit.unwrap_or(len - skip_n); self.data() @@ -129,7 +139,8 @@ impl Contract { from_index: Option, limit: Option, ) -> HashMap { - let len = self.data().utxos.len() as usize; + let len = usize::try_from(self.data().utxos.len()) + .unwrap_or_else(|_| env::panic_str("Too many utxos")); let skip_n = from_index.unwrap_or(0); let take_n = limit.unwrap_or(len - skip_n); self.data() @@ -144,7 +155,7 @@ impl Contract { pub fn list_utxos(&self, utxo_storage_keys: Vec) -> HashMap> { utxo_storage_keys .into_iter() - .map(|key| (key.clone(), self.data().utxos.get(&key).map(|v| v.into()))) + .map(|key| (key.clone(), self.data().utxos.get(&key).map(Into::into))) .collect() } @@ -153,7 +164,8 @@ impl Contract { from_index: Option, limit: Option, ) -> HashMap { - let len = self.data().unavailable_utxos.len() as usize; + let len = usize::try_from(self.data().unavailable_utxos.len()) + .unwrap_or_else(|_| env::panic_str("Too many unavailable_utxos")); let skip_n = from_index.unwrap_or(0); let take_n = limit.unwrap_or(len - skip_n); self.data() @@ -174,7 +186,7 @@ impl Contract { .map(|key| { ( key.clone(), - self.data().unavailable_utxos.get(&key).map(|v| v.into()), + self.data().unavailable_utxos.get(&key).map(Into::into), ) }) .collect() @@ -185,7 +197,8 @@ impl Contract { from_index: Option, limit: Option, ) -> HashMap { - let len = self.data().btc_pending_infos.len() as usize; + let len = usize::try_from(self.data().btc_pending_infos.len()) + .unwrap_or_else(|_| env::panic_str("Too many btc_pending_infos")); let skip_n = from_index.unwrap_or(0); let take_n = limit.unwrap_or(len - skip_n); self.data() @@ -222,7 +235,8 @@ impl Contract { from_index: Option, limit: Option, ) -> HashMap> { - let len = self.data().rbf_txs.len() as usize; + let len = usize::try_from(self.data().rbf_txs.len()) + .unwrap_or_else(|_| env::panic_str("Too many rbf_txs")); let skip_n = from_index.unwrap_or(0); let take_n = limit.unwrap_or(len - skip_n); self.data() @@ -254,7 +268,8 @@ impl Contract { from_index: Option, limit: Option, ) -> HashMap> { - let len = self.data().post_action_msg_templates.len() as usize; + let len = usize::try_from(self.data().post_action_msg_templates.len()) + .unwrap_or_else(|_| env::panic_str("Too many post_action_msg_templates")); let skip_n = from_index.unwrap_or(0); let take_n = limit.unwrap_or(len - skip_n); self.data() diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs index 436c0043..d6a3721d 100644 --- a/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs +++ b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{generate_utxo_storage_key, SignatureResponse}; use bitcoin::absolute::LockTime; use bitcoin::consensus::serialize; diff --git a/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs b/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs index 628d7307..1fb59699 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs @@ -1,4 +1,7 @@ -use crate::*; +use crate::{ + env, near, promise_result_as_success, require, serde_json, BTCPendingInfo, Contract, + ContractExt, Gas, Promise, PromiseOrValue, +}; pub const GAS_FOR_VERIFY_ACTIVE_UTXO_MANAGEMENT_CALL_BACK: Gas = Gas::from_tgas(50); diff --git a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs index edb635af..d992b6c9 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs @@ -2,8 +2,11 @@ use near_sdk::PromiseResult; use crate::{ burn::GAS_FOR_BURN_CALL, + env, ext_nbtc, mint::{GAS_FOR_MINT_CALL, GAS_FOR_MINT_CALL_BACK}, - *, + near, promise_result_as_success, require, serde_json, AccountId, Contract, ContractExt, + DepositMsg, Event, Gas, NearToken, PendingUTXOInfo, PostAction, Promise, PromiseOrValue, + SafeDepositMsg, U128, }; pub const GAS_FOR_VERIFY_DEPOSIT_CALL_BACK: Gas = Gas::from_tgas(190); @@ -126,7 +129,7 @@ impl Contract { .insert(pending_utxo_info.utxo_storage_key.clone()), "Already deposit utxo" ); - let deposit_amount = pending_utxo_info.utxo.balance as u128; + let deposit_amount = u128::from(pending_utxo_info.utxo.balance); self.internal_set_unavailable_utxo( &pending_utxo_info.utxo_storage_key, pending_utxo_info.utxo, diff --git a/contracts/satoshi-bridge/src/btc_light_client/mod.rs b/contracts/satoshi-bridge/src/btc_light_client/mod.rs index 8e743adf..da524661 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/mod.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/mod.rs @@ -5,7 +5,7 @@ use near_sdk::serde::{ }; use std::{fmt, str::FromStr}; -use crate::*; +use crate::{env, ext_contract, near, AccountId, Contract, Gas, Promise}; pub mod active_utxo_management; pub mod deposit; pub mod withdraw; @@ -58,7 +58,7 @@ impl ProofArgs { .into_iter() .map(|v| { v.parse() - .unwrap_or_else(|_| panic!("Invalid merkle_proof: {:?}", v)) + .unwrap_or_else(|_| env::panic_str("Invalid merkle_proof: {v:?}")) }) .collect(), confirmations, diff --git a/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs b/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs index 5c234d52..0aa984e5 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs @@ -1,4 +1,7 @@ -use crate::*; +use crate::{ + env, near, promise_result_as_success, require, serde_json, BTCPendingInfo, Contract, + ContractExt, Gas, Promise, PromiseOrValue, +}; pub const GAS_FOR_VERIFY_WITHDRAW_CALL_BACK: Gas = Gas::from_tgas(50); pub const GAS_FOR_VERIFY_CANCEL_WITHDRAW_CALL_BACK: Gas = Gas::from_tgas(50); diff --git a/contracts/satoshi-bridge/src/btc_pending_info.rs b/contracts/satoshi-bridge/src/btc_pending_info.rs index c519c032..108dfeae 100644 --- a/contracts/satoshi-bridge/src/btc_pending_info.rs +++ b/contracts/satoshi-bridge/src/btc_pending_info.rs @@ -1,7 +1,9 @@ use std::borrow::{Borrow, BorrowMut}; -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + env, nano_to_sec, near, network, psbt_wrapper::PsbtWrapper, require, u128_dec_format, + AccountId, Contract, SignatureResponse, WrappedTransaction, U128, VUTXO, +}; #[near(serializers = [borsh, json])] #[derive(Clone, PartialEq, Eq)] @@ -161,21 +163,21 @@ impl BTCPendingInfo { PendingInfoState::ActiveUtxoManagementRbf(state) => state.assert_pending_verify(), PendingInfoState::ActiveUtxoManagementCancelRbf(state) => state.assert_pending_verify(), _ => env::panic_str("Not active utxo management related tx"), - }; + } } pub fn assert_active_utxo_management_original_pending_verify_tx(&self) { match self.state.borrow() { PendingInfoState::ActiveUtxoManagementOriginal(state) => state.assert_pending_verify(), _ => env::panic_str("Not active utxo management original tx"), - }; + } } pub fn assert_withdraw_original_pending_verify_tx(&self) { match self.state.borrow() { PendingInfoState::WithdrawOriginal(state) => state.assert_pending_verify(), _ => env::panic_str("Not withdraw original tx"), - }; + } } pub fn get_max_gas_fee(&self) -> u128 { @@ -203,22 +205,22 @@ impl BTCPendingInfo { pub fn to_pending_verify_stage(&mut self) { match self.state.borrow_mut() { PendingInfoState::WithdrawOriginal(state) => { - state.stage = PendingInfoStage::PendingVerify + state.stage = PendingInfoStage::PendingVerify; } PendingInfoState::WithdrawUserRbf(state) => { - state.stage = PendingInfoStage::PendingVerify + state.stage = PendingInfoStage::PendingVerify; } PendingInfoState::WithdrawCancelRbf(state) => { - state.stage = PendingInfoStage::PendingVerify + state.stage = PendingInfoStage::PendingVerify; } PendingInfoState::ActiveUtxoManagementOriginal(state) => { - state.stage = PendingInfoStage::PendingVerify + state.stage = PendingInfoStage::PendingVerify; } PendingInfoState::ActiveUtxoManagementRbf(state) => { - state.stage = PendingInfoStage::PendingVerify + state.stage = PendingInfoStage::PendingVerify; } PendingInfoState::ActiveUtxoManagementCancelRbf(state) => { - state.stage = PendingInfoStage::PendingVerify + state.stage = PendingInfoStage::PendingVerify; } } } @@ -226,20 +228,20 @@ impl BTCPendingInfo { pub fn to_pending_burn_stage(&mut self) { match self.state.borrow_mut() { PendingInfoState::WithdrawOriginal(state) => { - state.stage = PendingInfoStage::PendingBurn + state.stage = PendingInfoStage::PendingBurn; } PendingInfoState::WithdrawUserRbf(state) => state.stage = PendingInfoStage::PendingBurn, PendingInfoState::WithdrawCancelRbf(state) => { - state.stage = PendingInfoStage::PendingBurn + state.stage = PendingInfoStage::PendingBurn; } PendingInfoState::ActiveUtxoManagementOriginal(state) => { - state.stage = PendingInfoStage::PendingBurn + state.stage = PendingInfoStage::PendingBurn; } PendingInfoState::ActiveUtxoManagementRbf(state) => { - state.stage = PendingInfoStage::PendingBurn + state.stage = PendingInfoStage::PendingBurn; } PendingInfoState::ActiveUtxoManagementCancelRbf(state) => { - state.stage = PendingInfoStage::PendingBurn + state.stage = PendingInfoStage::PendingBurn; } } } @@ -273,7 +275,7 @@ impl BTCPendingInfo { } pub fn is_all_signed(&self) -> bool { - self.signatures.iter().all(|v| v.is_some()) + self.signatures.iter().all(Option::is_some) } pub fn get_psbt(&self) -> PsbtWrapper { @@ -346,14 +348,14 @@ impl Contract { self.data() .btc_pending_infos .get(btc_pending_id) - .map(|o| o.into()) + .map(Into::into) } pub fn internal_unwrap_btc_pending_info(&self, btc_pending_id: &String) -> &BTCPendingInfo { self.data() .btc_pending_infos .get(btc_pending_id) - .map(|o| o.into()) + .map(Into::into) .expect("BTC pending info not exist") } @@ -364,7 +366,7 @@ impl Contract { self.data_mut() .btc_pending_infos .get_mut(btc_pending_id) - .map(|o| o.into()) + .map(Into::into) .expect("BTC pending info not exist") } @@ -394,7 +396,7 @@ pub fn generate_btc_pending_sign_id(payload_preimages: &[Vec]) -> String { &payload_preimages .iter() .flatten() - .cloned() + .copied() .collect::>(), ); hex::encode(hash_bytes) diff --git a/contracts/satoshi-bridge/src/chain_signature.rs b/contracts/satoshi-bridge/src/chain_signature.rs index 46a3232b..1a0f2537 100644 --- a/contracts/satoshi-bridge/src/chain_signature.rs +++ b/contracts/satoshi-bridge/src/chain_signature.rs @@ -1,5 +1,9 @@ -use crate::*; +use crate::{ + env, ext_contract, nano_to_sec, near, promise_result_as_success, require, serde_json, + AccountId, Contract, ContractExt, Event, Gas, Promise, PublicKey, +}; use bitcoin::ecdsa::Signature; + pub const GAS_FOR_SIGN_CALL: Gas = Gas::from_tgas(50); pub const GAS_FOR_SIGN_BTC_TRANSACTION_CALL_BACK: Gas = Gas::from_tgas(30); diff --git a/contracts/satoshi-bridge/src/config.rs b/contracts/satoshi-bridge/src/config.rs index 06d2a94a..440e62c9 100644 --- a/contracts/satoshi-bridge/src/config.rs +++ b/contracts/satoshi-bridge/src/config.rs @@ -1,5 +1,7 @@ -use crate::network::Address; -use crate::*; +use crate::{ + env, near, network, network::Address, require, u128_dec_format, AccountId, Contract, HashMap, + PublicKey, ScriptBuf, +}; pub const MAX_RATIO: u32 = 10000; @@ -170,18 +172,16 @@ impl Config { keys.sort_unstable(); for key in &keys { if *key > satoshi_amount { - return self - .confirmations_strategy - .get(&key.to_string()) - .cloned() - .unwrap() as u64; + return u64::from(*self.confirmations_strategy.get(&key.to_string()).unwrap()); } } let max_key = keys.last().unwrap(); - self.confirmations_strategy - .get(&max_key.to_string()) - .cloned() - .unwrap() as u64 + u64::from( + *self + .confirmations_strategy + .get(&max_key.to_string()) + .unwrap(), + ) } } @@ -203,7 +203,7 @@ impl Contract { { config.get_confirmations(satoshi_amount) } else { - config.get_confirmations(satoshi_amount) + config.confirmations_delta as u64 + config.get_confirmations(satoshi_amount) + u64::from(config.confirmations_delta) } } @@ -215,7 +215,8 @@ impl Contract { { config.get_confirmations(satoshi_amount) } else { - config.get_confirmations(satoshi_amount) + config.extra_msg_confirmations_delta as u64 + config.get_confirmations(satoshi_amount) + + u64::from(config.extra_msg_confirmations_delta) } } } diff --git a/contracts/satoshi-bridge/src/deposit_msg.rs b/contracts/satoshi-bridge/src/deposit_msg.rs index 083031da..629e6f2b 100644 --- a/contracts/satoshi-bridge/src/deposit_msg.rs +++ b/contracts/satoshi-bridge/src/deposit_msg.rs @@ -1,4 +1,6 @@ -use crate::*; +use crate::{ + env, is_structure_equal, near, serde_json, AccountId, Contract, Event, Gas, Value, U128, +}; const MAX_POST_ACTIONS_NUM: usize = 2; const MAX_TOTAL_POST_ACTIONS_GAS: Gas = Gas::from_tgas(130); @@ -128,8 +130,7 @@ impl Contract { Event::InvalidPostAction { index: Some(index), err_msg: format!( - "The amount({}) of gas exceeds the limit of {}.", - gas, MAX_PER_POST_ACTIONS_GAS + "The amount({gas}) of gas exceeds the limit of {MAX_PER_POST_ACTIONS_GAS}." ), } .emit(); @@ -139,8 +140,7 @@ impl Contract { Event::InvalidPostAction { index: Some(index), err_msg: format!( - "The gas amount({}) does not meet the minimum requirement of {}.", - gas, MIN_PER_POST_ACTIONS_GAS + "The gas amount({gas}) does not meet the minimum requirement of {MIN_PER_POST_ACTIONS_GAS}." ), } .emit(); @@ -154,8 +154,7 @@ impl Contract { Event::InvalidPostAction { index: None, err_msg: format!( - "The total amount({}) of gas exceeds the limit of {}.", - total_gas, MAX_TOTAL_POST_ACTIONS_GAS + "The total amount({total_gas}) of gas exceeds the limit of {MAX_TOTAL_POST_ACTIONS_GAS}." ), } .emit(); @@ -165,8 +164,7 @@ impl Contract { Event::InvalidPostAction { index: None, err_msg: format!( - "The total amount({}) of nBTC used in post_actions exceeds the mint amount ({}).", - total_amount, actual_mintable_amount + "The total amount({total_amount}) of nBTC used in post_actions exceeds the mint amount ({actual_mintable_amount})." ), } .emit(); diff --git a/contracts/satoshi-bridge/src/event.rs b/contracts/satoshi-bridge/src/event.rs index 6dbd4c77..590b9879 100644 --- a/contracts/satoshi-bridge/src/event.rs +++ b/contracts/satoshi-bridge/src/event.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{json, log, AccountId, DepositMsg, SignatureResponse, U128}; use near_sdk::serde::Serialize; const EVENT_STANDARD: &str = "bridge"; diff --git a/contracts/satoshi-bridge/src/json_utils.rs b/contracts/satoshi-bridge/src/json_utils.rs index 083febbd..b4f7dcfa 100644 --- a/contracts/satoshi-bridge/src/json_utils.rs +++ b/contracts/satoshi-bridge/src/json_utils.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::Value; /// Recursively checks whether the structure of `input` matches the structure of `template`. /// Values can differ, but keys and value types must conform to the `template`. @@ -15,15 +15,9 @@ pub fn is_structure_equal(template: &Value, input: &Value) -> bool { match (template, input) { (Value::Object(t_obj), Value::Object(i_obj)) => { for (key, t_val) in t_obj { - match i_obj.get(key) { - Some(i_val) => { - if !is_structure_equal(t_val, i_val) { - return false; - } - } - None => { - // Input is allowed to omit fields defined in the template; these are treated as optional fields. - continue; + if let Some(i_val) = i_obj.get(key) { + if !is_structure_equal(t_val, i_val) { + return false; } } } diff --git a/contracts/satoshi-bridge/src/kdf.rs b/contracts/satoshi-bridge/src/kdf.rs index dba715a4..c4fe1266 100644 --- a/contracts/satoshi-bridge/src/kdf.rs +++ b/contracts/satoshi-bridge/src/kdf.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{env, BtcPublicKey, Contract}; use crate::network::Address; use k256::elliptic_curve::sec1::ToEncodedPoint; diff --git a/contracts/satoshi-bridge/src/legacy.rs b/contracts/satoshi-bridge/src/legacy.rs index c766f196..f891f7e5 100644 --- a/contracts/satoshi-bridge/src/legacy.rs +++ b/contracts/satoshi-bridge/src/legacy.rs @@ -1,4 +1,7 @@ -use crate::*; +use crate::{ + env, near, AccountId, BridgeFee, Config, ContractData, HashMap, HashSet, IterableMap, + IterableSet, LazyOption, LookupSet, PublicKey, StorageKey, VAccount, VBTCPendingInfo, VUTXO, +}; #[near(serializers = [borsh])] pub struct ContractDataV0 { diff --git a/contracts/satoshi-bridge/src/nbtc/burn.rs b/contracts/satoshi-bridge/src/nbtc/burn.rs index 3797ff7d..e69ccbf6 100644 --- a/contracts/satoshi-bridge/src/nbtc/burn.rs +++ b/contracts/satoshi-bridge/src/nbtc/burn.rs @@ -1,4 +1,7 @@ -use crate::*; +use crate::{ + env, ext_nbtc, generate_utxo_storage_key, is_promise_success, near, Contract, ContractExt, + Event, Gas, Promise, WrappedTransaction, U128, UTXO, +}; pub const GAS_FOR_BURN_CALL: Gas = Gas::from_tgas(5); pub const GAS_FOR_WITHDRAW_BURN_CALL_BACK: Gas = Gas::from_tgas(20); @@ -86,7 +89,10 @@ impl Contract { vout: index, balance: output.value.to_sat(), }; - let utxo_storage_key = generate_utxo_storage_key(tx_id.clone(), index as u32); + let utxo_storage_key = generate_utxo_storage_key( + tx_id.clone(), + u32::try_from(index).unwrap_or_else(|_| env::panic_str("Index overflow")), + ); self.internal_set_utxo(&utxo_storage_key, utxo); utxo_storage_keys.push(utxo_storage_key); } @@ -165,7 +171,10 @@ impl Contract { vout: index, balance: output.value.to_sat(), }; - let utxo_storage_key = generate_utxo_storage_key(tx_id.clone(), index as u32); + let utxo_storage_key = generate_utxo_storage_key( + tx_id.clone(), + u32::try_from(index).unwrap_or_else(|_| env::panic_str("Index overflow")), + ); self.internal_set_utxo(&utxo_storage_key, utxo); utxo_storage_keys.push(utxo_storage_key); } diff --git a/contracts/satoshi-bridge/src/nbtc/mint.rs b/contracts/satoshi-bridge/src/nbtc/mint.rs index b22fc693..dfb5fb22 100644 --- a/contracts/satoshi-bridge/src/nbtc/mint.rs +++ b/contracts/satoshi-bridge/src/nbtc/mint.rs @@ -1,4 +1,7 @@ -use crate::*; +use crate::{ + env, ext_nbtc, is_promise_success, near, Account, AccountId, Contract, ContractExt, Event, Gas, + PendingUTXOInfo, PostAction, Promise, U128, +}; pub const GAS_FOR_MINT_CALL: Gas = Gas::from_tgas(150); pub const GAS_FOR_MINT_CALL_BACK: Gas = Gas::from_tgas(10); @@ -49,11 +52,7 @@ impl Contract { pending_utxo_info: PendingUTXOInfo, ) -> bool { let is_success = is_promise_success(); - if !is_success { - self.data_mut() - .verified_deposit_utxo - .remove(&pending_utxo_info.utxo_storage_key); - } else { + if is_success { if !self.check_account_exists(&recipient_id) { self.internal_set_account(&recipient_id, Account::new(&recipient_id)); } @@ -66,6 +65,10 @@ impl Contract { } .emit(); self.internal_set_utxo(&pending_utxo_info.utxo_storage_key, pending_utxo_info.utxo); + } else { + self.data_mut() + .verified_deposit_utxo + .remove(&pending_utxo_info.utxo_storage_key); } Event::VerifyDepositDetails { recipient_id: &recipient_id, diff --git a/contracts/satoshi-bridge/src/nbtc/mod.rs b/contracts/satoshi-bridge/src/nbtc/mod.rs index fff62c0f..903298ac 100644 --- a/contracts/satoshi-bridge/src/nbtc/mod.rs +++ b/contracts/satoshi-bridge/src/nbtc/mod.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{ext_contract, AccountId, PostAction, U128}; pub mod burn; pub mod mint; diff --git a/contracts/satoshi-bridge/src/network.rs b/contracts/satoshi-bridge/src/network.rs index 3634ce75..53e47d53 100644 --- a/contracts/satoshi-bridge/src/network.rs +++ b/contracts/satoshi-bridge/src/network.rs @@ -112,7 +112,7 @@ impl zcash_address::TryFromAddress for Address { } impl Address { - /// Parse an address string + chain into AddressInner + /// Parse an address string + chain into `AddressInner` pub fn parse(address: &str, chain: Chain) -> Result { if chain == Chain::ZcashMainnet || chain == Chain::ZcashTestnet { let addr = ZcashAddress::try_from_encoded(address) @@ -191,8 +191,8 @@ impl Address { })?, )) } - _ => continue, - }; + _ => {} + } } Err("No receiver found in address".to_string()) @@ -250,7 +250,7 @@ impl Address { /// Formats bech32 as upper case if alternate formatting is chosen (`{:#}`). impl fmt::Display for Address { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - use Address::*; + use Address::{P2pkh, P2sh, Segwit, Unified}; match self { P2pkh { hash, chain } => { let prefix = get_pubkey_address_prefix(chain); @@ -286,7 +286,7 @@ impl fmt::Display for Address { }; let str_address = ZcashAddress::from_unified(network, address.clone()).encode(); - write!(fmt, "{}", str_address) + write!(fmt, "{str_address}") } } } diff --git a/contracts/satoshi-bridge/src/psbt.rs b/contracts/satoshi-bridge/src/psbt.rs index 39ccf6e0..8828eb72 100644 --- a/contracts/satoshi-bridge/src/psbt.rs +++ b/contracts/satoshi-bridge/src/psbt.rs @@ -1,6 +1,8 @@ -use crate::network::Address; -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + env, network::Address, psbt_wrapper::PsbtWrapper, require, Amount, Contract, Event, ScriptBuf, + TxOut, U128, VUTXO, +}; + impl Contract { #[allow(clippy::too_many_arguments)] pub fn check_withdraw_psbt_valid( @@ -14,7 +16,10 @@ impl Contract { max_gas_fee: Option, ) -> (u128, u128) { let config = self.internal_config(); - let utxo_num = self.data().utxos.len() + vutxos.len() as u32; + let vutxos_len = u32::try_from(vutxos.len()).unwrap_or_else(|_| { + env::panic_str("vutxos len overflow"); + }); + let utxo_num = self.data().utxos.len() + vutxos_len; let (input_num, change_num, actual_received_amount, gas_fee) = self.check_withdraw_psbt( withdraw_psbt, target_address_script_pubkey, @@ -35,11 +40,11 @@ impl Contract { } require!( - change_num <= config.max_change_number as usize, + change_num <= usize::from(config.max_change_number), format!("change_num must not exceed {}", config.max_change_number) ); require!( - input_num <= config.max_withdrawal_input_number as usize, + input_num <= usize::from(config.max_withdrawal_input_number), format!( "input must not exceed {}", config.max_withdrawal_input_number @@ -68,7 +73,10 @@ impl Contract { vutxos: &[VUTXO], ) -> (u128, u128) { let config = self.internal_config(); - let utxo_num = self.data().utxos.len() + vutxos.len() as u32; + let vutxos_len = u32::try_from(vutxos.len()).unwrap_or_else(|_| { + env::panic_str("vutxos len overflow"); + }); + let utxo_num = self.data().utxos.len() + vutxos_len; let input_num = psbt.get_input_num(); let output_num = psbt.get_output_num(); @@ -76,7 +84,7 @@ impl Contract { if utxo_num < config.active_management_lower_limit { require!(input_num < output_num, "require input_num < output_num"); require!( - output_num <= config.max_active_utxo_management_output_number as usize, + output_num <= usize::from(config.max_active_utxo_management_output_number), format!( "require output_num <= {}", config.max_active_utxo_management_output_number @@ -85,7 +93,7 @@ impl Contract { } else if utxo_num > config.active_management_upper_limit { require!(input_num > output_num, "require input_num > output_num"); require!( - input_num <= config.max_active_utxo_management_input_number as usize, + input_num <= usize::from(config.max_active_utxo_management_input_number), format!( "require input_num <= {}", config.max_active_utxo_management_input_number @@ -112,7 +120,7 @@ impl Contract { let withdraw_change_address_script_pubkey = config.get_change_script_pubkey(); let input_amount = vutxos .iter() - .map(|vutxo| vutxo.get_amount() as u128) + .map(|vutxo| u128::from(vutxo.get_amount())) .sum::(); let output_amount = psbt .get_output() @@ -121,13 +129,13 @@ impl Contract { if force_healthy_output { require!( v.value.to_sat() > config.unhealthy_utxo_amount - && v.value.to_sat() as u128 <= config.max_change_amount, + && u128::from(v.value.to_sat()) <= config.max_change_amount, "The output amount is not in the valid range" ); } else { require!( - v.value.to_sat() as u128 >= config.min_change_amount - && v.value.to_sat() as u128 <= config.max_change_amount, + u128::from(v.value.to_sat()) >= config.min_change_amount + && u128::from(v.value.to_sat()) <= config.max_change_amount, "The output amount is not in the valid range" ); } @@ -135,7 +143,7 @@ impl Contract { v.script_pubkey == withdraw_change_address_script_pubkey, "Invalid output script_pubkey" ); - v.value.to_sat() as u128 + u128::from(v.value.to_sat()) }) .sum::(); let gas_fee = input_amount - output_amount; @@ -161,14 +169,14 @@ impl Contract { withdraw_fee: u128, ) -> (usize, usize, u128, u128) { let config = self.internal_config(); - let input_amounts = vutxos.iter().map(|vutxo| vutxo.get_amount() as u128); + let input_amounts = vutxos.iter().map(|vutxo| u128::from(vutxo.get_amount())); let min_input_amount = input_amounts.clone().min().unwrap(); let total_input_amount = input_amounts.sum::(); let mut total_output_amount = 0; let mut actual_received_amounts = vec![]; let mut change_amounts = vec![]; psbt.get_output().iter().for_each(|output| { - let output_value = output.value.to_sat() as u128; + let output_value = u128::from(output.value.to_sat()); total_output_amount += output_value; if &output.script_pubkey == target_address_script_pubkey { actual_received_amounts.push(output_value); @@ -187,7 +195,7 @@ impl Contract { Address::from_script(&output.script_pubkey, config.chain.clone()) .expect("Unsupported btc address type"); env::panic_str( - format!("Invalid transaction output address: {}", output_address).as_str(), + format!("Invalid transaction output address: {output_address}").as_str(), ); } }); diff --git a/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs b/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs index 470c17af..e23db1bf 100644 --- a/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs @@ -1,5 +1,7 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + init_rbf_btc_pending_info, psbt_wrapper::PsbtWrapper, require, AccountId, BTCPendingInfo, + Contract, PendingInfoStage, PendingInfoState, RbfState, +}; impl Contract { pub fn check_active_utxo_management_rbf_psbt_valid( diff --git a/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs b/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs index ddc12326..6aae2077 100644 --- a/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs @@ -1,5 +1,7 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + env, init_rbf_btc_pending_info, nano_to_sec, psbt_wrapper::PsbtWrapper, require, AccountId, + BTCPendingInfo, Contract, PendingInfoStage, PendingInfoState, RbfState, +}; impl Contract { pub fn check_cancel_active_utxo_management_rbf_psbt_valid( diff --git a/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs b/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs index 370e63b9..2b108e3f 100644 --- a/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs +++ b/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs @@ -1,5 +1,8 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + env, init_rbf_btc_pending_info, nano_to_sec, psbt_wrapper::PsbtWrapper, require, + AccessControllable, AccountId, BTCPendingInfo, Contract, PendingInfoStage, PendingInfoState, + RbfState, Role, +}; impl Contract { pub fn check_cancel_withdraw_rbf_psbt_valid( diff --git a/contracts/satoshi-bridge/src/rbf/mod.rs b/contracts/satoshi-bridge/src/rbf/mod.rs index 4aa0441f..05db27a5 100644 --- a/contracts/satoshi-bridge/src/rbf/mod.rs +++ b/contracts/satoshi-bridge/src/rbf/mod.rs @@ -1,5 +1,7 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + env, nano_to_sec, psbt_wrapper::PsbtWrapper, require, BTCPendingInfo, Contract, + PendingInfoState, +}; pub mod active_utxo_management; pub mod cancel_active_utxo_management; @@ -47,13 +49,13 @@ pub fn init_rbf_btc_pending_info( ) -> BTCPendingInfo { BTCPendingInfo { account_id: original_tx_btc_pending_info.account_id.clone(), - btc_pending_id: Default::default(), + btc_pending_id: String::new(), transfer_amount: original_tx_btc_pending_info.transfer_amount, actual_received_amount: original_tx_btc_pending_info.actual_received_amount, withdraw_fee: original_tx_btc_pending_info.withdraw_fee, burn_amount: original_tx_btc_pending_info.burn_amount, gas_fee: original_tx_btc_pending_info.gas_fee, - psbt_hex: Default::default(), + psbt_hex: String::new(), vutxos: original_tx_btc_pending_info.vutxos.clone(), signatures: vec![None; original_tx_btc_pending_info.signatures.len()], tx_bytes_with_sign: None, diff --git a/contracts/satoshi-bridge/src/rbf/withdraw.rs b/contracts/satoshi-bridge/src/rbf/withdraw.rs index 90a1207a..af9926d7 100644 --- a/contracts/satoshi-bridge/src/rbf/withdraw.rs +++ b/contracts/satoshi-bridge/src/rbf/withdraw.rs @@ -1,5 +1,7 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + init_rbf_btc_pending_info, psbt_wrapper::PsbtWrapper, require, AccountId, BTCPendingInfo, + Contract, PendingInfoStage, PendingInfoState, RbfState, +}; impl Contract { pub fn check_withdraw_rbf_psbt_valid( diff --git a/contracts/satoshi-bridge/src/token_transfer.rs b/contracts/satoshi-bridge/src/token_transfer.rs index 57572287..c0edeff6 100644 --- a/contracts/satoshi-bridge/src/token_transfer.rs +++ b/contracts/satoshi-bridge/src/token_transfer.rs @@ -1,4 +1,7 @@ -use crate::*; +use crate::{ + env, is_promise_success, near, AccountId, Contract, ContractExt, Event, Gas, NearToken, + Promise, U128, +}; use near_contract_standards::fungible_token::core::ext_ft_core; pub const GAS_FOR_TOKEN_TRANSFER: Gas = Gas::from_tgas(20); diff --git a/contracts/satoshi-bridge/src/unit/post_action.rs b/contracts/satoshi-bridge/src/unit/post_action.rs index f48fda29..fc06a8ec 100644 --- a/contracts/satoshi-bridge/src/unit/post_action.rs +++ b/contracts/satoshi-bridge/src/unit/post_action.rs @@ -54,10 +54,10 @@ mod extend_post_action_msg_templates { .build()); unit_env .contract - .extend_post_action_msg_templates(burrowland_id(), HashSet::from(["".to_string()])); + .extend_post_action_msg_templates(burrowland_id(), HashSet::from([String::new()])); unit_env .contract - .extend_post_action_msg_templates(burrowland_id(), HashSet::from(["".to_string()])); + .extend_post_action_msg_templates(burrowland_id(), HashSet::from([String::new()])); } #[test] @@ -70,7 +70,7 @@ mod extend_post_action_msg_templates { .build()); unit_env.contract.extend_post_action_msg_templates( burrowland_id(), - HashSet::from(["".to_string(), "".to_string(), "aa".to_string()]), + HashSet::from([String::new(), "aa".to_string()]), ); let post_action_msg_templates = unit_env .contract @@ -151,7 +151,7 @@ mod remove_post_action_msg_templates { .build()); unit_env .contract - .extend_post_action_msg_templates(burrowland_id(), HashSet::from(["".to_string()])); + .extend_post_action_msg_templates(burrowland_id(), HashSet::from([String::new()])); unit_env .contract .remove_post_action_msg_templates(burrowland_id(), Some(HashSet::new())); @@ -168,7 +168,7 @@ mod remove_post_action_msg_templates { .build()); unit_env .contract - .extend_post_action_msg_templates(burrowland_id(), HashSet::from(["".to_string()])); + .extend_post_action_msg_templates(burrowland_id(), HashSet::from([String::new()])); unit_env.contract.remove_post_action_msg_templates( burrowland_id(), Some(HashSet::from(["aa".to_string()])), @@ -186,7 +186,7 @@ mod remove_post_action_msg_templates { unit_env.contract.extend_post_action_msg_templates( burrowland_id(), HashSet::from([ - "".to_string(), + String::new(), "aa".to_string(), "bb".to_string(), "cc".to_string(), @@ -267,21 +267,21 @@ fn test_check_deposit_msg() { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: None }, PostAction { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: None }, PostAction { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: None }, ]), @@ -301,14 +301,14 @@ fn test_check_deposit_msg() { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: None }, PostAction { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: None }, ]), @@ -336,7 +336,7 @@ fn test_check_deposit_msg() { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(200)) },]), extra_msg: None, @@ -355,14 +355,14 @@ fn test_check_deposit_msg() { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(50)) }, PostAction { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(10)) }, ]), @@ -382,14 +382,14 @@ fn test_check_deposit_msg() { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(50)) }, PostAction { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(100)) }, ]), @@ -409,14 +409,14 @@ fn test_check_deposit_msg() { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(50)) }, PostAction { receiver_id: burrowland_id(), amount: U128(100), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(50)) }, ]), @@ -433,7 +433,7 @@ fn test_check_deposit_msg() { .build()); unit_env .contract - .extend_post_action_msg_templates(burrowland_id(), HashSet::from(["".to_string()])); + .extend_post_action_msg_templates(burrowland_id(), HashSet::from([String::new()])); assert!(unit_env .contract .check_deposit_msg( @@ -461,7 +461,7 @@ fn test_check_deposit_msg() { receiver_id: burrowland_id(), amount: U128(10), memo: None, - msg: "".to_string(), + msg: String::new(), gas: Some(Gas::from_tgas(50)) },]), extra_msg: None, diff --git a/contracts/satoshi-bridge/src/upgrade.rs b/contracts/satoshi-bridge/src/upgrade.rs index 755649cd..f5bef78d 100644 --- a/contracts/satoshi-bridge/src/upgrade.rs +++ b/contracts/satoshi-bridge/src/upgrade.rs @@ -1,4 +1,4 @@ -use crate::*; +use crate::{env, near, Contract, ContractExt, VersionedContractData}; #[near] impl Contract { diff --git a/contracts/satoshi-bridge/src/utils.rs b/contracts/satoshi-bridge/src/utils.rs index 317498b4..36fc6159 100644 --- a/contracts/satoshi-bridge/src/utils.rs +++ b/contracts/satoshi-bridge/src/utils.rs @@ -1,6 +1,6 @@ use bitcoin::hashes::Hash; -use crate::*; +use crate::{env, Timestamp}; pub const UTXO_STORAGE_KEY_TAG: &str = "@"; @@ -18,7 +18,8 @@ pub fn to_nano(sec: u32) -> Timestamp { } pub fn nano_to_sec(nano: u64) -> u32 { - (nano / 10u64.pow(9)) as u32 + u32::try_from(nano / 10u64.pow(9)) + .unwrap_or_else(|_| env::panic_str("Timestamp overflow when converting nano to sec")) } pub mod u64_dec_format { diff --git a/contracts/satoshi-bridge/src/utxo.rs b/contracts/satoshi-bridge/src/utxo.rs index ed245dd6..447b003f 100644 --- a/contracts/satoshi-bridge/src/utxo.rs +++ b/contracts/satoshi-bridge/src/utxo.rs @@ -1,5 +1,6 @@ -use crate::psbt_wrapper::PsbtWrapper; -use crate::*; +use crate::{ + generate_utxo_storage_key, near, psbt_wrapper::PsbtWrapper, u64_dec_format, Contract, OutPoint, +}; #[near(serializers = [borsh, json])] #[derive(Clone)] @@ -66,7 +67,7 @@ impl Contract { self.data_mut() .utxos .remove(&utxo_storage_key) - .unwrap_or_else(|| panic!("UTXO {} not exist", utxo_storage_key)) + .unwrap_or_else(|| panic!("UTXO {utxo_storage_key} not exist")) }) .collect::>(); (utxo_storage_keys, vutxos) diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index 6ca698ff..36d47bc9 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -142,9 +142,10 @@ impl Context { .args_json(json!({ "controller": root.id(), "bridge_id": bridge_contract.id(), - "name": "Near WTC".to_string(), + "name": "Near BTC".to_string(), "symbol": "NBTC".to_string(), "icon": Some(DATA_IMAGE_SVG_NEAR_ICON.to_string()), + "decimals": 8, })) .transact() .await From 843af344fe10ae3d8c3d479fa4ee0e5d83e03664 Mon Sep 17 00:00:00 2001 From: Karim Date: Wed, 19 Nov 2025 14:08:43 +0000 Subject: [PATCH 11/28] Improve `utxo_id` injection (#18) * improve utxo_id injection * Remove unused code * check field value * Revert "check field value" This reverts commit 3312dcd1231b0cb52a64f36047711917cfff5538. * Bump version * Remove extra prints --------- Co-authored-by: Olga Kunyavskaya --- Cargo.lock | 2 +- contracts/satoshi-bridge/Cargo.toml | 2 +- .../src/btc_light_client/deposit.rs | 44 ++++++++++++++++++- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e1a72fac..65c02307 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3715,7 +3715,7 @@ dependencies = [ [[package]] name = "satoshi-bridge" -version = "0.7.0" +version = "0.7.1" dependencies = [ "bitcoin", "core2", diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 93a11c8f..8b9d9025 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.7.0" +version = "0.7.1" edition.workspace = true publish.workspace = true repository.workspace = true diff --git a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs index d992b6c9..11f0edfe 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs @@ -1,4 +1,4 @@ -use near_sdk::PromiseResult; +use near_sdk::{serde_json::Value, PromiseResult}; use crate::{ burn::GAS_FOR_BURN_CALL, @@ -196,7 +196,8 @@ impl Contract { ); let msg = (!msg.is_empty()) - .then(|| msg.replace("{{UTXO_TX_ID}}", &pending_utxo_info.utxo_storage_key)); + .then(|| inject_utxo_id_in_msg(msg, &pending_utxo_info.utxo_storage_key)); + ext_nbtc::ext(self.internal_config().nbtc_account_id.clone()) .with_static_gas(GAS_FOR_MINT_CALL) .with_attached_deposit(NearToken::from_yoctonear(1)) @@ -272,3 +273,42 @@ fn is_refund_required() -> bool { PromiseResult::Failed => false, } } + +fn inject_utxo_id_in_msg(msg: String, utxo_id: &str) -> String { + if let Ok(mut json) = serde_json::from_str::(&msg) { + if let Some(field) = json.get_mut("utxo_id") { + *field = Value::String(utxo_id.to_string()); + return serde_json::to_string(&json).unwrap(); + } + } + msg +} + +#[cfg(test)] +mod tests { + use crate::btc_light_client::deposit::inject_utxo_id_in_msg; + use near_sdk::{json_types::U128, near, serde_json}; + + #[near(serializers=[json])] + #[derive(Debug, Clone)] + pub struct UtxoFinTransferMsg { + pub utxo_id: String, + pub x: String, + pub y: U128, + pub z: String, + } + + #[test] + fn test_utxo_id_injection() { + let duplicated_msg = + r#"{"utxo_id":"first","utxo_id":"second","x":"some_recipient","y":"1000","z":"OS"}"# + .to_string(); + + let injected_msg = inject_utxo_id_in_msg(duplicated_msg, "correct_utxo_id"); + let parsed_msg: UtxoFinTransferMsg = serde_json::from_str(&injected_msg).unwrap(); + assert_eq!(parsed_msg.utxo_id, "correct_utxo_id"); + + let expected = r#"{"utxo_id":"correct_utxo_id","x":"some_recipient","y":"1000","z":"OS"}"#; + assert_eq!(injected_msg, expected); + } +} From 624c46c59a3fcd4eb19b1d122b64d58522b92641 Mon Sep 17 00:00:00 2001 From: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> Date: Wed, 19 Nov 2025 20:08:28 -0500 Subject: [PATCH 12/28] fix: `utxo_id` injection in nested json (#19) * fix: `utxo_id` injection in nested json * chore: fmt * chore: simplify test * fix: escaped json * fix: clippy * fix: use enum * feat: removed escaped json * feat: added already set utxo id test * chore: bumped version --- Cargo.lock | 2 +- contracts/satoshi-bridge/Cargo.toml | 2 +- .../src/btc_light_client/deposit.rs | 95 ++++++++++++++++--- 3 files changed, 82 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 65c02307..ad45a018 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3715,7 +3715,7 @@ dependencies = [ [[package]] name = "satoshi-bridge" -version = "0.7.1" +version = "0.7.2" dependencies = [ "bitcoin", "core2", diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 8b9d9025..7e30891a 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.7.1" +version = "0.7.2" edition.workspace = true publish.workspace = true repository.workspace = true diff --git a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs index 11f0edfe..7b69aa9d 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs @@ -275,40 +275,105 @@ fn is_refund_required() -> bool { } fn inject_utxo_id_in_msg(msg: String, utxo_id: &str) -> String { - if let Ok(mut json) = serde_json::from_str::(&msg) { - if let Some(field) = json.get_mut("utxo_id") { - *field = Value::String(utxo_id.to_string()); - return serde_json::to_string(&json).unwrap(); + fn inject(value: &mut Value, utxo_id: &str) { + match value { + Value::Object(map) => { + for (k, v) in map.iter_mut() { + if k == "utxo_id" { + *v = Value::String(utxo_id.to_string()); + } else { + inject(v, utxo_id); + } + } + } + Value::Array(arr) => { + for v in arr.iter_mut() { + inject(v, utxo_id); + } + } + _ => {} } } - msg + + if let Ok(mut json) = serde_json::from_str::(&msg) { + inject(&mut json, utxo_id); + serde_json::to_string(&json).unwrap() + } else { + msg + } } #[cfg(test)] mod tests { use crate::btc_light_client::deposit::inject_utxo_id_in_msg; - use near_sdk::{json_types::U128, near, serde_json}; + use near_sdk::{near, serde_json}; #[near(serializers=[json])] - #[derive(Debug, Clone)] + #[derive(Debug, Clone, PartialEq, Eq)] pub struct UtxoFinTransferMsg { pub utxo_id: String, - pub x: String, - pub y: U128, - pub z: String, + pub recipient: String, + pub relayer_fee: String, + pub msg: String, + } + + #[near(serializers=[json])] + #[derive(Debug, Clone, PartialEq, Eq)] + pub enum BridgeOnTransferMsg { + UtxoFinTransfer(UtxoFinTransferMsg), } #[test] - fn test_utxo_id_injection() { + fn test_duplicated_utxo_id_injection() { let duplicated_msg = - r#"{"utxo_id":"first","utxo_id":"second","x":"some_recipient","y":"1000","z":"OS"}"# + r#"{"utxo_id":"first","utxo_id":"second","recipient":"some_recipient","relayer_fee":"1000","msg":"OS"}"# .to_string(); let injected_msg = inject_utxo_id_in_msg(duplicated_msg, "correct_utxo_id"); let parsed_msg: UtxoFinTransferMsg = serde_json::from_str(&injected_msg).unwrap(); - assert_eq!(parsed_msg.utxo_id, "correct_utxo_id"); + let expected = UtxoFinTransferMsg { + utxo_id: "correct_utxo_id".to_string(), + recipient: "some_recipient".to_string(), + relayer_fee: "1000".to_string(), + msg: "OS".to_string(), + }; + + assert_eq!(parsed_msg, expected); + } + + #[test] + fn test_utxo_id_injection() { + let nested_msg = + r#"{"UtxoFinTransfer":{"msg":"OS","recipient":"some_recipient","relayer_fee":"1000","utxo_id":"{{UTXO_TX_ID}}"}}"# + .to_string(); + + let injected_msg = inject_utxo_id_in_msg(nested_msg, "correct_utxo_id"); + let parsed_msg: BridgeOnTransferMsg = serde_json::from_str(&injected_msg).unwrap(); + let expected = BridgeOnTransferMsg::UtxoFinTransfer(UtxoFinTransferMsg { + utxo_id: "correct_utxo_id".to_string(), + recipient: "some_recipient".to_string(), + relayer_fee: "1000".to_string(), + msg: "OS".to_string(), + }); + + assert_eq!(parsed_msg, expected); + } + + #[test] + fn test_already_set_utxo_id_injection() { + let nested_msg = + r#"{"UtxoFinTransfer":{"msg":"OS","recipient":"{{UTXO_TX_ID}}","relayer_fee":"1000","utxo_id":"invalid_utxo_id"}}"# + .to_string(); + + let injected_msg = inject_utxo_id_in_msg(nested_msg, "correct_utxo_id"); + let parsed_msg: BridgeOnTransferMsg = serde_json::from_str(&injected_msg).unwrap(); + let expected = BridgeOnTransferMsg::UtxoFinTransfer(UtxoFinTransferMsg { + utxo_id: "correct_utxo_id".to_string(), + recipient: "{{UTXO_TX_ID}}".to_string(), + relayer_fee: "1000".to_string(), + msg: "OS".to_string(), + }); - let expected = r#"{"utxo_id":"correct_utxo_id","x":"some_recipient","y":"1000","z":"OS"}"#; - assert_eq!(injected_msg, expected); + assert_eq!(parsed_msg, expected); } } From 22510c0d6e22f900d974860e23ab1e260a521d46 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Fri, 21 Nov 2025 16:47:20 +0000 Subject: [PATCH 13/28] Create and check proposals for update nBTC (#10) * create proposal script * fix cmp * check proposal script * add tmp folder * improve view command * update migration proposal * Revert "update migration proposal" This reverts commit fbd5c0f78ceae2c09f2bcc1dbf47874b58445851. * NEAR_NETWORK VAR * update hash * check_proposal script * add proposal id in check proposal --------- Co-authored-by: karim-en --- migrate/check_proposal.sh | 31 +++++++++++++++++++++++++ migrate/create_proposal.sh | 47 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100755 migrate/check_proposal.sh create mode 100755 migrate/create_proposal.sh diff --git a/migrate/check_proposal.sh b/migrate/check_proposal.sh new file mode 100755 index 00000000..5fff4f5e --- /dev/null +++ b/migrate/check_proposal.sh @@ -0,0 +1,31 @@ +PROPOSAL_ID=187 +EXPECTED_NBTC_BS58_HASH=GtmZ6FMxRCN7KcANFDaNmR5JK2rusKAeyGaDSFTNoWvx +DAO_ACCOUNT_ID=rainbowbridge.sputnik-dao.near +NEAR_NETWORK=mainnet + +mkdir -p tmp + +PROP_JSON=./tmp/actual_proposal.json +WASM_PATH=./tmp/decoded_args.wasm + +near contract call-function as-read-only "$DAO_ACCOUNT_ID" get_proposal json-args "{\"id\": $PROPOSAL_ID}" network-config $NEAR_NETWORK now > $PROP_JSON + +if ! jq -e '.kind.FunctionCall.actions[0].args' "$PROP_JSON" >/dev/null 2>&1; then + echo "❌ kind.FunctionCall.actions[0].args not found" + echo "File: $PROP_JSON" + exit 1 +fi + +WASM_B64="$(jq -r '.kind.FunctionCall.actions[0].args' "$PROP_JSON")" +printf '%s' "$WASM_B64" | base64 -d > "$WASM_PATH" + +DECODED_NBTC_BS58_HASH=$(sha256sum $WASM_PATH | awk '{print $1}' | xxd -r -p | base58) +if [[ "$DECODED_NBTC_BS58_HASH" != "$EXPECTED_NBTC_BS58_HASH" ]]; then + echo "❌ Incorrect nBTC wasm hash" + echo "Expected: $EXPECTED_NBTC_BS58_HASH" + echo "Actual: $DECODED_NBTC_BS58_HASH" + exit 1 +else + echo "✅ nBTC wasm hash is correct" + exit 0 +fi diff --git a/migrate/create_proposal.sh b/migrate/create_proposal.sh new file mode 100755 index 00000000..df89fdc7 --- /dev/null +++ b/migrate/create_proposal.sh @@ -0,0 +1,47 @@ +EXPECTED_NBTC_BS58_HASH=3dXNLxNT1cSso4SeDzffnpq1SynCBb95WF9gBLVYvYSE +NBTC_ACCOUNT_ID=nbtc.bridge.near +DAO_ACCOUNT_ID=rainbowbridge.sputnik-dao.near +SIGNER_ACCOUNT_ID=bridge-ops.near +NEAR_NETWORK=mainnet + +mkdir -p tmp + +cd ../contracts/nbtc +cargo near build reproducible-wasm +cd ../../migrate + +NBTC_WASM_PATH=../target/near/nbtc/nbtc.wasm +ACTUAL_NBTC_BS58_HASH=$(sha256sum $NBTC_WASM_PATH | awk '{print $1}' | xxd -r -p | base58) + +if [[ "$ACTUAL_NBTC_BS58_HASH" != "$EXPECTED_NBTC_BS58_HASH" ]]; then + echo "❌ Incorrect nBTC wasm hash" + echo "Expected: $EXPECTED_NBTC_BS58_HASH" + echo "Actual: $ACTUAL_NBTC_BS58_HASH" + exit 1 +fi + +WASM_B64=$(base64 -w 0 $NBTC_WASM_PATH 2>/dev/null || base64 $NBTC_WASM_PATH | tr -d '\n') + +{ + echo '{ + "proposal": { + "description": "Upgrade + migrate nBTC", + "kind": { + "FunctionCall": { + "receiver_id": "'$NBTC_ACCOUNT_ID'", + "actions": [ + { + "method_name": "upgrade_and_migrate", + "args": "'$WASM_B64'", + "deposit": "0", + "gas": "180000000000000" + } + ] + } + } + } + }' +} > ./tmp/proposal.json + + +near contract call-function as-transaction $DAO_ACCOUNT_ID add_proposal file-args ./tmp/proposal.json prepaid-gas '100.0 Tgas' attached-deposit '1 NEAR' sign-as $SIGNER_ACCOUNT_ID network-config $NEAR_NETWORK sign-with-keychain send From e06f92fdd1e3a3231fb8669ab699afb1ce5b4b32 Mon Sep 17 00:00:00 2001 From: Karim Date: Wed, 26 Nov 2025 15:07:27 +0000 Subject: [PATCH 14/28] Activate NU6.1 on mainnet (#21) * Activate NU6.1 on mainnet * Bump version --- Cargo.lock | 2 +- contracts/satoshi-bridge/Cargo.toml | 2 +- contracts/satoshi-bridge/src/network.rs | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ad45a018..d4805a68 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3715,7 +3715,7 @@ dependencies = [ [[package]] name = "satoshi-bridge" -version = "0.7.2" +version = "0.7.3" dependencies = [ "bitcoin", "core2", diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 7e30891a..6e853153 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.7.2" +version = "0.7.3" edition.workspace = true publish.workspace = true repository.workspace = true diff --git a/contracts/satoshi-bridge/src/network.rs b/contracts/satoshi-bridge/src/network.rs index 53e47d53..7213f6ba 100644 --- a/contracts/satoshi-bridge/src/network.rs +++ b/contracts/satoshi-bridge/src/network.rs @@ -22,16 +22,18 @@ pub enum Chain { } #[cfg(feature = "zcash")] pub struct BranchIdUpdateBlockHeight { - pub bu6_1_update: u32, + pub nu6_1_update: u32, } #[cfg(feature = "zcash")] impl BranchIdUpdateBlockHeight { pub fn new(chain: &Chain) -> Self { match chain { - Chain::ZcashMainnet => Self { bu6_1_update: 0 }, + Chain::ZcashMainnet => Self { + nu6_1_update: 3146400, + }, Chain::ZcashTestnet => Self { - bu6_1_update: 3536500, + nu6_1_update: 3536500, }, _ => unreachable!(), } @@ -41,7 +43,7 @@ impl Chain { #[cfg(feature = "zcash")] pub fn get_branch_id(&self, block_height: u32) -> BranchId { let block_height_update = BranchIdUpdateBlockHeight::new(self); - if block_height_update.bu6_1_update != 0 && block_height >= block_height_update.bu6_1_update + if block_height_update.nu6_1_update != 0 && block_height >= block_height_update.nu6_1_update { return BranchId::Nu6_1; } From 533e4617c7bcd8fadc77d842c1f8a9002fb71425 Mon Sep 17 00:00:00 2001 From: Karim Date: Mon, 12 Jan 2026 18:17:38 +0000 Subject: [PATCH 15/28] feat: shielded TX support (#6) * provide metadata for nBTC * fix satoshi bridge cargo toml * address -> script_pubkey * btc-p2wpkh -> utxo_chain * remove btc_network * draft zcash tx impl * fix consenses decode * zcash_primitives * fix cargo toml * test for script * fix get output * change signhash * Refactor transaction type * Bump zcash_primitives version * Convert btc tx into zcash tx * Set `final_script_sig` * Fix sighash * fix * fix sequence * zcash build * add zcash features * AddressInner -> Address * new line * test parse address * test from pubkey * improve tests * fix warnings * check zcash fee * safe expiry height * fix expiry_height * add rbf * fix sequence * extract expire_height for cancel_withdraw * fix cancel active utxo managment * fix active utxo managment * utxo_mamagment extract block height * gap into config * Replace last_block_header with last_block_height * construct output for zcash * add simple try from address * parse unified address * script pubkey * fmt for unified address * fix find receiver in list * fix warnings * safe psbt wraper * deserialize * move het hash to sign * extract tx byte * save signature * incapsulate psbt * separate transaction * separate expiry hight * separate psbt creation * separate chain specific functions * separate zcash functions * separate zcash * fix btc * fix warnings * optimize get min fee * remove psbt for zcash * remove unsed function * add get_input_num and get_output_num * fix satoshi bridge * fix new * make psbt field private * reduce copy past * reduce copypast * fix test contract config for zcash * don't panic * fmt * reduce include * updaye zcash_protocol * fix chain id * remove default * add version * fix bitcoin connector * remove bytes_to_btc_transaction * don't use fully-qualified name * fix bitcoin tests * fix check block heigth for branch id * save block height * fix * fix make * fix valid confiramtions range * Bump version * fix: use `U128` type for amount in `ft_on_transfer_callback` * provide max gas fee * Add orchard support * Add comments * Add comment * fix outputs checks * Calculate sighash with `orchard_bundle` * Implement Orchard Bundle Validation for Zcash Withdrawals (#20) * feat: zcash validation * fix: use ZIP-317 formula with orchard action count for fee calculation Previously, get_min_fee() hardcoded 0 for orchard_action_count when calling the ZIP-317 fee_required function. This resulted in incorrect fee calculations for transactions with Orchard bundles. Now properly counts actions from the orchard bundle (if present) and passes this to the ZIP-317 FeeRule. The formula accounts for: - Transparent inputs (P2PKH standard size) - Transparent outputs (serialized size) - Orchard actions (actual count from bundle) The fee calculation varies with transaction structure per ZIP-317 specification - 10,000 satoshis is just the minimum for simple transactions with minimal inputs/outputs. * fix: replace hardcoded gas fee with ZIP-317 calculation Previously used hardcoded 10000 satoshis as default gas fee. Now: 1. Calculate actual fee using ZIP-317 formula via psbt.get_min_fee() 2. Use max_gas_fee as an upper bound when provided 3. Fall back to computed fee when max_gas_fee not provided This properly accounts for transaction structure (inputs, outputs, orchard actions) per ZIP-317 spec. The fee varies with tx complexity rather than using a fixed minimum value. Changes in contract_methods.rs: - Create preliminary PSBT to compute fee before validation - Recreate PSBT with correct expected amounts for validation Changes in token_receiver.rs: - Compute ZIP-317 fee and use max_gas_fee as cap * fix: update minimum orchard actions check from 1 to 2 Per Orchard protocol specification, bundles must contain at least 2 actions for privacy (MIN_ACTIONS = 2). The Orchard builder automatically pads bundles with dummy actions to meet this minimum. Changes: - Added MIN_ACTIONS constant (2) in orchard_policy.rs - Updated validation to require >= MIN_ACTIONS instead of == 1 - Applied to both strict validation (with expected values) and looser validation (internal operations) - Improved error messages to show expected vs actual action count Reference: https://github.com/zcash/orchard/blob/main/src/builder.rs#L36 * fix: use base64 encoding only for ZCash to preserve Bitcoin compatibility Previously, all chains used base64 encoding for tx_bytes in the SignedBtcTransaction event, which breaks backward compatibility for Bitcoin indexers expecting hex encoding. Now: - ZCash chains (mainnet/testnet): Use base64 (1.33x overhead) - Beneficial for larger Orchard transactions - Bitcoin/other chains: Use hex encoding (backward compatible) The event field name remains `tx_bytes_base64` but contains hex for non-ZCash chains to avoid breaking the event structure. * fix: validate Unified Address for actual Orchard receiver presence Previously, the code checked if an address starts with "u1" or "u" to determine if an Orchard bundle is required. This is incorrect because Unified Addresses can contain only transparent receivers (P2PKH/P2SH), which is a valid scenario without an Orchard bundle. Now: - Added has_orchard_receiver() helper to check if a Unified Address actually contains an Orchard receiver - Only require Orchard bundle if the UA has an Orchard receiver - Allow Unified Addresses with only transparent receivers to work without an Orchard bundle Transparent addresses can be extracted from Unified Addresses, which is a valid use case. * fix: reject mixed Orchard and transparent output scenarios Previously, the code would crash when a Unified Address with only an Orchard receiver was provided along with transparent change outputs. The transparent validation path would fail trying to extract a transparent script_pubkey from an Orchard-only UA. Now: - Added has_orchard_bundle() helper to PsbtWrapper - Explicitly reject transactions with both Orchard bundle and transparent outputs - Require either pure Orchard (no transparent outputs) or pure transparent (no Orchard bundle) This prevents the classic case where target has Orchard receiver but change goes to transparent output, which would cause the program to crash. The restriction simplifies validation logic and avoids edge cases. Users must choose one path or the other for clarity. * fix: validate actual Orchard output amount from bundle Previously, for Orchard-only withdrawals, the code calculated what the output amount *should* be but didn't validate the actual amount in the Orchard bundle. This was a critical security issue - users could provide any amount in their Orchard bundle. Now: - Added get_orchard_output_amount() to PsbtWrapper that recovers the actual output amount using the bridge OVK - Validate that the recovered Orchard amount is within the expected range (accounting for fees and potential dust adjustment) - Use the same validation logic as transparent outputs: allow a range between (expected - min_change_amount) and expected The solution deserializes and validates the Orchard output amount, ensuring users receive the correct amount after fees. * fix: support mixed Orchard output with transparent change (baseline case) Previously, commit 9ce848d3001496bbae293fb2ad54c03848f9d1b7 rejected mixed scenarios (Orchard + transparent), but this was incorrect. The baseline scenario for Orchard withdrawals is: - 1 Orchard output to the user's Unified Address - 1+ transparent change outputs back to the bridge Now properly supports mixed scenarios: - Validate the Orchard output amount (to user) - Validate all transparent outputs are change to bridge address - Ensure change amounts are within min/max limits - Verify change + gas_fee doesn't exceed input The new validation logic: - Orchard bundle present: Validate Orchard output + transparent change - No Orchard bundle: Use existing transparent-only validation * fix: comprehensive Orchard bundle validation improvements Fixed 4 critical validation gaps identified during code review: 1. **Value Balance Validation** (NEW) - Now validates bundle.value_balance() equals -(output_amount) - Ensures value flows correctly from transparent to Orchard pool - Prevents malicious bundles with incorrect value balance 2. **All Outputs Validated** (NEW) - Iterates through ALL actions/outputs (not just first) - Ensures exactly 1 non-zero output exists - Prevents hiding extra outputs in unused actions 3. **Range Validation for Dust Adjustment** (FIXED) - Changed from exact match to range validation - Allows user to adjust amount for dust (like transparent does) - Range: [expected - min_change_amount, expected] - Provides same flexibility as transparent withdrawals 4. **Exact Transparent Accounting** (FIXED) - Changed `<=` to `==` in transparent change validation - Validates: input == orchard_amount + change + gas_fee - Prevents missing value in accounting - Ensures value balance integrity These fixes provide defense-in-depth. While the ZCash network would catch most issues, we now validate comprehensively at contract level to reject bad requests early and ensure robust accounting. * tmp contract fix * Min Actions = 1 * safe output * remove unused function * separate validation * merge checks * fix add extra amount * remove unused function * remove changes * fmt * remove amount checks * remove no needed check * move orchard validation into check function * remove gas calculation * provide expire height * fix get_branch_id * reduce copypast * event beckword compatibility * fix warnings * clippy * fix compilation for bitcoin * fmt * fix: add expiry_height field to tests Add missing expiry_height: None to TokenReceiverMessage::Withdraw in test files after the field was added to the struct. * save target_address * orchard bundle in RBF * chain specific data * String -> Base64 * remove dublicate code * return Error on Orchard Bundle * check the expected actions num * clean up * save recipient_address to psbt * check version * fix tests compilation * fix: update fixtures, exports, and tests * fix: replace unwrap() with descriptive error messages - bitcoin_utils/psbt_wrapper: add ERR_INVALID_PSBT_HEX, ERR_EXTRACT_TX, ERR_MISSING_WITNESS_UTXO, ERR_SIGHASH messages - zcash_utils/psbt_wrapper: add ERR_INVALID_ORCHARD_BUNDLE, ERR_ORCHARD_VALIDATION, and detailed ERR_INVALID_PSBT messages for all deserialization steps - config: add ERR_CONFIG messages for uninitialized contract/config - account: include account_id in ERR_ACCOUNT_NOT_REGISTERED message * provide chain_specific data * remove unnecessary .clone() calls * add type alias for Orchard raw address bytes and simplify extract_orchard_bundle * replace expect() with env::panic_str() to reduce contract size * Update contracts/satoshi-bridge/src/network.rs Co-authored-by: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> * chore: imported `OrchardRawAddress` --------- Co-authored-by: Olga Kunyavskaya Co-authored-by: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> Co-authored-by: Ivan Frolov * Avoid extra clone of Orchard bundle * Replace panic with panic_str * Bump version * Fix clippy * Fix build variant * Fix orchard tests * Run lint and tests to CI * Revert default * Remove added ci * Remove unused fmt * Fix tests * Fix orchard test * Fix orchard test * Add missed `safe_deposit` * add different wasm path * fix orchard tests * fix test_base * fix check predecessor account id * fix test * fix check outputs number * unwrap -> expect * extract expiry height check --------- Co-authored-by: Olga Kunyavskaya Co-authored-by: Ivan Frolov Co-authored-by: r-near <163825889+r-near@users.noreply.github.com> Co-authored-by: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> --- .github/workflows/ci.yml | 14 +- Cargo.lock | 6 +- Makefile | 63 +-- contracts/mock-btc-light-client/src/lib.rs | 5 + contracts/satoshi-bridge/Cargo.toml | 25 +- contracts/satoshi-bridge/src/account.rs | 13 +- contracts/satoshi-bridge/src/api/bridge.rs | 31 +- .../satoshi-bridge/src/api/token_receiver.rs | 22 +- .../src/bitcoin_utils/contract_methods.rs | 31 +- .../satoshi-bridge/src/bitcoin_utils/mod.rs | 1 + .../src/bitcoin_utils/psbt_wrapper.rs | 30 +- .../satoshi-bridge/src/bitcoin_utils/types.rs | 4 + .../satoshi-bridge/src/btc_pending_info.rs | 1 + .../satoshi-bridge/src/chain_signature.rs | 31 +- contracts/satoshi-bridge/src/config.rs | 20 +- contracts/satoshi-bridge/src/event.rs | 3 + contracts/satoshi-bridge/src/kdf.rs | 10 + contracts/satoshi-bridge/src/lib.rs | 6 +- contracts/satoshi-bridge/src/network.rs | 24 ++ contracts/satoshi-bridge/src/psbt.rs | 66 +-- .../src/rbf/active_utxo_management.rs | 1 + .../src/rbf/cancel_active_utxo_management.rs | 1 + .../satoshi-bridge/src/rbf/cancel_withdraw.rs | 3 +- contracts/satoshi-bridge/src/rbf/withdraw.rs | 48 ++- contracts/satoshi-bridge/src/utxo.rs | 5 +- .../src/zcash_utils/contract_methods.rs | 108 ++++- .../satoshi-bridge/src/zcash_utils/mod.rs | 2 + .../src/zcash_utils/orchard_policy.rs | 116 ++++++ .../src/zcash_utils/psbt_wrapper.rs | 287 ++++++++++++-- .../src/zcash_utils/transaction.rs | 39 +- .../satoshi-bridge/src/zcash_utils/types.rs | 8 + .../tests/orchard_bundle_cache_100000.txt | 2 + .../tests/orchard_bundle_cache_170000.txt | 2 + ...01010101010101010101010101010101010101.txt | 2 + ...02020202020202020202020202020202020202.txt | 2 + .../satoshi-bridge/tests/setup/context.rs | 26 +- contracts/satoshi-bridge/tests/setup/mod.rs | 10 + .../satoshi-bridge/tests/setup/orchard.rs | 164 ++++++++ contracts/satoshi-bridge/tests/setup/utils.rs | 139 ++++++- .../tests/test_orchard_validation.rs | 375 ++++++++++++++++++ .../tests/test_orchard_withdrawal.rs | 285 +++++++++++++ .../tests/test_satoshi_bridge.rs | 305 ++++++++------ .../satoshi-bridge/tests/test_upgrade.rs | 12 +- 43 files changed, 1988 insertions(+), 360 deletions(-) create mode 100644 contracts/satoshi-bridge/src/bitcoin_utils/types.rs create mode 100644 contracts/satoshi-bridge/src/zcash_utils/orchard_policy.rs create mode 100644 contracts/satoshi-bridge/src/zcash_utils/types.rs create mode 100644 contracts/satoshi-bridge/tests/orchard_bundle_cache_100000.txt create mode 100644 contracts/satoshi-bridge/tests/orchard_bundle_cache_170000.txt create mode 100644 contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0101010101010101010101010101010101010101010101010101010101010101.txt create mode 100644 contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0202020202020202020202020202020202020202020202020202020202020202.txt create mode 100644 contracts/satoshi-bridge/tests/setup/orchard.rs create mode 100644 contracts/satoshi-bridge/tests/test_orchard_validation.rs create mode 100644 contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1bda6dc1..120c9c83 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,19 +28,13 @@ jobs: with: cache-provider: warpbuild - - name: Check formatting - run: cargo fmt --all -- --check - - - name: Run Clippy - run: cargo clippy --lib --bins --examples -- -D warnings -D clippy::pedantic -D clippy::as_conversions -A clippy::must_use_candidate -A clippy::needless_pass_by_value -A clippy::missing_panics_doc -A clippy::missing_errors_doc -A clippy::match_same_arms -A clippy::unused_self -A clippy::too_many_lines + - name: Run lint + run: make lint - name: Install cargo-near run: | curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh - - name: Build contracts - run: make build - timeout-minutes: 60 - - name: Run tests - run: cargo test --all -- --nocapture + run: make test + diff --git a/Cargo.lock b/Cargo.lock index d4805a68..ba1975f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3715,9 +3715,10 @@ dependencies = [ [[package]] name = "satoshi-bridge" -version = "0.7.3" +version = "0.7.4" dependencies = [ "bitcoin", + "bs58 0.5.1", "core2", "crypto-shared", "ed25519-dalek", @@ -3728,6 +3729,9 @@ dependencies = [ "near-plugins", "near-sdk", "near-workspaces", + "orchard", + "rand", + "sapling-crypto", "tokio", "zcash_address", "zcash_primitives", diff --git a/Makefile b/Makefile index 00b22693..f8dd2a50 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,48 @@ -.PHONY: zcash-bridge +MAKEFILE_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +#INT_OPTIONS = -D warnings -D clippy::pedantic -A clippy::must_use_candidate -A clippy::used_underscore_binding -A clippy::needless_range_loop //TODO: enable it later +BRIDGE_MANIFEST := $(MAKEFILE_DIR)/contracts/satoshi-bridge/Cargo.toml RFLAGS="-C link-arg=-s" -build: lint satoshi-bridge zcash-bridge nbtc mock-chain-signatures mock-btc-light-client mock-dapp +FEATURES = bitcoin zcash -lint: +release: $(addprefix build-,$(FEATURES)) + $(call build_release_wasm,nbtc,nbtc) + +build-local: $(addprefix build-local-,$(FEATURES)) nbtc mock-chain-signatures mock-btc-light-client mock-dapp + +lint: $(addprefix clippy-,$(FEATURES)) $(addprefix fmt-,$(FEATURES)) @cargo fmt --all - @cargo clippy --fix --allow-dirty --allow-staged + @cargo clippy -- $(LINT_OPTIONS) -satoshi-bridge: contracts/satoshi-bridge - $(call local_build_wasm,satoshi-bridge,satoshi_bridge) +test: build-local $(addprefix test-,$(FEATURES)) -zcash-bridge: contracts/satoshi-bridge - $(call local_build_zcash_wasm) +$(foreach feature,$(FEATURES), \ + $(eval build-$(feature): ; \ + cargo near build reproducible-wasm --variant "$(feature)" --manifest-path $(BRIDGE_MANIFEST) && \ + mkdir -p res && mv ./target/near/satoshi_bridge/satoshi_bridge.wasm ./res/$(feature)_bridge_release.wasm \ + ) \ +) + +$(foreach feature,$(FEATURES), \ + $(eval build-local-$(feature): ; \ + cargo near build non-reproducible-wasm --features "$(feature)" --manifest-path $(BRIDGE_MANIFEST) --no-abi && \ + mkdir -p res && mv ./target/near/satoshi_bridge/satoshi_bridge.wasm ./res/$(feature)_bridge.wasm \ + ) \ +) + +$(foreach feature,$(FEATURES), \ + $(eval clippy-$(feature): ; cargo clippy --no-default-features --features "$(feature)" --manifest-path $(BRIDGE_MANIFEST) -- $(LINT_OPTIONS)) \ +) + +$(foreach feature,$(FEATURES), \ + $(eval fmt-$(feature): ; cargo fmt --all --check --manifest-path $(BRIDGE_MANIFEST)) \ +) + +$(foreach feature,$(FEATURES), \ + $(eval test-$(feature): ; cargo test --no-default-features --features "$(feature)" --manifest-path $(BRIDGE_MANIFEST)) \ +) -nbtc: contracts/nbtc - $(call local_build_wasm,nbtc,nbtc) mock-dapp: contracts/mock-dapp $(call local_build_wasm,mock-dapp,mock_dapp) @@ -26,19 +53,9 @@ mock-chain-signatures: contracts/mock-chain-signatures mock-btc-light-client: contracts/mock-btc-light-client $(call local_build_wasm,mock-btc-light-client,mock_btc_light_client) -count: - @tokei ./contracts/satoshi-bridge/src/ --files --exclude unit - @tokei ./contracts/nbtc/src/ --files - -release: - $(call build_release_wasm,satoshi-bridge,satoshi_bridge) - $(call build_release_wasm,nbtc,nbtc) - $(call build_release_zcash_wasm) - -clean: - cargo clean - rm -rf res/ - +nbtc: contracts/nbtc + $(call local_build_wasm,nbtc,nbtc) + define local_build_wasm $(eval PACKAGE_NAME := $(1)) $(eval WASM_NAME := $(2)) diff --git a/contracts/mock-btc-light-client/src/lib.rs b/contracts/mock-btc-light-client/src/lib.rs index 6b03fc5e..c7984e0e 100644 --- a/contracts/mock-btc-light-client/src/lib.rs +++ b/contracts/mock-btc-light-client/src/lib.rs @@ -81,4 +81,9 @@ impl Contract { pub fn verify_transaction_inclusion(&self, #[serializer(borsh)] args: ProofArgs) -> bool { true } + + pub fn get_last_block_height(&self) -> u32 { + // Return a reasonable mock block height for Zcash testnet + 1000 + } } diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 6e853153..eba415f3 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.7.3" +version = "0.7.4" edition.workspace = true publish.workspace = true repository.workspace = true @@ -21,18 +21,11 @@ container_build_command = [ "--no-abi", ] +[package.metadata.near.reproducible_build.variant.bitcoin] +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-abi", "--no-default-features", "--features", "bitcoin"] + [package.metadata.near.reproducible_build.variant.zcash] -container_build_command = [ - "cargo", - "near", - "build", - "non-reproducible-wasm", - "--locked", - "--no-abi", - "--no-default-features", - "--features", - "zcash" -] +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-abi", "--no-default-features", "--features", "zcash"] [dependencies] near-sdk.workspace = true @@ -45,6 +38,8 @@ ed25519-dalek = "2.1.0" crypto-shared = { git = "https://github.com/near/mpc_old", rev = "0afee9004a1b1c3386940e60c28cff7cf1b5978c" } zcash_primitives = { version = "0.24.0", default-features = false, features = ["circuits", "transparent-inputs"], optional = true } zcash_transparent = { version = "0.4.0", features = ["transparent-inputs"], optional = true } +orchard = { version = "0.11.0", default-features = false, optional = true } +sapling-crypto = { version = "0.5.0", default-features = false, optional = true } zcash_protocol = { version = "0.6.1" } core2 = { version = "0.3", optional = true } zcash_address = { version = "0.9.0" } @@ -55,7 +50,11 @@ getrandom = { version = "0.2.12", features = ["custom"] } [dev-dependencies] near-workspaces = { version = "0.20", features = ["unstable"] } tokio = { version = "1.12.0", features = ["full"] } +rand = "0.8" +hex = "0.4" +bs58 = "0.5" [features] default = [] -zcash = ["zcash_primitives", "zcash_transparent", "core2"] +zcash = ["zcash_primitives", "zcash_transparent", "orchard", "core2", "sapling-crypto"] +bitcoin = [] diff --git a/contracts/satoshi-bridge/src/account.rs b/contracts/satoshi-bridge/src/account.rs index 6d02b2f4..6fc2cef8 100644 --- a/contracts/satoshi-bridge/src/account.rs +++ b/contracts/satoshi-bridge/src/account.rs @@ -1,4 +1,5 @@ use crate::{near, u128_dec_format, AccountId, Contract}; +use near_sdk::env; use std::collections::HashSet; #[near(serializers = [borsh, json])] @@ -85,16 +86,20 @@ impl Contract { self.data() .accounts .get(account_id) - .map(Into::into) - .expect("ACCOUNT NOT REGISTERED") + .map(|o| o.into()) + .unwrap_or_else(|| { + env::panic_str(&format!("ERR_ACCOUNT_NOT_REGISTERED: {}", account_id)) + }) } pub fn internal_unwrap_mut_account(&mut self, account_id: &AccountId) -> &mut Account { self.data_mut() .accounts .get_mut(account_id) - .map(Into::into) - .expect("ACCOUNT NOT REGISTERED") + .map(|o| o.into()) + .unwrap_or_else(|| { + env::panic_str(&format!("ERR_ACCOUNT_NOT_REGISTERED: {}", account_id)) + }) } pub fn internal_unwrap_or_create_mut_account( diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index 67474852..d61975cf 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -1,9 +1,5 @@ -use crate::{ - assert_one_yocto, env, generate_utxo_storage_key, get_deposit_path, nano_to_sec, near, - psbt_wrapper::PsbtWrapper, require, AccessControllable, AccountId, BTCPendingInfo, Contract, - ContractExt, DepositMsg, Event, LockTime, OriginalState, OutPoint, Pausable, PendingInfoStage, - PendingInfoState, PendingUTXOInfo, Promise, Role, TxOut, WrappedTransaction, UTXO, -}; +use crate::psbt_wrapper::PsbtWrapper; +use crate::*; use near_plugins::{access_control_any, pause}; #[near] @@ -204,7 +200,12 @@ impl Contract { /// * `original_btc_pending_verify_id` - Pending verify ID of the original transaction. /// * `output` - Modified output. #[pause(except(roles(Role::DAO)))] - pub fn withdraw_rbf(&mut self, original_btc_pending_verify_id: String, output: Vec) { + pub fn withdraw_rbf( + &mut self, + original_btc_pending_verify_id: String, + output: Vec, + chain_specific_data: Option, + ) { let account_id = env::predecessor_account_id(); require!( self.internal_unwrap_account(&account_id) @@ -213,7 +214,12 @@ impl Contract { "Previous btc tx has not been signed" ); - self.withdraw_rbf_chain_specific(account_id, original_btc_pending_verify_id, output); + self.withdraw_rbf_chain_specific( + account_id, + original_btc_pending_verify_id, + output, + chain_specific_data, + ); } /// If the user's Withdraw is not verified within a certain time, the protocol can actively cancel the Withdraw through RBF, with the gas fee borne by the user. @@ -242,6 +248,7 @@ impl Contract { user_account_id, original_btc_pending_verify_id, output, + None, ); } @@ -327,6 +334,7 @@ impl Contract { account_id, original_btc_pending_verify_id, output, + None, ); } @@ -359,6 +367,7 @@ impl Contract { user_account_id, original_btc_pending_verify_id, output, + None, ); } @@ -416,7 +425,7 @@ impl Contract { pub fn create_active_utxo_management_pending_info( &mut self, account_id: AccountId, - psbt: &mut PsbtWrapper, + mut psbt: PsbtWrapper, ) { let account = self.internal_unwrap_account(&account_id); require!( @@ -424,9 +433,9 @@ impl Contract { "Previous btc tx has not been signed" ); - let (utxo_storage_keys, vutxos) = self.generate_vutxos(psbt); + let (utxo_storage_keys, vutxos) = self.generate_vutxos(&mut psbt); let (actual_received_amount, gas_fee) = - self.check_active_management_psbt_valid(psbt, &vutxos); + self.check_active_management_psbt_valid(&psbt, &vutxos); require!( gas_fee <= self.data().cur_available_protocol_fee, "Insufficient protocol_fee" diff --git a/contracts/satoshi-bridge/src/api/token_receiver.rs b/contracts/satoshi-bridge/src/api/token_receiver.rs index 26a0c6a0..7906b8ec 100644 --- a/contracts/satoshi-bridge/src/api/token_receiver.rs +++ b/contracts/satoshi-bridge/src/api/token_receiver.rs @@ -1,9 +1,4 @@ -use crate::{ - env, nano_to_sec, near, psbt_wrapper::PsbtWrapper, require, serde_json, AccessControllable, - AccountId, BTCPendingInfo, Contract, ContractExt, Event, Gas, OriginalState, OutPoint, - Pausable, PendingInfoStage, PendingInfoState, PromiseOrValue, Role, TxOut, U128, -}; - +use crate::{psbt_wrapper::PsbtWrapper, *}; use near_contract_standards::fungible_token::receiver::FungibleTokenReceiver; use near_plugins::pause; @@ -12,11 +7,13 @@ pub const GAS_FOR_FT_ON_TRANSFER_CALL_BACK: Gas = Gas::from_tgas(100); #[near(serializers = [json])] pub enum TokenReceiverMessage { DepositProtocolFee, + // Here is the withdraw message structure that will be sent from user or dApp to the btc/zcash connector Withdraw { target_btc_address: String, input: Vec, output: Vec, max_gas_fee: Option, + chain_specific_data: Option, }, } @@ -56,6 +53,7 @@ impl FungibleTokenReceiver for Contract { input, output, max_gas_fee, + chain_specific_data, } => self.ft_on_transfer_withdraw_chain_specific( sender_id, amount, @@ -63,6 +61,7 @@ impl FungibleTokenReceiver for Contract { input, output, max_gas_fee, + chain_specific_data, ), } } @@ -74,27 +73,24 @@ impl Contract { sender_id: AccountId, amount: u128, target_btc_address: String, - psbt: &mut PsbtWrapper, + mut psbt: PsbtWrapper, max_gas_fee: Option, ) { - let (utxo_storage_keys, vutxos) = self.generate_vutxos(psbt); + let (utxo_storage_keys, vutxos) = self.generate_vutxos(&mut psbt); require!( self.internal_unwrap_or_create_mut_account(&sender_id) .btc_pending_sign_id .is_none(), "Previous btc tx has not been signed" ); - let target_address_script_pubkey = self - .internal_config() - .string_to_script_pubkey(&target_btc_address); let withdraw_change_address_script_pubkey = self.internal_config().get_change_script_pubkey(); let withdraw_fee = self.internal_config().withdraw_bridge_fee.get_fee(amount); let (actual_received_amount, gas_fee) = self.check_withdraw_psbt_valid( - &target_address_script_pubkey, + target_btc_address.clone(), &withdraw_change_address_script_pubkey, - psbt, + &psbt, &vutxos, amount, withdraw_fee, diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs index e3bb76d4..5a5114c9 100644 --- a/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs +++ b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs @@ -1,3 +1,5 @@ +use crate::bitcoin_utils::types::ChainSpecificData; +use crate::env; use crate::psbt_wrapper::PsbtWrapper; use crate::{BTCPendingInfo, Contract, Event}; use bitcoin::{OutPoint, TxOut}; @@ -11,7 +13,9 @@ macro_rules! define_rbf_method { account_id: AccountId, original_btc_pending_verify_id: String, output: Vec, + _chain_specific_data: Option, ) { + let predecessor_account_id = env::predecessor_account_id(); let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -20,8 +24,12 @@ macro_rules! define_rbf_method { output, ); - let btc_pending_id = - self.$internal_fn(&account_id, original_btc_pending_verify_id, new_psbt); + let btc_pending_id = self.$internal_fn( + &account_id, + original_btc_pending_verify_id, + new_psbt, + predecessor_account_id, + ); self.internal_unwrap_mut_account(&account_id) .btc_pending_sign_id = Some(btc_pending_id.clone()); @@ -36,7 +44,13 @@ macro_rules! define_rbf_method { } impl Contract { - pub(crate) fn check_psbt_chain_specific(&self, _psbt: &PsbtWrapper, _gas_fee: u128) {} + pub(crate) fn check_psbt_chain_specific( + &self, + _psbt: &PsbtWrapper, + _gas_fee: u128, + _target_btc_address: String, + ) { + } pub(crate) fn check_withdraw_chain_specific( original_tx_btc_pending_info: &BTCPendingInfo, @@ -48,6 +62,7 @@ impl Contract { require!(additional_gas_amount > 0, "No gas increase."); } + #[allow(clippy::too_many_arguments)] pub(crate) fn ft_on_transfer_withdraw_chain_specific( &mut self, sender_id: AccountId, @@ -56,13 +71,13 @@ impl Contract { input: Vec, output: Vec, max_gas_fee: Option, + _chain_specific_data: Option, ) -> PromiseOrValue { - let mut psbt = PsbtWrapper::new(input, output); self.create_btc_pending_info( sender_id, amount, target_btc_address, - &mut psbt, + PsbtWrapper::new(input, output), max_gas_fee, ); PromiseOrValue::Value(U128(0)) @@ -85,8 +100,10 @@ impl Contract { input: Vec, output: Vec, ) { - let mut psbt = PsbtWrapper::new(input, output); - self.create_active_utxo_management_pending_info(account_id, &mut psbt); + self.create_active_utxo_management_pending_info( + account_id, + PsbtWrapper::new(input, output), + ); } pub(crate) fn generate_psbt_from_original_psbt_and_new_output( diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/mod.rs b/contracts/satoshi-bridge/src/bitcoin_utils/mod.rs index 89ef3534..18ae7bc9 100644 --- a/contracts/satoshi-bridge/src/bitcoin_utils/mod.rs +++ b/contracts/satoshi-bridge/src/bitcoin_utils/mod.rs @@ -1,3 +1,4 @@ pub mod contract_methods; pub mod psbt_wrapper; pub mod transaction; +pub mod types; diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs index d6a3721d..85c35774 100644 --- a/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs +++ b/contracts/satoshi-bridge/src/bitcoin_utils/psbt_wrapper.rs @@ -105,14 +105,18 @@ impl PsbtWrapper { }) .collect() } + + pub fn add_extra_outputs(&self, _actual_received_amounts: &mut [u128]) -> u128 { + 0 + } pub fn serialize(&self) -> String { self.psbt.serialize_hex() } pub fn deserialize(psbt_hex: &String) -> Self { - let psbt_bytes = hex::decode(psbt_hex).unwrap(); + let psbt_bytes = hex::decode(psbt_hex).expect("ERR_INVALID_PSBT_HEX: failed to decode hex"); Self { - psbt: Psbt::deserialize(&psbt_bytes).expect("ERR_INVALID_PSBT_HEX"), + psbt: Psbt::deserialize(&psbt_bytes).expect("ERR_INVALID_PSBT: failed to parse PSBT"), } } @@ -124,27 +128,27 @@ impl PsbtWrapper { self.psbt .clone() .extract_tx() - .unwrap() + .expect("ERR_EXTRACT_TX: failed to extract transaction from PSBT") .compute_txid() .to_string() } #[allow(unused_variables)] - pub fn get_hash_to_sign(&self, vin: usize, public_key: &bitcoin::PublicKey) -> [u8; 32] { + pub fn get_hash_to_sign(&self, vin: usize, public_keys: &[bitcoin::PublicKey]) -> [u8; 32] { let tx = self.psbt.unsigned_tx.clone(); let mut cache = SighashCache::new(tx); + let witness_utxo = self.psbt.inputs[vin] + .witness_utxo + .as_ref() + .expect("ERR_MISSING_WITNESS_UTXO: input missing witness UTXO data"); cache .p2wpkh_signature_hash( vin, - &self.psbt.inputs[vin] - .witness_utxo - .as_ref() - .unwrap() - .script_pubkey, - self.psbt.inputs[vin].witness_utxo.as_ref().unwrap().value, + &witness_utxo.script_pubkey, + witness_utxo.value, bitcoin::EcdsaSighashType::All, ) - .unwrap() + .expect("ERR_SIGHASH: failed to compute signature hash") .to_raw_hash() .to_byte_array() } @@ -158,4 +162,8 @@ impl PsbtWrapper { self.psbt.inputs[sign_index].final_script_witness = Some(Witness::p2wpkh(&signature.to_btc_signature(), &public_key)); } + + pub fn get_recipient_address(&self) -> Option { + None + } } diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/types.rs b/contracts/satoshi-bridge/src/bitcoin_utils/types.rs new file mode 100644 index 00000000..137cd845 --- /dev/null +++ b/contracts/satoshi-bridge/src/bitcoin_utils/types.rs @@ -0,0 +1,4 @@ +use near_sdk::near; + +#[near(serializers = [json])] +pub struct ChainSpecificData {} diff --git a/contracts/satoshi-bridge/src/btc_pending_info.rs b/contracts/satoshi-bridge/src/btc_pending_info.rs index 108dfeae..cdf15ddc 100644 --- a/contracts/satoshi-bridge/src/btc_pending_info.rs +++ b/contracts/satoshi-bridge/src/btc_pending_info.rs @@ -456,6 +456,7 @@ mod tests { recipient_id: "omni_user_account-20250625-153431.testnet".parse().unwrap(), post_actions: None, extra_msg: None, + safe_deposit: None, }; let path = get_deposit_path(&deposit_msg); diff --git a/contracts/satoshi-bridge/src/chain_signature.rs b/contracts/satoshi-bridge/src/chain_signature.rs index 1a0f2537..19fdc66d 100644 --- a/contracts/satoshi-bridge/src/chain_signature.rs +++ b/contracts/satoshi-bridge/src/chain_signature.rs @@ -79,12 +79,13 @@ impl Contract { sign_index: usize, key_version: u32, ) -> Promise { - let public_key = self.generate_btc_public_key( - &self - .internal_unwrap_btc_pending_info(&btc_pending_sign_id) - .vutxos[sign_index] - .get_path(), - ); + let pending_info = self.internal_unwrap_btc_pending_info(&btc_pending_sign_id); + + let public_keys: Vec<_> = pending_info + .vutxos + .iter() + .map(|vutxo| self.generate_btc_public_key(&vutxo.get_path())) + .collect(); let btc_pending_info = self.internal_unwrap_btc_pending_info(&btc_pending_sign_id); require!( @@ -93,7 +94,7 @@ impl Contract { ); let payload = btc_pending_info .get_psbt() - .get_hash_to_sign(sign_index, &public_key); + .get_hash_to_sign(sign_index, &public_keys); let path = btc_pending_info.vutxos[sign_index].get_path(); self.sign_promise(SignRequest { payload, @@ -140,6 +141,7 @@ impl Contract { if let Some(result_bytes) = promise_result_as_success() { let signature = serde_json::from_slice::(&result_bytes) .expect("Invalid signature"); + let public_key = self .generate_btc_public_key( &self @@ -168,12 +170,27 @@ impl Contract { btc_pending_info.psbt_hex = psbt.serialize(); if btc_pending_info.is_all_signed() { let tx_bytes_with_sign = psbt.extract_tx_bytes_with_sign(); + + // For ZCash chains, use base64 encoding to save space (1.33x vs 2x overhead for hex) + // ZCash transactions with Orchard bundles are larger and benefit from compact encoding + // For Bitcoin chains, keep hex encoding for backward compatibility + + #[cfg(feature = "zcash")] + let tx_bytes_base64 = { + use near_sdk::base64::{engine::general_purpose::STANDARD, Engine}; + STANDARD.encode(&tx_bytes_with_sign) + }; + Event::SignedBtcTransaction { account_id: &account_id, tx_id: btc_pending_sign_id.clone(), + #[cfg(not(feature = "zcash"))] tx_bytes: &tx_bytes_with_sign, + #[cfg(feature = "zcash")] + tx_bytes_base64, } .emit(); + btc_pending_info.tx_bytes_with_sign = Some(tx_bytes_with_sign); btc_pending_info.to_pending_verify_stage(); diff --git a/contracts/satoshi-bridge/src/config.rs b/contracts/satoshi-bridge/src/config.rs index 440e62c9..16141891 100644 --- a/contracts/satoshi-bridge/src/config.rs +++ b/contracts/satoshi-bridge/src/config.rs @@ -142,14 +142,18 @@ impl Config { } pub fn get_change_script_pubkey(&self) -> ScriptBuf { - self.string_to_script_pubkey(self.change_address.as_ref().unwrap()) + self.string_to_script_pubkey( + self.change_address + .as_ref() + .expect("ERR_CONFIG: change_address not configured"), + ) } pub fn string_to_script_pubkey(&self, address_string: &str) -> ScriptBuf { let chain = self.get_utxo_network(); Address::parse(address_string, chain) - .unwrap_or_else(|e| panic!("{address_string}: {e}")) + .unwrap_or_else(|e| env::panic_str(&format!("{address_string}: {e}"))) .script_pubkey() .expect("Failed to get script pubkey") } @@ -187,11 +191,19 @@ impl Config { impl Contract { pub fn internal_mut_config(&mut self) -> &mut Config { - self.data_mut().config.get_mut().as_mut().unwrap() + self.data_mut() + .config + .get_mut() + .as_mut() + .expect("ERR_CONFIG: contract not initialized") } pub fn internal_config(&self) -> &Config { - self.data().config.get().as_ref().unwrap() + self.data() + .config + .get() + .as_ref() + .expect("ERR_CONFIG: contract not initialized") } pub fn get_confirmations(&self, config: &Config, satoshi_amount: u128) -> u64 { diff --git a/contracts/satoshi-bridge/src/event.rs b/contracts/satoshi-bridge/src/event.rs index 590b9879..eeca095b 100644 --- a/contracts/satoshi-bridge/src/event.rs +++ b/contracts/satoshi-bridge/src/event.rs @@ -53,7 +53,10 @@ pub enum Event<'a> { SignedBtcTransaction { account_id: &'a AccountId, tx_id: String, + #[cfg(not(feature = "zcash"))] tx_bytes: &'a Vec, + #[cfg(feature = "zcash")] + tx_bytes_base64: String, }, WithdrawBtcDetail { cost_nbtc: U128, diff --git a/contracts/satoshi-bridge/src/kdf.rs b/contracts/satoshi-bridge/src/kdf.rs index c4fe1266..a1026c94 100644 --- a/contracts/satoshi-bridge/src/kdf.rs +++ b/contracts/satoshi-bridge/src/kdf.rs @@ -3,6 +3,16 @@ use crate::{env, BtcPublicKey, Contract}; use crate::network::Address; use k256::elliptic_curve::sec1::ToEncodedPoint; +impl Contract { + pub fn get_public_key_by_path(&self, path: String) -> String { + let public_key_bytes = self.generate_public_key(&path); + let uncompressed_btc_public_key = + BtcPublicKey::from_slice(&public_key_bytes).expect("Invalid public key bytes"); + + uncompressed_btc_public_key.inner.to_string() + } +} + impl Contract { pub fn generate_public_key(&self, path: &str) -> Vec { let mpc_pk = crypto_shared::near_public_key_to_affine_point( diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index 149eb1bf..05c8348f 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -32,7 +32,7 @@ pub mod json_utils; pub mod kdf; pub mod legacy; pub mod nbtc; -mod network; +pub mod network; pub mod psbt; pub mod rbf; pub mod token_transfer; @@ -61,6 +61,8 @@ pub use crate::utxo::*; pub use crate::bitcoin_utils::psbt_wrapper; #[cfg(not(feature = "zcash"))] pub use crate::bitcoin_utils::transaction::Transaction as WrappedTransaction; +#[cfg(not(feature = "zcash"))] +use crate::bitcoin_utils::types::ChainSpecificData; #[cfg(feature = "zcash")] pub use crate::zcash_utils::contract_methods::*; @@ -68,6 +70,8 @@ pub use crate::zcash_utils::contract_methods::*; pub use crate::zcash_utils::psbt_wrapper; #[cfg(feature = "zcash")] pub use crate::zcash_utils::transaction::Transaction as WrappedTransaction; +#[cfg(feature = "zcash")] +use crate::zcash_utils::types::ChainSpecificData; #[cfg(test)] pub use unit::*; diff --git a/contracts/satoshi-bridge/src/network.rs b/contracts/satoshi-bridge/src/network.rs index 7213f6ba..bf00f177 100644 --- a/contracts/satoshi-bridge/src/network.rs +++ b/contracts/satoshi-bridge/src/network.rs @@ -8,6 +8,12 @@ use zcash_address::{ConversionError, ToAddress, ZcashAddress}; #[cfg(feature = "zcash")] use zcash_protocol::consensus::BranchId; +/// Size of Orchard raw address bytes (diversifier + pk_d). +pub const ORCHARD_RAW_ADDRESS_SIZE: usize = 43; + +/// Type alias for Orchard raw address bytes to avoid magic numbers. +pub type OrchardRawAddress = [u8; ORCHARD_RAW_ADDRESS_SIZE]; + #[near(serializers = [borsh, json])] #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum Chain { @@ -202,6 +208,24 @@ impl Address { } } + /// Extract the Orchard receiver raw bytes from a Unified Address string for the given chain. + pub fn extract_orchard_receiver(&self) -> Result { + match self { + Address::Unified { address, .. } => { + let receiver_list = address.items_as_parsed(); + for receiver in receiver_list { + match receiver { + Receiver::Orchard(bytes) => return Ok(*bytes), + _ => continue, + } + } + + Err("Unified address missing Orchard receiver".to_string()) + } + _ => Err("No Orchard address found".to_string()), + } + } + pub fn from_pubkey(chain: Chain, pubkey: bitcoin::PublicKey) -> Result { let pubkey_hash = pubkey.pubkey_hash(); diff --git a/contracts/satoshi-bridge/src/psbt.rs b/contracts/satoshi-bridge/src/psbt.rs index 8828eb72..6a782eaa 100644 --- a/contracts/satoshi-bridge/src/psbt.rs +++ b/contracts/satoshi-bridge/src/psbt.rs @@ -7,7 +7,7 @@ impl Contract { #[allow(clippy::too_many_arguments)] pub fn check_withdraw_psbt_valid( &self, - target_address_script_pubkey: &ScriptBuf, + target_btc_address: String, withdraw_change_address_script_pubkey: &ScriptBuf, withdraw_psbt: &PsbtWrapper, vutxos: &[VUTXO], @@ -22,7 +22,7 @@ impl Contract { let utxo_num = self.data().utxos.len() + vutxos_len; let (input_num, change_num, actual_received_amount, gas_fee) = self.check_withdraw_psbt( withdraw_psbt, - target_address_script_pubkey, + target_btc_address, withdraw_change_address_script_pubkey, vutxos, amount, @@ -162,7 +162,7 @@ impl Contract { pub fn check_withdraw_psbt( &self, psbt: &PsbtWrapper, - target_address_script_pubkey: &ScriptBuf, + target_btc_address: String, withdraw_change_address_script_pubkey: &ScriptBuf, vutxos: &[VUTXO], amount: u128, @@ -175,30 +175,40 @@ impl Contract { let mut total_output_amount = 0; let mut actual_received_amounts = vec![]; let mut change_amounts = vec![]; - psbt.get_output().iter().for_each(|output| { - let output_value = u128::from(output.value.to_sat()); - total_output_amount += output_value; - if &output.script_pubkey == target_address_script_pubkey { - actual_received_amounts.push(output_value); - } else if &output.script_pubkey == withdraw_change_address_script_pubkey { - require!( - output_value >= config.min_change_amount, - "The change amount is too small" - ); - require!( - output_value < min_input_amount, - "The change amount must be less than all inputs" - ); - change_amounts.push(output_value); - } else { - let output_address = - Address::from_script(&output.script_pubkey, config.chain.clone()) - .expect("Unsupported btc address type"); - env::panic_str( - format!("Invalid transaction output address: {output_address}").as_str(), - ); - } - }); + + if !psbt.get_output().is_empty() { + let target_address_script_pubkey = self + .internal_config() + .string_to_script_pubkey(&target_btc_address); + + psbt.get_output().iter().for_each(|output| { + let output_value = output.value.to_sat() as u128; + total_output_amount += output_value; + if output.script_pubkey == target_address_script_pubkey { + actual_received_amounts.push(output_value); + } else if &output.script_pubkey == withdraw_change_address_script_pubkey { + require!( + output_value >= config.min_change_amount, + "The change amount is too small" + ); + require!( + output_value < min_input_amount, + "The change amount must be less than all inputs" + ); + change_amounts.push(output_value); + } else { + let output_address = + Address::from_script(&output.script_pubkey, config.chain.clone()) + .expect("Unsupported btc address type"); + env::panic_str( + format!("Invalid transaction output address: {}", output_address).as_str(), + ); + } + }); + } + + total_output_amount += psbt.add_extra_outputs(&mut actual_received_amounts); + require!( actual_received_amounts.len() == 1, "only one user output is allowed." @@ -239,7 +249,7 @@ impl Contract { ) ); - self.check_psbt_chain_specific(psbt, gas_fee); + self.check_psbt_chain_specific(psbt, gas_fee, target_btc_address); (input_num, change_num, actual_received_amount, gas_fee) } } diff --git a/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs b/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs index e23db1bf..0afa66d0 100644 --- a/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/rbf/active_utxo_management.rs @@ -29,6 +29,7 @@ impl Contract { account_id: &AccountId, original_btc_pending_verify_id: String, active_utxo_management_rbf_psbt: PsbtWrapper, + _predecessor_account_id: AccountId, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); diff --git a/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs b/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs index 6aae2077..1d83b661 100644 --- a/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/rbf/cancel_active_utxo_management.rs @@ -23,6 +23,7 @@ impl Contract { _account_id: &AccountId, original_btc_pending_verify_id: String, cancel_active_utxo_management_rbf_psbt: PsbtWrapper, + _predecessor_account_id: AccountId, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); diff --git a/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs b/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs index 2b108e3f..a1d57b44 100644 --- a/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs +++ b/contracts/satoshi-bridge/src/rbf/cancel_withdraw.rs @@ -24,6 +24,7 @@ impl Contract { _account_id: &AccountId, original_btc_pending_verify_id: String, cancel_withdraw_rbf_psbt: PsbtWrapper, + predecessor_account_id: AccountId, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -55,7 +56,7 @@ impl Contract { .saturating_sub(btc_pending_info.transfer_amount - btc_pending_info.withdraw_fee); if excess_gas_fee > 0 { require!( - self.acl_has_role(Role::DAO.into(), env::predecessor_account_id()), + self.acl_has_role(Role::DAO.into(), predecessor_account_id), "gas fee exceeds the user's balance, only the owner is allowed to cancel" ); require!( diff --git a/contracts/satoshi-bridge/src/rbf/withdraw.rs b/contracts/satoshi-bridge/src/rbf/withdraw.rs index af9926d7..36fdc9a4 100644 --- a/contracts/satoshi-bridge/src/rbf/withdraw.rs +++ b/contracts/satoshi-bridge/src/rbf/withdraw.rs @@ -1,6 +1,6 @@ use crate::{ - init_rbf_btc_pending_info, psbt_wrapper::PsbtWrapper, require, AccountId, BTCPendingInfo, - Contract, PendingInfoStage, PendingInfoState, RbfState, + init_rbf_btc_pending_info, network::Address, psbt_wrapper::PsbtWrapper, require, AccountId, + BTCPendingInfo, Contract, PendingInfoStage, PendingInfoState, RbfState, }; impl Contract { @@ -13,20 +13,16 @@ impl Contract { self.internal_config().get_change_script_pubkey(); let original_tx = original_tx_btc_pending_info.get_transaction(&self.internal_config().chain); - let target_address_script_pubkey = original_tx - .output() - .iter() - .find(|v| v.script_pubkey != withdraw_change_address_script_pubkey) - .cloned() - .expect("The original tx is not a user withdraw tx.") - .script_pubkey; require!( original_tx.output().len() == withdraw_rbf_psbt.get_output_num(), "Invalid output num" ); + + let target_address = self.extract_recipient_address(original_tx_btc_pending_info); + let (_, _, actual_received_amount, gas_fee) = self.check_withdraw_psbt( withdraw_rbf_psbt, - &target_address_script_pubkey, + target_address, &withdraw_change_address_script_pubkey, &original_tx_btc_pending_info.vutxos, original_tx_btc_pending_info.transfer_amount, @@ -40,6 +36,7 @@ impl Contract { account_id: &AccountId, original_btc_pending_verify_id: String, withdraw_rbf_psbt: PsbtWrapper, + _predecessor_account_id: AccountId, ) -> String { let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -74,3 +71,34 @@ impl Contract { ) } } + +impl Contract { + fn extract_recipient_address(&self, original_tx_btc_pending_info: &BTCPendingInfo) -> String { + let psbt = original_tx_btc_pending_info.get_psbt(); + + if let Some(recipient) = psbt.get_recipient_address().clone() { + return recipient; + } + + let withdraw_change_address_script_pubkey = + self.internal_config().get_change_script_pubkey(); + let original_tx = + original_tx_btc_pending_info.get_transaction(&self.internal_config().chain); + let target_address_script_pubkey = original_tx + .output() + .iter() + .find(|v| v.script_pubkey != withdraw_change_address_script_pubkey) + .cloned() + .expect("The original tx is not a user withdraw tx.") + .script_pubkey; + + let target_address = Address::from_script( + target_address_script_pubkey.as_script(), + self.internal_config().chain.clone(), + ) + .expect("Error on extract recipient address from script pubkey") + .to_string(); + + target_address + } +} diff --git a/contracts/satoshi-bridge/src/utxo.rs b/contracts/satoshi-bridge/src/utxo.rs index 447b003f..ecefe7ea 100644 --- a/contracts/satoshi-bridge/src/utxo.rs +++ b/contracts/satoshi-bridge/src/utxo.rs @@ -1,6 +1,7 @@ use crate::{ generate_utxo_storage_key, near, psbt_wrapper::PsbtWrapper, u64_dec_format, Contract, OutPoint, }; +use near_sdk::env; #[near(serializers = [borsh, json])] #[derive(Clone)] @@ -67,7 +68,9 @@ impl Contract { self.data_mut() .utxos .remove(&utxo_storage_key) - .unwrap_or_else(|| panic!("UTXO {utxo_storage_key} not exist")) + .unwrap_or_else(|| { + env::panic_str(&format!("UTXO {} not exist", utxo_storage_key)) + }) }) .collect::>(); (utxo_storage_keys, vutxos) diff --git a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs index 6cf303bc..64b06280 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs @@ -1,4 +1,5 @@ use crate::psbt_wrapper::PsbtWrapper; +use crate::zcash_utils::types::ChainSpecificData; use crate::*; use bitcoin::{OutPoint, TxOut}; use near_sdk::json_types::U128; @@ -15,11 +16,19 @@ macro_rules! define_rbf_callback { user_account_id: AccountId, original_btc_pending_verify_id: String, output: Vec, + chain_specific_data: Option, ) { + let predecessor_account_id = env::predecessor_account_id(); self.get_last_block_height_promise().then( Self::ext(env::current_account_id()) .with_static_gas(GAS_RBF_CALL_BACK) - .$callback_name(user_account_id, original_btc_pending_verify_id, output), + .$callback_name( + user_account_id, + original_btc_pending_verify_id, + output, + chain_specific_data, + predecessor_account_id, + ), ); } } @@ -32,9 +41,12 @@ macro_rules! define_rbf_callback { account_id: AccountId, original_btc_pending_verify_id: String, output: Vec, + chain_specific_data: Option, + presecessor_account_id: AccountId, #[callback_unwrap] last_block_height: u32, ) { - let expiry_height = last_block_height + self.get_config().expiry_height_gap; + let expiry_height = self.get_expiry_height(&chain_specific_data, last_block_height); + let orchard_bundle_bytes = chain_specific_data.map(|c| c.orchard_bundle_bytes); let original_tx_btc_pending_info = self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); @@ -42,11 +54,17 @@ macro_rules! define_rbf_callback { let new_psbt = self.generate_psbt_from_original_psbt_and_new_output( original_tx_btc_pending_info, output, + orchard_bundle_bytes.map(|b| b.0), expiry_height, + last_block_height, ); - let btc_pending_id = - self.$internal_fn(&account_id, original_btc_pending_verify_id, new_psbt); + let btc_pending_id = self.$internal_fn( + &account_id, + original_btc_pending_verify_id, + new_psbt, + presecessor_account_id, + ); self.internal_unwrap_mut_account(&account_id) .btc_pending_sign_id = Some(btc_pending_id.clone()); @@ -85,6 +103,7 @@ define_rbf_callback!( #[near] impl Contract { #[private] + #[allow(clippy::too_many_arguments)] pub fn ft_on_transfer_callback( &mut self, sender_id: AccountId, @@ -93,22 +112,29 @@ impl Contract { input: Vec, output: Vec, max_gas_fee: Option, + chain_specific_data: Option, #[callback_unwrap] last_block_height: u32, ) -> U128 { - let expiry_height = last_block_height + self.get_config().expiry_height_gap; - let mut psbt = PsbtWrapper::new(input, output, expiry_height, self.internal_config()); - self.create_btc_pending_info( - sender_id, - amount.0, - target_btc_address, - &mut psbt, - max_gas_fee, + let expiry_height = self.get_expiry_height(&chain_specific_data, last_block_height); + let orchard_bundle = chain_specific_data.map(|c| c.orchard_bundle_bytes.0); + + let psbt = PsbtWrapper::new( + input, + output, + orchard_bundle, + expiry_height, + last_block_height, + Some(target_btc_address.clone()), + self.internal_config(), ); + self.create_btc_pending_info(sender_id, amount.0, target_btc_address, psbt, max_gas_fee); + U128(0) } #[private] + #[allow(clippy::too_many_arguments)] pub fn active_utxo_management_callback( &mut self, account_id: AccountId, @@ -118,14 +144,54 @@ impl Contract { ) { let expiry_height = last_block_height + self.get_config().expiry_height_gap; - let mut psbt = PsbtWrapper::new(input, output, expiry_height, self.internal_config()); + // For active UTXO management, we don't validate orchard recipient/amount + // as this is internal bridge operations, not user withdrawals + let psbt = PsbtWrapper::new( + input, + output, + None, + expiry_height, + last_block_height, + None, + self.internal_config(), + ); - self.create_active_utxo_management_pending_info(account_id, &mut psbt); + self.create_active_utxo_management_pending_info(account_id, psbt); } } impl Contract { - pub(crate) fn check_psbt_chain_specific(&self, psbt: &PsbtWrapper, gas_fee: u128) { + fn get_expiry_height( + &self, + chain_specific_data: &Option, + last_block_height: u32, + ) -> u32 { + let expiry_height = if let Some(chain_specific_data) = chain_specific_data { + chain_specific_data.expiry_height + } else { + last_block_height + self.get_config().expiry_height_gap + }; + + require!( + expiry_height >= last_block_height + self.get_config().expiry_height_gap + && expiry_height <= last_block_height + 2 * self.get_config().expiry_height_gap, + format!( + "Invalid expiry height: {}. Expected value between {} and {}.", + expiry_height, + last_block_height + self.get_config().expiry_height_gap, + last_block_height + 2 * self.get_config().expiry_height_gap + ) + ); + + expiry_height + } + + pub(crate) fn check_psbt_chain_specific( + &self, + psbt: &PsbtWrapper, + gas_fee: u128, + target_btc_address: String, + ) { let min_fee = psbt.get_min_fee(); require!( gas_fee >= min_fee.into_u64() as u128, @@ -135,6 +201,11 @@ impl Contract { min_fee.into_u64() ) ); + + // For withdrawals with Orchard bundle, calculate the expected net amount after fees + if psbt.has_orchard_bundle() { + psbt.validate_orchard_bundle(target_btc_address, self.internal_config().chain.clone()); + } } pub(crate) fn check_withdraw_chain_specific( @@ -143,6 +214,7 @@ impl Contract { ) { } + #[allow(clippy::too_many_arguments)] pub(crate) fn ft_on_transfer_withdraw_chain_specific( &self, sender_id: AccountId, @@ -151,6 +223,7 @@ impl Contract { input: Vec, output: Vec, max_gas_fee: Option, + chain_specific_data: Option, ) -> PromiseOrValue { PromiseOrValue::Promise( self.get_last_block_height_promise().then( @@ -163,6 +236,7 @@ impl Contract { input, output, max_gas_fee, + chain_specific_data, ), ), ) @@ -185,13 +259,17 @@ impl Contract { &self, original_tx_btc_pending_info: &BTCPendingInfo, output: Vec, + orchard_bundle_bytes: Option>, expiry_height: u32, + current_height: u32, ) -> PsbtWrapper { let original_psbt = original_tx_btc_pending_info.get_psbt(); PsbtWrapper::from_original_psbt( original_psbt, output, + orchard_bundle_bytes, expiry_height, + current_height, self.internal_config(), ) } diff --git a/contracts/satoshi-bridge/src/zcash_utils/mod.rs b/contracts/satoshi-bridge/src/zcash_utils/mod.rs index 89ef3534..ea6ecdfd 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/mod.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/mod.rs @@ -1,3 +1,5 @@ pub mod contract_methods; +pub mod orchard_policy; pub mod psbt_wrapper; pub mod transaction; +pub mod types; diff --git a/contracts/satoshi-bridge/src/zcash_utils/orchard_policy.rs b/contracts/satoshi-bridge/src/zcash_utils/orchard_policy.rs new file mode 100644 index 00000000..f85813fd --- /dev/null +++ b/contracts/satoshi-bridge/src/zcash_utils/orchard_policy.rs @@ -0,0 +1,116 @@ +use crate::network::Address; +use crate::network::{Chain, OrchardRawAddress}; +use orchard::Bundle; +use std::io::Cursor; +use zcash_primitives::transaction::components::orchard::read_v5_bundle; +use zcash_protocol::value::ZatBalance; + +/// Bridge OVK used to recover outputs for policy checks. +/// Hardcoded to all zeroes for now; can be made configurable later. +pub const BRIDGE_OVK: [u8; 32] = [0u8; 32]; + +/// Minimum number of actions required in an Orchard bundle per the Orchard protocol. +/// The Orchard builder automatically pads bundles to meet this minimum for privacy. +/// See: https://github.com/zcash/orchard/blob/main/src/builder.rs#L36 +pub const EXPECTED_ACTIONS_NUMBER: usize = 1; + +pub struct OrchardOutput { + pub amount: u64, + pub recipient_addr: OrchardRawAddress, +} + +pub struct ParsedOrchardBundle { + pub bundle: Bundle, + pub output: OrchardOutput, +} + +impl ParsedOrchardBundle { + pub fn amount(&self) -> u128 { + self.output.amount.into() + } + + pub fn recipient_addr(&self) -> &OrchardRawAddress { + &self.output.recipient_addr + } +} + +pub fn extract_orchard_bundle( + orchard_bundle_bytes: Option>, +) -> Result, String> { + if let Some(orchard_bundle_bytes) = orchard_bundle_bytes { + let mut reader = Cursor::new(orchard_bundle_bytes); + let bundle = read_v5_bundle(&mut reader) + .map_err(|_| "Failed to read orchard bundle".to_string())? + .ok_or_else(|| "Orchard bundle is empty".to_string())?; + + // Check action count first per Orchard protocol requirements + if bundle.actions().len() != EXPECTED_ACTIONS_NUMBER { + return Err(format!( + "Orchard bundle must have {} actions, got {}", + EXPECTED_ACTIONS_NUMBER, + bundle.actions().len() + )); + } + + // Since we require exactly 1 action, directly recover the single output + let ovk = orchard::keys::OutgoingViewingKey::from(BRIDGE_OVK); + let (note, addr, _memo) = bundle + .recover_output_with_ovk(0, &ovk) + .ok_or_else(|| "Failed to recover Orchard output with bridge OVK".to_string())?; + + let value = note.value().inner(); + if value == 0 { + return Err("Orchard output value must be non-zero".to_string()); + } + + Ok(Some(ParsedOrchardBundle { + bundle, + output: OrchardOutput { + amount: value, + recipient_addr: addr.to_raw_address_bytes(), + }, + })) + } else { + Ok(None) + } +} + +/// Validate Orchard bundle against policy: +/// - Recovers all outputs using BRIDGE_OVK +/// - Verifies exactly one non-zero output exists +/// - Verifies the recovered amount is within expected range (allows dust adjustment) +/// - Verifies the recovered recipient matches the expected Unified Address's Orchard receiver +/// - Verifies value balance matches the output amount (value flows from transparent to Orchard) +pub fn validate_orchard_bundle( + orchard: &ParsedOrchardBundle, + expected_recipient: &str, + chain: &Chain, +) -> Result<(), String> { + let recipient_address = Address::parse(expected_recipient, chain.clone())?; + + // Validate recipient + let expected_addr_bytes = recipient_address.extract_orchard_receiver()?; + if orchard.recipient_addr() != &expected_addr_bytes { + return Err(format!( + "Orchard recipient mismatch: expected {} does not match recovered output", + expected_recipient + )); + } + + // Validate value balance: for withdrawal, value flows FROM transparent TO Orchard + // So value_balance should be negative and equal to the output amount + let value_balance = orchard.bundle.value_balance(); + let expected_value_balance = + -i64::try_from(orchard.amount()).map_err(|_| "Orchard amount too large for i64")?; + + let actual_value_balance: i64 = (*value_balance).into(); + if actual_value_balance != expected_value_balance { + return Err(format!( + "Orchard value balance mismatch: expected {}, got {}. \ + Value balance must equal negative output amount for withdrawals", + expected_value_balance, actual_value_balance + )); + } + + Ok(()) +} diff --git a/contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs b/contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs index ba5b5df7..f3f376aa 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/psbt_wrapper.rs @@ -1,14 +1,16 @@ +use crate::network::ORCHARD_RAW_ADDRESS_SIZE; +use crate::zcash_utils::orchard_policy::{self, OrchardOutput, ParsedOrchardBundle}; +use crate::zcash_utils::transaction::{Transaction, TransparentUnauthorized}; use crate::*; -use std::io; -use std::io::{Cursor, Read, Write}; - -use crate::zcash_utils::transaction::Transaction; use bitcoin::hashes::Hash; use bitcoin::{OutPoint, TxOut}; -use near_sdk::require; +use near_sdk::{env, require}; +use std::io; +use std::io::{Cursor, Read, Write}; +use zcash_primitives::transaction::components::orchard::read_v5_bundle; use zcash_primitives::transaction::fees::transparent::{InputSize, OutputView}; use zcash_primitives::transaction::fees::FeeRule; -use zcash_primitives::transaction::{TransactionData, TxVersion}; +use zcash_primitives::transaction::{TransactionData, TransactionDigest, TxVersion}; use zcash_protocol::consensus::{BlockHeight, BranchId}; use zcash_protocol::value::Zatoshis; use zcash_transparent::bundle::Authorized; @@ -22,17 +24,26 @@ pub struct PsbtWrapper { vin: Vec>, vout: Vec, inputs_utxo: Vec, + orchard: Option, + recipient_address: Option, } impl PsbtWrapper { pub fn new( input: Vec, output: Vec, + orchard_bundle_bytes: Option>, expiry_height: u32, + current_height: u32, + recipient_address: Option, config: &Config, ) -> Self { require!(!input.is_empty(), "empty input"); - require!(!output.is_empty(), "empty output"); + // Allow empty output if we have an orchard bundle (funds go to shielded pool) + require!( + !output.is_empty() || orchard_bundle_bytes.is_some(), + "empty output" + ); let sequence = bitcoin::Sequence::MAX; let vout = output @@ -61,19 +72,41 @@ impl PsbtWrapper { vin.len() ]; + let orchard = + orchard_policy::extract_orchard_bundle(orchard_bundle_bytes).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_ORCHARD_BUNDLE: failed to extract Orchard bundle") + }); + Self { - branch_id: get_branch_id(expiry_height, config), + branch_id: get_branch_id(current_height, config), expiry_height, vout, vin, inputs_utxo: inputs, + orchard, + recipient_address, } } + pub fn validate_orchard_bundle(&self, expected_addr: String, chain: network::Chain) { + orchard_policy::validate_orchard_bundle( + self.orchard.as_ref().unwrap_or_else(|| { + env::panic_str("ERR_NO_ORCHARD_BUNDLE: Orchard bundle is required for validation") + }), + &expected_addr, + &chain, + ) + .unwrap_or_else(|_| { + env::panic_str("ERR_ORCHARD_VALIDATION: Orchard bundle validation failed") + }); + } + pub fn from_original_psbt( original_psbt: PsbtWrapper, output: Vec, + orchard_bundle_bytes: Option>, expiry_height: u32, + current_height: u32, config: &Config, ) -> Self { let vout = if output.is_empty() { @@ -89,12 +122,19 @@ impl PsbtWrapper { .collect() }; + let orchard = + orchard_policy::extract_orchard_bundle(orchard_bundle_bytes).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_ORCHARD_BUNDLE: failed to extract Orchard bundle") + }); + Self { - branch_id: get_branch_id(expiry_height, config), + branch_id: get_branch_id(current_height, config), expiry_height, vin: original_psbt.vin, vout, inputs_utxo: original_psbt.inputs_utxo, + orchard, + recipient_address: original_psbt.recipient_address, } } @@ -114,6 +154,21 @@ impl PsbtWrapper { pub fn get_output_num(&self) -> usize { self.vout.len() } + + pub fn has_orchard_bundle(&self) -> bool { + self.orchard.is_some() + } + + /// Get the Orchard output amount by recovering it with the bridge OVK. + /// Returns the amount in zatoshis (satoshis for ZCash). + /// Panics if there is no Orchard bundle. + pub fn get_orchard_output_amount(&self) -> u128 { + self.orchard + .as_ref() + .unwrap_or_else(|| env::panic_str("No Orchard bundle present")) + .amount() + } + pub fn get_utxo_storage_keys(&self) -> Vec { self.vin .clone() @@ -127,6 +182,15 @@ impl PsbtWrapper { .collect() } + pub fn add_extra_outputs(&self, actual_received_amounts: &mut Vec) -> u128 { + if let Some(orchard) = &self.orchard { + actual_received_amounts.push(orchard.amount()); + return orchard.amount(); + } + + 0 + } + pub fn get_output(&self) -> Vec { self.vout .clone() @@ -140,7 +204,7 @@ impl PsbtWrapper { pub fn to_bytes(&self) -> Vec { let mut buf = Vec::::new(); - let version: u8 = 2; + let version: u8 = 3; buf.push(version); match self.branch_id { BranchId::Nu6 => buf.write_all(&[7u8; 1]).unwrap(), @@ -170,6 +234,32 @@ impl PsbtWrapper { t.write(&mut buf).unwrap(); } + if let Some(orchard) = &self.orchard { + zcash_primitives::transaction::components::orchard::write_v5_bundle( + Some(&orchard.bundle), + &mut buf, + ) + .unwrap(); + + buf.write_all(&[1u8; 1]).unwrap(); + buf.write_all(&orchard.output.amount.to_le_bytes()).unwrap(); + buf.write_all(&orchard.output.recipient_addr).unwrap(); + } else { + buf.write_all(&[0u8; 1]).unwrap(); + } + + if let Some(recipient_address) = &self.recipient_address { + buf.write_all(&[1u8; 1]).unwrap(); + let recipient_address_bytes = recipient_address.as_bytes(); + + let len = recipient_address_bytes.len() as u64; + buf.write_all(&len.to_le_bytes()).unwrap(); + + buf.write_all(recipient_address_bytes).unwrap(); + } else { + buf.write_all(&[0u8; 1]).unwrap(); + } + buf } pub fn serialize(&self) -> String { @@ -177,60 +267,137 @@ impl PsbtWrapper { } pub fn deserialize(psbt_hex: &String) -> Self { - let bytes = hex::decode(&psbt_hex).unwrap(); + let bytes = hex::decode(psbt_hex) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT_HEX: failed to decode hex")); let mut rdr = Cursor::new(bytes); - let version = read_u8(&mut rdr).unwrap(); - let branch_id = if version == 2 { - let branch_id_u8 = read_u8(&mut rdr).unwrap(); + let version = read_u8(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read version")); + let branch_id = if version >= 2 { + let branch_id_u8 = read_u8(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read branch_id")); match branch_id_u8 { 7 => BranchId::Nu6, 8 => BranchId::Nu6_1, - _ => unreachable!(), + _ => env::panic_str("ERR_INVALID_PSBT: unsupported branch_id"), } } else { BranchId::Nu6_1 }; - let expiry_height = read_u32_le(&mut rdr).unwrap(); + let expiry_height = read_u32_le(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read expiry_height")); - let vin_len = read_u64_le(&mut rdr).unwrap() as usize; + let vin_len = read_u64_le(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read vin length")) + as usize; let mut vin = Vec::with_capacity(vin_len); for _ in 0..vin_len { - vin.push(ZcashTxIn::::read(&mut rdr).unwrap()); + vin.push( + ZcashTxIn::::read(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read vin")), + ); } - let vout_len = read_u64_le(&mut rdr).unwrap() as usize; + let vout_len = read_u64_le(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read vout length")) + as usize; let mut vout = Vec::with_capacity(vout_len); for _ in 0..vout_len { - vout.push(ZcashTxOut::read(&mut rdr).unwrap()); + vout.push( + ZcashTxOut::read(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read vout")), + ); } - let inputs_len = read_u64_le(&mut rdr).unwrap() as usize; + let inputs_len = read_u64_le(&mut rdr) + .unwrap_or_else(|_| env::panic_str("ERR_INVALID_PSBT: failed to read inputs length")) + as usize; let mut inputs = Vec::with_capacity(inputs_len); for _ in 0..inputs_len { - inputs.push(ZcashTxOut::read(&mut rdr).unwrap()); + inputs.push( + ZcashTxOut::read(&mut rdr).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_PSBT: failed to read input utxo") + }), + ); } + let orchard_bundle = if version >= 3 { + read_v5_bundle(&mut rdr).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_PSBT: failed to read Orchard bundle") + }) + } else { + None + }; + + let orchard = if let Some(orchard_bundle) = orchard_bundle { + let is_some = read_u8(&mut rdr).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_PSBT: failed to read orchard_output flag") + }); + if is_some == 1 { + let amount = read_u64_le(&mut rdr).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_PSBT: failed to read orchard amount") + }); + let mut addr = [0u8; ORCHARD_RAW_ADDRESS_SIZE]; + for addr_byte in &mut addr { + *addr_byte = read_u8(&mut rdr).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_PSBT: failed to read orchard address") + }); + } + + Some(ParsedOrchardBundle { + bundle: orchard_bundle, + output: OrchardOutput { + amount, + recipient_addr: addr, + }, + }) + } else { + None + } + } else { + None + }; + + let recipient_address = if version >= 3 { + let is_some = read_u8(&mut rdr).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_PSBT: failed to read recipient_address flag") + }); + if is_some == 1 { + Some(read_string(&mut rdr).unwrap_or_else(|_| { + env::panic_str("ERR_INVALID_PSBT: failed to read recipient_address") + })) + } else { + None + } + } else { + None + }; + Self { branch_id, expiry_height, vin, vout, inputs_utxo: inputs, + orchard, + recipient_address, } } - pub fn extract_tx_bytes_with_sign(&self) -> Vec { - self.get_zcash_tx().encode().unwrap() + pub fn extract_tx_bytes_with_sign(self) -> Vec { + self.get_zcash_tx() + .encode() + .unwrap_or_else(|_| env::panic_str("ERR_TX_ENCODE: failed to encode Zcash transaction")) } - pub fn get_zcash_tx(&self) -> Transaction { + pub fn get_zcash_tx(self) -> Transaction { let transparent_bundle = zcash_transparent::bundle::Bundle { vin: self.vin.clone(), vout: self.vout.clone(), authorization: zcash_transparent::bundle::Authorized, }; + // Here we encode the Zcash transaction with orchard bundle so it can be submited to the network let inner_tx = TransactionData::from_parts( TxVersion::V5, self.branch_id, @@ -239,29 +406,51 @@ impl PsbtWrapper { Some(transparent_bundle), None, None, - None, + self.orchard.map(|b| b.bundle), ) .freeze() - .unwrap(); + .unwrap_or_else(|_| { + env::panic_str("ERR_TX_FREEZE: failed to freeze Zcash transaction data") + }); Transaction { inner_tx } } - pub fn get_pending_id(&self) -> String { + pub fn get_pending_id(self) -> String { self.get_zcash_tx().compute_txid().to_string() } + fn tx_digest>( + &self, + tx_data: &TransactionData, + digester: D, + ) -> D::Digest { + digester.combine( + digester.digest_header( + tx_data.version(), + tx_data.consensus_branch_id(), + tx_data.lock_time(), + tx_data.expiry_height(), + ), + digester.digest_transparent(tx_data.transparent_bundle()), + digester.digest_sapling(None), + digester.digest_orchard(self.orchard.as_ref().map(|b| &b.bundle)), + ) + } + #[allow(unused_variables)] - pub fn get_hash_to_sign(&self, vin: usize, public_key: &bitcoin::PublicKey) -> [u8; 32] { + pub fn get_hash_to_sign(&self, vin: usize, public_keys: &[bitcoin::PublicKey]) -> [u8; 32] { let tx_data = WrappedTransaction::to_zcash_tx( &self.vin, &self.vout, &self.inputs_utxo, self.expiry_height, - public_key, + public_keys, self.branch_id, ); - let txid_parts = tx_data.digest(zcash_primitives::transaction::txid::TxIdDigester); + let txid_parts = + self.tx_digest(&tx_data, zcash_primitives::transaction::txid::TxIdDigester); + let script = &self.inputs_utxo[vin].script_pubkey; let sig_input = zcash_primitives::transaction::sighash::SignableInput::Transparent( zcash_transparent::sighash::SignableInput::from_parts( @@ -273,9 +462,8 @@ impl PsbtWrapper { ), ); - zcash_primitives::transaction::sighash::signature_hash(&tx_data, &sig_input, &txid_parts) + *zcash_primitives::transaction::sighash::signature_hash(&tx_data, &sig_input, &txid_parts) .as_ref() - .clone() } pub fn save_signature( @@ -294,23 +482,32 @@ impl PsbtWrapper { pub fn get_min_fee(&self) -> Zatoshis { let fee_rule = zcash_primitives::transaction::fees::zip317::FeeRule::standard(); + let orchard_action_count = self + .orchard + .as_ref() + .map(|orchard| orchard.bundle.actions().len()) + .unwrap_or(0); + fee_rule .fee_required( &zcash_protocol::consensus::MainNetwork, BlockHeight::from_u32(0u32), vec![InputSize::STANDARD_P2PKH; self.vin.len()], self.vout.iter().map(|i| i.serialized_size()), - 0, - 0, - 0, + 0, // sapling_input_count + 0, // sapling_output_count + orchard_action_count, ) .unwrap() } + + pub fn get_recipient_address(&self) -> Option { + self.recipient_address.clone() + } } -fn get_branch_id(expiry_height: u32, config: &Config) -> BranchId { - let current_height = expiry_height - config.expiry_height_gap; - return config.chain.get_branch_id(current_height); +fn get_branch_id(current_height: u32, config: &Config) -> BranchId { + config.chain.get_branch_id(current_height) } fn read_u32_le(r: &mut R) -> io::Result { @@ -325,6 +522,18 @@ fn read_u8(r: &mut R) -> io::Result { Ok(b[0]) } +fn read_string(r: &mut R) -> io::Result { + let len = read_u64_le(r)? as usize; + let mut recipient_address_bytes = vec![]; + + for _ in 0..len { + recipient_address_bytes.push(read_u8(r)?); + } + + String::from_utf8(recipient_address_bytes.to_vec()) + .map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e)) +} + fn read_u64_le(r: &mut R) -> io::Result { let mut b = [0u8; 8]; r.read_exact(&mut b)?; diff --git a/contracts/satoshi-bridge/src/zcash_utils/transaction.rs b/contracts/satoshi-bridge/src/zcash_utils/transaction.rs index 021c2bb6..94d2f49c 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/transaction.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/transaction.rs @@ -2,12 +2,17 @@ use crate::network; use bitcoin::hashes::Hash; use bitcoin::{absolute, ScriptBuf, TxOut, Txid}; use zcash_primitives::consensus::{BlockHeight, BranchId}; -use zcash_primitives::transaction::{ - Transaction as ZCashTransaction, TransactionData, TxVersion, Unauthorized, -}; +use zcash_primitives::transaction::{Transaction as ZCashTransaction, TransactionData, TxVersion}; use zcash_transparent::builder::TransparentBuilder; use zcash_transparent::bundle::Authorized; +pub struct TransparentUnauthorized; +impl zcash_primitives::transaction::Authorization for TransparentUnauthorized { + type TransparentAuth = zcash_transparent::builder::Unauthorized; + type SaplingAuth = sapling_crypto::bundle::Authorized; + type OrchardAuth = orchard::bundle::Authorized; +} + #[derive(Debug, PartialEq)] pub struct Transaction { pub inner_tx: ZCashTransaction, @@ -52,17 +57,17 @@ impl Transaction { } pub fn get_transparent_builder( - vin: &Vec>, - vout: &Vec, - input: &Vec, - public_key: &bitcoin::PublicKey, + vin: &[zcash_transparent::bundle::TxIn], + vout: &[zcash_transparent::bundle::TxOut], + input: &[zcash_transparent::bundle::TxOut], + public_keys: &[bitcoin::PublicKey], ) -> TransparentBuilder { let mut builder = zcash_transparent::builder::TransparentBuilder::empty(); for index in 0..vin.len() { builder .add_input( - public_key.inner, + public_keys[index].inner, vin[index].prevout.clone(), input[index].clone(), ) @@ -79,21 +84,21 @@ impl Transaction { } pub fn to_zcash_tx( - vin: &Vec>, - vout: &Vec, - input: &Vec, + vin: &[zcash_transparent::bundle::TxIn], + vout: &[zcash_transparent::bundle::TxOut], + input: &[zcash_transparent::bundle::TxOut], expiry_height: u32, - public_key: &bitcoin::PublicKey, + public_keys: &[bitcoin::PublicKey], branch_id: BranchId, - ) -> TransactionData { - let transparent_bundle = Self::get_transparent_builder(vin, vout, input, public_key) + ) -> TransactionData { + let transparent_bundle = Self::get_transparent_builder(vin, vout, input, public_keys) .build() .unwrap(); let lock_time = 0; let expiry_height = BlockHeight::from_u32(expiry_height); - let inner_tx = TransactionData::from_parts( + TransactionData::from_parts( TxVersion::V5, branch_id, lock_time, @@ -102,8 +107,6 @@ impl Transaction { None, None, None, - ); - - inner_tx + ) } } diff --git a/contracts/satoshi-bridge/src/zcash_utils/types.rs b/contracts/satoshi-bridge/src/zcash_utils/types.rs new file mode 100644 index 00000000..aab7a40c --- /dev/null +++ b/contracts/satoshi-bridge/src/zcash_utils/types.rs @@ -0,0 +1,8 @@ +use near_sdk::json_types::Base64VecU8; +use near_sdk::near; + +#[near(serializers = [json])] +pub struct ChainSpecificData { + pub orchard_bundle_bytes: Base64VecU8, + pub expiry_height: u32, +} diff --git a/contracts/satoshi-bridge/tests/orchard_bundle_cache_100000.txt b/contracts/satoshi-bridge/tests/orchard_bundle_cache_100000.txt new file mode 100644 index 00000000..9935fd33 --- /dev/null +++ b/contracts/satoshi-bridge/tests/orchard_bundle_cache_100000.txt @@ -0,0 +1,2 @@ +utest1fk0tylrp4pde88uxz6sp25h0mv5q3tv99clzuvqzj7kqgmdv4mm4kqgfmx9z2tr0lqgff7l53e6uy3yq8kkrrnhgx07z65ktqdx5s694hytdtfaa7pg3dsgvghpn5rg07xm5snfl6vc +01cb7ee2007fac082558af7200f313956d869f63edefc65093c5798a36fe18988516bdf4fc0eda8481cb79e7312d5b35c0370d172d85921141a64f8738db95711808da3b75e79731f01e38814a59c76980c7ece4c3036cec201f18bc5acdc8df9eede38e633a5c7f919c8386d0bd1d7d42fa7195f611ad3e6500fb4422ff9b013ef5723d51f9ff40f128bb1c60408be789a41c6eba3cebde6bb31846d9b52297bc9a347073383bf2f83d3b0fbc18f0b1ccc8bedc6e528c462a47cf78c1becfb1d54c20d8cadfe80c973ebe21092b9caaf59e6bedde42f1932797f485252bb1c1ff0f370e94d9f41226aade352d52859182fe6d6cb4a364a7e20f4bd11c22e30fa96f82f055881ee9e0efc860d6ea70a1f8c6a3d09486e9de0b1c347ca15f78746cd41af4c85519e579c4f08b4fc124051efa54337788b76a8d5897bbc12f1f095df65d7e09202c73d308f8d0d3457c4308f2123d4026ad7914471dc8f50a04e1e6697f49873553e09edcf2ea9a81261edb9f34ab8f7228d3a996c84113c25f8bee09ef5b7c5770a63b6a1e5e70a5a5cb236876b9f5707756d14b0e1d12d547ef2059f0539b3f2258cd667b08e3b1d48eeb4becdce6d6a30f31afc9944fc72dd25148350e8809d1f8338c11864b9bf45861c1f3a2dfccf6bfc5216b910f89f084a67247586652610423eee5a23b0848ab62b203b3ddb9e6d529b68fa965b14086e78540f91afcdd8d06009d8a5cf21728ae5aeb75b5b44ee14ca3a6233e6302d10fa2c9e3238eab5a1dcd4e5943a012ec24f23fbe312b9bef0185c585b28a88d62a2bfef2b6c4c84c7344e4ede97276ff0ff3955fd87b006e851132a6583708f431d44ae97aa5923f2dd10e28b81e49fdb84280ec930c0303c289ba8a845c806ed4e187b1e45c1da20054fd18c222f2ab36f6761b5d7936732f0f2301f67c66ede8df8c7347e0c492d20c2ea8a1d92bd56b8a93eac96f5e0a08ec6a020ac1f0d84669dd7ee02f97469e88b2afbdca3902287025d4e208329f790b32e7776ff0cc13498a3506a02546e36f66f38b9c28ba6e2ea471e0d1f8b7f665268592101dd6df823c3d3a476d2c2d411e72bec3fa8fc3adb361b7faa4f595c71864c51e65865020ded108b10737048b2c4f92c1a8e08de6789897026079feffffffffffae2935f1dfd8a24aed7c70df7de3a668eb7a49b1319880dde2bbd9031ae5d82ffd801304d08780c51301bbfe276a3185cf4380fafb9e5bad62d0807e970ab5588b9009fd4605b4cad7fa718afbbdf5bf2658a4a394b23729ef943338d59caa28578592a712ab052790f8a47ea6ca032a153c339e88cbeaf54b0926304ac30050083433a7b83bc8fdc49033c82ea5d3bf80ef9e3cce7d5eca6e31566c4ad48118690d8bb48f26919bcc6656d7044814c12256519be1d57004c0537e6f83d3fa4d977d84c01d6ebabd83fc36a7428158e698c4b6836db59a63a0362957e70db0a85fa13fb677e53f6f9c81ac09ea8efd0eaf3e916116646d2a6984f81787642555239db1a912d9cf3614e3081920a80057641f0ea2f5996baf6bac1169959a82fb9b7eb0fcc9340476ddea6ad6da311a8023984014eb3b6bb06c5760756de62bc48d6830d8516731d3d24eafafd27113edee038640e7fe7c2c3abf535f67c522dc9a87829f79f3ce4552fd84f2d79e85058ea0de939d6e98cadc018472e14dd4c4f80e85caab0af4129e809b7722e313c9fb8cdce25b1b548fe247264b96bb12bb26b41742a8551c0c4127e9811222d4a7cecbd650261afa516a83bc37792577fb59e6b765ca0488099c36ce8f78af4a072bff0c4d374a9f9d743e64af24d8fbfdddf38b76d2d3dec584fef8c3772a2c5e9596178e2f03b1da1f57c3cd31da53851728bd8f34fee2cffadd912880e67e56cc31e65ae9549251a297e7e1d9e015d2fe223d2851d4a0ffc7023f2073c778b9d16271663dde918a44701d63406b006895d6a532f2fdde9fc31aa6a114da32b460543e978e86d64ffe00ae598ac0a3c7d52b34a5fd6d3b934c0b60b32b73e1fc146fd0eca154a12cfd2e5fdf385891112e66a1e6f3eeb96fc824ee04a8c0ec83d102e349a655d1943dd129d470aa56350f7f1ceaba420f0e4e9b8743b67bab4cba0db01e4179927480aa00a6c9d901bc68febea40147583a7d6f5be317290e9e06a3187d7bdd3de302c651873922182d6dc4295c95df598c4d2581beebdddc27f71a75ba90c73b3e078000e30256c6eefb7a2e8e884bc1e8a2b6b3c5c2bfd8bac5823bf1574a121df29223c9746ae07be640bc3b05dac8c8c1793238d61b16bf547bd31b330449da071743afb28783e355ee880d854ca54dd9b93e7d5e8b8bc2f5fbf987e0195ce046b3a20e3f14b1a9f3b0861cf4fefc79eddd1fd6344f1d84c2ffbd8ff83d9206f31d7f51d4d68fb837050eda2af9c266a37d2995426e6754ca24045c9f00d1d3c2f4adeff15c2741723a9749f1e8e6dd89d169c9bc628821820cc0f35bc122e1e3ca4e4191a73a6238130d70c39871e213327cb1ceb0b5a6abe168263963877f23e2aaab147538b85f921646625274a26c8ef48eb6dc96c0c3085604f687bf880334f21ae456275a026ea28a167b6340a7110e34b0b26be14d1f722fdddf3e29aecc7242f85c8f9769450b2b13520275f09932846c17c70873f59df8b26ad5666c0913ed9398201d66d83b86143c06a13cc4673d32eb255d31b50ae973d1f18564f542649d226537159c1af7addb8826bd77ce744bc1eab9b7643e57f29016790a72958cf9e80ac11537029e359a05303fa629b7f2ae8156ad378cee6c5df97e73702847e2df0d23a0d3087d1bc64a9ffdd3d27f7db1d7699f6f2ddf274befa7c749824ad0a35ad9759d19be939b1098ecda61608a980aca50c77563de7f255b71efd502f154b407b0ac36bcd4ea8ed03c356629ecb72f710aa1809b9a6e096d1a896bb4f149736280990c635468d63c40623a64b019c6e0550871922de50f13e1bae2f7a7b323bccc58376e5a6712feca9953d973f3b162a5bba74d2c3525973324432be93e69de14dc2fccdefc414181068d4eca7f9e4b79f84cea00a3c507ba71b549b4d9e5ece7ca04c35ded03f3a574205419e756aabe5e5459cd8ff29ccd4d525a5ddc408711181d74fb60181d7b8fd193dd9abc0f8bd9270302069c8cda1712296fca753841ec1edffe341a2c067e20c9df9a5c309790fb0d463a96bd307f05cc70a98ad124050ac123d951384ab6e601a306422fbb6b2da1b84d1bf0e0b490c0ea310b2da1bf36a247a8a864fd8d3114d41d7dd43e625917c34a2b46a8df3a3621bee6a5d42b2c170ea27baca6bc1a78fa03f00c1bc410eccf241e3aac201817b8ffc93e79dd1bfb94f22e90dff8548ffecdbe41722ab8ec46140673836d2304aebb9d8f5309136e0a51719d3b02b0b14113ae68ba8556237a7888e9d2ce66b21a042c6c468e0723b2f1bde9a1144b15dbf1c5c135135a237a09baf1a5dd3d7e0864e15eca3109f56bb0547648b12c0d31738d13f2dada92cf139e25af74bba536c8b6f2551b35a0ffaa517051d7c38b96d35db4ffdb0fe6be4fabde7c42ae62b8b1588e65b927c8ffb7a21d24358cc3a0e8390eaa15abb96f35c5ff30466a52436557db2f773d5639caea747a204b748c6e7dde8a7a40550ca99a6196112c37171ff4c09a8d2054b9277b7b3884c1cd2ab751cd5e36534368a63b97a36ae4a3e156a664033a00dcecdda702f55ef6e3832ee58253624f87168e9c962ba46bdab392d077d0700ac516f50b3564d582d804df13149cc3cb34b1d0692a1b57d040de3d543357c7185106f2ca62f0f78c8203d672122a42123d833e83a3d358dd1ca0b495f2a67a16cc767c1cbe16887cb0389eb6904bca9d9e7a2f5989d24804ec6ca12fbf779f1580516609db4ca3f480b90c05260d8e518b9bbd9ce054b50c7fb44f57ec34622a2dc69c0c43954a2bccf22258bfd58d76c41256b9122c5be0144d8a7ef77ede2a31ba57f80ff7ecb82f43732d4642d730761bbf181a7d86306ce6d48436a94812277c7fd54ee794f10d8619575d1b8ef15957d2f2e5ba6ef31cacac51d0c39a2a519870422477f3581e6c1568032edd936364d2e6bced8636102784c733dce81738030083197bc485e80fae6ba92ec28858a8a1a53212c0d7452782c9d7c30d1d9225e4f94b1ea5fec4388d6ee85577a746035b49e65fba33a6c75a31e0a7552ade8ec4253e9124d8af9eede4b7c09947e61acda0d04d319a85bbd5e5cdc316173fabcbe9bedf7e1433016d17bc09135061c30bea4a91fa6acf9a71cb9fb9bc17de7fc232905776657896ad6b1a1b91e2078fdd308bc2e22f750fe4a6e880b605d185c4172442c83868974495e6d6e62aa9b1a72cf6992f008c9c485c971678324232199daa2f9e17919e76a3142141c2984c7ea7fab0bd38628745f3c9e47e06ce2ab7ccba895b9b3205ca372caddac6234d609b71a8216f65dde953c13bda1c649d5b1ec1709e66bd5e94b0c44e31ad1f9d1c1fe3629bc2ab874a25990bd322b533475630b1e05dc30a2fe317a53472506bdfe7a126d6b63c42c4f7537f540081521bc40136b1484e0eccf505e7ada8882e58ddac12cc39e5d007aa3e6f061e2a59b9aac90c3a2d8ae99131d0d182a86bd5fa51624778f83891263077d46114fc39b9702303f8dde8cc23fd737273a072f0e9bf36f255c0305894822b32fc06159686c5c4f00c1c9c2bb3cda206cb3e7a683bae024fbfc51bc820f5e5010f10c6275a412afa08bfe79cec9a200b775a43866eaead410c9f456205a99b835200167c59272e1a387804a1404bc409c915ae5c464c2346b2c73f80a32cbb670321dabc7abd14080600c72f29920c34bd5cd0e610f5f9933b62155c375c85bbd8045c1fecab1d1686bfd4f06e62def62c536b5d3f5da2f5e3cbb71e08b58e69c912725cdebdcbf929b966218e6ce03d03910e662ce18f2439aef96a09e3f6097300be352dd32981d615872a9d76155118927f229a1de42394b4e744af698ee5e8043d21ad051f0aaecba4e1d6138136ffb8adb9e343bef0e2abf3ed4164727e8e392a861e0486968484e38e26e5b204e7a53b462fb4e1cd6574c0bb812da9f90737922b26a5730cc20bd395481c7c7e6d689edbfe3fd2d5ed3f51335b06e0697d380dd8c0d9abfda66a3aca3a06cf5fa1fccebc8399e0b3ed4dcbd775b74a18e321547042212a44070c4b3ecc7918e7ce2cb9b4f40512ff8469b84d0f4d12d7d70ffae68b054d7ec0a49337281e857431ef1863d7bfc4544634fe88f282c898d00c78b586a7eac50d61f294c97be26ca5452d97505478553266fa167c1ef67d6d2f5795ce5826331f8339fcbd359dd3e5a0c0224030f2e730fa7ae7db66dfab0b20d498975a815a02f828837d229925d9be1883ad45a471706b3b4009b888237d2045f129a1bf188ce5ddc1328674d8ca81d8b09c8be1b99f82b3a1f010a1a7ad0abeac0ffc1617534acdd3ac66a7e816d3b4e651cba0777be2bfede4a178aef934ae6922dc1becfb0f1e9b9dc41b39f0d1093c793f10e275863102835eed5a300854b6e514eb8306371153b1984984d39fd0683d06642abf94ae551878d644032a6050ca80c683b36e7e7c74ea92048d2a14729bef775b7f8d5d6e3e6de1773c1e59296abfaaa50e031a2f7b919042e24267e62d7028cccd740365e487782c6d3856493fa19ac4a120f4c380fe1b8bae11dfdf8c8219762a10080034b945b08f2ebc872d106e005f35eaee925250b67c5f9e97a96808881d009e3d851aa25e6425db71305565cad35d9a549e0b0606c12ed778fb476142266b02365e10a50acc1a9d5c725ef2053175159ea4e20f7b1322f6f5b16e1abd58ed1f4efe5bc70dde012d86c92d78d90df176a7db168229e5c569bef0854a020345e50c63c46869a63651b13abb1c503e8b4c81aef11349de22af3792c044cb90fb0b0a39b2a556602293d694523af6458ee54050f1e7aa748d9cff866ecac7ecf5f409bdcd101a8f231a0797da5cea153b47df9ded41c1f8f796aa1b51d5a85618b7a54e89ee4fb82282b9c58f96b99010d7ecbce62ff1daf6bf16ed0cc2896564cb39f3346a2a3003c51ea797315ffb8aab7e6283cd34d7f10fbde6a0bd55ad3010ef342ef83c56061e7149db26f98a421e1a5cd93118f1305dadbe9354c6edb05d6ac66e166c3823fe3a088b6109d347f918f8ae18586cfe780c9ab8a10d8ee89354ba3c5ee7b22693738f910562f4fb6bb3e5caf57ed69845f5d6b55dafaea6311a67a9d01cc01cbe995ac8fd81eacac89734eb33de33eadef52722f26ba9524baed21799520528da336d7484fd5a7464864df0f74b977f57f9601f0a67f3ff487d6a9fe04e3a2641d3c96c0ef701c162dfe6692a75a5b08a2398769436adb3f2cf9b3d05175b04b185fb8155fda0f91ad0883d252ce56755b61ab066aec2437b5c2421e03704101af18e93a42e5920d0c7bc6769eb32340832caa95ad40f7dca6baef36900672d5d0471f838970f78f37a4d0b60d6e639416d4f0723619c743b270f86c9fc7202bb30970465c0a335f5325577f2670e7d14ba81215795195fe1865df95f01331c7938e9cdee7d1aaf6c3f9dc06b20ea6b2fe4f3c3193df9bea37ab98cee612d200439295bf7b9ee77c2ab3d1a1f1d30be6426e382407af7f1988d7ed5d0ea13137a5a8e77ed936612fb5afc08dde76307b1e69a3088a3f2d6bfd2a935a4dd99218fffe04c80a4ce553f3df8f51d60f6af54ff1bb818464a114d3c0ba345735d252ed5371a872fe97c22ff83a3252642849cd13fa0b0e2acad4996a74894f4e52658e8a1b281fd9640c06102a10e461155de03d2e212d3519659f6af1bfaff07304323123c856ca3f93326bc7b3893afe464f926676806ee5dbeff93fc76046e0f7100424199d7a3a07a81b824396ec35a2106a0233a7f70c3e39e306a6190f01d508d99762537411baa8101b9515983e4160d91bf811ae762fe90f9e64b93223e72b17a02c2b5d965919f91bfdbf80bfca3c5b8ae5c75ccbac566010c9fb017283c0b3880161234a2ce9955160431c9ba7dd2a3a1df9c99bab0806c6dcea03b04b7120b117b874369e8b5d0a27c05debde73bd965968307beec071561098b853552d81b7b9ce077d5899ca9970f61c7f5a887f5e950de3c3873495c26dead95a7bce3b34d74d4088bdc4d8adb3418916a66160149f97e2a3c2c47006ffa234810826689b7ad3d8497983b09399e7f4e4ea4f539d3b5b6d160dd09dc2d7c53e1906eee199431a616c462f1feed9f1ce3776af2d698d599ca3b80a3bdffc681e2a950861cf2b4ef4337fa11b2b4c77101e642f0a790a1e5e305f69ae9449a0fbbae0d9aea0c81f898ae8baf2af316e96cd70bf7533369058ae32e8cc77ea4c01fab19c0d09d0832fe6452350e83d7ad52602de62c53aa6fd042ca7cfb9fc119a43e8a1c6195162566ca0b25259ddc7f36d333af64eebfe38bcd8070ffcb84e571ba50ad6d08d543393de6960ab304b5e3019b179c841e9f226f1167618d938ecd9436fc6c9447bb2e29d236e26055587ab2cd3f758a0bd4eff165a29594332e272863e56d418fcae5040c519a3b02652fcd88bc057656be5044ff591c391750a4b0b5f9e61e7f7cc05df6a3991a59defc0a02565c470312f9d732c6c5f302c0dbbe612b8db7f5852309fd58ee4ff41570e5d03a96a8e2d4a55fae66dc3e87db3596192a4383a763b2d15b0e3bd905c623537dca44448509b750f01cbe8fe35ea31c7e51bbdff0b7a96af73ccc271e8fbe2915688fb2973aaaf416a7ace38f90563e3869713df4bee4fa1060fdf573254feeed51391ca1b2207ff245d316a6d473932598a31a2e07154f25f245b5161b65b1c0c77f70ce452a5e4b7b48011e82f8a641d048e5a5fc5ca380998b9f0159889b6ae3a23181113beddf7c7d36b5f90e09fb46512c57bae49759fb694ca91eb24940c048b1317606eac465abef986c4f82a134d4250478cdb1ae1a33a12e6a6a87b12811645f55061b126950407046ddb90927a9ffec8e8233f5ec81d56862e6760e11c5fa8acb2e6eb2cb76d8cfb001b95be2911480b60169fe38d32e5dafeb835db79604610b8c3e4cdb7f673c5015ae60f665270cbea1664b183d1cb3c3ff9a4bb32c657bdfaba015e95b98f5d23d0308e26909992c89cd3a1857ee88f1ab25aa8db7d74a897c763113616fdf6fcd0fc56eec213132a0c9d565de8ede5c87d43f4e655c4b2e4e08743eaaa569c39f2a53b2ba489d8e2a72f7a218d33e747455e64db6bc18a30753fc467b642fad95144c0b98a614dc59955f5b9c9a38a64fe9ea33f27d6d6618cc302b2f38b2368b387fac6b0095b8680a72b24aa94c7f341da32a2d998deb484c624e9d1661a9c222 \ No newline at end of file diff --git a/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000.txt b/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000.txt new file mode 100644 index 00000000..7b130cb0 --- /dev/null +++ b/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000.txt @@ -0,0 +1,2 @@ +utest1fk0tylrp4pde88uxz6sp25h0mv5q3tv99clzuvqzj7kqgmdv4mm4kqgfmx9z2tr0lqgff7l53e6uy3yq8kkrrnhgx07z65ktqdx5s694hytdtfaa7pg3dsgvghpn5rg07xm5snfl6vc +0151ae1c685ec3e5b7debc8ce7ce0c36af7b1d8b60d4b2a436a9970cf43ebb58978fb482348d4cd9b806bf6000373a33afce26a1f0c568000b47d1f9aa40e3a401c53f6ee2f2e3fab7a067d0dd683b7967292238823656eb5b108308be3a9d36993305ce41371a0031fbe1c49ab8b3217463b434f746a891d78a53330ed2d0ed305e9c241d063a765554a4fd97a60bd9b40c19830730262b42658ac79e4c9cb83f4743e93e0ebba99c3d3216b0bf6a9258f2c36c887f318f8d45f645df58f006d43567b84bc3fdfa7566f179e6d99aa53dbb70799f73aa41c1b387ed8470b31cb7251dd62c3b260d662a71623145cffe0f41472c8a14fb63ac3c6dc1c4b077504eace87e44b7ad82e42543ea958200902287dfc92549b4e478dec481d9ce864174a4990270beff7baa5fb281fbc248d2027d0429ab4947e528f865d4d672732c041be08157f6e9572b1f5b95ba5511f956511e624051fa09997d1b128b51304bc31c54890a06a5d8effdd77fe5da9641546029470a0c63be1e7121f06d560e56aab8030d455437a5dfdb7e9b9a613cadd2300b67aa733017495c526b2502fb5841796dd6f93b0c324e9d3be477a867a9006255a44f55b0e174c883c06ac53a7f00552701bd3c427dcd63581d0838ad554c28517e08e953807a1ffb24d792200950c012742698b6ba6c5434e855bfdcb1512ec5b0460c5de10e075412c0999c63f7dbf0e064460307f51cdca7624fc46c4d07f7ce74e99ca0eef1de0c4b48dada5d776adcc6e456e4b509e0ec12b14900c398ec3a7b4c9d1706518e891eb11be209a575e4366f1a9afc77069291aef682fe711679ac361f08cfbdd1998bbd9375f135a0a9e3f2d4e9a64e02f008c5b28eb39e08e25649b86da9584127e80946cb5a0141722e21cd62d6abd3e59aad16d4392d02c55c9e116ed5c16e0702e31885bea6e56990455413ce96f4e7141f3e2610538d2b4a3ac88cbcabc1229b5b8c5af2f1b903f0ae9516348fee334227c3ed25d388a42ad1975e62a48c8b1f1322700598d6e3ac77e16cced54cc82b0f9b19f9600ac20e7e662f8544dcf4c4b51b221bd3c19ee96f1dbce40ca99ac8dadce2c1c623b3b42948dd80a5c2a5bbb97c6287bd3a5d77f0ce3dcf8af38d8c0df612e2db29c80d02f067fdffffffffffae2935f1dfd8a24aed7c70df7de3a668eb7a49b1319880dde2bbd9031ae5d82ffd80138680a2327386836af3a2def37be778f8d3e371f5c05d5d74286573c504a0350c382de3e97d510e624e697d99d173e91f9b54fa92a7eb8a3f816b94efd4061318135229bfa4ecb8331c12ed3c09111cd82b51767031b273a9f7346c656e2da60e29c7f5e431b52136fbbe0c6a2ef6bd3ba1abb3a196ec77c9d5152337a3e18e1fe3dbecc81d0583bc842f06d5f0f5acf5b317422d63b1270702c59b7c372362829029afd69aa63c785cf043129fba0492dd619ef8fc8c9ba324c66c0997970f9d3689d2e645b67146d143409a08b395f45f37d18ec14550b7e2c6cd14b2f269bf4ab8e5f00a114542560d15037da1bbc9a2652ba01e539b559806d9cb0a6af9293cd2ba2567cd6d4716132b68815e014ba2def0959f5ce299740371bee5d942a759d1686170695bb8d59521e5c6f44ac5395285ee1b7267a492856cb486131c30bb18bc785027e42fd20d7a75b96e37502ba88410d98a862fb7795ad6493a8e2f57b1bac00f37486324e55ba32ca8d03b91427c7cd62a8ddb78fa017582d0b0b44320dc10d790cdf66a00efd565cafdea3e7dff13782f6db76486676907469c30f786c5d2e46ad6fb7dbb84fa671d8aa7044ba71975a44ca6e7d8c3c2ebc9ce8f602f755cf34dc6ba594f37ef2c23554b7a8ae96cbd9f8367cadd44a0c911568277eaf11991dfe77ee283851ec1770311ba4c1b15c824f200f571fe852a013f9295f61dced4928afb737df837f2a54bc91431ac65a87997f6d396af54c3c30ea7d49e9d3701c6c1acb08e16e09d1c8754fc30c8627f326786571ece73abcda513791c8631b4d078a19dce9075fb848183458509ea7556af72ac39c7d55c97432c714e4be936aef7f8e5da3068a1ea847fcbc5f7b1231ced16ebe7d8035ee2549c3dd402c6ffb85c5e22959a7a57e7a753829d18d2085db8f5afa99b88823ae7057361735df67704477eaabb3cec2ecc5e50652b4f7d3c27950850cd008d03d9bdf0f730866ff4303228f2b154a0eae84b53a135e5d9bf3391b2e07bdcd625853078fe5d0c465b159b9ba88b177ce8c55348e22b1dec76ff550a51ae8f97f81cb8bfcabd05c99bf61a2c1cb0c9c3b6ead0bb79443a49bfaf366b36e8334f41173237a4f90d075e58c4a51f6d1e8ea27930bb44dbc1a3a28ff612516679a65ca23739d25bde55758a0159b9cb85defe14bf2fa32d8301a87db20790de418b003a0df65983f05842e4916f89f709d0abbc737f3fabb04b1238c3156a25d6a1d91caa61183b7e5d224a0048d17ec9e6ec18a3610f094e2085d1e5a381edcd80572d9bd6f4b042ee5e33cc1e176fe08105a95c631c08b4aad2e93192c9f668ce10c09b0c8e97fd4017d9d20f056ea0ceaa593ff009e441e725c7f25afc29c2f0f009826f5d936817db9af7b4274eeb8d71d3ddf3132b27023c2b07c490d55bd8647d3d32eb0c22fa5f9a3556ef6ef7e5876f59f8eb348d8f189206ac12207232e64d122f976815fafcb8df4c6fa9cf31211ade50a101040a1487c943e3ec3f718eec1006e4b475db40cca288808978af265ed943d57c97275ad7056d114a45ccdf9f2d6f7e0d4665c289b1b39405cb2960937357c396fd29a26eb6bef700eb5d76c00b4cb25b6c34a56fa162a9af57f029aa8dfc4991c392721cfbf667d0006e6a0b2ef54c93c427ca8f8e964339048656b62630ec3323f94e04b28bc66d62c432060e9a0d6f963b907a91d7d3c8dcaa2bf2291c11c28eb4d65606d4cc99a38f07e91b0ba9be840b1bee009aa79defef605df9f17fe26f64dfb675cae3290655cbe03abf98acd44a134baa7ae661d14247ef841a097847e86306a6f1a1086cc2d23c21d1fbce93a84cfc6734e3fffdb9cf165ae464f48f7fb66aa6922a18566c6d860195be705dca0b95f38933fd196d941ba6f2442dfb55cb04dee8ad7be375d17324520072193175e874e3b040bbc561853b3308d54a5954d49d2ccf60fae719bb3c8ad353e3665ce677854f61daabb31a9c418463b75d2a596902d386b6b9252009591d46d6ba15a1939c98b30276e471feeb07895d03618448f33db4f0d463220eb83bb93f1de218a243ad20b86d3475db0f561b73e848ba02f5ac2acacfa7e80f3183670a32e1898dc5d2d138f88f01d7cb69cd73ad3faa7a46ebc06cc78a022fa21672198d610e0289bec6dc1d74cb8a4dcfc7f35b9c5da1ae9f1f25f8dc9007ab22b87948ce2500096d30c4cba9d70bd512efa58148b134ce687b6c809d452276ae59d08704b2c980661542f682d991b8d9f4d96ec2b72398c74cb32868003cf1e368963d4359caa1b104fda554b01a39db3eeb64a9e65dd5fa4c6b7cbd252729da31172a0e14164984046212c69c7b932b50eb30a577b99fb7c4d5fc53250506f9259a38e7722042f91a630ca86fe3f32f1dc07ca5c3a2d29f2d47295df83578752aab318fe9c9d890cd5f629f4248c33f513e6de3b3f88e9786968c9b54210d470756fd2090b8d1115514eea468d47959f4547b7805a0b0bc2084f66f440100c2e488bee7943fc8ae48847614c213515742b56728d37bc1c931f95e047c2084a3f86d572ef33b463f8a0c84c07bad7f023c8a7e7ddea3933cba0a9567ec2914b601876e36391a66e213639eca6409856533cfe1a1f19b14ec07a587195726dbcd8b0dfccb7ffe03346cababd53b55c004d3b92fa9d60554a798b7eacdbf14e601cd388db98fa621647df9e67b69c171776ded59abbef7b5038756591e1a2fa204cfb6c5729291633808d84c20f492b5178ad7514fdf9dabe2eccea2db2e09bab4f2fd92b35dc739b53db40a7fda605fce5323bf51ea4198e347c961e81e136c2de97808a2ab6ca9978be74d1969a71e883f3b40f448ea24dffcddec54612d16a7cd3588e3ce974dda3b9bb893fab863aa87b4269600ccebca1e25fd8c2c0b6eaf5d50a06ec991b02eb7a810da95c6d6da6950155f9afb7f14160e75942b364155103bde38b7fddcb50506c800755ff9652a337c018652c1bf82674b3825330fd7a25b3d8262063d6eb56050f627ede3574d631dd7d3b0b3093a6f059e8d0594e6445827effff8ec816b69ebacc302931a615d6deb57e20919bca2843be03c53eb32ad4d97c6d35e797144dbe364421901d7a4161a3688ca6270d135c4200e352976891660ad6bf84de0fddab160e401bd783d54bb094ddf1a6fa595856f2b6f1fb7e4838d9a26622e730e45262803d1c770620373759ac982c7d7631cd834458968f2353aa270d488871df83481514a764e97bbc6dae90580f1405c51941dd4d26669434cb50fe7ba857a4b09db1817036e0364ba0b76718534369784c923a8d56195879f0574ddffa436ec049776b69e5a56050e6821666292f5f621e639e7670fea20c28179f27310ee9c7a5b6bad3cd537b90a73a7ccfa4871079aa00ca3f14072466fa0dbbee703e8e4c6573e47e5a21e41cf8a1f056d8f9fb02bb321a9463375fea6618cd4d875d5b3c77c151a57de46ed79a7315ed73e4a5263f82d8efdd2138bd117415cc160f26c6d5c105163b7d2b7b6d96045063c0c19450f052f0c6771786902d09556046b94bf6ce7439ec03009f88005b38abdf3df86a21b38dc985bd45925c571ec227181a61f477e549950a3913b6dd9b152812073b31003ee6a8034415e79034102bcfac39abb0a705a55d6e2bb8f681bd65fba3fc22b16fd1faeef1a1b3c8f65e5027a70ba67a07cc37b7fd509e99aa9c08ca6a5cc300b176b997f266dc851624f459b3fe6d44a086ac27bf770a815a2739ee0add81dd2d2094acd06d066c134fc57cda9fccab73de112b1e3e317c26688020ac14d3386236bbbc1791fc1b7e3e9d5e617c0408081e87b901c6ff65b9c57dc8053220f1c50ae36a1d4fc86f962eebd3c1646fb0fdb636b49a947345b2dd317b5d6840ab7dc560185f93553e2e8e5bf6288a6ff8d209ef5724fb28ed9ee6f567333522a7f9fa643cf5b6ef17c2bb12b6b9e1b73aac6df846ab9b2738ab0b854bf41a43fa9609f9d11ac694d340354a62200875bbbad9b39ece791ff23cd841dc71d191d9f0b5ed630b220c63b45d758dee86f2fb69c880b58a38cfdc758e97835798639a1f509abf47b1cf6722b0d5cf35cc12ac5217a7140598dfdf644b14a1c8e2122d2fb144cba4f3757c170d84904e4f9e9f119bd4c7e5e8156de11111f43937d0f43d3ce8ac13b4f3136406203abec57db182d24ff92a1da21137f8d2cf1ad283f8f2df7b63ea45ec26ed6926511c453e49b2373a8b3f0736caa71ecc301440a395fd2cb7d6ed03261d4460234260f9dbefdde4e34806d6b2e3e85ed531897363929a21686fc2ac446d5014f6c715b37a8f7d010e2ca49065542e274903335681171f1e7a8746b99f92506fa03eb76dc2205ad1fa4931b8a8b509f30fe61c1c03eb39807a70a25530cfda7a56b0054144502e7153e31668259f95fa9e14d93db202f420755195c707b4325708a66807c16aa90a103f28c5d887d85b90ec444283d65f1674ed8742e73838691dfcca75a123ff8f435c76597f544dc944e5396b6358cff04b9a1bd1db1267e6eb89b73a83d7eb68fbd55c737c9c5e49164d2df08051ec1134a5411242dd772c13002466936bfce9baa791ed971dd48d357e7b3012b4451360492072d7616d86d7d14e995c2ec06b9e0f24fabba74f7b83252b0bc1f89cd427d226a6948cb983e4b0425369bf54a8915c32fabacaf4543f45211421b502ac29a4820a15adafce36fa36d035f20d386104ef5e2e5ca54a8ca2b8f712565f945416c47c78d20724fb26e48a2477c0c574af06bebe02c845b2453d5d8129c5d263ed44c40e01cacccc03b3d1d5b0ba0298d5e20ff0fcaaed8b04704721d9ba599208bf1dfd63d7208379b10e546ae02f35417af54856abb25ceddb56e34a69d2f0eb633f059ed4bffb807d27c86d03ca01694c3392091320f25ca6d95271f5e1df7ac2133520c0b2f30b410a1080033e9640f5b9aa1f39ecaff2c93732c01477a6109eda0ee1f12cbb7f36e5962a5ec4d7b0aabb7088684a9d23b8381378f25c70088eb0243401f7aff670cae1b8207278c9f11fce63c07fc938202c91bb89c72e5ea94006f9fa1725c454e50cc18a2d107933b859f62605a776accab3e76649dc345fdfb7e2feb8a49b3872316c9babcf172ddd013f51676b2a667d92a02562ff95440442ea4923b626842a3a7ba80d87317d54692867345d40c529a3fda43ac9a8dcc751821e1f440f83945273f86f390328cdcf798231feb4f1424248e2093391e5eded325ccb6328735cf7ef89e67d658e80407eb4f352f7cb16b0728e55dbbed0595b9f9a7df2ad4a0066deac166f26f1e9a8c0e1c32fae6b7ef19e94915afd3e52793cfa4346289324d08aceb09eabe3b1dae485acc8b5c17ff310ddb72e58aeb56c5ee3786c2d4ec8c06395005296e377550d14b6ed6ab7a122b03453f31ef74c8c7b0ace4d05013b0b861f2d2e0b52ba7f2e99fb40953f2b91b2eb118091fff88f0b458dfabf7497126a610ceef08d26b6c94d9d3c32f115d1e8420599199cd2a811e80ebd1d3ca088925a56f3bdd61a9690ecb49912bacce1369e78c9a3cfb527afc2b92d1e0a8e5df7aa9dd18d61513d79f77f942b3c2d119857c8484b64a4a9fff76220c05217bd5e485227084d8e1162dd340d7efba3d04fe7491885b92e8858d6c95b5e05843176b0cb688c51734cabab9655af9da71203c6402f735d323019588da203537f0efac5a32073ec160188669f6b465c75d1adbc75878182243599dd2635ebe28be8dbffc56e65511aa7e415fbb99ec05a51153ef720f545a54cd4584295a9c489538ad0214f31790ce4e906c3eb6d3bb102085a1a4fbf4f94d26b4cd6f491017ea96571db3ad8d985775ba5eac4c93b5830111da14afeeeea41bc646236dcbd50a430a0086b832baf2455d131bbda7202407498c5a20768384a9e0f6b62821b59a4a679c32c52805e724930f0d5ff9b0be1b31498f82814f6394d4d3f5f25cb34f1145ed3be13dbd44130c94ca2f8a0bc92fca1df5f62a381d66164a8bba9b3110e5d7c0c1158b14beb9ae012beed2719a92c39243d847daecb2e20ed379bd1ce775b6e2b7ee64708087431787d3ef1be28eacb776fd8fceb0f854c1d8a5a54d485eaa6ce66fc971d9773167fa29695ad422148c281260f78882985e9f8dc1be965d320963c0f49649ae25d20eb97d09b59e3a2f3937349e5253c41aad62f4dfa69241a0c3be5977f308613a6d1df70fe3a42dd6e225af7e9dab4988fc8b44fe89eeb2aae7edf6cb393e0f8936cf060f5b9a2a3e2d45dd7c8137d85d290babc585add1f9586c08e0cb20c4e2b0e022627101449344ff8c325d28821f748ae5053c3848becb66e4617b30fd6909c3fff5e6a90a8eae297974f4977b9ca67250bc9e7a4378308049e3d6eb76383efcc1670417bfae3fa3b4fd983a5cbaba7d1ed0ebaec8447c4fd11b81d86b092e4a9ad0300085478f5beec99214fa7cc5006fb35f3d60f567de3ca82da637a0fcb39b3acc15bb28c0239a8da853a818315b3f51ca7ba30e142b2e191f6778506e4a04fbe98cc66f5d52469fd0bc4fe0d692095697617c0fcb7c7fdbe79e598460db3a38320763b8d327bbceb5c36bd783322ef036dd02e391e76545c5d9bd9733d5650edf10c7e2cb0aa1fd42c4d31e7dd00e7807c8b665fe8f8aebea8075a142510543dc8a008c753c82cca82619514f0f610331ce873120e594b290d5a4662c37841b828a5cfb8bc79eeaebf78f05995e714237277a5f482fd97f123ed3ec641823662883964ebce72bb98934e51bc4e8a43101c4d7885c78d44e4520d90bc02a519738aa573f67bbde7bf2402d86c9e9ca42cff4b5542e9010c9a358195cd0015add8d06895d76da0b3995e133e1c510239b5ca66165d6ca243ef991fd096f191dd32713ba778d1dcbc0988108b259860d9e7a639cbfb0e9d5b6ef66da6841bc61face12c83734b21af84be758a8b5f6d2012f9377ced5ca0f5c755c5bc1533d459ec53370e8b4e19237e7e2aa0e3565cd158332ca71f62127ed0ddcf59702ba06fddeb817c843c81e5124c514e47235ce85f3c51bf56cf68937c9c90c7d92f895b8fc3c3a4ddc893868f11c7a4fe978af5683f2971aced736b2c4994b031799df3ec80a1553640746fd19aaf3ad2004d8d18b3d86bd29cb9ff709d5f5acb7d3cc9ec103 \ No newline at end of file diff --git a/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0101010101010101010101010101010101010101010101010101010101010101.txt b/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0101010101010101010101010101010101010101010101010101010101010101.txt new file mode 100644 index 00000000..a97f73f4 --- /dev/null +++ b/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0101010101010101010101010101010101010101010101010101010101010101.txt @@ -0,0 +1,2 @@ +utest1uj9838ua605gzqjpufndhdqr56c2x4encs56zcatj692ttcm8yedqkr3elyglnued397nm3wyjdvcydpwsch740nstsvmvfcgtuh4g4kyygf3tf9y4gp9ku3hj4qcf3mtkf4zq7rzn2 +015cc6a0f17b38529be9c6e04baa8e72c2867355b2d6c15e90afd02f5f53398e2b853eb6cc036e800b420878d1f88a2396a0a940a3da008e96240b33e85c40e71b280450876c951eb52e84918914733e11c104ed4a64e972c2a524655af38df62d022babfd430470daa166896bd2538540a28339a4a9c0f0eb3dc7ed5404712b178a81a4851fd23e0fcfa122ad5e888474058e17aaa55c77d5963c29c22e79aa1159bbb32d6eb14237264ad1547ddc8c1c643df22c853beae9ff2214fbb5e8d2174becb8897809cce74e344c7b7fc2383a0b304d6ca6a5fadd19a0abefc43295c6b5a5b9763fdf1a6b7c205701d7dc2b01fcd6b93e086776e167d43ec058829b3d86228a47102ca5a2f2c19bf23c05a050bb789b57f43a8c683bd46f3e8403aedff1876a16d60201de5ffb3152d09847f037f042ff053ca0698764677a64e76fde17b97957250ba099e3ad2e9525bd4450aa36d3b60a5a5a1396ef80e4be25dadb619d8f4401c44305b801b1f389e10a665e9bed10f4490379cbf952046b6101d57f71894783a17a45810154ce1a139384c9b324e9883380df2bcefc55efa839033597fadb67258b12c51ba5a75b03405884cfdc826bba9fc5fa5fe2c6d003961e4cf666953ecab1ab8c128d60f194b65e89956c03a7c3af6141b9d44fd04e8ed05eedc00f42f5ec768576d573a99bd7d24ea77fa90078f09d7bb543794612900e333f5d51f96966619c1129127969de204df438c25f5e6d39ca71a346dcee7d05a1c1ca1df953d30c82921dbfd1ddde80705e40e061d946351de5b40449108bf586fe079016e7e39d8a47b76c632cb3b96600e5971815e0867b1223a94fc6488e41b8071564b9538e5a804c16095de2b9183aed9bc36dca6a2ab318508dcc0e6ee72809b5c4438e90656d94696f5e01d8373d14c9b5fdb1a90d93186ea2047c46a5be69b4912490edfb92240615a3aef2042643009137b55a6d796a40b67f1ec1b9e86aed2e7afb4b28557d3e05810c0f46130a0c0c17570ae91589a2047e05fcfcdddd65c03e94a7a8cd11df1c162db7dd8b657b7bfb696e9336ee25bbbdb2c021871188b37b55abe09a57299b02644382664f966bcbedb936c2e4d611e2dd86db175b0b3e81e4b8863b45068c54d292cf59b2da02f067fdffffffffffae2935f1dfd8a24aed7c70df7de3a668eb7a49b1319880dde2bbd9031ae5d82ffd8013b1dd5ab75d2980d86d729775fb5d4af9de3d7daff2a186219a1b0fb916abfc2696bb6da7336631ddf0d30ecbe5400962874a48c0d10908ffeec0a0addf775622bb68d8c741624edebf1fc51fdfc2bc3285eb0d838fec7ae73d52b7a57b20062b5ed92cd9027f3a368b930ba2008a99c5f4f76d6fcc2d7b66845b5e9336e93f85d305e83e3d620a6df0409e2c377743e5e2e899129427be9dd2721a5ef0164c1ab0096a278f88b17d4fd8482f298740dc64ee9d1f72fe79348c912a1efffdd903f77088fa37c515be049df12e967435a59ccd485490ae2271776128640f43738c10b9b20840ec044f81bfc003b8a7d1248838b26b3903ae7539c88ed4c507ff10c2f341d99f2b4daf46ee72882648f03c09578c99003ec40e5c56d452007c0528d4332a6b614b90e389b164e160a3d1ab6fe6e8670e6107106914cd3af56b021bfc50c6d3211fd8dcc717743a2f6a1616507f3833a8d6a4f388e490e9f4bc171e0f8aec570cebb4e312a3ace0dabe20966b35b484557619ffb69b9f706b26838e7c32ddd4dc2d5cb51a6288ce3ef44c0aee56a9125d924102abda45b16a1c5335a4655c7f089d0018a0814bacc489373a6473113600ed9ea1910cac21cf521d10437f151c867593e7016785c7b8ef46a5a3676ac529d30f12f82d64f35176cb12b776b092f4146422795e66ed088414398e312cfddb2ff01e7658dfef1f6b07077988872952ff583cc9fea4a5179099b496729bd40c0aa2323912e133ff87da8237391c2a22825c389f41b6adb0aeee99c7191080c348106eba3b08f409443c23a3b4a3beb4b216368756cb22cbf64b55eea30472770f6ed545d03e72e541da338ecee5f8686a93cb42f185eae2730827d50076b8caba6bdc24b515614ad2eb2a1b407834772365df4f0f71307fa0bb4ef1f2ff3c20a58418cba23b5fe049dc1402e80a984f77844729cd39ae199d3f1cbb353a9a7dcdf91c8fdc7879b47e9086f7e208a4a2ac632c7a50d599ea34f5b4b723f997020c8133fa102b6efed66487f74bc347465ba11a36c37db6ebf7a276520f2c74b092e6c923fdc8d6fb285611184fb60a8c7d42ae4656afe80b72e4586a3b092ea0437e62ae21627d7a18cb80ddbc67c41e3da06cd252508094e0b23e614262e1faeb5b60d21539f2b48b7807869bd852998c06fd830e2e29f9e42e520d46f7c238d32c89e2a9f46265b4ac17e89cedd166454a4d583f220d4bdaafb4a009b76616dcb6d8cc8925fda6bec40344addb4427d9618f33a1a65a2b46248e37ae7cb3e138a1d80247442b75eb1910a55fcbec52663fb94804cd2c90de50b22697cf93178aa5f6d3b094b7748c50239a39c23050edf8e891d7e1dd3bcb75f888a497b59eb7d7406ceacf8c92414ca00d99809a9b45ecf2f3201883e9df9ba7eff517b87d03261c29a322ae18b7f83f87e7a89e4535e7013d6379eebf832b377b88fd74f1178807113c7e3911e2c3259ba72901c841faedf7ea994e3115a46cddbb11dcc76e2dc09b59daf291f6d92c3b7665c3c12810cb8cb2f238e2f9ed5ba9d44bea7478a84ce00cb9cc4b0fb51650525c16329449833ec974d951b336ebcd56834e2bbb441b001c54f98a37e623901a516933b03a495013e74318ebb850656371991b485c22ad7a848ad225a706f7e8fb0f688e64ad939b3d2659f01f3ce2579c04ddecf6a2a3d1fa07ad2c7d19f4b52ef9eb4268eee8726f964f19f8ffc1b5e3557faf2d8d5be686170591b9143ae6b03d9d7414cfea2312cdf88189418d9ac3ee9cc3d0cc8edd529cd4384b2d6066450e3001465beecf2909f0d81d15701922ae0ba303891bb6650f998bb51da580aa5458bd4e170f679529de67305c912e6d83c0514d60b1985675834706292fe57b44c0f68d5ea317622b66f81a2a27e4012c0392326f536afc5a70e2d114750b0f4d32eacf0b6c9224bb59e960ab17e63b73c12b3ada78b01c15e9fd1a1d1ab1f2ab6172e97e8e58a341f96686024dc722a8fc864ab3ba4bcaa22143700d34a82ffc2cd20b68626cb15bdbd9c2a8f101a0788c73e1d59120606bd43c6025f81716876e5b722316f719276f4864fba4184c1eedb4a57a1525b9b67325fe335833f1f6961fcedc71e1712345ba3cc925a0e9738bfbd5bd836e8f12153b150c69e67e9440490adc640ae94c9d4a70e3dbc3e32bd3528a3e71b20b302dbe2017898fd52cdc827fb87422a614dadf96cd27be242ad5ff99fb2f9421d8c72e921639ca5fd8bdc3083854db986a4b2d598345f7f93ce026e54229fc141ce0d2301d43757831ad71beec4b80be148030760f8bda064e22218d64b1e78f21c68f361987580f7d9b3f2115ddd1654198538682efc3b96c4936a34413206f03bd4c4403b2408c75dfef5301a2c74a1a24fedfbb51d9629f1d2a93c0c3f06a4ee95778137157838d3478850817c2b25cb9576408164f3fda6f44866b0010e5393cf2920142f931ee6734e1eb254378eb6270c0001c3d763e98aa8fe4aa64438517a835319afbc3ffb975891711dd27676c309b8bd6d8785909a8422c0325982a3ae100075a5b97aa1ac2bb3e9b8777ba4292b4d35758fcb68acb221a387a7c1735729f08f3e8e99dbc105c5b3954a5ab09fc9d9f046f039148913c1df9d971ace3ef17261aa3eef9cdcadcd22bf3caa3cfb04f54e2237407b694fc263bc3e932b2221e1fc8b561f4ed98eff34832be96519132713ad7632c8ad227d23a6865919b427c2151b1ac4d59946be5374236317d6499a7233494a2c901f1c850cb387873837e17ea672069c10a74d9b66c4725b7f0c11374a398246adc753395bef43757b71b0a53c9e06c0e68b9b9602f2d96fee51981a17fda0cfaa1bb03fe6c2e7248daa92c7610ec6f485d03fa5d185e7dd8ea20f1846a4409497a5b6096fe4f45462b83123260c60c35aaf64935fd4ca724cab194c0ed09a1521068655e0beead8e1aec1efa83cf9ed6a63e5a813f5e2404a8e1d24886e233fafc389a1c88773fe5ece13aad5ecd51f17d6ddcba75604c1de8094986e3dd29cd4a7e453e73f3c60a5136234187df9fb67f411cb535335e00bdc21408e01020d5c214897ec40778099f6d38a49d7bf6af411b0435554445d4cf34162d3abad9e1c0dc160e8aad7023872b1a2d4b4e8deeeb41cf3bde67c706ab5fac14e7a3db5866c9d7c7fa9f6f05380707242b04b8f0c5aa17f9c0e9d54423213c80fc1c5f544f39fdc12aa59fb658662d04ed21720c55cfef6360c1e9bdb678ce5e760e1a1fe659db1528bc153ee151265e73476530f772d519a35086917b70ab3b0c32a4feaa8b63bad8e70f0159b427ded98befecea820e0bc5e483ec02879cc39925f593f865e19830661663c025269c1ca0702372b2e8404afbf056a242308b2846035418d75a821faa9f1798061138311146e98786f7f7354cb5541fcf71d3e6454fcd565e2f36f6f7231b17b0212b92288e22287c1ccfaae46cf97e025c0d7e1c0c15c7051a5eed6d8e968fda3b9f6a5fbc168030e9b12d70da785cb7ad832e1fbd4aab11d54c183a9b8111f11a187f3753c273f9056432e9c6619bb899517001b59bd0f529fb5acf359b6e5326a49dbe83acff54ab3a12dd64e9f1b9b35e02676e302c17b89762c356bfa6582addf24501093152821954f9bc85a99b7847df615369cbb4d2ccb6b8e42052b700df128f40c2a6154dc38771ed3c2b5c1226cb5c8b241ed49efb7d7e33242b7d16a997b8a097d130ea4f943443a5fa44e896770f61bffe272a7b2047741d77f6393d0ca4e650e9f9228461fa407ba4e748c7b0280a014cd5c8240592b8aed3981f6957d8dd2233c88ff9ea87319de79f33dbd8c50f48dbdbb8533e481ffbe12324b96bdb9be7f1cf72eb714d6ff7629e9a2df61cb77b1019af847edb9170f68e39108c5ba12c1c643e1bb30bb5f7f8910b9585c312a1643b7aaaba36f4072a862578b459546d3d76783cc79a549c30572b3779765b74f7c60560c814eb19b167369c53632d63c6f74644b30a8e215e93b7bfee35ef3c391c2fede92ab485a64a31ae8d15439bc8ac26eb7dffa6e3e2c903baf75bce6e0cf218c6f02fac531e1429726938d6fc1bd5da5fca19f6cb4ca896ad3cdec9816f95d3dfc7f3252b44bd10af2a07890f4a0de5f0e7659bc2e2d6e4b442cf52794b47b7dd36e5abbac2b8006ec9e71783341c154a77dcce7ae4b110f2f2929361aaefa4076034d32f338b005ad1b309184120d7651a39f16b34560e0bf8926c28889a0fc628a7a1c5b2b0387f9e280f770b3afcca4b44fd4ca9642ffd11f543606633f8f6a8e4a6ba6ec6366da445274dde2464bad9c8cdb1916802e1647a4d3b1d4f315becda7c1e363d35fc3955ec7fd494d724ed50a8ac6482483f1ad4b9857238d06457ddce3e430724df35145ce1829f96de692d6e8c0f1b64621ef9c3e1b54dc8a50021cbaff91f0e04fc70b4ea5d23baefb48b5bb6b071fde9936b22e6edd61e8154ca88d352c634add06efb972e20a26f9a52206b445a3f3ca3be9fecdadffa8b6e7570e777831b89b0c8fda6bf74074981ae72a7aca4b7b895abca8202671dbd665da8c851a511e0d43dcfc6871f425f1fc2a95a583ca294f0ff35359ad5fe599829aad02a6a06298f50e89c357250704e6a74b25907e0ed3ff8c351fdc37f8fb1535bc521c51fcaed81c982a78a610f58883d8de295ca0e893f4433d269f4ff158ebfa44fd2191d64651efc36191ec9627680cab647d8a67fa1e71a7561a208288f8a8486ca2e965183fe90486167668156b6b7c673de60d3362e32ff2444a3fdc7c8e3da60049301a6040e08fc5a8cab54814bb9cdc9ccc35bc936c7ee1c9652d92e618e9229a74d90896886cacdd23e4ad75ae1575be285b5e36b5392dbbbb3fa2e5e7e1a1aea66e364469a288c99fbe749aacd6ab76c09cf6779a09705051bfc92005fe70b67d116294f9c306518a8ee46e5f4b8149d7758047ffcb2c90f5b03265ded12178d455154c049b115d221318577864ab274564e1279baf8300cfb3152aaf7361e4ade4f79914d16741d2845832bc61d5d246f1f441a9e76e52a3817de5e9af33580493d8fb69a48693bb2b4ac68bf578c860f088c8f91498ae44e24b3acbf6b2aadebf63c9358cd98bf3bc6c7ab8d9b6fba82bb66743ea53b5715a087ced7d137bdd175d01de824c57956000259af5d4708d46db044e7cc30fef92ac17aa7540a07b57ae87f98e60dc090785a2e9f2f461d7d8a333944119a3d8406508743ad0c8d935fb8728555e7455c461adadc9b8a41a81cbc02c25fbdf7eee93e5f893d31629991bb8e2add604602cb92b9995d91aafbb028efd6287bcce79fd5597efe286594e4c9c58a5d8be54ac1b8fb04208bd41ce5fda12fd0289a66ce641a3f8e1e082899d229d78919995b09570c5e74aaadfc786844590ae2e55ec4e55165bc2f6e58639160b49561b158ba1290aeaaefccc0853863c4f0d218f5ba16a3d4c600a67786443bb322262403cfa59164b7f928fb91459009e4e0a60225574d4a8b0eff88f997ffe550a9ecc3ae517852cfb4de6b0a8f33d0cb770263b6b57180192535e6624ce7d7a5b18a2b533e03abe7aaf91ada86b8736b5126e0e8dc63f8a8003dbdd7e3da583b2aa8e9b16a48bddd65abf44019531e0b00f2dd684d3bed7f8ac40d6f7426d12c5ca38f419fcdbfefeb587e7136a728fc49f8874ff8d6993c1509b8a6445ae390c3e9bf3e10f357749b93fac824150ee6a07ad40f002f1c123e14f82118abcd1adf89d1101fb6374632f2c8ac805aceeea8c43164f4f8f4a60b14de23d683ca30f76c39785f93c871dd1d613c1d13a01a60c40d37491ba0c23c78b827868a353ff16db6154bcae9477bd53549024ef92c1505a9bba9b8b9b11382ee063a634f702dab18eaea32bfcdf9379e0662279c8a744db2f5abe415ea10f477e715da5afc21ca25350bec6c159ffa093b8f762b15406a21691049da6518f5e25255d5b4d5bb4af2a13077e4804d15d2d8d6e15d785cd34cc31445102b3ad6ce799b5635dee0f6c99dac488d2aa7b4b4fd04b2aefff70cacfca26c3f64bb8f09df9136eabc8875a02980006fd424f583ef2c3070dabba6543dcc50b380bd51daaf61fa77bdec68740819090324bf350907fc9945939cadbb91c2b591320f81451c004897ecfd165084a908dfe43b53669369046fde0356cd42ae567b3429bf2238af546e7aa263af676205c2946baefd809789b52da11381fcd76f1eb510dee5ff478b8b7c82e9e3b03b62ac2bbba03cd6453868638e3ba0fbe5bbeec9118b9258f0768b2b7e1d87e052a062b0a87261f9ab822733c202b244e5b388e13de8467a3f488b64bfbdba6e8238cc9080cfa47991e5a249467c484dd5bb932ca32314d21acd249b007a8d685fa1ba7359f96c008653605444be6462be3440a7ba3eaa4571bb30cbe0cedee8563a1692c66bc56bafb9dc07c1eca7c0d82fb8282662f1666f6c8f373f1edeb4ad6cd8d4cd3cbb102a581bbb7473775e78c2593a2121c7cb71890ed224e9e16a6a3297beaad146acadf80bd97baab632b566402fa1c71910f0e062f4287dce118b74bddd3d1ef3c92b23877f2645b0ddb7bf13393495dba29f21f658aa76b3a85804f09b7f87eb4a676ab6a8a992091238a84395ad9f0b5baca693a4465b2ce3bc6faaf6e0a438f8dd165855051822da848a9a98020f6c7c323e8b1a0f5679625f88d6e0d439df43c2071d0fb7d0fb7abb5928b49bb3f5452114e00a4dcecacab271bda2312b25019f2903205afff1c177fb9e16be1f6583008fd2535fa41b84a96eb36ea0122b572b0292372ed7e3b539c27dd009720bab97907c32e66301a9a3fbeb02713490ff0592ca1bb2164190c4ded1dda29bc3b5064aceff7285ebf9ea49c5cdfb8e60f6d10a493df895757d1ba489ce9ccaf2d05be1d5c2ce9be40e905792c2e6feab7821df0cc7f2524b830b19cd610887df6b2030c9d7d58d91ce06c24d4c4e6af0841ab1cf0ef51c716a7e8e40be16be33ef5e9af810aed3a5dc35c5b3359afc5c1a41945169d7ad7ebd7c1361643e744a9cd7a08e67443a2dbd7d1e4003e7ada5c717707c7fc8d992da801ed4b017bb9a5eee128d23e4e5ad777d545e811b506b91a269d6aa83004f381dad938099dc0d25c1704eed302e0f244fe082457a03dc295a884a6a5e9949e6c6ddb17428 \ No newline at end of file diff --git a/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0202020202020202020202020202020202020202020202020202020202020202.txt b/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0202020202020202020202020202020202020202020202020202020202020202.txt new file mode 100644 index 00000000..451e846e --- /dev/null +++ b/contracts/satoshi-bridge/tests/orchard_bundle_cache_170000_0202020202020202020202020202020202020202020202020202020202020202.txt @@ -0,0 +1,2 @@ +utest1fnxc0uu58cm9j2ucvda3h30sgujzs2jz4ael039rwuvx23qgrr389lzde5trnekx7sl5t242t9zr3dq00zh7uz67z7gaezzf35j6gxq9jtwcg2xrs356qz2jjjqujymahm3z2kxwrxp +015cf5c38a183143c5dc18eec34c154e1d9244616293a4b709241f2613334a65ac6267d2cb27196c3ae9d3301165a3c5c55a039f3f1b0cd0d23268238ac076fb180b2d6e28e7bac0415f838a03a947cc607bd04b1613e27598672ff235ce1897000acc2e1f7bd27d6970f64418ecce291014ba4580bb5da099f10878993437bf1d76688538ecd8d3b7f94984ab794f40c161d8490d28fdd206cb120efb80ff46a0b7c9df812707d0f69629f5948838aa5bd836976946677151158c13b6bee04efa979499c87b441264199644b2d461bf0c4391650a2d567a3fa30b6f6da125895721beb97a5407329e25d3082522e5c3110b9d39006f429668ba9ae764aaa5cdb87dbcd9b8a3eb0a933b8f636aac6049717856ce9bc5b0835b9804ee062852a63c311f56b7798d6f00058f7426fd75704e7d7b0d29b32d6e90b45ddec8e19bba7f89aaa4af8bda709c4e4b4a278e2771c8562ed8806b4403bb8aa99123d603da96838258c1d20bce6c91303fc1cf7b8bd3d762e90b126a7cac2add87531d56417fd5c7799bb890a7c5d94cee9c9a9a61c69f3028d247fbb3f74f2c985fc0d090edd12e8f95021609bfa4a09dd8c297935a4f5386175adef8abf640ee85b167ca508761d58ab581003591f07a154aa2ef4c6bd290e5918d8d6cfcb2129f565e7fbbf5e3304da8ae2dd34c2a6846925220e42680116687fcf3d3714de0ce8f94f0d1b8210fd053b6c9c37ea7f0a318ee7f625bf3df089a31115f299af3c1947f0f687af2bef96f8e10cfd4bfa86599c483305ca1bb5bab445b8755201b71baf35380aa4ab01032d685f38fb72f7fcc3a88c870ec82b6536bbcfd61a222436c0276bb35f4d99d1175a5656bc076de192e9f778f23b115c2e8101daf1642687cf5b21e6eb464418bacb56dc86627715351dff702b0be8b3d3fbfbaf1d800c8171b251d53afc4c75ad70ef5fd2d48a80218fa5fa1847b9ec89588224bf450330b2d22280093b294bf3b4e091b2a41597fc55505dbbf6207f91a3c0eaf301b11584b7a0bfaa87204027273e1a843aceb3c12657b3262751e63950bcca7bae3c05c2f0048eb83ddf7290e7b08be5d11ee7b706a03739efd2885ef613b05ad8d04e443b2bc29a8422364e4aedde97c9ab47073838c8c8ca40e02f067fdffffffffffae2935f1dfd8a24aed7c70df7de3a668eb7a49b1319880dde2bbd9031ae5d82ffd80132fcae27f0b047610dd69865bc10ddb898f0c982e50f839903ab6113abc86979995a9046befe2b68d2bba1ec547e068bb02ba7e695085261311157fb7797a4c0de25f12acdbbf6d940106341de1820668d248fb4213f86ca1d20b4ad6c42022227c8404dfe849b988a42bed65eb925df909b39f6a0df495bc20336fcad42f222bc9d242c7d9f7b9b6030fbdcb7f8b05e06a4f258f25b3416c44f6f1f2a990548ae4bce350203d178e7b843ef59ac93fcaafec3eb3caa783b080f66e0264dc2598567286d280370351594550981c336b36c17350b30b3c6dcdf4d8e2cc24413d1332c6f2017f6678dd61eefacf51701c01d36e44e9188dddd2f8732e0f4828f288787f0db9c51748ec4a9a75de6983030e1aaad8b509628670094745eb02597a1d2d5f0759ad71db316d3cdf6cc32215691ba624d157762f2e495f20b965f36a93be44c873e9d3263046ae58a28b1d1e4b1664f7579dbef7a10949ca9a11ff0ab5b23334d39e160efe88e737ee63d311eece875c3e7f7109077ec6941fa87eeca839b3ec5e4685217c1aee96e9a594679f3c7e207d797d8de59f29e40ce5fdf21516d5a1ff6bba3f0a204f7a94e5fe9aafc3e43134d4ff47d74d1285850efdc32e677bf89130c5126b42e3900f6b30a25d9c64c45221c83968124caa29f1272b3fde5ad04c71fe1e3e33e822f7501b1a1573cc5436fb1a1723a4e764131e1d1e2f8ed6965296f444c049160a048e0e1a7a6f5f013f9a1a1c4c660007d867d71e3cd9b08ef5ce17d84821a2c0e2c7896fdaee60620729cd60510da4bc73565780b71e29bfe8342641b558a8f319a83cbd58afc544dc44cdcbac02d0057445dcb0b71dd3f38adced4a97003d265b6dbc930908929fa2a4ea7db5177b6dcf6271d709f8170ff4954c0e358d95cd2d055da80d0d5bc0b5fd71dd37478537602e3208ba9edeca406358f9ccebcdcff5e59b165fe031375424b2be003a0f3ec0de77672df1a64f8cb70edfce6832a9a1f68a8bc3a5027847755e5b11168905fd1258660affb1fbfe11d57df94fa967cacace99f203f34cf91d2ffa85d606c2d5df07ad85ebac1d882dc085cd08aa34caacdc24d80e76ada7e12efb35b0b29017c329d1294d2e7fe23fd028b85fc9befb1ad60439e52a19d14e74265878af95915ccd138a4f273b2db7b00b3eafd9aa48bc89e243ad07bc689377baf2d3f7a6f664dceb2f0ece08fd0ec24bdc08b123728624129c7276d36f7794080cb8582ccc0f1419289b5431fcd5745d5238a0b3ef211a3f31542b9a327009397ae0f9250b5c4571885d5da3357be37a9fa5fc883935a1cbb8339eb25c51ad70da6962dd235c414e1ba77403170d1646799a869b8990a55f01535b7707a24c6a4ce0b0f2003fcbf021d4dc3e41f8d7db31137273060a7a56fe39cc552686bc2899c423309f11c3dd0bd44aa18a45e5f1ad056e0075634793841e4ba2e2c7a7990b05c4e7a23a927637814da0e46669eb96d472c4999556277c5534b50cbeb80d252dd418c56eb116169226a2c7830baecddb605b9b48c1d947e55b4c532a22799a177827f878085410f1d0c76434e32ba011b58971249fd75324253564599acf9ad2bca7976ea68f295373be52452e80fa151464765f543f9459650774e5e37cf13acc6ed5d6e46e1b18c2940ba35d680c91abf408d2e979498617988b49c9e670e896b08dca5a3138adb1cc1ed85258af4d1d8a022c37ff20b54fc39fcd00b97490efb3cc1513851119866b42084dda753935c14459ce49a480e1315b618831fee3aeb0ef48578f2091bd904fc2327a062648b7a76ca9b611079558f569864324622cf281c88975092663b64a8a7e1d5f539d84f393b36841ff1064b5785ac37aff1feaf084f0dd198862ecd5beb2c86617f80c7dc8587ebcf21a8c13e6a93d943d7aac79710cb533e4b28b9e07fe56dc962f4705dfa7cd55b8987d8234ad15e20627818264ea650b4fa59ca289a12611bb74eb32950a238b2fa74a40fc679387b5c7401f61e7d32e6240f78746dfdea915c8158af929201447ae06d6017487221c2b497e10ef452274edf729ded3bfa1ed322763b07435a52063809db356117a9e99be960ffa3b2db595c962162622f5c7ad13dc802f3b8a10c348af5401a13cf54f31462f150b209dd060b5b91815ad2b2fef522391569c150106d0b46270313d463816b10f0e25434cd822dda157d0a7bb247b8bccfa85d6d35d6652245cdfe7e1c6fb0396cc24ba4e06e985ce8c42fe83847e9123f559498c5920e35a0dbc474d4bc69d34493027a711b7ab4bc37ffe7f0c009475415759b8ad88a86184194d9419d07bc9c72f6cec7c06335f4f5734236af49c3c420cdbacc6b0f8bd4139cfe64c7fc3fb63226f32bce00356dab1d50c8b074aeb2cf246a362215f1f20de560b02fe06c53f3ae51217a69b9d81722cf0429d6f482ba07b962bd723e5ac4aa27748ff53e7a115ecf232d38decd545b5f122a02921e1d0e6f4c95c7763886dae704c902739a028850731da66f364c16fac064a37605a875fd0df7093351f17049be5d32245c81afe717b2b2c1f06fd94c7e9fce7ba4f4632a76e0d46b1d0fc36d156263939450ad2963733dc9935fb24e24ce72abdbcc7732a80377977c2dbc2c7a6ad7a38052b6301c5e30136b4e85dd813ac0374142b59b32ff58f15bf75273a4de74ad3e2178927fe7aca3fd15113e8a935d04a220035cd5ad03fe7e850e358d570f5e7eb1d35697dfad60cdb8717f0c788e8593b1ecced4b58a8461586674572cab4131c0e63e75f0cc41d289d84f37696f73cbdfdf1f494a3c9875ae55ec0842304ede532e6f4a047288a12b5983723b77ce3daa97ead3f7bcd9a5af9154264d583dd5729f4bfaf3f6c5370140a7642907454abd82552892585ed1735f0c2a63dee0cd102d0ef97d378c2084b50f573c0a45e7a3908b2993f0ef9be266e73865a1b532e2f24b5200f99d66e29ea73b648bc74cd1b587e481d1028f92ac46235717944533b5465b2e12ceb43797cebf8aef6eec9062f40efea01b0df36805e3fd9a1cd6a1e601751ec03ea1c0c010a94ea62b57b508fd310d587919a750cd14e5221eb4408f6eb2e1398da5469db4298135e04da835183df6dd8b6e079e476c4af7204951610648570016c5852f9959d483df1dade667e1a1a594a5b65b824bfc057ed3e2668a72878c88cc4d601306845ceefa2622a869ce0cb374e6e507552d0241e8a015ab4479def6b304382d2d188967dfde4531720deea84312a159f4e4f79fab522b7f5d95c9e08e931e26110c4e495c292c3f31caa9545a462a3c4cde0a265eb391fd70b9e611851e23224b262437a3b657cf00e858f59d44af4b8d538f8bd961006cb6ca2125635eb88b69c09ecea05007dc6724df2ba08b8ba4888b72e4fc92ed15b59df3e563baf624dde9748aef7d2b1f19dee275fb7327ae2d8ed281bd620cc89b74b972ecd259e61e6dd8cf6a12046947785f77df5cd4787e968be1b321dbb169cdd9117d62f3eb2d48ec0182298e2677fcdd577e6848e0672a324b7ac3bc96a550e2c246fc57416395eb6f9b8f415fde180d098fa36e24dc4c58e8e833ddecd096d8e39c2872d8b0c056174ef7be24a148c9fb8569907f8bba73797ad3ab29b81e2a469ab5b9e07f78ffa5d580798b637a99aaba9d1db5713e0c5013e3b2fb7f3f94537528f48d31945af8fa7fa4f604479ab75db957d98829f9d2b161dd27567f2b3dd8d4f8238488e5f38d3e110460e0d419e93cc5c24b8e7e5b9ed1e1b3cba7e5e217b50cd169e0ad915c70e395c3d18c8b62c650385ae72d6decb3d9cd4ca5a6bc54df8ac63bd5bd9c21e6b4e6a9e89dbaeb8e6a253033f8e4aeb2cca6411e5d8307b4ff5ce6d2eb38aafe747d1d0ba6541a7912ce51b455f96500fdfea6744f0a16b508726e9af4d2bb09316857164b21b8c82c1b6c4659cfa1f1360eca2aaff39e17654a92347cdfa845311d77535fb0b87ce65db2ed9c37a750137f7e6a1ce4fb7854cc28f403769e595b06b0766d25f437874f42172477ef213cd6744e7142a1c400f61d58dfc69bc2a2a73bfc2a359acf0e84d6386e75e741dff21240bcde0465f02389b23b6e44ece1aeebdacb21106873e924dc5083ffe2188c84d1a466e1983995a04d8210a91347213a0bc112f4e83c50c4f81a54a080e45caef5a30d541bfa3d708eb7a47631a8492c3c01817670d37a0122da9b0f3229eb50435f4e091f551c0c8df9878eb93cb23b863b8f672792d11591fbf1213287aa0d0d7942f48454c1159f2e88124ca49dbd3e29e20f1c51c6dc3b6d95e0e00d474137fb8344151c7d874d7c99929abec7c5a0f13c5ce862ab10da3a70c7e08310f24763ee16fca2c4e03110665c5289406ffe26c46cba27b5d66f0ad1a24214a22e891d419fb2b0f2e31b556c7a43e361870dcd4feb8e586387a60774de5380d87ceefe3d198ad743d56697a8fc8e4032cc317d3a8e2f01c266f501495f6044493561b2e7e31ef8a0684e46b0b8e29e8bb20405f24f54f0efa54f1b4dd3e3ea62fec1522cff9281534122b1f29571197644e62aa9576dbe03f77209a0ff629d14fd6aca6df3a4c53865933215170d7b368a099f3aec20b6dded8d8139ff237fa237691abc8a62cbc8d4d3e18662acc70f7c1ba7bce15b134f4dac176a7f7167c82df632b6fc00a876ea6981186a0265653927cb32f2cea5bd0902ecb801d095d1bf1e9405601375f6636cdae329e8ba8651555d9a2da64d13b9a7989dfd23f247042a9bfa901e47fc228612c27eb8eb9182d6f2007b367606990e778c46e1f420a6bfecde89fab8c99bc61233b70a9034149596923a2f17afffce59b5e323e4f7c0d285816ecedc2925dfd673333e0659ede964fe0685fc9eadb7321c1e5339279a3a7a009451c2bc6ea622e4baf672e8d21d701619afd0506506602700108c37eb3c8d60e93fae673da1e8d8dc458ed0929364ac19f93a9b4fee8b5e0573fedbb1920a5c39fed94d0640a6bfb2afa6ac77d9240c211c7db17d9ca4171a10f46d9752c2ae654d036e95ae46c3d0a4f4d08db7cb0c48450f75aa5b23fc6f632ec61cf0f10261823257242089c1c57ce3e0a909caad971e7c24f8b0473133d03e1a25f2cf696f665027ba094b1aef034524304aae8c789c4c7ab0cdd231a032bf4742120f0b777ae72e49bcb3d02e3336d6608b78a534a220a8747c1f7b9a63b26684fdf94eac77f1a6fde299ed3536ebea74cfeef5c8008ef49d9113bd5b03cac27cbfc6cdd50d4380ba5495f33efaa0ffbf6785d3a856b529dbde111b28e054a14d5f8a08163710be6df9a71d211c34b1470eca8e563efada6396191b87a3f1605d5803562aeb4b6545a50b151ea81fd9e5909dd164b67b992c93188429c07cd3658d8a09437b944cc475c1dd77855cf925947ba754b240361636a5d6fac3add10e52fbee67af4c69b59b73ba4322f929483071c83cb8f3df7a4c3d819e535eb953578eca56726c96522338be9f878953f4cdddceefc8cd79e86d074b0733b814aecadc8d508348573c4bb5ff5d17ecaf176c6f93f28f2ed8b730e54a87e3aa675e569829f4c1f2c70055c016215ed909656b79f0f1f4cfe7bb92bba382803cb8744e75549ce2deb599e6de5221d30f5897fcf0ee8dce4e19347951f012ebda171088116b0f2524a853a68bbeb8ef13b7487770a47bc96590f8086d9bf7208ce312f7acb50dd779d71d81f3fd3a47d712ebbbe4291ceeada92551e3d43703dad0ba8187a4395733cf5e597ca921dae7efb336446ae2fd226710a3cb84e452b193f3b0542de7966ac8733b7e12ee8459a5d6514e15a797022506c867d30af23a6f54a7864a3d9324e76a51f653dbd642663a457c9d3d882dcfb1f02c3cda00728f359b9548db2e030e67a602fa950f7db9d42f6b1821925f16eaf7d0215813b265611dc173e45201a98724fe3b8db49338ee23823533377248eb5fe47bcbf2c6dbb4dda5c7d109ab643133065aa08ac2c91a39949d782547dc7d909f9db673739b924b50b222366d56bbf5ec1f112a2b1ee70a153f7265eab1600080f78018c00a1fea65e37312e9846b3bcc8bea4d14eef682193eb4e5d0d96d306ccdd57823a805784664b5e538a0efb0368e6551e49a8cf77b117910d7b472fb678e18486105c3be7563577b926d1fbcd380e238dd2516a13ccdce9dc8500db5e89cd23967539336703ce232d3ad0d284abf35faaa57798ce6deaa6e263fa2773cfa98015aa104bf5e8b9cdee12d825d1949a2d2cd0037e730b4d89e873b14ea6a3f8120fc25e2d3afa8eead2ee0795e23facc49fd32ee433223f643f231d7fa1a459a0bf05b95cf6e11dfe2c992116ca938a3298095a89807e3d078f50169e5c23d0543ff0e1db6908d97053ef7d611784984d39a9f7b13f80fbb9b1e1fec8149f2c8b0fbe0f85388294a52e1a6b6e76716d9c41815699f6ccd7ffe7764535ca48720e1d025e3f571ff0694a80cce4ee8c1d10ee7dfcf67e35cb19b117251567e43421915c9330c3a873d8930199b280589581da3ac9ac6b28946004198a01d151c7f9b27e73b0a26b4919695c2f246981097accf24d9c8d640f0a59db3245466bde0f267502451a33ef0ec730fd02affd9b0060ee2c64b54415278788caa2a61a1f6e027f3514b8f018333c3a6b0f0abbc8e8cc1ad2c9b34dc9674a002b718f2e01993f17b2102bacac38a4545174edaa8e7136a38e9b09298180709aa79ce194fddc3e6a623f1ff54f1a2491ca3dfc910c71b88f0df17ce781de3df8a419d8f4b7bb0d2bc67620acb7f1eed50dc87e98da96f2486be2feda42f84bfc7949565b3e91254c2699ec89ca6031a2bea801530a96297d49d56f32f46209ea2f10c665515191faa4d17a590e1f64da7c4b206561259692a3f29e349e5e7a95b4e2368d8c4db1ea83ce7fcdb23dbf92bdb2373eaa0240ed3632e7b51c4e0438f53722f50b27202e80d8a8b8d25d781fb015922e03bc93e5972da885cf20a87c88697a68aa4036955c80debeb43268798fcc656f801d04b2aebd38facdb943b648cbd9593aef95f50f06cb80ae2494e56b90febde729e757340b8d4470fce4da14e29d8b684b1a9c618ffc1db2a0a7ccd5413c9fbb4988b9a5943df8152127afdcff34a0bfc23e287b11be737f499bce06399250e8cfdb7b6108d29d96fc99db5191a43716a23a \ No newline at end of file diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index 36d47bc9..3c2054a5 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -23,6 +23,11 @@ use crate::{PRICE_ORICE_NEAR_PRICE_ID, PYTH_ORICE_NEAR_PRICE_ID}; const DATA_IMAGE_SVG_NEAR_ICON: &str = "data:image/svg+xml,%3Csvg%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0_2351_779)%22%3E%3Cpath%20d%3D%22M16%2032C24.8366%2032%2032%2024.8366%2032%2016C32%207.16344%2024.8366%200%2016%200C7.16344%200%200%207.16344%200%2016C0%2024.8366%207.16344%2032%2016%2032Z%22%20fill%3D%22%2300E99F%22%2F%3E%3Cpath%20d%3D%22M16.0006%2028.2858C22.7858%2028.2858%2028.2863%2022.7853%2028.2863%2016.0001C28.2863%209.21486%2022.7858%203.71436%2016.0006%203.71436C9.21535%203.71436%203.71484%209.21486%203.71484%2016.0001C3.71484%2022.7853%209.21535%2028.2858%2016.0006%2028.2858Z%22%20stroke%3D%22black%22%2F%3E%3Cpath%20d%3D%22M27.1412%2016C27.1412%2022.1541%2022.1524%2027.1429%2015.9983%2027.1429C9.84427%2027.1429%204.85547%2022.1541%204.85547%2016C4.85547%209.84598%209.84427%204.85718%2015.9983%204.85718C22.1524%204.85718%2027.1412%209.84598%2027.1412%2016Z%22%20stroke%3D%22black%22%20stroke-width%3D%220.5%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16.2167%2011.1743C15.9198%2011.1643%2015.6095%2011.1622%2015.2868%2011.1668V9.32056H13.8907V11.2217C13.1583%2011.2659%2012.3792%2011.3332%2011.5625%2011.4149V12.811H12.9586V18.8607H11.7952V20.4895H13.8893V22.5836H15.2854V20.4895H16.2161V22.5836H17.3795V20.4895C18.4654%2020.4119%2020.6836%2019.7915%2020.8698%2017.93C21.0559%2016.0686%2019.7064%2015.6032%2019.0083%2015.6032C19.5512%2015.3705%2020.544%2014.5328%2020.1717%2013.0436C19.9215%2012.043%2019.0072%2011.5204%2017.6128%2011.2984V9.32164H16.2167V11.1743ZM18.0737%2013.9723C18.0737%2012.8554%2016.2122%2012.7313%2015.2815%2012.8088V15.1356C16.2122%2015.2132%2018.0737%2015.0891%2018.0737%2013.9723ZM15.2826%2016.5322V18.8591C16.2133%2018.9366%2018.3075%2018.859%2018.3075%2017.6956C18.3075%2016.2994%2016.2133%2016.4547%2015.2826%2016.5322Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0_2351_779%22%3E%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"; +#[cfg(feature = "zcash")] +const BRIDGE_WASM_PATH: &str = "../../res/zcash_bridge.wasm"; +#[cfg(not(feature = "zcash"))] +const BRIDGE_WASM_PATH: &str = "../../res/bitcoin_bridge.wasm"; + pub struct Context { pub root: Account, pub tx_listener: Account, @@ -38,7 +43,7 @@ pub struct Context { } impl Context { - pub async fn new(worker: &Worker) -> Self { + pub async fn new(worker: &Worker, chain: Option) -> Self { let root = worker.root_account().unwrap(); let ( bridge_contract, @@ -56,7 +61,7 @@ impl Context { .unwrap() .unwrap(); bridge - .deploy(&std::fs::read("../../res/satoshi_bridge.wasm").unwrap()) + .deploy(&std::fs::read(BRIDGE_WASM_PATH).unwrap()) .await .unwrap() .unwrap() @@ -162,10 +167,14 @@ impl Context { .unwrap() .unwrap(); + let chain = chain.unwrap_or( + std::env::var("TEST_CHAIN").unwrap_or_else(|_| "BitcoinMainnet".to_string()), + ); + root.call(bridge_contract.id(), "new") .args_json(json!({ "config": { - "chain": "BitcoinMainnet", + "chain": chain, "chain_signatures_account_id": chain_signatures_contract.id(), "nbtc_account_id": nbtc_contract.id(), "btc_light_client_account_id": btc_light_client_contract.id(), @@ -201,6 +210,7 @@ impl Context { "rbf_num_limit": 99, "max_btc_tx_pending_sec": 3600 * 24, "unhealthy_utxo_amount": 1000, + "expiry_height_gap": 5000, } })) .transact() @@ -1129,7 +1139,7 @@ impl UpgradeContext { "rbf_num_limit": 99, "max_btc_tx_pending_sec": 3600 * 24, "unhealthy_utxo_amount": 1000, - "expiry_height_gap": 100, + "expiry_height_gap": 1000, } })) .transact() @@ -1151,10 +1161,10 @@ impl UpgradeContext { .args_json(json!({ "controller": root.id(), "bridge_id": previous_satoshi_bridge_contract.id(), - "name": "Near WTC".to_string(), - "symbol": "NBTC".to_string(), - "decimals": 8, - "icon": Some(DATA_IMAGE_SVG_NEAR_ICON.to_string()), + "name": "nBTC", + "symbol": "nBTC", + "icon": Option::::None, + "decimals": 8, })) .transact() .await diff --git a/contracts/satoshi-bridge/tests/setup/mod.rs b/contracts/satoshi-bridge/tests/setup/mod.rs index 38dd94e7..76d00fc8 100644 --- a/contracts/satoshi-bridge/tests/setup/mod.rs +++ b/contracts/satoshi-bridge/tests/setup/mod.rs @@ -1,6 +1,16 @@ #![allow(dead_code)] #![allow(unused_imports)] pub mod context; +#[cfg(feature = "zcash")] +pub mod orchard; pub mod utils; pub use context::*; +#[cfg(feature = "zcash")] +pub use orchard::*; pub use utils::*; + +// Re-export types used by tests +pub use bitcoin::OutPoint; +#[cfg(feature = "zcash")] +pub use satoshi_bridge::zcash_utils::types::ChainSpecificData; +pub use satoshi_bridge::{DepositMsg, TokenReceiverMessage}; diff --git a/contracts/satoshi-bridge/tests/setup/orchard.rs b/contracts/satoshi-bridge/tests/setup/orchard.rs new file mode 100644 index 00000000..f128ff6d --- /dev/null +++ b/contracts/satoshi-bridge/tests/setup/orchard.rs @@ -0,0 +1,164 @@ +use orchard::builder::{Builder, BundleType}; +use orchard::keys::{FullViewingKey, OutgoingViewingKey, Scope, SpendingKey}; +use orchard::tree::Anchor; +use orchard::value::NoteValue; +use rand::rngs::OsRng; +use zcash_address::unified::{Encoding, Receiver}; +use zcash_address::{ToAddress, ZcashAddress}; +use zcash_primitives::transaction::components::orchard::write_v5_bundle; + +/// Bridge OVK used for all test bundles (same as production) +pub const BRIDGE_OVK: [u8; 32] = [0u8; 32]; + +/// Generate a Unified Address containing an Orchard receiver and a single-action +/// Orchard v5 bundle hex that is recoverable with BRIDGE_OVK. +/// +/// This function is expensive (generates Halo2 proof), so results should be cached. +/// +/// If spending_key_bytes is provided, uses that key; otherwise defaults to [7u8; 32]. +pub fn gen_ua_and_orchard_bundle_hex_with_key( + amount: u64, + network: &str, + spending_key_bytes: Option<[u8; 32]>, +) -> (String, String) { + let mut rng = OsRng; + + // Use provided spending key or default to [7u8; 32] for test reproducibility + let sk_bytes = spending_key_bytes.unwrap_or([7u8; 32]); + let sk = SpendingKey::from_bytes(sk_bytes).expect("spending key"); + let fvk = FullViewingKey::from(&sk); + let recipient = fvk.address_at(0u32, Scope::External); + + // Build a simple output-only bundle with BRIDGE_OVK + // Use Coinbase bundle type which supports single output without dummy actions + let mut builder = Builder::new(BundleType::Coinbase, Anchor::empty_tree()); + builder + .add_output( + Some(OutgoingViewingKey::from(BRIDGE_OVK)), + recipient, + NoteValue::from_raw(amount), + [0u8; 512], // memo + ) + .expect("add output"); + + // Build and authorize the bundle (this is the expensive part - generates Halo2 proof) + let (unauth, _) = builder + .build::(&mut rng) + .expect("build orchard bundle") + .expect("bundle present"); + + let pk = orchard::circuit::ProvingKey::build(); + let authorized = unauth + .create_proof(&pk, &mut rng) + .expect("create proof") + .prepare(rng, [0u8; 32]) + .finalize() + .expect("finalize proof"); + + // Produce Unified Address string containing BOTH Orchard and transparent (P2PKH) receivers + // The transparent receiver is derived from the spending key for consistency + let orchard_raw = recipient.to_raw_address_bytes(); + + // Generate a deterministic P2PKH hash from the spending key + // This allows the contract to extract a script_pubkey for validation + let mut p2pkh_hash = [0u8; 20]; + p2pkh_hash.copy_from_slice(&sk_bytes[0..20]); + + let ua = zcash_address::unified::Address::try_from_items(vec![ + Receiver::Orchard(orchard_raw), + Receiver::P2pkh(p2pkh_hash), + ]) + .expect("UA from orchard and p2pkh receivers"); + + let network_type = match network { + "main" | "mainnet" => zcash_protocol::consensus::NetworkType::Main, + _ => zcash_protocol::consensus::NetworkType::Test, + }; + let zaddr = ZcashAddress::from_unified(network_type, ua); + let ua_str = zaddr.encode(); + + // Serialize bundle to v5 bytes and hex-encode + let mut bytes = vec![]; + write_v5_bundle(Some(&authorized), &mut bytes).expect("write v5 bundle"); + + (ua_str, hex::encode(bytes)) +} + +/// Generate a Unified Address and bundle with default spending key [7u8; 32]. +/// Wrapper for backward compatibility. +pub fn gen_ua_and_orchard_bundle_hex(amount: u64, network: &str) -> (String, String) { + gen_ua_and_orchard_bundle_hex_with_key(amount, network, None) +} + +/// Get or generate a cached Orchard bundle for the given amount. +/// Caches to a local file to avoid expensive regeneration. +pub fn get_or_gen_bundle(amount: u64) -> (String, String) { + use std::fs; + use std::path::Path; + + let cache_file = format!("tests/orchard_bundle_cache_{}.txt", amount); + let cache_path = Path::new(&cache_file); + + // Try to load from cache + if cache_path.exists() { + if let Ok(contents) = fs::read_to_string(cache_path) { + let lines: Vec<&str> = contents.lines().collect(); + if lines.len() == 2 { + return (lines[0].to_string(), lines[1].to_string()); + } + } + } + + // Cache miss or invalid - generate new bundle + println!( + "Generating Orchard bundle for amount {}... (this may take a while)", + amount + ); + let (ua, bundle_hex) = gen_ua_and_orchard_bundle_hex(amount, "testnet"); + + // Save to cache + let cache_content = format!("{}\n{}", ua, bundle_hex); + if let Err(e) = fs::write(cache_path, cache_content) { + eprintln!("Warning: Failed to cache bundle: {}", e); + } + + (ua, bundle_hex) +} + +/// Generate a bundle with a specific spending key (for testing recipient mismatch). +/// Caches based on both amount and spending key to avoid expensive regeneration. +pub fn gen_bundle_with_key(amount: u64, spending_key: [u8; 32]) -> (String, String) { + use std::fs; + use std::path::Path; + + // Create cache key from amount + hex-encoded spending key + let key_hex = hex::encode(spending_key); + let cache_file = format!("tests/orchard_bundle_cache_{}_{}.txt", amount, key_hex); + let cache_path = Path::new(&cache_file); + + // Try to load from cache + if cache_path.exists() { + if let Ok(contents) = fs::read_to_string(cache_path) { + let lines: Vec<&str> = contents.lines().collect(); + if lines.len() == 2 { + return (lines[0].to_string(), lines[1].to_string()); + } + } + } + + // Cache miss or invalid - generate new bundle + println!( + "Generating Orchard bundle with custom key for amount {}... (this may take a while)", + amount + ); + let (ua, bundle_hex) = + gen_ua_and_orchard_bundle_hex_with_key(amount, "testnet", Some(spending_key)); + + // Save to cache + let cache_content = format!("{}\n{}", ua, bundle_hex); + if let Err(e) = fs::write(cache_path, cache_content) { + eprintln!("Warning: Failed to cache bundle: {}", e); + } + + (ua, bundle_hex) +} diff --git a/contracts/satoshi-bridge/tests/setup/utils.rs b/contracts/satoshi-bridge/tests/setup/utils.rs index 7a455742..cac6975b 100644 --- a/contracts/satoshi-bridge/tests/setup/utils.rs +++ b/contracts/satoshi-bridge/tests/setup/utils.rs @@ -6,6 +6,7 @@ use bitcoin::{ Psbt, Transaction as BtcTransaction, TxIn, TxOut, }; use near_workspaces::{result::ExecutionFinalResult, Result}; +use satoshi_bridge::network::Chain; pub const PRICE_ORICE_BTC_PRICE_ID: &str = "btc_price_id"; pub const PRICE_ORICE_NEAR_PRICE_ID: &str = "near_price_id"; @@ -81,16 +82,17 @@ pub fn generate_tx_in(tx_id: &str, vout: u32, script_addr: Option<&str>) -> TxIn tx_in } -pub fn generate_tx_out(value: u64, script_addr: &str) -> TxOut { - let address = Address::from_str(script_addr) - .expect("Invalid btc address") - .assume_checked(); +pub fn generate_tx_out(value: u64, script_addr: &str, chain: Chain) -> TxOut { + let address = + satoshi_bridge::network::Address::parse(script_addr, chain).expect("Invalid btc address"); TxOut { value: Amount::from_sat(value), - script_pubkey: address.script_pubkey(), + script_pubkey: address + .script_pubkey() + .expect("Failed to get script pubkey"), } } - +#[cfg(not(feature = "zcash"))] pub fn generate_transaction_bytes( tx_ins: Vec<(&str, u32, Option<&str>)>, tx_outs: Vec<(&str, u64)>, @@ -104,7 +106,7 @@ pub fn generate_transaction_bytes( .collect(), output: tx_outs .into_iter() - .map(|(script_addr, value)| generate_tx_out(value, script_addr)) + .map(|(script_addr, value)| generate_tx_out(value, script_addr, Chain::BitcoinMainnet)) .collect(), }) } @@ -119,6 +121,129 @@ pub fn generate_input_bytes( bytes } +#[cfg(feature = "zcash")] +pub fn generate_transaction_bytes( + tx_ins: Vec<(&str, u32, Option<&str>)>, + tx_outs: Vec<(&str, u64)>, +) -> Vec { + use zcash_primitives::consensus::{BlockHeight, BranchId}; + use zcash_primitives::transaction::{TransactionData, TxVersion}; + use zcash_transparent::bundle::{ + Authorized, OutPoint as ZcashOutPoint, TxIn as ZcashTxIn, TxOut as ZcashTxOut, + }; + + // Create transparent inputs + let zcash_inputs: Vec> = tx_ins + .into_iter() + .map(|(tx_id, vout, script_addr)| { + // Parse the txid string to bytes + let txid_bytes = hex::decode(tx_id).expect("Invalid txid hex"); + let mut txid_array = [0u8; 32]; + txid_array.copy_from_slice(&txid_bytes); + + let prevout = ZcashOutPoint::new(txid_array, vout); + + // Create script_sig from address if provided + let script_sig = if let Some(addr) = script_addr { + let address = Address::from_str(addr) + .expect("Invalid btc address") + .assume_checked(); + zcash_transparent::address::Script(address.script_pubkey().to_bytes()) + } else { + zcash_transparent::address::Script(vec![]) + }; + + ZcashTxIn { + prevout, + script_sig, + sequence: 4294967293, // Same as Bitcoin version + } + }) + .collect(); + + // Create transparent outputs + let zcash_outputs: Vec = tx_outs + .into_iter() + .map(|(script_addr, value)| { + // Try to parse as Zcash address first, fallback to Bitcoin address + let script_pubkey = if script_addr.starts_with('t') || script_addr.starts_with('z') { + // Zcash address - decode it properly + use zcash_address::ZcashAddress; + match ZcashAddress::try_from_encoded(script_addr) { + Ok(zcash_addr) => { + // Use zcash_address crate to properly convert to transparent address + use zcash_protocol::consensus::NetworkType; + let (_network, addr_data) = zcash_addr.convert::<(NetworkType, zcash_transparent::address::TransparentAddress)>() + .expect("Failed to convert Zcash address to transparent address"); + + // Create script from the transparent address + let script_bytes = match addr_data { + zcash_transparent::address::TransparentAddress::PublicKeyHash(hash) => { + // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG + let mut script = vec![0x76, 0xa9, 0x14]; // OP_DUP, OP_HASH160, push 20 bytes + script.extend_from_slice(&hash); + script.push(0x88); // OP_EQUALVERIFY + script.push(0xac); // OP_CHECKSIG + script + }, + zcash_transparent::address::TransparentAddress::ScriptHash(hash) => { + // P2SH: OP_HASH160 OP_EQUAL + let mut script = vec![0xa9, 0x14]; // OP_HASH160, push 20 bytes + script.extend_from_slice(&hash); + script.push(0x87); // OP_EQUAL + script + }, + }; + zcash_transparent::address::Script(script_bytes) + }, + Err(_) => panic!("Invalid Zcash address: {}", script_addr), + } + } else { + // Bitcoin address + let address = Address::from_str(script_addr) + .expect("Invalid btc address") + .assume_checked(); + zcash_transparent::address::Script(address.script_pubkey().to_bytes()) + }; + + ZcashTxOut { + value: zcash_protocol::value::Zatoshis::const_from_u64(value), + script_pubkey, + } + }) + .collect(); + + // Create transparent bundle + let transparent_bundle = zcash_transparent::bundle::Bundle { + vin: zcash_inputs, + vout: zcash_outputs, + authorization: zcash_transparent::bundle::Authorized, + }; + + // Build Zcash v5 transaction + // Use Nu6_1 for testnet to match contract's decode expectations + let tx_data = TransactionData::from_parts( + TxVersion::V5, // V5 + BranchId::Nu6_1, // Use Nu6_1 for testnet + 0, // lock_time + BlockHeight::from_u32(2000), // expiry_height (must be > 0 for v5) + Some(transparent_bundle), + None, // sapling + None, // orchard_v5 + None, // orchard (will be added later in withdrawal flow) + ); + + // Freeze the transaction to get the final Transaction object + let tx = tx_data.freeze().expect("Failed to freeze transaction"); + + // Serialize the transaction + let mut buf = Vec::new(); + tx.write(&mut buf) + .expect("Failed to serialize Zcash transaction"); + + buf +} + pub fn tool_err_msg(outcome: &Result) -> String { match outcome { Ok(res) => { diff --git a/contracts/satoshi-bridge/tests/test_orchard_validation.rs b/contracts/satoshi-bridge/tests/test_orchard_validation.rs new file mode 100644 index 00000000..61c08746 --- /dev/null +++ b/contracts/satoshi-bridge/tests/test_orchard_validation.rs @@ -0,0 +1,375 @@ +mod setup; +use setup::*; + +#[cfg(feature = "zcash")] +use bitcoin::{Amount, TxOut}; +#[cfg(feature = "zcash")] +use satoshi_bridge::network::{Address, Chain}; + +/// Test: Bundle with wrong recipient should be rejected +/// +/// Generates two bundles with different spending keys to create different recipients. +/// Uses bundle A but claims it's for recipient B - should be rejected. +#[tokio::test] +#[cfg(feature = "zcash")] +async fn test_orchard_wrong_recipient() { + // Set chain to ZcashTestnet for this test + std::env::set_var("TEST_CHAIN", "ZcashTestnet"); + + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, None).await; + + check!(context.set_deposit_bridge_fee(10000, 0, 9000)); + check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); + + let config = context.get_bridge_config().await.unwrap(); + + // Setup: Deposit for alice + let alice_btc_deposit_address = context + .get_user_deposit_address(DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }) + .await + .unwrap(); + + check!(context.verify_deposit( + "relayer", + DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }, + generate_transaction_bytes( + vec![( + "c6774e76452c36bba6c357653f620a4364fc063ba021e2acf6049f8d9e6b0234", + 1, + None, + )], + vec![ + ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000), + (alice_btc_deposit_address.as_str(), 500000), + ], + ), + 1, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + )); + + let utxos_keys = context + .get_utxos_paged() + .await + .unwrap() + .keys() + .cloned() + .collect::>(); + let first_utxo = utxos_keys[0].split('@').collect::>(); + + // Withdrawal with Orchard bundle and change output + let utxo_value = 500000u128; + let withdraw_amount = 200000u128; + let btc_gas_fee = 10000u128; + let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); + let orchard_amount = withdraw_amount - btc_gas_fee - withdraw_fee; + let change_amount = utxo_value - orchard_amount as u128 - btc_gas_fee; + + // Generate bundle for recipient A (using spending key [1u8; 32]) + let (recipient_a, bundle_a) = gen_bundle_with_key(orchard_amount as u64, [1u8; 32]); + + // Generate bundle for recipient B (using spending key [2u8; 32]) + let (recipient_b, _bundle_b) = gen_bundle_with_key(orchard_amount as u64, [2u8; 32]); + + println!("Recipient A: {}", recipient_a); + println!("Recipient B: {}", recipient_b); + assert_ne!( + recipient_a, recipient_b, + "Recipients should be different with different spending keys" + ); + + // Get change address and parse it for Zcash + let withdraw_change_address = context.get_change_address().await.unwrap(); + let change_script_pubkey = Address::parse(&withdraw_change_address, Chain::ZcashTestnet) + .expect("Invalid change address") + .script_pubkey() + .expect("Failed to get script pubkey"); + + // This should fail: use bundle_a but claim it's for recipient_b + let result = context + .do_withdraw( + "alice", + "bridge", + withdraw_amount, + TokenReceiverMessage::Withdraw { + target_btc_address: recipient_b, // Wrong recipient! + input: vec![OutPoint { + txid: first_utxo[0].parse().unwrap(), + vout: first_utxo[1].parse().unwrap(), + }], + output: vec![TxOut { + value: Amount::from_sat(change_amount as u64), + script_pubkey: change_script_pubkey, + }], + max_gas_fee: None, + chain_specific_data: Some(ChainSpecificData { + orchard_bundle_bytes: hex::decode(&bundle_a).unwrap().into(), // Bundle for recipient A + expiry_height: 10000, + }), + }, + ) + .await; + + // Verify the error message + let err_msg = tool_err_msg(&result); + assert!( + err_msg.contains("Orchard bundle validation failed"), + "Expected 'Orchard bundle validation failed' error, got: {}", + err_msg + ); +} + +/// Test: Missing Orchard bundle when no transparent outputs are provided +/// +/// Should reject with "empty output" error when neither transparent outputs +/// nor Orchard bundle is provided. +#[tokio::test] +#[cfg(feature = "zcash")] +async fn test_orchard_missing_bundle() { + // Set chain to ZcashTestnet for this test + std::env::set_var("TEST_CHAIN", "ZcashTestnet"); + + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, None).await; + + check!(context.set_deposit_bridge_fee(10000, 0, 9000)); + check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); + + let _config = context.get_bridge_config().await.unwrap(); + + // Setup: Deposit for alice + let alice_btc_deposit_address = context + .get_user_deposit_address(DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }) + .await + .unwrap(); + + check!(context.verify_deposit( + "relayer", + DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }, + generate_transaction_bytes( + vec![( + "c6774e76452c36bba6c357653f620a4364fc063ba021e2acf6049f8d9e6b0234", + 1, + None, + )], + vec![ + ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000), + (alice_btc_deposit_address.as_str(), 500000), + ], + ), + 1, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + )); + + let utxos_keys = context + .get_utxos_paged() + .await + .unwrap() + .keys() + .cloned() + .collect::>(); + let first_utxo = utxos_keys[0].split('@').collect::>(); + + let withdraw_amount = 200000u128; + + // Generate a Unified Address (but don't provide a bundle) + let (unified_address, _bundle) = get_or_gen_bundle(100000); // Just get a UA, ignore bundle + + // This should FAIL: no outputs and no Orchard bundle + let result = context + .do_withdraw( + "alice", + "bridge", + withdraw_amount, + TokenReceiverMessage::Withdraw { + target_btc_address: unified_address, // UA provided + input: vec![OutPoint { + txid: first_utxo[0].parse().unwrap(), + vout: first_utxo[1].parse().unwrap(), + }], + output: vec![], + max_gas_fee: None, + chain_specific_data: None, // No bundle provided + }, + ) + .await; + + // Verify the error message - contract requires either outputs or orchard bundle + let err_msg = tool_err_msg(&result); + assert!( + err_msg.contains("empty output"), + "Expected 'empty output' error when no bundle and no outputs provided, got: {}", + err_msg + ); + + println!("✓ Missing bundle with empty outputs correctly rejected"); +} + +/// Test: Verify the generated Zcash transaction includes the Orchard bundle +#[tokio::test] +#[cfg(feature = "zcash")] +async fn test_orchard_bundle_in_zcash_tx() { + // Set chain to ZcashTestnet for this test + std::env::set_var("TEST_CHAIN", "ZcashTestnet"); + + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, None).await; + + check!(context.set_deposit_bridge_fee(10000, 0, 9000)); + check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); + + let config = context.get_bridge_config().await.unwrap(); + + // Setup: Deposit for alice + let alice_btc_deposit_address = context + .get_user_deposit_address(DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }) + .await + .unwrap(); + + check!(context.verify_deposit( + "relayer", + DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }, + generate_transaction_bytes( + vec![( + "c6774e76452c36bba6c357653f620a4364fc063ba021e2acf6049f8d9e6b0234", + 1, + None, + )], + vec![ + ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000), + (alice_btc_deposit_address.as_str(), 500000), + ], + ), + 1, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + )); + + let utxos_keys = context + .get_utxos_paged() + .await + .unwrap() + .keys() + .cloned() + .collect::>(); + let first_utxo = utxos_keys[0].split('@').collect::>(); + + // Withdrawal with Orchard bundle and change output + let utxo_value = 500000u128; + let withdraw_amount = 200000u128; + let btc_gas_fee = 10000u128; + let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); + let orchard_amount = withdraw_amount - btc_gas_fee - withdraw_fee; + let change_amount = utxo_value - orchard_amount as u128 - btc_gas_fee; + + let (recipient_ua, bundle_hex) = get_or_gen_bundle(orchard_amount as u64); + + // Get change address and parse it for Zcash + let withdraw_change_address = context.get_change_address().await.unwrap(); + let change_script_pubkey = Address::parse(&withdraw_change_address, Chain::ZcashTestnet) + .expect("Invalid change address") + .script_pubkey() + .expect("Failed to get script pubkey"); + + check!(print "Withdrawal" context.do_withdraw( + "alice", + "bridge", + withdraw_amount, + TokenReceiverMessage::Withdraw { + target_btc_address: recipient_ua, + input: vec![OutPoint { + txid: first_utxo[0].parse().unwrap(), + vout: first_utxo[1].parse().unwrap(), + }], + output: vec![TxOut { + value: Amount::from_sat(change_amount as u64), + script_pubkey: change_script_pubkey, + }], + max_gas_fee: None, + chain_specific_data: Some(ChainSpecificData { + orchard_bundle_bytes: hex::decode(&bundle_hex).unwrap().into(), + expiry_height: 10000, + }), + } + )); + + let btc_pending_sign_txs = context + .get_btc_pending_infos_paged() + .await + .unwrap() + .keys() + .cloned() + .collect::>(); + + println!("Pending transactions: {:?}", btc_pending_sign_txs); + assert!( + !btc_pending_sign_txs.is_empty(), + "Should have pending transactions" + ); + + check!(print "Signing" context.sign_btc_transaction("relayer", &btc_pending_sign_txs[0], 0, 0)); + + // Fetch the pending info and check the transaction bytes + let pending_infos = context.get_btc_pending_infos_paged().await.unwrap(); + + let pending_info = pending_infos + .get(&btc_pending_sign_txs[0]) + .expect("Pending info not found"); + + // The tx_bytes_with_sign should contain the Orchard bundle + if let Some(tx_bytes) = &pending_info.tx_bytes_with_sign { + let tx_hex = hex::encode(tx_bytes); + + // The bundle hex should appear somewhere in the transaction bytes + // (It won't be exact match due to the transaction wrapper, but the bundle data should be there) + println!("Transaction hex length: {}", tx_hex.len()); + println!("Bundle hex length: {}", bundle_hex.len()); + + // At minimum, verify the transaction is longer than just transparent data + // A v5 Zcash transaction with Orchard should be significantly larger + assert!( + tx_hex.len() > 1000, + "Transaction should include Orchard bundle (tx_len={})", + tx_hex.len() + ); + + println!("✓ Zcash transaction includes Orchard data"); + } else { + panic!("No transaction bytes found after signing"); + } +} diff --git a/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs b/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs new file mode 100644 index 00000000..f8d726a6 --- /dev/null +++ b/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs @@ -0,0 +1,285 @@ +mod setup; +use setup::*; + +#[cfg(feature = "zcash")] +use bitcoin::{Amount, TxOut}; +#[cfg(feature = "zcash")] +use satoshi_bridge::network::{Address, Chain}; + +#[tokio::test] +#[cfg(feature = "zcash")] +async fn test_orchard_withdrawal_with_ovk_validation() { + // Set chain to ZcashTestnet for this test + std::env::set_var("TEST_CHAIN", "ZcashTestnet"); + + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, None).await; + + // Setup bridge fees + check!(context.set_deposit_bridge_fee(10000, 0, 9000)); + check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); + + let config = context.get_bridge_config().await.unwrap(); + + // Verify we're on Zcash chain + println!("Testing on chain: {:?}", config.chain); + assert_eq!(format!("{:?}", config.chain), "ZcashTestnet"); + + // Deposit for alice using Zcash transaction format + let alice_btc_deposit_address = context + .get_user_deposit_address(DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }) + .await + .unwrap(); + + println!("Alice deposit address: {}", alice_btc_deposit_address); + + // Generate Zcash v5 transaction for deposit + let zcash_tx_bytes = setup::utils::generate_transaction_bytes( + vec![( + "c6774e76452c36bba6c357653f620a4364fc063ba021e2acf6049f8d9e6b0234", + 1, + None, + )], + vec![ + ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000), + (alice_btc_deposit_address.as_str(), 500000), + ], + ); + + println!( + "Generated Zcash transaction, size: {} bytes", + zcash_tx_bytes.len() + ); + + // Verify the deposit using Zcash transaction + check!(context.verify_deposit( + "relayer", + DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }, + zcash_tx_bytes, + 1, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + )); + + println!("✅ Deposit verified successfully"); + + let utxos_keys = context + .get_utxos_paged() + .await + .unwrap() + .keys() + .cloned() + .collect::>(); + + assert!(!utxos_keys.is_empty(), "Should have UTXOs after deposit"); + println!("UTXOs: {:?}", utxos_keys); + + let first_utxo = utxos_keys[0].split('@').collect::>(); + + // Withdrawal with Orchard bundle and change output + let utxo_value = 500000u128; + let withdraw_amount = 200000u128; + let btc_gas_fee = 10000u128; + let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); + let orchard_amount = (withdraw_amount - withdraw_fee - btc_gas_fee) as u64; + let change_amount = utxo_value - orchard_amount as u128 - btc_gas_fee; + + println!( + "Withdraw fee: {}, BTC gas fee: {}", + withdraw_fee, btc_gas_fee + ); + + println!( + "Withdraw amount: {}, Orchard amount: {}, Change amount: {}", + withdraw_amount, orchard_amount, change_amount + ); + + // Generate Orchard bundle with correct amount + let (recipient_ua, bundle_hex) = setup::orchard::get_or_gen_bundle(orchard_amount); + println!("Generated Orchard bundle for recipient: {}", recipient_ua); + println!("Bundle size: {} bytes", bundle_hex.len() / 2); + + // Get change address and parse it for Zcash + let withdraw_change_address = context.get_change_address().await.unwrap(); + let change_script_pubkey = Address::parse(&withdraw_change_address, Chain::ZcashTestnet) + .expect("Invalid change address") + .script_pubkey() + .expect("Failed to get script pubkey"); + + // Perform Orchard withdrawal with change output + check!(context.do_withdraw( + "alice", + "bridge", + withdraw_amount, + TokenReceiverMessage::Withdraw { + target_btc_address: recipient_ua.clone(), + input: vec![OutPoint { + txid: first_utxo[0].parse().unwrap(), + vout: first_utxo[1].parse().unwrap(), + }], + output: vec![TxOut { + value: Amount::from_sat(change_amount as u64), + script_pubkey: change_script_pubkey, + }], + max_gas_fee: None, + chain_specific_data: Some(ChainSpecificData { + orchard_bundle_bytes: hex::decode(&bundle_hex).unwrap().into(), + expiry_height: 10000, + }), + } + )); + + println!("✅ Withdrawal with Orchard bundle completed successfully"); +} + +#[tokio::test] +#[cfg(feature = "zcash")] +async fn test_orchard_withdrawal_amount_mismatch() { + // Set chain to ZcashTestnet for this test + std::env::set_var("TEST_CHAIN", "ZcashTestnet"); + + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, None).await; + + check!(context.set_deposit_bridge_fee(10000, 0, 9000)); + check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); + + let config = context.get_bridge_config().await.unwrap(); + + // Deposit for alice using Zcash transaction format + let alice_btc_deposit_address = context + .get_user_deposit_address(DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }) + .await + .unwrap(); + + // Generate Zcash v5 transaction for deposit + let zcash_tx_bytes = setup::utils::generate_transaction_bytes( + vec![( + "c6774e76452c36bba6c357653f620a4364fc063ba021e2acf6049f8d9e6b0234", + 1, + None, + )], + vec![ + ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000), + (alice_btc_deposit_address.as_str(), 500000), + ], + ); + + check!(context.verify_deposit( + "relayer", + DepositMsg { + recipient_id: context.get_account_by_name("alice").id().clone(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }, + zcash_tx_bytes, + 1, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + )); + + let utxos_keys = context + .get_utxos_paged() + .await + .unwrap() + .keys() + .cloned() + .collect::>(); + let first_utxo = utxos_keys[0].split('@').collect::>(); + + // Withdrawal with Orchard bundle and change output - test amount mismatch + let utxo_value = 500000u128; + let withdraw_amount = 200000u128; + let btc_gas_fee = 10000u128; + let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); + + // Calculate expected orchard amount + let expected_orchard_amount = (withdraw_amount - withdraw_fee - btc_gas_fee) as u64; + + // Generate bundle with WRONG amount (different from what we're withdrawing) + let wrong_amount = 100000u64; // Different from expected_orchard_amount + let (recipient_ua, bundle_hex) = get_or_gen_bundle(wrong_amount); + + // Change amount must be calculated based on the ACTUAL orchard amount in the bundle + // to ensure gas_fee stays within valid range + let change_amount = utxo_value - wrong_amount as u128 - btc_gas_fee; + + println!( + "Expected orchard amount: {}, Using wrong amount: {}", + expected_orchard_amount, wrong_amount + ); + + // Get change address and parse it for Zcash + let withdraw_change_address = context.get_change_address().await.unwrap(); + let change_script_pubkey = Address::parse(&withdraw_change_address, Chain::ZcashTestnet) + .expect("Invalid change address") + .script_pubkey() + .expect("Failed to get script pubkey"); + + // This should fail with "Orchard amount mismatch" because the bundle has wrong_amount + // but we're withdrawing expected_orchard_amount (the contract expects the orchard amount + // to match withdraw_amount - withdraw_fee - gas_fee) + let result = context + .do_withdraw( + "alice", + "bridge", + withdraw_amount, + TokenReceiverMessage::Withdraw { + target_btc_address: recipient_ua, // Use the bundle's actual recipient + input: vec![OutPoint { + txid: first_utxo[0].parse().unwrap(), + vout: first_utxo[1].parse().unwrap(), + }], + output: vec![TxOut { + value: Amount::from_sat(change_amount as u64), + script_pubkey: change_script_pubkey, + }], + max_gas_fee: None, + chain_specific_data: Some(ChainSpecificData { + orchard_bundle_bytes: hex::decode(&bundle_hex).unwrap().into(), + expiry_height: 10000, + }), + }, + ) + .await; + + // Check that it failed with the expected error + assert!( + result.is_ok(), + "Withdrawal call should not fail at network level" + ); + let outcome = result.unwrap(); + assert!( + !outcome.is_success() || !outcome.receipt_failures().is_empty(), + "Withdrawal should fail due to Orchard validation" + ); + + // Check the error message - the contract validates that the user's output amount + // matches the expected range based on withdraw_amount - withdraw_fee - gas_fee + let err_msg = setup::utils::tool_err_msg(&Ok(outcome)); + assert!( + err_msg.contains("output amount") && err_msg.contains("out of the valid range"), + "Expected output amount validation error, got: {}", + err_msg + ); + + println!("✓ Orchard amount mismatch correctly rejected"); +} diff --git a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs index 509f3723..5502ebc1 100644 --- a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs +++ b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs @@ -1,15 +1,32 @@ mod setup; -use std::str::FromStr; - -use bitcoin::{Address, Amount, OutPoint, TxOut}; +use bitcoin::{Amount, OutPoint, TxOut}; use near_sdk::{AccountId, Gas}; +use satoshi_bridge::network::{Address, Chain}; use satoshi_bridge::{DepositMsg, PendingInfoState, PostAction, TokenReceiverMessage}; use setup::*; +use std::string::ToString; + +#[cfg(feature = "zcash")] +const CHAIN: &str = "ZcashTestnet"; +#[cfg(not(feature = "zcash"))] +const CHAIN: &str = "BitcoinMainnet"; + +#[cfg(feature = "zcash")] +const TARGET_ADDRESS: &str = "tmD67UTsZ4iBbhCae4D43k1x8fhFNhwd4Jn"; +#[cfg(not(feature = "zcash"))] +const TARGET_ADDRESS: &str = "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ"; + +fn get_chain() -> Chain { + match CHAIN { + "ZcashTestnet" => Chain::ZcashTestnet, + _ => Chain::BitcoinMainnet, + } +} #[tokio::test] async fn test_role() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; assert_eq!( context.get_metadata().await.unwrap().super_admins, vec!["test.near".parse::().unwrap()] @@ -88,7 +105,7 @@ async fn test_role() { #[tokio::test] async fn test_base() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; let config = context.get_bridge_config().await.unwrap(); let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context @@ -126,7 +143,7 @@ async fn test_base() { )], vec![ (alice_btc_deposit_address.as_str(), 10000), - ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000) + (TARGET_ADDRESS, 90000) ], ), 0, @@ -173,7 +190,7 @@ async fn test_base() { None, ),], vec![ - ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000), + (TARGET_ADDRESS, 90000), (alice_btc_deposit_address.as_str(), 50000), ], ), @@ -222,7 +239,7 @@ async fn test_base() { None, ),], vec![ - ("1MgiBKohM2poApYamQadp21vJrNyh5T19G", 90000), + (TARGET_ADDRESS, 90000), (alice_btc_deposit_address.as_str(), 50000), ], ), @@ -256,7 +273,7 @@ async fn test_base() { ),], vec![ (bob_btc_deposit_address.as_str(), 200000), - ("1F3HTDzfWnPPbBaUrxg99LJEjHQd4NsisC", 50000), + (TARGET_ADDRESS, 50000), ], ), 0, @@ -297,12 +314,11 @@ async fn test_base() { let first_utxo = utxos_keys[0].split('@').collect::>(); let second_utxo = utxos_keys[1].split('@').collect::>(); let withdraw_amount = 110000; - let btc_gas_fee = 10000; + let btc_gas_fee = 25000; let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); let total_change_amount = 250000 - (withdraw_amount - withdraw_fee) as u64; check!(print context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![ OutPoint { txid: first_utxo[0].parse().unwrap(), @@ -314,30 +330,32 @@ async fn test_base() { }], output: vec![TxOut { value: Amount::from_sat((withdraw_amount - btc_gas_fee - withdraw_fee) as u64),// 50000 - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(total_change_amount / 4), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(total_change_amount / 4), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(total_change_amount / 4), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(total_change_amount / 4 + total_change_amount % 4), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") }], + max_gas_fee: None, + chain_specific_data: None, })); assert_eq!( @@ -454,7 +472,7 @@ async fn test_base() { #[tokio::test] async fn test_fix_bridge_fee_and_relayer() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(10000, 0, 9000)); check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); let config = context.get_bridge_config().await.unwrap(); @@ -514,23 +532,24 @@ async fn test_fix_bridge_fee_and_relayer() { let btc_gas_fee = 10000; let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), }], output: vec![TxOut { value: Amount::from_sat((withdraw_amount - btc_gas_fee - withdraw_fee) as u64),// 50000 - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(320000), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") }], + max_gas_fee: None, + chain_specific_data: None, })); let btc_pending_sign_txs = context .get_btc_pending_infos_paged() @@ -593,7 +612,7 @@ async fn test_fix_bridge_fee_and_relayer() { #[tokio::test] async fn test_ratio_bridge_fee_and_relayer() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(0, 1000, 9000)); check!(context.set_withdraw_bridge_fee(0, 2000, 9000)); let config = context.get_bridge_config().await.unwrap(); @@ -653,23 +672,24 @@ async fn test_ratio_bridge_fee_and_relayer() { let btc_gas_fee = 10000; let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), }], output: vec![TxOut { value: Amount::from_sat((withdraw_amount - btc_gas_fee - withdraw_fee) as u64),// 50000 - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(500000 - (withdraw_amount - withdraw_fee) as u64), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") }], + max_gas_fee: None, + chain_specific_data: None, })); let btc_pending_sign_txs = context .get_btc_pending_infos_paged() @@ -735,7 +755,7 @@ async fn test_ratio_bridge_fee_and_relayer() { #[tokio::test] async fn test_directly_withdraw() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(10000, 0, 9000)); check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); let config = context.get_bridge_config().await.unwrap(); @@ -801,23 +821,24 @@ async fn test_directly_withdraw() { let btc_gas_fee = 10000; let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); check!(print "do_withdraw" context.do_withdraw("bob", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), }], output: vec![TxOut { value: Amount::from_sat((withdraw_amount - btc_gas_fee - withdraw_fee) as u64),// 50000 - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(320000), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") }], + max_gas_fee: None, + chain_specific_data: None, })); let btc_pending_sign_txs = context .get_btc_pending_infos_paged() @@ -858,7 +879,7 @@ async fn test_directly_withdraw() { #[tokio::test] async fn test_one_click() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(10000, 0, 9000)); let mut times = 0; { @@ -1370,7 +1391,7 @@ async fn test_one_click() { #[tokio::test] async fn test_utxo_passive_management() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(0, 0, 9000)); check!(context.set_withdraw_bridge_fee(0, 0, 9000)); // The bridge deposit fee is 0, so the bridge will not be automatically registered with mint @@ -1452,7 +1473,7 @@ async fn test_utxo_passive_management() { .clone(); let utxo60000 = utxo_key60000.split('@').collect::>(); let withdraw_amount = 200000; - let btc_gas_fee = 10000; + let btc_gas_fee = 15000; let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); check!(context.set_passive_management_limit(3, 10)); check!( @@ -1461,8 +1482,7 @@ async fn test_utxo_passive_management() { "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![OutPoint { txid: utxo500000[0].parse().unwrap(), vout: utxo500000[1].parse().unwrap(), @@ -1472,19 +1492,24 @@ async fn test_utxo_passive_management() { value: Amount::from_sat( (withdraw_amount - btc_gas_fee - withdraw_fee) as u64 ), - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked() .script_pubkey() + .expect("Failed to get script pubkey") }, TxOut { value: Amount::from_sat(500000 - (withdraw_amount - withdraw_fee) as u64), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) - .expect("Invalid btc address") - .assume_checked() - .script_pubkey() + script_pubkey: Address::parse( + withdraw_change_address.as_str(), + get_chain() + ) + .expect("Invalid btc address") + .script_pubkey() + .expect("Failed to get script pubkey") } ], + max_gas_fee: None, + chain_specific_data: None, } ), "require input_num < change_num" @@ -1497,8 +1522,7 @@ async fn test_utxo_passive_management() { "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![OutPoint { txid: utxo500000[0].parse().unwrap(), vout: utxo500000[1].parse().unwrap(), @@ -1508,26 +1532,34 @@ async fn test_utxo_passive_management() { value: Amount::from_sat( (withdraw_amount - btc_gas_fee - withdraw_fee) as u64 ), - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked() .script_pubkey() + .expect("Failed to get script pubkey") }, TxOut { value: Amount::from_sat(total_change / 2), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) - .expect("Invalid btc address") - .assume_checked() - .script_pubkey() + script_pubkey: Address::parse( + withdraw_change_address.as_str(), + get_chain() + ) + .expect("Invalid btc address") + .script_pubkey() + .expect("Failed to get script pubkey") }, TxOut { value: Amount::from_sat(total_change / 2 + total_change % 2), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) - .expect("Invalid btc address") - .assume_checked() - .script_pubkey() + script_pubkey: Address::parse( + withdraw_change_address.as_str(), + get_chain() + ) + .expect("Invalid btc address") + .script_pubkey() + .expect("Failed to get script pubkey") } ], + max_gas_fee: None, + chain_specific_data: None, } ), "require input_num > change_num" @@ -1540,8 +1572,7 @@ async fn test_utxo_passive_management() { "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![ OutPoint { txid: utxo500000[0].parse().unwrap(), @@ -1557,19 +1588,24 @@ async fn test_utxo_passive_management() { value: Amount::from_sat( (withdraw_amount - btc_gas_fee - withdraw_fee) as u64 ), - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked() .script_pubkey() + .expect("Failed to get script pubkey") }, TxOut { value: Amount::from_sat(total_change), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) - .expect("Invalid btc address") - .assume_checked() - .script_pubkey() + script_pubkey: Address::parse( + withdraw_change_address.as_str(), + get_chain() + ) + .expect("Invalid btc address") + .script_pubkey() + .expect("Failed to get script pubkey") } ], + max_gas_fee: None, + chain_specific_data: None, } ), "The change amount must be less than all inputs" @@ -1579,7 +1615,7 @@ async fn test_utxo_passive_management() { #[tokio::test] async fn test_cancel_withdraw() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(10000, 0, 9000)); check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); let config = context.get_bridge_config().await.unwrap(); @@ -1640,23 +1676,24 @@ async fn test_cancel_withdraw() { let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); let change_amount = 500000 - (withdraw_amount - withdraw_fee) as u64; check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), }], output: vec![TxOut { value: Amount::from_sat((withdraw_amount - btc_gas_fee - withdraw_fee) as u64),// 50000 - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(change_amount), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") }], + max_gas_fee: None, + chain_specific_data: None, })); let btc_pending_sign_txs = context @@ -1682,9 +1719,10 @@ async fn test_cancel_withdraw() { vec![ generate_tx_out( (withdraw_amount - btc_gas_fee - withdraw_fee) as u64, - "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ" + TARGET_ADDRESS, + get_chain() ), - generate_tx_out(change_amount, withdraw_change_address.as_str()), + generate_tx_out(change_amount, withdraw_change_address.as_str(), get_chain()), ] ), "Please wait user rbf" @@ -1698,23 +1736,26 @@ async fn test_cancel_withdraw() { vec![ generate_tx_out( (withdraw_amount - btc_gas_fee - withdraw_fee) as u64, - "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ" + TARGET_ADDRESS, + get_chain() ), - generate_tx_out(change_amount, withdraw_change_address.as_str()), + generate_tx_out(change_amount, withdraw_change_address.as_str(), get_chain()), ] ), "Invalid output script_pubkey" ); + #[cfg(not(feature = "zcash"))] check!( context.cancel_withdraw( &original_btc_pending_verify_id, vec![ generate_tx_out( (withdraw_amount - btc_gas_fee - withdraw_fee) as u64, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), + get_chain() ), - generate_tx_out(change_amount, withdraw_change_address.as_str()), + generate_tx_out(change_amount, withdraw_change_address.as_str(), get_chain()), ] ), "No gas increase." @@ -1727,9 +1768,9 @@ async fn test_cancel_withdraw() { vec![ generate_tx_out( (withdraw_amount - new_btc_gas_fee - withdraw_fee) as u64, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), get_chain() ), - generate_tx_out(change_amount, withdraw_change_address.as_str()), + generate_tx_out(change_amount, withdraw_change_address.as_str(), get_chain()), ] ) ); @@ -1809,7 +1850,7 @@ async fn test_cancel_withdraw() { #[tokio::test] async fn test_cancel_withdraw2() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(10000, 0, 9000)); check!(context.set_withdraw_bridge_fee(20000, 0, 9000)); let config = context.get_bridge_config().await.unwrap(); @@ -1870,23 +1911,24 @@ async fn test_cancel_withdraw2() { let withdraw_fee = config.withdraw_bridge_fee.get_fee(withdraw_amount); let change_amount = 500000 - (withdraw_amount - withdraw_fee) as u64; check!(print "do_withdraw" context.do_withdraw("alice", "bridge", withdraw_amount, TokenReceiverMessage::Withdraw { - target_btc_address: "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ".to_string(), - max_gas_fee: None, + target_btc_address: TARGET_ADDRESS.to_string(), input: vec![OutPoint { txid: first_utxo[0].parse().unwrap(), vout: first_utxo[1].parse().unwrap(), }], output: vec![TxOut { value: Amount::from_sat((withdraw_amount - btc_gas_fee - withdraw_fee) as u64),// 50000 - script_pubkey: Address::from_str("1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ") + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") },TxOut { value: Amount::from_sat(change_amount), - script_pubkey: Address::from_str(withdraw_change_address.as_str()) + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) .expect("Invalid btc address") - .assume_checked().script_pubkey() + .script_pubkey().expect("Failed to get script pubkey") }], + max_gas_fee: None, + chain_specific_data: None, })); let btc_pending_sign_txs = context @@ -1910,7 +1952,7 @@ async fn test_cancel_withdraw2() { // (withdraw_amount - new_btc_gas_fee - withdraw_fee) as u64, // withdraw_change_address.as_str() // ), - generate_tx_out(change_amount - 111, withdraw_change_address.as_str()), + generate_tx_out(change_amount - 111, withdraw_change_address.as_str(), get_chain()), ] ) ); @@ -1992,7 +2034,7 @@ async fn test_cancel_withdraw2() { #[tokio::test] async fn test_utxo_active_management() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(10000, 0, 10000)); // The bridge deposit fee is 0, so the bridge will not be automatically registered with mint check!(context.storage_deposit("nbtc", "bridge")); @@ -2088,8 +2130,8 @@ async fn test_utxo_active_management() { } ], vec![ - generate_tx_out(output_amount, "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ"), - generate_tx_out(output_amount, withdraw_change_address.as_str()), + generate_tx_out(output_amount, TARGET_ADDRESS, get_chain()), + generate_tx_out(output_amount, withdraw_change_address.as_str(), get_chain()), ] ), "Active management conditions are not met" @@ -2108,8 +2150,8 @@ async fn test_utxo_active_management() { } ], vec![ - generate_tx_out(output_amount, "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ"), - generate_tx_out(output_amount, withdraw_change_address.as_str()), + generate_tx_out(output_amount, TARGET_ADDRESS, get_chain()), + generate_tx_out(output_amount, withdraw_change_address.as_str(), get_chain()), ] ), "require input_num < output_num" @@ -2128,8 +2170,8 @@ async fn test_utxo_active_management() { } ], vec![ - generate_tx_out(output_amount, "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ"), - generate_tx_out(output_amount, withdraw_change_address.as_str()), + generate_tx_out(output_amount, TARGET_ADDRESS, get_chain()), + generate_tx_out(output_amount, withdraw_change_address.as_str(), get_chain()), ] ), "require input_num > output_num" @@ -2148,7 +2190,8 @@ async fn test_utxo_active_management() { ], vec![generate_tx_out( output_amount * 2, - "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ" + TARGET_ADDRESS, + get_chain() ),] ), "Invalid output script_pubkey" @@ -2167,7 +2210,8 @@ async fn test_utxo_active_management() { ], vec![generate_tx_out( output_amount * 2 - 30000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), + get_chain() ),] ), "Insufficient protocol_fee" @@ -2192,7 +2236,7 @@ async fn test_utxo_active_management() { vec![ generate_tx_out( output_amount * 2 - 10000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), get_chain() ), ] ) @@ -2206,7 +2250,8 @@ async fn test_utxo_active_management() { original_btc_pending_verify_id, vec![generate_tx_out( output_amount * 2 - 10000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), + get_chain() ),] ), "No gas increase." @@ -2215,8 +2260,16 @@ async fn test_utxo_active_management() { context.active_utxo_management_rbf( original_btc_pending_verify_id, vec![ - generate_tx_out(output_amount - 10000, withdraw_change_address.as_str()), - generate_tx_out(output_amount - 10000, withdraw_change_address.as_str()), + generate_tx_out( + output_amount - 10000, + withdraw_change_address.as_str(), + get_chain() + ), + generate_tx_out( + output_amount - 10000, + withdraw_change_address.as_str(), + get_chain() + ), ] ), "Invalid output num" @@ -2226,7 +2279,8 @@ async fn test_utxo_active_management() { original_btc_pending_verify_id, vec![generate_tx_out( output_amount * 2 - 25000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), + get_chain() ),] ), "Insufficient protocol fee" @@ -2235,7 +2289,8 @@ async fn test_utxo_active_management() { original_btc_pending_verify_id, vec![generate_tx_out( output_amount * 2 - 15000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), + get_chain() ),] )); @@ -2258,7 +2313,8 @@ async fn test_utxo_active_management() { original_btc_pending_verify_id, vec![generate_tx_out( output_amount * 2 - 15000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), + get_chain() ),] ), "Please wait user rbf" @@ -2268,8 +2324,12 @@ async fn test_utxo_active_management() { context.cancel_active_utxo_management( original_btc_pending_verify_id, vec![ - generate_tx_out(output_amount - 15000, withdraw_change_address.as_str()), - generate_tx_out(output_amount, withdraw_change_address.as_str()), + generate_tx_out( + output_amount - 15000, + withdraw_change_address.as_str(), + get_chain() + ), + generate_tx_out(output_amount, withdraw_change_address.as_str(), get_chain()), ] ), "No gas increase." @@ -2280,11 +2340,11 @@ async fn test_utxo_active_management() { vec![ generate_tx_out( output_amount - 16000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), get_chain() ), generate_tx_out( output_amount, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), get_chain() ), ] ) @@ -2343,7 +2403,7 @@ async fn test_utxo_active_management() { #[tokio::test] async fn test_utxo_active_management2() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, Some(CHAIN.to_string())).await; check!(context.set_deposit_bridge_fee(10000, 0, 10000)); // The bridge deposit fee is 0, so the bridge will not be automatically registered with mint check!(context.storage_deposit("nbtc", "bridge")); @@ -2447,7 +2507,7 @@ async fn test_utxo_active_management2() { vec![ generate_tx_out( output_amount * 2 - 10000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), get_chain() ), ] ) @@ -2460,7 +2520,8 @@ async fn test_utxo_active_management2() { original_btc_pending_verify_id, vec![generate_tx_out( output_amount * 2 - 15000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), + get_chain() ),] )); let btc_pending_verify_txs = context.get_btc_pending_infos_paged().await.unwrap(); @@ -2484,11 +2545,11 @@ async fn test_utxo_active_management2() { vec![ generate_tx_out( output_amount - 16000, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), get_chain() ), generate_tx_out( output_amount, - withdraw_change_address.as_str() + withdraw_change_address.as_str(), get_chain() ), ] ) diff --git a/contracts/satoshi-bridge/tests/test_upgrade.rs b/contracts/satoshi-bridge/tests/test_upgrade.rs index 90eb98c2..541771e0 100644 --- a/contracts/satoshi-bridge/tests/test_upgrade.rs +++ b/contracts/satoshi-bridge/tests/test_upgrade.rs @@ -6,12 +6,12 @@ async fn test_btc_bridge_upgrade() { let worker = near_workspaces::sandbox().await.unwrap(); let upgrade_context = UpgradeContext::new( &worker, - "../../res/satoshi_bridge.wasm", + "../../res/bitcoin_bridge.wasm", "../../res/nbtc.wasm", ) .await; check!(view upgrade_context.get_satoshi_bridge_version()); - check!(upgrade_context.upgrade_satoshi_bridge("../../res/satoshi_bridge.wasm")); + check!(upgrade_context.upgrade_satoshi_bridge("../../res/bitcoin_bridge.wasm")); check!(view upgrade_context.get_satoshi_bridge_version()); } @@ -25,7 +25,7 @@ async fn test_btc_bridge_upgrade_from_v0_5_1() { ) .await; check!(view upgrade_context.get_satoshi_bridge_version()); - check!(upgrade_context.upgrade_satoshi_bridge("../../res/satoshi_bridge.wasm")); + check!(upgrade_context.upgrade_satoshi_bridge("../../res/bitcoin_bridge.wasm")); check!(view upgrade_context.get_satoshi_bridge_version()); } @@ -39,7 +39,7 @@ async fn test_zcash_bridge_upgrade_from_v0_6_0() { ) .await; check!(view upgrade_context.get_satoshi_bridge_version()); - check!(upgrade_context.upgrade_satoshi_bridge("../../res/zcash.wasm")); + check!(upgrade_context.upgrade_satoshi_bridge("../../res/zcash_bridge.wasm")); check!(view upgrade_context.get_satoshi_bridge_version()); } @@ -48,7 +48,7 @@ async fn test_nbtc_upgrade() { let worker = near_workspaces::sandbox().await.unwrap(); let upgrade_context = UpgradeContext::new( &worker, - "../../res/satoshi_bridge.wasm", + "../../res/bitcoin_bridge.wasm", "../../res/nbtc.wasm", ) .await; @@ -74,7 +74,7 @@ async fn test_nbtc_upgrade_from_v0_5_1() { #[tokio::test] async fn test_set_icon() { let worker = near_workspaces::sandbox().await.unwrap(); - let context = Context::new(&worker).await; + let context = Context::new(&worker, None).await; println!("{:?}", context.ft_metadata().await.unwrap().icon); check!(context.set_metadata("new icon")); println!("{:?}", context.ft_metadata().await.unwrap().icon); From bb1e2a516cc038f32730d4dab6fa19517fd76711 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Mon, 16 Feb 2026 23:33:46 +0000 Subject: [PATCH 16/28] Added CLAUDE.md and AGENTS.md (#25) * add claude * add AGENTS.md * update CLAUDE * reduce Claude.md * reduce Claude.md * remove before suggestin section * remove key contract section * Safe function section * remove code example * remove reference * remove command for production relese * remove dublicate * fix state managment * remove dublicate * Design Decission --- AGENTS.md | 1 + CLAUDE.md | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..ceb2b988 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1 @@ +CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..c803a0bf --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,149 @@ +# NEAR BTC/Zcash Bridge + +Bridge between Bitcoin/Zcash and NEAR Protocol. Users deposit BTC/ZEC to receive nBTC/nZEC (NEP-141 token) and withdraw nBTC/nZEC to receive BTC/ZEC back. + +**Trust Model:** +- **BTC → NEAR (deposit):** Trustless verification via BTC Light Client (Merkle proof validation) +- **NEAR → BTC (withdraw):** Requires trust in NEAR validator set for Chain Signatures (MPC) + +--- + +## Build / Test / Lint + +```bash +# Build for development (non-reproducible) +make build-local-bitcoin # Bitcoin bridge +make build-local-zcash # Zcash bridge + +# Run tests +make test + +# Format and clippy +cargo fmt --all # Format all code +make clippy-bitcoin # Clippy for Bitcoin +make clippy-zcash # Clippy for Zcash +``` + +--- + +## Key Architecture + +**Contracts:** `contracts/nbtc/` (NEP-141 token), `contracts/satoshi-bridge/` (main bridge), `contracts/mock-*` (testing) + +**External Dependencies:** BTC Light Client (Merkle proof verification), Chain Signatures (MPC signing) + +### Bridge Flows + +**Deposit (BTC → nBTC)** +``` +1. User sends BTC to deposit address (derived from DepositMsg hash) +2. Relayer: bridge.verify_deposit(tx_proof) +3. Bridge verifies with Light Client → calls nbtc.mint(user, amount) +4. UTXO added to bridge's available set +``` + +**Withdraw (nBTC → BTC)** +``` +1. User: nbtc.ft_transfer(bridge, amount, WithdrawMsg) + → Tokens TRANSFERRED to bridge (not burned yet!) +2. nBTC: bridge.ft_on_transfer(user, amount, msg) → Bridge returns 0 (keeps tokens) +3. Bridge creates BTC tx, Chain Signatures signs +4. Tx broadcast to Bitcoin network +5. Relayer: bridge.verify_withdraw(tx_proof) +6. Bridge verifies → calls nbtc.burn(user, amount, relayer, fee) + → Burns from bridge balance (tokens already there!) +``` + +--- + +## Security Invariants + +### Token Flow (NEP-141) +- **Withdraw tokens already transferred:** By the time `burn()` is called, tokens are in bridge balance via `ft_transfer` +- **burn_account_id is for events only:** Actual burn happens from bridge balance, not from burn_account_id +- **ft_on_transfer return value:** `0` = keep all tokens, `amount` = refund amount +- Only burn after BTC tx is verified on-chain + +### Arithmetic Safety +- **overflow-checks = true:** All overflow panics in release mode (fail-safe) +- Use `checked_mul()`, `checked_add()` for explicit error handling +- Prefer panic over silent + +### State Management +- Mutate state (mark UTXO used, update balances) BEFORE cross-contract calls +- Create and emit events AFTER all state mutations complete +- **Cross-contract calls are NOT atomic:** Each callback is a separate transaction - must manually rollback state in callback if external call fails + +### Zcash-Specific +- **Mutual exclusion:** `actual_received_amounts.len() == 1` ensures EITHER transparent OR Orchard output, never both +- **OVK required:** All Orchard bundles must provide valid Outgoing Viewing Key for decryption +- **Address restrictions:** Transparent addresses CANNOT accept Orchard bundles (panics) +- **Bridge transparency:** Full transaction tracking required, privacy is NOT a design goal +- **Branch IDs hardcoded:** Network upgrades require contract redeployment anyway + +--- + +## Critical Patterns + +**NEAR decorators:** `#[private]` for callbacks, `#[access_control_any(roles(...))]` for admin functions, `#[pause(except(roles(...)))]` for pausable functions, `assert_one_yocto()` to prevent batching + +**Security checks:** Always use `require!(condition, "message")` for validation, `checked_*` arithmetic for money operations, emit events AFTER state changes + +--- + +## Safe Functions (Omni Bridge Integration) + +The bridge provides "safe" versions of deposit/mint functions primarily used by Omni Bridge: + +### verify_deposit vs safe_verify_deposit + +**verify_deposit (standard):** +- Normal deposit flow with fees +- Charges deposit bridge fee +- Pays for user's token storage +- Requires `safe_deposit: None` in DepositMsg +- Does NOT revert on mint failures (uses lost & found) + +**safe_verify_deposit (integration):** +- Primarily used by Omni Bridge +- NO fees charged +- User must attach NEAR for storage (via `#[payable]`) +- **Reverts entire transaction if mint fails** (no lost & found) +- Requires `safe_deposit: Some(SafeDepositMsg)` in DepositMsg +- **post_actions must be None** (not supported in safe mode) +- Safer for integrations - atomic success/failure + +### mint vs safe_mint (nbtc contract) + +**mint (standard):** +- Mints tokens unconditionally +- If account not registered → panics or creates account + +**safe_mint (integration):** +- Checks if account is registered first +- If NOT registered → returns `U128(0)` instead of panicking +- Used by safe_verify_deposit to detect failures + +--- + +## Design Decisions (Non-Issues) + +These patterns are intentional. Do not flag or "fix" them: + +- **DAO powers are by design:** Governance functions with DAO role are necessary, not a vulnerability +- **Expiry height gap:** Buffer for transaction processing delays (Zcash) +- **No validation for self-serialized data:** Format guaranteed by construction - only validate external inputs +- **Public API vs private callbacks:** If parameter cannot be passed through public API, no vulnerability exists + +--- + +## Git Workflow + +**Main branch:** `omni-main` (use for PRs) + +**Before committing:** Run `cargo test`, `cargo fmt`, `cargo clippy`. **Only commit if user explicitly requests.** + +--- + +*Version: 2.1* +*Last Updated: 2026-02-16* From 3b00d858ec2d58adc876ebcaf8d628ff878372ab Mon Sep 17 00:00:00 2001 From: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> Date: Thu, 26 Mar 2026 19:33:11 -0400 Subject: [PATCH 17/28] feat: added trusted relayer (#26) * chore: updated `near-sdk` and `near-contract-standards` versions * feat: added trusted relayer * chore: added comment about account id conversion * chore: fmt * fix: tests * fix(tests): grant `UnrestrictedRelayer` role * feat: made `verify_active_utxo_management` callable only by trusted relayer * feat: covered max result length with tests * feat(tests): covered that random account can't call trusted relayer only methods * chore: bumped bridge version --- Cargo.lock | 196 +++++++++------ Cargo.toml | 7 +- contracts/mock-dapp/src/storage.rs | 7 +- contracts/nbtc/src/lib.rs | 20 +- contracts/satoshi-bridge/Cargo.toml | 3 +- contracts/satoshi-bridge/src/api/bridge.rs | 5 + .../active_utxo_management.rs | 8 +- .../src/btc_light_client/deposit.rs | 32 +-- .../src/btc_light_client/withdraw.rs | 8 +- .../satoshi-bridge/src/chain_signature.rs | 8 +- contracts/satoshi-bridge/src/kdf.rs | 7 +- contracts/satoshi-bridge/src/lib.rs | 10 +- contracts/satoshi-bridge/src/nbtc/burn.rs | 3 +- contracts/satoshi-bridge/src/unit/mod.rs | 1 + contracts/satoshi-bridge/src/unit/utils.rs | 70 ++++++ contracts/satoshi-bridge/src/utils.rs | 9 + .../satoshi-bridge/tests/setup/context.rs | 17 +- contracts/satoshi-bridge/tests/setup/mod.rs | 14 ++ .../tests/test_orchard_validation.rs | 12 +- .../tests/test_orchard_withdrawal.rs | 8 +- .../tests/test_satoshi_bridge.rs | 231 ++++++++++++++---- 21 files changed, 495 insertions(+), 181 deletions(-) create mode 100644 contracts/satoshi-bridge/src/unit/utils.rs diff --git a/Cargo.lock b/Cargo.lock index ba1975f2..0e7e5aca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -786,7 +786,7 @@ dependencies = [ "borsh", "getrandom 0.2.16", "k256", - "near-account-id", + "near-account-id 1.1.3", "near-sdk", "serde", "serde_json", @@ -995,6 +995,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "unicode-xid", ] [[package]] @@ -1980,6 +1981,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.15" @@ -2311,6 +2321,16 @@ dependencies = [ "serde", ] +[[package]] +name = "near-account-id" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702dbca982e748975658812c7be2ca53211f454137486f98f6cf768934e2cb29" +dependencies = [ + "borsh", + "serde", +] + [[package]] name = "near-chain-configs" version = "0.30.3" @@ -2349,9 +2369,9 @@ dependencies = [ [[package]] name = "near-config-utils" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4627060004177ea30e122644de51aaf2ea076fd1b6d22f6f3d19e7dfb86af949" +checksum = "da2ba8f7129472fc147b867e904e4b8f398aa79f263f54dff6283c4860446ef8" dependencies = [ "anyhow", "json_comments", @@ -2361,9 +2381,9 @@ dependencies = [ [[package]] name = "near-contract-standards" -version = "5.17.2" +version = "5.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deeee26550aaf4b670eab42e56bd1f329a29759d26424db5a97a9277eb27fa3f" +checksum = "d59d3d4fd5d6cb11907c69b57f1c15e30acd48d775be5b5c4ccc79ffd6a35ab5" dependencies = [ "near-sdk", ] @@ -2381,7 +2401,7 @@ dependencies = [ "derive_more 1.0.0", "ed25519-dalek", "hex", - "near-account-id", + "near-account-id 1.1.3", "near-config-utils 0.30.3", "near-schema-checker-lib 0.30.3", "near-stdx 0.30.3", @@ -2396,9 +2416,9 @@ dependencies = [ [[package]] name = "near-crypto" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40596a621b4cbf7c07189dac59ebf1239f8108ef4755620622db5b86743e0c3a" +checksum = "7c12a12485f8baafa85d5c413885b795bfa1d7d0ab7fd49b4f7fbe6cd270325b" dependencies = [ "blake2", "borsh", @@ -2407,10 +2427,10 @@ dependencies = [ "derive_more 2.0.1", "ed25519-dalek", "hex", - "near-account-id", - "near-config-utils 0.31.1", - "near-schema-checker-lib 0.31.1", - "near-stdx 0.31.1", + "near-account-id 2.6.0", + "near-config-utils 0.34.7", + "near-schema-checker-lib 0.34.7", + "near-stdx 0.34.7", "primitive-types", "secp256k1 0.27.0", "serde", @@ -2430,11 +2450,11 @@ dependencies = [ [[package]] name = "near-fmt" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e9fa3af54e4b13f4f0657e3ae640e63f7f8953a5fbedf836bc47b43f973dde" +checksum = "f31b6d8fb4146cf0a7dcadf7816bf7b8efd5c081d6d2ca524bc80815b5f86812" dependencies = [ - "near-primitives-core 0.31.1", + "near-primitives-core 0.34.7", ] [[package]] @@ -2492,7 +2512,7 @@ checksum = "3e364f850512d7f1ee1eb398e1da85fd3ef95eb3cbce8db2d505eed054bbe848" dependencies = [ "borsh", "enum-map", - "near-account-id", + "near-account-id 1.1.3", "near-primitives-core 0.30.3", "near-schema-checker-lib 0.30.3", "num-rational", @@ -2505,15 +2525,15 @@ dependencies = [ [[package]] name = "near-parameters" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a261341fca84a5322710f6f4eae45d809fce24a19b9913333e436da5d4de3574" +checksum = "e7a561606a8beb563bf166c8a9ceb7f97058b376d17ea1a9b4b65ebc9bff29ac" dependencies = [ "borsh", "enum-map", - "near-account-id", - "near-primitives-core 0.31.1", - "near-schema-checker-lib 0.31.1", + "near-account-id 2.6.0", + "near-primitives-core 0.34.7", + "near-schema-checker-lib 0.34.7", "num-rational", "serde", "serde_repr", @@ -2563,7 +2583,7 @@ dependencies = [ "easy-ext", "enum-map", "hex", - "itertools", + "itertools 0.12.1", "near-crypto 0.30.3", "near-fmt 0.30.3", "near-parameters 0.30.3", @@ -2589,9 +2609,9 @@ dependencies = [ [[package]] name = "near-primitives" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271dbac58be374c7dddbc511ade1f4eeeea7ae972ef368b358e3298facb2eec6" +checksum = "5ccddcf4a73e19afd681faaa7e83fc4046ec71f4bbe58c58ff4ae4432f36e3aa" dependencies = [ "arbitrary", "base64 0.21.7", @@ -2604,14 +2624,14 @@ dependencies = [ "easy-ext", "enum-map", "hex", - "itertools", - "near-crypto 0.31.1", - "near-fmt 0.31.1", - "near-parameters 0.31.1", - "near-primitives-core 0.31.1", - "near-schema-checker-lib 0.31.1", - "near-stdx 0.31.1", - "near-time 0.31.1", + "itertools 0.14.0", + "near-crypto 0.34.7", + "near-fmt 0.34.7", + "near-parameters 0.34.7", + "near-primitives-core 0.34.7", + "near-schema-checker-lib 0.34.7", + "near-stdx 0.34.7", + "near-time 0.34.7", "num-rational", "ordered-float", "primitive-types", @@ -2619,6 +2639,7 @@ dependencies = [ "serde_json", "serde_with", "sha3", + "smallvec", "smart-default", "strum 0.24.1", "thiserror 2.0.16", @@ -2638,7 +2659,7 @@ dependencies = [ "bs58 0.4.0", "derive_more 1.0.0", "enum-map", - "near-account-id", + "near-account-id 1.1.3", "near-schema-checker-lib 0.30.3", "num-rational", "serde", @@ -2649,9 +2670,9 @@ dependencies = [ [[package]] name = "near-primitives-core" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "621c20e3fd77ba5e1d4fd33f6b7383dadcaca3faf60e2a8fc71a6cc7e4463c31" +checksum = "7c93d8c5d6aecfec0aa9d60ab34408c68b13d5c1bfc0f3afeee8c99fa521cdb3" dependencies = [ "arbitrary", "base64 0.21.7", @@ -2659,11 +2680,14 @@ dependencies = [ "bs58 0.4.0", "derive_more 2.0.1", "enum-map", - "near-account-id", - "near-schema-checker-lib 0.31.1", + "near-account-id 2.6.0", + "near-gas", + "near-schema-checker-lib 0.34.7", + "near-token", "num-rational", "serde", "serde_repr", + "serde_with", "sha2 0.10.9", "thiserror 2.0.16", ] @@ -2689,9 +2713,9 @@ checksum = "ecf3abb048646186aef4796d5bcda22c2c9246beaabaf3ea568c0cce2229257b" [[package]] name = "near-schema-checker-core" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3515d1bd55d87bfb392f6889313dcfbcaaec4229bb4a4abb5640ab8dc5eda70c" +checksum = "f969a965d1ea04e1f085ee4d6c7273ae1064f578711087f3beaf8d400672cc7e" [[package]] name = "near-schema-checker-lib" @@ -2705,12 +2729,12 @@ dependencies = [ [[package]] name = "near-schema-checker-lib" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93739f2bcb64be8bd04342beae187317836b9c2826b6cfba429c2001e4db73a8" +checksum = "e4ae7538880de8a8d75e150dd0f4f685211ddd654ab12a339f40458df6d191dd" dependencies = [ - "near-schema-checker-core 0.31.1", - "near-schema-checker-macro 0.31.1", + "near-schema-checker-core 0.34.7", + "near-schema-checker-macro 0.34.7", ] [[package]] @@ -2721,25 +2745,25 @@ checksum = "a60d29f7f64c2fc6d2fd25139863a6887b4d7fbcc79db8caad9c72eca67f05e9" [[package]] name = "near-schema-checker-macro" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc45bb3760350de7f957c11827e1e20c5a4aff8d95d19fd2c0c492d795bfb02" +checksum = "8a9eb7d4dc413fe39ffa7fe5591ed4c24bc8139b9de8497689178d0101ae5167" [[package]] name = "near-sdk" -version = "5.17.2" +version = "5.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29b8a870f6bfe533f2f5b35f6f1fb1a818105de80b2de6c0d78000f78729e4cc" +checksum = "0f3fa35758aba48e4f13528ba2f603e860dad03233d446e5c65ebd619296b607" dependencies = [ "base64 0.22.1", "borsh", "bs58 0.5.1", - "near-account-id", - "near-crypto 0.31.1", + "near-account-id 2.6.0", + "near-crypto 0.34.7", "near-gas", - "near-parameters 0.31.1", - "near-primitives 0.31.1", - "near-primitives-core 0.31.1", + "near-parameters 0.34.7", + "near-primitives 0.34.7", + "near-primitives-core 0.34.7", "near-sdk-macros", "near-sys", "near-token", @@ -2747,14 +2771,15 @@ dependencies = [ "once_cell", "serde", "serde_json", + "serde_with", "wee_alloc", ] [[package]] name = "near-sdk-macros" -version = "5.17.2" +version = "5.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "342e608e586394911a799adb2536e3ac93c45e83cc472acdc882f603c18b6046" +checksum = "bb141510850a842d010d706c00bcbf31beba188c706415cc9392ffd62a127e09" dependencies = [ "Inflector", "darling 0.20.11", @@ -2775,15 +2800,15 @@ checksum = "13869f432b1b457c36c9332471d868da6b0ee971e2da0b94deb376aba8d27e6b" [[package]] name = "near-stdx" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3c38fc0843ef7c5bca717cc4daaf2af05441c3cb9cf259824e226387b18740" +checksum = "2c5dc0456309fcb256a0609d829971fd99f343e1a7f3b72f85364e64250a4555" [[package]] name = "near-sys" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64e114297f37c94aa20df6a6f92822a1b41da76b4961298caf08ba80b7779b2" +checksum = "f4ea77bb86969ff09c83faa517b2209c4876928381ed31e29c06cae2de0a216b" [[package]] name = "near-time" @@ -2797,9 +2822,9 @@ dependencies = [ [[package]] name = "near-time" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697acb90b55637c075ce47be4e7834654c34157b88036b199d7189ced6d0f89c" +checksum = "de9ae070cbd84d16b948fcc335ea82db35919bf856e349f333143ff2894eeafd" dependencies = [ "parking_lot", "serde", @@ -2808,9 +2833,9 @@ dependencies = [ [[package]] name = "near-token" -version = "0.3.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" +checksum = "34de6b54d82d0790b2a56b677e7b4ecb7f021a7e8559f8611065c890d56cfcda" dependencies = [ "borsh", "serde", @@ -2818,9 +2843,9 @@ dependencies = [ [[package]] name = "near-vm-runner" -version = "0.31.1" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ddefc8e4460b2c080b34f800b0bd06fd971b37d64ec7279552d792468228924" +checksum = "3c9b4794d695cf13a1a117d76a3e87b6b660f8f7862f9df1544ba8bbd96634c9" dependencies = [ "blst", "borsh", @@ -2828,11 +2853,11 @@ dependencies = [ "ed25519-dalek", "enum-map", "lru", - "near-crypto 0.31.1", - "near-parameters 0.31.1", - "near-primitives-core 0.31.1", - "near-schema-checker-lib 0.31.1", - "near-stdx 0.31.1", + "near-crypto 0.34.7", + "near-parameters 0.34.7", + "near-primitives-core 0.34.7", + "near-schema-checker-lib 0.34.7", + "near-stdx 0.34.7", "num-rational", "parking_lot", "rand", @@ -2864,7 +2889,7 @@ dependencies = [ "json-patch", "libc", "near-abi-client", - "near-account-id", + "near-account-id 1.1.3", "near-crypto 0.30.3", "near-gas", "near-jsonrpc-client", @@ -2995,6 +3020,27 @@ dependencies = [ "memchr", ] +[[package]] +name = "omni-utils" +version = "0.1.0" +source = "git+https://github.com/near-one/omni-utils?rev=077d09daf7a7b32ad237f0530033c7db804f2c67#077d09daf7a7b32ad237f0530033c7db804f2c67" +dependencies = [ + "near-sdk", + "omni-utils-derive", + "serde", + "serde_json", +] + +[[package]] +name = "omni-utils-derive" +version = "0.1.0" +source = "git+https://github.com/near-one/omni-utils?rev=077d09daf7a7b32ad237f0530033c7db804f2c67#077d09daf7a7b32ad237f0530033c7db804f2c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -3715,7 +3761,7 @@ dependencies = [ [[package]] name = "satoshi-bridge" -version = "0.7.4" +version = "0.7.5" dependencies = [ "bitcoin", "bs58 0.5.1", @@ -3729,6 +3775,7 @@ dependencies = [ "near-plugins", "near-sdk", "near-workspaces", + "omni-utils", "orchard", "rand", "sapling-crypto", @@ -3925,6 +3972,7 @@ version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ + "indexmap 2.11.0", "itoa", "memchr", "ryu", @@ -4618,6 +4666,12 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "universal-hash" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index 10aa8c27..b157ccb8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,11 +10,12 @@ publish = false repository = "https://github.com/Near-One/btc-bridge" [workspace.dependencies] -near-sdk = { version = "5.14.0", features = ["unstable", "unit-testing"] } -near-contract-standards = "5.14.0" +near-sdk = { version = "=5.24.1", features = ["unstable", "unit-testing"] } +near-contract-standards = "=5.24.1" hex="0.4.3" bitcoin = { version = "0.32.0", default-features = false, features = ["serde"] } near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" } +omni-utils = { git = "https://github.com/near-one/omni-utils", rev = "077d09daf7a7b32ad237f0530033c7db804f2c67" } [profile.release] codegen-units = 1 @@ -22,4 +23,4 @@ opt-level = "z" lto = true debug = false panic = "abort" -overflow-checks = true \ No newline at end of file +overflow-checks = true diff --git a/contracts/mock-dapp/src/storage.rs b/contracts/mock-dapp/src/storage.rs index c18f4ac7..0b9670a4 100644 --- a/contracts/mock-dapp/src/storage.rs +++ b/contracts/mock-dapp/src/storage.rs @@ -17,7 +17,9 @@ impl StorageManagement for Contract { let registration_only = registration_only.unwrap_or(false); if let Some(account) = self.accounts.get_mut(&account_id) { if registration_only && !amount.is_zero() { - Promise::new(env::predecessor_account_id()).transfer(amount); + Promise::new(env::predecessor_account_id()) + .transfer(amount) + .detach(); } else { account.deposit += amount.as_yoctonear(); } @@ -31,7 +33,8 @@ impl StorageManagement for Contract { let refund = amount.as_yoctonear() - min_balance.as_yoctonear(); if refund > 0 { Promise::new(env::predecessor_account_id()) - .transfer(NearToken::from_yoctonear(refund)); + .transfer(NearToken::from_yoctonear(refund)) + .detach(); } min_balance.as_yoctonear() } else { diff --git a/contracts/nbtc/src/lib.rs b/contracts/nbtc/src/lib.rs index 3e6ea2dc..5e502f13 100644 --- a/contracts/nbtc/src/lib.rs +++ b/contracts/nbtc/src/lib.rs @@ -133,7 +133,9 @@ impl Contract { self.mint_inner(&relayer_account_id, relayer_fee); } if let Some(post_actions) = post_actions { - Self::ext(env::current_account_id()).handle_post_actions(mint_account_id, post_actions); + Self::ext(env::current_account_id()) + .handle_post_actions(mint_account_id, post_actions) + .detach(); } } @@ -374,15 +376,12 @@ impl Contract { Self::ext(env::current_account_id()) .with_static_gas(gas) .handle_post_action(sender_id.clone(), receiver_id, amount, memo, msg) + .detach(); } else { - Self::ext(env::current_account_id()).handle_post_action( - sender_id.clone(), - receiver_id, - amount, - memo, - msg, - ) - }; + Self::ext(env::current_account_id()) + .handle_post_action(sender_id.clone(), receiver_id, amount, memo, msg) + .detach(); + } } } @@ -413,6 +412,7 @@ impl Contract { ext_ft_resolver::ext(env::current_account_id()) .with_static_gas(GAS_FOR_RESOLVE_TRANSFER) .ft_resolve_transfer(sender_id, receiver_id, amount.into()), - ); + ) + .detach(); } } diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index eba415f3..3acc25a3 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.7.4" +version = "0.7.5" edition.workspace = true publish.workspace = true repository.workspace = true @@ -33,6 +33,7 @@ near-contract-standards.workspace = true bitcoin.workspace = true hex.workspace = true near-plugins.workspace = true +omni-utils.workspace = true k256 = "0.13.1" ed25519-dalek = "2.1.0" crypto-shared = { git = "https://github.com/near/mpc_old", rev = "0afee9004a1b1c3386940e60c28cff7cf1b5978c" } diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index d61975cf..1e0dc9f0 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -2,6 +2,7 @@ use crate::psbt_wrapper::PsbtWrapper; use crate::*; use near_plugins::{access_control_any, pause}; +#[trusted_relayer] #[near] impl Contract { /// Verify that the user has transferred BTC asset to the protocol's designated BTC deposit account, and mint NBTC to the user's NEAR account. @@ -18,6 +19,7 @@ impl Contract { /// # Returns /// /// bool - Whether nBTC minting was successful. + #[trusted_relayer] #[pause(except(roles(Role::DAO)))] pub fn verify_deposit( &mut self, @@ -91,6 +93,7 @@ impl Contract { /// /// bool - Whether nBTC minting was successful. #[payable] + #[trusted_relayer] #[pause(except(roles(Role::DAO)))] pub fn safe_verify_deposit( &mut self, @@ -164,6 +167,7 @@ impl Contract { /// # Returns /// /// bool - Whether nBTC burning was successful. + #[trusted_relayer] #[pause(except(roles(Role::DAO)))] pub fn verify_withdraw( &mut self, @@ -264,6 +268,7 @@ impl Contract { /// # Returns /// /// bool - Whether nBTC burning was successful. + #[trusted_relayer] #[pause(except(roles(Role::DAO)))] pub fn verify_active_utxo_management( &mut self, diff --git a/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs b/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs index 1fb59699..385470ea 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs @@ -1,6 +1,6 @@ use crate::{ - env, near, promise_result_as_success, require, serde_json, BTCPendingInfo, Contract, - ContractExt, Gas, Promise, PromiseOrValue, + env, near, require, serde_json, BTCPendingInfo, Contract, ContractExt, Gas, Promise, + PromiseOrValue, MAX_BOOL_RESULT, }; pub const GAS_FOR_VERIFY_ACTIVE_UTXO_MANAGEMENT_CALL_BACK: Gas = Gas::from_tgas(50); @@ -39,8 +39,8 @@ impl Contract { &mut self, tx_id: String, ) -> PromiseOrValue { - let result_bytes = - promise_result_as_success().expect("Call verify_transaction_inclusion failed"); + let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) + .expect("Call verify_transaction_inclusion failed"); let is_valid = serde_json::from_slice::(&result_bytes) .expect("verify_transaction_inclusion return not bool"); require!(is_valid, "verify_transaction_inclusion return false"); diff --git a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs index 7b69aa9d..6f9a40a3 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs @@ -1,12 +1,12 @@ -use near_sdk::{serde_json::Value, PromiseResult}; +use near_sdk::serde_json::Value; use crate::{ burn::GAS_FOR_BURN_CALL, env, ext_nbtc, mint::{GAS_FOR_MINT_CALL, GAS_FOR_MINT_CALL_BACK}, - near, promise_result_as_success, require, serde_json, AccountId, Contract, ContractExt, - DepositMsg, Event, Gas, NearToken, PendingUTXOInfo, PostAction, Promise, PromiseOrValue, - SafeDepositMsg, U128, + near, require, serde_json, AccountId, Contract, ContractExt, DepositMsg, Event, Gas, NearToken, + PendingUTXOInfo, PostAction, Promise, PromiseOrValue, SafeDepositMsg, MAX_BOOL_RESULT, + MAX_FT_TRANSFER_CALL_RESULT, U128, }; pub const GAS_FOR_VERIFY_DEPOSIT_CALL_BACK: Gas = Gas::from_tgas(190); @@ -118,8 +118,8 @@ impl Contract { recipient_id: AccountId, pending_utxo_info: PendingUTXOInfo, ) -> PromiseOrValue { - let result_bytes = - promise_result_as_success().expect("Call verify_transaction_inclusion failed"); + let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) + .expect("Call verify_transaction_inclusion failed"); let is_valid = serde_json::from_slice::(&result_bytes) .expect("verify_transaction_inclusion return not bool"); require!(is_valid, "verify_transaction_inclusion return false"); @@ -153,8 +153,8 @@ impl Contract { pending_utxo_info: PendingUTXOInfo, post_actions: Option>, ) -> PromiseOrValue { - let result_bytes = - promise_result_as_success().expect("Call verify_transaction_inclusion failed"); + let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) + .expect("Call verify_transaction_inclusion failed"); let is_valid = serde_json::from_slice::(&result_bytes) .expect("verify_transaction_inclusion return not bool"); require!(is_valid, "verify_transaction_inclusion return false"); @@ -183,8 +183,8 @@ impl Contract { msg: String, pending_utxo_info: PendingUTXOInfo, ) -> PromiseOrValue { - let result_bytes = - promise_result_as_success().expect("Call verify_transaction_inclusion failed"); + let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) + .expect("Call verify_transaction_inclusion failed"); let is_valid = serde_json::from_slice::(&result_bytes) .expect("verify_transaction_inclusion return not bool"); require!(is_valid, "verify_transaction_inclusion return false"); @@ -238,10 +238,12 @@ impl Contract { mint_amount, relayer_account_id, U128(0), - ); + ) + .detach(); Promise::new(env::signer_account_id()) - .transfer(self.required_balance_for_safe_deposit()); + .transfer(self.required_balance_for_safe_deposit()) + .detach(); } Event::VerifyDepositDetails { @@ -258,8 +260,8 @@ impl Contract { } fn is_refund_required() -> bool { - match env::promise_result(0) { - PromiseResult::Successful(value) => { + match env::promise_result_checked(0, MAX_FT_TRANSFER_CALL_RESULT) { + Ok(value) => { if let Ok(amount) = near_sdk::serde_json::from_slice::(&value) { // Normal case: refund if the used token amount is zero // The amount can be zero if the `ft_on_transfer` in the receiver contract returns an amount instead of `0`, or if it panics. @@ -270,7 +272,7 @@ fn is_refund_required() -> bool { } } // Unexpected case: don't refund - PromiseResult::Failed => false, + Err(_) => false, } } diff --git a/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs b/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs index 0aa984e5..794a068c 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs @@ -1,6 +1,6 @@ use crate::{ - env, near, promise_result_as_success, require, serde_json, BTCPendingInfo, Contract, - ContractExt, Gas, Promise, PromiseOrValue, + env, near, require, serde_json, BTCPendingInfo, Contract, ContractExt, Gas, Promise, + PromiseOrValue, MAX_BOOL_RESULT, }; pub const GAS_FOR_VERIFY_WITHDRAW_CALL_BACK: Gas = Gas::from_tgas(50); @@ -37,8 +37,8 @@ impl Contract { impl Contract { #[private] pub fn internal_verify_withdraw_callback(&mut self, tx_id: String) -> PromiseOrValue { - let result_bytes = - promise_result_as_success().expect("Call verify_transaction_inclusion failed"); + let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) + .expect("Call verify_transaction_inclusion failed"); let is_valid = serde_json::from_slice::(&result_bytes) .expect("verify_transaction_inclusion return not bool"); require!(is_valid, "verify_transaction_inclusion return false"); diff --git a/contracts/satoshi-bridge/src/chain_signature.rs b/contracts/satoshi-bridge/src/chain_signature.rs index 19fdc66d..daff5491 100644 --- a/contracts/satoshi-bridge/src/chain_signature.rs +++ b/contracts/satoshi-bridge/src/chain_signature.rs @@ -1,6 +1,6 @@ use crate::{ - env, ext_contract, nano_to_sec, near, promise_result_as_success, require, serde_json, - AccountId, Contract, ContractExt, Event, Gas, Promise, PublicKey, + env, ext_contract, nano_to_sec, near, require, serde_json, AccountId, Contract, ContractExt, + Event, Gas, Promise, PublicKey, MAX_PUBLIC_KEY_RESULT, MAX_SIGNATURE_RESULT, }; use bitcoin::ecdsa::Signature; @@ -117,7 +117,7 @@ impl Contract { impl Contract { #[private] pub fn sync_root_public_key_callback(&mut self) -> bool { - if let Some(result_bytes) = promise_result_as_success() { + if let Ok(result_bytes) = env::promise_result_checked(0, MAX_PUBLIC_KEY_RESULT) { let root_public_key = serde_json::from_slice::(&result_bytes).expect("Invalid PublicKey"); self.internal_mut_config().chain_signatures_root_public_key = Some(root_public_key); @@ -138,7 +138,7 @@ impl Contract { btc_pending_sign_id: String, sign_index: usize, ) -> bool { - if let Some(result_bytes) = promise_result_as_success() { + if let Ok(result_bytes) = env::promise_result_checked(0, MAX_SIGNATURE_RESULT) { let signature = serde_json::from_slice::(&result_bytes) .expect("Invalid signature"); diff --git a/contracts/satoshi-bridge/src/kdf.rs b/contracts/satoshi-bridge/src/kdf.rs index a1026c94..e827c223 100644 --- a/contracts/satoshi-bridge/src/kdf.rs +++ b/contracts/satoshi-bridge/src/kdf.rs @@ -21,7 +21,12 @@ impl Contract { .clone() .expect("Missing chain_signatures_root_public_key"), ); - let epsilon = crypto_shared::derive_epsilon(&env::current_account_id(), path); + let epsilon = crypto_shared::derive_epsilon( + // NOTE: conversion to string with parsing later on is needed to convert to the proper + // version of `AccountId` + &env::current_account_id().as_str().parse().unwrap(), + path, + ); let user_pk = crypto_shared::derive_key(mpc_pk, epsilon); let user_pk_encoded_point = user_pk.to_encoded_point(false); user_pk_encoded_point.as_bytes().to_vec() diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index 05c8348f..a0e00d82 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -4,13 +4,14 @@ use near_sdk::{ borsh::{BorshDeserialize, BorshSerialize}, env, ext_contract, is_promise_success, json_types::{U128, U64}, - log, near, promise_result_as_success, require, + log, near, require, serde::{Deserialize, Serialize}, serde_json::{self, json, Value}, store::{IterableMap, IterableSet, LazyOption, LookupSet}, AccountId, BorshStorageKey, Gas, NearToken, PanicOnDefault, Promise, PromiseOrValue, PublicKey, Timestamp, }; +use omni_utils::macros::trusted_relayer; use std::collections::{HashMap, HashSet}; use bitcoin::{absolute::LockTime, Amount, OutPoint, PublicKey as BtcPublicKey, ScriptBuf, TxOut}; @@ -101,6 +102,8 @@ pub enum Role { PauseManager, UpgradableCodeStager, UpgradableCodeDeployer, + UnrestrictedRelayer, + RelayerManager, } #[near(serializers = [borsh])] @@ -147,6 +150,11 @@ pub struct Contract { data: VersionedContractData, } +#[trusted_relayer( + bypass_roles(Role::DAO, Role::UnrestrictedRelayer), + manager_roles(Role::DAO, Role::RelayerManager), + config_roles(Role::DAO) +)] #[near] impl Contract { #[init] diff --git a/contracts/satoshi-bridge/src/nbtc/burn.rs b/contracts/satoshi-bridge/src/nbtc/burn.rs index e69ccbf6..e288a70a 100644 --- a/contracts/satoshi-bridge/src/nbtc/burn.rs +++ b/contracts/satoshi-bridge/src/nbtc/burn.rs @@ -135,7 +135,8 @@ impl Contract { self.data_mut().cur_available_protocol_fee += protocol_fee.0; } if refund > 0 { - self.internal_transfer_nbtc(&btc_pending_info.account_id, refund); + self.internal_transfer_nbtc(&btc_pending_info.account_id, refund) + .detach(); } self.internal_remove_btc_pending_info(&tx_id); Event::UtxoAdded { utxo_storage_keys }.emit(); diff --git a/contracts/satoshi-bridge/src/unit/mod.rs b/contracts/satoshi-bridge/src/unit/mod.rs index 06c23329..87b86a37 100644 --- a/contracts/satoshi-bridge/src/unit/mod.rs +++ b/contracts/satoshi-bridge/src/unit/mod.rs @@ -8,6 +8,7 @@ pub use near_sdk::testing_env; mod post_action; mod storage; +mod utils; pub fn burrowland_id() -> AccountId { "burrowland_id".parse().unwrap() diff --git a/contracts/satoshi-bridge/src/unit/utils.rs b/contracts/satoshi-bridge/src/unit/utils.rs new file mode 100644 index 00000000..16e2bad4 --- /dev/null +++ b/contracts/satoshi-bridge/src/unit/utils.rs @@ -0,0 +1,70 @@ +use crate::chain_signature::{BigR, SignatureResponse, S}; +use crate::{ + serde_json, MAX_BOOL_RESULT, MAX_FT_TRANSFER_CALL_RESULT, MAX_PUBLIC_KEY_RESULT, + MAX_SIGNATURE_RESULT, +}; +use near_sdk::json_types::U128; +use near_sdk::PublicKey; + +#[test] +fn test_bool_result_size_fits_constant() { + // `false` is the larger of the two bool JSON representations (5 bytes vs 4 for `true`) + let serialized = serde_json::to_vec(&false).unwrap(); + assert!( + serialized.len() <= MAX_BOOL_RESULT, + "serialized bool ({} bytes) exceeds MAX_BOOL_RESULT ({})", + serialized.len(), + MAX_BOOL_RESULT, + ); +} + +#[test] +fn test_ft_transfer_call_result_size_fits_constant() { + // U128(u128::MAX) produces the longest possible decimal string representation + let serialized = serde_json::to_vec(&U128(u128::MAX)).unwrap(); + assert!( + serialized.len() <= MAX_FT_TRANSFER_CALL_RESULT, + "serialized U128::MAX ({} bytes) exceeds MAX_FT_TRANSFER_CALL_RESULT ({})", + serialized.len(), + MAX_FT_TRANSFER_CALL_RESULT, + ); +} + +#[test] +fn test_public_key_result_size_fits_constant() { + // secp256k1 compressed public key (33 bytes raw, base58-encoded with curve prefix) + let pk: PublicKey = "secp256k1:4NfTiv3UsGahebgTaHyD9vF8KYKMBnfd6kh94mK6xv8fGBiJB8TBtFMP5WWXz6B89Ac1fbpzPwAvoyQebemHFwx3" + .parse() + .unwrap(); + let serialized = serde_json::to_vec(&pk).unwrap(); + assert!( + serialized.len() <= MAX_PUBLIC_KEY_RESULT, + "serialized PublicKey ({} bytes) exceeds MAX_PUBLIC_KEY_RESULT ({})", + serialized.len(), + MAX_PUBLIC_KEY_RESULT, + ); +} + +#[test] +fn test_signature_result_size_fits_constant() { + // Realistic worst-case SignatureResponse with full-length hex strings + let response = SignatureResponse { + big_r: BigR { + // Compressed secp256k1 point: 02/03 prefix + 64 hex digits = 66 chars + affine_point: "025802983164945D1C3E40818FF569E275451CC33613EDDFA0E54D23710DFAF3C8" + .to_string(), + }, + s: S { + // 256-bit scalar: 64 hex digits + scalar: "07511DF9E947BC61F88011A3166AA0E60E2D45BFCACD61AD35DB4340941C84DE".to_string(), + }, + recovery_id: 1, + }; + let serialized = serde_json::to_vec(&response).unwrap(); + assert!( + serialized.len() <= MAX_SIGNATURE_RESULT, + "serialized SignatureResponse ({} bytes) exceeds MAX_SIGNATURE_RESULT ({})", + serialized.len(), + MAX_SIGNATURE_RESULT, + ); +} diff --git a/contracts/satoshi-bridge/src/utils.rs b/contracts/satoshi-bridge/src/utils.rs index 36fc6159..f1ecea9d 100644 --- a/contracts/satoshi-bridge/src/utils.rs +++ b/contracts/satoshi-bridge/src/utils.rs @@ -4,6 +4,15 @@ use crate::{env, Timestamp}; pub const UTXO_STORAGE_KEY_TAG: &str = "@"; +/// Maximum expected byte length of a JSON-serialized `bool` promise result (`true`/`false`). +pub const MAX_BOOL_RESULT: usize = 10; +/// Maximum expected byte length of a JSON-serialized `U128` promise result (e.g. from `ft_on_transfer`). +pub const MAX_FT_TRANSFER_CALL_RESULT: usize = 50; +/// Maximum expected byte length of a JSON-serialized `near_sdk::PublicKey` promise result. +pub const MAX_PUBLIC_KEY_RESULT: usize = 200; +/// Maximum expected byte length of a JSON-serialized `SignatureResponse` promise result. +pub const MAX_SIGNATURE_RESULT: usize = 300; + pub fn generate_utxo_storage_key(txid: String, vout: u32) -> String { format!( "{}{}{}", diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index 3c2054a5..5885cd30 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -237,6 +237,20 @@ impl Context { .unwrap() .unwrap(); + // Grant UnrestrictedRelayer role to test accounts so they can call + // methods guarded by #[trusted_relayer] + for account in [&relayer, &alice, &bob, &charlie, &tx_listener] { + root.call(bridge_contract.id(), "acl_grant_role") + .args_json(json!({ + "role": "UnrestrictedRelayer", + "account_id": account.id() + })) + .transact() + .await + .unwrap() + .unwrap(); + } + Self { root, tx_listener, @@ -277,7 +291,8 @@ impl Context { worker: &Worker, account_id: &AccountId, ) -> u128 { - match worker.view_account(account_id).await { + let ws_account_id: near_workspaces::AccountId = account_id.as_str().parse().unwrap(); + match worker.view_account(&ws_account_id).await { Ok(a) => a.balance.as_yoctonear(), Err(_) => 0, } diff --git a/contracts/satoshi-bridge/tests/setup/mod.rs b/contracts/satoshi-bridge/tests/setup/mod.rs index 76d00fc8..5ddd6de5 100644 --- a/contracts/satoshi-bridge/tests/setup/mod.rs +++ b/contracts/satoshi-bridge/tests/setup/mod.rs @@ -14,3 +14,17 @@ pub use bitcoin::OutPoint; #[cfg(feature = "zcash")] pub use satoshi_bridge::zcash_utils::types::ChainSpecificData; pub use satoshi_bridge::{DepositMsg, TokenReceiverMessage}; + +/// Extension trait to convert `near_workspaces::Account` IDs (`near-account-id` v1) +/// to `near_sdk::AccountId` (`near-account-id` v2) via string roundtrip. +/// Required because `near-workspaces` and `near-sdk` depend on different major +/// versions of the `near-account-id` crate. +pub trait ToSdkAccountId { + fn sdk_id(&self) -> near_sdk::AccountId; +} + +impl ToSdkAccountId for near_workspaces::Account { + fn sdk_id(&self) -> near_sdk::AccountId { + self.id().as_str().parse().unwrap() + } +} diff --git a/contracts/satoshi-bridge/tests/test_orchard_validation.rs b/contracts/satoshi-bridge/tests/test_orchard_validation.rs index 61c08746..fbd115dc 100644 --- a/contracts/satoshi-bridge/tests/test_orchard_validation.rs +++ b/contracts/satoshi-bridge/tests/test_orchard_validation.rs @@ -27,7 +27,7 @@ async fn test_orchard_wrong_recipient() { // Setup: Deposit for alice let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -38,7 +38,7 @@ async fn test_orchard_wrong_recipient() { check!(context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -152,7 +152,7 @@ async fn test_orchard_missing_bundle() { // Setup: Deposit for alice let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -163,7 +163,7 @@ async fn test_orchard_missing_bundle() { check!(context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -247,7 +247,7 @@ async fn test_orchard_bundle_in_zcash_tx() { // Setup: Deposit for alice let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -258,7 +258,7 @@ async fn test_orchard_bundle_in_zcash_tx() { check!(context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, diff --git a/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs b/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs index f8d726a6..618c29ad 100644 --- a/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs +++ b/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs @@ -28,7 +28,7 @@ async fn test_orchard_withdrawal_with_ovk_validation() { // Deposit for alice using Zcash transaction format let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -60,7 +60,7 @@ async fn test_orchard_withdrawal_with_ovk_validation() { check!(context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -160,7 +160,7 @@ async fn test_orchard_withdrawal_amount_mismatch() { // Deposit for alice using Zcash transaction format let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -184,7 +184,7 @@ async fn test_orchard_withdrawal_amount_mismatch() { check!(context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, diff --git a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs index 5502ebc1..256ab58c 100644 --- a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs +++ b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs @@ -1,6 +1,6 @@ mod setup; use bitcoin::{Amount, OutPoint, TxOut}; -use near_sdk::{AccountId, Gas}; +use near_sdk::{AccountId, Gas, NearToken}; use satoshi_bridge::network::{Address, Chain}; use satoshi_bridge::{DepositMsg, PendingInfoState, PostAction, TokenReceiverMessage}; use setup::*; @@ -31,7 +31,7 @@ async fn test_role() { context.get_metadata().await.unwrap().super_admins, vec!["test.near".parse::().unwrap()] ); - check!(print context.bridge_add_super_admin("root", context.get_account_by_name("alice").id())); + check!(print context.bridge_add_super_admin("root", &context.get_account_by_name("alice").sdk_id())); assert_eq!( context.get_metadata().await.unwrap().super_admins, vec![ @@ -39,17 +39,17 @@ async fn test_role() { "alice.test.near".parse::().unwrap() ] ); - check!(print context.bridge_remove_super_admin("alice", context.get_account_by_name("root").id())); + check!(print context.bridge_remove_super_admin("alice", &context.get_account_by_name("root").sdk_id())); assert_eq!( context.get_metadata().await.unwrap().super_admins, vec!["alice.test.near".parse::().unwrap()] ); check!( - context.bridge_add_super_admin("root", context.get_account_by_name("alice").id()), + context.bridge_add_super_admin("root", &context.get_account_by_name("alice").sdk_id()), "Insufficient permissions" ); check!( - context.bridge_remove_super_admin("alice", context.get_account_by_name("alice").id()), + context.bridge_remove_super_admin("alice", &context.get_account_by_name("alice").sdk_id()), "cannot remove oneself" ); assert_eq!( @@ -110,7 +110,7 @@ async fn test_base() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -119,7 +119,7 @@ async fn test_base() { .unwrap(); let bob_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("bob").id().clone(), + recipient_id: context.get_account_by_name("bob").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -130,7 +130,7 @@ async fn test_base() { check!(printr "alice 10000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -178,7 +178,7 @@ async fn test_base() { check!(printr "alice 50000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -227,7 +227,7 @@ async fn test_base() { context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -260,7 +260,7 @@ async fn test_base() { check!(context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("bob").id().clone(), + recipient_id: context.get_account_by_name("bob").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -479,7 +479,7 @@ async fn test_fix_bridge_fee_and_relayer() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -490,7 +490,7 @@ async fn test_fix_bridge_fee_and_relayer() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -619,7 +619,7 @@ async fn test_ratio_bridge_fee_and_relayer() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -630,7 +630,7 @@ async fn test_ratio_bridge_fee_and_relayer() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -762,7 +762,7 @@ async fn test_directly_withdraw() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -773,7 +773,7 @@ async fn test_directly_withdraw() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -885,9 +885,9 @@ async fn test_one_click() { { // dapp not in post_action_receiver_id_white_list let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), @@ -942,13 +942,12 @@ async fn test_one_click() { check!( context.extend_post_action_receiver_id_white_list(vec![context .get_account_by_name("dapp") - .id() - .clone()]) + .sdk_id()]) ); let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), @@ -1003,9 +1002,9 @@ async fn test_one_click() { { // PostAction gas too large let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), @@ -1060,17 +1059,17 @@ async fn test_one_click() { { // PostAction total gas too large let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![ PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), gas: Some(Gas::from_tgas(100)), }, PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), @@ -1126,24 +1125,24 @@ async fn test_one_click() { { // PostAction > 2 let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![ PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), gas: None, }, PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), gas: None, }, PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 5000.into(), memo: None, msg: "".to_string(), @@ -1199,9 +1198,9 @@ async fn test_one_click() { { // amount > current deposit let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 500000.into(), memo: None, msg: "".to_string(), @@ -1256,17 +1255,17 @@ async fn test_one_click() { { // The user is not registered with the dapp let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![ PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 20000.into(), memo: None, msg: "".to_string(), gas: Some(Gas::from_tgas(50)), }, PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 20000.into(), memo: None, msg: "".to_string(), @@ -1323,17 +1322,17 @@ async fn test_one_click() { check!(context.storage_deposit("nbtc", "dapp")); check!(context.storage_deposit("dapp", "alice")); let deposit_msg = DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: Some(vec![ PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 20000.into(), memo: None, msg: "".to_string(), gas: Some(Gas::from_tgas(100)), }, PostAction { - receiver_id: context.get_account_by_name("dapp").id().clone(), + receiver_id: context.get_account_by_name("dapp").sdk_id(), amount: 20000.into(), memo: None, msg: "".to_string(), @@ -1400,7 +1399,7 @@ async fn test_utxo_passive_management() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -1412,7 +1411,7 @@ async fn test_utxo_passive_management() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -1436,7 +1435,7 @@ async fn test_utxo_passive_management() { check!(printr "alice 60000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -1622,7 +1621,7 @@ async fn test_cancel_withdraw() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -1633,7 +1632,7 @@ async fn test_cancel_withdraw() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -1857,7 +1856,7 @@ async fn test_cancel_withdraw2() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -1868,7 +1867,7 @@ async fn test_cancel_withdraw2() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -2041,7 +2040,7 @@ async fn test_utxo_active_management() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -2053,7 +2052,7 @@ async fn test_utxo_active_management() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -2077,7 +2076,7 @@ async fn test_utxo_active_management() { check!(printr "alice 60000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -2410,7 +2409,7 @@ async fn test_utxo_active_management2() { let withdraw_change_address = context.get_change_address().await.unwrap(); let alice_btc_deposit_address = context .get_user_deposit_address(DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -2422,7 +2421,7 @@ async fn test_utxo_active_management2() { check!(printr "alice 500000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -2446,7 +2445,7 @@ async fn test_utxo_active_management2() { check!(printr "alice 60000" context.verify_deposit( "relayer", DepositMsg { - recipient_id: context.get_account_by_name("alice").id().clone(), + recipient_id: context.get_account_by_name("alice").sdk_id(), post_actions: None, extra_msg: None, safe_deposit: None, @@ -2603,3 +2602,129 @@ async fn test_utxo_active_management2() { 560000 - 20000 ); } + +#[tokio::test] +async fn test_unauthorized_account_cannot_call_trusted_relayer_methods() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + // Create a new account that does NOT receive the UnrestrictedRelayer role. + // Context::new only grants UnrestrictedRelayer to relayer, alice, bob, charlie, and tx_listener. + let unauthorized = worker.dev_create_account().await.unwrap(); + + let alice_btc_deposit_address = context + .get_user_deposit_address(DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }) + .await + .unwrap(); + + // verify_deposit should fail for an account without the trusted-relayer role + let outcome = unauthorized + .call(context.bridge_contract.id(), "verify_deposit") + .args_json(near_sdk::serde_json::json!({ + "deposit_msg": DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }, + "tx_bytes": generate_transaction_bytes( + vec![( + "c6774e76452c36bba6c357653f620a4364fc063ba021e2acf6049f8d9e6b0234", + 1, + None, + )], + vec![ + (alice_btc_deposit_address.as_str(), 50000), + (TARGET_ADDRESS, 90000), + ], + ), + "vout": 0u32, + "tx_block_blockhash": "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d", + "tx_index": 1u64, + "merkle_proof": Vec::::new(), + })) + .max_gas() + .transact() + .await; + assert!( + tool_err_msg(&outcome).contains("Relayer is not active"), + "verify_deposit should reject an account without trusted-relayer role" + ); + + // safe_verify_deposit should fail for an account without the trusted-relayer role + let outcome = unauthorized + .call(context.bridge_contract.id(), "safe_verify_deposit") + .args_json(near_sdk::serde_json::json!({ + "deposit_msg": DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + }, + "tx_bytes": generate_transaction_bytes( + vec![( + "c6774e76452c36bba6c357653f620a4364fc063ba021e2acf6049f8d9e6b0234", + 1, + None, + )], + vec![ + (alice_btc_deposit_address.as_str(), 50000), + (TARGET_ADDRESS, 90000), + ], + ), + "vout": 0u32, + "tx_block_blockhash": "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d", + "tx_index": 1u64, + "merkle_proof": Vec::::new(), + })) + .max_gas() + .deposit(NearToken::from_near(1)) + .transact() + .await; + assert!( + tool_err_msg(&outcome).contains("Relayer is not active"), + "safe_verify_deposit should reject an account without trusted-relayer role" + ); + + // verify_withdraw should fail for an account without the trusted-relayer role + let outcome = unauthorized + .call(context.bridge_contract.id(), "verify_withdraw") + .args_json(near_sdk::serde_json::json!({ + "tx_id": "", + "tx_block_blockhash": "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d", + "tx_index": 1u64, + "merkle_proof": Vec::::new(), + })) + .max_gas() + .transact() + .await; + assert!( + tool_err_msg(&outcome).contains("Relayer is not active"), + "verify_withdraw should reject an account without trusted-relayer role" + ); + + // verify_active_utxo_management should fail for an account without the trusted-relayer role + let outcome = unauthorized + .call( + context.bridge_contract.id(), + "verify_active_utxo_management", + ) + .args_json(near_sdk::serde_json::json!({ + "tx_id": "", + "tx_block_blockhash": "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d", + "tx_index": 1u64, + "merkle_proof": Vec::::new(), + })) + .max_gas() + .transact() + .await; + assert!( + tool_err_msg(&outcome).contains("Relayer is not active"), + "verify_active_utxo_management should reject an account without trusted-relayer role" + ); +} From 042955ed56fb9004b5c7b9ff6893221a2c894a70 Mon Sep 17 00:00:00 2001 From: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> Date: Thu, 26 Mar 2026 21:42:40 -0400 Subject: [PATCH 18/28] chore: updated `omni-utils` (#27) --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0e7e5aca..2188155e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3023,7 +3023,7 @@ dependencies = [ [[package]] name = "omni-utils" version = "0.1.0" -source = "git+https://github.com/near-one/omni-utils?rev=077d09daf7a7b32ad237f0530033c7db804f2c67#077d09daf7a7b32ad237f0530033c7db804f2c67" +source = "git+https://github.com/near-one/omni-utils?rev=f9bc3ea4a72e97f02660b8f1c0b2f79a9fbde3a4#f9bc3ea4a72e97f02660b8f1c0b2f79a9fbde3a4" dependencies = [ "near-sdk", "omni-utils-derive", @@ -3034,7 +3034,7 @@ dependencies = [ [[package]] name = "omni-utils-derive" version = "0.1.0" -source = "git+https://github.com/near-one/omni-utils?rev=077d09daf7a7b32ad237f0530033c7db804f2c67#077d09daf7a7b32ad237f0530033c7db804f2c67" +source = "git+https://github.com/near-one/omni-utils?rev=f9bc3ea4a72e97f02660b8f1c0b2f79a9fbde3a4#f9bc3ea4a72e97f02660b8f1c0b2f79a9fbde3a4" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index b157ccb8..da22ecba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ near-contract-standards = "=5.24.1" hex="0.4.3" bitcoin = { version = "0.32.0", default-features = false, features = ["serde"] } near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" } -omni-utils = { git = "https://github.com/near-one/omni-utils", rev = "077d09daf7a7b32ad237f0530033c7db804f2c67" } +omni-utils = { git = "https://github.com/near-one/omni-utils", rev = "f9bc3ea4a72e97f02660b8f1c0b2f79a9fbde3a4" } [profile.release] codegen-units = 1 From abd0ed61ccde7a41f06e60f673c4a8602d97d66f Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Fri, 17 Apr 2026 20:18:56 +0100 Subject: [PATCH 19/28] feat: unlimited pending sign txs whitelist (#31) * option -> hashset * add whitelist for unlimited txs * add migration test * lazy migration for accoun * fix lint * add limit for unlimited txs * check whitelist everywhere * whitelist set -> map * remove new config * fmt * renaming * remove unwrap_account function * unite set and reset pendig tx list * get_account ref --- Cargo.lock | 2 +- contracts/satoshi-bridge/Cargo.toml | 2 +- contracts/satoshi-bridge/src/account.rs | 76 +++++++++++++----- contracts/satoshi-bridge/src/api/bridge.rs | 37 ++------- .../src/api/chain_signatures.rs | 12 +-- .../satoshi-bridge/src/api/management.rs | 18 +++++ .../satoshi-bridge/src/api/token_receiver.rs | 11 +-- contracts/satoshi-bridge/src/api/view.rs | 15 +++- .../src/bitcoin_utils/contract_methods.rs | 3 +- .../satoshi-bridge/src/btc_pending_info.rs | 2 +- .../satoshi-bridge/src/chain_signature.rs | 7 +- contracts/satoshi-bridge/src/legacy.rs | 69 ++++++++++++++++ contracts/satoshi-bridge/src/lib.rs | 4 + contracts/satoshi-bridge/src/upgrade.rs | 1 + .../src/zcash_utils/contract_methods.rs | 9 ++- .../tests/data/btc_bridge_v0-5-1.wasm | Bin 1108262 -> 0 bytes .../tests/data/btc_bridge_v0-7-5.wasm | Bin 0 -> 1254711 bytes .../satoshi-bridge/tests/setup/context.rs | 1 + .../tests/test_satoshi_bridge.rs | 14 ++-- .../satoshi-bridge/tests/test_upgrade.rs | 57 ++++++++++++- 20 files changed, 255 insertions(+), 85 deletions(-) delete mode 100644 contracts/satoshi-bridge/tests/data/btc_bridge_v0-5-1.wasm create mode 100644 contracts/satoshi-bridge/tests/data/btc_bridge_v0-7-5.wasm diff --git a/Cargo.lock b/Cargo.lock index 2188155e..5b077b83 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3761,7 +3761,7 @@ dependencies = [ [[package]] name = "satoshi-bridge" -version = "0.7.5" +version = "0.8.0" dependencies = [ "bitcoin", "bs58 0.5.1", diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 3acc25a3..f0ea9861 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satoshi-bridge" -version = "0.7.5" +version = "0.8.0" edition.workspace = true publish.workspace = true repository.workspace = true diff --git a/contracts/satoshi-bridge/src/account.rs b/contracts/satoshi-bridge/src/account.rs index 6fc2cef8..6a0ede87 100644 --- a/contracts/satoshi-bridge/src/account.rs +++ b/contracts/satoshi-bridge/src/account.rs @@ -1,4 +1,4 @@ -use crate::{near, u128_dec_format, AccountId, Contract}; +use crate::{near, require, u128_dec_format, AccountId, Contract}; use near_sdk::env; use std::collections::HashSet; @@ -15,19 +15,44 @@ pub struct OutstandingInfo { #[derive(Clone)] #[cfg_attr(not(target_arch = "wasm32"), derive(Debug))] pub struct Account { + pub account_id: AccountId, + pub btc_pending_sign_ids: HashSet, + pub btc_pending_verify_list: HashSet, +} + +/// Old Account format (v0.7.5 and earlier) with single pending sign id. +#[near(serializers = [borsh])] +#[derive(Clone)] +pub struct AccountV0 { pub account_id: AccountId, pub btc_pending_sign_id: Option, pub btc_pending_verify_list: HashSet, } +impl From for Account { + fn from(v: AccountV0) -> Self { + let mut btc_pending_sign_ids = HashSet::new(); + if let Some(id) = v.btc_pending_sign_id { + btc_pending_sign_ids.insert(id); + } + Self { + account_id: v.account_id, + btc_pending_sign_ids, + btc_pending_verify_list: v.btc_pending_verify_list, + } + } +} + #[near(serializers = [borsh])] pub enum VAccount { + V0(AccountV0), Current(Account), } impl From for Account { fn from(v: VAccount) -> Self { match v { + VAccount::V0(c) => c.into(), VAccount::Current(c) => c, } } @@ -36,6 +61,7 @@ impl From for Account { impl From<&VAccount> for Account { fn from(v: &VAccount) -> Self { match v { + VAccount::V0(c) => c.clone().into(), VAccount::Current(c) => c.clone(), } } @@ -43,16 +69,14 @@ impl From<&VAccount> for Account { impl<'a> From<&'a mut VAccount> for &'a mut Account { fn from(v: &'a mut VAccount) -> Self { - match v { - VAccount::Current(c) => c, + // Lazy migrate V0 -> Current on first mutable access + if let VAccount::V0(old) = v { + let migrated: Account = old.clone().into(); + *v = VAccount::Current(migrated); } - } -} - -impl<'a> From<&'a VAccount> for &'a Account { - fn from(v: &'a VAccount) -> Self { match v { VAccount::Current(c) => c, + _ => unreachable!(), } } } @@ -67,29 +91,39 @@ impl Account { pub fn new(account_id: &AccountId) -> Self { Self { account_id: account_id.clone(), - btc_pending_sign_id: None, + btc_pending_sign_ids: HashSet::new(), btc_pending_verify_list: HashSet::new(), } } + + pub fn pending_sign_count(&self) -> u32 { + u32::try_from(self.btc_pending_sign_ids.len()).unwrap_or(u32::MAX) + } } impl Contract { - pub fn check_account_exists(&self, account_id: &AccountId) -> bool { - self.data().accounts.contains_key(account_id) + pub fn get_max_pending_sign_txs(&self, account_id: &AccountId) -> u32 { + self.data() + .pending_tx_limits + .get(account_id) + .copied() + .unwrap_or(1) } - pub fn internal_get_account(&self, account_id: &AccountId) -> Option<&Account> { - self.data().accounts.get(account_id).map(Into::into) + pub fn require_pending_sign_capacity(&self, account_id: &AccountId) { + require!( + self.get_account(account_id) + .unwrap_or_else(|| { + env::panic_str(&format!("ERR_ACCOUNT_NOT_REGISTERED: {}", account_id)) + }) + .pending_sign_count() + < self.get_max_pending_sign_txs(account_id), + "Too many pending sign transactions" + ); } - pub fn internal_unwrap_account(&self, account_id: &AccountId) -> &Account { - self.data() - .accounts - .get(account_id) - .map(|o| o.into()) - .unwrap_or_else(|| { - env::panic_str(&format!("ERR_ACCOUNT_NOT_REGISTERED: {}", account_id)) - }) + pub fn check_account_exists(&self, account_id: &AccountId) -> bool { + self.data().accounts.contains_key(account_id) } pub fn internal_unwrap_mut_account(&mut self, account_id: &AccountId) -> &mut Account { diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index 1e0dc9f0..10151d02 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -211,12 +211,7 @@ impl Contract { chain_specific_data: Option, ) { let account_id = env::predecessor_account_id(); - require!( - self.internal_unwrap_account(&account_id) - .btc_pending_sign_id - .is_none(), - "Previous btc tx has not been signed" - ); + self.require_pending_sign_capacity(&account_id); self.withdraw_rbf_chain_specific( account_id, @@ -241,12 +236,7 @@ impl Contract { .internal_unwrap_btc_pending_info(&original_btc_pending_verify_id) .account_id .clone(); - require!( - self.internal_unwrap_account(&user_account_id) - .btc_pending_sign_id - .is_none(), - "Assisted user previous btc tx has not been signed" - ); + self.require_pending_sign_capacity(&user_account_id); self.cancel_withdraw_chain_specific( user_account_id, @@ -329,12 +319,7 @@ impl Contract { ) { assert_one_yocto(); let account_id = env::predecessor_account_id(); - require!( - self.internal_unwrap_account(&account_id) - .btc_pending_sign_id - .is_none(), - "Previous btc tx has not been signed" - ); + self.require_pending_sign_capacity(&account_id); self.active_utxo_management_rbf_chain_specific( account_id, original_btc_pending_verify_id, @@ -362,12 +347,7 @@ impl Contract { .internal_unwrap_btc_pending_info(&original_btc_pending_verify_id) .account_id .clone(); - require!( - self.internal_unwrap_account(&user_account_id) - .btc_pending_sign_id - .is_none(), - "Assisted user previous btc tx has not been signed" - ); + self.require_pending_sign_capacity(&user_account_id); self.cancel_active_utxo_management_chain_specific( user_account_id, original_btc_pending_verify_id, @@ -432,11 +412,7 @@ impl Contract { account_id: AccountId, mut psbt: PsbtWrapper, ) { - let account = self.internal_unwrap_account(&account_id); - require!( - account.btc_pending_sign_id.is_none(), - "Previous btc tx has not been signed" - ); + self.require_pending_sign_capacity(&account_id); let (utxo_storage_keys, vutxos) = self.generate_vutxos(&mut psbt); let (actual_received_amount, gas_fee) = @@ -480,7 +456,8 @@ impl Contract { "pending info already exist" ); self.internal_unwrap_mut_account(&account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); + .btc_pending_sign_ids + .insert(btc_pending_id.clone()); Event::UtxoRemoved { utxo_storage_keys }.emit(); Event::GenerateBtcPendingInfo { account_id: &account_id, diff --git a/contracts/satoshi-bridge/src/api/chain_signatures.rs b/contracts/satoshi-bridge/src/api/chain_signatures.rs index f546edc4..74fd795d 100644 --- a/contracts/satoshi-bridge/src/api/chain_signatures.rs +++ b/contracts/satoshi-bridge/src/api/chain_signatures.rs @@ -28,12 +28,12 @@ impl Contract { btc_pending_info.assert_pending_sign(); if let Some(original_tx_id) = btc_pending_info.get_original_tx_id() { if !self.check_btc_pending_info_exists(original_tx_id) { - let clear_account_btc_pending_sign_id = self - .internal_unwrap_mut_account(&btc_pending_info.account_id.clone()) - .btc_pending_sign_id - .take() - == Some(btc_pending_sign_id.clone()); - require!(clear_account_btc_pending_sign_id, "Internal error"); + require!( + self.internal_unwrap_mut_account(&btc_pending_info.account_id.clone()) + .btc_pending_sign_ids + .remove(&btc_pending_sign_id), + "Internal error" + ); self.internal_remove_btc_pending_info(&btc_pending_sign_id); return PromiseOrValue::Value(true); } diff --git a/contracts/satoshi-bridge/src/api/management.rs b/contracts/satoshi-bridge/src/api/management.rs index 41a5b3d2..388c9f83 100644 --- a/contracts/satoshi-bridge/src/api/management.rs +++ b/contracts/satoshi-bridge/src/api/management.rs @@ -181,6 +181,24 @@ impl Contract { } } + #[payable] + #[access_control_any(roles(Role::DAO))] + pub fn set_pending_tx_limit(&mut self, account_id: AccountId, max_pending: Option) { + assert_one_yocto(); + if let Some(max_pending) = max_pending { + require!(max_pending >= 1, "Invalid max_pending value"); + self.data_mut() + .pending_tx_limits + .insert(account_id, max_pending); + } else { + let prev = self.data_mut().pending_tx_limits.remove(&account_id); + require!( + prev.is_some(), + format!("Invalid account_id: {}", account_id) + ); + } + } + #[payable] #[access_control_any(roles(Role::DAO))] pub fn extend_post_action_msg_templates( diff --git a/contracts/satoshi-bridge/src/api/token_receiver.rs b/contracts/satoshi-bridge/src/api/token_receiver.rs index 7906b8ec..736de527 100644 --- a/contracts/satoshi-bridge/src/api/token_receiver.rs +++ b/contracts/satoshi-bridge/src/api/token_receiver.rs @@ -77,11 +77,11 @@ impl Contract { max_gas_fee: Option, ) { let (utxo_storage_keys, vutxos) = self.generate_vutxos(&mut psbt); + let max_pending = self.get_max_pending_sign_txs(&sender_id); + let account = self.internal_unwrap_or_create_mut_account(&sender_id); require!( - self.internal_unwrap_or_create_mut_account(&sender_id) - .btc_pending_sign_id - .is_none(), - "Previous btc tx has not been signed" + account.pending_sign_count() < max_pending, + "Too many pending sign transactions" ); let withdraw_change_address_script_pubkey = @@ -129,7 +129,8 @@ impl Contract { "pending info already exist" ); self.internal_unwrap_mut_account(&sender_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); + .btc_pending_sign_ids + .insert(btc_pending_id.clone()); Event::UtxoRemoved { utxo_storage_keys }.emit(); Event::GenerateBtcPendingInfo { account_id: &sender_id, diff --git a/contracts/satoshi-bridge/src/api/view.rs b/contracts/satoshi-bridge/src/api/view.rs index b98f3cbe..4d390c2b 100644 --- a/contracts/satoshi-bridge/src/api/view.rs +++ b/contracts/satoshi-bridge/src/api/view.rs @@ -17,6 +17,7 @@ pub struct Metadata { pub relayer_white_list: Vec, pub extra_msg_relayer_white_list: Vec, pub post_action_receiver_id_white_list: Vec, + pub pending_tx_limits: HashMap, #[serde(with = "u128_dec_format")] pub acc_collected_protocol_fee: u128, #[serde(with = "u128_dec_format")] @@ -57,6 +58,11 @@ impl Contract { .iter() .cloned() .collect(), + pending_tx_limits: root_state + .pending_tx_limits + .iter() + .map(|(k, v)| (k.clone(), *v)) + .collect(), acc_collected_protocol_fee: root_state.acc_collected_protocol_fee, cur_available_protocol_fee: root_state.cur_available_protocol_fee, acc_claimed_protocol_fee: root_state.acc_claimed_protocol_fee, @@ -72,8 +78,8 @@ impl Contract { self.internal_config().clone() } - pub fn get_account(&self, account_id: AccountId) -> Option { - self.internal_get_account(&account_id).cloned() + pub fn get_account(&self, account_id: &AccountId) -> Option { + self.data().accounts.get(account_id).map(Account::from) } pub fn list_accounts( @@ -82,7 +88,10 @@ impl Contract { ) -> HashMap> { account_ids .into_iter() - .map(|key| (key.clone(), self.internal_get_account(&key).cloned())) + .map(|key| { + let account = self.get_account(&key); + (key, account) + }) .collect() } diff --git a/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs index 5a5114c9..8571f95b 100644 --- a/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs +++ b/contracts/satoshi-bridge/src/bitcoin_utils/contract_methods.rs @@ -32,7 +32,8 @@ macro_rules! define_rbf_method { ); self.internal_unwrap_mut_account(&account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); + .btc_pending_sign_ids + .insert(btc_pending_id.clone()); Event::GenerateBtcPendingInfo { account_id: &account_id, diff --git a/contracts/satoshi-bridge/src/btc_pending_info.rs b/contracts/satoshi-bridge/src/btc_pending_info.rs index cdf15ddc..6012dc3f 100644 --- a/contracts/satoshi-bridge/src/btc_pending_info.rs +++ b/contracts/satoshi-bridge/src/btc_pending_info.rs @@ -393,7 +393,7 @@ impl Contract { pub fn generate_btc_pending_sign_id(payload_preimages: &[Vec]) -> String { let hash_bytes = env::sha256_array( - &payload_preimages + payload_preimages .iter() .flatten() .copied() diff --git a/contracts/satoshi-bridge/src/chain_signature.rs b/contracts/satoshi-bridge/src/chain_signature.rs index daff5491..192a30b0 100644 --- a/contracts/satoshi-bridge/src/chain_signature.rs +++ b/contracts/satoshi-bridge/src/chain_signature.rs @@ -196,9 +196,10 @@ impl Contract { let is_original_tx = btc_pending_info.get_original_tx_id().is_none(); let account = self.internal_unwrap_mut_account(&account_id); - let clear_account_btc_pending_sign_id = - account.btc_pending_sign_id.take() == Some(btc_pending_sign_id.clone()); - require!(clear_account_btc_pending_sign_id, "Internal error"); + require!( + account.btc_pending_sign_ids.remove(&btc_pending_sign_id), + "Internal error" + ); if is_original_tx { account .btc_pending_verify_list diff --git a/contracts/satoshi-bridge/src/legacy.rs b/contracts/satoshi-bridge/src/legacy.rs index f891f7e5..3ed6626a 100644 --- a/contracts/satoshi-bridge/src/legacy.rs +++ b/contracts/satoshi-bridge/src/legacy.rs @@ -54,6 +54,7 @@ impl From for ContractData { extra_msg_relayer_white_list: IterableSet::new(StorageKey::ExtraMsgRelayerWhiteList), post_action_receiver_id_white_list, post_action_msg_templates: IterableMap::new(StorageKey::PostActionMsgTemplates), + pending_tx_limits: IterableMap::new(StorageKey::PendingTxLimits), lost_found, acc_collected_protocol_fee, cur_available_protocol_fee, @@ -387,6 +388,7 @@ impl From for ContractData { extra_msg_relayer_white_list: IterableSet::new(StorageKey::ExtraMsgRelayerWhiteList), post_action_receiver_id_white_list, post_action_msg_templates, + pending_tx_limits: IterableMap::new(StorageKey::PendingTxLimits), lost_found, acc_collected_protocol_fee, cur_available_protocol_fee, @@ -461,6 +463,73 @@ impl From for ContractData { extra_msg_relayer_white_list, post_action_receiver_id_white_list, post_action_msg_templates, + pending_tx_limits: IterableMap::new(StorageKey::PendingTxLimits), + lost_found, + acc_collected_protocol_fee, + cur_available_protocol_fee, + acc_claimed_protocol_fee, + cur_reserved_protocol_fee, + acc_protocol_fee_for_gas, + } + } +} + +#[near(serializers = [borsh])] +pub struct ContractDataV3 { + pub config: LazyOption, + pub accounts: IterableMap, + pub utxos: IterableMap, + pub unavailable_utxos: IterableMap, + pub verified_deposit_utxo: LookupSet, + pub btc_pending_infos: IterableMap, + pub rbf_txs: IterableMap>, + pub relayer_white_list: IterableSet, + pub extra_msg_relayer_white_list: IterableSet, + pub post_action_receiver_id_white_list: IterableSet, + pub post_action_msg_templates: IterableMap>, + pub lost_found: IterableMap, + pub acc_collected_protocol_fee: u128, + pub cur_available_protocol_fee: u128, + pub acc_claimed_protocol_fee: u128, + pub cur_reserved_protocol_fee: u128, + pub acc_protocol_fee_for_gas: u128, +} + +impl From for ContractData { + fn from(c: ContractDataV3) -> Self { + let ContractDataV3 { + config, + accounts, + utxos, + unavailable_utxos, + verified_deposit_utxo, + btc_pending_infos, + rbf_txs, + relayer_white_list, + extra_msg_relayer_white_list, + post_action_receiver_id_white_list, + post_action_msg_templates, + lost_found, + acc_collected_protocol_fee, + cur_available_protocol_fee, + acc_claimed_protocol_fee, + cur_reserved_protocol_fee, + acc_protocol_fee_for_gas, + } = c; + + Self { + config, + accounts, + utxos, + unavailable_utxos, + verified_deposit_utxo, + btc_pending_infos, + rbf_txs, + relayer_white_list, + extra_msg_relayer_white_list, + post_action_receiver_id_white_list, + post_action_msg_templates, + pending_tx_limits: IterableMap::new(StorageKey::PendingTxLimits), lost_found, acc_collected_protocol_fee, cur_available_protocol_fee, diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index a0e00d82..cabe4dc8 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -92,6 +92,7 @@ enum StorageKey { LostFound, PostActionMsgTemplates, ExtraMsgRelayerWhiteList, + PendingTxLimits, } #[derive(AccessControlRole, Deserialize, Serialize, Copy, Clone)] @@ -119,6 +120,7 @@ pub struct ContractData { pub extra_msg_relayer_white_list: IterableSet, pub post_action_receiver_id_white_list: IterableSet, pub post_action_msg_templates: IterableMap>, + pub pending_tx_limits: IterableMap, pub lost_found: IterableMap, pub acc_collected_protocol_fee: u128, pub cur_available_protocol_fee: u128, @@ -132,6 +134,7 @@ pub enum VersionedContractData { V0(ContractDataV0), V1(ContractDataV1), V2(ContractDataV2), + V3(ContractDataV3), Current(ContractData), } @@ -185,6 +188,7 @@ impl Contract { StorageKey::PostActionReceiverIdWhiteListWhiteList, ), post_action_msg_templates: IterableMap::new(StorageKey::PostActionMsgTemplates), + pending_tx_limits: IterableMap::new(StorageKey::PendingTxLimits), lost_found: IterableMap::new(StorageKey::LostFound), acc_collected_protocol_fee: 0, cur_available_protocol_fee: 0, diff --git a/contracts/satoshi-bridge/src/upgrade.rs b/contracts/satoshi-bridge/src/upgrade.rs index f5bef78d..29452d72 100644 --- a/contracts/satoshi-bridge/src/upgrade.rs +++ b/contracts/satoshi-bridge/src/upgrade.rs @@ -12,6 +12,7 @@ impl Contract { VersionedContractData::V0(data) => VersionedContractData::Current(data.into()), VersionedContractData::V1(data) => VersionedContractData::Current(data.into()), VersionedContractData::V2(data) => VersionedContractData::Current(data.into()), + VersionedContractData::V3(data) => VersionedContractData::Current(data.into()), VersionedContractData::Current(data) => VersionedContractData::Current(data), }; contract diff --git a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs index 64b06280..d7f698a9 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs @@ -1,3 +1,5 @@ +#![allow(clippy::too_many_arguments)] + use crate::psbt_wrapper::PsbtWrapper; use crate::zcash_utils::types::ChainSpecificData; use crate::*; @@ -19,7 +21,7 @@ macro_rules! define_rbf_callback { chain_specific_data: Option, ) { let predecessor_account_id = env::predecessor_account_id(); - self.get_last_block_height_promise().then( + let _ = self.get_last_block_height_promise().then( Self::ext(env::current_account_id()) .with_static_gas(GAS_RBF_CALL_BACK) .$callback_name( @@ -67,7 +69,8 @@ macro_rules! define_rbf_callback { ); self.internal_unwrap_mut_account(&account_id) - .btc_pending_sign_id = Some(btc_pending_id.clone()); + .btc_pending_sign_ids + .insert(btc_pending_id.clone()); Event::GenerateBtcPendingInfo { account_id: &account_id, @@ -248,7 +251,7 @@ impl Contract { input: Vec, output: Vec, ) { - self.get_last_block_height_promise().then( + let _ = self.get_last_block_height_promise().then( Self::ext(env::current_account_id()) .with_static_gas(GAS_FOR_ACTIVE_UTXO_MANAGMENT_CALLBACK) .active_utxo_management_callback(account_id, input, output), diff --git a/contracts/satoshi-bridge/tests/data/btc_bridge_v0-5-1.wasm b/contracts/satoshi-bridge/tests/data/btc_bridge_v0-5-1.wasm deleted file mode 100644 index 778b8f6e3b19997929e158f5e9269d37a6b4b756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108262 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 z z-?-Kw>+(ytUrF*HJ7o|-o)lE-gg2RiW2OXn^%jIdw1SUy^!rs;^F8WS*23gF1_if0 zt(xT`LBL%@6-jsNG`fPIv9^vN7UjF8tLH79My_mBr18{8m8f0$ofoT8eB?iaon9&0Lt3w%W zw5*!?V)hjLxZHXA@MKNv&{tXt*k!6&q}#0-9o_`2#1E*l0oZU&axRZ1#v8C2V5qN_ zIix%E`B9tHjg$+%!?fY~;F1r$Sgg>w$ZXjhl4#6QN6faecN9VnqJ@ZzxSF*)Ka<9} zP)T2cK`r#MuUb*!Dyd@FlL=$OmKj4~w9ZJ5=!H921Q4J>K}ClZBMCIJC|hB&Nn)A) z^1Q5k_Cu81_IGp#;jft~%5MGUPUJw6Mr*^>s8Lb2=y3N8#9x%%6d~@H|V@P_6 zB&+B*`Ef{PVe<86%lB}cI!Q1I>IIH48Fazqn=Xv7)`+@kz_IQE*48tXbVaz)#KqNI zrTAsn6*oJ%xk8fWQ`~$l;^tOvE^)>x(#i+pFbG0K4}_}1t=0#Kx+{4)&ZYRSP8p1g zUsQ9Ri%S25`D3ajcMD_)*if*?K%DO$DKkO`c}6Ki$^UdP{O;?_Jt?53l2*keA|rn% znz1`oxI6zz*(|wjiZV;wB~PbWST=Vp8H4v`&BZm1VNB+{>F-pHIbHs8cRrVK1Ngi# z_00;q%mu#xt=(3cKIAH&8McCA}&WVmY5_?a&0_Fb3bo%Sg*%@Tt4ZO8i7N@eHRhD~vU%CIaw{oij z=+y`dZurVD4=}I1Cdn-W>LGK0v^VbjJl|SO0a>G6!H_($)ml?@yTAD_hI?!O6*br1 z-jpx%im;fEtUKbwFAm!bKaOk?907#yow$>}hS{Z|CRTaBvh)4z5V!XQmYQ&Tr@vL+ zTm9{bMsjgDzDU;{;W)0P<2Rk)wJbmeS6@}ds$aoX2t!gtg zIEd4MjmZb)&}+(zhT0_&n@=V+h=u1;#MabkgdCPq2r<uSU_9dUSldqKO9;F^jiSGm`VIdW9rE-WwRZyn@`1 z_XbXXZRq;POMWd-8w_^5@Bc2fp#UE*F|=qkM8S1*HAKO6@#^RlE=yKN&*gH!>gaeb z=$cpPrJv)k&TrGz?z;ST#cH=xw}Y#rOLZMu9i6XhvN}4Q%kb*xBrYSXqvvpG9qz8= zWp*u2nI6R;$ZoKNi2~U{c9SJ^CtOL4Z>nC#j0F*7pR){;vpIQK57(@ApHdz=`?S>{ zm29_Lwoe6R%{j1c4iHQS@c`4IG!Gk#2U*qT{bW_E^}#UkXiX7f*^O6zEXZ(-G^7G4 z;S)-zlQ0n4^Jnzj*0Y>@F8i{cNA>JA{U7RiNnSyaJ;AH+=f3G#e8dq&&sdyaT+;U)Xp4K#R&$<0zw_6yi&?M+a9l)VSrBU~q5J>oJp-t?L+ zGQb(<#GQ&jB7s_3mNt&Ub~H7VLfAmwA&bq^&R|At!{mXcJkg`#R{4PIy0kkL2?X7a zVI?vb3->Y;rQLFonFx2whM?YDrDwW9D)9%sp8Gg!;9VU_Ym$}5wK5dVE!gf*k9k1M zI7WHa@_=k+%tya!AdSDZ%US{WMWCd0`Ef-Wsru=XpVsKUIrwm#InB?p*4P}9avcT*f&U<2Z^&58v*`f60i5s(5UdjD8{~llG zFXRRWCNPS6CU^Rnw|{|_w=rbOLxQvp8+i;>z|h*TvKCc_LV>Js$j}J8^)%EhXB;+W zI#KeA+PEzn*!s+@QLtX%j+q^oz)A2dNvboANWnr(2Ca{Tt_l!5U!al(aF~!sKe)8V ztDcz!eHfHE*I8cN&hRvobhOrNNV$BBXE9+mCimz5GA>W{#9$C@&ze`Ng@v!VSUlFnm%(`=@NwDx;tEX=H-ws$&-63O}X^X?8&-Q-=g!cQR)K?M=+JKXjNw zwFD+PnS90z&rX=!%3U%?U$_a)%s*^n@*h#FMx8R)&nT@qLq;7S=_{E0iE+_>Wb zN_wE)OQQzfaubAFy$b0~9t#mjhA@n_W~&a;#n&W~vboRtwL|Vm*}7yjlNU#nULcuL z`J~snbI&>68cH?}wX$!%=c7S3lwJB>B{oMA&EMfZWOC z4-_1F!OCDFb2$;$$3?2xXT~|^IXAzx9^>Td8ZU9e3oz$k&Ouay1s?kjQarn;Ckf{e zD}h1w%CM`;2Fu-xR!6IZtkbp3BddbH*oa0?2WbjhC2mznLGUE7X3Ko^XnC}1b?{^o z{+x~h`qcr5&HkC4Q1)>5A})T}@bom)iqa0fptkO^QinkW059_34>CHqRNn1S z1L6_JkfKc6Pi?Wc6WTYD)k{idRG2&vwF=eV%D@|wtyb5C;U|4hswL68*(^G3KG8dv z$3ZgVTKLysSkJy+eKtCNL*ywFp;pm&Au1CzXm?Ec6vMgyx>|>Muq|MDW0YoN^QDM# zU_U4aKX*-E@J;uq~MY~XrE?vrTq8zO!bt%Wmt=IuCJ(Oco%P0pb zJRP1k3zENG%E6aqlmi)xauDNMAeMIODJK@?NWB)V#6~#^%kfX59FqZ}92)CV4l2YE z!30PZ<*@t$V4xi4PADhrQjW_hNA^3JJ>^hVloOSd6Xld+we?Vrnr2YFi_A++6;A#t zds`$e^Gjjtppuf#^xo%*oSL52x|aQk+nqc#xg_z9K8YG}CFqp5Lx0-In`(-#I9NKL zY5s*=h$R<7s<^noF8Gzm0!VT=o3L9O{H1qzVN?L6$ytM152_hSoV-mqMq1g@!!rui z*HHR7KQ&RMreWp}mwlzQb!Bgmu*2L$zStTic)yV)Xg+#caTlGkI!X;)AV;{2CM3%y z#cyuku;gwBKI*QOwR5~R{4A&*3SaSA$!r5y|uw z;dI2xeZeD9X2By>i43e;O-C;InSw_yuV z!JeOq7`>l~RH=y)KNDT0=|hr2Q_*ET^A18Ei4tU2_N3iPn&zUn_0L7G3|B`ceQ`Fb zy4!_&IeW5I=51kuSX0hMe~Rz~t!vUyv(e=0;Ll0W1O#e(CZIy7ghp50=}5q&q}s@9 z2Sln)9H&vhkjbUEoF^Q9DVIzYku{*5Qbq$_Z4?b4eJFmod!??P3gjD;e34g6RrU}9 zbqbidds{pvh}2H0AtICx{FA)i0Tm>umU|dGVPxN6)m(C8luIndQx=jJ zHgXDx!rpcf+Rue%x8+Oj=s1WHq1PrtXrY=Nvx%7*{Ue|DjSswo3uR4|?qkUSnphFU zOOQ+1P;+n)Y-8D}3)rm;u>BAOwX3oNPwU`eVi1x{Z6iXt^?4BQhR??mm19+Mif+_r zpTChdQY%vQYt5`5$r@`R@OYq@It6i|xfTv~6U5#Fx2Dy)jI$7=?qQsJb#G$hT2qfA zdR*L%6?aOIq+p6>B@f7r*D34y5pX&B3g7M6absXkVI`cFr8Gu=@-#Q8UnsbirD$*2 zS^fp?+8PB}q4dkV@n7KMQ+PqA2_#_K7Vv^!cQk1So>kzWiXM$`c~=oLJ|*}bpY86@vgd=&`I z&UrOYx0^45G9MVJxyV6&o>g;jj4iLC(NQi)A133*0 zqABros0DZ=ML%_2fa0wD66&H^11Y2@FGvu=HI_5T4mA2QiA<3o8`g8$eQxO48n9w5QEEfpSA;;5 zJ&8bL<-!Xvpo%VsYaYB=bRZRu0uOmwaYphqwlVv)7iJFn0&L!OEOSyw&tZv&RXCCo z3)nlbS1qSO06*SDEH+Fk8BH)RdE69&C#Mur3t43-ud@i1%PPFd*&NccjkLs73Nx5O zC$^A2ASXpyIkI)N>lyTXDQ?^*sqLls*K#Q?B~WUg*8{^;0**mnap8Ok9v2cEZ?$B& zBxO7|iz}}K>j&dZ4Jm$naFWBuc{+m=O+Yu4sc8}%fzn7@T{*q5C=M5p-pv9cdFzM) zq@^P;3Ye%txvw>Q#k1BKGqsKoU#GPrO#~RQTE8y+ER*nu5z;bG9-7MCMB!#x)`=Nv z?oz>U>GPnhQv8UMm!pifDLp9EAX-?~2`Nw4mOFA!fHt(-(t`q^4SNMQLd-lPRG8!n z9E-w>XH`S^3fNbpDHmkT!QSPP^Rsuk0ElFh=rb^j)926Q01-nUTqvvx*4T?ftLq(1 zWAD(C(I$!Fy+%cFVt33eZHiS{Chc7~lcUvKt8zWr7%ZTn?5iAbeVtcALFcV?{jx^7 zXPBJqz!F>~!sIGNhfCWW@<4|8UZz@PE`q*vym?^88Ki4uBEk{00nit`R8HPT|B`3> z={#iak*i9f%HnlLTa=~OCI}?xmqB>6mZr4sIgKZlw~gUDB;kF~8wRgFB7F!0(`)Vd zur~+$3)%|pn1=@P#zDj67I-cDKAR@+b~93wBy9!DLslk#h=gSZU=~h(GDNpT0468B zKfm=4yFt7U5EK4#Z>i>2(;hURqL%s~F)4k1asn815!6dwW}my2Df|N{79QjbiQySI z4cz3kP5@qM$#_?DXRGkq?`b`z54k`ynSh#bv3fEq0u4;g))k!#qCHNz(7h6aFJM~r zUG+{1dc-abTa^GnAsV3kV5BCtZU70LVrUfpgs~`jeybDu#R{YFqG`}1+(D1lpa|G} zr#a=+13(^7_z41#6bw_&xMj8G$N_qr{O^IFm6;bP`QNRh`Ujkx^3aBRUn$Qp{!N}S zqO)sm(t$oGqvQ)eL)qe=_}!e>P*(2uGqw|wI%OCT^3C%)#sGDKaXjQ+xZyH|I)qh+ z{8bFSd7ekR@``oEWn?f3Y2Ye2Fo&Ar1A<=1umuMA2Kv)YmccrJ*WAjbIQX(>Rp_G= z%7=`@xSwA~f2aBNXW~}^XBXzzf7IYgGKLG-b`u#=q1-WmANrNtP?W5dT${!Hu0Ug7 z04B1Q{($aKsDUy#jD7vY({e^6c~rPaA@Izfmo^N;tH9o~y!p#{DI}P@yw7>72Vv#c z%Q0xo`XfTocVF5peMC1>uhBVpsGGrybUAiu$I*2Xm5hpo(r(p5txERG=k!wMzZbmD ztO_kR8aQ|ncWSB{5!69290RLqn3y}V3^5+UxlT*Ai&+nGR#*=hDg?>PnMXJ_b`H5w zg0gVy{JaCOyoFn~CCO!#i0=_)G2G1W+un{4lpT}ZpgY+&=2x$h$=k=2c6Uuuf-`0pYKfy^hKPI9`cuSu2)VWfH(^^pCHtL zQ!zphA1Ft5fX9FdK196a5uMl!z^yNvj@~Gl+Ch+NO_vJ>nu%42C_CqTRKo9=jUhP? zS|kW9I1osPvkfl50=VQO@M5s_7osUuBylM&#%md7t?c}F0jaN3B-+!m(7vkf9!d}bOPG2PXF{+$+IHPoAV%+|xqM%;(JWmEm_*aM@T0jc`}KEk z>PB2biY5wGU92^^-gwOa0-FE-k;u>4usd7Y7RExceG|kzf1>=|R%~zE<3#znUM=9w zknjA#{SIpZ*(#10SWsO*js-$5t}x~?0i^SXNaQHFVTc)>Nt_81(Q)6o$i5xOa>-@H zrO9Q8KvXbtM8KTlCyNOYp1L^GA!#QVQ|!>dYNQhs~$k!W5( zfQzv|^`4!kEIYp?z-5?LE6C+o&5$0VJHLrtT0-)GHg&C%b@k~|SuKt4+&6O{^RGhd zLIfW-Y$NKmLP!}?sG7Rsrzr0qr2mMfv%}Pk7xp0`5oBtla?4nEWOi75S+xxHpm!^S z;Uj{ll7ZG4dG^$e$vIR4@qDrgJW9*Nwh4HiqS-(>crE3}c-X~4_YObWHc zO%}hY8+1{?B&szA`6shOX9qdnH-=OFqiNuXExk9pf$BTQ4){HSB)V+;xB(_x?GrO+ zXYI%VM7XM=*?QJI4lSmNkdD?ilbu9Q`$|x6RHbx!+m?@us(#IjnA@UfUGpNg^#yF; zhDvaHhSI&O;I62h>VORO1-?eD;$ZmaPkk+;ju0TmVwE*S?K~zgqOJH@TfqgYyy{2U z@9!14QsyDwp~|y5ikI~Li=M6N=C7C9bgT|q1t!*{{bcGaf0Tf6iVqzs2E!;XQjw~j z&R!FGGA^kMa)of$N;6K(X_MXe8qx3?po{Bj74K4cX`Hv>?c(XU4MiUYnaMkod~cW; z=ZZ^r2H9#7p1Lu+Soc@H7ACZqI%v);A}B>XDifKBN|cjR%=bs!fn}Uu9TlRkNt)R+ zfdQD*lJTa)uPr6Sbr}GEpp00f{JM_{ha0KZs|ykJzzI4_B2xcX_$QXFm3JA5KyD3} zBjlm5%VAvp1bu_cVe;089ekrvNwm)2MR&(ML#$0aD^9hK3}SD#`^7r`?d}w7GFbfL33P6qG2(R$_iNNBio-bP~%?M zXzC?)BDi4}V#c0ocaX+=^=&uNBassH1u2Q5L_>(8#ae>_Vj; zV8SLGq{%5i;$zq}+>nBh{}Ntw4v-{1K*}vUJd$4zrNi7DkX?j&mz#tLYTxdA3JqP0AfjslZb zx+ra@2c`#QSHJaNFyTZQE@RUHRfELvw9cr4sY4|Mogt`iRz_Urj?F8^St6a-qRWS< z6`mS`DzUvJE+v}Kc6D(o>e3+r-8<@(l8$CO-$KK-8a9%hozuaHHZ;WAX3Nj?b>Xsh>uxKq|T+xUo;;Eia#2PYK$G?*W|2H)e#w~{I41sU49I%xp zFk&liYOzSjWG_RM65>WGm2{DWn+MnR9$bP;dmJd50s^30G+`5MkR7op9b#2c9Yk`^ zl1p6z225zD2?jc7#MmPwT#4mN#(FHpHLi3>#r%Lki3eB@5NwF8?DjVUJ3F^wk?A{< zU+Dqq0Wb^1Q8##sRd}!{&0$4p!YYEZ2Jcy=qlI|!iAzP2x?3Wsz%R`bCGfsb!X$K= zNYff^rb}Vr7DOs@2Eb=`-y_2SYW zLq1yJR3KP}b(R)4W;jL^9$zYlTw04F#|$0#I>%%FX1JN*X_( zgGM?PLC69-%sH_&yXZ#@;#Wi7Cg#i@vOh{4h!b)j&sn0ln(&O|Ab*hS7w$ z9>v6_z%lOVN}>x9)mn42gi+t5mg5z70D@$~;?hAFB{x9iJeXcf_!fdeyI|P(AXU&O zr?!ge8NUYO*R z&>$n}B7-Sg0px3i)pLZF*l^H7Va651tX&Y!gxgDNxM^KEpYiOM-*}R z#$Zo->|gnly*AhvrOCp2=;Qv*#Nra0zts8XV!@qfH33A_pXBdi-(vCl*_Im>*!q;b z*1uLo%1zhvy`(Y;2x9U9%+gB`1Nk^sY)q{2HP*PD&LG8C@8+OXhcEJC&X#@Lq<-bHl1FIJg_6(Vp%IabK39lr2t~*W7peRyhJ>wZ z5m3U;uov$Pk~*23Yj?Q627*j!s)`xk+ax(z7nPkg zO!?Amc}f81%3hHSSfDCQo(El3xh%2(G`1IJ>4Sm?rnV%ZLF85s5dndbiU~a|ye1~A zOeS6q5co9N6((JXSY>Cy+rC(Ar%CKuxEBfw7X}eACrSvI!j*{yk1M2ymjIvR0~!03 zHg4*r4KI!6(}o11XhuUK0(2gdgTFFz=^dSVt2sxsXZ81!3w1C;>U?BzeCPheu~qg^ zaok&YA8`C6jD3My>Vk=PqXpKECFIj6S5G4J66{srSZ}R1!7OfIC5nups2ZQX7Bfgx zA#`ID1(-CXYL^8^!>(-8^L_=CDanr@xkZyOK@LIkg{I#Dw=x(V2)yiB87wwuPY~k& zvCMLVw3Ykyp&U3`r_gl(M~<0YP4CC6+t>czm6ZK|!z0rFyVT=7_5Yb3{HS(5a!2AR`ApMf zC{DdR!j!uvnh}@AQn`%0n3brKHHC9eB3)_<5P8-DHEP1V8^;nd{-IU+DZbew_bs|q z44K5t$euzbMHuscWreQt8#iOTF&zCYypi~%PLy?yl5-(jdDH-V53+9uN8$R5vLA4j zSNvYC5Nq~ju6Q@HUvZUNxFDxv<+O-1bRst0SU-|aH}U=XRNEn;zJ;hhn(o?6ws8h{ z*g4Ucjk9|aiU|&+=-GmNk7HN#SPW15__&Jdg1({Qfj+J zcep5z7zc=e8N1=c)z3Zl1rA5zq9;- zgty%0IF6*S#%0pZaqd;X>unCQ_YD|yFJCXQKcnDc1lnW-M z6WpO`B>xVIRMJi$l+xrWM&c~62&6$5gi=CS<4T@wrF3_Jz?F?!M1d)SWH+&JB~0}p z=i>>wn+xH3HkLH4ZX@(jNh1h;F(l+NtSAdfBC-RTQ6uor81rlv`UUvOyjPT10->%{ zyihOYF}uq}B4B5qA?n>`{Vz9dbh7e82~UUD8SucP$rpKIm&DrWnUFF>octXZY3UZY z5*#^T5yYy~HWH~2+pn$An!J!EQI*SbACZgLz_fLTr&RzN;Bhx;AkVv5fIV0B z;1*5dwiO65@#urk=EMgBzRMmW_%3?{z;{+u3PdlsEp)G!_w zE_1q6$YlaTm2T2Y>FTZ|XmhF6f}`G4dJn$&mB2P4!;+pP`ASOEnHxv}Wk_C2kMc`?_xCDejysR1H=rO&Ml2D2mNf0Le<>v$P);Jx|O5A;6%dVTK|p~rcyuRh2&-K4eJ zaoKMIiw4bBNX-bdCH<`e-QGSe?teSKPxsF66S9CwmWfEMnH=D1j&%I%eRYjXv-SC^ z^y;=f^@_Y@zpR|~koKAwUM{+oVwmj`PN9Y5gN?jUx>dP^Dnk zTzdlx^>KL|3=e70+B{Fs+`-9L=kK(0k(q6AOR6vM8v^egA@Nzlvpiv18-m1*2#d`d ze#W2Y4m0nSXwB5xKkGTSz?KJ90~2OO8+Pg$rYSRNuI(_{shNBO$>V5{?&Guj+)eb* z&Wtv(i%3qc3m?o--nk!!!VZtnTXO1E^4&`7^6vI!uU_{66Rps@e+xgR7=pM!ty*C- zNrQs7w6v==Ecv75Dkq&-FnN+$CHC80=O4X~Lk8s>tql69B;Pejbl7+Z+L#H}ApD4l z0%O{Hz-qEw5i6oey`>yN^bR5$)wmBV&ea;_!ksGT67E#3#OB|Fz_?UV9A4T*%h?Ob zPb-~BR7zbPw(!dH&QebDQMCT#TLg#kPQhht()xLklW;`~aV$|7X2qr>uz&i5_?#66@h{Ul%dNR!U;z|L5z7a-a}*4XD?+Qt?9PY;yG31*5y=I0K1$jv9>2p)p7Y+WipC=5VO*I!iUd{7wthX^hgAW0%U~X zO;9L+5}Uoliv~s0M#+8=4f`^9Q~tx`gZp9dALvq;q>CpbmU70KT$zH z73c>LMB_f@DU0S%H=vcH#;cH#418750Yu3Dk5CWHLkO*ccBAAQO@B)cvzv{>&?aWb znfW=`(m~HQJ*f;Tj7MnzaPE7}6$UmhwzCXRKl8 zW#D4BJ)_@Hj5$p@P4@I0l*%VuoFs;njx*uHwh15Mb`^|ye>0^1ma+5mac1+ zmc7YRY+e(|1?*ir@_{O3&`!&i9*L@^wHLC=LaBJIQcL6Gk^|hZH4{>(4#;>He=C2_ zk@XA=deFLgU@j?(Qeep)0aRrn89rkt*`<*r$9V2U)(UnYh;gN?R+GmzZ7f8G?Z5&n zCPyfL?OQ$xte4tysnNC(bn?lt^^-=VQ{8NJEYO^P z)p(;E?5pHyHgm+>QTo#cH1x`0A+gAxVM?p^H zQ2d4_ON)97#T6^3Ublh&h~Hpn$&F}Da#z>=air|eO+E~HNKu3^+bt+ehc>`aRX9*c zfZJqySV)kyGls}{sT~Cm>?Yh{-S?^`%>GQq%Y^kkFqRhP3`ptf;7_PATpn;hR7j;} z=d9kiJkX&WDr?~s(r@Vt#7s2=zQ7&Y4sA>ldMJrCpz@xR86$d40S;$jevM=w;l9De zSw3SaIF5C}h7e1O!PE#shYJFgZ}%KS8V1SJxFEL><7)CLdSXRMyNL+PR0iTPm7ynq zlXnw{5>4m)QKyr4B|Z=VN0$vIPWrh`cszW&|zV6Zpj% znG@^`%j;Be<>R?fS0oI@ME2bv)q)=Q73tQKvryDcA<%>WCq0qb$vnK{Ko0!+LXOLB z*I_I=RiH?b7jIH0`HF};T5G^|Q_Y+QlYA1%oV+1MT-wA+=bvVMX8}eEl2iNwT+1+w zW<9YoW|3x`Tx#Aqpo|gKB~}SXdPK3GoaQ zYxPF6)gBleVk81J>ZnW3=UgaJf%dfEAJhbs}pNato!~ z7wSZomF&7pK1P@r`sx4*Fo09|k0w(IGq2cQ`qG`Uw(gNmYlmDEL}8ygS;l-;Ix~zY zdOn8Y(q$!42rFHpuuxLuwA6KlrV%eJOM?>z#08xJKTr^Kunm+OJ_ptvs4)RYYG@2e zK2Y(DBdAHy=!WPh9fVSiZ?ESBjI5cqlb>j$U_SfqMU1MNHj;~~mXf4HrJyjuQGN@? z>V-SU?jJWS-9pJ68uFUDN(o2th)OgguAk95UYOH0q zm(+Nu(V(0NsiRV(3MV@LE zT;CBEJ=I2tGE+UFT1j1G?I={sC4p+Ww24@j0M_^ZMA1XK1mnyvqUhnQD%M3(d5Y#{ ztTWQ3XpNz>h`dnrXim{sRXIf?zC~y*9q|;61U=_tXs#(ckUT}Z?A&unX{AF2MZ4@` zrL@z*Zpw9+k}?7rU+k&gWtaIjL$sn@Hz`jtDPX;y}+GJqTL0b=vCHTIHpA33g0$HKS zKd0|DXy?h}h3C=!9S`h6#|zQlaB6DK9_g=!q+duqDP-|H^<;m^;#@s>#ALClCx^D$fAmPv-`yqs zJ>KX~DzK+NtugI`GAy;?KOg<&8blBMeOB@>LH?arXb1DPZ7Es%Ug&Ahv=@4!Kz1xIJn72EE*}GQ*X-I-+Kk0>X-ieSEme^%#rfp9 zEme^%CHHCW0nlzI{FL&fv-MJ5bsSw>*x-vEZ#rbGxwqdR(C*H?<_}mz-X7~|0e=7y z#L^)-)Z6<58pYg;`QfRsT2Nt>-Sctz40`+?@_)kT3>~T(WD-xmCl&=fT`ja&qCxGOxuizJS-F z(bFgSVzhB?*FNRnFe@=p^O&d!6N}BCV&?DpBf&8G@PC`2tGRzv0D`VucGg7YQ_$=9(KS{2s_kz*rBG+Ll`^gTaH>#SN|pF7GQ^(X9tNw zV~1L~TmUn4yjMY*I-8BD(le%tjR|YG zTmq?JRQNGf{Fs^=lV;Hc#)QX3EUt;x##AZCB)QeqsrKXuu4_;eEgc15%MGo)s~;!| z>f1ohrh8OB0CTB+JT8R-0PU_yhhKKsZw}l+!=R?R`3~Hcw2fxUMc*jnq7^Qi_=Xmm z_!?aSWfR}tEq#6Y6A8(3VYK2c1_ zl+uhDC1^B_bdg_iX1I170f)oTTsqrn()*^=o&=51c1$*{QF>&uM(g9bw#b?@d9=*z z&y}&o@MU5t)}>i4_6x~}YR2_@&4Yk9ibY|vw$=9Fkd#8p1D2FSUfDwOAN4FG=acNi zd&~7{Wm^)m1tNV5Li$mz1Xm4`!Gx+&k6;j^T> z5IT~Y^Ah!G_jCHANvWDnA2g-z+d`4$)TKtLTJ`Cr%H8<4|C70R za;ITQV;uQaEGc&Nklia+zt5}ek8ib?=ESvV@5&Y8Ov+VZTklc1O0s)O;yTcXt1JAL zm1O3Xt7Ku}rxWeuM;c$&d+tqLbF@y?VcM3(Rrkht-5cYYX{B7%WsK|lQ>Yp8N7zwP zW4gqg@x_HG8iX#RImjzl=-_@KoSU&uPYjFv7M-Q!Md}sSpR{{#q3017I84-+TK4x+ zn|jS6sZCNmc3tLgY9Kw!{7pZQrUsIl&q@PnY9J$iAX2}iddof1?u_U95c_bD!iLYJmOmBMUk4yi1P8!XX4C%CDs)1TTq@PM@g-=DOO7N;aS40u z$Cu#VVM|uRVOc;vKbCHk5sgv{Q>EGy`Q+Xyt+mJ{m<}wDg3hw5GQMJ#4iI(NY4l;E z-&NSNOea?%HI&#`z)hGh(M8$6y~1Y80W{MtHgfScKt07Qnm4VnN7)xuh(5^@d#M&u z@ZLq)&wl}-Mx;(`ER_Cb$ICQ}vL7lGDVm2EPg=;c@L zp4Uq@Y490PGTfKD=&P!;b7Bb@Imyg>z&HY#8#U{ZPt*9v0oIcK9A;q#`*q zc4-Gjrf+0;iU$FAwAi7Fr*Nx=bmn&6(7|fxVA{JN?zRTF6`q(~$qZmaMkotn0 z_D=FKp4@@ZFb6`T$AQ3k;y6VbJr0CM+Q=OU4NzP-MMNhHC{PXWKoBXJ1EEnm5Ig~c zMzM}$7?iU6>06cr!pj>ngC2&1{qB*z)Y3h&JsmB>kgI61MHuoZ1fa;&(age-eMo2N zL^T0g&Et=4!5-S>SjEz8tY%9kj6BN(0dLG~H2*14#yUB&x;(Ith_%T@)&okj(H{sW z!1JN49Pljze5(iWoL~sxTRnhprL7$BEf08GBbU%!0PuJolu*{vmJMm%OXaM)&`+&A5qsuLq~v$jO%Y<-cTb&U~wegOCfWW?!5;zt6!rhqT%UJW}*`eMx_djsE1m z@g}pkWqv_q3als|)3JyW9uvPrzXcj42cs@DyrS>dYKddc1`5N6L zxUr$8L5;WCiykS$xvwM~eXPCMGV=$*`Mn^VwAJR2>|OU=EgbUP^uD^5cnuERqpz;Q zS11atiukRZaQ49w{NMvk6+h)2J+}PWALv|0IOpr0`K~KmJ3V_;dUjpex+e$YO9T}G zXA3MyXx9~)KKeG?8odEO4=rK=ktd%<5kHmIpUjEgX6w5QZzK|wV> z^l?=6`C$vWRpGMpUW*M;L+<4(uwBozlbBp^v&-&0)4z=XYawz08)DB3bR09D%l@u?KU_sXZd1acQ5!ZU|-#32~O@=_(gMf zFZhbd!X-Ebbm12|bGsL7W#c*rbio(4OTP#4WeLtZShxgUw}oG5oBo1r-~?Upg(R$< zaMun}s0?;a{wXXEBCwQL2N68J{|GM8W19lz3b|3yZ;4!Fe_fu^=KaJvCX@AZeK5!L zvx99FBS3?b4mY|wVE?0z5m(#M@}N@gLRa|Ea@&PYQTd%(r~9he2P_THWfyVQg+FnM zt`H33&unly^o)b_v-|8TTRMZ^t#->u;PeI^zRwX5oEF86mS1%+GtlsEEuH*qq722H#Ah>Jd@sN+9$p*Jii@x(Uh$acGHc}X7}Cgbe5pmC2r zQo`3sx?hk6F*>&ZZ1JasM^O~1k4UEB($;HTtPnTJiU*$TCx-toUj{QG@93LwHSj^aGwFXr zp~zZ+A9T8>-bZnn+% z2qcrqa*H745L7+l$bUu%CD8I8&C%FZc6s;sCC{-Im zw4REvPn&DgmvE{@DYKY1I24PcKXkY@7fru*(3(yIp&T5_Oca%!bR5UV{6ibIqDpq| zD27%fXBG9;CJU{}Got*HOLlCJ3^5Iyp-Zt6 z2)y3(=U_!s-k4@*efAvS*|W{1C`f$aTv)Qt2h$|CU97Ygt479`oXK2POy8|{blA8tAn;qK@Q_ z^bS)v^cW}a(5E~v)xlw!C~v?7)r@xq2|zl#F)mh|Ty`~S(m+0CP%h`z>nL)u1&&KfxbJa{>W!0G5L%FwUnlwBRXN@=g79Kr6aUE*fQ z-oz8%4$Pmf;R#q%Txx)C#8=-zcR3>10W)ZbbdZyTk}III33sg=eLFb(pO2}@8+UWn z=5eV!k*Ikm)Fid(I$f`S=|@STNVJw?XRlWh^>x1%Z6E4le4d?*0nz)9UfTL}jx+ek z>*kOiN5HeGE612oFFcvNp{5gG50+}7Ge3Bbo^5B1jzW|0!NsmXAUr&gorO+(x{%1o zb0mfy3_VEXU7TDaBw|I|xvV#YU7Vpt2(j6XJ!u?E;qe$2s;}ut*M+O2H37bH3Xi&j667UR9@_a%8F3w43#2Gp;FfzmE0OCl|-HWsGMMo zkuh?P$}4^L583nwHl@J-CMS1_<0*lHp;1P6wXq=3-0w*NF?LPG?R z@m7Y8A5ErCUrS{|Kz#7=_-$Eb&XNa?7e&H+vPT$*-cwtB*V?3AkLz1#`YN1w4pTKq z2mU`|n@;O65zQu7N69PdzHZT}dPW>WWp0-5=V7RMJ5|wjG&ok+t+oMBZn5&cIF7db zGkuP|sYKUZI=0-9jy9xxX%Ujgp=;U54s{(UaEm$LsL@ zBT7#@+`bZ2V=n|{8zG{#J0zF(iJ)}o6$Hh(@Cy=D-4j$hC#YmE1Vubcm!KMuR8CNB zPf!?=v&r=ZLDlD=HIWnXfJRRFWHgUD+Mki>mNRKWQvDevk7U@rH-A^eh?o2SWw5B zO{MTShFhlXHPV3gCvn_)KE$!+VbR9hdo`6uV`d?Ee!ohNi}#r}a!qA-6HDB$shH<< z50YbGHxo;)so2Ew;es||e1tgY{nQfoYbq9J`7kw+-OM$&OA|>R7QH;`vSeaE)63QS zOfS2gX|m@aOD5*YlD%oR`!dsfyr7qft}JowCnOfB_M7af04LmnA51TJeA{7_ln^J+OJ-* zi}qO^-K|$Fn?oIK=jv#_es_DY7mw+_c*Qxhv<@=7}20k3JavSTjb^asZEP4`NsjnrngvUCczLug` z7DcNjH?Z8Rtp3|_I+UO{n?>R(fdG*FOQnS7DnW6neqoe=!Td|iEIY@`0vgv+p-X;H zu@3>`zSOF?{EnSKpR%+s>bU_zXKfwQLVt?ySCW_2^PlmhQZhh{_JKXspifxRZw1Y> z66sn`DkF;&>lx}(Z$z`Wye$n&&FHIYB-(Q3-;^aDOeeLnmb^3ETX!B}<*d2tTZnrZ z>qD$uJ?Ddkd#U{Vh#*}b$>gJEZAm)LY(;TdCt8|+o44l^oV@hk<^?;kA_la0?6Pw> zhXM%_BzK4T33?YPg~f5A3%ZGyC{Zy%gjDA_6?q#F2U~mw6mo`&2<}nVScIfKG072cfkZWS1#LVLnh{ktioRwZ!?ieiZ;AGHm4?HL|sBK9H>i?fCZ=&7-nx(<{n) z@}%rL7sP}PQ=#KvB99&atsum=rPEUkFM$WBXPo(X$r;@65|s?@@glCz`%PVuXLDa! zXnYHHB2HQXI~FPwfp<RMq^;dC*~*%6c$k= z3hY#EVAl~P9%Ye7**r-D%5q6#XT@k}3!?0@-(8f&9?B1mmAWW<_zYFD4?>_|pX?@a zHnEb01Q4CMRVQof&5ZSt7A&{I80dFv-XLEtfp52l#u_xrjvs)jlxd9(N!+r!mKXYW!9g6*6 zK4i1Tg*yWUoDsBW=c%*MvpnMSUwR~(3XN!al={be%B{)mUh@&JlkpTSVTeaf#WvG6n^jWp|O6v z#aUkkYC4;#5>0xB>6rw_*oi`ZxW6r^3U7Qp9vDj&@exkN#uU<V^@5PM}xZW1PI+@iiwWX`X<>*Fz_W2vtdn;1(Yt5`5i3KunP?C&_(XOg7!j4NfUC-$4N@p;9ykGZJMj?s4_8^sRx`4WPAw3OO9Mc@m5<5 zFD^}9UTqy!>W@Yu$b>iZQX!MT#FSXY1nZNVnOBwdLNvnGCa)lw8v6c-{ZXFOkP6%o zLRVDyy~LyxRRTie)|G)iJ?%2$uwZCzkS(9q2ZgQjme^atqx4)_m`90ZqTjU8>jOBLiz=c{H{*`b#*-fwcaS8PVAn zLXEg>H{PBa2RyrNTw_z1W7=nb2=l$D6G3)SCq{%E{-qf;-z{K=OyB{w&3bTJ$d=C>WJFfdn=Kj zye_m?K#VN_;rvjrbAyBeLh^rCIXQ+duY5`e&hrIX29`6&yVfYhQNq4|ZH0)HX&}^nLZ>Q|i)= z1xC7{%^{tJbpjX|O_(C9*$!}&ojG=ZFliA}sFBD>Z%9^{u4_;QQc{46a_Lq&Le~&i zs6Wh#b;%X=Nl+5SD_xz)LV}@#76Or1lHHy?{o!u|?1!#-8b)*n$>pJFwSMFPTmM%E zjqw;3IBBK$^?Xw>NhTW%L55%x-MfQ$6nPWT{bDF^ zBD7ZB+c6E@rT zaxQzzB^nS6pudOljL#o@HAjfEY}guy%Y58DH-%WL5SF|P_@FVD4bKOvlxmpEU?R{c zlc$+h>lx)Nh|~lC^j#zvpy#|L?AX5H3fZL$Bv(OE5FL5Av}s(lZ3dy&zWN38PuW%d zPzCe%n3H}71v67+DVTql^ay5qkqc)3A{Wf|;-%-AVD>L^!OV-@3Ff;JkkliX?@D$R z%y0NlC7AC@9_=8Gzc}o-b0mVp
sE2}iRUHL;^`nX>D(1QX3BnRVQT89?5J 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 z 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𝔱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

NSp%kj?1EW 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�YXF6Mwz(OQ-gN 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

w(MV+p|BYXzNQ7s#V>RT-Tz)XZqtHhY%leB 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%0AVTbHg4(POt}( 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%0Dk?&M?^s+yA!w&+HIr-UE_{i1{Iu7srmN zg4cD@t+*5zw=8Gm?X8{pxFb+U+j@OXhwU-7pPrMgjTI~JsOzYlrjf zlusj1V{jS9x=!d*4bBP-MAX1x`h2kLU-fD*@Ebtk^YVoT1X{L$@p%E|j^r=gnsdhpE*Pv_ z^%HjkluH8<#)fjOpJd@n(oYj&jO3@$Alg70LzkavP#ae(=g4;ft(>DC)BB>IG!=xj zB0XT|kpZ6*2C2FEGK17v9#TNqAWw^di3if$67Ceqe||izL0}Zu@8QqPTaG7w2JE|Ty1o?tbX4s8o>ndZb2Ofzl^*NprREu3^%%@}VlQn) z`th7k2K-_eq~_-1lu)O)Kne#KVLWNEM}|q`Ns;_lj^_gU0^p|^Pdo-PlByTtsqyqJ zW87?L{di_M(-%D8eMqN82EN69JiDzN1^?AbUZ|CRJh8%7KY_gOr;R7A))caCOdiig z1}VsaF#it%$spoL!oDPZfskOB3DL#6 z)JREkspA z>Ub9E#drcf&ClNPJj+_iXv}&%J?7KmS&S!yaTvl_j3>|m)U+0oWfXE${p^lrF>ds8 z#_@y>O&-sTnW_27#5JMsvm4K`9!Sl#8D1A%>>W=qu%+ax+oLQy)*8_LJwQW;^=2=P*A-7i;2dW-&jFF!mWwtyiNe_teLe zVVgRh!dq;Ap2PeUr%@MYGmG)GiPUHP6sIQoF^lm8Z>P>r;cZDpW;H*Bx9k#THJnI5KTVPJMnd9j1<_ zR=<*Ko7H%VUX&}-Dbia5e4qI#JQ>w|IQ8*lQcoREzbXW*n-#tFD-%;<7V{H4>N}pA z_nB7qQy)+IIdwce7tTCUD`zpDDO)g&Cw#&z=q>cG&;0b9_o(R5sgEbqVd{ALRUvTU zvl>s$qq^Wei}9r1zT+vrITN37>f;H}r;ev)S6x(Xmg6}$?9^G$XEC09)ptC#5{!yM zp89w)si%&o_=IwmpVfH!od7d@7UK!tru|1$b1LhOCnhqIC;0seK`g**HgR(y#>G3=|^fAY(=i(Pk*JV86ynlPf@cy{-R zUY<}&$>xdMIiqJpb8)x;+jcBoLd1v<$`2ydE>?fYZrgxCb(wS;wHT(8bVxnlkv^=& ze2`+7mhD^wFvWM!&qcW1#KR=zEfpY;N|J0vE)pcXSdw2dGysZsMkz=MBXVtRmoPTI zgjD-af^16wQm2GFMe-lQI$qEqgBA^K@HMhOYv>MZ$Wr8|*6c-j#{@IWM3CgZbXn+f zra|G`WfDapI6bRq>gh%AceGdJFJzPMWvCs7QELn1L3@JqFBODdXkSvq8D%@q?&)BY zse?>dgklMhJ2SN4%&i@o;yXyHwS{-2%3~+4QFpY@rnzTrWf;!cfjFjp4gg-g15qWS zd7N5qMZK{!KbL&xB6m)GGj~u@d$~HQGLY7SPwf|h3#)ceZ+lh#5|pUt7jkYH8&%uq z=PSK7#ohG*1n6F=kT18(Q}Y+ej3LR-mf1p*uaKESlAj|(h$LSn^MoW{Epvn!P`)rn3Z#0 zxq_o9IvIy{;BF~k(S1v4XF5Eo)1)Q3UoX%ASfR3^^8VIj`tKgpJ2Q^COCk9;L!8ek zTQtHU6)%?Or{HHW5AJN`%7|_i59}aqJrp2&JAE z)s3_jri`S0QfAON)A7iX2~CM!C%*JmGBM|+92O^>$uVsegDh>8R4#HJw8%2(fJwda z8nlHZON$k{RZgkpBv*BH)Gf%p0Ypm5rcpk~{Qa`fIKWLQA~Yp}Xk@ zZqVK`*3cO;)HYo`F&aI*d1Ai93-!P{5;eY>Vn}1xoMV5Ag>3?Qd6jA^TQoBfL`fA? z$Q7xOX&vpCZ^Rp9%q}fpCy@_&hx&zcYv_~kT5#E7eV(V_Km(m~Gq^Wx%Dt)AIaf^Q zT+0VI&!8KM2Cnr6y&6z+_rZB}jGq=_C&#Ga77Vpz8%q!KGlCWh>l7E`oClYmjCOQ+ zD_R6}xvfK|op{v!1zP5viyYaP(J+yU7Ez8Hq}SHX9#pKC@0dfnPCEF(sG{MLErGq` z!>aIr56zlEcz}_Lpcw27C{Wg;JSq*eQ{H|>8E7q+F3V~PlQez6jn@uK1eNLPe7#Uc72a?STV|D3#x)d- zhmUK>aM=pF$;6Yh;aHI>bbX#)mk(Soh{^|u+>dae?NYCz*JVF3D1%jjbzD>{7zZb4 zX+h!7;ibqZjLtMd9c=Oj_xz3D@};ca98T46`^%Ki^WtlnyGNl@F$ROn6EowmGeo)t zx{T8V-RtJ#jo%Bl1b|eokvt$Zy^Bx*(!>(zL|VX6YF`gG;HZzwIB--EWn8`Pfg=-C za7+a~feo`h2&92c=7CHGY-K!UlARu=d@|L{{o7_V;QuAN8UlDi|GaGT^+%}taa~^Jl4tIyx-RF$E~lrKUbZEB2L^85qC+Mr z?w0GZvLvzb=VvAJZ>h`9@DWJ7w_cI6el8o6v58KRB|b=BSlh0m{XAaZ8AAQeb>N)V z6UpJ8N3F7$LD}mY=n&~m%d>;3728N>Id>tKC;Gk1es^&>hn0aJ6m04I=WhTIJvpey z%3w}R|GAa)YQQ#Q@w!LRTBl9Tw8dMkC$Ak%@<;BgH+^Ng+1VF!c9_85)Mw5_tnPT#7&4aRLyzfqFIO6r-eK$3qOW`4#7 zFDM$kGuFPRi$Yxlv3^WfK5Tivsxf})_X-zO{a#_Q-|rPIdma0x8T(=f&Q!o1Fq(Q6 z)1liJ>*Dl%>D$f0{@v7373!I;z~TPg#3G>IR}^+FoA4RCImD2`OitH9uF2_F@*q2$ zK24R!u|BVc`*$$w-$AZmn!Z4*1ztz9f7%WV_U{0O4bvAYPhWjIpv`)pzTx(4`d7Y{ ztRiq))3y>>!Sr9+t&RO&W&K+@+OL(qDY9MFQAlD_Q5v;*|N8m@Y_wlfe0{8yz;xRB zvi|jr_8TBys7_>Q8#zrUM*9`&zvLVT;)6+F+9DaYZ5VZ@Iyv&7p7786^~43&1A21E z39D_}pWUw~4D@|^!a;L-Ak7!rk%2T{fcq=OIdZaF&v_VD>dA2&%+nB}Vw0)ooC|EW z!ySp~$i5-ge;ZrZ*mx7{3Efj4!G|x*8?3Fdf$msu0xo{s6TJzCi^zJiA2Qb98^+wc zGuA{Ir+Q2Rd75)Go-FFd%iIyOc_5Bqy>TwU}Tw+nj*yXBtvxvHI^bXES~r~YY&LFB}*edV0!R=w9wS9yKr$_Hnz zoU0A`SFX1G(ce7y{uu!y%%^RypRR4SncG&Mxov|px2-W#+jQ8{VAtC$jg|+fMvc%7 zy>E-r9GJP$wV4}TpSjV4GdJ4i#}q6m8_ix*?R~>^jjqhx=z*CVU7NYl^_d%OleAx> zwb0P$tn_flT%g;u6N;YcTPOg>_h5b~zxdE7tDG}h>bPh&vKHi0o-((9 z78^c3$c-$s73Y`~n_1GK$uzb*`tY~xYYXtsIKwy+1~q1b&C1%-7``=9{5;MBUo%&v zu-H#i^GWFN^N7s8VLBmU;4a3e0Le*a*-41-^MmU)h^NzHBX}pac*X_uBqX-d#qlY# zjK#eF9I+;yK?WmdCpKxub@C(>a=HanWZmjq%Dh1?#aY2Ab4voDYPU0nbz?TCV5-S% zKTRf+q|{2N$m;^qKphz&if`+jQ+<0mU)MQp!e-^osGlxo0+D{&gaP?xsl;-`np-=I zF1ESN8|&-MvaDKEynz?hH%5MLmQ6?b=3#pyMWIhR?c(GSpE=(t?Go|F$~bB*;s+J4 z?4>-_OTyzMxZQCOAI0uS9K?LFJK7B%FM|^K9g1NJ6XbqFE|)FJ{I{ zh~s!A39h=yu{}xlI4t1hxhBXJSF0xYa@4eYBnU$Qd?U~7P(yOD?CW4Gd@;%tK63j$ zjpD)dP25^(r_sJOFV1lg_Wb_k$@vHcX$c+b4Bm`gISDx;91<#>`Hb>#KJPWa1g`ab z1cr!|&POP?fEOeA@W$3z5Kmq#BpWZ9orSz$|DzYMbLS&egt(rMQ1LWgjOLkMuqG-6 zEY$l&yqJ@Z>IFB^s|@g0B`)U0+$E%2pyjs>dL$9vp1iE(OgX`-_FU^kTNBLub9t&Mn)ZqOCJY+45p!ES6VN2F7sN9sc5>JS~a zE|k#`>p~gLtP5ongPiWS)&(HQ#&=^&Z9<|H#-SRz0A!?K8oe38@SHFT0~=eqo{(~Bl7HK#MGnK1upE_*gD&4o?~60Fdv<3 zT_~g6QR!t=I9S#j2)h9pLc5#+HtZ)aa4AP`kRN69+Y@p%95EN>tj*T)^xE ziOR;-Y1XQu3-!%Uc^;=U8Exb%DZsbkw>~M(0=;%II9{LKz)1 z&|9>w9t~KJINc$O5L%C$3%WwBP3u5iwJu@N$4<_=P`|o$x&&+L0w)>}4sC3mVXZ2< z&XpaC%mLSq4haEI^Fk3W6)7r+jju_6m@}wjR(3f4MxK{q3Qd~ z$gNl&g^4^rz#l@ivGoGf$BlbTxyI#uIk9>f(?!y?GA3UX17(bJ)p@mynRkjZ*5qB= zSC-EQ;uw7i8@O7_TH>q6mx7iYUw2I1oag5Dt>N2vF<&nx9Q16hIT$&elcTcPx*FV89G>oj!Y9e zUZ(B*+oFy=WoTa+I#7lVmZ9TiXy@M*-yT0ugm#vYJXnVIlrT76hW3=bJWz&?m!Sh? z`*xMJ9VtT7-{U3M0?1r=zn38e?ql3wL4y9954&w1)a-K&p;F+9qU|>>8<1NAX;HbBf zpij7wO6*KOEvsJPUYbYd8FUM`8>guGag4Wf*Z$oxtxRv&J8?X|b?3T>n{mxu5qq(^ ztNK04I(&`;f%9Y~;O-Yxuvl?V-A`b@K=N)`b;aC7NuB7^vDsSey>Ma&5h04l2ZIb} z8uop_OZqlt|_9yeJ2velk zJY%?o`{_5BPtG(>aBae_7<&jc>3%<^HiUPpR6IuG=`nWu^kP6atzk(NyH6_G3Ky@% z?u&}n^>45$q(j;tHORDT_Q;FeM&T7T`HYm3>7oGF65j4^>ut;UVOX>pdoA z`tXQ8{Nz|Oo1F8f%F>)Rr<|j>+droFs$zKZhj;4*{m~;-aTj4#0cRb%50xKs-)HRp zTG58e!5k`f2NX3R4k`MGqCcQ#*aNL~=|D}Eqbe2#7;&NKr1HVrw%aHq=9utwV%2J(fbjauD$lEIZ zN?_S)f$}6H5sI^;%CLG<_PCyFxw=PYk;~-j6Gt87Qgpn7UFi8fyaHb$1H3wyXw?l9 zT1^Q1F+%5AC?oV@La`enw8lbn2wgyk!g44>h3G{@Q`aPPp?|RivqzPDG0_1l`K5%g zT)WYw7#87cdCP^-uh~~)H@cTyM+E~)dWq$qf1?}0@QCXQNm@r=)^ks^>RU)()Fky7 zwIUoOi5Zr4YJ@t7OOpv6+?Pbc%L(zG%U%rtml92_AD382{rFFWAmM}@Aw1<-V^ZIk z%ShsTIc`#4uCT8JrB~QjzApp5FE6u~zTq@S4d0-T>uphfq$IF;u<87Peog*g`~e z#Fn(j6SFbPL4f2!`0W)U;AbtWazP9&d@QZm(2qHD1|> zo!34`vGefFMr>_+m11i#Nh7wdy;`w#*p?An-#%Bd^=-sesPlZsUzc52WN+2;oA8*z4K|sL=zr*C}>wd#PftZ@*Nr*SB*JMnecc zAkRUh-5?V?9`FG%cAz&fp8EGvS%wmSJ#oo^)`j@B#LwXGq7Z)_@zeRcFvNeG_!9nJ z65`hoU(Day5PvQ4Mf|M^@mCW+jlT;*d?WFN{GA`-R}o*p-+3Vp#&bY@e*WSRznu6y z{(ddQFCjk0-?<^ap7>n;R)_dH;&b?072@&$ILhBSA$}h5jK7s3zMA+5e=9TYcVMbh>iQX#8r`st?+XxOySjjE`=$4o}Wu$3a|BZDNNyYelCS6 zyxz~HFoiE+E(u4?%|50jswbE9nyCbi&I2b4n2uea$HLJ9rgKBQfa#nNFJL+v;ss2z z5HDal65<6+heN!8X)DAdU@XaUQ`>b~;9Ic_*m?5%zBFlaLLf1=dFrnq%sByQak_Wn z8%Ljc+0C61=@D9ZO}q!X%9M;c_+-)w^|PNn^RjCZzmdj`-}q@#+A~UHk$`k^ohhXnYHl3PICk9rY*dr)7pS6*1~ybcmr}$D?7c`lLdH% z4KQ-*sBUQxS||B1Apt+hTZ9C5^ofK7aP)M91nMLoA|xOq=q4oaCU(EL0E;k@G!N1$ zA?|Q+J3j~eW2aVjDWn@woP~6L#qCj=h4z)917+x789Gvij+ddGe^Y$Bs|@WaLOWBe ztEY}n!XjxK9bp`d1%lV0E5kRP(oBDr%1@&Wfu*q`Vos+)BMmM=`Ed1)1W|)VTISO* zoI)gLez%MpQ9eA&VdJI2Bi}-w4~OlHhX#?fB|eRtPBHY;V3G#ArEhcHeoC6D`4}># zEi>b+SG5M+fzKCU-KQ=afDe?RgJtMQ89H8uc9!4nDnon9(7qz1q4n5-!)BY8VLE!G zz%b1wpGODG(rl`E&xaVJ85V#7jqPF2shey)k8z&$f*z_^z`7iN#PR~D5T1I?qG-A9 zXfb@2$yp*S12p1t=ieyzghc%eRSRKC&6?beoAJHamy~r?#4eTT8En(%2jc}IkK59s z6&zWJvmXF<2vWK-IQDvF8TPH}_JP6B83_GPIHn_Rj*~X@lXB!SHYDRhnww0Ebouce^!e*-0L_F~wD4~|a#Aar0Cr?k|d(1E&J;LEuasHnrC;uX3 ztHag-E~h1mK{`jqcuT5J=R@H3eU3}9RL20EV*ZELRAjq`aN3T@tNWn}h*qG}eQ{?v z;M2Vt+k2t;8umSq7NUDX^ll%$J4AQ;=Y2bw^Lzx$PkSaX)5IT(*%)ZPmJ9@m2V?m|<7EO1aT+YcQ|hw#u!UjuKCT2YY70Wb zF(rr-n;#O6D#3JMA>j!nh<7XakRwVEvsN%7hm|1itl&frDM9R6!HPVt1ooDB!HXOu z!95;t;`d+y`c|M>^vWD>V)m?~HozTT(>*3xsPGG_1L+bWd$bzoB4ivJl1w0887-A* z?8@j2V8!Efcsd@7WOTJMS}fnxE2AZh6ORROaXc0>nmkTpuz1X6EP0GEggoXkay;g< zbK^0GapN({aPi0(B_1sXhsQ8u!efLX<}t(uhev~*4G*0TRlOC*~{>#u!-T3wpj^8u2@l5MiLX~nRMFh>9;6|Sm=f=M(f$2Eak3=EqU%Te%pu| z+(Ny}0r%1z=2@-ttyXAesFjJq9T(IpQOFjqIZ>^nzE%i17f?_u=kItoVzmyG zwSwzhZ$PbF9L?*N)mklUWom)M4Xd?jwN}bnp))Y{7^Q$H@C9{_@$%pfF+DQR!RvB$ zV!G*z#}dEa&izJvncrcL`>pi~a0XNo857oZ=NI%u+#$4%P;Q|iLgEfFgCHdCFy<_o z=LIR0y%A`$J~$*Xc>|Y7#?NSmF@`vA&BnGr4r^ z9_6-bFhh))CRFMc-3Sly%2wizKUi=-2g}frBBam7GKiJGLPUe-WlE$gKtw-u05(lO zG#d!&r+%INQ}(5oT}LYwxZ*n5|1`dt#6#0?|FTz!CTcf#68QbAB#gnrMe#K7|HSKx zS1eBNu$fW3YH|98agE{w7H76%Wuth_;!ISGYZR|roXLqzjpBnAX9{9Uqxg`;nSI#L zDBiI6AV6jir4I=7u%R6m`%aX9~5_J zO#G2Dbi54hlnTnT_+@BM8QNEd4wRvTW#~u|YD9)2T522rG8UgU4Y-9YKfgZ%7VH)< zi#q6;A#XBFG9XqusQmt;%%Dh9SnW&-dGw)@zp{y@@RIj5W)*3i-GK# zv?`D~=8dGX4(fQ!F);G*uX@A!s7R;mGE5Uf8270QWc+d#k_p-d+a!Y{@|pqB3vK0_ zBMT*p!W70Q;4H%GEEAB6p!^Qes#)+9d3(Q8u}U`^AAV$bwLpqyGh?y@o!|jzBUqYf zp4BKsSKkDD8uT5x0r&77SKt6JD1gy#cWfR_^f3LPxw2jR&aOGLMeX1LQ3NKcBJa%hU<>UuG#7D*rHA)qr+U<(Q(r=sP9q2*@egaas*i!)Gbrj>h+l{;6R!3Qvf`ve5AK&*`RzM@l> z-fhD<*o)8+Z{I|zp=pchh!BX5)G3TTf$W=nCuA^#<7?k^`T`du<0g$x(e%Q&2B<9s z=vERAcdeaP)+%G&M}_>SnRSp)fQ7rcgD)S9dVE4}xHlu6vOL`utuiAU@Jo}OI_Rky zn$v?8Lm}|v>{>QW26A(Q%??sFO&Xn|fg*Vsa75m4vo*i8@2Llh zJ{)ibgEVi=)G957;H2`jjG5T5jEOm%Y|YfQbP|(TEpv)dT;MC?&KX%V$=u3YQ(;%- ztLK6mHQLv$t*%(prmUG-X3f+xYo?)zr@b{(vn*ZwL?e_w5}qxyW|Ga663lkXiuXKE zw|~E~W-6_K{(o%E^q;*_Rl1W@G92~_5+#~*lSJG+>Jx21vLCa@X8YmgjES!C;1aMZ z_~k!f^BeR8jmBGJf6vQ)Zn>q!vzkz_1l%AYkun4>2bHb_moai{F7_=&##bm4ntC7k;LG@$LQz5L0~pxi1ElT( zw1=Z|NOx$Z3fP7ew1i73CuagZe6EUnWI*_KC`Cvn@bpR4JNPg}Mj61KBon?@n~nN4@# zK{1-+VXlFycJ#bv(|Yi;`( z0xL<)a36M~#Rx6Dam$tqfSz|}g#@dzIa~*ewsE<)WU0ys#hfS=@xqBx5f{mVl!W|= zSth!r?N}RhYu89Y^onLe^VGc@P$w%QRHC9p>3$}8`f_%HLe-=3b^D>4;K<8O^~tbH zUZla{3pMq3_;`PA*Be7C^qRRCymGnwKNZH;&|XwjZUKZUog|nM@e!gneFp(DKX@YN z-l>-dKcJT{C-7M+B-v3GrMkNnlHT%QmMpj>xtW3K=Mo8F!4#)Rpd$7fG$i7TX5kbG zfw?(FvSmP~8?+pGl;z>zB8ZO_iS{H4AnWH>ejDUQq3aZBjC_{(1~8!~2lZGPHm9fi z+=_oS)MLit=M}{p58Q1)w|J}d#MVhjVf~rz743X2@`M>{o?q0wZCa;Dx;xl33)7Xa zTQjI*x>uZS>i3E-uF-Ng{d+49Id}l~_Gz6WsZ~(z>8oZD?DtA;R{MO_*C~<>pqwJj z*kHT;Q)Ta*)+v%2+{d+wMzC*RbSGHf2KVhtU#Cdc7db_mu`j0;z`rBb5;+|`b`r=Vvr%1?z z`?bRQ zUJ9S|6eMB(9DH6_+9#9-B6myD%bENwfFPtJ_$8xXY+>nj}-kc+$c{k@s zyY<9561sMCj$}@eaE_$KRnC#LY+%{T?x2EGBzl$TkuFd6%MArjl-P^OGQNpJ=?Tn) z9y#AGmQ4#IsI+|H4Y?2XM_CW|s=@u$qcPSN2c`4=lm>V47f#yZ!t zglxrh^j+);JV_D6MmhxbSP##Y`XlkWb}>(3&-g*NA)wl`x)+DeD0|?eq#lyeUgzP> z(JqIJXe)N(OyQJZ1;<@J-Y zt)&D_L)lxEEQ!#w+BTQ{Nz~@X<@P{e$)BBzQh0Pb2E-np!Km6`7;#sqcTAv1Jw9gP zd`p+51vg%}I4!vGB3^LgK3;LV&1(D4lLDEr8z`g^Wn0wo$`&b)1zBBd4jRfs?+Pb~ ztPo_lQ(9MeYA$#vr)8HJ{~}GVuY6urC z2dr6Aq7D9ofEhr#se^VB(c#3)ZkLw3+g=)~tAcrFX7g%O2{T}%)|PR~S3g2L^;+mv zT~qktum!t0CXHk<0z)Zi0cF_UuGg)?((JL30Cjbf@IAI!-$3h_Rhyt0@=wm-1+BL? zh&*2SjChp_Fg-}Oh=HOAo0uvhuWVq?;|s#`vCJ$dmv^KnkHcV+H49KML)sG>Q0; z`FP#Fu9gKs>WIY>O93B)Z6$Z(G8(b~V5=BxD>HUR6-z?_7;G!$8nU_rQVzkN!`-$)+z&9(qw}%-u=sgALv*@u6-KSCHIFmpDfu zHeu}hll7uGCalGjido|G7D55kjS`Gl2`Oh5?W~$I+T^AOjWI2dD%ejp^{UbMPf@bo z|3OzU29PujEV5c~_A)}g zW78Nm&+R$*S)EzqsM#iWA7LGN)L9}(%y?)~gxmrXBkDf#HI`8WuiH;v1vxF(2=eRV zSf^FiQH|c4`F9_qik@>pP)!Xv_Zxg!F8~#F?<7p!92xMHPk+L<{PYo(Iq1HohdO?r z0*5Wpm$#pA&k5h@n@Gp{G_g4E*xSToDzc}EUr7TpddTXuZV6f;Kq7&UmbFzpbolQ3 zkj`nK4#mUs;q+?@aa~m$ z=yX-iak>GHXu82BxG}_;OV{K$rCZ%>Hr%-!opf`WLk%~VW0G#HS#P*`&053F=OCn8 z(5yDxLJl&zMIf#_qs>7@@oMz2aihy+p|tI1&(x6b-AHiY2Dm<_?vHJ@W^$Bw%a+E4 z(JDGlzo7`a1D;9l?gWMW+QdTyC33643LTWw{prflIhjS%sP5Mde`5~^&_hBO&Bb_qs)rhp-?X8{QeV?LsM%Pa8-mmDOGTRB>zgE=xYbSUgRMd*%1aIuVq^K3e zsazawmEY>Cd3{NBStJ}~a|7e0 zn@gPRO~rIix~c>^QDFtt8iv)X%ha z%-=aOIOWcf3M(>8Adh;dChBf?j-=Ub=#)r<9`mppN5~>pg>9g29D$P-QIk6BcFQW# zO;#=uK_o&s2r8gf>@EiVB_efax6h<)bQ&0ram-e`Lzp-{25c3x8%op$yRt;g@sM6p zqe?Q?qg_$0yw6x7EE~897J9-+je>!BTe!k&iGv0v@wF#z7qdsX5)mTU8aGEIl;uW5 z2$q(ehmbf%asZ7>d|C5+S*+M`4i{o}*&_{|=L>f&JS9d8Ft3L@hF#D}Z@=%7zNiR| z7a=9&WYTm=*E8-YcQ0eei%oO|6%1=aWwR`mahkCXp@7DRZP5)(pHe%--YaN_cq8o) z{R-M4IIvB?D%Gw_8z}8yQ!TJwg(7AQKxzwT;9H(T{?#4Zu&ymOTO!01u(})9W)JDf za=&3sSiInT{%^k-13YY2X`t>85(a{U53%@pG~(fTI?zeWyD_3uhEDrD>29>qAsb^L z*76xK4ggo@o;`HY)uCr&VILQTVbtu9k%suUY2JO0YlyG$Lwqd>OD;&R^h12P4KX4Z zt(59mJEh=a&2k*WhkjWPp-2o2(~$Y(4jlTdQV&I&vbT>3LFuCaS;;=u6h6Z8VX7`+ z0VL6HY%N(MJT4^h%k;i)s$r~k6BS9F1Z{W6Kf@*6g>H(d$U?DJt#-l!jr$5X$?+>% zV5A{}qrlDCpV>L*b;gb945~Lg&WM|w^d~V8~m_u~jV_Hd#m`8E;fo9Pio*dH$i!`7-2kq$?B8g?y zf^4@DVcrdakl%_fW6ND}$9U31axC5C?*0y-`ye}o?7cc$kUAD-rlZkex#-Y_t#QH& zt?k+SwZC}V|M;xm z^=KgDsNPaB?Jj!@KcEjvlb<~bDUkz!*tbZ(O1K1yD%RIFwBRdetUD|r!d;K6s&6fL z6?Ppt7*~rxQuZPKn9JFlhtq+0K%j!Qy0bN9A-!A`B?`zsmske@iaJ&yvEtgVY6)c- z(RL+;UR;U_-M)ngRo$Q@DMqo8cuWjs{|iL)_{Cn(=TOgw-lnInwMJSsM+21_Admx7G^L->Zh6g02PBLIXHldweZn5 z7FO+eQuQWb9OdG}dirjTEzwV=6OWdrSt_!jKBns9dz!*M-r3PIyZI^%TOy1K;$s)i z2N$0R`UaNNgXI$2x(igSx(2aMx`DgzXg6?Bb-ZGdiNip4!~T^OzMS633z^}K)g>2I zfYzXy9pfz9wEZ7soEXgaHX9pDK-j0=!4&}4_|gPWS}Qe#UT~&ryZNFdo$t{&NNkdQ zgdJ33U1C`|9w)$5^n%evWh1iC{qvp0!VNfVpcd<3RUKrWo+IISm0Q;?iDfwioS@6JHhDP#BrkNKUdaI zB!MoQZrM&E#N>qUNrO&s%uMenQ9R861(WO%>q${cyE&1b*EDTd z0lHmJPXGh!TQ3*}3=DNKPDnM8vkf@pu1Lq#9h5DX(@~7Zz=X@M2T*mFZxNJQ741={ z%XDcALCSsKVEr=x%r)22OyPu@7SP=%Pyr+^yaLT<%EJy<_`@h*JGZB)6>tD=aCtiM zM<4mt!}|ZU-`qlMR}s7VI@)S$VLCCyIih@U@5D3lt+F2HC=DH>Yp|dLuK*hc`~`jP z5w+Pa_YB>(jt{(oZhLs9hB;#$S_%YTr5ZF-Dh5FeoxId%P*O})4O!4A1$Z$Hi!Kag zf8klp(4_&or1jG6FQDcQ6`}H@Djx|_A~=nQD#f5fPsGBgJ{Py^2~}%idt852D^kmS zGY#LJR=GHdpxjYgVg$YuEbUDGyFK3Ak`H)lt7i*f0cs-)1Uwa@FKiF9MmuJ%_AXO; z0eK3bU~&!VEa8Aq0J2hiKh0-qrcl+l9_!6s6s-xsMVU3BXBU{P4aR6OR!FN*dU`J4 z`aI&Va=9@071uA;+F+wOIfsq2vR%Kpp)o1=r>YZ9MK1^3wJWwz#upWRg>b5Rui=w+ z?D^0=Oqr#>^KwAMGRkF|o$8e=i*6e{mLY#hj&eynwL?y?S`3-%_H;U$R3K95=Ot12 zR|K}@$>Ntt*(WMuh^D9Ac?A4R!4|SM; zUZ~p^vn`rb5`R(tju?2z^_UjTn9jJv-!A4lbu-Y7e}EWowObnlNlHHs<6?`RMwyYQ z0Jcv3dih3QSAxX99Ui4eW4oAOUS+6~B^^)BOzO&=WhrfBtdnlyh?#E=X0;$w) zw=VJ1!J`jFo6b(r2=g|&Tt(#ru z(EGi>YVA8K?%Y60q^?Ufd3p-cOj@1D0XcU#qNo{rli=M?vqpLN}$-V#jnw< zI$DxMab42Wi&6FV0KRF-dLY62E53$@E%iJDFVjhSU?I-j7Jgl~dKr;o;g>lQC-j(C zo*s1L_gE*oah4%1&Ja+5Dn6`}T*>Gq-jdb5vmgQ>KE8@+j`$na@Uzo}%-#ucjf&D- zuwWu>*rJ~LNf}P!CfU8s#&5%~bqR*&*qAWd%20%}{Y$r#6*tI!$t}3TG1512 zx$e>}+C~>E67w!H4u@-u=s>joB^rw zn&_>F+2{Z39Ma(iDh|GMYC2p&q~U-Fx;x7aF#EpMc}l}nNGHwiBZI5yYY1LZBy3*! zX?O1&J{8&NeyVNpq;Dm)EUN8pufw;Zb=_~-ZBP1CTwU>L#9-T=a3cLpQ2}e*_tal< zfyVHF3R!+gvUtpjTPAMVHV?bzD$}_3m1xXe;*IwSv;SU8X|(4&KERrPD%fn6V`#nsd`Yfi<_`gFyLoUUxbcWV0IoGuv`j2=O!o{z3d8HZ zV@{`nG+DuITC~lwj=_{5h>d_uZ=y9U^F~d$3|wKq1YP3=<&i2iN>O8@QZBg7$)GR4#IcwPMgI;I!*w|jJc~Fb>GLEokYM_*q{q>wF=a4 zt?u1@XykB~=k7cLr}Le;y2m^=gw#(3Np0iX+J#lM{|wkeZg9j*-&7jD$KZg}q1wcg zUwHJ3_uTQd4>InS@%_J|xK+r!tN)Bn?JJ1SP>TY+~(g+mRzltmHeSSA4pj zqSkNDc2FB}IYU{Vu5UB@6&tehZ7$iUz#HTDKHh=b1F_P1gAh#hMC;8vba)-EZDLeG z5_n&q$lja}?SMP_G*Pm0T<|^pY>_J9}BPmx!{q?&u7b z-%$ux5Zfz?rd)zMsG8d9J1BSuB{$}PQreK1k^oDKN~5s|$l{Rvo3}o!H^`=-kH<$D z@rH88fH}=RGY42p)zEmOG)zYDnDxv&aHvzoUPnYsvr}d_Rb~qHxZVGgyFX1s1HocZ z-7FCxTh8_XQ#*C?KCaS5;N21FAO1uKX-KNj5LHHLVRMZrUnN=-AgCOQ`n@lD4YKHK z?7pU`RMm|p`9zN6?BTJ-Z)t;|sOeWAi9#n6oqpM^iyT zNW)Jh`kLZ!b;8^2L1 zi&C)J_Hqg1$pvWti)P%i*_biJv7mt$>fRIBAohu+7vp@*RHB5w6&~2 zW3XPZHNQ$pKe%<&Ho{TvM0iXo4>>=)= z#zje7iUiC4sdws$Iwy%@SVbjJM1?6J*m&JNWY(qNk5)4O^*YE635WYF-GGZNVEnep(F}{=aR=~&=_^W4>?yP zMw||iOQKYw%S5t=00BEoi~%fj4cuo)1dbt60iE09CxLo}8EiqpC0s&SiIIhTBa#z1 zivNZ*Y`8mw#3p?;d3pj9M|boItk?1cXh~Uvxk)er)wayuj0M-9whDQ+ zR{IDvqstRR60;}~dGO^)JT9zrl`U?bI|>NhqHK?p9-Ix3R*&z-+LARHi>wxKG7oM{ zI~iqi+j2h$IYV$vf~1F=fZC6pwNyE&15W|ba5UvVS(N`>_3&eBVzY_>TKrlIy(-4D>5Cl9nY2B)N zbt2txhZvvib}##zG9DU@)#CnAYz^8-lt5Kz-@4w-4I_7tpIn`aj286Xug+fKfhoRT z-?lwWGi>51%we zw$euP3JU@<=$py(_yRnX%`tBc55=x)f`f;U z?qYKxZY!W-r4K4rduXJ#C!DmPphO@v8kzV#4jK(>dx4RD_)O%aB@FZvAef_1u!y)h z%u#KgSO*ruPexW6{jXBCZK^bK&;sqyt$eZ?syE(`#bw!VzZftSOvbuQerO*+k% z!`2Ps^nG*D>iK@tds00N#8(;5wckk0}Hzj=MBLKZxu>QeJ8_(+oyV1IW5)3hp>VazpWB($FJY1DGbe z5mf`7NLrYE1&XR=2{vC7E-ffTOd|@)96(f3X2ve$d%5<`d=LIfXv0UnIB%T*7y6ep z71&4(jMN(M{{MQ&GUOGghdi6mN*I)=&62Nu62wR_fthpfDdahVhBv#C>^jZfRmF%z zqm1>4#IJylO|_*N(UqhNBhq(Oy~Ihllc$Y)V$YExv-G11WEbX1K~^}$9LS2K6p)qk zcn4WoL5!Ts{9_69QiCCi1PIupWFH+vCJ?56GG*SA!!U87FtMXasPE-Ho1HSv7H1aG zb~<3@MrKp@|CF3FFcMU(ga3f^fliw`O&HR-Y~)Bzm?< zlqZdM1wi;gc-9qo`IQ&Z1&k`rjQF(^K118KKh>~R5W~@_cQH6ttsyk6`vw{z-;KV_ zdv4wT=t;Z(+{*t(e6sfcMF6jy6d7QG-Kel=JdX=}%Ylqv#;zm;zFopQ@Qo`&l=D3Q zSi#tfNXuql+z3A_Hf3+?K{>&9D%NS?AZN({Q3hxRVrN#=9EA_L#USPxoeGd{q1L)GpW&)`9UwgxMg$k1pJS zz=u$31Q&p3Br$u#@s--Zj*%(2sN!P*#S0vfOcZ4Kcu~Hn%Kf{GAwCpk4u2HNfN^WTT98H+Sq!56XKRd2W+!SNSsM}qpMxZsMI$sF33MJ z+`XY16IS|aG>;8BpRag7G!jzOfDbz&8BrlIRyR?vs7i!rT0U?hbV2e49@0+gei?;y zeb(!FuH~qo+ZMY!n71s*yh9Ybl^2{TZV&qP*%M3=YajOm0s?r2tmQ_gc3Ksi=y+2T=;n2O3-~pdiTfeTqm%ce zugHi{DQ|p&6pYQp(LYus-mXM;K6Ehqa!Awy!$lh`FTVYtI3`TOrVfHT_s*j2V8gqr zsQI%NeNb`Fem4Jmmi31pDA5MRei23#@7)$FwaSj~e0SV70MQ9v$D z5rVkQL$_9LYpgU&0%vmMSxd6Fa*V{lPYw55r!_06MA?wxLIP}l314K7tq9~{d3sg$ zb?j2rZVI)9d|cQ0@+bjwvr9lHwDh#MA@@#%O2o7Nlz;Y0HiO(NUR z=#>~5KJeZL{kGHHTZE8+{y`;ac$Sfc+RGDQj?Kh_9kw+C9+cM9HPc{LJ3}UIC{{DN zGGM17>?|&;Ezv|rSFvkM*7H^iI87MP4j73MdvthM_r%_!F)^4TS02e`ZP9KajG%ne zcoba_HC@Ce300zIVFPbieB`(~kSmA1^9WWBi|% z?hL*M=o+t2R8~V!ICt-d_|9A&NC>lr1;pqva{}s~{Rp=lQWw@x88d|<%{Y^ri|e28 z+e*!ihfpj?VXTT)TSYoiC;Gd#)0%iX-Y7{~ihD-J&BBE(->xvdP%}AMzX%~A&$&R7lz^)By0Jb*fLTr>g$rBBr!6LPw-~;NKNgXK1 zJ+9cB*($k*i*)xy5xN=_(^y9|LwG2}rY*L;6TXUSAWu)&n-n59l7=sgT1v3JiDhar zbe!q~2jLu>{iS+OJOwG-4v>Xq5UXb`)%(m~+|qI?A5$%ea?2=8b}LRe+!M?KKm_%M z%6uMI#_pT%0Db1Vo$sUT2U~o`hNH??Vw#{#s=br!)s9Gqd-!4XtY<$Mk?aen@j@QS z$d+_!ZjL|#99KoBUlf7AU?=&PO5d(cJ|CcpB?F3VR!mV;J53|A|7)dO0jTX7k`yD_ z6*q@$+S#ez;xMeAi=YBNbbKfNr+I~``2D}NCKdS}baNzgkgJ_~_LY!_Outb=zoP}8vuh~p5?%^FAV7S8SbZUGtl9D3!2qFtoh)r)ktyn}S;pAG4%ARSvH z#3uZ}b{Wz^V44Bxm|Ps%FZ#i$-FYR_VM|hi9;!AS(joc178>hu&YL#pcIqMEopy_P zO}t@fM5kIb<8yXXAeIDRzBOXV;~FM7esX|r)=s`q8+rY52$lY1l&V$d$P)!sAhub@wB5(=0$z7Y3TUz&v92P)dGcSy$x0o-BWj!zzPcRzekjsXFWTY` ze-}zBvQ9oYA^Td{B?pkCltny&mW#BftX?jL+$N5^E_wOlPU7XCR$s~)i16C`5@h*L z?Y%=JgMI@(gC%XlVq?J5SG6UL^5Qi*=&Pm$QR6I9T|=wCy*6H)bQyTCmOt?(x~m4y zob9P1+aHE41B1XU@_muEiZ*lK7>4p%mDmuVid7qEqxwoijfG0-rdCxUZ_MF$^?{Rp z**j1Q=mr)L2N;!cEI^w!0C?N8ba5W{4&Gkxi<06Vw`Ca*hdVp8Tc)hOxUQ?62O>B6Zb@F zj(gx#*fZPo@zcWOrqV@95oE$wuye7UuN2DE1zKZ%*psN0)YwtMV2IdTUoHcqIy!u+D)6hH+EmR7Nxpk(Nb*D6yu@nn(Sa#Qa%|vvMw0J62PDDUO+bdnK`;3K=#ByeXk;TkL z88Hrhu$ldDQwGhH=3!>*B#Q_n+5ydXjEwxuu7;WYNOW!Qs2v52zrd-zN3-9&j6bWX z{X4b(< zU5>yT7U*J?d-epydeg-fi=G@;X0z%XJ2isx6MRG&LD`QQVA85{y!Jd3lpjpN%~M%* zx&&njtImVJSc39Y?UYbcr~04Os$=DLk;I}WN0NV-hBZ-jIY>^uEX)N%@}pkVfQLT` zL-NUjA&G3dbor47#E&qwY`U<0(!5~SX(dcce#G2TD&00*_F87+amHdd- zU-*&ZQ!t~KYIXS$OAY);T=FC0LiULZv91d{Dw`yOWTyY3xRU+P6IWv8cJafaC&!O3 z_Qj9X@T1GH{-hT_PR_6vtOy*^B*GyJ9>15E6}Q?SJHndw(<#^?-s?ne)lw&8hx;@u z8eHa=L@oea{TGcGyBp6B;jnVMh+)x_BgSl2m#0q+MLv#X(^i-JP$*AA5-v}DPFQl% zJl7HDXT7>uxm_f&=*f}ff6szl-PW2dyZXi! z3qa3Cw3qOoj9op{Wmh%Nop`KYAisL7_52K*mD?RQi=KSgo;_1=YpX{}adM{MTg8l? z$`l;dgnmAmg6%Wl#Mo~E^x+r8%)XWiC| zDJN$SZfgYEzpXKa_HUPKv**AeoRs$8J_S`yh4vrqk`c)&9vS?FQjwj{6Ng~scCo~w zC&v;=;Ut~rC)(V&FZO2j=+!C`&QhG#^d7s8x3rS=`qTNBC2nN%a3zW32oapwdYD}? z28t5do8T-m2OpyMCcSVE9!0#3dY0TMCGPP2;60pYk^{hzs~2}_^wCjmK7f}% zwl(N$^+d+vp4x%va#u_*p?7%=Wv-;(D8}VlOnWN*$nZn!SYF%g?!Ao(`Qq~G z-VPTdilm}`yvfAGLI(;En0f}&Y$r{6YlCT9M3(E^yw-MxR(ky^P(^xw zQJksrh3JO{+=!HXKyFo>Nwb3!XfJm~Lk^BgOBoFIn-v`(_xbP`T_jTvX5>p~9UtmG z7;~yoppJKF;KxVy1&<3J=8PoD2Tq1iI+NN(D7oY|go^&15Q=&yBb21~Gb7af(z>`x zVY`oN+9tPTWI9F50AsHJE`-UAI(gFMM)io#6In}~FuBbDL-67$--cyMD=9e3NJD(740YL8m>#AkIi@ERrk( z#ZH71tfFWvwVSek&1NY6&7-p^{%TfuU@Mpet3T+fL!U0A7%D{-W=tuoatDDhwsj)A z;#75d#y#?VM$D1o)rM12YnLj`;~Ovwf`hcyIa;>)My?y8Shwe2LlfK)HAbwa z+o?1Q?NaC)Y9I^Ob!NgKLzNf|!GjF*!}z(zOSwr$0Np!Ly2AZ&mn&Gvgr@ zzx#J7p4?_rn!D}PmhGei%QZKW?ESbn4ZBf@6fh6=RwQEA0{+$;%Val25AC!xvoUrr z(K%m_u`wfZJw?)!y)K%CT( z>&lc1BMgybrZk_ipudTmzbU)hjyGezBCg2P_)X0E++D}8Ra#0GoIV`;3E}%mFuNrI zE*#@aJcDylN$=GV70o&KIC~Ew6NuLrFu3s}#;{e~t{+m)U+FNHb`Xurqhx)K^hFPH z`+YB0)yn1@(4?DIM3MW{Ew9j-H_ZvgosGj6gvkWMC};>a`9@#?VUh&0j#C&|MXBaH z$q1+hd8)5<(O&m)n&pa7#y zuU>cbqfJum4!oHfPjLV6xTX4bJWROP{lk1;g~~8#4774`GwvR19M)1=REEo8koHhi zI1E`L6#pn2>g<3BR4(jJH$#3s%x!ng#*0_jT4N;_Wp}rNM1{pv-a`yEBntpTP~u`V z8Wxngp&}~_?yeDm$nY=TOAZ zY2i8iZw zmIpxp6(DHDNdxb!MGdqwY*vjf=}?V~fWM}wEb8FYqCR=@qSSQ5e)v)2Q-ZCLM@6;S zM$rJpkgLs!+r9fiYjfh;oak<*^|GWO)a5+}fzGVbp0GtlqkCs&G-;6>AC=j^z(S! z!&3tv2vpDb%P$uV0U_liFD7I#<>?)An+;^nG|96sq(*WGk7Y;3E^Yj293|_g{^`Ik zbY=7K5>8w*?r|lKs{=KK{J%O6Nn^<*p-RKnS%TlJoftYGpmEIUK&5#11`_c6{07Cf zHXNlG9HteoAMzRbDA^kc3CY008@k($Afq5*&6s?7ENu_@l!l~aDkMkQNv9fm7b`)$BuxU#$RMk4 zhD|Y>-;#dWjFHKi;Ml1ugU|z_?iWcr_@nFrULF!M@!#19Y?O|Wg4gx|t80UTisQq^ zi2GJR)6mFKiX1~RljH2KhwY?5N5epQxay;t;(Q){Pr3~ic{W4lC`0jspr397ePe<^ zjCR$7L5r#tgsG1zMX;<&2b1+wJFqI|`Ww4hPGpTu*`Qh=5^YC037AJeHDs`v$RUgY zDm4eQ*eGil?39WOm(7rf%_t>hXn3l6J;noxu5O#=wK*jh$rd%2Ls)nCRu)oO93u+m z)Glrncn3Y>C$m%Jz#TEMEefUJ5wMcC-hsEu0iBpH<>K&+|6Ftmu(^ZJXdzSK4I@W7 zt|&WVjVHmTlLG0nLA+mh%R=wX7Q8Y-_s_pVYGwl1vOj%}Nd2+dAT`EtvqtJqV*YN- zZ-Lab;OBtUn7#e-BQ@JaZ&a7v1e(JUpiIZ!jzz>M$z&Wq^eY_qIQ{?(xxr_)g!@yo z!Evm$W{u+?hx|^$aa!yu&`IQpM`TD&b{knGb+ff4k9oz(vsy?VSz zIZ_1f;?-yMYBzxg6}Y!Z*;k}INZ@mNg_t7y8!Lyv=M^|Y;1dcQBk(}0@ri%;DLZJq zmfR5hyYgDQpDVAmZ#GjF8{CsmSyW*?yjH#7wYc4+XU5hu8ZddrBIOXP#bM+VSS=2Z ziPeIon#yWnZi`CYvs%3VC1JJXDNxeILC<*wp6XW{1-48=j^hK*alQHYY>=13Y$r$F zJ{yG};y}9xdj~UGFd2J6%v0YeaBA(Bf4#Ad0*6?p-zfYFsRL3Ud9F;3w{nr z%^~#vAV|$2_vw-PfnV{?p8Yu1dXDVJ1G7PD&Yhebsr&HG@52VQhyB1e>{O(l74yu2 zmj5u!^Edz9vGFbSS~&Bv?`@lL3gejxTITbM=0S;A0=HXY1vmLZ(NO9Q-j~Q2q~nO zFQV8rfg=vkyqt02CZCr}=DnN{lMF8>#578B!eI4ca!x7jg27V-KUFe#YDmC|msy4V zojrB8z|2hWpV%;uRd%xo>Nxyh+NC|4-NOIcjwQ@;gZPd@CTT8C9BveGf0=ssmz>3s z!BPdYK6m`RDEGqo7^EK9wCD&W=&jU7hmcp|h~u)QKQFxgkT9 z*!>;mL)o2nhQ}Or+hHCl{wPdF1pXLBp@`2-5kJ@7X3ua{lsq*xFN&KD8S9{G{gQ;L zvO$s7{M(hrHJImgb*848m6@H)Q4nj$`H{hhy2<)Hx)f!&E<;pK zey_kb!@V*1G35%Mg=USUjAj?=cyNJ&5Ln*kr0Y(yk6~Nej+FyL53(`58eGcb;&jU@ z=kg#m8ELAyci|nzPLc9rWO6A7mZFv%7h*?d-%0IG7Ou{X1aW|zn9dyQ&P|;`rJ`ci zwThMjcc)Xn=3oXn;b<)*to{+Vi&qG~yfxQ$HI=3dfM!M?3 zdKkZTRoZ06jsTP#f;KtmrDax*|Bt)3kCW>v?>z6lRn=YH)!n+1+j3(GxK*P}T0t5& z!B~ndGkv`R+iMe)8Ftq*%g)Ei@P{LLXTj03{=*3k7DmP*F<5|;IEi2tEHWlB!6Xi2 zhyViy9O5L-q9jft7>5XAg2))+fU)=cd!BP&s=E5kmM835ANPH!bI*CsbDsC}oO8S^ zd)#S1-38m-Zb!*WDethO8Yza_PVFZKziazK4`ol#kP#c7 zS{}91P-QnsKm753@&GsPU)Dw8jRIG?Yi6lMXKAf7p)$k}NGj^bA>(m*oZQ zNwjVZP6HQ4B!=V{I@j|F+g9o*LF2D)G~)5V!AOo|UaZ6Ea6Z*Tdt1C7@IcOG#ID@5 z<~emUd+nKDw46%pT0YyRknB6G@|GcD46Flx;9R=Wn5QAzL`8zY!t=^VP|IW5GtPEk z>yGDd?2bZO?C1}1`L?6oQDtTF*0;3Gw4)`t6zNAMyAy=XIYwxVswX^iI*OAH{Lob{ zh=ToE^2iQnU{dmgwS_k0;QPQ>iZ;i6nqwpNX&b?140miS?s zv11#sGX){zLx)E~#H^PLd2|dz7#m@cMW2@CVq#RZKsjJitu|s+8KJ(y`8Ia6Doca& zJ{%7j1Iv3X#z;`vaKCe4xWPevz?D#w9}jyzikfx{t~HI`cSab!k^QR~y?N%sZ1g^s z+UU)*Z6*Ny_Z~g=ID6Kk2T>M7yPLsykj-lQMyrO{Vw}q{`O`++SnnB^39b=do)aau>r4}WOA!W*-R z45`hA>z6|96XcznXkbU@^k_@Ry^ljzjAGzOQij;pnK5klbKqo+137$pO&kd9OLHIx zS&?MFH)rDyjp5j`9Js)L*Si#4f(y|Pmhw?y+zV<5D%`_beS_OK7Ui&>7+|$NMuWAG z$r{#v$r>c7Z6z+r+Q;Q94)dTS{i=p}n%$dim~HZzvr4-YOAFL#6R7z#$zRhXXtGS1 zo4q!qWBo%)T3RVoeb??YEL7R_;aRigVxcOmS3)%#7|A|#S3=c?qa4|LoAJbAhBXCc z44e7Ll380L8um!mQU;gyRIM{Fq%)rxLyy-Pdi1>b~vjddU$MZvmvv0Ud%6ab9?{`Pnu6}?2pH=;`BjB^<^Jk-ezurmKm1kRy z7bo0sdAu^Ie@lRFr;kl$Z9yw17a4BOj$}C6RT7<*aXPBDExB!{(I`_KxA_}d zcVe&M7rnDnQ%>T{yI~KXD)snQty59MEJLvaHs4|#S%|ylYq9hNzl+Mych}(X z@afgdG@XYtHG$cVr&OgnRnxThtFgwZI#W&D0hKCa%akO?WFOM^(R_5D_U0MH!4}6s zrajl$(j@c>bRAUhsB4wIvju8HIw**4l|!ikW5{qiUhAFEIybcEY=SX@6xG2)uOkUt zB*IHAHsvBWl~W8sYXi5Y$JXm^mg_TQJD1mW?cjv{T^4(4OA+L(4j01b%^yHMV@l&T zfhu-Y9-&3^w{GCV-ms5*_Y@$~8rcOk1r5r%q(wU{MKO+8z=LJ>hk*_)5j?^30scUs zyo!3Qe$wRKFw%@gnw%~rSCxfoS};wJLaw92IO*e4vX5pw$}=tEh|5Fs20kG0QGTK_ zH&C0W!SCmX$00{j@`-wVe+o^OIPIOw8rh|5Eb4Q@<0z!^`;zLkZZ;N$E!%~H*62#+ zUD@1WK**eTFzNgC-uEG(3K<2o#DDI%k+nN7%^&9C>j7hrPiT}2LSkVqPc@1e(H{LJ zp;RL2#d$J`a`Kt<>>OZ2);KZ%!&^X6RrCHf*ag=pfJCz1`z$oiR5))SRT zzaC`0x^A-GI%H>tEhp>$Zm6smJN3!>lZxP(a42NGPVyAWG3UOT42b#>7xi2giF%N& zSm$C<|L04K`XS#GqF!G~)NAn^wDB6MW`W78c_NI?Ut;Gb=>NvbU8Zug$(|tR=SnfZ zlY!>Dxjr%9-|QkWPnD&Z-%^VCou!zc>l5?+l@XGWm`9YCs?PggiFs6j#JYL}wO_@B zDpu7o6Y-1tCJ7Ho*CqV<0}}o+r*S0w{1OtLBh)x9M<>n76==XdIa$y>KenlSMKe9b zJd1paSJE2Uj>c7`&@WZMZj>)fIp5u&%VpiO_>RCBIRaV%Ug-slib5@1DP}z{eiVk~ zs9Xe{7-~1juLD3l0K!N)5W9|>O{=DHal&Zy;39M6_mp1 zwJQaEBD%e@R0_L!ffhpNTSCr4%!A?j?`sm6LUQn<{>5IKS;Nve{Bk5 zwyRU4j6stO(|tEj5LaR>iU*#4-HPp0G08CPhtgKt{5He$uQYuR77xX_2!~OA-ny#S{iArKC(KQm$rDDrN~WK&4XA z3s))}UTY4^PA-^m=X1etnd1VnZOhh)T!#BCM+cP(EDB!rooeT4ky0T}YnyMT??$6c zWal{7ovrUCvW?4X6lA>o9MdR7e}dD(U2s~4X%rT{r^OdwcOG3!fa=sU3s8Nn zQYy6o)#=h{32Wn*4^Vw~biiv_B0#lRs=BOB(!WCZOE;n~@G48+VTlh+3hNW_xr)%# z*R14VXzH;lG_@aXL1^mQW!f!#7Sk+>cTs8Sv+Qx71=n=H`z&adYfGPHNGFPLfoZCu z_j20l{q$PmQp38YN-_9L%~|wLs%0Q9bycNWECh9fh@88v$^J^U$lFKiD~qU+AF{X< z>SB_`o3f?#(+wV%+V63x>pd=|!Q?k>w~KhM$E7%&r*uFTs8k-v6Yw+fx55P>1gEfr z1*T}y0#l;FxC~5T%Pkj}s*~h$fhkEwAvQXd8?qb_{h=v+Unq(_uDg(3%YBdG?_p2`;})qD zB2;B)$^fM|VBY#a3|i9`0pQ{4!iY*^U67MUr)qSg=u|~66=ejCVA7sp_A*6uO7SR6 zG0A+SJO+;js;$s`pOnYmqEF5AgC^p&T?w=!O9G0jiFlqKGg`YKIVIv^rLcvjFh}72 zR{EZ0LQ|)o%h1$=%S-t!WoU}kSLs)unUw$Ap;BH9<)Nt{F%IyZkN_?N_>J-|eFPvLT|K z8GE=@5Ot~kJ(ublmemOLZ-v-WG2fui3!y%@3ZV`-%L(<@AOMk+SGhEr<_kQC=|4_l;+HWXMDF)tYQ@{Znku=X`Rxc(!o#=JEtpu7!AWd$~!$2gu^X7 z5L{r^Nui*{m8;dhP7R3$NwgCU(qzLT(Y}T*4w37HPfonW!a;l7F~w%Ttdi?H-Dclq zHaqMLXQaheqVV+|m*dixJYDG%2J;@|*)6+W^S<4wWZuI&MD>g4j%EoE>e>MEHKkBT zyi>gxT}sGO9I6Qe)rP3_=+5|HbZ1g2OwTO3qf~doI+-)fdp6)6M@9def&$LJP?WSZ}W0D~6uNa3}B-PdKw!Ml5r?*)ohIwPfKMCq95<`gJV*A6TI&$_*L}Jb%!#{m; z5^l0QKNBcw_rq~mrNa4PmcQOIQqE5>g`H>l!*434@D(tR_g+MbJJN^<=6)v7kUN$q z58`ovG}Tx>7de8(??uv?KeNuq93c%sB-w_yBV?#%wkhaEI=Ea;d`KC7Oix%{9&qbe zXTH0*Ge=`>KT2iR8S=?i>I{q6)Fh|Z0)3G@-Upk0W`DI_l0VXN+tOj6{KNL5%!5qw z2kk|X*-QzRh*g~^I_c0qwHW&M_YDOJuq#2&ZWaQMwA;s{x1SWlm-@F(_H};|E{hA6;Ufj~$#zJDDNDFEi z!H^!)->QCh9I+a}xFoPmqII`R;pqE|anujoO`R2iV=qxPt`ph-?zCfQDd0|w4FJbU zZc738y~V)&P9JlSGrSV!*b`E~iFX5YxG<@hp?D6~J zyp=_rIsf8#W8e#3R9`?9_616(6PkEz@B>~{AE55+gOe;-EWS9{8EAqR)faGueX+o` z0P0jS@C7fbFOcIUQ0I9sjtn-zi|PYbw<@ix)`|ND8{kD%o&mED?ne6;op@qo03=>i zUm%+8i_=_-FOIbbzTidm1(M3XIKs8~;_=CWFL<%U7ypstFL3(8@>oxsQ=nAaGAm^g z2aG2_J6(2yO4#p~P7nPD_C@)(drXL36dwf;MG*iZs?o)uyGI*)!R?+YV(hKPm} zh*v@TKl!Y>!3pMz+K>wYrpjJC6_-u4Y>vx0wnyHP(yk5py(p}a?YxS_9hR%$QuId6 zsnCNv6>(|C+C)~rQ=w5Qe@Ej;HiT!@Am@RjcF@6vUW#)$4++IW4T;_>D(d2F6kQNWtl{Plm4|ZY zt1fHaxUb7jwAeRAmxKJUHMw9XQ74AG$YP%NNNd?*%B z^sf+y<_x=dUrHPvTuXQUYKajX6z{e^eV{wCzv+&IImT$9;I>PWQmU(jt1mf5MR(#{ zj?s|e!u}Z;u0`Vh=C$Wc0Usx`O#`F(9`;K8C5!g@_CrLK;RviqmD8Mn zITgX}JU!?|@}hEe>Tc&3I0Z;{0;$zaY*K5L!);_sk;9|O1YDk`j%?J)H&`efsVQ%7 z+P^7Q;_z~skT$ReyppUg%4+E3%n5$sHS-xIQJzGX^V<}{di!*>dHv5Y=?uhF*G{YbncAn}M+Lsdxpl@*Z~yxxZfyyd_)={ zKPkR{wOD*?Feb%|3X6R)sgK6wPwenz8tw0~QbVYnHoKi^Y2fH485)EcS(LSHj{=oI~;hAs64aW-R_@z~Yly zP+7^v-&!pe?;4B%^P<9HUo?ItEPj^_Pk$h=_|`RJ@k0TN$9!L^!c_e2)nf6)AQpL1 zVX-fcz7iJSukiQ}f{s40W-Q(lut)}3ofbc`S}Y!&8jy>;`2RW<53K@=SK3TA!=8}k z#7qSFs!DCbaX8h`@(a8cWsI=kD!-%2_I_EiDZNK#J7&Iom&OOP<_9myZaTnum7OaF zD)Tfc>UvbQ*Xz2Sd~*(*U8b)8ajCkR164iL$#D>tt7=KG?i=jl=|+ynwp?9<_+m?u zfUn0#1^_!YN~Cp7m9Y*aRQAN^KxKEenX6n=Wk*N{@R2-fd(GBH^5|3!pRA>u3ryd8 zWd}L~kloAK_RHgc5NFFkc7hYtSst_uT?|$hR$4-2_YM--V+p(AEnC^knI0uuPL#>% z)^t#wsD+uCjPRQzf8)<&ti<4L$~LLyxcVlhT0sv*TO?pi~Uk0 ze{`-J1`AUdR*9|!By1L30-`Ann6Q|#P~Mah*2`z|rW9BxpV871kN(V-!b7@GV9=V> zwP

2DJi*^(I3TA!?}YTYeLteiOsbp6zEYCA=X;-Dnur1$2jX%@q5vv zJr5ran+wr!*iF$W4;3!$mqwT_>HM2vxFO_bfa_Y+(X0)JLUMJ$`vJ>`RjHt);PRv~ zr;?Fcm3og!WOA4mQ{&f~q&CD$=j|calbGx{EOba2YW;qIZfn@w?bRe?7s zK}Xp9?F4O{CamirIt$RHpC_c5#bJh&eJN75B_<9=^JChs!X9Ag@$vzI(kUL`$i|#D zvVdmxW)nrHSa426@4qDRnBtI&a7?h$Fg#)yrfpsrhBcWuVpB1SFd8c09Rh(p_N*de zSiS+n!ujSBjVx*a=la?)Op;Uq4CR{sr6ZZ?nL3gs>&d$Z&x$yT4TN7IHvIyoqUi!1 zcWcPIALLmHz#_Wo$b&>|63LL41mv~DULPi!43qW?$Qv(&RzRK(nco6V3wRxQe;WIC z>PNx?w2DGWZxDHw$WsXF1yB_;$z-v#K>rSLVO7QUmn9HKZ2#~N zC%&cjX%;lq7>~?g!v3LW&Uj4C;qOVP(FfCU`B)(9#q@iNBNdVVv%g zK3ftDOBh8Tng}S~@x&~EJ?-%xVoezxP%Hd4VFGw0n_#PWVIp+(4@4A{)W^a_D?iCx zf|UqF0oeeUCy%k;mI-Ro$+U`6t02ruMyCXxGP2P2QN~ny5?$=sk<0@WTL8dFHziIB zoW|adGo{kig%vm>>J@~QkR$D*{L-S&aH%MOU&JPDP5l&T%SNn_c%+>(L1a(aFvO7U zhz4T3_tAQVm@gKH;bS3&p2sRiiGUbHjUmQntNOU5WDxZ|+X3n6P=}IL8h(KK;Xpja zN}j+I5RY<6>xgJyq;u$vc)Yu(F}c7*NEEQOP$r|v3qUeEqG}rhF~ZjW1sFlJj{z#m zPzAPzL)0K~4wCfI6|X+8}I`L4L_FLFz&!YI8O`` z$3na#c^!aRK7Z$9ONm)x@%@s57bZ+y%*tvrF)Q?h{WL1I@w<_u8(_lo>+p~z-xQ0B+N+mdK);}n9! zvKlIlBdyXWS%X#q1@w8VID^3~QeN%B{`d~kq(?cocU~kf#SED^eQL6oq<=caBQk>3 zm6}y_{S2EjpH9fXCr4~Flm_#ZD_ z@2vHWdKacB_$Q&@tXI3GtaWpzEciXu_)sW#z89P;3(oen{w7s=Vim2wSq1-}Q1Du> z^qR8LtNSXwQDwihbfrIGaWcjZ2fUnt#IRr)Daio}+>pwh4C6d730Qj3OHIshiC*86Mxq-s>6Wq*yDkWwna zs=#F3WPhdit5PLs^;c^4`|wH!z`Th=0{S|BTs11aupgVI!&g-!+pzT4_*vDc1QoAQ zAPbe21GB0c*~6~CMh&rSx`AGs9X7nie^VQAq$(rMu`Yf6{)Fn(S|x{4kAhMj!0;*u z5cz)6cKa%PKox48Nq>c=xK>podw}=XXoytmR{zkLlpJ2;-ElJFOVedzvPGZ>+~NWw zWU?gr6oyDj5=uj2tpQT7ptSW4kWXm4aoo@R(2XSU-pmpbnl)Y7wCvfVq->%j_aXX~ zy*ZM8juqT!1WDjtoRY$l;4*S@0BtJ!r--M^oKnO2n`2XZ?6JE8;t%^2bsi}p#yhA3 z%#5}mo)*MRv^ON%fY`FfRtd6J8U>J*4CWxqbSa@`svfA@1=N{C9S(P3i(6ET$|u-e zt{+^DBsjd~Gj=}v!WEXKb#DuA=A@&R>>ary>YXfzl#G^!R1&?j?8a60PFdTbcgjp0 z(mQfu>bcBQ~{aayw0aY3Ln`K8E#<1cBkbbBbfX?QQ)8XF;6`=0Of&+PWMPX44x|(g1DQ z+p8RsLluuGIeW;EFdttBn$4JuPZo3)IphoC5@8vWpx}|;D)FqaLmkmfZ)MbC z24+ihUM0+TLEiz<5?(`KX5O|A^J^XCs|$$DEEUAp0I=KNA1MJ2dsLKSh-{w{V3Lp; zGA;nvQe0OF@ROwW2Y{8rIs{~!<-ffou2TD{A$WO8)g=vN~R_`Db1eI1N=87<4d*5#X+vQ{fZ8@Pm{P_u?s1|<;g zmZ+t<3>l8BE|rEQJR%oHQJijw0xO-8qfGCvfh>4!p?^QXrIF?Un_VfyEd}s*N1q#r zm0beF?6OcH*-dm?!rTvZY5h9TGSYKV=2Ad^yz$%st;F9UXhy#c(naY6)F75VTMFW@ zKSvNNp=>ysZ5xGtG?%_m4QQDdO9B1W++W*)~q-hq$zq9b)qrq#Txl_&d)L z|0#!b2*irS4G4_ViLF6w&chM{xd1D^i8Fp+w(Lf9| zY>_3$zsKpJPBL#(KX%fxW-WXcgoRW5kcjYcdN9ZD5t(tXjf0Y2JALq#=%yd73b8ws=m&Deq9M93BkqUoggO z!*5pOrIWPoQb}--5ecaI(N7>Oo;r(AmyL0ggqY4=3#dy*xH)bs^D*gf8KD&7fZl7$ z9yt;sK$03TRJnXlt?*p#j}wHZPolt7!k?XG)p=Rjl$rdIH`Pc#1zN1BCTHA>slgEK z`nodZ^ZDnO@_8lxtr==Z8fj$mEd3B?1F9cUKmq81rRjIZG>AGKr1Zrl82A@_ZeX~4 ze;0z*Akhg?q_)LeLQo|MP+YbQ6jBtc24lZMwlv1-{{jr}os%5nTJ{dPrD`=(h6?oo zrgt`1&t8t+yFfAyKVKO5cH9mX6*!#HctAtU-%?rns|aD!Go3?P?djk!)QXK#E`8gC z5F(m|6Vl&Eb4X3Y`N~Z_@WCk+$aU)iE}7j?FM>9iM=><1gUTxKe5HlYIjGfF z>MSper~X4(s^sk?HyTPm2d99WJQhg^+xjz+pL`6pX%wVKVFQ}z#ty8Mhb@2%_`kfY z-Yf`tu<}_CJ@u(5Z{@eXg>*eW5p1UqaDP}YP}69$e1ZG)_c?^j0bNuRV#q6dG-FHd9D=r+A?x--TL#{5qv zJL~PPq>?XB5ZLu|y|o9X`Xv$~iX5y9W;kUc73PIm2uzITPxD{=`d&=yBUi}ZSIoog zi&^#}tt^gF$fW_w$0L#3amR924H@$Z(3;YE5VIeTI)K(Wr+?1lYl<6&9?`HX*2zGOiCH=g8NH%@M}>(}fSnM-_cUZylL<#7ExM7uchUe>OTZ0n zt=#wK$r7Q@deD z{L2p)z8ybOg*tIW)JCv=G`-6X%zdr7gd$lwiFUds{bjr;-A$|W*Z6(f1KQVe&#Nt5 zc*+9%nZf$kWa>dOXbh~^yi?e2&>hWvb2(m_o$V6f0oBUjyI=cVsZ|4cDoyVp#z zYYRN0h18#b-2#aZ){w{qDHQ$bre{lqW9CW{5Gb6JO7mpv8f*-%(1pYmy2zF=bkRy6 z2C^lFQiGI>Q^QV|?`4MGoSrd_Lk=H8LU*(Da+gS?mEwPylH~j~7?t))BGF;M0VA`> zkkrm*T|_7R1es`MmdK=?e$dEdHjoJSmG2Hou<{nE;E(y8o zqdumK+3Rf5$xo<5Lf}U<^0zX}q|-mUxY$CUvQGIKrL!1)kmZ&dSr(ZKPL`iFi4{;N zY*r}5v8tg^eX39>VO~SwouEc({N^fZU1X4Z1qMzhY&>sNdx}^U0Xbh~X4-TKH0lBFoOAp!W-LI4ivKncLpl>h|SirV!H zK~h&G3<_NVl_sta8MZdMJLtng0w#!PtA%7`0wd|&>i`8cJm@;!^1RJN3eyTOT!L(FrM0!+lIcTMYe+#PXkSoLsO z`NmQ6$Sk_&CxkcEDJX%rrUBcjLwPzb=FzdQIBf(iY38*K^^Ot zV2R^7NHFC%OIB-@lf^qtP1H5vf@#8?n3ghXu4ITXY=7M1+7mD_qOXuE5ym7TR_x*n zqaWvzTohl~`D&n`u-YXltSC_s=Q%B@LP-xa>IwRj+`yqSuArUbRI?L?_16snd@JGFgi32M7@1!}uJ$h5;T=q207=uP-= znN|v}3Mb3b+iB>c4>PCiMGZ9w14=BiHFU5ACt(x{R+JSe)O&VoNudYp6zZc|r_e)z zLLH6B%}}u@^ye2-Xs}~S9cx3fw2nPuI`)=8XJG|NADwBRfMBW(l~iPnB4x~6X*nyC zHM*>@5*--Ld{}Huu%U+zmK~yC19d?GPDeO4l2tCHGnZ9%h|LnzbG)RU-(G@xbclqy zvy`mr(}?7$SkKf$+3y%+BBH=lRWFw%AS47dU_Ip|b+WTU6Qu6pNj5#U0?m+oYVxV+1ViTOY6ym;3|IY4&7_rd;;Y_Rypw*N zRNF$qJzPi~DY$Pequ{jjfQy`amLQtfinwH;zS$2(+ z!E5Og4zQ7d`ZhoYRsSFZmh=&Gfn$Jiw$G2-C8=RuM8UdrwDYeECE`F{U069+6+#2% zbA*$@S(>}AaiQV3pk_NW+eZK0<>=44u{&EyUt|Ue;^HTbz9jQ7nSp|2^q*(ZNv5PF zEU;t>F)`73TM!ec2gF3msl&_C1)2VJ89|!=s_3F%ok1Canl@7TV;R9gu{>%rLXkp< z!;Ujvf;hCHh!e-}Ev&bZ~`6-!3EXJsl0G6KX7rxKG9QxH3mX$5rC zZ>F7%_Ne$_xB)O;m!()K$>VpzmXq^LSa={Y&sZx7+gOA$%3(d51a77uPbFdU6E{An zI3`v$Eu|kxZH`${sMx-5;uz-N{@w$a+WB3!bW;O&EM6a3z63)e)P8L`YpLMLCzmQn z-bMPk^yQOuNd}Eti_*{Ai$?lI=J2{q?K0fzI^s~FE?|b4!^pu+yb$yh)zqx?D$}Q; zTv%!$_RX7#vRgnJ^Ssx%#O5<(n)jN;Ju^40aBr8Q|Ae68^wIQO8iB+u`W}I3zRj8n z#oGg-r&T;CsBW(l1_%hg-|!eNm~T1e=|W3bE-;MU$0QvXR(jzAZmwh45N8-}78u6Z zDKXqCG29S_Zxe=x6$EJsKDGus$-9^8+%e6qJr%z`PxKV$Cyaqv56d{XdeKRIVM4)v z)CY}MFf4g=DU+a@qvsWKD5F>8z`j3!D1QCRubX7(kX*4Gz@BuiS7}4*f}@dltrdHP z^UV>N65Gw(4?fcz0O>w@z%a2U8V2ZyrZ};puFm7vQ}5`duTaK-K@P<<(=V{~Y);Cx zCjP0gXKzqN{PdtsmX5bJ?v5`Ry6^ z#zb#p(3?|Xjg_<=fDz#T;u9jpRAiEOAV7wW_{-Nw`O(lYC0Nh`o#Tg(081{7#nve4 zpNRJSy%wfgm>g*}=#(|M<#3sY;bCFd~a_r2?W8|>tgWJmH^UXVO; z1DAvL{(670Uv+4S!Uf6IcFUQC7qAlDqFnid6ip9n-4hJX5DO?W*lF)Fo=rM*UW59C zgJ3i)=`12zpm?K5N4+p<1j!zc0Pr}Ii|?k!UyfmA$iE0oy0VAZO`edtCCuA6{;VUX zlq0q~Z=wj&46}Po?rC<<@F20$$iEY%pF_)0^9N$x!FFKkA%AtScm-qYM>Ag3Ed;L5 zJQmwWCoV*OdX24no3!q2Dl+!g)wT2=p!!4@+qy5m%7bM>1|SMD(RrLRO-_M~G&(NR zm%bjUkufYJ_Pl>mq64J)Cz?j>%X?L`!6p!mh7Gecu-el!W((Qk;U^t0X8Xv1Q-sx-H)+np33nMjdGm`&tpg~Ef zY*-uFGjHPp>t25FSE1<7(128+rZjg z6zw)C^&G<+q zvgyJo*01&^x-?5(FGJzIEmROHCcvYxBfP^0AzdE6f6DT6P|M#OucX{p7%q0|5ja z^P=q2{7uABBjfCxt!Kmv`HA;JY=5B^0=7d!&at#3a?GdGKU$amF|iK@ZaV!FZUo43 za+WRxHLmHWlu-LZTj z+_jQ7ik$o(^wE3;_L*d{Wisjx%IGnAIyRa}C|mS&o3w@z86n5>O|L|~Vpr|Yzj@Q6x%k4L{ zackl2v!>OtOmG^5e?SH)}}28x-kCMsL`~ioTrsx#I;WaZ!n75zi*O zttU%V*Ajl>yk4ClNz>nP{!4-tk5u3{l{_s3@Jo_2P`kO@|M;gsEiW`sSMuWR4Ad4_ zB!Mx^7Uk|N?y`&y30q_92V#GEKVD*ESvZx>hKKi@Av8@iGC3)kSAsb(iHm^gb4 z7tAe=PQQfE+8!=gw+r0L)W#N|EpFzas5!ga$)~RJ2?DCWxK$l7cg$i2bwmOe^!`kl5p@II{Yog=+u}EoDEz0=fv@}2EL*ZR)veD^I(WTDnl;*Tw--_R0%%uOf(&LZ zFCeU&-ZGg$SH(Yx2IAIEU);Zd`|rp5rW#FTrG_4);HD@+k%j3J3fqI5BDY0}m%Wio zb{^an(a)SUKqHsT9=uo&+_ewBEW+3kHYfCASJadgZ%Am8UT8YsuG(#$W z2`2ADy9&4H(AyV;=DC1XR&J215*$5?M=pamwuKCMn>%=M?5Ii)zAQ$;iH{6b7ssXn zlb6IV02SYl2k;>0)bSuGqz=V=EW}Bi81vie7NjPxogM#e>2a9o!RF3D8S+L1A$c-U zxQXY$%w~HK8uY|qbL$wtyB)khK8f^)uUowoIn ziFpfyynT+xj{4bpHX6IYxU*t#_|OuSBRj}$5yKaJjA{*h+;9dFQwL@|(9gxKIv2N$ zi%kLy^6*#sdAQ*cdIcVqiUJn#3m!p1_QQEtf@TE{zIp8&+`6RT;MOGr9NemNaI56t zfP+e&EW^K87^`95o1Z!RYH=56$*>*LTh}A{@H{eJaM{fTeFatveT<;e8}=MOkeMyl8fV%c)K~% zR*ztvqKEZiCglpG7P#SVhC3DpU<@6Qg0t9W9#&JOJzGg8nJCd1CG(gPvFu5$QQ7D3 zXXp;OgV*riZSGrK(}j8S#yD zKq+aFUCQ&mmP}wp`noY}X3Nms36YDcc5Qi3jmB&Smgf%s^j4R%@{ zQ!G;%X1G0+RUBCL;eC{4m52(Uctz?io_NvSRwsX=pVmoD{GINn>LTUxkn&imF@Mr@)$^lCxQ%G z6KM&+VYy=~pVi zJCc!ON(e@gb7exF_)RFo)=d&Mmii&g0?*M6q$n;DUXL+h`fk!{LPM8MQkG$4rXg?9 zfCBNGxPCvrd=m=rib<4MUo1vT`^Ax!Z9vGmkgxn=yCo_rmftIIG$)Zipu0b}`Hy8k zHM0Vg=cn{RF?!I_N~8DG86CZ^j3twAZ2lbMcf6c@SFUrM${&=abTGDv4^p4tuNg$Q z#=Z2;o-oOaS8Yn)j4QyJRxQg(^4m$7>nNQ`eYY|Ux zy}!X0Y~(MsHyiwovarMLNp3?qrB`|-3~jVs6)JGWWe-}>QdNlDq`$D9NT?~&vsCd; z3nq=|AaR0RTa!7yLvY%m;`Vlw8X~AJ%;}S7fWl$s1N7p;TSpXrvuL7sML_DD729*$ zy5etOCLQNtU9mTK`_XnmiRF;ukr5T#M)Zhk&qwZ<6N#A6+;oJ>k?7q5y|XrHBxDM; zBrA&pQIvw2P53W#5gE4#OB zQ*e_>H~zbxxB^i;28xPCT@42pCmRQuUJpYtt^j0l*b9sNE=aBg8`uPUxX?$UzS>dX zG8%-fcV~$_OkBdk^(5pkT;diAmD{+0NjZkZuo9-0(!=Yr^pf~zyQx%IrbFNwfHl_X z#u?lpCk}e3Vg!f}=_sopeVN$Lh{8(Kfm?Aq3nMoa6>5%K+Tvd)N$ZUb$+#-2jo_$6 zTvkfBPk!2hnX|poJ4x?qnxec#A$7W2c#!N*#8 zeIOdb=*g%P&Y)P2AJeN0+Qa};lCe!Rgfd_ULdnK`^!-ym=P+*;-ubw>*0zj060(!^ zilO*rp8+85)=m;Gk|riQ`5kJ`>=tzmi6Zt;rL$N~#uRhCNzJSzGLaPSQ5MH99Qou6 z6!2+elXv!T=CJjY>(EX=Cpk5w;An;d&*N;8_}Z(LXTg`Cp=tN6e9WE}7SdO5>h##S ztSO7oYU6As8EEw2@=4PS-s4 z`12PP$p}c{uaG#EDOH5C};gAqpx-2%eGQ$d6!%w2F56uHY$^ zxrd4z5R!?F5?A5OK#^*Y=APN10{KWX`D*IO5(dF%2UkQQ7KfWkqAN=$ z_A!L5*gz|cDECFGs09i>(yGl<;dB)gmdrbi74w;z;x!tp&Go8ty+C76BX>n(im{lp z9Yf+bR)psXwThSkj0L77JMfGMM=p*7cw$tesvfwJ?TO`*P$twEN3aX*mcXvS#CH1RF>~_NUWrc!3Myaj6iOF$xw#ol&xV zY8csmx`qdlRsq48AlstBGfB3Z-8n;K`|QA5ifl=NssKFWWczpZ?*Cwu?cX#!Vu~w4 zsH>8-y0iID`C}@70wY`yP{FGvNAoB3 zP8Mo@yLx7K$I82Vhuobi-#wu_c|-ZZq83`ki=bOLX@@?<&jJs;=?}AM48$FJiy0Ue z0DibxDAl=QS(8Nq-jvE$$cRI+P^cPxy_{91+wjznZkhVA)tw3R;I`OCQBj0=vRtnh z70yNJRaokWOJ#-RLlP$rXafgI$Q0zZ^yN15VP-W=?$HTCcu8K?hyi1jA=>N|+$3C15EbEO>rG00wZ94j{lhx1o(kxhI6t`4!ShY0nSoju%sW)Y&Au86J`7e7#z}ia`j~SL>y4ti_|sr8MJC z85>OzvgG@;j6adEwm=h&hN)BKyA?k#pLTHSvB0ew-SeWe%gJqsq9Si*c-V_v6i`H5 zS65mlhHTD|b`a*t8es;@LpvC>4WF$j>U=`h`>tCnqMW3Z~Z8jUoY<62HLxnSPRQXEs)bl5f z6@=>a>%4lB(mmWZ!m{_40ic8#sG84)*)&5L?8AG=g-{r@OyX67wZ+V2d(=~o) zL_#d;fi-?-=pzy0MERYKo#KmM2s9ff^W_K{<5*^t0)PmwA~$N(X8V^LgR+a}&uEUf zY?9;&dA}acMu-j*A>*Y884Dt0%tgopEN3c1L6xY2zYnB>9Fb@<87N-Or|@2rUXmJ; zT1B+i6gPok&5(sJB&=8si~K>H>Id6pfC+VpCv(U`feC(*LciXEk&+NaArISy?Y?z( zHFHil?qN ziJRMM`NDBUQy49>9wY4b$fL!)q+ZPgEE6ywSvIZ^k+})T2{W2ymqHCxwmKMC2k;!i z@W~~-fH(hudI9hJXYvA&H2wB?GaUfMC}F5QE<*t z_Jg?k?epbgztUk}?Vdd*acnfQloc&Op2(LrcivDA{B_ndiqYW=$UZ^4x^TiEMK|a&?YVDBloy zYDz!eP7W1&59*U*ZF9&bR_1?M6xFYNxw9B&?_(B*+vR>L-rL0&MF~}6Bjf!2YXL~u zcwPx8ibr8p$u`bkYP-QioLzc7aipFreG=|9^3#l+NAsL$| zrT9C4o+eXn6vMS`5xP(|!LPF5+Zu#1;YnK-aA|iZLn4q5-5i+}ydV}kN~NPRQc|!x zDG^JQQ;adnp&FK)SRDULRDi6G9gV9s5E@aOsB0h&X!Hn7p!J>nJ!yZBKx{14!K|xB z`l=oY20&N517wEpNX%@Xq1;egFS@kQ}aIFePs zk$+N<89qYTuE0nQwDjUwcu8$_*vl+E^(8b3UYKS_cLiVoOW+wu7qB&222JoEp=!WO z@3a&#R@rM_6bk53P8+E8Cg_`TO4Ua#hMwBnTURcIX2bYwU2QRRjf|jM)i6=^l9iu6 z@)wEJ79;z|=)=T?5eZ_};~kB;tWz$Dp7PUvv{@n_FB-4>Qx%?kov<{;UU1?Ig@<8n zm)3((LJNp5rdAQw{0^=B7u>tZ1XNSA0=7sBMZOwvb0W`-XbCYC&G#X`KqCPlaAcmQ z2^7m^W1kY+@Xu^~HNkQ-*wuM$BrL1En*8H=XQ^u-CQGYq0Y&ta3ZZj%Ui8zR(rUt; zT{UNY`K0BzCi&l$T!faAYthO`-5r1jg(wDrEuiOO=q>*d*JTeKLnK_~faT;?+dgIu zgG%(k59Q$M$9I@`5KluREOOa5)kJ?sZnz%dmAUmf3Cc=eA@Ul8VqzyZSZ-o?L-%aL zL|6oBV*EnWt{tRrwxrC=^bn3^J=&&cL1x4M+7SO$MzSdL0;li6YnGr!$Z4g<2rIzR z2lt$2CdjgX67?rNuB=~0%s}o3;xb`4$q`KGSTjsCT3zzlB=m*UfkCFlT}o>eov?wE zX98&_-Tbf`vt0i~TkT0q6GZ?MqwE(D`b}QhR*uzZ%rNk*eA=SSJ5i6AWL&?UuRYSn z6|^3uo$%GT(OmIBG2#|bo<3+Go;FL9*@M5XmDYQO&Ztd!NGSGMLDa13*3=cPGG6mC zk1ZFlfT&3@hSVUP23CM#lV4i4pi1pq*k{`A8kr(9w(h6NaiCOorMfkipDjd=L1> z>qAA6x80T@#HllkPN<)x=&cE{Ag;1hYJ);B*AAS}whIhOo9VsqjjY9<;sdsd!&#k7 zWYhi34)Q`BYO`R+3q-O7QlHkaG1n(*SZVL)WNIjyHd|6aw^_ll)eisA;6|m4;g%@@ zbWE(&YEFJt@aek#z=>drF>(*B&t&0a(fSdza8)$s);$J&0~0?;6x&~+ftBwq7G^yr zFz1H0X>yV#iCLIk?2)mv)f*+y(he4ClxO_d`Lk-nGz*x~lU~!d8O&tm5c9ScWMJZ7 zXqk|=$TJYxsgr)-NmDyMC_r9^2rVTNVr~`s3E+ed`r<%!aI$h=^71HJ^I&SH(S{Be z2h!F$47V@pu;KWBa~oZ$*;Uu9`}h)lP-qDT;9Vz)$%d4RE5}?Zz;8&vGJ=1cc=gzK zl@nw^0A_eDj9!dri*2xelyQ6U-uzZ}h|4$S4}1=L_e+zCqDsaSDl-{>9HtU$;ndO9NwiR={@E)IS!ApGM8yFO& zEsnlEKcza~i65o;P;GfC_r`X8b`~k<9al=u)RrC5`4BlH^kN?&F%C*L5P(9S>F*>K z#1)r_q)bdi`3r+frH>OIpCac|L`OjZ2rW5d3JlA+yt~CNF=alzuL;%m(wNaTXET{k z=s$+_6hnZaQ4*PXnT(TKhmqZN)R=yv@*Tl@@Ex`HeZTK0k7beX*sS}Gh$``WQ`Vxl zu{D`jF1D2jUf?TqhUc4s~T`vY|2Rh!5SnM$G< z3)|;KUw5OBQ`~pD9YwUVu`W6Dc>5;zGt{x=qp!OWz$~Xwdog3txD@!eOUju4vML!P zO*<%A?rXCopjE6YX<-AjP#WD)xS(9Rc8R4~U;@}?Yx2Y;Js6mt1PhEAHeG=}E)(`l zvfx_6kT^(FcQVgDlJhL2<0>-tJM%MWUXm2_C>SS6ANVfmS_t&^R?LOGVwX(ct9hm~%^ zIyxuyJG9MuyJNkbXj?XR~O@h4>7S7pRs=XblFPtlE4EQ0S>NB8`vncbVurMX{ zda?|v!(3qJ-UM&bvP?F99*3*PVs`8T#%E64c_oSX2*Ev^+s@NA_<#(hEHmfpNN3$u}Xn+w6B#}^A zgEF@GT?+**vNKxRJ(6apr7D%$z6+;@BRJ3J7_NCe&k_DJlS=kxOEt)Trv};YNJ~WD z!(VU>$Rs@CPk)-}ZIse73TRd+Y~}xg$R;WbdD)v1HQWn}ro-}_XQzX&!ytecYp(v_*Mbp`YGm1sixT-!<)*9TU9lMlS_i3#bw#t8a~dh5 z+29hxrrO$5doEam`Zz?heRBP3Dhko;TP!yEU&{zAEuI(sUAEwX_(S*$&(%Cy!@|`&k^_d2+2l1BBn#LdwhID(*-!%>t8GfUVBpYJ4swA9 zdRb(h7(CJcngQ6>=&CYemgIk3o{1|#123r|i^O)0{7=cbKKsTb>n7W{1MT%ZB+c`r zpUx2}abHkUo7YUpot4GiDHlrXD7ub!y_BC2o9E_7K8q6OJi#2(`0RJA^xl_vU(S_waR8j z>5>i;hG}hV(Gx|Nv~`%e#P9Tnq{>BYD6YytN|=W(Ar(WH6x65gU~RRvlT0=iN?9EF zsvT?xqVc&fI%HQn0l6Fx1VS5io^8wzd=%mS4mSRuO?G1fA)@fFb2FOfd!v{;dw7TG zcO@6>#>-Tv;y;?|jV|qB!q0nwU0#4i;wo@HPy9B=6Ox4#;5TvyPg|#&>02fh28DujzCr8^lCi+S9^PG9Fu?1kF=3#n(3L$=G%ex4=1y6_w2Z26hH9wJD$8D zKXB{kzm0U;9$gF6H$c+kI+V0G$!80{$Y-oJVPAml(f@v7^rQR+Fza(x(dW17N3U~6 z6|*w{Naw2~#aE0VWykW#{O+nO+@{h@l$aw|Hx%XFZQ=#{lAzL_YP{YyCSfSwU{Ac9 zdBb(r2}mZ-Y3O*_5QDv*X13=KRSmV(3{Ir>V$QStWKo!s+d)x&x+;pXro!+M#WB*b zoAI>sZoWXMRtRt|Z15?#)j>t$nvw$N?QpI+uQ89?92F(%+$hsH*^e!e-!D4BKjLNj z(RKcd8O@X-f`?v^(F|3fsOz}kSw{0CYMV;=`v`iJ8c6Sut!#&E%OBL1_e^s<#0Dfy#L&@w+EcO)RJzl_Re0_Yci15SvcD|OMm)0i%*p@%u)hDg1Z0aaVg7mt=k-FN@@sQqCJ8yAOR}oxAS8eIpN?ko# zbhVYyW;o4#!ilb&TmzT3Cr&5p_#WpYShh(>;$xlmn#&B;kSYvHB%gtuA?vjZDLUiGuB@d0HKz(1AkI z53J(~b4K~X{jeuCda6Ej;QhcU01|x9jui723n~KER!viCWevq`gDZQ0=$Oq#kE8w7 zo1Ij}W@SBB{k=H-6?KeBhGzPE8j#KV6i78EI{g@)hZ&X~Y!qreS0>4f{%j7$M;q?J zI!O@^q&6m*W^7S{Z2Hj1QdKfVI59ugxRy$}opnx-&9s@AxFhe+MB?DpA%-m`e|pNDx~+h@0i>xvQv0MqYQCF38?etqN?i zfD{P?FLJr8Hw7=gns;#59xhB2UFk4hrl+8qcY6U^RRN$^CwB4#b*TeV%~ObO1!eei zK4h0ZhN?lWn!MqL6G!+(XD~O@UnW-RdP1R|mI#W!he{zmrO@MkQO}eppjDIDY*8pV zZNba~B%)l!uZBL@J3sU(!=FSp+htx~;XnT;_KN}MMYpD8SYeP{OSFOcW6lx5%lD07 zfpw$yO1$SmFk`E6huxieDrA=AkA~6GOEe;pQ#_WX zk~a*Mi2#X>LSk5aq?M(LRZi)mV;=do3(BY(eiqgqSBnxj^aOFnddp4u0YPg*h)9uq zT0Tz?s>ES_!LB)~0w;7pwW7P^wk$cO##ay4hV`m~1771C@ai+o0oa3TH2rTz|1$;s zZ?4h5QR3sKkA88@^v_zRrRe`j@2AoKZ1UQor`LE-uRfzag?=rc$@+?I0gJnB!HsMS zXK=GEobAoFD0m$cET}2tbvU_V_DT*Imz#N3WAevBClixnuPZva-#dBj8SNy!F!{r9 zVpGtwcCV?B40jW?K4Mgy**-oJ`l#574pE_P=AMKjvn@2~8Mv&aaFV7iD79YJMKfEk z8|+nG%(~cU*2Q|U^bEh6MPQc{&46`*a+7s2#)Zk$kzieHH11aTFpLyVVr5qaAUKI&C{<8U~P>g{fiP z*hy8gE~dCLnbnYWp$4-lSr;2+U2NnY!=NGSf}~^<9ILS|z` z>FxEw2ss-eezp|uM0R#*gzyHPE^qfCY>|W_iHcm4c>qzi$kkHtS)M4qn@EKM05Ov% zHPL`6a=m}SmX}4P*YZZHILRMFnLhk+pb5rETIxa?M6Y@NNfnO>TN5e7GD4@IJ#!S~ zec9H`MS#CpwQb-)C{RHalOR>W0&XKfY5l>@SqaETYd|hA*`#pVECD(f1~>FZux@Z3 zZ2L@{2TKuE_)fT5u;*am+~8$sPuXrDMI{s_gj<9cyxZ<%Lx_|gVHkqY{)uTr!nnO@ zp;(@df?D8b9Qd`hXA!R%FHnpR4t}~VE==vnqEHT&Op0mrxVFsBrU{kHR!x1;WjiWkgrzVn0GqHCI7u1NkwE^60KvEdSdeiCOOwg+hC>uY^ZiDW@9seHw z2do$}H8ucGfp~s4KV*itGrq{5;ptGP_N*oT87jmP16&z2%s*0j`WrYXCe|*=Zr%Y* znzEOd*3PB{^aLfjAwrQ&`25L)b_d6(VN-rxIA;cGVF&su=Ro*C*7`n$C=B@!EJ?@m zVSA%yhXiVkJzlG`Y*m-0EaTS`;ZnV-kzzWA+N#q2t@2q!7C>eo@GQqpY^3)VfW@!$ zgG4&{2tHlzKOqIj8D2h&5)pAn!JF@#?^^ zs>^u6&L&lL<1Ww{RK*sV6DX~G)>CXv?l#RYBbeXrEq_a7<`WuF$UQlZolhj75Kbt( z{O~7CI0Z{5YR)^&HyK!kf|#??gsn(Pa!<*%iWMuFh7xv^%F>dhkw0FOD!WV37b+W7 z?t~mMrfXLgPzQd$lA?PSR|UU%Rrn=KL*xSaaIGrelvuLv)*$N+lCgd!h24k=JK&?A zr~`NCka2s=pylS(7(gZ$+@Uk3h0}5977sN$M-)SC^?|;je$8SWK2qQi z%Xn!VHu9r2{9RL41K}VMR-@2xaxI>yEhiQQ*;l90NY_{zLLcROYEa%@YP37TC?7t< zqb%Rf=IMNt(>KGEiVE0?f(jR~QMaVAlC#oZ($K=cgmG*DdouTA>=>8A$&KSN0jaU{ zY3(2)b}z&Tj984n*>dHFn*I)B&&P|{{PE*;Ha}XT<5)n)k>>;*^ZNiFnoqxG>V3Yz z#_m3B-2NP3gDli#u<>XgHtsI5aZkVov%_ap1UPXJ40dcdZR{+tv8xXo&joF;mTDPn zJluzk`$}va57@Z(Il;zUArG5@I@q`vTL7jxzYibJ1$D4+VHtefU&F`t=qm}awz}p2 zm1J*vNF;mKax$oy-(QnI50prKFd+5*=LD&<1&KXv3^&^wbChng{C14MX|(n79wEy<^QwYA+CNr$?tnXJ>*I+sQ^9fI`JX3tOz>4pX~)C^iEgJP>+ zZL#tp4974F<(}Gb%q9<)m^=|M`Oq20q#p{L6`1^{VKVD=9FtqRsVlk(FewpC7B6evWj?RVm7A`U;W;DUh9p03v=BO($9A33 zej*`XU>u_olZ%m>p%4y&R!dVr#;tZEaBEG`Q31hA(iWNAkoDYZs4`o8hf}~0C>T~! zlLkgalgbD&t1`l+#9};!Wjvb<>z>Eup-)yRO8nx}5ZVxmghV!?!YbyZwM6lfabH-k zFs%AogMWih2W+U}NH#X9jvKO>upRIQwKY?nO*2ELeHVM!qX8ST%~;LKNm}j;Hd7h= zLI$?luyx#_jWXqGhTaT*(E$i$GGch&&M@X@<#%Z`Ny)3Rzyy5^${LR)IBpZ>Avg<| z=Ze?Jn1Fsc8kPZQ#-4d1>=`cx)Pjx&KJV0`P2fj3ww_TTtUC#XaGBVYpVIGyZ%x%t zR#6^;+#$;2C}&9XdsQ|pY8+(0>B?%bfKfmDu{>ZI_B-0gekV)zdo-}$BWIZX+*~I1 zTUg74e^Ck^{^dsDUmFi(4dGuGJB^g^?^>%FpDFj5lJ^ z;N4@=+$bhp2z%zceJm^{T?_!;XBp{quM^WYxGR;{TH3k;9_fLAcn?cIQTF%A(BH?; ze1GYLxy|Y=;b}UFNVJSW4^J1}B|Lq`yZg8g?nD$K)EmXCS1VAU^eNg?9$@eelv>~+ zYK5t*|FW|^V12f36tL!E0qaQ%SfA|y>$5#zZI_g=CjskeE(ENJhbmw_CXK<^PeSX; z{VW64ikX$u;e1~PthtvUYGhjL(I2or8v@dF_}K`%+I0AOb?WR&l&#Os4x;RAk8eml z0agfDo4B%5oj}O6XtIc2TQ_!6l>*iyT#JCU8bq2Bu%1-FdXoG9t^w=y3Rsh581t_R zSRZS6!1`EYSit&38L+k>xt;76g5>2=1x?;B5hT~dumgy*CD>g%)9w1SHr0R&6r&fG+E~Yj_hwYdhRcDw)B&+qbB)mt>ubL!Z<`06I zlAqSpvraC_;?6xAlO3LjdxUcm3AiI;K#tZDdVI+;mWbzi?l&tFlP7DxJy5&9PxpL# zJ(mLn%Kx01eabiP1#9~5F26R8gy+NI`5@P#t&_F-9_C)(KNQN}uX4=#{GKufxISUe zq~K>W6(-n7HOdHLEebn|)oH`QwDhwPfHFSDBjF8ze3_b8HtD6*ZOf zhiGJ7B3IHb^82|euKQp4U56E-!_f{+WrugsA2w~Xk?UceA#6)jVInjqX4swKdXV?$ zawX2$-Ncp9F7|a()=u~NT$!YK0hbJ~C|7KY{DfC->X9tCulquh+Po`!yD!q60?#BJ z?d?K^2Ke*13h*vh0ltl^0N>74fd4D50=&mnfS<=zfX{K&eAA1$3h*E0stlWd!Bv32 zgsT8&qZb4GrCbI01zZLA4z2*cg-f=#`$JrW)_=)WX#L@2UJ5gNp(dF|CUN?*7ttTd zk7jy&5+{crnN)!XeANTgdzWTR^)h4nk{N-h%U(D6T@7u)g<{;mpY**-+^fLol1XR zxA${9nclRH?4Ygu|0AkqAt_Ajhxm0o)RD*CAAu3-miMudy{JUrU7`_D+Yx)gDU4c5 zs~5N1i*f~SlAUEg{lDzJ51buUmG4_s=bY}-eY(@tN#_qqfI5dD9S9^qNFqk*YWXXu z=r9a3*E_?z&wH=0M zm%NP2QJeb`(E}rwF0pgFOQf8zvr^Fw3Dvel1IjMvSO%J1<^GD^L0C(pr||j7qZfOo zl52So-_qz=d$-Epjb^(rK>~p;jW*fMwPXC<<;A-w8Pv9UWWlJDmHzsg;x#nBG`hk* zJ=))GE#AQgOQUP;-9g@soyEI@yzq{y>GS{$^DK?FS>dDn-91HN7;I^Dr@cGU-`!ul zg9(>LyY1ZyfA>i74n|!XJ!tQi`@1KLcgyu|kG*40`dFwY5uZaZ*+?fx_$Rm2augyD zmPR+>TrWrv5lf?;{^-Sa6~z!EOQU=2-7B5%C&3bYn>u zK6nYqXuvJQC;*}=GHe+O*<~3~vh-M1g2{m{_9Wi6aj|ZIzX&@dLnBELlH@(kNpQpo zvP8VFqeFTD;oGF@s@XM#`ov*Ui<0M?ls+Zx&8EOzZPOTg^~Ln2sgW7-DY7&p?#X_$ znJ#LdO<9|v04&aDFIUU}fH>;uond-KHhXnx_QI!$DQi;EIe##~gf~i{jha*%)HPfb+uQ7c3p-6#Y&>gD;tZlqCelHgq;cQT8b7H> zY-3;(Z6_*0O*ex?G1ELR11Z29BEJT?)s$S-D4j#s+)s-=(f;(#&n z)sM$RNp|K}ZIydMmgreB|1fYm)d_|5N~Gm!NKiJRBF$K7PdH0+fty?X1Mwv~?m*MW z9~(Sxhp_ICXr-2JR<_Uz}A?v>W8UHn^Ctf}-G7e9c*iREt*g=exilDG7c*s67}nf_0OX%OZu6Sve)xE4@IU;1 z8k2m*Zo9b)H@~`vgO%L<4Vr^EDsV?3IyVvDW{yj?RDrqi?*6FHUD@cyEZ4u_xGYGl zE1Ok1Ruu!|6G9c)GpD`no@UY^TB?d^QCN6j0+ybZ?)?@j>8GTa>(WD0)*hB(7=ASz z_A>zb`HWFe<;0s+753cIQiLg<#n{r}v~beN8if&1N)7p`By^w_(-qRCRb$^c6?h%5 zUxaB{MkZP?70^mhg?(-tLl`O~69@53xuMA!mW&ZQ=!|mhPBw~m=aPVND62}O5?97J zG{UMyR%P@zXdVMTUB2afk1lOz{4TQ%=^Wlv*GwrsJL&&>_nu(iYkUDO4eb02 zdLsuPb+tOUpfyKVs4W(14@0=XFOwsN85aL2nbYjIi7P9_*bz@f0L4f*gUr0?bBIzc zat7ImPYZS12B7>h6RL@*(L5ojlwW~PdgSgT&@E#Nh7B!MQi3*d1*&j~q8{qtjgN@$ z6U??t6Bo4l3+UHEcA8}62Ts$52ogym^%uW=xArFe&Dmq!z!jp%!MZV&cjIK;a4mI1 zN142@xk~borT77n50pO(dNHfvV zjvfrGCNL!mNfY`<;*v>2S}i~jRoDf#TRxc6C0NA6OpE!ULZ+2W)YRR{rC&3R6+k1>C#uYs|;l2AVsB5%ajbeDQ?jOsbMWjGEmk8 zD)UdSGdM7h7kbB39}izR)}GJ$2r1|z-7WsJ=)(47e7g1h*mMWe9RkD9IKk2nOg6uvapd?90?&B zmJY_vPpvvmw9BO!=unPeGnR0=Y${~S6s2cLF7CB8xi#yx-e2V)fqksGoa!H}@-e>; zS5d9_eMHUiyGLMDn^3kC7TcbYcDWcf#q}hfa&%h?>!%!856pXrXeku6u?i&enKS5- z#s*0Yon{iBUTFb|{{C@&Xd)y#Lu=;wHm}Hxa^?dW1FyQz{($PSd`Nx(4qq&#jtRmq zhRW?@e0wjfhEkzEhB{iWeuiu}#CI~%@T55O@=*R9;Uk?Cc`49U3KC2)vg?KEli!A= z?8BoYb~fFWpn zqY~Cj^B(w;(ZI(d8loH$wkrwN0kkyPmbOd~nRNh9A*6MhHEy{Qpe@*Ccpmu`K1;ez zMAAyZM&k&Wx8qNsexU4pgIuaWr0@d`dSmDjnpzX99W$)Z!eTM0uhSE^OyE{#WR`Yf zEGtC=Qh6mVXU!Bu2TOCEXvp?*~X-BvyM`3&{KmMa3nxZ1T7(M#?>Nr+6Zc>XIv zdX09ExI9n;xkfn1`jMtKc>?~Wk8@Z*UGAk!9A|VT*QY3Rkl{d+JstX|ai>EJiIfCs zX^b=z=uR3)rIiKoH3L)&t~HVrL}ymx*Nc*ha#A=<&!BX!Kr}8t$Z(h`R$%l0|M&kj z3>c>&A7{OUl&Mr}9i8>A?nY1VtiHH^_MCya^X4zuZ{ecF`yX&%(rg{H#PStK9(DA}V^*zR^YUX~vG$d(I<(e)aJuoOsg7r@ZFW(_Z_!*Ps4|H~!ff ze}3j)ob{J~^&j5!AOHGq&i>#2)BpbF|NLM6>s$Vhk#%qVKi~G>{&xL_bI$$m=bis| z|KtDqpBMc7+b>!ViYmgdYn3A^dQ7ZTOM!qv6NGE#YbYO;m+{3@b>VI@Xqjy;g`a@!d>B)!@I+;g!hE^hF=Z8 z7VZwe9)2VIW_Vxtt?-}1Z-@7X4}{+dzZ*UnelL6|{C@aw_=E6=;g7;c!big&hmVDO z!k>iy9R4(XJp5Vs^YDrA$?zB9FT-DjPldk@e-r*T+#CKb{C)Uz_)PdO;UB_(4WAAF z82%}IE_^DMTuKQ3u#&u{iqX0G|E6SxWt&lzO6+`j=8_fl=@UDbz3R5yOjEVDfRPG>R(E!P2X>C@BO9J$4jZtl~TJ(sc)B3KQ5(yT}nM) zO1A^S}FBVDfP2b>X}k%;}6=~dtWJaT`9Grl)9^w`lnLr(NgNE zQtG)<>YYDqZ~a51)V5OU)>7)LrPTLIsmDvHr%S1ef7IUIm8H~{QtGp%)R#)BZ(`W0H!8(K%X#zWQtGZ!>YJtSey9}cgMat4Qpw+yQZJNJmp$6v z-qoelb*0qyQtGx+>fTc70i{q;9F`xKQokyto-L&=`EmPq?<=J~R!ZHZ6t-Az;q#@` zPNi6*`nxYGg^wOj-CIh1OQ`~94=cs-8ZY@+spJz%u?qHgdrPT5DpmCM(#J>@vh`}E ziq=1(RMEoLQtH#Ck~f#$-ClZkcPaIaQtCUU?|z_Efu+Yvsh^cfK2=IRT}u6_^xf#5 z_CCC$lzNX+MSE8%Rp9I+rIK5fD)4es>D|qx@9tEpsPk^6in0A#>D{-KD(d{6QpJ4x zQ>6;7`fVxooKnT8T>O*v)McgA6{XY%l`8tTMX3VL8%n90lqy=^S$g-SQtF;k>Kmoh z{iW1HN)@d?R!TjoRCi9Tzc0OePN{py^rxhXad@{c(NgOAQtGBs>gH1FcBKm1y<4eb z9PU@DkS~vxQok&v{Cf9? zd4DOjrIgxUO5I*ceXW#wu$1~qDfOFD>bX*C^Aqi`TwO|iyp;NEDRpNl_4QKfp;GFn zrPSV1>V;D3olmyI^1)JSYbo`)QtC^k)Hh41hfArSl~TVirCutfF8@V4EFUVRZYZU0 zE~R#rQr{}2eppI9QA#~iN?r8J_SWB1N`1JL+Ez+^p_ID2l=^ll^++l8i&E+jrPRh> zwZn2nDfN+3>QklEt)La1UDmzNV|HVvCykvSLi}jOXZb#V*^85 zqj7<|koO(C2s>0d8rn9Z_BXg~A%J8Cen4Mg9S&Mltp~z?eNtyT+Q1KFsSMK1doiZH zFvs3tsiaT3Oh=n;YSfO2Ol9n7$I1@XgeoKBBmi~0UrqK}nYvU!FjwQxail@03et;4 zGoNvk!CaO;qZVJB!(Nq}ZyQ%th$9p#f=Y4NfT*XAQ&1h9!ZR-7IHj--i+Oe3`t7tJ zYb$5fePi^LMY3gb{0Sea=|y#Rx;T|^B5q0r%&Ci7jqPu5_1K0dmSFaqQa~F0JE}UB zs?A$1lZ4ucFV`so4yv-N-DIONH*D6yKuAQD3)wlVq`}E-0b@y}JMvs<{j}SGcJh=G z@%PyKq4!O8n&`3}W)MYSs^{egW|MCxOm$i$FDzRsg{zGwhn%RDYlRp<0Rgux8aa+0 z+ol2gtej-S=}Nj~8rJa=#sG_IU0bRA$`=&Q95cJIYO--4{3~_wKE|SH#R&KZ zs#P`cskon_X#58s-4*!`6h)x0^zz>+x*R5B-3QQC4p1!t&4Enll|h~&HbP}>*V7jh(W@I~i6p^RtR^0A!b$R` zh0QXuY*Y7Xz%ldqHF`1wv~1w5kgClJE;6OGM%4_^PlBuTFf*U0SN$ITuDI(Ow<~9T zp!UX>D`8cA(2*lL!58drRme~rEkhCbqelU|E%7h3C&dHK5z~h^-e)+GMO%I`g80XV zc=^Pjz!@Ov>w!xMdh;eqJ^PHt?<~eIS{=Qa3{37g8seUZ@^uG~jB{=9_6CgJ+4jh} zJ##&z?T~b{#>FmSXh1Qp1JuviOpyoW2#^`9tS3bm7!=T!J8o28VGi6I3cXJ$IbhO1*i3`#ybs66OU6r3q6Xk5U;@r*iM=S)tHg_XPj3)S+m20|pzD$)<`#isl2~<0CL2MZDK9*IZ=-2J5gt!a&FCRXj=)`xU$H!Ej0k z!ua9*VcS4sG1wNfz$z(|39P?YVeek6-B6z(-}MJD&`|j9>xA2!){QUrz$h*{s6rDT zD6Z2ehwKmw7UzWRa@#vin`*=+L~T9^FNqzUOfQb&@5Ta_PtvCN3NX_qRR9ePs3TrJ z|M3+u0h{sHV%|kM&AKE=>9`1hKPNBZ=!Mm?%hw zPM{=VdNoBv{9P z!uRssl|IYRW&%|BU{j5@<-j(CtwQziE&P1?=J!5-6f&=G;*CkeE9eO=)ks(7D7#x^}CfuBDZv)k$3H;RoI^ zIvT$ne{mMkPRy}UUx8sxwIvsjO2LsrS_hj#ER^Zs&WbY&{I_E}a zO@hFP>E7pelcftskePC~h5ei@-KzoWq(9PwX9 zg9o@;P(thyT_S5~ldVV~WKNb}E=zq&C!Zhdn$!qc?8+3Q-zonit#nT^EL`s_Gk z!#|II8gmZm4E^*Zf2N=A7`%=t~p1C!;eaiR>7mK;L&-(WG=VZ$)0D~^RjF?XrHC*S(ZI3%hrvTZe@2{ zc6XLtRcizRHL$F;PUUo3PN%m|)baBNy&-E!)l!{TFca*XOf#_B)D>Q9)n z7IHC}>_wKn$g{Z!b~OG#$X;OC3p|^{$Mce-lzo(CALZFh(Z_HtW3FDzwHI^k1sChM zjL=Ya!?GJ$HqqM8XSpYUYYtwoa(XSN*K_)m(`Pw-o`WaL^SLCauVT-cqntUGGsklV zlrvyC1D-QqIrA-NzUS;Gfc7(h_7gw=PuypXsRqB|ed2V_qGYkM7hCpX&n9%$0)p6( zz0k53dNx6ay3`IaIjEw`+u2_^`&-Wbo^yb54zQd9Jcn44HPu$L+G++4=$tdcEh)+# zXk`!dvI!Maw9ATiSac8JJV3|y$?mjlj``DhE)DKK z0y=1IKWlA2Z>_1ErsXs}r=^^h<+MEKAmtonIR|;p5-vchh56RPd~1PL58~R5vIi`C zz_Mwzr5lN4&#~+|mJOjcbr+KC*s^2GhENrwRM~x&-DlYlDzQ0xmECLEy_OB3axgv- zc!`0RICuvu=U~e@*mGW{oR?Y7%RJ{0N$rAsKX4X!wjecm2seD9B3Ipeu(Zok$r$=A7I%){xSwd+521e{+10*96Z9kO4?as z?JV(jmMLeM&SHB`N@&#Tx7zLY3KQx&B$NS8rIK1>y>1$ zPlnIIjPuyGt2lkwul%0YUyQV7bIl|<*`t>c!t2$lpx!z`C-C`z;zv@vTgAJrc()h-+~(&W!1clLDqd~9N}+)Hfa0?$ z-ca#|6>oU)AMM`uc~%~0sdxZvc*0UET>VNl%d%n%F z`lG^*vU7k5~U{&@j@POYQwsHjB#UsuyX@7%4gjgL29-5bS;H!8cx7jK z$2Eyl+1yFH`Q)d5a#y4=!jC)vfenLfVmJTNx(V+3lSM-1Li(9-dKTyDMaSo<X{9iO+)j(_Q0U%d_!q3%LX-SMM~j;peHlXmKr|qVXFIcRK0=ao5R30NN;xs7h_(UvTeC;KFji- zJrMdX6*U|29t}y44M~p=$q#=2-s_-6d<_YUj5xoLPetTYG4eqH7T+widnpW@RVFM> zWbw;Ca>diExD{QbYU9f}xs#nG(7qBe>&;w*WR5non+;!9YeuMzP^+r+y zp!NEtvYINZS!L*zf=rQ%;1blK1UGx#2})3B!Y#q61;(HDUV1Ur>uw>{SJiPgstul`e)edoJ;rYj7L_!J%2{aRs>`w3LmOJx(W_{ewf{uzaI zl6~rqBVp;du&B!VCdJ|pul)I~Fd_bzr|CEnmL6caDX>^qH|y5Tx_9$4k6!vExPZ}zQ{dWOX=Ro`XRcX{>ie|qPakl_kWHFd`^c+qjjCF!EF z`lMLgx#Q`Vm}fO4QxkTtbzE3fWnGhE@wU-_xP;2MATv$JiJHyOO^wBOKl##b!~>pD zrs?J!>!x85oe~dP!XoRPsj+z5qd)l$la~f*>W*{I!Z>;=EI#nnPp%?7>9qZ3MCkX_ zNPOZuTd!l<sz$<>d15r)=?Ox;UHgkBmFQR6$b5bM4cnJ~R5ue}mjIEV9Px(CV>M%c`ld_=TH4a2M6jRFX|C7O(il z1HVT2%v6$1jm1YF`KNpS4U%kXEI#qsTb}+m$SuPn>)MWFxv^7MzlN%b=o zWm9AExvReR7<+s(6=hRnaqq5AZA324RFqAP#SdKk{%=v)Oa+%=5nDn>@^WDj^TE_u z-2CvPzoYt@in6J(c;9cXyB#4rQ&BcG7QgVvyRS!vOs|5uD4QCKH-BjFZYrCp-~x-w zWH4D~29srGFhNYN#D9~F7;DUkvBr%U_$v~+UmGOqPjeA^2HKm;ys6Rs^kcVunVDmzy4uv}{>>#{+R8k!-?ZIyT@7>}A#@*M=sv>G zjXXUTbDXjdx9r0$d+CS>d!m7Tq7j~ez8aSyjSHIp)Z_BouU>sG0CSUi8ueg)rWcK= z2NM@MPrdiYKVV{;KdpM;`k+vms|OQR^k<*@>4&InrrO`s-Mn;k)1R0nrUCMt2IhPFtn3 zfu&VCh5e{Zkh~I5mtznHpcMwt3IPPQjwGqXMrvXsHL>Bu$(nSZOO(rYerPjG6sddw z!_lMURdg3%Y&9xi#^W1%i!>!aTekuuE`Y2wKvp^+YbU{rj`oQH1&Eff6DjaL@45Xx zlmd2o*%x;m+>V?URTZ5`JDRQANvI?sSvVUM?xCMRll zmwWI!Y05xz@)A!oibc;A^>eA^c?|>4SulEDDHwgg!9PDZATK3Zs6`!a;Z)%(IF6wG zW9|J1=6I9iUL4anJfKm#h?{M-10_4|Gz&d)EQA9MjTIbRA^W8em`|!+m|nvP5xJ^U zhwAIi>+cO@H8@&ww+_rUF5>(~kc3AD2kOrO!}Uuy>0$rj*dG=TFYt#&!-+pE93J$C z{f7HC4zIX$lN|#Rc>AT*^S0~j1;bS@GJm+oALb1Y_`}@c#r`lbyu=^o3@=k1oTSjF zTm(5X=+D83b1?dHFlOao^yXmn6kuqC0HY@dqmhHrorBSpgHg}H=*+?Ba4^KtK)}7A zBZF!VMkNO$%E1V8Fam+0qbbl~lAl=NY=92L@CT4M;<9mLabV_+8%H?ay{m#a{QS3zZ7#g?`zmQAdJ*X1gd;Z;zXSHY320*Z%&iFNS4T!%8e z4r=o{IOtN;F$oyFE?1$9abTd)PBEwuXNfF~SVb^7Rb(F{*5^;?f>E{86O_$CI0HNF zn6_X(*v=MqgAdB)j2|@3k@@&rqVqj=@~ajjJ~TY z3NP%_QN#OLE83*O5g?ovRS48GOmE<_R&6-EwACvIZn#^4Ov#Kn24`>Ut!}-o``bN? zJ#TS;$lI#t-A^7z<1@Dd93D^sj%3dnN^-hN zNqp%>dboi9xcI=d!1w-HgL1@KvX7yEmBub>N&J0#a+cM_NiMHzb5Yj?7bHD8cX&Z- zmRH(|&>z;pUHunq1R)$;?Ay2rY}xTebscc1$2+o%j&v2`+0QekJHTW&sLMw@!(=uH zdoxT{9I+TAgpiPJDSrP}cw$ioz{D;#u(x?H7&n6-kY_o_eSpk4$CaBwMtuy15|tRN zD|}dX*s$R6%BnRVLBeo`3`1+u<<*tCq;tryml0Cdr7c+xGvXM{dYE-7k;12O!Cj=a zbxqy{#0;pT3w_>&s=82Do2;Da{wU;7pV)!Dp;ONmdcetb_=A(8*)X#qWNoa;26t!H zpL}3D)kM~1-02=L2DfXsoODKX$MK_LoLhT;3^uhRfS(As2Ue{XKcTKQ4qbV zhKki-2V3R47v1ls9)!_;5=MKa)iIG*B#b~9F_Iui7e=DHik#%@MY|mG7fh{sQExT; zi@0U3Co2-mdI9D8iv=#yDw39Zk-$XOM$+ob+TcY6$%RB}lU%e73#hCKEh^5)$Eb-U z07z(M&F&>BP>l2{=?>}?09g~e)P&ro0ob@v12EcA*{mH2S2dfplS{a)9nrL!&Dt5I zVm0gSs2f`%*&8JFE@-hlfm$ngLA4H&15PE^*a_FK=vWVXp;$%2sqCOE+q=lf3uK%@ zB$9y^B@xJmH@`zTCAAk4DSEhq5;#1QWB3bN3mI&kt`ogwj^hz~3oLn!^`4}-4Ht1n zaO{LHwqzzz&2^kHpM)q>*aZzCIr>#GvD~SNpeSB}*EcVj@2$DqWHa27OrRpidNS9N z&w6Y1WRZRAavCU{=e;fcH6End*qg176SV!43R*fJI5L=G=C-qnNL!LrLzE4#WRylb z8(vt#Mmrnc9T}13WR#6|Mn*_s+S(C0!ZmN%VBODH%%`gZ^leTuU>)}9lLhJ=OKx^_ z%ue>R{yVn=oQrMmKXSt+8TH-89TYUyn-X`>F~}x#Qe!$W0$U;a>dG+gk{hDWgsF{W zGS{R*`$V8s5jO+rx5zp}k~9M0EJM;BlEPWe0}#D9Btz1!3}+dVkn6yg!yv}ZG>O*c%lWBAuxpws*kv5YD1;C(24WMP~PdN5_Ox2!qY zfFUH4g<~~pa_BatB%2~wV2NpP4(BxFc&gdlg{NCjn#1o5V#&C z{;W-A3$_Za?tHeO6YaBw)TK?V_7b|fSL$u!e80HBX@8$7>gE&AZ%Ek13!gA-g_vE^ zU;?R=E-q$BktJPR#vr|bwB6TYs7#e5op8tCpM~QUYWJ_hN`5`Y^<@Z|Y2BBt+`ozM z*VH_OWlDJ?+0B!xW%Kp{y@eF3dSYhghMAp-kNl!bV;+kTU*iV4BcXHlx*~C76xOnH z{va+}TiYs|^1zC=-gZYN(nz;L`)ewJtDE_3ecVPA5z3<>yFS2x2wW7#vBmlun4$gc zac@}96}7RF(eP)o1^k)ow{OZW#w1X9TcOM@GWHcUI7~%7nc0Kvq$*(BUI;U7#KKLD z3E!HnLf=*{$iYN^O&Wh;i#SoMMtgW=VWI(Nm@7QDXLD|JVZ^b9C^sHnpjU3o$12wS~lpAJkPWUAdM451UMrdxKnZl{qlbvQuPBJoty=G~|^o$B_U1 zIO(JS{k1ztDR&_y5`*DzCt0mCN#JDuL&G%4ok zAdpELrQWEqztLFyGw&xLCL^AZZK`o^6n4U@s#(@9XU}RodpbF{aSM0NDVj01Gm2J5 z;?jaEu!un<1+AO@jGz`9kKGp&BS)y-?QC3p0~@z-8Fja_@#)pKCspPuXXg?>Hrb4u z$b!HOI>$36DDIdf*Yn`>0{({ND~3r?N!YAzELNvQE@q0Yu@cn}M=CAe*LOcbmQ z!u-tw-f-L0i^U``?|Gt50;06U+5r6OX~FO^vV}-XEFsaECl-@n#QeZu!g0|apmNuoT6 z6T4T@0@Wfx>gR6oxFC^kiz6@eV-Ag}u|p0lI`9&Fs{Ax}Hb%4C{+ZaQNW!iKlEF;C zS72`!^(+KMuJ#k>-Q)(MAQmiXbP`Vvj&+x-?fh-@ef)8ze?aBfejU1NYFJM3|%7h|7i(i-bKj9L^)_C?0ZYnorb&ny^ErJXl1M z@8%X)xL~Koz!TokQ`jtQ071tIq?1#vb@|a?{k{&B2i~trLlM!Nnpsg`i65d55lMng zmFzMo{8`*WZNCp%+=dRV$85pbSU2%=k;&7J#;MNS3r6A}#hK!OK5Gf%NM;>N7^~Qm z=sAcViQ`A@3OLXr1*o{u_%EUELoNlG;qV%!aOQlwU5}*@i`XVI7GxQF&^kkQIqdb` z12=Bc%lc*|pA}c55Aghar+qZY^NSVbuG!2~(RgzdyxCO${QPI0{J^e&yU55(q0Sm)kcaQN>(NWD{^{;*_v$6% zC!Lx(!lf#uVzCr@nwUh3grv%QO1ku=fK=ZaZz!QRqV}-yxoX%Um3NDXMQV-yO{aU< z4&J^sp9&E(Z=O_fY3P1&m8+-VhsA&gu&as?MSVpYme!ZMVd+Q zZ_aa>uob1;C?rrFJwpA}w^T>PtnE8pL{uRXEs~D5BG6O3M@kZdqiN9-jEtr)PcST+ zT}U+EY~PgmRs448zZcW44uZzIFcL>ajL3F0pdVu_f9$1~`rd9(5IRUORB|(E-`mA? zz-lptB(~KH5)wp~SU^IusQ4tXni8^;#ud)Kd~fWnKM6u&!a9wKa+6*nQcazzT8ax0 zma1(U(*Z$;>w}0ct%y<6Hk}R|N5l8aJHaIzld9Hm6hnyd->%L}+BCrp4JbVrL^L9* z&(*LLd-ObKd-S|wkG`=bbX{6YnF>6A;TX?BT zzE>ieWFVJ_B?fa#8d$xS#~MJsPRuR}iERus8VknolT99A9Q(}h=pI8>C-{(b#ek44 zIYD(c3$TtwWwtR!2^w4evFyuci5Ii?G3u5Uf(iYT(2qB3h*x8TP>$wuo6@VT3P%s% zuLue=c0&Z9Jrhbeq#$zjB)Fz=6xg*x4J~pH5AYgBHHQZgx{73m6acDtEgBI&ry#T& zjXy*L6;P7B?liO$7}aK1G}Qi&*EQSd)4bkk8U-Rpvm*yNY`MlRUndQ;s=MIkq1W-M znjW}bNG^(Cd$%IdF3xgTktpr6B2{XUgzy4s=lZnc+zpN5Pm?uLlpd)N1t?KXM0`&N ziV32QLq(j)SkL-uDMfXavo)YtXO3lQcid`_-QIu(YgYYPI+idrs;b5XXAk)vQ|RdUrV|{izuy!7h|64UR(qCN)IqXqaxj`0GKu8J`Rn zSHn)tmKo=O3SyT8>G#bQ&DdZikqygt1B)r8QSGYOSTcr0dC=lI%mz>mngR!!w3IfM zfN11wL8{$>>*-LG{*8QURT+(>V}q59@{$@_u)<(j`M<@)z$%S+9%QJ>iWRJ;vn3Dq z1}qZ~4=Tks8=w>o)rq|!Wve3%@IX!o-W;`vH_ZiA1@y7NJ=W!i-LA!)2iElpF?DS4 zH|Z@P3Zy)S>yIbgnU3-`ui_c03dKa~twuu!c^102EDe+;PeCGcmPbA1tXEUvoz$kc z&d4%$P!S{F*$W-j((eK`Q@lKlNvdeZas`+g$b~MzW+T06Bco?7#F%qc8B}LvqrL^o z7;6V2{BEHCU8|2YWEQTn;BO2b#+29`G`H}_MX$&4Og#;V2}i3Moo zFJtG*LeOgI_IO6OoUnMG^6xi==H5^eTX<_m+Mr}$18NG=E6sO||1J?w@&m>XNOiAg zWUz*oTdy8|Zrc2H_(4Gu-!14mS3X#tGIvmm-Kl^MLjGcG482^pjDh zDnk!+=b?|JPa6uPSp$>C5d{CFlV7!v5oqH-d3|)t$&KrP2yXq0zYYUgl>AcQDbepVDpg2DKvxCloyt|LFY-=X1W+rr%?Md{~^e&mNDe$HhsxEUX2eoZe9hz0{>u{Z5m#?60KG2>K z1HD&ENAOFCU6!Xz5>L8I$*Qou0)mjcvsKYeh$fZiajQM9ini#NPH%&(no%^Qg<>QP zfc=OL25P*d?Nxi``yk9h<0)I_s!jfre00SlXs(9F&08{R1t8 zd5LX_b*$Es3ZqtG<`t4$N(&%?BcV=v1Y*HqTc~I2? zm^V5m4lOd*>gaW~G6arOG8QYCv>CFM1j1!A;%EPwhqMQNtw=tR{AwM{%Eu3QWvO(M;!SdQms5lW>0z_6F}{ zhdQ}?TqiNntCJ>tcvdH~z{FS)@=mfn#JP3rq)~*hV{!E~!P`KAWFf-vb&{MsN*hvy zUXWt>phA{PY62w9!wj>NenN0L$b_2MzM(@bBe4dwLi%{@+vxGJZ(Ro!^n|sxAx+xf zGP=A40YUap6Z^60v&d#sr_#+i-xyLPUaRRYO~Y_sa1y0`D#qdlWu=$DpYJ@pB;85E zw>2(Q0g!>`FBRDKp1gq2n^cJs%ZM;k`a#IS)*4?;FqNfIu-e4B*^jUG) zLSyk25HcufhJYcr$=)@(gyqnin8~Di%T;5O>Tcl8Ce?k+P`A8yY=+v(bK4AcS^#Fo z>jKYE#^B0z0Ysh@sz)pzZN&yhJWnrN!>|eR&um!fCx$#(^j1Y@qpY+!v5d|l-R8tH zLfvY2Vi`%{YI9;44K*6n3GR~klK#ef!pW3M1h}=xK>#)RmZVZ@@@&%WO`b)%&2J_k zR7y>r>{378mxlVzF%9*b6}Di&pVl0HFd=seDcaJ`g{UPn$0t#iF^t|hx(gaVOBB5- zI*l@kPS{I;N{c*$425*A#LvaH%v>T?r;u$T*qo%%F$sw;#e#z*e!)S(K{5&%-DVsl z5gHi>F`i5KP^&bSLB>H+uZ~wUgV9h6dqfp!MG0c4Yo3bEZNVKxP-QKoU#3or+s%GN zT0ODZk;xrw3g)uCip6VHaBvzRzc9lrp_Pb@#Psp2A->UmE>vL*tEHIt*K6ZQOp@8c zc%%C&bk8rU&`ZrpNFz09Qxk+$kk~G#G5K7i1v|*%vO@<3H3(RtJcDz=WPqD2!wx2{ zj)utGV|x0Pasg{T*mo3bmb{_b@ZPU{^P@yXKOGz3i?{vi-e0`u>JPDYIGN-{U%l$~ z5B%xh0TR=reziD)O5^}n!YMi?I-|+V0d&H0y2hQKrq?1=(N;J2 z3#h^946Ff~%w#*(Ce<2MTh326AqLDLH?^@4QXDW_YR7$M|v_^OOp&{rFL}$h)$`~Tgq(F%VMU9(ej+V;1ZhF>=;PQ)qH{$~B$hDg@w2Se`Bqda$VxUF zhTlk-lCn9`W=bGhb@9VFW#|nb(6E-$PA7?Mkg|?yrNC!Cl~`J<){GcPn~z$0Z|6)+ zW;1&u?C&}vJXrj#rDsfjz(T6|GAVrqR;+5t&Bkgj-hUzq`ML5S5G8&1exqcx}bg`5n`<;Po+ICB?o9-4h~W@j1ZS{2Kg6Yel}1 z?Avsgusdo&SLcfL=4L3R11AG2KgUx!KPx!*I8P6!xAv!gdtAezNOFc+2k2*Qt3l*o z9#-N(Y5_>14}(#{F-baqdW*9r{GQx8h|7zu4m}^=O7KZ3M{A3e9BMJ!4@Rf8YDtnD zbPjIT(gxn}xMhrMwOM#5;)<}o#i<$}E#n*{?g`JABMFjAT8k;bZpoZ;k^#zd=aF5R z3ZBsPcCdAzu3!$}GLbJRQlUr>E@P;Yry9N#A#eOF^0s~s2Rd;eB~`!+S1D4*=b0Do zw8FFXu7VpvIF={2bLPld7j@tkjq+W%yRrMx=OmnXm)|$5oVV%?{bDaj<$Ce%sHUwx zn(mW-8%~g_QVOeSx?b_Zbc(_TR=4(#@Pad-?w!_}qmLXC?_7tqkM!}HXM;{0z&^++K6T8*S1dit^lvHnr7 zj6N!d%P4{_OG1&*6>|K{bXx^Lmwj0s`w}P>?S7Is;5)BV_Gj*~W^mW#xpLN|wSh~! z3OunL@QoXx$sk~yfWZ0)?A>ySV;v#lJv{+8j&1IyTCK8>w)MLW_O^V633p0XO%Jf+ z&CMzygtR=AP7XUb+z0HC={{hm9WJpO?2tnbUb`IjSv(WhdJJWgz^>6P@ZJVHm;xUL zdmT{aL(PX0?|j0~WH0UUJociOuA%W*Hh$3Z@*QLoufnpu{;_xT zfL?QY*y~b{+bVPhls7`rH$LbLBU~z{JbBD9Rk3(Qwdtbo9I7o{e*trF;`?mp$Yr%@hauQ&HX>wp)piBZR z!gD;Z_>;`L;?&!-56psh=wp_!$Y>u>fS56gW2_C8v;}nChB4@=>axH(n-M0bt6|Ws zmtOgf&UF&AAQ*piV_CpM4RDB!93$dnDMA-E1W29<#pV^wf_CV`SOy~mmUR!`MZa|c zCTv416(dB(K4I7Zrr>^?6>zGzuO?lHz;I(VKu8)|2Qw2$6_c0-jx`oJ>?Sn!b8u{4L=eiZkqs`??u0&mL;%wyNE?bF4+$*Bv6s&`K*yiIWXBh3 z>zL1tAv4KTe&=!+hRkGG`7N!qG31!^m{U-DRp_k9yB%;kr;Ii1sshpjgH{Qmf+6X6 z=>=$WhMW{w7~G}Dq`=buHej`r%y8ir`oK0|nSaqLCI!~{a}r>w*G1iUU;(EcSQDOO zop(_O1xyMosL7?rAyWQkCsIHcF_$bt`#cc&JirsTbCB6fl7m>INdPB!nwU3|{``aQ zyhJ;freXRVC-u=>3?dq98j~g+O<1)UdgU`B`v?v~8O211&p}81*bB5yxvR(rD|-Q` z=$i77A`hFai%Xw55~z)~c$+ntw+4C9T2Aw_eo&?#SJ$-86Z)^Y^Q%dQasOsKOneSZ zK!p3)02t;Ij?b0}EjL+JJ?CYML-70Tw(>4lI-~ zIk3EF2iB&22q^0cbO*3p`*qBY>!?eUej5?dxZ#s^LPgGZJ8j^R868Q#^1npg~(B98@X9GtjM&7Xxq>XU)Yb?XZqu0L>{qTj1$|h26Y_qxzV+;X+Nwg;Q8_aseIKUnIgs}mKI5+ioT~ZM<$R}&k=ZR8h7#@wTk7@xs zvOw~Z_KRvd$6AG67}8#jsT4>gs}1)392EvTRM9&r>~t5{i!ouHC)lTI6ggIcox!G2 z)h?#V@eaS^*`@@08`gcSp!G4>;Z>nPU-U}_wCeByInRM%EV`rz;z`^H!P~)TF;;`i zf=omt2Scn+zp(39XtW^Qr3W8vkZ4MU0GhmWve_WVrFqlPj5FkTm_Vm9q`km>PyPijoFOL#7It;%VQ*dBjeYAx zor^jg&t+&{+y*QIpGyy`qYYTbW^!N)Q8ymgLV8RJEcHzRY#Swj*^Xk_+s|`NYMG0Z zj2Wd%WaBJe=2)ki9Loem!LAO&v=Tt}ITSBZ*=v)RNea>8FMj=n?{eA)c9|q6M!t3S$5%qFKJp#W{Jcl4V(Y4FJzt1FErnun4zVHF8G` z`CBEjLn0gr@0izB{sssqgWV}>AKyS)IqaR10U5%W+$7Dc*+NJlRmWh|@^3QOVLI?p zpa9{S!QLqjo*Z__l>SZzJGH?Tlflk61?<8Q%8C%p*y5uCq_ND+`qHndKqvF^sbQ=W zKCF{wlKZaV6C0rF=n(d zTt{xWzBZIyum}4+KlSX$K_DG{>qCD{er?YJE0JZEisCXMEcY z=zVPl^uFXI8PNMO13I_F+<@Mf8_?Mx%MIw&$`GT~ZwB-}H=yfQS$}RoS1Y8b4C8xx z%LmMWj@f{%uFBX}7aKL%Ru^xwt*(Aq*!wdJJ3Tyu4)Jpq_BQJ_|MNu9EedcDt=z3ogd$Sy4_V#^UNxhkMM= zA}o&c#nwbekh4{0wv|E3s?5a5TXR)ru9cbVWfmxBf#o2j^woq|T;n5g339Z$@eUyc zIjnf3`gElA=}5yRvJ4yS#8_O5)bb*08EK}L7b|D6j_PLUb)4XYDgS;F}<4HX0uwPcz^_%rAnsWhB&c5}GUu7-dQkua*fJfYToG z3v|9r?vg26j^su46fMWsVhEMl9$gCqHEFWYI-Vo#zogUVxQ5qCIlmcPzOQ3DrpZ#2BG45e`4sf zqXqEMHb_VNApNgJ-g>3#d8O6!O0Q>vKibwX?rUE`+^uEFp_tqbME_w|lO@y&R8TGe z3`TEip_FM7Sgtr9%Pr2wa*Ok!d6+k6wO*~CGg_}YCt1Eec{O@b7K@AP-I~u%vG`Qo z^6x$?d6m{vua^B_dGacJ&%Wv$o>g-xK2;Wr3++u)%!#sR^8v+|Q+#5eo-7vE2`YYk z>o{qjd_ZxU&jvuT?Kg3)LSF z8qk`leGXkyu$_s)l(JY{$Ix&uAgQ&a@q8#l+HWbrH(*L*6g+W7Jd`AqabeIzSx7XZ0y>xlv&i^WCE?P&tJ5V(zQ zqIG7mxKM)3tNhdgBa6i)tIpJ+T@V;_{NE`S7b{UZuESgZ4zajcp40Ij`klw(niy+s z#<93O)*5^u4z5|)k&i>fT9vWbrVvshf*Yo2C&k+6*K)G-sXSX`WVnkEDR zJBM@={kATZxI=oLoo~@z(X_F+=1$vjPFT@#9UGc97MF%(YQokr7RO>9;b0;bvshe; zSO-T>F}@t(q~lX#F^k2;rITsKS7*2~ETU6pvA9_8OpV1X7MBKT>W&i-&p3K2EP5<1 zg(#f5-;7Ac(ECPW7K@AXXVdhX5ux8xBQcA`r4gCBmpW9NArUpcLkqD^tuCfUVit=_ zY%_Jo86#upsgRh(;+j5g2_up*^uDo}#p2SCOxZW$I?*UmJeSr&_HrlM?WEM~E|W-7|2 z#$pzWYo?-XYAj~4xMnK242#$jIuyyMQ|5!Ix2h-^mMVfhB!c=o#i3hS+;#%c9z+?)6OzK`Ob1*v9oMt zw6pxlYSiJk_3~?V;W5$K6R*{U`L(*sbghn?Wwz7I6<&AArfYRv^epG6x9FPU4|U7E z{aPJYC-2bVMxKc-3ej)ENUC8@4UMbzucBM43OQhT?)qQK-C1p>W%cUvHp^yt~{NchQX|9;+ zavoO-i+i6$n$zVxF4ft+PhKs7*ZguGiItE$KWpuBUVhh{n|xf(d58n^e{0RdM8i`#qbCgqnq1Mb`D)Iff>)6$So zG+;+GR4hnMlRsJ!aWP^ScgBT4*tIg>~T^=E*M|WfGM);t9 z*qWDn89Cg@J-nzb-FlAPv&HFvghzuY9WXZ*+&aX~VG!~un-F&EFyJz*;D(p%)}h`9 z?q`i|3Wy*b;0Cx|mJJ%Q$|{{O6x_vZbdrJVoW@#yv+7j@wCIYjHK#OaQFBEaw2U>^ zID{hH>_@K2ZIwX$zT~w_i+*?543bxeo{g;E*BxX z9BdAGZn_cHlMMZVJP0Fe+Taima>AxrB|9H*qpSF8fi@)e#|MNic~eZzcZF{e+VUWv zap>*5_yfQwFDAS?JgB!iKn*C_KKxR+5#O&|$JQaX@Ein7qls_ia z(u)BzolnMrBk5Bg=J{H|{c)4ZUORoF{>%eP)>-dm<0NPnXvqXjIn0RU@xg~mzC?Ip ztlpM}=ONJ=#({P!h&$c#S@iJ7XiEMq{>*6~44MBPBd1pG=O|1c_y}-S<2wfcSQKX7 zI^+}RNqYhCaxlg-9v4JB=0f7-)M*tp9lRF#=3b4yXU>_!___i7eepj2PX6%FKw}me z>E*&j6u)y|8i!8LY#rysVfG9hI^oK<&E*y>YtEQlWCrQx8(d@tE;5lBVj25c0LNJ| zF2<_W>+-bNHuM)Ak+ilV6w z?%{HJ5*{4{1g0F0HZ?0gokdGg+A7Rr;8`eKEjIH`k(4k7m7{gsCh|84*1>DL#cNWw zc8-Zf9Qc{Eu@CSQp%18sPipJ*i0c%T2*wy^3+8!F6~oDre>Fb@2o9KHo95ul{LUbP z$inSWx-D-p-Ki&uLf2u;8xnnkF|9P$i!^KWq?ca{<_}{>4{v|Z!+$t_F+n6pQIPZh zES%5OkmtyO`1*cCi+cIUHom+Q$(2+VHCfd&c7C*F14~6-=I-O z6_Q5~oB_H<*pon=E~nVLfc)YNYe;KNCSZinYwHO~D#u5NSL!FLZ@rSo2DV3e zY{0&!gmwjo`teruSDS65y>Q%dY1D(y)pWZ6*FBvDBk3a&Irov_y{0cJ#0XbRS~uPw z6$tPNO-K`urK7l6g-+7ZIQt!~>H(lQp2^z{3XQAO?DGJdlxDgx?KrP^O;8^)dd4z( zQ*#yBUPV!6&!koKrsf>2{R{1XS~I)si_|>9kp%z{FKF{Y#Bq@(wIo7_Fzss6XBttz zF&Pj&zC(ExTSiC; z;5dE!$$qsfUm}Eq#Q`?!1v!IF>Thdu7`>?_f;@s!VNGnyi=^?^b=ytF>16m>ge^=7 zr2&1|BR*f07_FYNsImR+gpEr!-)N1Z>UOd5-*aR7uuyP)FM~pB7|J*Z%lz9*<67q| zk=N5uWyu7+4bthe8YW>a-K>wr@99oGX@*aC=QvHb`rY;kN$PDp z%Hz^4{F1p_+UG8R-lgXq^0!1`ZcNst;0jmL5fLkDpHX`)&-FH$6X8IEGpw0_0ax2J zm1W8*%G35buF-mH`2S4-H{Agk?hfq9F;p;q*C^jST~*RiIPZMu37sAy3t4gMMy>SZlF|Z0NrO8S*%b=(oOz?geZMhVB83UQ4M)ZG}6w? zDvNN_Y49lBEcnJ16HyvL1dTwWCN0!+NQ_Z2LRVBA*;|O%>RbXt;!5UiO)ex`42yJ^ zS`fJaKa-GAG&%!-F$hL#AxMNr5FGWK!kOuE3g>Z*!by}VT%(FO7JEYBd(>7=;f9MI z^_z*yX0QA8+Nc>8XN_Ce4Ad2Xp)kIwzmfUN3gS-{&!L`IP(ltvV-@t-If8n$7DisB zZ^tQMrX|^;rQY~a7)6B^z=YhkP+$#;V;y_~Nr<{jr3%9ZG;w@4nQpM1Q)$P?$Pkr(l&B@{9_0dl?E@z4eH>N2m=l&#_I8MW| z2}?W;v7qeH2ehlI8ue<_DPgz|{Ka2qmgbay{GI;B1@3Nmi#!lY;-@QR;k@{Z%#_{n z&6>Z5Fs3jjx5)5>#&mjmNv=XNMdKU_+DTWK`l6*8sEi+-jXv{*ek8TQ%tu2_uR4Aw z#1*CH=|2e?uN^nvLOfA=)h!UleLkBz9kUWK1*s|iVR+HFH1^VkVNcrhuJs%7fB~U_ z)l7dw5z*kwF^GfstB})stG-}Vr+uQQ(;eyM>U2$=uE;@>){dhES^}c6;SDZI2eak1 z7739g-<$cl=Tj1VXD5;5-do97%zYC^f!8PVgD2Dg!S@y(R;Y`E`m+bS)g9St^zdK> z{>LCHaJ39?S%Z?hQHq6^!b!MJ8Y{2XN?T=82ci0NJbjeAX&P7>4VgQv9H2d)9tRMv zEiW)gh(v3UP_qH`cRb+aieYq+zKEELua#rJs^d+(1_8LzX>CCcvNmfB9oPC#V>LC#;yJ!SRBg27EdsGEpm)+0w_-+&2Q*CO2+TG*w1Ajx zbSPNWlGcEsf*%2z~;h@d~+t%Q+ly(LTgO8%{sWo=_lcQtZ)bVBeT7vpXNl}r``Ek zK=`mUd$Q#GACV>1g|7&I;zlG&vYTO?DlJROJSLusRH=$P!%KJGOf|NG$yj7)or$u* z2#y;+-K#5uN%xJg=|vJha-M2rzl=9#*QBk*GTi#x$Z^P0rTa#jK1g7}PC)hL{|JB&^n+B5N`^1P6EwqjYvi;ICC&j5 zh7bZ?c?Q%;C@5l9UAa1mpFtEI5EZ3gi?SHo9=I z^yZ}WTEX*GIp#xW&*D>Y65Km+vS9MQwE<-~bD)gq7-KKKrU`)|OSdPL?W}`0vD$^~ zx`YSDD!p7|^A3~-Fb}*c-*^5Kz*4hM@H{D)u>wYF&kw@>@OCxabcF@ zz>dh4zfZ-{@~#9=gQ@Gn3CIOxt1) z3ZrNPO9jB3skS!o^%2$})207v65Wf4O_uq71@`9CGAv!Wmry<5l( z46ZmGv?O(avX+Wy`7X&~Oiq4$ac0Z2MjEcE@qBB4V>XQ=1DtMIQ?h=%D9nt^*(#n2 zTQ$=;)jM$jQi^$kFVh_e6RAxyUc!16DBEO(mU=>iv6XU2Jgbho;DH{;1P{}ODuqy0 zqco_-s3{=udr&+SgHX1msgwRUk zm>?S~Uzz|#HehsZ1R``&;V0rg1#4aso&Rogwwe zWac?cpkZ2j{i0d55L*mk6anok)rRc1$VmJ7M_4<)b+##yXfkAb8Qa*otH1HvYSejQ zq%iE-%?ver3fbIr&8^ZsYTH4xcu`==Eh?;x34neZWBLH-04h0WnMsAAG}+ldIFiP3RPV-u>@-|{0R|4%~7S< zP|OI}lFh-MojUyOBB$SEyyXO*ks=Dzo!=MU%1^UGTuZ9$JIa39~p1=;T9)y&q@^ARKB2 zsC|~pT=0^7a!=!oT(1P@0zXPfEK31BIcx{q5#ta zv?VA4vx@B3wn4EQ-gztY_k#F^ej+*5B3yQh;24{>tqt?;9W;Z?nk!Mf1k75W=&SGC zkdydk)Peh?k>t=Zv3)VU<6$VENMQn%+cOhd)@ zxl?PhMTU4+M!#ayQ+isEWW^q*Q-P9tO~s)#O-McBSD(U6%u6?6>?2o2# z#YoP7gLRM5jE%9F)yCfI%aCL}K&T@+X$f(rJs{hd+X}i^2H!b=Z6J3>FV>Q%bUS#Y z;pdyIZ(}oP3v3B;Mt;W}gBdWuflw)xE=Zr!SQN1_D!|MH%|}e`$T7^eKKHWm`x;Xl zV2;QaWo(R4L%2MAlPR}~W+XDYLdQUoXps#L6=~I|`iN$q>#~FolEr(hs6?AlO|fa3z93z>VPRA z#j_K3Ogm0fNxAM+D-v>0penVT53q-6{(w`As|7XWs&$FT{qozjE&)8POCbF8Dl%+Q zqOBm)t!3a>r_++U0QJk#mRVagA)0O^89+CM%T`DHS+kyKU6C1Hfxh1ADi(wS4@#*a z7BPbFFdb#zW!ahm2U_FcQ4Fe5fBZ@HI2|y;$Yu5*09UgfS`B+NuB=4D;SgW>9OfFz zB$~;;R@*caF_@o6@VFyEu9+}BNHeK8yIP7Pu#R3Ew@fp!H)YL)*V0Vv4U0q9Ol0+K z22*P$NQ1<{aLoh_C%(0;nMhaAf=I$qq9Z~@FvWm$e1E1GXw%3v0_n^7gx;>11bpL~ z2?q?qmg_yJX{x_83=Qcd{D zR1@Q<07HvZ6E-n?qB7OQtQW@gQcaLQHCIhgcSO!C*-SO@8OZtu$(B@;FjGx1&}z1I z)x<=IsV3nV7a|D?)kOOUE@-N*nsB6JO4US*HUtY@YjMo)T&?p+N4dNMNle7-QT)bz z?PS_Ww*J=^iZ6TD7R%n6P^>EAhZNEQaG-5z=LGt8rV^8r^?kjz`AX|hzTg|p<%%a= z(HW~u#o>@DsvaTVhyR{aex~VU;T4Q`D;&YgBsgk~Kikjn-zU-bI0Qo0d!?`j%$?bx zKA_7*5>;o}kt;p_IiGzCRZI2IAxSDE5Gsj@O7wa|I(HzM&lCk%H;d~g5zS=#yE{<}`{Vb`5oZjcPVn=$ zY`mNCK!ID45F40-F|jVQ-5^EHAoKa`=%Z27(&*gPwnj%ylm4Q0ZZyP$L~s0gBC2Ti zC6$cC|7a7P479CVPem> zEDTXt{L@_?bCTl?@zrx==bo^K0`Y#WUope7fxK4uoBjXXKq6b)29ja*fkbqVhZdOj z0WF5(4BF59zXn=h+6S~OL`rW&)n+_z-_Ej3l#K}`)zy4oi+QYVU&~~v_TjSaRnab+ zcsZ4y3!^)gpUo3geirYb^3zFCl8s0G3?USw^cktiZ-U6G@q6Z=6lUVlnbRrRwo}eE zxh-WBqo1~MWqD!Kln)F>R*aN`Dw#3U2jPqKFkT^LN7;%>FTW#Wl$?R0aSZfWL~x=? z*+5A6+H3g^mcD$p#E=9FXOj5O&M8{-CmDgnax5h>If90Z4GB4cNauqATgxC0Y}-vs z4y{j-GUx_?XZ?*=TJ=D0!GrnjVWLGL9AQ)F@-G-yY@2Q7Z{~L<9&PC?t*k)Su?m&S zOq1+onQkrAiu*e_WaiqWZ#h6EsL8z3Qr5I)pi3}aV_?5g-8{$)SIj?8cE+EZABn(VtwV81U_BtK}yzZ`l=!| z(_g9O**SvIuU2MqJ2w|G2~daDSLqEB^u5|XU>cK(8Kw_nag%{8)bxsVB_VIXj2jF< zs}}$9|0eJKqwK7zJn!ent-81BR#l!<1qdYSbFZ%{VERs}pGSeVZQzDble8jcrg+)SzfkNjFODMjIq*RD`I}PPZsQgGNC`jRS2* zq0RgG?tPx;-l`-JyQi5yG*Zux`+Exm_~Ylqt@%!qQvLQ(O)=mtu|ful z`z5*i6}VzIwE{<+Vleb8@LN@DrND>i5Pqu3aZF{`;%>kLgK6>Fyy8=vP(u-kc|;We zXq=dxdRjikkE|Ra4hA+}VlIe|M{@SzOH5tMa;MT4!DFs#981KDVT|GvAn3$wQXw>P z;EHZjW*flq2dAv1epKALQcE*ZIUEXDbv)ISK$>5iXHWa&o%8st^f+a8O;nP z`d2^0)V6BETk-H0ED~F_Y6v}xMQODZrxL+5POVs%_ZWrXzWAiiLiPV3mNNE*t*5My zjF%U6Wtz&|;18%JCqikf7O1v(kc~HnFJCFV-#@N+VLg%L>88a;!5-~W59lO4T#uN! z8J#ZvZn5AT;DN-MQ`Lk9Ml6rDZWD`^d?Nm4)>EnQaF%@w)TS!=#h;mOJ(c??zQXNd z@8{bf{9ko^%Z&*9i)=v%jhQA%BMw@GVJuV@uK5(~Xc^NMIYX8LVJBr^Vji}*828Y; z2?$6+!1n*GLWD$OVKKOg8*7wq@0H6+T^1J5;DI80ogyAk%E&5_IZXgCCqx#*6}+H~ zKx2+d@`(Y~nob9%leT^BEx)a|I6}M)qb4pf8?b(oU7k-(i$?~S9Okf6>Q+1f$Q?uz zAQ&6o@GOETDSkxMr1;KaO;+ibM;Et$ueRlV zXyg4RT^uCTAwx0Tyc2F13R`tip*h{$VK3nY5W-t@b*F1vVtDNh*lM^Msva~}J2^2majPIVn`)<++ z4o-t;OaM?-rQfK!JI=~ZM$#z#5u=Uz=o(@CcTOlrDsaR#C%_j@&H*>|;ba?y$5L;X zZHPE$Mw4*IVjPePV*VkUPK8ImMAx^s%VV5pxHQO$Rcd!ZJe9UDj#nwRL!y_qkjpW%rKJ8NOITG-A(ZY4G|KvM^W~QDf5U zL%J}dCJ{hI=uy&P5Z^!42Eg>%@ZSf}o`;;FmzgQkkQ zdpfhBA|0pQ3jiosk|zzUW&13`W1Jizpam_xrJ}yt`XF8m#J5%uD~**b-OjKCJc35? zm|-#Sm@9ACi}Wk_hZ|Hj?x1r0#iZxrV~S&yp_GVOk+!l%O|6@Ryw}qSi}bVU^~>VVioCu-MO?Zl?VC2x!7HaiIbDjGm__m z0hy^JMuToF7#-1Indk$O6NNsMS8HO0h}R@{&Co@}ox~L}G{I#>ZN-=%ln5alB@r^9 zEDsYR>Cp(0(I`aRMC%Sqh_Go-T8>MI45QExBBL6Z!>muQga|7Y4EOwzJZqE)u9p4~ zP|+iQS~lR+=d}3y3H{dSNHt2t87GXhEu{9)5+|tHl8v$%BC^x^Ie~q%ss7jF1a$^Z zAhr`xaTJ_@um2RBV37dB>ft$IqAUa_vPs;Z)tn$x0!}F41hMgsijC_#_7Am5E`sN( zpb6Z_UoA5y$WH9yW~5PgKKh3RhnsYNr|Piq1)nKcL3xuFGGWV_490~$CW zY`a??#_8PQ$FB5fjZ9!(mVP0;!_5dxeJWLfGcYDGTcCDCIfY0B}ro2KL@T%4Ss^pc0 zJtc(@eoE}3S?p;st6fxyjjY9qVuMJ7rPBwly5X+te)9Rxed3B&Kq;AE0CZwrPXG9m zTmSk?SMUDE?Rj}*rAN=fJeCx;CPg9zxmHh7Bf4J%A?|a9) zU&Wh%`~cF%YQhZ22tetGpW&#%ut(U*l;cm!s*iXK3SY}hSfvUg)u^%303Ymu9u@$5 z@#?Ts_j|WjOoTUVP9P?Y26>L4j7;RQt`ZXqGnkQWM)pICvym$XAL3{q2rT z=f7|B@MG9^Y`8j|y<)BOu$*0)soCX_7nCm5N*>Tl%{DD_g|IH7U_29^*TJni$ob-e9w{V=k{TIOp}j{cM3Bj9l$od+(KiBfAl8Up{Vy0gTrTdI z;9J>QRJIk+K*Yl79XbEC^F!bi0+oy8uox^uTg%qgazvS^<>Epoe94{1gJ_59?=Ayy^RE!!bj$CiPwb1$l)uU*xea<%*@M8$=VTq`uG%Nh*DL`@1$O7EjUKRmB?k{jSF z1-Rk!wCuI9v5I+^c$>#O#vqY-dR@xGBMAW&#&L)6I3pQ@W??sbaB@D;Rvp?>!b>At z3mwZnpDHa6G(<+SlEE2T^hDcq^S4?muc=2Od+?u12$?ug!R~)6HQRh~sZS;jql-QGk!u2(w z0~;6ZFxvJ8HpSOaj9ZJwP3QTb3j3l~N}$&0@gCI7@WQC?|$7 zsqTO{c5-R)Z{z2|%Qhp8rV1%OLa1*{(#fKZSXg3M93c7pC;-cB(`2v={D?Jabm6b0 z%o1ravIy$rKt^be_=bIl0a5lzqS!FQ*42uc!Dv|C%X_v*TafCH^3DWl@z)c~1_^y2 zE5DdMyal5$XFAXv#mM&N&R1bXNZ?c0nuk~^$%=~g@dmahvo~~_*ai*$Q+gw={Q#c~ z$Q4pEVbfQ^&p&}#`S|pqY3^S*$p2DJ0a{xqV~_z^;ZaOgt%=yCavMnv6hfIQS8fIO zFfEQK0#UoUxWlLbf%jA@^S_Kxg0d?y9fa%3#2YeE)d+Ln-UjU9!a9s9lpNAlS|0PUd~V zbQ9JI>e0b&VtM$)GpW_&2ZWlc17?o;i&=E8yqkn~ia zI&Kw97Rkz-(M*Z-OxcYJOlK!23b~TMWLCTaDGKsB#`UBTru{zHIVYTOP8hh@_8DIA zDqjl=Fy`(`Xc(MMg5T@%hy?t05x?33|~B;&|$tW(V5;-30)W)jeS(D~0>Ac9&Yp9FpDE z32|L+EGcCpU)J+(E@XQqpV>Ns31ga> zSwF2emDr{;GD4JIpos?jJ37O^eWEa$F_(K}i4%&Gu{eW-RZx=o?g{FRNT(2$hLBQ+ zsG#LLfKYqt_Q$?2Qk!M@Ga~DBZ*wN=JjUF_{b6>aQ3ybx`+bVikA|P=qQsaTy7{?3 zS?GQ@_kE%J6B45+1PX~*%LA_>ttI?K-qX+Gyv$d;0UzjaB&$cJUm1s#-&!VHixW^g z+|y}~52Ccg)n5US9SjH-D2P(B1~M8KHls*~pW8F@bpgZ)R}@#;6u9VP2!t6GnRtV3 zYJt%iTcNmuL-+2Yp~>(#7u!R{8-pxj2{?o1qvSuS)(S*TNWw}Nqdb&Q*G-Fq$Y-$e zD+xeT6Q4YEjUK_moK&xzY%U@fmro~(eQ7poI@P=m&|*9gK$gvduY$Yo!JSv~3}bES z<{EgG!Iy_QDeRpi$_2wQDUgsDwLaNuII__WcxGNJl@IuMN2eSa-h1KJ*MeF{GiR6I zsmGTo3`_@5cpoEt+)xi$*J*j8oOoGGGIvpo@5x-xFi?D!h`r$~>Kj{>uvIFA8O-#Q ztV{>Reh{P}U4bJ;Dpmz8YMfPkd2~yLqs=He*NDkCNu%B)w8YO?IrX0Q&lf zY?xsIh1zglGz4j$+FtP9IDTpLEh6Ix-(Enbr$!g+m-^+y^O^9J;V`XUFP%;=>n1kY z8Bjkq-I;0bJ882ZqCHHvOz13Y|39&qzfiCw+d6%Dv7B+IsZ!)uV_s>z$k$Y3To?Fza$h%=Q{S#=CU6Zo{q*Qd+4f_}Rx5}s$`9Xg1;n3ru}&ojUk zKW3!K6(J7msl)(Fc+A6mCl7UKzS;2&7rH9H+L z;Mv@h6tlP;%!`X-EzV4x=kL*@eyr(6RM4%fesni(7h zF@N|{25-*VdR^;uQ?t8hRM9SIiOCc8{evb4kgqs*5DA0A#TgVY0aOFa1RHlu`p?JFQCGWp_kwD_%*bXrd#uo^7943^uQ`x_GRd0=+w9k?N^DJb{jJ9P zO6iuodWKerfMbS+PcH1@C|fyRw^uhylCGe=4&!R!>T+eCdv!K==VZLYcNt1+r|4Z}|kl zYB~1iut1D5eH|^{b3cQ_CQ&M&6btn0tt+gt#}d|~`XebEI5$Wp8L!ux9^%^$XxBS5IUnbA*aAz5 zzEycXq%}TpSJ1x){o2;aG@0Ec?MX=ku|yY)Nc&M+qFw{W3~)YP!TDecIK?~1W$*hx zwFqNJBw4RB+gXFCh};VPWt{S>QK(0@?vtCtcfwRRonk2wK0Ii`6AZSF-hMn^%VPD_ z`RoqH0J<3Q`Yvrt!Cj7q1ANgnUmY@aQrn@XK-;H)D)btW4AH(pn7U%`c0Ca35+122 z)W98Y^CxZpeIp%4Ktk`%kW6Ay4Z^-}eo@Hjm{9<@`4l8$iEyHuL;i`Lm^N(C5Lfs} zj3GV}p${Xmc=xz=GBnf25YCF?b4HnZI&-uccGDEyX|uhqK5v=_(zOYG&8cxL0QuhM zvL_maW;oA|iTb88D@f2-1Hu>qvHDpT-0+l2I#g?-EyTe0SAvDJ-zFo1S4`Tl@#<1W~Fxr<(Q@6p%{OPkEm@| z&%^qeMk+~45vs9p%T@R;A`@fpjKm`_y;o`YdNOmk*Qe=ij6{k~$kgJ4s6@#S=mi~d zl99fy#h^T@z14n=NRyh>j-MWBt6N1YiZ7Z;PZZD{M0sh3sFASq`*8HU?QV}z4*;b2 z$VBX<@bvOpYd2)rVfl&+iw}*HVDMqIE>e!SHWwotFcjQdr7oZk`}Wbyk0$uUJnC1} z*oHE%#!u zXw`?X{XtOAF%5i;?9xU01E(XRO&iywmrE=1%i<<#!MMmH2SybPxGt7HUzFK&dMS5{ zG*`#iF-uPt;s_YM;})fxNaJ9=%0pq(+n7pnn`NAo_O67{aa@Gd&EEnv?dfBY+nv{v zxS>Q1GpYcF_B2lDrS_%QLcMSsC17DTjCprv?nPPK+!bO$cQ%&gi6wi`U&)~7gXu=v z5V`G9UJ;DRid>MOkS0&V?87c}XS~e9(D}B3qXqpi3b0yKkS;gE@cGQ@#A3Nu0;a>T zqV1*{fD>O%u4Mq#xmZpm`YWKpt<%GoPL`(7x_Ec%Jz%R!gdNMMyVK?Eao>H&1O408tvb$rI5=FmyHbN z?~WG_nb0)DXJp0%i2i8%p9=hdjPSM{W-)TyJ&0RGgp7UeFx}|(HXEmk5i^WHV{!Y) zQA`-!4ixw~al(kOC=84vLn`-S_FlYwylqRY5`;fp^Al=h> zbeCPMd9V&tH4CQ_h|o1@PlIps@NtzGNSQB|iW&-3+o-DJLKlcH+dD+!l;O{pt*uFqx_bxCOHqXactO^ybj*qmt4sFjh@qs z!^Vd=?tyazUYHNdY@D-~@XR1Coal-|RTR z?2D@*wF%-;D!aZ5+si5ZQRZ7^;loY8_|Lk{tIOtP%p~_P+N?0zJPbxtW|x00jFL^$ ztnn%5LU9_$XY&wz3R5O$YGm?_AyXPfNR)%+NF;66k!Y9y!$^b+vgzaxoSiT@DtN-l zJ;GX?tsmKf&5?aug=|v_cVamF>o;lnfbHCbSem~{%WdC-u17VUrz2j(dW?$V1Nc|% z*Vc9k5{n-5t7^CDpyV7j9rrL75wW+B++{yS8_i`=iwuRf^O+=*Y%3SW4CrVd)mzo{ zwcP%*%+66FE@hdf1uK>ncJjKB@>IrPpV2;Sa6P6?%fs|$+W0VHXe*tVEf5FScZapb z2v6)dITQ{kL*QJVl!~CfAmg?t#Wm(@t_~~-pg*6-0HQxqT1s=knuB(N-$G~&hs2T_ z^t<+X@z1nxrkU6Hz50B>!t)Vu@dwON2<_m>& zb0Ey1gEGbE2xKsb>yRSdO^bK%QkIc5?NzXQU+<_p=PSSeK|jSV-E!K8cfc5?PRK~h4;cnP_ zX>9r#|7GSjBt9ZB$@-n3)PJ}5u$c3nhjHV1-#5)#dV`dErkH(`2 zYHS)rEYYNlCZ(I1CTg9tOos7UY`>}>wGAu#%G*9Tu;tK}Zp-ZosuG_LicjGZncZSj zaXj~gRK%uYDzT~Y(&5>(DO~fr*wk6Bk5{yknJR7O?6YZ~LB(Jy&F-W#%w}5Oa`i0* zSebMhQP^#9buSu4z}gWUMrUkf1!o$}Yh`T(&}=XXcIp#@Xn+Yan|%za7>rj$!sYE4 zFIVo8RlzHUlwKJVxi#o5_{kn|uZym15J^Eyj>^oZ92#!!x_dnUaxkmU7&3BZQ~m#B zGf-S(zIcaikRX970oG+<9o!`=6}AV~F0gAO`)-r1i{zL#Ll^JH+<2)edTJZ+igecR z8SOJ+$^u0o4B2R>v*vI%6w0wOjG-fy!ER!Jy>p_ABD7f@8BP%^I%q)bzi$&geLuR~ zYcppuer1Ui%7wxjaTu&22xYqp)UT01Q69k^n33R*jVdtCGWL*8k3V<2_ zfwQ}QigJw!g(?-uho)@d;;IReK`A!IMO+8aBZ&_Nz?aMcRnW#@a6zi~Fp;MJL@|ic z$z8;yHi4l-ql^3G1(@GvJKsRHVyC;-wmM0)4VmaC>hd%~Y(TX}-WKZkg;pznQc%Pn zV?3gY7>L0Y1Ot!=+TlR1B311dM2i`Zw0M$Ggt#akvkG7DwEfsM3c_c-tJnA@t|Jv9Ev4b>M29daC5&q*t9tKf#r zt&3bhu zd|ZSBpCdcopzP1Wys!mMNGr zr`O_1EjGZ^Q7@6x;q4VnNNAwQU}DBUPDx708*r{sD9KyPMlj zCDv(ee_0Yf)}R0?3yWJ@FeO~3>V!6<0IicBtU+_CuhK!)%iGk4oeZq29^ZP`Y`1Ja z0`U`sK)%zj3>?58lvI~Pj#$%LCX!SkE+n^Kyo9lcJr988>+AljmZ}bhfe4}MVxjn} zj&X5~T@FH?#8MW`>M?I6b~P>DRP|GAD+SMl*v&nQ#!OTbAPiuPRFDSV<#L(YATlxH zc}?mVP~O>t()Ue*OuUCw5+eH3D86PfdKgA|1i**r(p79Q$Ja zg=1eKKg^S-9{U8Ik8bQ&5lj@SNl~*yOOiyrAv#siXum+ofL9%}Vo{iwStN;Kb$hS-IwO%1 z6TJ0BxKYfdnHrZbg0K&rlX4m6;jyMgY@|Vdhbx8Xiv;1D-$|O}!Tp6305f)9J zwJNVmR#f0zFgX2pb`TN2#9YnV2M2?R;BdqBjZ|ZWzxM}EepUG z)VDSnD=Uel7Y}zg!Um#WGE^Jd3{qJz1hn_5W41{>Gr6+F7)9b7a_pGdwQ)^T+6A6+ z=2*x-Thc}RQUFFqSMs9hj>>Xwgt<50o0t*JSzfYOp|jcTlBRO(KpbRoW_YP4&<4Xl zCfv}AJwN>PmH8?>X&8j#Al%Tkpyl4WXw%BY`?S0#l+KB#EGvTI3ZRw;PeaJ#=I2J_=Wmu)7VJ2GnOAyNA1 zDoX;ZB!VDorh2HiC~m=ZaELj#maq}M2k9zFFQ)xgzD`!ELbpcl4~@64O{0ma<)r$u zlV;)#7G5X10qG)~rUtoySIH(Or9RAeumoKZA{O2wSyAsBN~ukRJWNm=SBE`Y#shgixz;?hDW(M@@mBB8dy)k@2J zLW#0D)~<&MsNIU7AT<^nmrJ2@T9|1Dg^3TKWE#VLc9!KUngzP!QBDdVUy1yugvHol zd-W{WrH;q=jjT0%kmCEw9AR%H30h-6t3dIVJl;jwQ`tiL&SP0&Rx=n(MB18WRD}=# znA(&xfd_eCR$B{cQ3ubH(O&@%B)#Rj6j zv9;UYVn@{#WqbPg4bumcb<%e0^m8p`t=NH(F5`AHp)*srpWF|{w z8aBxuWoVsavxIP7lPsQYv-r_Cg?y!iB1&*;)27={Y|CWX?D`R$Da(d9D61vG33*n2 z2r~W&4id&lCq?ubDnXPOt8xxd46>~xA%Fs{tntmyHojdd?wrVuxuT)<>G0fQ09eeh zs8;^6*9CnyvMupFEi!%unW|t^F&HtYmu267a55?a!RaC>tL~5>A{C-pqyof(j}Z++ z)h1BKP^u-$3P{ijvX2n}$MW6YBrd>HrXvS z*T>4P;tTFH6_&wBtll#kYd-w=>4U%e=O_N@r{BK&U^3S|p*$Y;nr?3B@z=UbyT_L& zyb>m07Zi;)83@n_;E}-)TyYM#gSew+Irk}5QFon1;m#j>X4-KWEvbM4SFBF$S~7Rl zK?9zBbIHyN`^7q%pQ1{e%~rpF8g(CLNqwgcjqdTzFyn#+(`Jtxx42C=iboiz0zzaP zDUWA(jm-e^*vv)c$Qt25g&Qi2Q=)2Zs~^29k1zI(lhaC+2S6KCja4CUu)!8d-7y+x zcPN&fmJnS}N|YEYm+FEM1ukM96|hlD@jW(rVz(39&Q%Ij4u~{nOE{MSrRIED&HkUn zq2h5aX=PjWtNnx6PeH7Q)EXgeLKF*suhi<~byf(wasK(9v^KQnnNNBB;-~ zr7)FPa99Ir2^T`a1(!uIy~b(+Lp7U|zbe?M@ObA9KTD%d?$3U&4$! zPgBIPG{3S8e#uAX7PIE#{m+38u4eEQ5nl>&vUHnw+#6H8y&~7E# zCQ8}fQfVf&TgA5VwlkFE?6IOkg9}tZSRmbz1pO9dHLLpCU({=;icrL_*564dHW7rhwlB%EkyrIL}Y zX^U6$TRBlYK_t6=Z;P)~$gpchmWJW|7>mZ52uMzxSt`+Ox~QSY$(YHKbyMZWD&n>O z2NbYKJmTFpos>YvC_^*&-m@}9{BBgcZy;IN)1ze2sa}N%y(!MFAc5&cJ+S(F%4#NqGx{VX**~XWfWljl(voTN3ACbJal@3VET;rf5hE zsU0(OYQMfgEuQ8~q7do=)ENa9FapO`dLhvZFYq4**| zwiV-x&Sydn?aYeN(bS8`Czdk96tN};iqG1Vrq*kjPtMS#E{IO+q;ot3a% zC*-AG$_aS}yU; zxIIbkR4CxICYo)XHyj9i-cR9F88qHcA`Cto&eW*Wz6XyvX(M584UZ=zx-kT7xw2XmM_Y}c2zy1?#KS}|H$)Ie=7qwnBT1rrJ?Kj@Ka znCj4By1`no<1fLWAukRh=xZ?&{j%T^(`8bMsRJl9^d1gMiBEK(!hEy=&2WN5awXub|z`#&!Me5}yCEfZSVlm-F!>8Mtt)@W+CpOG5KP<}lgABJ8RZ!e#T<1`Dz3o!D0z z4wHrc68}&?26BeAur6!Ff)EmvU`OVFqd~R=@LL83G?t0LW8t}W`V_81%Nw&0Gx_gY zElH*DLccxPZ6HA~qb&3$6k?t>Oz>EKiSf9`7pqkAklJVAo@)5eie{$Om`1!#;id`e zkc~uoU?b7xpmmk{y<)jl6=uTT>W-?Qq?QI~3*Rf^=msnZeYo6Nl24IhhBIrI&rk*y zG7<5haJa3qN!qItNHa?~omHN~KH|+{WxkPNj5&?)n{B30>9zK!(>!INWqK(C&cjJ! zM*TDS&v5qxE~azwbeTS%xKiV;X~{eLA2F18_fH4O24$O^vhg1=#xh2i7QF+b$zCl& zn)8?MU)c3Q!S3Jvv_VkN4P_y{dR#9Ho>j92i4BA@{ z#BFsC$^_VL(6bT)+Li;rDPK{sGAwO4z~5`dz73A*y@^=3koO8;r?|sEt<#^^r#=Y@ z^5zGtATxDhcuC?)NP&zzz)J|6ufE%{>MPz}>nbXs0nvx1G{hxykRtzqvSEoFk zNi!#(#Y|2fzMq^$9#kHF!d3KsoU8cr0j@GTpWur0Awp)0f?0b2U$V5o)_!xt=J1P6OeKXhhh; zBTSD8KK-+}TbJr0I`Eh2xycv86Sbs(DZ>jSM$+)PEvp?1*I~ z*3ZB6p487z7$Tb*?$YP-fzA_`Id6q~_E#`-aDs7_SOo5Te!f(efrV*!L@F`{r_D;J z`R+iM<8zHh z_ykKdWSIQJiizQegSqAAd-Q<73Z!AMwZO8|SAQ#78@-MF@r5HU2tp7tF#ITYDh(51qRcf+2%5)Xl9%mQs$+Bwr*80N z@Y$g44Ns_8Txiju*lp|h;LFr)VYW)>z!fn>0x*cwZUsF#BHXA) z;f~L!VKeXfiE#@jY^a7qxTU)5>;6YL?8!?0Iz6 z52%!g4}^~`c^(uy^p!t^9Xy`U6QO3mnH6M^xB8@Yw>3|I=BO7tyaKwhR5U#2Pu!2V z2;?z1nX3rN%P!K~r?d3@FO25;?4o7uD9=n@4Frkd=rJ1PqLC`CS%T0XjJZ3iSTv*W{Y)|uNV0gE%Mg&^AleQigRaT{ za${frMW(_i5zJ;M2&Lk?$fGN4|}G8TmHyVdUG$$B|D% z2(A*i*iy__$)%ZJJu(g7jfGDsWR8(uKQU=*P}?8gAj|EgsG9wHy1 zgRDh6L7>0cZetH!3M5wp0Te0K(l%Rm7j&}${}DZU@670O}GO~wpCo|i)C<55`n=r zWxV&!qtsYyg!NTFEdYX{XjZLF1+ga|h6*FEM*}guO~9DCT2NRa1=+ufxeArLI0f22 z(a4Dn8>)r%n0l(=7WT8LL~&0=7MW3HQvp=^Msp;EfC}Y>Djy0wkkF0C00?3U zui!~s5mfE(InW#Vh!*^6p&zmg6tfe;aIPKMhpDP$vWR!E@9=5a4!WUe`*w8)NV=j5 zjeXe~Q$2s!qZl(r;Eg$0z5!ME-JChw6vpzf5!PwKMD~s4`fj8@G6rm7QfhL8DP=- zL|;QEKmbp@QLNR(i8L3`rG~m6XB34mgQc7g3m;(;>NMSkI!xz45aY*SHPLO4K<=}u zh9*O)rC&6KuLk%sc5`e3Z{oc(k6&9~%Wl!$0+{fkRvaWUdlr!R0{Ix$Mx0n*_`#gS zio21;XO(A+mJ`(CVhsV4D<#`bV?ZlX$fkY8uY9K^C{25gH$>>F>^5Y^WVSKwA=fu7 zuD{s4Umtd0clQztYo!g%X*(VKedMvP)kgPeWSHW5E=w;%|p$YdDw!4 zb1S3D3?}opFp1=EWp3&cUDn|8usaY{{+7?=!pN3(ZEJ+HDgP&nFTW~SB->w~C?EDmZ^upBcc%c;@j8metM&3+Q z6UFkjYcCXkHN%uHwDvo7lXibDSUYSRqs@_zvi&19}Cl>j>; z4kOmwlI}yOnAX<98VaQl4vRu4HXnrpa!jn!lm*GKY>JgG$0Q4jBZ~X+>NxOaJBHVW zBK_h6eceOMAvhJOw14MQeZ$Z@1n&sGigfaedM(tb7rLC>H4$bbBNK6RrHn;_Hr5nK zH7O38&!Xepm1B}N#{umEVKpOyxeZHjh?q<+Qm@V8V&<`du(kAGg@vQiB|(|87)g<{ z88dx~S6)=tCJbzIv#i)Zu3f6=OD&?M0nF>GWh|UXZlUCn^{(%|EHhdzUCXFx(`ka& zbQ=1HiJy<>i39WN{MCdG#GV;jYHNOVp44!AWOQs%v3Pu9$uY+sw^WiwUooDr0N9(# zOkq6Xw0LyFjO~NS*|5}qNy9s?=4n~=^f5i1P(AI`)A7~Q_w=Mg+^m+L>1m>Rnp@xh z^bS4gL<9Ts1M{A4*Hc}~-Sd9?(!8e!^i;R-6Ft?CZTK^u{!`V$=k>ItditiGPOYBa zyn&~as;5utX+`z)Ej`t6KB}j>y@PsMUVZtlH}WK$wf{UNwqa!GWNykQOu->_2@9Lt z1JQG45i*q}^Ck&9C@hxHbOembq@J>6?Xp6{2{~Xh)!{o7U{#3*fo+=%qiFh7(qH-H z%F9dGL|22!k|ow>K7&&ok1gg_YCaL;i^0%F{S>-oE6B zG!-}x?U-R3tjbY`p&ymw z+Wu2V1F}R)5iHU4$Hol^H0jQ$1=&|E={-PL zR$$R6<9UM)Pq1P9&114CR(e;NPvLDz#5>wbVF zASQL#$}KHZ+sz;gw}UB*uq$+0KMZPC7srgfJd};bISwT4`VpmkhnAof0)+h9K|W$} z<#xDjkVvx<1md+ulVA9q;2+b%T4<#z5wgsP5qgZksyz3D24IscS=(#wZ~zYX032qu zLmz<68TN^(0UUM!<>>SQC^xYmz`>^jkT5CxLY1v^x~x0_DxE&6>|m`!Q2-TNP-|M~ z&bgz^Y#MNM*N{j;_9N_-7>3GW)_j!1=XQX_wh&0Mh(W)91}^f|znvuOd6nr}E}zpa zaO=tMGrynfNExAM@c3T}{;E2ZdqkOmSe&m!12ErI1fr=g0ieuTFe_?Z!Gfe=$a#g( z;UEe94ARaJBp}Qs8nvL2fj=++FJsu#0^n>?4PVeYl35 zUC8O*`J-m}^uyljJ+#DNzLc7*W#9b4VQ-mTFJ$(^t}~h!z}~80Zyf@=C7HuYL+37I zXn{h-9>IhLlO^hqSjaZRdeV<%7~0RaJCAn0Hg3mZhwjbDNqLWx@*XGUz*%up9{MO;0=OT2$xm`f2`eFh%dTp5%lAic3iSHcn3d6T*|nKLP<<{tz+9 z%io26c{*LGMJ0*l8YJnOGm_tx>y}diZl31bxL{iQ);&Y@a#-AE77j=>r!%aiWq>DV z^Klwpyav@j7_ym@^>#a4JN0|^!*kY%7hBZ_`5_-Hsz0E7LqBVg*Wkr#+w~vGV?+d7 zN|%yeN{5|ApmFlRW#Lji%#zotD^rNPyc{4=p`?zSn4iuX3x!E$%XQO}8@AB-?K`WeScv$o8hEw@bcR3u`GH*YYAfe?WRX8?AR2A?0+EA_|nB7D-auH|H*6 z8B|453g%tH77A31o2#fKK-%K$aXL1DDhE-Epqe}-iXuWadDJS8 zL7bMX=Pk#WId9uqG8QthD$KS=wVH)sgag65!&&I#o(8?f|PwvYC<)&}evc zFUFJ&pBC8Votjhi*3<+Q_#1g2*g@gW`umj9JNurpu%~{?fK0?jJ`ED3Rg*jWTU+j}Ej^^Qv|OycxD?8x zlxA)AsNC0y|H)>AD~WLE&ywOc-kqGR)Yp^QsS*m7S%=-gHpH=zeNSqZ5_}hYkBw3; zK3CI3XX@_!wVFvPm()wv8)5tRu!&cO{apO4C-~3Zbn%bK9iCJ>F{HEbw`iJF?3(KPaA$o7>4fE&+ZpX`+zVe+gG^J;!$v{zX}U~KT4%W@7Q%Xx-igHh2$$vZ zk+Fegu(QHQCbSj>7#e{g?0%R!w4VOsE%G4KOKtvc7uGG-werLCuhbDJA!qlgG)WT0 zw=#SOYOT{wG2|_u^z=S2sT$u;b)}-yvHDd#e(vH!{9Kv>NM=a1?^6=zal?UYwUslS z)K<<~ng26zc@keH@Upv8f=&7^f^Pw^!AsH!r9Pm*wedVxsJ5YWm+t z0ThHFYsog;syerAAw-W+&j>9J{>OaM`lz1CW%S;fqZs=*W{}~F$bYQSwQFIGj~@kO zquxnd3QtuS0nAc|M;2D~k4I4z(PVbEhh||Ir+Ng5Nb))r`Qxx2f2l_W3Z#tFu>LJP z%2&5(qOeJi3U4T}Gz~ZEG1ntetTen=kJ^~qV#VS8dbFyDRi)vt^tedBB2&}wDLszr zQO0YyPmk6RQVod?>hwo#(SLKi^`XQUa@tO&WHcGY;B!aez{9YU;nw=&?=T@mF?bKcR_c6B~Kc?``&{reV9Kb-~32d{Q?Il z24L0sPMw;4f;D|}7coAA9iK)lojHHuj9X$jbICqO>l<$Ggd!~4B$Ny#7>AMXG)Tnosy;okqX9mjS7g3pLV zu@S?F;IIcBqS!(V?@Q}MUBx#DJF<>XM5|0s!24SMU`2~NF*X%I>e4X<(ReK_{1M+7%tsnZUd>pk;;sb+U|XsA zssPzv?2u&xvYX!!)0_5R@!zzBJ->?;er6WW&K_VVj_!aR@kF*)-`n4(mq9V0z%XG8 zlDN`@vA3*ksqeNxJT4mos9b}1UKcRaSPj+(kwLExR+~l%Z9Z1c>f5B%1L0r?$}qAx zUxvkOE5oM0fLC-9g;F^+^q~@>oTVWe*v=w4)QRf90oJOy+?95ACL(DHZ3^3HvR^1x z&IBj@O;8}OR(R%?6VC26swK`!!e%RbGpD?@D7MW-(bC%{*aF}7L)q(w0TolHN9@F# z)|w_{b4_528{=fBri>91H#OKgD4X(sDxh%LfDBRYk`91|pMhK-}q+v=th2{dsaI3fz&Xy4YKojib6oib&K$B2^Sbb8z|0LyKC zi_i|Uc%YOCFW6@fN#*g(8Y+fL@6IY^a#ubZworMv@rW!C1A9f3S z=DWu2n)l`Peqcr~AKm?bg-bVh4%v@+(317aK?N}-16Xr?nEjaX7%5-x$4nLx&<-Mo zp%(iw2Q3d1Y`$`f6KqWA$%s?A;s)D)hZCu^jfYX4;8#m#A{A&E$o%U1s)B!zaYxvy z857mmN$9DzYGx}Eds%Oo95P@NYbmgU{B~}K?hAHnjzIUi1<;yeq9}kH^Qji#Ha!)q z3|U;|ZWYSV?Zbl4lk-Y-Yx`#`UvABm?0bt{OIG<2w||aQ{?j_Uw}DxF>4x3fhWzsxgn$JkbHcv*jV0Th5+1K#;HqGt zg}Jv^Wo*iQBy6f*z=tHDhMVgb&@tmE?QQi72$v~dTECFfQf)-xdR|fE5^-3(2eb$U zWqwN9K++5l!Z;-zBz!r0fCEux@5oJ`$%z9N(g)pYU#NtH)U}i=2z|Ui1@00eGg>?5@iKX5@x4Z^PodoXhoVmCTZ&x zgYNzCzeiGNK7uMZ1T7dl8fyssDxY zS#f$jOQRZ$a8CbV)Ds)n`rvCY&>Cq2R{%IOAAI%>6aj`b_bH~hr6flU^Ks}|CdIoa zSOzSf_mK}LrEn6i39sm{HURRyOiB~-GH-G;|nshtR~9n;CR+;gW`IZ4H%!d*x@N3pdC9?G`d_iG2 zJnT?+W5Cno_OHR^)L~VL6C;;jSZf?7iL%~ofsyi}>SQ+ub3QU}nh>+l4U*7$%fD^h z3a!rWmOm!$`?W#sWzSWh{y~2(0_5)Tg6-`W6Cl8p=+5byF;yfc-W$u9)uVOgd}2Jd zQvm>wJe%6?5rkVl7`OB>CWB3Ms4c(Sq8|o$7`!BGPjxI+ux%*VnuDEU#7X=%a!J^0 zzu6OCz8JBq7ffjiF|mC0R?J|9suw`ci*YvOSVMlIHPUEzGo~qKcwc>GJ;Z>6FNtW1 zMRvQ&YB!C#Gwl=EKch^xPJiWt_a>KfIF_F)7w&m4tYeFbIDu{dvWN{QC0tchhPM)0LKVrm=_vER<%p4Fy=h z0t}l~>_PmNuu*rGw`%*?i5+qHwOzzCeJCE*9ty-J8oj5b+H|3dXMJK`UTT*5q~5@Q zjaO~Gw3Db!)bIAh;x)E63}dHEXTaOm^=M#CDQ@i!Y?z}k19U^j)64w*h7L_>*$=j= z?d(vpUjr&aEqE?}`@gdD8b5Qa_<9hO&56&7EfaiA(}^G4r?c$Y=W1)W`5L-=Th+h<2quE$jcL@in8s88%5Q|Ya@6y%0;|xzb*-es8`9TtS%-RAC z7Oy@9RLn&?_-$UrsaKLyNqAD=NI>n*ZPB^9WI>?fm8uAtirZykVtV#7Uq5BG+qCQD zT_P`b{v4ir$qr_m<|dnngWX<-g5z=_NkDD@2uhQ%{av#;HHD4&^p7c_k4z}f|0tV* z1_Ry)vy0|+gf4PWJH1?RN?czZfFAb$qGI3XmX5pueA_JAbsVFIJfPQUO^wXQ4b`T+ zwN?dPdPFEhcUzK4AbE!S`7p}GfU^3bKGQ9AL>ay=?85CPldLrEn>D2~`{q|<03D8= z3H5Un9=ghn!!Y~H*x~lq$5?kZsC8%9ChX{1CU^l^U(yOh_4- zK6S&EaBvYD2%TBBFR;N1`p#ir-Q@Sz(qh|q1!ix}l?+F+j~H;wdk-@?-C3kM{2xgF zcxxu?e7(NOeaz(H(~mSRM1Xb`!OG9=;&*DzCkd!z1BJ%LVed_h1&r|zOfXBC&#Vql z@;Jmg3v7$5xMhNkO@|Z=WXg`A&y0LC9E;bCdBz&la&*fK+XfHJZV7*Sp^~l_ZNY3G z)&{^~|K^G#@^JP0{@}u}#DTctr2=A*x$f;dnMuI!5iAzbYFs=6l-Ln7fHOnp@l!(r zmLyQwySU7^u2+EJ0-TQUV&+W^KI}=5-6|K^HftoT;Wmw#SQhKeuPxj4UN7(g;E#ovWh|1hn)rGPho8Fhqc86gET}Rbu8~TrtDKOGu zzFneYWDAU>pW9o)jaOW_I{fyzofd9-9E8Ku!>VCamyuUXgK4}V(6q5Zn+3u8fufgC zvO!7MoHUHiC{+{YghkxIV!y|7^c7`m?bb^Lk3{;$>PN7d@n1vCn1dG8IOY|PzKT|2 zi`mOyK(S6+tfLmsT7#)+drX{Jw${+L^+kXhJSeBpj`o_AzpQM6G?&O%af90GkU!Yp zrKhY;eT!9w+iLJPS9c}b;cih|7pV7mMu0BkMl;tz+$ZOwV`U``Fz3GkcaKIQZU8AGr2e_Q*ED(+9uuz-J%# zUrDE$KKO;d+Wb8Gaad1p`_Z1Z)rP>O93y8>Ia_z-gy8rDr{!D|N-cMGtD0IP>?S(<_L%nMXu zBUYTF*7_^uh!T3=t8~z1OSo;1uoP%s5q~;uOC?v6{-lAKYy8=v9u)+b%c|zX69UUn z+7u48!cxluD;zc>4kaz=x3m&WadYWdzL89SW=k%kT3!!NW{++7=DTlyc$vSI?S05wn@HsFhB-7d zCC%I>=)nv&6N6~SOD~lt{z~IwNmkYd&<(8=s})gEJ|-IL0saQT8e{{`Bl-34z(uL~PBvui$ck z#+2}%Y35ba@aD4Gg$Y`!ncXE(fdU`?HFG=k`K%e^+VgY&63}d6@R|O&u71bN4S#n z+2xlO4^H@3k6+1G1IqchbfH6!o9I3xT@$_331-^AO1lav$o;b$MConr-FrAlVK)gb zj^?|HMA)M`#rLIkENXz^XA@UIs}2#V{AgjJf5N9%&c+q7e53HvhIKSx`wYjB{hM@ur)7&sF1SyXhn!a)1qu)YN+KS0 zpm3|=2)xO|bJkcG;=jt%(!S1RCjUi-Zu~OiOCTZh*uMYcb0p39bi`f|6S5B*VfRc#sGuU@ch7Do9Rz zTnYcdDImc_0IX(31dFs9c@M|w1+1waYNpPglJ+0;R|kE?&RzK-8VYH+OM}BQ+Qf{2 zsrk(je%Nh4Q2WU0u!H+z2We`ttu>0Uad-%{52%T7$2I(J84byaa8EXU`uY+P@T;68 z@%3}Moqe*oZhEP`B}Hb@y6M*XIsMSuz;AlN{ZifYo!(D!PjT)}-!L~fXBYx-2FZrD z%hzq!R`T_GsY_B<`Pr0d)ygM7sDp86LjNN*$5g6k7!oRZt0!b;F+DB(+|$>T(Zoom zw+k}U$aEK$L{SsaU^^(JQ|Y;*uF*t*kXhV4!TebjY)-@VfP@mca|zsyEoY$)nG$Ty zxtQJ?_4G#+Ykx8d->T!;l>f62IGZSMq|Al@p~8Q2s=29}HG1=l0b8ulNhA#51zNM^ z&+vex-GFh&n`&^F{xHcW@wI!S@P;T9-d6D9pTJwo5T=uhO1qQPqg{UGFon4s8(Lz# zBW05+PoG=^j8`8cN3J@v8~*F;^h8T+)tmxArl8aAY|VBI;pUfP*#LIfg9^Mj(iO_xY_!jXvzqw~5M9==m$ zi3ELSl@_bfG$w}-pJ{u_SJg)g1H?!q$@X5YaR|Qo)I#4v2tBHk&nj!~MJ@sN%9w*b zS#gi85ea4SMJ1N)Cr6N`xkjrlE$-F(y;@Y={?8N!{z<+mK9B#VHmC4I2#}Y&XX)z3 zciiU*=?TvqPOzc>8QRbGKOcB|^>O>_nR7suM(0vTO))y4+iRs?>5XL2Nl=1+K(!rj zj|F(XtnB=Mo?a?M*PpiJBQ^u5~FvJC#LD7E_K zalNI99FtD0TkM+9(87pdG*ir7aDEd!gO}LPxz=pNTIYIzv!4>_kM`lz8a^Ot$m$l+ z*@F4Cv|(FlZyF%-ZpV9RE1OD*7JJk#$G+$)4SBXETuQ~?M)Aoyyb}+}}JYf$ObR_H+NFV`a-C)3SVWo-&GgS{dzs9kQWx-mWk#vAP zRA0EBc8At$FP!Oo{am-z)1BN_x>L73-PzT~k$%{ppeDrA_!`u(f*j?SBz7cu)KX9hSKTNd$XYBxzVFAc2TVhNUpR>tuX183W zz`wqY_*rZn?)F#NAOhuS*BV3^X#2!=AJwV}m`X9?cJVQvL_~zO1vp~5*g4T&LsCI7 z2rlUoJd%~DbzoA+nC|Cv(rii+R>_5_Cnw5OWWduytqyMTB%#aD)+JL>w;H`!dqZFD zzYc(u{?LA{OJ4#z0}{TarBxEAk^zA{kOIcr;&Z9f0gvyPKicr)W5JA+3~;*5OAQ1k zM)bnHZ;IRW`stdXj3`F?GPD_g#IBK|3~UmcfXHG_NDC9*k|d(T2l8|%CT8eVdfu+? z0MyCJY)a%k?cgJT6QaX7+4)p9rK7{-tS}=2mbB&$d58?ykD!-~wash!(pqMy<)FiWY#+I9OOCU}Qs2n@dbT56iOxtHVa8;MrvM3xR%SQ zaGBVVz(J!}XHf=br4$`#q4yYk(h;|*7^={ISxHM$aV+zTuUViYoYFC>U6o)1=ZVs;95k`@a!*Dd$qb?ZDdp^W9wxEk#vJ6(P zJP_IRnEvh*_nMF=BRLT(205zu=66;QMW2R>4_6`Dim%P3@u+ArnV4i!oe5EaK42fM z>x{rYfhZHSx*o3b!$7N8r|=n#4(=dxUmM%rRlyzGcrv!3>ruAhKJ7dL9jL3FPau&} zZc+PG$PZIW;dE2uLL_HMFTwHA$x)Bo7)Niozq%`v_T7VS%g^R<2#a+WNr0Zg4*weG z-60LiK@D5|wo&_T7|WqD8K14Nh&9uZ3z@o5k!rv;MH&A{fc0}(P zvhulv>-8mO0b7)mnzQ3)$-E)yk)fzZka4o11i!WyW5!Ha?de6=9*UWq9yb7$q`D>6 z>}{fr%*ylr+|h$?Ig|myrJW&^l$09T4-!_bi+wJv8P0fJmp>QI2(GB#0B^M^wm!V7 zJZt_9%}VHIM~@0jDav`()GAy{p&Q|z3RHCy6|B%ELqMVfPL!3CnIlt5EbHVPu3cofWz)={!f5qEqTJ(s`aP ztK`MMNzgmZ#N?%URbSGu;=kg-DVvMe`^TRFg zfxc$dBg&|`Y>~YLRE1mh%EHKKBrC_HnQ`aN?kv*fC2VKJWva7Smlt(d-6eO^oX=A` zSh8|AkJ06%&at{oc8=3!1?TE=(W#VNmUoyEP?w*r%aRT=0_rk5JgCdh0`lKlmF<_c z@Vr&o>ABbm+UdCYiCuaJ)z1jyZ7q)tZ@CeZ`nk2hppm; znC0QEZ+!5L%%Y-9z(%<&e00N;U&We05eQSy4iDUO%g69Sp{_8vm-*Z=uKT%SFNmt( z$FbNdzD|EN$#5YT3gFP{Z0SGZLiK;BUhK`VNV)FII+(SS*&`Xllk1~8!r|$`r&2*p z69Se>1tU$I2idV>1R$Gp35-eb#E9hjc*c<7dLYA6` zlhkXNWbKGy5}9Y1MCi>5lP81+<{r40?ng`>AAa`!9bdu2h?ra&_Wbh7pRiv~#N=_| zBcFNm7Ix1!OmZBI0Io51sYCPzF4T817pnPVf%`NVdpaAa(xD{ zhGKbUur?kZ|Ku;OV}wSmEe==Rc=a!uBvbkzD8e`X_gil2@!6tq&AT@~hIlnoBbPTLf*##XS7H5-+TP8*esPDZ7TPC{kn)A1UHfJP_PYjj2`0%mV?5@I+ytUYTL zB7sVluR=s{Wd;8}U7x**0m1czIC_tdqnAymZS=C5#YQiO2iWN4zyKS)tc|hJI}u0k zxP!{Zp8}O+cL@^KVoApBf(4&Vrksz^`%Rea%3K)l&RiPbpGh1~W_wJY$pkWCLf1{0 z(02oe&L5R984Y*e`WFu%W+@;PJ}dlk|N5(VrXm5jJbeCd*Z&GlMFWC#S=jm6k8K7{ z8a}TE)xP{Kl{S9a=b&7hUmppZT6kI+6Fd@Xfb=|8JDrbU5&*cJ0f|vKQrXrezfF;d`4c#XXJ%^ zMqbEg_%O2B{Gfj`)qC}Id+zGV z=4XXFKJ%#Dn_Bfg`M^hifUK@n@7vzF_Xf=*98NYr8p-=eB=5dR-o4KZdG{VId4Gdc z@9yt^=oV6~Yt{R=*WGeEs)@;({Kdmxhc@krkN z&kT9@A1!%*gH-Rg|8n++sM=cfe*E^g-`%fzH~!$OKXz}(^hbDb&zE=bd|2{cBiDjo zHt0%?bGpJPvs}%m{I~UvW=TswD$D9ONcBGaSKA&#)z+$a&tvbpuV3{(vFQunPU_LS zDD2<<;dMvSy*EbkULVQ3DUx^NGechHosN#Yzd^e9?N`0+OCAAow|B$+5B`kjTKDe! z$xWX`7uUM?99--p%%Eje# zS9hLU7Uhc7%p)!;pSPNs!)KSjwVIhjpE4SYLYr8{b5=9S2sDH%%GFFXa!bUbv%1sK zEkTR!>Q1+uWKDgp^l$cB$t>-2^(2$TEoJpF%~@sjk&_g&`uIgzeKsvhR-e`-+Qcc- zqfFcBSeq5fB}+7Ur_?#-?zAWM^E^rHw>S}+htl+Kr!(x1TmeiOfvF8FIsaEQ|kg_(7+fp zFjzM4eMwbQYBjM>0`-X!4Qr^OlKL)b|2QSrg4$KHchPz=5RO;x#;kYwCF)&+UXZ-7 zNX?D%elQI4UPgnuMS1d+tgB3nQ@Ck`o1re8fHDdXSYZy+R$(j<<(pBM6ay7j8UTe; zE6m~_Yx$5y9U;u;gK5}9_~xLf*OO)*oY2Th^*;GE2O~DZ0exUfK1v$z1Ad#FoYt|ZR>YAy4TMElpN<%C45T1N5 z^V~`%)G7+KA^xKcWnl6&l2I-5+ya0VeBUH5%|Nr=F_~(&LmbI{r!d%MvWRL`2YJLS zXR`cw&({Kt+H)L6If=_X?^CYNB-!WWD4og+a+H|e=SGVqSK8fj?n*d9J!RR2Wshi6 zQ@x?^>0DxMyX)FW@mbkd1PHWfL_5rfO;txJr{rq#@vm&8t++828J*yo)J|K%Kqm(* zH9u|+C#tJ`+k#)rS3JN9aHi@1f9l=^POs{$_uqTJ?>o15CYeB5D9L2@yP1RuK_gZ`Hb$QnFJnOlwwJmG{D6Cc>Tl_sw z5qSl53yRXvz#9PHJpv99Mnd44URDgYA!>1p!PbuGPpc%Tis(YyKcN;28fwvnpcE7p zX$K+Fbh}~@-HDma@xp6prFerjkP#@!2DHYwk-cfqxlMZ5e1h;w?I~!m+M~dt7!?O+ zft*A;88?x}E7!T}za~;G6J51`I^r2>@CJ6o!w_+yX2xR$m8fq;5Ti@sz*hMC$I`;Km(wCcIT24`Nrf}x z`=}~zV+PsMa5p96kEm|@8W(#`tdRDeSg5V-kM&*myWO7EbK-l!rzBR;fB-rIBI8AW z=euCRb_>UM=phnG|H}df8!ce4p-~}&V4NcOnD+RaRL$vy-_=EM(2g3l_WQ{x?f<3+ z&1`LPr?kKOmq==>QxZ;Syfe7_#F#lNBpld8z+ySZ0AK$rvE^+20*4e8>KSve&Y z4jF$^NjuM-fH^<@ypm;}Dkjb%RCltW1H#eg+Zd@YYM}|S2=TuXvurri>ZqR3CI-UO zlFpVhg9$Gf%cCU2H?(j6nDxx+7lHTu?bBcV;CFxVXMX-h3r+8N{QV#PgP;2Pw@zG0 zm{2)Vfp2~Cq2KxAAAaIHe@o;LJhYhE45CUYe)eic)OXB^tBeM z5UY)SqR2t>Goc+9il#&EPS%+?Ohw^8CLytNk~w3djy=G9+YV+Py8VAPe^=W>7$i z^ZUJ7oXD^fDY#C#Gu_Bak3Cxmw0s?oW+$U5u#@oS`VngjEQ1r+((-Mwoo1+FX;xOo zPHCG}MO%7GTm6l;v>7||tu+o5s^%Lc^bcnT4v8mfhWz%waR)S0Ao=YPuymC zrbFZmH%i{MdMrFWe)Pl4%1hd~ewpCy&}e2Cg1NfDoKN4Z56=9s*pbbE&Kd*q2pUDv zoDIp{Fs7KXw!i;0h#!8+W(b{l@{K#bNC+-RzH9!!zo;B(FM#2W#2xW|5QoKwjUZXJ ztqeA7Tb6iWD@S=1y>P6;i7M>>&~!Zm+QC;o#hTXsYZ54o_P4WhX-J@*C zF%-v;b?mu>uXFf20Zf_3`W`8W?X ziE9fJRi|E1;NpMig_7XFVcGVw>v}raq*q=%_3H*0>yqZqP_7s;g2hyGjHhwKtQz7E zE1!T_4eB1%@M-#?^+C&KXe+S~98dl-kHm!R1j0ImTiHDTgmv058v|PHNE7r5#0b72 z6iorQrqm;jWiobmVIA>8@9RBa6>D) zn6Pj|m|^n_7gy^iK9aU>qOz;iwf?lVWNQ&S&Co9%1XJBv5Nreh9iI4jns(jMj)FP6 zlOmW~OdYqkLmUzw2f8GyELg}=#1iYU!6a!NA21CW_DGm!KLy+%e%kRFF&AxpKxBxg zj%!F-(HW8u-i9jDTb00Y$~UkoO9}y6ut?$~yq9dHa-sW=`R>dP7Hpalmc-wuIlAhW zTz2@z&$$dKBi~GK<8Qk=R&w3NU;I;j`qhh{O|scSt8BVOr6KAKUDRr?y^k!yi^Q79 z;DCKSB1fqvt)kXpZJy(XDsu<_d@~y~N=h=IZ@U3u1^8$X6rAwkFyGp9>#x=os&7TU z3gRx5b>qrmU2dY2vXhDvK00rksxsB$R|s*F_4L6 zh@wf5Y-O-CDqUFMFb}E}!2*J?BoejI{0e$>+5y!Aa~4zLB0yPb>t;rr)Jb(Hk&ZFg zw<0sf;M+MwQWaclNflmvl-=gG66K@G%b#I!n07Xj+MEMeaLSp$5_PjfayGEK=LD8` zJfd|1EcVL0kJEBA+L^#=6|mCo=YciH7}hENy?#QxmOv+y)#WYU*uDO-4>*ZyGm}cU zYLY|^>9lI*w1%Z=&WzABn~upAW5;zkhy~%##!lNeumIO5h9X5oOTn;${5frYnjGV1 zel!cnJsO%9-#cwu%BRnf_x`{MiI8RqE+Dc@X;Y_pLew7gsvVpSrkkDx2bnr*B8j9E z-P)PMM!zW$yY~>@v|}vYr9y2wUJs3qX<-UjY8QEI@Jh*@a#DURNn_TuB~o%nBA4BQ z7Z>v)_v}0C;KC+0zC){_v%eF?kqrz%d-@X1AvYv^#J!m|$QBTebCcTYhG82+#3^L# z#oZCgpEAuew#%7LyNs(k&j;^4urftxCP{@n$D~FJi+qa=KdJbhXQ%BS7IaP!=>GKYb0k>r=C!i)gKr zC>(lzJQ zSJ6BetRF7K={xCGVYu9nAf7KVVyLr?Wm_l{H{!7|Td&8Mr;5JdoiUSbY;{eaq@Qg-4bp?s`tuhM&jERa& zZ9--h03s5J094ZVJn&S;fCtxNR7IiTOu4-nXH-X__`%*);T$C;l;Y#0(`f zCtjK^6AzXdXDweQ_ULFsoFZ=(2-=^YZ505nvsCiW2lUwCkSVty^ov?Y#MlZojfv7P z-!h`tIkU{Yo}OI~+o7_YVI{SSsI;G!PEWx%iwG={S5hMj$ZG7;LBdb$BP>N3BtQ+I z#5;+7r0^2#BTs5F%sv9nYb`dO3=6@$V%xI8SmYyY8$(VLM2)chfo`Jc5`@aDrb-mz zlizn7vEV+@CoZ1qW>eB3x*0^lX-k$4l}>aDGqySQIhZ?a^95Ra^e?BkW)kp}AJP4X zlE%ag>4B*)b2jyohIQA!O>gKG4(r!T@UvixO(T9hL+N5oZU-%XNKK%>xJjcc(;8`K ze(1Y{sJOtr&~f;NeVe|Xp!o_5tIWmeUC&ZNPJk~UzGbURFo#X?Sd!qNJHcg$y|M5d zy^s6+XpbB)&M!v=4&7xQ zLB%C9hBiz36C&C;z#rN1MVi0MM<7j>&=P@gYxnvneFH6Kj9Uz__ zqMpW|zWpuYRet(aV+qp#KwL)* z;!EX&+rbw7C%NoQX*0Y~xJqJ*z82~E7={`u>aRX1r&jZ$4 zk%8$e#?Q$+pwq;iynyn30pn>t5;h%*8ZYG*RHeeOm}JYhkUc@;p63Zii_Q5&uUBN= zYL^%Ro;vwK_>&tVU=c4!hRAgJ*+}SyHq_=uj2ww{nNk)$aiK4xaa8rv#^;CrJmZ_^ z3FDjd$voqOI*MCB+_}LEB$D^0Q6l~uXXUtAVsPB8vxGo3Kmn`M)Cl)cArOX-iDbZp z*SZy83fedX#lGd3LyDS$dvXM#9d(?aq(GAd?m4v76!mbRLa1p14NDmsrnwocdcN_G zXB-I|GnC7aF?ld2I?nMdL&*FygJP3VQWo@CC@F7d9->)a>^%_%Gnc$xpE+{mx@zA6 z-?dqTdb!c889`~*%)29l#xX4_I0+5gA3K5M8nnL`V~HP!F7I*W6_Px@OJfC}Qf4X1 zoN{Lg5_3#uOPU$DlJ`AA=INFRJ8l1o#b<#iv`NR}u zUHbMNrmR6xf7ryqAWb3Nv*R}zk`1MimS}>Oq%LU$6*;|VfP6gnRBkW2GdpR-O@u&C z>3k{ytAJXO?a*M!Vrd{;kPKeuMhT=1wBJ|(VQIO*!4UM+Myvx|c+p~`9P5;90Hl#z zXt6m3X)A11aX6f79EeqcA(~UZPm%z&;RS%|aGJ?wupHqbpf=9|)H0S2Rm&$4s6P)> zn1CMAa|cv92%6^b)WB0p!DDABO;2SQZ6$T+2q^o%7Ka4)9P=$D%jaK8$u{&vGinjX z^5fD0cZhSc0?CD`nF1C_SrZ{2479J<5Wa<`lcqTuCSJMK&T#=ZB@s$k)8G(+WN0x} z0Un`)-GB?i6hjt4@f|Ecqq*knXN6^iTI#*nO{`8JN!CKiY~YHmgi;Y1h9sUqwKT@( zTq8A_$!3`lC}~l~#!yWhaNkc2;&bebG+q&`Wo2+!WN|z}3QPmobnr2dI#$Mi0i%dJ zT*i+JO&jx%Sq-$3!`~ZSWDmn~oIs${>9k-IJs1*j02DX^gg7b2?BJ040gFl`UmzDF z7L_2#>+CIu?4mXiQ`3ZofB=;OBfdS~lSKMLfb-#62=Nlqpmzyj7zq+>&3A|6nX%t_ zbfyXznuHYDf6@v#7U@PNhRflw>87>|j8AJFN7)NTI3v}dZ$Fme~^CfD_JdtHGX_xpi zd9dgSXN8QC!>z*dzXS-*0N8BN8u>a-ztY_Et-)+k;7N}N#oxlL07uos$Hn*rDSQKb zQF%Ud$dQ9077jsF4~8Ve7u!HTxHO#Go`vpp?CWYk=O?=Nq}S{7)BpArDZn~b4hI3` zL>+NKI34nFY#mj^)*pe0d&SG4u_Ah9b5=CQ*u1H)khef^U;wlFbSmwn-Vk42O!P9qwydH04Zm2^6e?B zi=04O|C~pgHH1(*SHv^Aq=?8_2Oi;AOy^fjvzVxr1)$+qf>?Spm|Fmy#8UM}b{?z= z_?~lHIko`UTIv3Y-;hDxY(p}md8={z^G~xK7!80D3}g;8*blu>>3=BtEwZQO?Le!* zD+Y~mM<)$-g#~?x0i95otau16t!ZqYdfgtih=p_4s-O?hNWB6$7*{1Gc#xrKZ+tDs z7HXb*6|b;`C+?_LNm4M&ZY@yEukKelO}0%@ZOSa5QbO}q9{)JBEBj^zIB=n{qShQ? z5S1@hH#GFp1oA@KJeIe#^(NH8S)K5wbpkF{?}SuP#G4ixLWrh2PDl2!N3Yh&WWb1i zoavr~+_vhrQe=9Y`K49{b(MU;0Tu+pcA1}9R^@gCZd@?E%4{s#f+zs>T<5%qyW7a! zm$ZT{29w$K@LgZk!zHPQkDFON#J=emImnip7F#En8$;4rkOku%WOaOAI2bj#)tq&U zY9%q*ObL7}ld8ogjep=)8OUVWjx916{+@gq^8TWWCzxUh$Q%F~$@DNnM;V3+v5!dq zGm8;Fj5pJyv-#_I<>xt;IEeW|UWw29!6?2)nxOKnOOjPVYi)pio_~r5DvB}?U}d%S zaKnU>`bLDkK?GMs$~r3pT~;xDD8S&Nd<#IrGnGy@qxh9<%r;s~U$ z1h*>1oJ#0mE254mc2;1hG_&<0F6OMjrhFdZq7TUy{*KB=2R%x(G8`AnJ`s5mX zUrHN*lhOwHSwC4Cp!5U^OSND@i4lsG4d#=Jokf|gLmGl_ zYAcl@{%e`#aN@9ex>Z>^IGrW8Zc+wwTCM&NJ6gNhl&1~JO^O=P^yzb(}>o6fZj{_)*YvKQjT6~1nua38VF$5uqxh+uA}K_l~SaeW6X+i z)2j?N8@WePqoJTiBNs)2GL5NmJZ*7$b?V3vR(@#$<%i4e^9d+T*`niyng2KR7j!rH z$zM?P{X&|^Uz?QBrUO6bB7_;+WpCTpt;jVP+f%x7Vc1Wxe5z!!LmTKdYK&ge>nNOUDgSGvY{Y$2|=?Ivl5 zBMBGr>saIB|5L)AAZ><1ayCic&=Ul=)Q=>CfXZWh_x6`112d8Al^P!uV?c%g*{Fy1 zRNZw;Kos~7Yj%vg2nq)4by}+4Iq@Hki(}LY3G?S&K^=>@tPH9wL`rhSPEv zST641X}N8d+dd;#;+tRF69)%C0eR&0W!qBx9~Qc#VaMNbQA`X(nisoPEG>_{;m))+ zAd9%=VusGDsnI|rD}yF^{EK`Y_hN4m&lNAT)@PKSzHf^Tfo@7kzDD9pynE`TzHu)V ze)gkh>=D#F`_WVONMDSZRpBS>5&GxsM|`Q1wv1M$0>=qwz5XXw1~EHe@hNI=n+31= zaVURh>;u5(J>7Cc0Wn=aep)ktAtH1N z<(qLNo>DY|7LnQL@~BWjf}!moyF17nj?&FpOgt777vm>Uxe0$eNF$XLuA&$=MSD`e zt;@+q8PX1Cg!^d#hBnH0)51ZB)UWT0(Iyz;Wa=5(C?f>TRgsm+Hp)z^LLnhyPPsR< zQO3%o8)XCoviMF|?3Xb|C@tkcpfbHcOQgucM7K9s?$Y?~zW|%8VCdGya{A)HRw$AB*UrvH2gGjUx{(De;VT#8#GPo# z*j!pg3k~s+{qcxCiCv7h5TGW^v^x{xr?r&~^jZ5bgXejQN@oYQt1P%iuU(Jv)YZVT z#@5I>ATH!B#y>#^466}n01Hxt0fe<7KSV)FJ~2&D7|7~ae|l|O$<4^q+SQv(j;6`I zqFVI|dQJwjYunO-C%kff9>sE)goloX%}4F46}IaDxlqR7#PsIwT#v77^AfbtR9K{+ zgf_`oW?wRLE?i?u1V}0Z%6J;&M4Uq*-R8(n1L?883;*HsYO+YJ_DW7N260z=i=8H= zPo^%7KmJ!x?#K8CxgMpfiO(Cw7@d~rX+q_owu&-r#I%{Y@ljPU_tSVaMG_{}@gCgNuPqDH(!GNfAC1Jy;A5d!I>}8{>!FAdxsX zJI*J)11MkYp`z(a5DNBj+h)oiL5fde1#$9Xe1_4AWyo}k2qmh(#=xyi21Wjr6+kvh zB=wv|%}E*X-?}!wfH_sHC$APwBM*?^Otxm zb4w*hd6v`eh~v?qObH$hNVJ?WAZJj=oGZf}*k;Cd*&a*rT?SlC`wGqL;<4uDAxA5p z760CBdFi&Pdn|9A<*j29LYq6j)}`>~p=^l&PK?$TX+R_UF+{A+6yk?pouD~IluI#S zalx`zUg*VtrzPt=mKPcE|J&@Y(71yHbm$DwM{TjeHmbEt!AfH1ZtQNH7MBRZx*+Oy zKyKq)1g%=@`ll%4|G2}D#3Gr97jOW$q_Z%3vM^%5tkH%{YK7FK7BJ~TD4h;~8T&v5 z6m|2Q7#FPyXIyl1otV1HzY(}GKI@sK3%aoBMpM>w<3!aU@vv&T`7WLXMM6EAho!+5 zTggPhgf4I5lWGlop^}+VWBeO&KO^5wA8HmXZO*YJZK@OInFr6tw_4 zYen&#{>ng`*kFe{&@I~dlf80bOFZ@NqkMaYu0_r9kKOx`$G!2Puo)4?vJ<~a{>lDC zx^WjR^!i*Et4$*7(1JNgVy`lzN3t;GdZe)+KEQtwGi+o9`a?P$g7{{|;z!NnpRA2m z(qw#$a#}JaxBwr#h+cjCj9CU!es*97;KP$@$A}Hz9LVTRCjA-C7P2 zAZ8&#fwqMTa;upesgU*nmxm;33>aqDqaEhcxvaqeXU!__gSfTK;Ih<30vq~DELmC~ z)!}RKno_^M_zOYfPrGHUF1Dw7K>Yi9!rR#zU5;4nUN{9)4jTWK3TEjO+2V@+JvOcqmAC z$T5p$|&w#;^fNVipnIN@jo#I(c zbUKk_+dMuxbGC$QU>=4Vcc6hL$hP|~jh~hKhw3tjM=B*~ z60f2|ruxjnOB8pWpI;~}Yk(&b+N}`dF(mk`>v6ph)TfcY3e!kLR&E;kq~@H{ICB!2 z(>dqRc~x>4SutxD zaGw;CeVK{B*dxwH1l5>ZnMF{I`IQ@Kys=JDV(5)5qY@+Il}4JE%lT}nlgnEv zyOEhNkvkB()ly->OMrD|Hi)4|< z%m}SrLYpSMN!FegWSnO4HR{D~#!yf#es3`x94W@~SlKK;UDzC!of)r_F7DiMMR%T9 zBVwC*xP$;eIBdi$69V1gufTywhV67kEJu@FR zdx%vjzUr+@Y;7UYV%BZx`5fm$zL-A;L7~KJR}YOLLrOd{XA9mBoT$(dT|`LHf8e?V zW+|=s>2yVN&3tu*N+3~5D>n=s$Bi!Ls{=5UQ$qq5V-uJvegS!n*CR}EvaO(u)LnEL zFb%*(0IYh|zV2~#daRXvk`Usf9U}g;li!+{QIR!4kG7W8yyEY4CSD8LPO{?4I3ul? zn1G*cfFbj>Uf`)%fYS-T6egkN9{sNmfBhSaZU!DKa5_axL1A=Z?>y~tG5oE1NE zI8x~P-{0{YUw{4715(sYt6%GRmv|n)A;PGs=NWG*^7!}Na};P%0cLP&p65+^e&Xnx z=6g=~0v-6w*VfYdGv3(j9uPT7fyaLR*z);GET9C#d&WC*c#aMR_WrSZfB8KfRFH%n z%xb6k0f!YpiN2&jL<>R56AK)ZWJM{=H7tum5IUQM zWd_vIYxOcf9htAcP%#~5&=k_A*OLGX`iYYp(>zxF2f2Q&LS>YpQcZCjP2Ku8+5tD;di}X?asc#@HE{&h!Vuq5B7K7pu`8qf_!R%SAZQSWhxnoq}K|fx6 z&ZgjgpKJS|h^S|3D%51d@@SyP>-pE;eDaYGeBe`GeBbTu|C@tiSU@N=J6p0m*s=QRz@v;z3$~*(Q4%*%Y-00Ew4Y7H&Bdm2OlGJ(u1Ez63qNotVci zz3ZsvFX&l)C&M`XuA@Dl`o(wu(tAHzoGMd60iZm6{Numy@%z8y`n!@tS&E0~!*@KR zg7|(^^~Uz!(P>WlPtGS;;QfB&YjTcmGX*RDQ5Y*{|HO+e;F#ArvmZ%xoW$yr#y|CbDrHCxl+?pay zE-G1Jq{P9B`lKB+yw-sEg^H4QAPtsp+YzhHwZ6p|S!R%B21%wgqd-v%ViC5Plrd@V zY!IK22m$x=iRo}KQP~OeNr8o&4l26B;___ceucSvwwRji;t})^Hy!}c4F_s54yYzh z`X!Xr^uXEA>`7BJ$6NM<2-`W{VI@^yDhSXlqmsg>8-^r77;FF5 zuBqa1+NX#N*s{4lhcLlriUu2IFFRvqyh|cxviVf`Np4OhYCy znT^Qp7GxYyg%f7YC(B3Cn{y{&NIXWwNe;ZC8bD8Z>dNd*#=;~nvt7@`OISz)!l(>< z+HG5DE^HA+>pu(qpr1}CRa$ii@gttFG!0H}C`f$d6p+7RVL1WaD8#BsQX3jC7|&_D zW-knp1|>*aL5+~s=${$FphoREptH1~f3(}D{ur1^`63b}07ILlx}cazmuSL1C3!e- z@-SCqWRQg(1v#lWh)pU+8nLJu;;%tH7!Tc`*ho~4TkzS~O35(M$21M#or>^mELlYL zvUa`eS;1bX-jTVVOQNvu%=5g&8tJ4JYgU7|>apVIM(#0kfF_ZWiEGO{1 zbT_8c-IzGOMPoYsrHqLkm+gEq;50Y9)7|j6yq3c|JvY3c3moMT5-Q5U6d}C_g}|8{ z%BUNuhHoDfu`2616A5F^8w1yyML zMuM#o=gf$aU^*1(?HB3Mk(WYxc0z?ZJqPI#vDfH~IWqmS8Zit_mcBoa>ZWeTkEx%( ziqC94P0q!JoCzJyqt&)>#l;>{j;is>e-^lX9nNSP+x}W(M-gl%;cyY2tk%fa8YAYC zVxxSb`E>qj3>)pYRPj> z1_^sQ&T}K($=mcWH_dIK!$8Nd0?n7>l5Xaf#)(Iu&IrvRpm~~Q|JSY`XT{@uyYz_d zrSUWJj{}}Mo1JGtxJa%iEgP+P&8KQSIy>(AGwSw^T$W zd5)S8nw`k3qO75Mm&LS*h%*>6Z5+EPf-TTk+B4cBv`2!TW>j?{|B*vSBbn-pguqzW zsl;9`Dw0=n^OTQ5c~%U86P0PVXnaac6=nFe-mv-YrIwbICgHc8eGB;PZ15TtkO27K z7B~ANxS3Eu=2YqW(rCdc4JQvfoxy}-&qc3s?`1%d*}(J<&=ml|%LGIWLb}CGEqE*C zWq`EEH`j?EKKi#wCk(V0br}1Q!PVFx0&!$etZ;~*+nW=%mcQEMwks$)#03MHft=C8 zv4te*e<30GA=U^+f%l& zq8IAiiQInBpv?X|o#V#&pC-C}v&Nx9<|Fm#jUbtQRI3kh-CW?5-mk)1$ywZ7~@ zZ$PL9zM)K)6edNOVf^4fq#YqlYOapB2Bvq!wUBlsX~8sJEP>|x5R;*HBuF)KcQ#ra zV{*Klh(G99ev+RZ|?ly$YZHUtnq%0SwGNzE49e_0pt8~JOB#_Lsy<5w0bQBqNFKkYk#4b4&Kw)z&SBf$Z3!E~ra8!4w9am@lRWg;;#6gFckRTw1e z6gbMFYifU8Tq8%T0qxmpKmvVdNOF^`84`c26<*Lr|G>%R#q!SwFuq`m`;TmAmSo9G zRz9R<8bfeqSCrN?I5~XS7ILIoJEsH|uV5f;9g=AW5t~Tit0ZHa*o}P?)?`GhQ#+cd zfvL1A%q}-9o1Y7?(vlJ3nPx>Cj~a#`HkU7XIiEW-=!$g~KF8YBq-ZNf8kQ8L`8MO*OmQDm?bkU#3{@vA3IJJ`?|Ip7G z)A5}adjnW3&`i=MVH_}b3w7jj@879WP6>B0uHdg@97c!wpa9zi5~?{CKq5M=Auzc; zbQ+9MnH)P=+*Sq`tiZ`0Sv!x=qLz57^(0S)i2$gZgsf$Q7?%VCPl+)OpB&a!zM|T zUEmy$R%OsKf`VE6@v6i=6#uowVUs}OtASa5A|!6(^7UEQr4CcNoeOjB85nsrrWsMtQpZ! z#iJV~t)zhy_>(gzft&hH=)F%*w0o?HB~b=^#;0A|@pEFX##Jf7mKnDPpgH!(vFeMO zjjT!UFW>fZ5kT?7uL=hIV_=(RaP?uqKuC-^i8CZlwC7}_{Cmxn7Qk&%mv&bmNwEi_ z#r)Qk!9yxnu0ETD&r(iXY^pQ2z00%8Ow@zk!Bu8X-YH&DoV;^*QcW(-oiYJsroC36 zCVJP>quug1s&5X0J9$14|kNircLamkca3miJdlqMC$h^m&LQ1+lE`;&V zUhdi7v$yv;g|^r;<^I0^ymv=b%B6ll{;y(>K2XMA;~i0uK5RNlzJF&A+gA0r@D7q2 z?;>P_^`d)8)YRkO0o9bYq1CZEY*RQ*cl=vOEq)J?pkZMf%qp!b3@Lsm|0LaL`hm#f z+`gWm$LE0eN-6%rt??K6Hs+GB8&1r-lGwwL9lIx+xbkU@r@0aURd`bArV9&?>x$|9 zAEa^Cg)&ddRD~}26)*meuV4duj(_O6x1CPA96#({5_T-9To@ye_PqJ72b9?xUsnKdEI?aIbDTO6ndaL$6mn()TzkPQC2ZSErXv$`m*$!d|cn z!u41t7{YpvQB$pKDZSrnPa1URUs;1{fZaS3F>c>SOz~P0dc)kD_)iP}ur5?KPzk4J zcCpZ~EBAGSl{M%-M`ABrKNPO#Hej>jMj=xUT4DS+qTni4;V9T!l96b+={gC;LHuO+Fe#i06|DbiaaO0U%YgpT+zwM;PH;84_!KFc=(?|Pu(^Wcw?2hh9-qVdkCp~pWQ z6`@q9D_j$|T+`Obg>w#`NKX>>$&xU}T8UkS8^WIKXuDXEP-MkTaWmOd_x|Hkg{`8t z<@Us704^O=#|{w{dFXG7NeL>kq@GLnkDpQPu?zn@*_f1i#={rtits5*pJL6|M9Y^T z9K}EV8Ay)6S-P2=c*b4a6@MbjNX|riEY0BUFCpH2i5GMRLK1^`>^%)hV+=4RMRVm! zXCVCLzi@fjfr7zdd8@;X(8OB+LAMjIDj``zkA!QuqSLM6{EBlV(RITuI|@K5>>Pm% zJHj+%W{N9W(aw$BkW|^)ITGYPNdUvJf(y6?vZ-C zA?#v$JhjXWwoHYc4>5~)E`QR#+nKyyp&Od_N&yDhL|54O!Z#x6`Udk-2;y{0xN4m# z^|XL#Ay|_1s)-C_T$c4aV6f*{zoHJwd#(p$sRsz0e4mx3(OuWjuY1%_J8r`InUwOa zi$pHv`igCa4#damFF5xJFs@tx)Wh!J9y<#&j8EVq+Qi~>g2VaFMo-!@*MFh0mV%9u zTRuq5GNH_N_>D|(VS$5UcQ9ZUk{tki)f)dy=Hl$Ia4EXN*{B+#J1rWp0}pG-gFFP# zqS6OI32i_-o72K#FTPKQZYmrQp`R0keUY|ylG(XFn~;h1mHP)(BQocpeR%)50sJvN?4o)kg%8l19MOE z5HKkh(wrLz6|e`%P6VHagtb8>1_hgN;_=I(f^N_qc=;heOiF&-eNEeueO& zS6QVCvSI91mfNoU_|pBA)k?WxGabUwN~Z=FF6$1w=$x>V%V4wtK>Ng^Rb)xAfp>%* zD$vagnjL8{S{_!y4O`(F8?LDhMja}-JnY^I;FfQ#(MBf|TC9frFK zT%g^FsN#l9Khtp-8CPTyW0>LcWCRsAg38ufDO}FR1vbKHcHsIc@xXc}uv=-kfETG0 z8kR8wLS4a>_~8mx7Nbl-4w76JY!QH&2Vo+ZF0jKi)HK~u3evZfe--a{@IDKPEaGL( z(503ol}=}#fO@p3i=1Px;_)WJ=Y!5ErbQ$ncdaX61y+Sl)&e_o-zHj^?A$@=neJkM zV1PX+&`G0fRujTG6G|5+0A`T8Wjn#ecmVS{-xETIX1-%A0hGSWcmV?GGQbBgeBlEy zTq{_v)m^8Z#y_nq_Oj5Bw~{(K8Lu%CETnEBaPh&+RKW%XEiqA{@heew1zvKtEQAj_ zTaVVIaP1>>^nyns|LW*G(cjwe0uvEB;O8bHEZ6oG(T}D%egX^@)R{db#yp$;c0r7k z6`=CQgry6#--iiH!plm6C-=$g5vb&wawWllStY@!v*QQp`K4SR$ISC)uHVLQt2O98 zR)USxR8UPD98VBNq{~Tn@a;n7BBk#uRW8=`;fBg3vBwG_bnLEF+`>#1E9JbZ2t?iL z+C-&;VqmTQqbMk~bmJJ#=sEAoe)(I~OJ^s4{l=Zb3y^cwpiSpq_!)ltVCv>+T!!KLIw~BY zSUBI2n*i8~CZJ=+1c2l(cLI>LnT`}T^G$&N5+;B?%{Kuw622*GWX1&WFgF1U#2Q$^ zkRsQ`#ad-uIlPED>Ig4N5&N{c5c|#Z%z$?lvo|+l2U}7AcT{`<*v|oY9t?-;yj%cF zDS2@KzX}-s#`yp|9m5U4hT;I2;Q-+JVhIPjfer1(dZsOw;idBcxMP0KQ3tT^9L8P_ zz_4gxur~vPVdpOyz^w2u#zGh;vcXGbA@pe$24{^pb)j=Qkdyjnu@M8ZEpPytApzt{ zxJCmO$&;tu7M>XX4Q;KN5Mfc!FIjj%b@cx)6CUs_OPhU8a-y_Z9rO>!i|>|LXx^7s zDpBYwG3@AZvL8yHFm!H-LXxjm1Qx56P&FF1i5Dx}+PcEYYb)diU-4p~7BbE)sAW&I z3OGrvG`FOt?71binNRAHTK43{B()WB^8Ja~uyx&eNz$5NOHHz-I3!1OA!pg zDl!^e9xjuaDqJq34z+7R=4H1a7s^=c*N4jyu+9p*>{}69uWc`oGOV;ZnS3B3k)6Zy zg!VVo+Sme(DyFV1*Xqwm;xDGeVU+QdQZ{>TJmqjxxK_uCZVH#nIlC$B5(_&UBMxpP znV&>Y-^|`xmd60@bKfIjFgfgqPe>s`r!T#5DQ!omsk)(gUL zjsF;XZWKclqG8CibOQT#ckrm9rq+{**}MIx7Avc@;_1=^UCl6|8_(yV^fa^6-%+={ z%WMuIz8n+#QQnT1#}9IGny0Up=c!yOdMHKXi}YJ^-DA3L-lP$P;f0$to`|=xl(qjh zzlHgA+8hj5C#BgZpGj)$ER^Tu>X4#n?GK8i-$IC409yRj$0Zp}?0apd@T zDA2@sS5ShkFYym@DO^|>3s=aEvzHXdZQR0znBRA%J_$)*Ls8_WHRr!+kpITd{5MpO z%jTlk=O~B7e{*qM0NPQU`fm#Qc)<$!Z@RfS_e~dfIA54hy-W92;6HWDIw|K|H)%Qd z9MV!bJS!_WVX(56i6RhXd1CX-Tu&*FqSVteHOR$KG|MNqd`MQ7Pwq0yXHlC&i_Z30 zyb<=8`c9_gd%-FZR^)YwM6b(Lo!}}h&>*uza~n2I?)-2Dnw<~ z{W{Gv{5sK@Msnua0qylBVP&o;?wBJAl3o;#L}?ev&zcUBCc=gC zE6KF8@Qy=~bCtSw*jvWK${TnGy9y@==>mn-9Y;Q6Srm3Wl(e+qNVJqDxX6taoi^uC zPoL(%nl(_JNdSGD3#-RJ6t#ven8-U*hf}9>I5o2f<{eI?GKbSSGaOEsx#V!7Na}Dp zN0np_C*--#xbAT3#L2W(j;nLXOdL)vY?*`VJLPaXX9*{mruM~q?HQZV_8OG zUp$^=B=*I}zns33*cVS^8IMyoUL8+m87DtYMo0V+KJRC(0Q*@^t4_J8k`CvcRuK-F zMxhlurtW~Bo&!c}(e4gg!#9LW4uxm2rTWm}Xpx{?49j=eZsv|)%k=*WXp~_z0z2)9 z7nxToTq`34AC?-7&O;OkRKO1-4i~_s0}4W8#$#kK>j=-$!BEZ<1zQiOE~pSI1Lvo{ z8z9jR>I1d#IS~tEKBp*>gyG%+_i#SJu~dNIXZjfxZjxyzU>v2xM4^{Y7LfEo{>T!Hh=S?+OU=9VN zQg~W;`k_PN(nDHp!m|Xp9E}_b-+(76Y|((*4;?y8Y=IZPEp zjUHwYE;x*b_q4;|>4zDK_Nnry-6ms);)xDHOYMhlwn%ZkTnP{gBNr=uo@79Q-&$vS z8MX0{u&je1*!6dau&h8ATzO&3;R>gtge`d2Z4b0T!PO}RErE3;Pb2?~R3cg5;(LUM z=4sR<(PG78@7=87F*q4-1*kmi1T^yb1lo~9l|?p#bhZs32`38%D;u;jfnRwC6W1&_ zEpmfqw4J6t(kDi1Si$TFKy5p)J@blItmd!{;DJ`~@UZP>I*xwCw+0r)$JBrGK!R)W z@iYa-f;=~ekv5UF8j!##-5sX!*26n+86gMDROdEHEb1v7z6neW+y~$4kGjHct&?2_ zKtx-~!-Yy9FI^BWxH;@p3pxv%0n!3@YGJ{&7I=lw_@0~erBfQ=cJYyE?NFfJ4vi?e zmcAi2LxWDVTdv-oNk%(DKNp=aC8lvV3M-viLA0mr&npN~z<&y08AIhfM2cfAte15^ zYRC~udHR>=kOpbYkS7|PC$&M-5lEiEWh!54WtDeU<-)KcmnwE{XCcS*6f4?6yghNL z9z$}AJ@QhQs$!OjzRg^!zPzy?QYpRbWX|N>NAalgZXtX3BPxb1JO6gWrNLt=r?;K_ zn!J6oU~e~MZ+}t6uz=^@j-M?knYeSQWK-}>y~g$KQrPjJag2H0x$A*BR&Kd-VSaMl z^6H0B$kO}A*hXacPA>nZ8Y8qI^YId6W!oIcUGE&ck%vDwsU^8pCA!V(V0p+KznGDZ z`IU$_o~N-p4lx#y%H9-gdU2aC!5tdQkD=wHx5Rf((jOy*oxxDPzs_)@{CXQ@53i`C zIr^5%(N{T-f;jX--sYmvhA!E|yUedw5A-;W^KRO@`*fC(th;yrL0TeNckh;dX-jpo z?mmip&#kI*6jcmQ}#X75TsUlGX!U*&x{KdAnnIsilxj% zSz+SByeki>1=fldDCAkM)qXuJDcBN5ZeAmyikRs%R~}xT{gseXi8Ifycs=suQI#g%#CIReBvaCHV| zt~)TR-n_k_<|$c#pm`5Hi@-#CA!QoOPn66LH<^_UNDNk3_Khfx`9OfVc{GSBW>KQU@cj8D!(zqX7Wy7AN_Lz8wAAlwd_zlW z{4qWYCX7z}zQ$UfkYbwned{HkWTW5AlHbSD<@~yr23s7?f4?c(EZjfl!M!!D7fIUwY5fklC6jClI8)M?9-c}Z6hRg$et zuq&-hQMxi&iPcC?tBAG>S7kvb9pP$(;&AmGi_~-}+*281+)2<9Fl`e7a^O=t>9LVOWl_%XiwO)RuNL;m*>2Qs% z3M*7T*9t+kz*275uDl!8ffRzx+^`O$pxa9WDJ)4Kt-Jt8kv_mjfs}yB7X>MO$$_+z zfi&Xny6?4;fs_Gn4ZYC9YqTumvNGa0=Ho-h@w!qG1#-M9q9D@B>qADf@YFe8Eu`7j zV7LAXo?Ua|X&s&&=x17Db12GcA$Uf06ouSh8axveeIa;ST$G{cOMxeSnG>EJ46W{J zt;18G1X`68MGc-zp}`aR4|ra{Y)0V)z=c)whPKn@p!-ykNo5xR8~SzHe=(Rwm5N~c z!emd~FAJvse~`T~^f1y$Uxf4xu15OcDa!+J?RM6dZdpfGCazVOEYb-UTK-!O#1qf9 zttjHEGZ8rjJQ9e3dk(;N%n%>7FwN8$=vbyPth2_~(fCS*1r|X4l}@&lV-lY1m1nvz+t25TzX+btpC{m^2yzpG{<#WX|67`}pJWpE0d2=uk z;*B$<0mqv|dgIDis!X6xd9wt5sZr(vr{av0bVBN&X{Q49oPf`GuOy7XK}QieiGZI@ z7%ax%v=Wlwmx}fh2IrfXRJ89DL1dzR*Hx@PQVnK{_COoq{(4g$F1#8yqeXRgDY}7x zKCG0P$l5SnWEF}eQW%)!L{<|@3v$2Z#Z{ME*g}_5F699AJ66EK;=7Hl^StMP!n| zQGp2Ek`Ei#GWCKgRLr>wO&EGx+odq&eU36LJtgJR3`<~zb3dBDbEbllhaC8y3^}Ku zRLFBSkxalYv1B>n+9Z0U3XbSN6g=iL`*PaK_xd6VT&8olgHLiwT>Z)XQ~YWua)vPT zOz~_*?nU90LJ6L-+=(p9MUKGA%qj}o#)vE=HOF)+UYkm?&he*pT0{t3c`?w*t|852 zHt4b^|4)Jr#95cZOe~K;sT5{uI1k}zn=lK7n@#3SwE$_-3VMlHiYf#!i;%$EErLSK z*VTO3G;3BEvKe8JESZT{d-b>k+yz2nh3qQZPojkA0t<-Yy22AeMH^^})>=eD*v(Wc zXqQLbdL%Mj;LNcW*-haz zdg(d6B=UunUq-0G3i}Grinv=#tEycQu2>m_oKT_QvlZRJHvO|BT(Q=_DRw?z#TAfO ztdQg-_1bxcxnL}k$JhlD$mbjKQEBsG>+?b@L<2g6bT)Tu%?L$%m zs7Cn0ZCrRNJCSuzr2)JAydU@+Go8dwq`&}n6;69k;lb*bY`h3{Ab()M_?mzL6uiQg zkXQw`S2}oLzVB%{ieeHL-pD^iOk7YTNSr$lfja0^%*1McHeh(c+VcQ-*_GD;@VVyn ztmFVU85@7ZR-9IS?-G= z?nLnhcAI&2%rF4sBo<&Ue1m(4@|%?4>pl2&3!GcULl*ZUuvB4E_Vr5@3<&BV9Vo)e zr3*^?^)zM(Do-A}dgyoZ6+`xhaaJ&=1khKGFbWuhPBNmeUfArUDOMJhmm0~Q-a&Q5 zry~V!7#B;0&)XOq&O#bMwS0It;KrFFLtC zwu4~YyfrA@P=DU2bYq$>$W@^3VJ~GmUFf`yxncGS0xOSYn0HgM9fx5$VRRD)rtOKc2MVc5 zaU*nMR&Qn}nGGmkl>}}!fHR}C*(hBLSy+i^`)@F5g0jVh7`IyZjRG|QtA~AgWE#?ww^7v z4!(5>=W)dUVjJL#@tYA~w6HNbIz6PvbJv?=#=mVzROCqX9S9jz*)r z@5)WF;hNXjyXW_?YzRy~S`o1dT7G#lMU7q3H_0>Xtv!YLAp?}yh5erz*LI!#0hWIb| zlU^c;T*A>GcbAO!Gt0(VJd>6oF&1~$poFu)gp6pQO~1ksh{jnOK~5a?$yAFQ^GM8s zQjJ1}Mw=F`3Mpr)7gsrGGn-p6719|li>Z*#a9K>nXgO(4OoepDS;SOGXSgh;LOR1` zonLL;gR`(4IL=aHcHk_H31^WB#5ju>uNDLfinA1rv!J2WR{_xl2cqc|tZXT;(ptn= z3OJ8RN7~tn!%{$Tz!?nXmVyB2S^EiRA;4oAXUW&D!)#d!;D{U{31^|7%r&PVMGaba zIU#C)R5T)Fe(I#BPA2o=mR*|lRz^ua0ti49 z$fCe)w4{1{n+Vz~-&^2_IaM+*>A?Mqb_(S$vnij|xZr(Mj9Q$k6yej1j; z9t{t32w0kpfN8_9f%(zS6?zp%mXI{E%qPEF{wv?(z>*VQ`Jc;c_m1wXt{tiN*4D1+ z>#gk>U0bW}85p0a-L`hT*0*+Gq`!J_O<%2dqB_22V088Ri#A@=w|jHnrd=28y5NEf zciWq*$NPs?U$ADw#x?8hrSXZ;T6OKfM77qtYq+{|U+>u3eWU$rYU5i~TR1v75svN- zca2Vt^pC%G?N5%3*7~cpYJaW+r`p=Cfr-A+fsxhg)||g#&4o7DUBjb&L;bxIy=y0G zy(8njeG>ztBaHRdfr*jo_;|Q`xOY!DUY!VcG3=4iFv+iuhhw$scy(mrRQsg4dyyHS z`D6xOyT*n`M~5cIUQJk6`}Ur{0Z^}Bzh<3*daO3EZ(w5JKy}=Z3m|*m%|W}@?|I%2 z^6TW6rhB>P@V9B{vvcVI?pMx8hcnV|BK_I{td5`c>DjTj8upD24_6I~!h!K{U?l7v z;orW|k#WcpdljGs|zTVmdua1C(eG_5zV6|^jh!{eI`vyjM zA)Fkk9vq|MYX9(UZ$8ywrGx-WV1m}1Z}T%eu*>G;dxdtJj|+j{x%|>};CtQ*(r>K} z_uf{mg}q~A!vlT2*3XgAiEy_#Li&)gD^K)vpc>v*ok$01APMt*oLaKQ44Fc+XtpYRci}S?d+Yf^v+s!|KtE1l+)`@y{u}VRwaB{5bzp?q9O)en ztF_u_?c$J8iN7(k47zWxm@O#KUrpaTmb{my-%ol4E|4FG^Ou+lZ@CxWeRrDR$^BX4 z94~%QiC?gC-IRTe2FmyiXS|IK?cRT%M*4N`&*XQi^Ph5z+|ntYR)v@ZY2mH)V`Edhx107J3_MRb znx;RRq{;H66YB2-W#cD*5Uc#?sPuin_dd&9a7o2u)<-@e@&FIc;2 z{l<%`>&~B6$`Gk~K>Y%G3~!{rx7L3E>;(jtFVRGB)Zd}zcJCIh%lN&S-xW7ras7^+ zZ`pps^?b^trQIu&H&ngtm7?}^GGZkfU`!?kA`ohF&!&x=XydmU9S!*=GL7}t=>O{R z(aBn073PfaIiO`K+_qucHCJyRs{xzsy(|?YdvfJ@y8Y^jg9H5scsww2pm&({kbftu z7l%=_D*OsD|MF`suGwFMEShjKN4eKwm3Ft@K-8VL@De!`_<74kjm~WcC zkMvUYV;q)eOWy9@f#GWZ#o@l*gW((BME8bwuNfcf?W?lx?CTvEVZ7Zd*R9`h{>BS7 zUAXz8-d%nD)!nmE=;g`ld#eXm8{O3oKqd#OEZ-XvvE41-J8T&l9T~pO#0mN_F0caJ zc>85rw|bvue7%h0$M{{s?=|dD|G@Ydl7g`XZ(D1-SEao+_&^)iG<_Or2^#ATf;W@M zK367Gdl{TIuI(9@#J!hO+p5D=qhHGY1$CXn)zD?UuQo6?v2$#47pR}qvE$$kNbC0E zhTMzG+S=V5GG}A2#=zID**HUX^0v~(4*GT(M0*z3d|GQ>K79e{bNTIKb}kKvt0UY$ z!TYDOK8;WGyQOfnj?*Wp^BU?Nq)&^ursqYBQLFE6LpAA^J%R&Y5JddzJT<3{95^Gt(RbrEy7y^_y2jg|8IvB z^7w`?RDQWbnotC36Yk{8T6JQwHUd*Ynl|xinmqhUIbMA+7t0Uoc6Z%Wj8(cC=pFbn5)meXOd0~M5()1>m%+jI^{iV-0yJVKWXhs^l zgZ-uDMdA8O({FUiEG-pDf9dl}T{25+mC;}Ne2b;(>3BxEXGZ$68R^Ssq_3EfzH&zT zsu}64XQa2zNWX>jD@BHE`9o|>)NQY8k;8>v03fOAlUTx;L}DnKayAb-awF zzk8*W$Nnk`A_`Wu|B`TWyqeO+sdoakt(tbjE1lNvUB}o0#waR%m8u^ftxc>&qCu-! z+g}^lJt5-ir>!5PjpzBjfnS>b7w%8XrT>Kcu3Y*{Gtyf~NBmxczM?Yr4XN|$Z~N&^ zioc$=I{Bq(;o%vta{H5#c?GR$J@CAH=tD1Ui5G|yi<2`|_Pds==58-PX;SLv4g41K zQ<-i2^rvS^|9}$wrRleFpXbbix&G4U+qu_jmU8a5aerej{dVs4mzI}wsK2!QJGj4@ zU)mqdz5dejQjh!K!Z7w*-daU3pSbwq$&p)Yy<^=gZwaw~!0vCkqE@@biH7!WTDP=K zX*_9NJMF2{I<%hLlBCn;f}#G>^e*oE_@(vr>mh&Xb4e@u6WsKZR-?Z(y~ic9^xhfi zff?yR(x)nP>>90&??raKAhBK|xjNGau@YpQ@t&DI#F-kdFUF?n%h3PkDk_XVTk**OmA&q;f3=eO=6$W?%&Fmf?y;XR<4};IZNY%-x=Whs6uVL{6@2tL3NN1~;6gJtirM#iP zPVN)X|K^N#Pqh0!exi+GeqH>8%Wfp~v5b&6$}gphG4A*0(lzd}+-A=~7jH6`KES>H zQaZVndw3i3h%JBO;6WsHbV7{5)d`F@lOsbTqqm|gfp@5o6S{cbC(d-*>@#S*D4X6N zkXC)4Px8OaRr!C;wSntjC+ThDyC!-}aNRLFx_uw$$3y((+s_;I`k8N z)L+`qL)<6z+~|w};7(Qp_t%eJCbI+e+Iwj|hb`smQQnaxo$|EXlk^s@dOpQZe`&k# z;(nw$aqDPp2;pO5uhZ>!?nXAQ)|j%93D9;J6YAu?U1S*b?L_YaW&b+bMt-bq_>rGUXYDJ$Xe>uN=dd-YPc6`z)_PT8!mAcm=6Lx^=q~@V4xpsKzLcaExv5)j(5Bk{TWG2ZO7@0 z*3Cn77BOG3B$SiZKJMtK3DI*BR@-HPI2KT`Y$~#O|K&@ z-BN!kPkXmZX6ZXfEANdR?cPzYKg{n=e!Bk=e(4(Z{-mu`N31|tvc{$9_cA7}X=(aB zGtzs2foOr{B?RX}EQ@#&<@0#8B?GKfYxh=%F>%VQ^%smwveF`cujjXKV0;{!M&GXv zBYNF(^|E$vA^C6TD!wp~7~~ScU=uaL%~e$h((kYAdZT z;qpjvwE@hlv^cFw?-NP+Kjf-8;_<{@I9|wdEw5|x-gsK>B<0TJ0EXYkdhpq6)#JPP zvCdE2Hdftfb|KQ~tTi)hvc;t7GU=4#>RtVQl%M{XAp89o*CDL{P8u;2+SS#A*)q@v z`?=P{ri4##Hw%Kx;@#9~wuH*tW~3#JrO%i0{5;b7rP%r7+;2Ct*3|?3{bm-*`gJ$Y zcJz+zz~7M7F-6{LercWW;$9S?zjQqB;XV^zxPLFduH^YoaMfR0_8#u9t@iG|9!@jN z6)(yVfdDvLM*8+zNzV(p(sl1A`TZ2XwC_L7z5dd=?&V(fY#rG>y0>?HFZJO7=5FU+ z8{1A1w!{hk(sv}KTt8Z4`Mw%!con%Jf$??t2>Pybxcjz=gQF?vtE^MK7^$`VD9w03&5M5jli$zrgGpJt_jA=>+J~R#K6!Urtvav|xmtCo^J;3RhzSdXJ;=ZJ0TP#u z?%Ra`D>*&&Yy-mW<^)KlGi&D;tbF1uxEyvpH(>hCGF=7fcz?0}{uO=w zsUIEgQSeC8um~oR)smO2*0k*pk-CX~0i>kVHeCJ#y~CH|;GsGsxiPsF^iulHFLS>Y zQ9PyVuag#?<d|EIh# zy-*xTDhr!p=uLLDnU;r>c|a9Lk%={)7m%?=2fa5J9j)u%0Y)|W2U z46SIa+*c~jVVeRoSVTuhF0YOZRQs925f}FH*6MDIb<;9%gx8Eoo|3e5NQ zZ{OPsml0E3ziFK=q+DTyO2g6LNZw6(?r$dPEy?rW;>tW{+(PT=P82v{j#GD~KkZ}z z!)lO5h$u_QzFkHWqs%?nBLwzzjtB5OZyOy?*(S_1z13_deMn*VG17DK#k9}A&GWv| zeXx3*n?QI3ln7_k@jIm9SmSW~3G2}-Rc$gu#i;Q+QT}_noki$-Xb`fpo+?$(6;cNq zhhCip>Ll$+8h$%8-SH~4H%Dy5u7NQ^3>n)^E1j0M0ANe&{W!laewv$4@cUhUXYv!R ze3IYq@k?c?hq>2Zx_*C(``_o6KL0fLCvxdWxc>}4$+oKh5BNRGFD?IB?xiWG>Cbcj zST6mC-2YK7{RQsz7xSb0-WU1(F~9WvKjHpQbLq#q|57gfW$yKtzW-+~=~cL@z9*8j z`l_G!{>bRa&LqZi=Om(B{vIOHin((fsf=GHqhQjjR`=~3H<3Ag!KG{-b|S?O$X`A> zf+a&0IG-_fOiL%P;!lS3A^4rC@H39U3gy?+YI<4$WlSr<@{+O4R6 zv<5xP{6Drc&jOTAWN!%}-ZSUAn22w4)f{-|xoc~3J(Fu2*~_^u;CepScCMEt*X>+| z8+*8(&h?#1{*Q6h+V*qF^+B#>(jVu#kn87?^p}$K(_B^Wvq^fURn9m#&-Iti?N_M_vx{N5_>woiDS5~9gF>;?(Ad=6Qf_Tq zu&{m6X{RrK-RsXd^9`=RSxc67Eb9y_eEe?tigUVGo_pS^)oa$O3oohB*Se6%43p*y zO@Nt^L$k@BVvzl=IS>PS&wMur*E%nwtkI|OOVdBZy{t*eq949($CaDYXR_pW@jGRt zeIfCDZ*5F#*y45V<|&ijC*FN)6&D5pMz&GF#T7YA7SHl!*X7dEJ1*z9pWhfiSN2e zNq)WjF61}N?=^+jp53= z`O{wCx#aZceXr17UfQ~#p%}OVFY^2~9dkeavn2L&^9C3Dc?H6;<~mJ(6{dSdF8wvq z!lU&0w@3@mO&e5<&o204?)ks+d_^w(qufXQe)H{vm+X7*wiW;Wh7T_LtMhx_^jo_Y zpZn^Mb-cOOLSc$76Uo@t2>aXMv1vbwoSEO>l*v58~QB(O~raXWm zI?b#63v_B3^`{u(D`_4z4&`b+!#SKK?DE@x;-7$Y_n>{q)74kqc$2+KQN zNgZG3s=u_pzvg}iFCgOC7L1)v8OzCONw{eu6z1Q3ngsBZ$bquHZNsf&LwmQINU2gz zUYE@N4Sp7ic*;mQ+e}g4x0G}c1pVC$+Kqn-wvrRxTHS+tL0q&x?!Vz)7KZs{h}15LMf&H^PKaYd(ZuhF`E3Rj(eW(Z0~ozv%Kd$?|BdRG>z)QdOE3CEUVM= z(U8)dIgoEaN}sO8szyA@zH9m>l`YNWc{A|A>|=LC${jX-Hy=3J%HhGE`gY&IAMeby zLtO;@B^~TiA><>4sfFb(TTum;{Bic8RC@&%|K?{hviYgV-IMiohaFsIG=Kys%gRJIVgkL zEXUamb&AAdv7#*Y|L@>1ZlvP49yBqe$k?cSh^J%^S8XK`aoJWBPBJjJ1B`yE#O5Mz z=6?i^f2yv(hhGeFD9A!zJ;q1ylPa%!>&g06CP}9rOAUGE^A8lcn31vyaX!ot(R$>WYMaoCvm`NA z>~vnkT|)V%=sjv+j?a8{4DLrbt__KQg5#fxe;ob{Yx;n zy>}cjVSrO{m1lFT|7>-*mt)$8i2B`hSJrkjD%W+qo^tMD9!yVG+RvOIxwjFX;W z%SZrkQUvV}Y=W6>0Jd!dKEs3@Qxa;1N!}d zr-6RTNVdQ+z7+?%iC;1Bj6Ra*cns-#;aM^jZNQJoliXrVVbjdRE`5;|v)4JTNXEtj zB;OiK&E!fNpgGEN@FX{*tjFQVODOyl{OrpLzii-3SmzwKS>a-AKN%}!7gJDf7dV9} zcM3G&HX06q|8fm8u8!H(_4LGg`tHE&yQ)0Ov-J4HjDIQW0S7M&UB(#=RS|#1$uW-Q zUIC{t`-2tkQqTd#QtZyS#i5qz@pAm{iSk;)VIh}(t`>|j<>Dh^osg0n%UyYwcnE$8 z>g6!gw?uuKOV zbg)AQ`*m_JgVO}{`Mwrd#+flo6@)|!bg)bZ8+5Qk2m5t!LS}#zT5JI#@;^Dgm}eY#a2T9Xi;rgCjaPt%DhJ^@4P;j6f7rhXv_DJ9MyL2S;>p zS_d=c=>_RvnGQDSV22L&>)?nEPU~RC!+JRc;vMSZ9hT`q8{9z{v1~i^p#3^HqJz`! zM99=OW4>OL4wmU)gAR7+V80HI=-{*tW-QRl(ZMnuY|z0D0`cYzKtM!0 zy&xSd)4>KE?9jn}9URfYX&uaXL@!4N%XF|o2Rn4IpFq4_L%iJ)J?OL!W<07Fq=RKT z*r04WS7T)#mpF1tHdn5slYPWl#gmwcxiZQq75YwM z_AZbjR<~5@A%s&Bp`=u=!5^>TmGFmYn4BYbUQ~Qy?$#*07JfZGaSynE`;L(IoYx|Z z;w}&2eQ!h=lw4l}r!XbF`KGw&#%I>mWI=xUyWz245vSDjc3%7 zr_-Oe1#V|J{ds#lW4+Mn&#k~64W~c%!?R9?)1OnCKqg5rN(fN(*%i;a8IJLlq|hJF zy2I(udI0w{J?jM=V0sn^9AtVH3>;#57783@dKL~GVR{w`+}rdl3OL&IEC%=*)3ZLn zeNE4<1@32h)*skrdKL>DXL=S7oB&tTl|eCVyJR_>g@riZ8tQG63=&^jM#I4o?1FMX zYigR5fOW?22;fOr@p9Fbkd~HZi;GLigk7BEl#Hyjgn^0a83}0#@iEqAh}#x%uvI9H zu4R`wtYs6ekktuOW!WeM>K;6%n21ePx8X5p4we<;SXdS`RUL+fHmsU(-oTY#5RhG3 zfKygdid9k&B%v7N8m9Y*ab+{=hAUfzx0vwzz?3eONbOd$x6dngZ%fd<@@-7sG`m3}a3BkGa3mLja#pAfw2TtJu@bh~qoB}_0 zrxnhIzbPEQd1CTVTT)_t7KzRplrTKTnk#n4DT|W|3RYOo@uV#`@-nB@)0I%$RaAo~ z9i;)RSLZ}DM@Jcsvl<2AnWF0!_&L8Y?}XtQX|}kGtPC%TjMP>(X=7i(O8Zi>FqO|8 z$b;{v@O|)eu3)}H64TQYlLuxEOUy`4NKeno%ov^$gU^YowFiI3R8tLD|ZQ|=Ni0VbsFyk1=rkSd~h|uIdG;7!sr}B`Crr?4@FW5IG>unMSjD5 zM8D_U&bo_tOU}inyE}#Ii7GzlckZafX2iKGRE(_@zY7DC_-;ntd5FvYpm3=PR~VS} zTAH1!_gr_H+qF0b59==1_+&_0Wj$fP8ONyk(xTVNelhq4AHmO(M`iz4?W|M|X%-dE zFpjk<++_-DP#PEeTdL+Pk057|TcVytKwE^a7cCd;dUg+H9Sx8n?Z zmbCuoR?C3ZKNq%NU}XeaR^D-#2pmEd=1I={=SiZ)zY@8mPjGtjW3QnaBo)GCk>MARXt>XYh+*$)adZgP;A0G%I!y zQ<)^01ZkAA#@RS%g%}|d^09iS+C?DJzmI%5Pk)79jw_lLqMk({t4x(W5Ai647k^(3 zJ30s*mvr!T+%=a|jPvj;b*vLMw^=T#s9`HDFV?}`&mqvY;(9)9^f)VqrO z`%m&Yfdx17H}bY@K)l8XG}jI5m+_=c3t1IfHJqoe@$N=`NAcTDD_`=qdJchAHZNi3 z6GMH!EFZD+L_UlCLSgP0aTi=JEnt%X@#+K9-Z1&$xxf&kxW_=L$i@9Ssgzx1;bU@g zQM8(TP4kZ{i^ooAS`pG4o@TLZL|N>^q=z&r%rQ7x!{oDc%Zf9L=_=@SDIax5|8qFn|YT!?Yl3q3VdzDhi?*T9sDA zPKs!)ZXH}T5y|mUu+1D3yW6D(K&;TVw+>26C7X_U%8?H{(8{(#w{E?xIOu2X)@=~t zlXuO-Z$tbR?C#yIMb8A>HF)_o|`inuUe3q$VKymFke7nX6kNem_!b31J1j#b8^sDWZEIby7T zAuY?4+9PTS=9G4?@jNP9)`zMtV^$%v%<8fXH^Q+_Rl}6ADNTdwa^^aR{!}q1SqB-J z%tam?1J8+6G%CvM$`IH`?vMN2Ce5{Ts_aV-9lw}u|Im+OwY`I*SquE*>cld~M*mtjn8;Eh2 zjE!f=Wpfl`E1(}4JoMo1`;af!HH~xRoX`fpAQ9U9g5$!l zDw!XS>T=q$TEY>BV}`L}rIM^3Y#EMl(rFC(a%D@aL$H(T$@kpQK3b@HU&;;mzBXx! z-ou}f?a2X)z)4x!8R4`8g?BO0c$F!o79`-@P}u&pG;+%JTuG=Q@zB$Ha--qk0Z7Yt zRrGS6Yze3OhN^1t2S(3BKg@%f6=_75z0xqP>!xo7^6mo%RcoWRRlcr#o=c~?vxlz+-vF_i_|E5iKb#iI zm1B1de#zIXI`|fT)`7x5z|VO{;iCrTyMf6n?dCGQBBpV?CEkO)nCUI8{+0zOkA3K6 z{Bn(<>P)p=al8rY<05mFH8P~Ee*%;w6&W5WK95~ zN-&beSd;Q(U*-GB_O9v}M3fan!Hl-e&J9)S=AQaTG+FyDMF)9cjyDQ#gr7W|qRSw{ z9nSHM?NfytjRSol89iFmNTu>pju%x9Ojr%WLY-JN37L$iXL7i*MCD8Qp$%nIeyT8e zZsH5(Ekz50@5Z{UvLY;VQ3mtpTuZ(<702@-^y7sQ^3#Jx6{j!4S+2s@8o0W2C?N`8 zu5E#jkP%vu2g_BMJU`o`>hn6AZ?yAldm%+8z2p%*Hf`$dma@4Ut&>7e`R?v~S!a4V zaR$C1?HbYhK{I6xtOu^U*!na9kXkO-WyPt45YJ$YQfY5OI`Vk#Ia!H9G0PW}h8ex5OhK@)sN{n#0kS2V{L?OU#E=J#0#m9X7Ir z+G*9S0Q-O_wbV{V5Pd7QTf zi_5zb0$ui8*a#CsR9FVULam_8K&sKI-z+o`V-!)3jF^>=TNm?G%e(Sq4va;m5SNPi z*>9-1RmXA^+6&OYDS#07^CYOnhGe}^D-Nu&on`sOIbtWweNTqAC*)nb z(iFR)DXLYg=WFP?&9WHLnMLJWMc0q9j<$3zl5$ODBTf^uP=rn)@VTONO5UlrsSD2e zEJuw*LT0BLlTld^_DjJkY}i4o-;u@L5WUg4<5l|5m1-|{(Hc*Tb%?AejI||r=B)g- zBhkK$xA9&bVkWj4Wf|e<3u<4GYc-CI3UiF*SgYn;RXuLx?qzA9DHFw@sIt`BTVd{Ban3L&Qy)gfy9RN3h`^_OUv<(v?$M`A||Lg6|yXBTnI0r=lt^o3kMPSrAL+i+d<$HPet5>{mz42S%+yW$ipb6&L*uccFUI*I$M>N|8b>l`b}eT20QHD}0q3c5OY z9*FwmdYkJfg;}S>#n|+s@lKa=}{p#i6r``zc<2Z5VPMdF#Ug$hfj>9=; ztem8=kjT>R_^Q#%Jvd&D*@||`w+F)69fdqV=v9u?Jn_6I=PUMq#ub-~L8^}Xb>eL) zYRB3Wm-SRhTrwceA!1{()JRmF8o)hNFr?u{Tn%QfITL(@#TJaOTn@<0ImhwlE6}a# zhI%~e9iVCj)ueM@SjFY~qq4Y_ys$g}1f&@Z$NDt#*FUqY{_0c@)}Bzg!Z9(U{ne<2 z;8fN`A4>`7Qty@uKi55K?_4ZAt*W#bYo7{vI=MQe8edW+Cd2cuIgp!Bu1;r`L8t1s zsu1!jhY*+VP#qeL>Qud0>=%kfTTO^X*_KH@!b*^LJ*r{~a046m#1Mz$OLgcp>QZI! zpV7I@pi|YODu5LBnk+4^Rfj&K9))Ctd(LR&;=a|a|A^8-pyiH>tE)>!%f5@C#i$o; zW7Vzkh^gVfsvX!Kzr{yb12?xf_l$%FcM@?pe^uvu8tv_p(|z?6Nw=r{=@jE+CBiA! zst(PS)HPe8d;YCSm)-?BrhyI$48@p;Nl(ejGH#XfCb@_1E)L7r3(xnJ)boEv^EA+< zXqFpQQV~MY-EgYZM^<&O@hpL4_jFZ72&BcWqG+_-eb%7ZgMs;FY5@uB<;cdP&g2Ck zxGF5Od-`Q1fl6K=^#-WJ!qbB_`?=~NC|AiX= zSYWjXbC!vZex9~o6OwS$-N!PunqwDC4rG}+R*lM@fwHk3RjqN8WqWr;uxUaEu|_0V z>fRycACx=DenP>LS4nOS!)$1(@F+tlE>Fv`h6MM5)X`B`PRrTW>|z|%R{<9@s(KaW zR;;YiOMQ%YqAW#?nN^Q|o-)NACkJ8dGmCkmx{cHO9mD`ylNWewx{t6*S>58R9IR_X z2T6*)Qo^-D4(+3>ehvt4REIjkIx7N+ZrrsEdF<0+_yM)+N`&}bIe_nOn-Kf}i|`6Ak26S8(QxR|->92TfXr9;>69wmpnFwe~Sishe&mC`x28d0?dG~IiV-{w3td9imjA!^V} zAIp6gLDRY1qEx)D$+-17Xttng)BI?15xvj|uK$(Y7_PC2EyK-K- zW<-p>uljpS>@Ssa?lmL9atJh3hh zSlzP*CC;KU8nP?JU7L9zUMx7J{w(X#SfE+98tLzYIXmN!-}tzsyYQZDxC6o>g*{@9dTk~f5*GH^X%i~*o$341Hd@$ zQwo#?^()-tLbZT%C3YU>@7%BpONJmZz_J2XCAsB{TPU;x$>pV4c6D2jSBOYM<&R2I zV90X9lAm{0OrU2CeUVZ&5Jx#K;w|F&6(P28ab>NZQK3jaxX{7q@deHaP(7l}zX+Vu zf6zzhkl9i1+)GiI>nt75HsR+@c&7>fV#2gt!2Ar_(QI5)MUgrrV&oKRfrgd>k2pYC z+M|r*z5C=c8gv{N-|2=f32$36wsg-kVbL6Dw%su%4!=tKL)-oXEm)oLIv`_b2g?)$ zJ8*q(C1=b@oxZ@XLV>bywvX7OV*BPEi$P`OMH@;zVp&y;mS&`-UTAgG=GqIfNhSB* zs#hcD>0B3=2X%3z{jl;PPfrk^Rn@%rmV1`zv93$v4igW-rDHj7d_MO%;z>rGsB^`f zJ6T6cUSh1RtRz9jdCZjNaT9*cgkLwXQ5ENXv#M+G{K-6(=3UupU8r8V>io}BuN3SW zpTs-&N^81WMO2>hoN~_nYE|c6NqkS9Zk1Gw8cJ{{niUTbi>4ukcKVp926qTOwNV{P zc5*jgX&t(kzp9=uuFtFFQeSlRJb7-uyU}J8R{h@i1{b8E>Z-bMa!<`wHPU#r1iiHi z9p}~A6qY3e#cB6KJJcA-f0kid%Yqcu(DmUXHK!?EFW6?lhf9@4HPWGXVR(lM#ZLpo z;^dcNS5m|!O!h*BGeKZlcCLbP;-ESn*o4Y@CVIErk>`m-mA105^CWTS=RM&lKF2tz zjClapfU1qI9OJ2K0F;{;EF90U8KJ@y2h3fJXKUp}S@JZw(5Cc0T2JdAWlnc(is}{W zD5`!@>t(nFprWwYo>O8k%a1L{OS8i=N|7_GgqGQj8Ig}QujJ+23N&b!ofgRb*>o3L zJdT@5m8Nv{drpF3h|lvM{BGhXe45i$0{sqWb^-Q7sUE_clPWl$8(Ennp6|IVO4m<% z8D&w|k}pm@LhP*P6pzIe&)g|&Hywg>&j_NX`1SNDRrP4aed16W4o_Z(vyj zIE878gL~`>&x7Bp;YZ=8-n|N63_s~L`gN5gR^6woPU`8;sw7m9S$WA_85bz2%A}r> z(4Mm}wCY2uFdJZe%~&BV#KOmn&0qDwN95T>u}^Z&W{HOzJSWKXtr0G)2FMkYw*VP5 z2+6)dOPnxX-~}XAp;4YiP4`FTnM7kLH^i0aUKr?8oRNzs);SMk)?Rvh(~x&Zw2O48 zx1W=;8V_Zbo?g2L`SFZEDl{57t`(zqxObGtLbb>s$`gLh1DU0^sO!2&(wG2?!exrt z(7!gzLmaL_Gx6I3zx*?C8ad7~nD@bALB*YhxICi-c3;JHkC7^}in|4fak+uuc)qyi}S1SJ&kI8e8brDBdQxe@qF%je+5T@csAwF&A@SQoD zNTC}C7cug=^Zyg;3#;8_TMaa^{n;=PG@tXr0) zcsS1};VKsz-Z0z`6T_kyZNcbZc6>EfuQ3^`mTjD6a+a1-k;iDno_gk#t>z0O@H{P1 z%>YPTdj;d^Rm}UxXQ%}dqNPSi^a+1Psw)5 zGj*(Yh5H)Vs7J5ttES&Os)s^j?nx9T(D*^D+O%VN3UqMXVrup!_rgzP=jrK^i+1bh z#L8P!c(XOEJs2nh+y_t+%%M2I0~>(~8lg8jV1>X45`N=(d~u$hNaO_*mfHLv8MG)}MNX{mdt&Tw*$Cr!AVg>qWXPl^$f zi(h7#2%e+zr!s$SL9`wDQ)UVU^%O%jT35%;6g9%*aB;ZzF`Y)}O1+gOw}*OPl%lTdifO=6paDQFDol?#RLW60`>gz zY?$U58E=GU&;B4}*fkL!%=ioH-GZx!KXd!Qt5vj^5ePxw(;1(P5#X zA@)#5RCKt#cQA6t=f|aar8zFYm=TlR2;~(yOTxk!!$T2_n+68^O&QtCFPm2(gX7CB z_KTTpAZO9|g3{t5iWQLDRa{<*<7E(Z1UayUQyjpHv0`w|ab#d{Kq(Aoz*=e){Qc#1 z$1$KQI4n5SnVsD`I4sf;5*;4u?A<#wDkL~JG{l*c6CD#>NOI5( zi|i$^L&2)U7w%cTuiX#l2>M>c$2Rt$`M!!g&H63r2$K74L98+*$2XK+OfXQ?+LS3- zS*f=u;#0c1np`jlhZ;@L}wC_}{V=&m55-A`n5_Mjqoyz&o$+H6< z0=3)Mz~=JAC**6q4UOt%7eQlr(SJuJY#u)^&#D+>^f`4<`8hUEY%?{L$H#iXIOBdV z#!IeMJp*BkReid0+~iGp8b%15;g=useDUJTF_(y~Ao0DkpbVUql`hZF3X5JI6Dz8o z*-m8Nw;F-yDHv;DJ+0UpCvF;~r6Xiyu$*F|I-eM}lEd9n{)(lKSTYH=A&W=qtE20M zQc)Zfyx1pd)bdcj%jNAy)hrilFw8>#LBaQ-+#=Jrh47YJWwH!w4z5f>WlzAUooAT* za@+KhCavnO@DVn1^zSaGNhoomW@yp{BSm3Fj4^xF?`~)1B{@gVAkmt)V534vv8DP)BqB!sZyt(Jhtu04rmfOLN!-$%f9U@^x zORy~330<)^cTR)=q7c^LVIe_^BFMVC#uSvONesNbVV_KDhC#@e^@3^KYhC>y z>;+Siv}(SqK~%M47vVBC+~!d2_?}b37o-|%T$#BzMSa2O+KKDR<+FqTo*V#r=z@PaaSM9Q*gnNQeV>t&nO?I ztdGCUk9#b9uJ$+htIFYi4Z~R;Wp<=tdKc(3!!3ea0k;wEJ-7pK|AYG#?k~8@P;PU$ z4sbo-LgB7~8vvIM$NeQb(n(i{cPWLN2sagu&saX?^elfE-eDA6F5E;o?yJ$&fvan= z?fQAErE#;l4j;?Ia0}obg|i*w6o=$<8t%uVY1CciGsl!;vVNx*J+eH9Qpgf zaT%v@Px#s0|7{OI6&u%%i7p_vTS{K@5vtE@q1?8s@jKy`a>(^U10w@Nw2pwBJ=bL= z;+xrAMIlnukV>tf1f%T?l`>cn-97vbMttMCw{%_#C+xx1l+g2aTo=yR$~)~Xh@v zL|cX`I(V@CFQjAM{8PXE5k~)lmZxiPANqvl@p<>xj#^(>=dVX=*V(f5 z$vQW6uU~uUs-J3q{>QDg7Z$g-Y}n^h=WM5wwccE4t99igezn%L{M*tac6y!7Z=}>7 zKhL+$lCBeKuWNb*^0e(cgPymtc{~Y0ms5m+&T*Psk{8{)N? zLG~Pb34UFedCOtlQcfP0)GhLYJGNE6PZ{*Z_`j#}*kIN3;y(n*z@zj7d zZGh7HKN}#%JvpP6atV&n#uenb&+|vnnFIPpz;QNJ*bYBOL>+h1Z~^??P1tI}R2ER_ zm&32;zY3UbM}_Z(-(SP;nlLYs;>fPzKL9^x1MX#EkFB@}tDiz^9PU4ZSRx(r2F)v^ zw9sD7bDsTM=Yit4kq7$sZ4LUSqGAh*gJ@%yL#Aao^1Kdt-VAyq8X5^NYt*>OX!XqMkM@5TpH?qaX#U~6HIB4*7NkfuTuTM+Q$Q(Ls z_zgGOvmMxs%*!vhdCb_N;*xRDNiH8hVPeIk8h031L=?J9guyY%+XqoY|8c&8KPP_) zg~#oZ!{kMh{O$_x1Lguv;SYehpj3DlFx#!duK-&$ycL*>OBK#bL-p{5z#S3(Z`+Z3 z{KEn*NE+(4q`oEFeH2!Y?58!(Ta2xck3qU9hAUbcM6E4HIpoS$W1g-_-}Sr$d0F)q zSf9P^V;O?{YuA;R(7-De?|_yxux|9l2Wn2sDvQ2mVp@Np6dO>OGdhKLF<;-Lwm<+k$EeIlbcMAfNQ&vErdh@5D1T zIy{8fT+@Pk!yO>p9W{6+t7tFWAhnm4+AA(;RpghJuokAh>tk_%79N%82sZ(XpCW8G zP;J*~wWY@;Cdvza5T?fs*6=g%$HR?-D}m#&jZ(M@xM;YEa8Yn<)wyt?aAj~b1Cj$b z0gm}$fEMfioAFx&7XcRzHwG>rj&!n8BjLuvmBZQLdc(0lT+;f=%MA-fg}t;>a&I4^ zJTV&P<3mf`m47EktE#!WXGB~>vI}BElz9&vSB5VSyZM^252SYev(=OBzX*%%yE?l? zkN^Jt#t&&&Zz>O7AZKbYzv&-bWDy+VYUrk|DZ72K}$H**ZRZH^g3pGg>CRNy~45ZGd=%Q-(@?F zgYH3+vna1DU(hFciX0ADc*H$c!z(mct;%RTZs@}rUvzQz+6!%Zw-g=6;FqelO8rF% z67%ug2hWo+GT5y$M?*i}G7VwP5mwW0J&9VkG{}p+3l~PqXk*EuXyDke2xYO)-3@1j zQ}})po@rpnvouT0xUG$tR@Ni5WLgh0H>Byn0GPz8}b|v(2xN()2ui`C2 zoNM3|egb}eQ-z;|zp;j&GBBE!_*3<3ysc0Tqr^pQjmKCmJNC${jSl0ND}YR!*f@sN z#wE>wrG}KBE?LQ7*V(+ zH)`V%r?T%4k}UZM<6N4^vP2^?k`|Xjk``#0j&Qb9&??4j%pf@E1A@f{C+?|3`n zVvO}P()2=_OVu97U?(D|yoiQ5a@Zz&ec&VJ5w2F*j}_htKj#{ScfsEot{j(hW4&Um z^evV*k)G{hJAUio_g(ywf5auSyvWXNS|G;C2@>5K*JI)4u~b`pJZ}+CN=WvU@jKFy z>sMv|4L|uu9d`oG4Zj%{98qb;QdFoa?Un6AwKu^IOkK< z#!Jx1!Irt_Y!z<+;_0-;17EGBGk;!tX_>nWj?t|UH=`6=)sVKpN-s`y@rA&tutiv9 zactS_8|n&mpAY3x)*krfn578_Vq!!(C)9bVvuhn<8=jS(cw>T9C@mnaqPr2w=KSH& zztA;fv>XGBW~}wW`%rG!MWvO)xfN-4AT1?Ha?F<-Fjm|ZMVlqum*Jt>Tv)lZ3KkG^ z#XfmN%NM__s{!GI101uOz;SMVAJV10a0lV)05^bZ1h*0R4Y;@9kW93FwtMym_67EXSbRw;;Td$0 zRLjqxl~R?O_V4UM`xs|vHVko&&4C_vaG>0Ca?5C&eB@&piE@s^)nt`f+1l$C?j*BaaBfnVV=vpgj>(H&qB?Q6(>0)n?esZ(e2&WsKM%})qT>V&zkqPo zmkM7F%<)&@-N2mB75*5wjfM{c^O&j%Pp&QJ8vpM9eNZO9hs_rG z{(YnNzH!YHgI@gh^OdijHA!P3fLgi+Qli84Yf71`iXCFEa_hq7;w$ryemY7LYFzGl zcKH{5D)*G`LOGm8blgM3_rOn1RD}}^V5goJwPzOFry<(CP?$di+AhFHVI0H5dQ^OC-zo&T}l{pza_& za_^?36yyxC7xLT#*>U`_zUYb&7lFo|*2M)m>CQ6usssKME(*Y8q!?TYe?bzKrm1dy z(s*YPc<3~+YtGUPd)^T6{6>C2$->0A!9=oTsg#6bEyef;F+8VN)a%Pv7eQl+aI+>Q zVi^!0b8C&ZzNGX53rt!F!84Jo=bcKBFQsWix&KZXnh=@UK7S3ptsV<*V6n~E2r#au zJzz{|L?nlTFhfTPhvmxh$2!XjaQwEsP)swHh6kn2!}Tb*1^WE!C>XrB?IbYFoHt{HdbTlG&pw!GmLes7v0_8PjX@3QxtpNtJJYp}hM|4j4nv*(U0 z*81$&^VQbqw;%ZHm1)bCKKkQ?zrQ(fV~0IU`mIh|v|N$h1QkZsM&ZkW$?hxM)PyPO z?5u@zpwThK;Z`l2qH!Hlb&12L%0Jn_Kh>I7t8JqZwVU6x(DLzh`)Vcryr@>p<(Jp_ zp(4KaE4H?lTbw;>-}q|#8V_n!d{P&-0C19Q0`xe9#LklRm5&f1mVrhNWC|}c;TKJK zqY1xb;3uqY@&^Qc|7E+>rNdlB!$z8BjH#Efxk`l;@o!d0@WjwaHeUa)<&8^s;N8d~ z>6q`UFb8@aQ>>%onI?R{2|sAU51BAoL_NQSCd|n|4}aW*UjZhIspuuABsf=XaM0KWf5{ z0CP-I_4|YguK*^aqr!>x_%E5liS=-bzje$_Up+r!J$$<G80|a@Q{s3nM2En`n zMa;&QKr$}jC@vkNJ@Lf1WeasRlw>?}=1_>8SOklM^dP{dO!^x6#Df!!Ev2>P)PfSH zVQDmBB2?R5!?@oX%Me_XuKm1C^npTgsT-COB` zD3cn1dsE$$rm}7IG04Zr+R{BXB_%1rmYkTJkuWeJEjBU3nx2scseMXZMuPGuXC@`3 z#12k~gGH10gyf9G0f`A|X$dw6_A`ehq}ehO;xjV_M5PPmhV+E%GZT{I64Dbgut35J z%ORhqVyz{rUcw9~SA`QL7z)0#*o_ix5%O_nMjXHXKxYvY7IEg^nL{|Vz(sQqGD_@_ zROx|5SgAJXP*Pt}odrjw@?0r?x!q+;O-)LSvt=ZvBwI&}wE91Y=Nzvd!!Jd@Py8T7 zlyNDjkl`5t>8S~Ec-=Vb2#aL{;*i%d$4yO39Ev(%6w4vR;rM8dgB72DFt&ag9+TUc zP4SE2#$8@zi(M|jDQ@PrCPh6I-O-T-Vv4U>7Q^{&6j}3K)GxyskMTK%lkej*#$~=t zOFtdcF^rD!8O}7sER$OidR+Qh4kTP6t)^J+eE@d| z?l|0^a1HQ1uYhX{*AcF!^GX$X8QyeW2rs=VW4>L9ngq~WKPy!9Y&YiS71T~YNP_HPP-j2F3kHX?MDc^gztsdmEw}+#|<$!Iv4xm6u%;nGr3nxfpLNw zV|qEN+Rv|-wad>^ogo6h9G52Geb^T{7fgh|0&WtV-8gDp#@#aUeXabyPEJwkoF#U0 zVa<^naAMyL+Pt{Fi%k*&Jczt1nA8P>M0RXK;_OvXaT(O!Q0`Ea^>2A0O^Me~y|h?1 zBhN(SIR^V{qP}^|)DaXMksBQq9+?ZHN7=#A_K<96NUkF)A~M(+7MAM>b3}ziIC7ni z>>%tXl-haLt`ddjw!e5QG|P=c?zQHgqrf~7aoLtAbj7E)%mr5IBT=VpcM7ip=2+*+ zPb%!_8qqtL9&xx8!Tb(s`Kk57WaOj1-!1S@feW&=9L*H-soKh&cn3)_4UIN- z)t!zUmz}JFVNJkuC8((S63|eJy5rtp54f6s>gpT@I*BrKP!^eOGEfTJ;qPU_oit1a zr@IMTO}H;`jo(4q^bElHZ)zuaX>4rxU7ofYhjK#TblghAtWyqeD!e!RtY3v|qpfn^ zUcGxq;F?UR?o$R>VW01$SlMaslVT1#jxZIJ!N!WQeFl2ILL3eU|F*$<(;>JSuTvF& zA^+jXU!AHrSN{x`PEqsB5|6Tou+)tZ{cf1A;pH=)_Lc($+zk%*dlOiV85tFCl zM`&gTYHO9Ul5T@JMcv9QtNxUFlON)@GpJ9(FL-UsXgD(L3SW-lTE|xavz-S|Jol^0 z6CselNWH>1TWU>f#4rRIptNtP%?qQMLg_(hK^WQ=IQwx%F3>o3ux;Zb;{>VaBge!T zRTvXv)Kx6Dbj8v0|FjzjlSUYSCrOUOQs*xp%Z;FC5*(+!TIW_94-u-)AS$oM1c?vf zVbA7*h9M|>IX)z5_>c1ED1-)i?hB3aejSS{|A0|GNDzVxvLJJK3hE4|_bpr|Ssuba zbKw*ZKF{b|lyflp!@%?5{0+PS{)KRZ4EzZE*dx6tvlB=nx-j=#_@~NZclfterLpX8 z?$dhKoBLGwUX;Ui&c7|oJse|k7z8t^_$)=7_tiA?6!K<$>X>_t3NL}5oT1=`YfOZg zn~XUD_5qFaNWTC0STa$@JUCYKzb(d7uf|1q&>3~XU@y(|;@+=y7PWoF@j<>L<+c1{`=?vPfAEJO;mA%#4dQVM*0IiZwnaE) zXexXf`~e!i4So*$DxB*mN(>Y}2){l)5Oa#x!}a_b&hq)EXnzcO>Uc45m3tsH<_xMj zTjqTfvZ9W!kllU+0!b!T;6f?xV)yopZ90rN7qfMD!Tq}G?x%TeUn!vy_pG=*WnR^D zRc$_|`2?Qvn5STR#9*&-$)hMy{HgEBaqPc0&r{VmlV>&q>iLReSO5n&o zak*6i7Y#QNE($IWE*CBoj_)uYE(dM`9Q(QpE)4EwxFWa+xNx{JaQSc!IL`BwN{xjp zhqJ@6{TISr(q?KLyR_E#6*PZ{^4L%Re~v%8oO!Up$uVjf%IAEs0glVn%8oqhaX4lw zOer1NZH1Q`7(ec@;VHDGn$}|#Yc`w*b8+6|c*vqEb<#%aLD%3p)6rK1aFavD4s4M|Uhk*@BHm)qBkxO)%Yxva4q zJN?0HUZLUczzG`eWeN`mCeNkP6F1jzv?-ie505d06SEDd{H`&D6LZ{C;eAZu#0(Et zwFTXNQ*Bv=bv^V?bSLrG^KxHt1P`qhl9n8odLEDGTti=q?@S#an0B`Z6_@Z}FE=GWWt9{ z_;VBf!i2fD(97Fz!Us(FBNP4sn0hvf-sA9dECj2AQHU2(L#GQH=;|zFHWc(QMp;9} z3Hb0}xh)rCbo9QKBh7rpH?za!Bd} zOf%(<`)zoss5K-QY7U&Prz4&f@rsJ^S?uBj_$25TVp2hM_vB_OyCx=dtH=q|mRXh~ z4SBswTIXUDl6LEhg}m)6l*x6)b8zIN6@DH5)*2??)=9%#;pf<`;%|e$qX}CzOumq9 zTE!=SqvI~X-4UM7Ta00U-5>tXukaOdk}zK(*q!z^@U;-PxUnzhfe;N}0UV^^=D=K6 zsj^!DhiNz#nDd|t9|Ek?mSV!GCY)x%4ihdg;hRmk(1c&aAj^4H(enndPS0i&J`7A* zi;DlP34d?GKbY`Q6Fz3bzX0py{{+nSlNwrhZJFTy$nv4V8_&_!VU)rJY2z?C2E|w> zqrvA;2{y*s%WB!!LVn-v_{Ap$&n&`tflDd6rDZ>!H^Xxk?#?#`>Xmq2_e$9=E@^); z3dNjloq|#;P$p>|;d!Se5%_N{Kjt|C;XZgqdBQ_*9pDsx4gPoyuY{j%UWLC5Kl_M|+5Z(@3%?$pxQ7FYzX?CToxk9GVFFmtf&V;!> zRr&E;4*6PzuQ%nF39P@*4Zs|$Rs0da5x_#54DA-?O|UH1S2Mk=Vgnn7YH>*+rlGQY zn6J&lM2gEY3X02Jyv2Z;q@FyfVboN^)G*TDiCCwZI97`viB3bFP0`pJSdSkC%>JOl zqk*j&RvI`eydT2#Z`L1}>p2*9=KbEK6}ZxhE7?oEh!fkjP|T<8TQc`tV@9{~74kjy zN%kS~{(`4qWT>sf)OArA4m-fAn^2d8L=*dM1-w+oV@n0Ri^^vU-i>P$g+B%6_gDBc zVDd|sU>uYx$w5L_hp%S2y0w%E@V(e4bZpfyd34ShD*RUXL*XtRjkvH66r!Pfee&wc zVHEf55d;)c3#_778(&L*(7h4wJsQ71!*$p2?*^8VNoz@YHa?}eJW#Uh_QDDF3Rtb8 zp{=o;4srbE($ztk9czVR3P^>#oGSwN3qeQ_8DZIs_sIdx9P4dx3UiIe{&)#!D{*C) z1##aoudo=`#foNRxv8zMkYQVmaux1q!hR;qahY_g_#F4x4i%8zjH`AOYxWf`%Usi&3B3cTY35^)w z>R5*o@6cqE9))HEq?LYQ#A!H_8R1AR+Zcuwni>NOrgZ77A|A(`)b!X4jQ-+6S(mqA z@?iH70{6KhL!zuoFwz;umJE@BzgmV$NtCO5oSjlK&&cJpCcw%!wghuhMQ^wcbmn3U zN98&^H8WOR2ub>6Vs=)Fh;JBqQ_oQ_EtO>th!Y`We zdJ}%lg!h>6mnQs;2_FS!dsOs&XTqPE;;S>OD*lJ2@SP_7wh3=D;WtcpwFy%;q}Nw{ z%uVcHm+~uODGn`cIj*d+%5mj3lu0@izSD&7H{sbPycn4EtkOSX!t+e=?=kSDd`~4O zS=3R^!K_#E0Sb47pM2=0q5+12L?v7Oe1&%QXq43wPT_3$S-!$W@RMg$xCDOk1qy?m z5NfpwPXXrpC_EK@u2B?z7=FFHg~0sAJiSR#4|W}fg3on`@rZ{iE>%Ui2U^+Yx_6Re z2giNRC!Fy9!LNEwzL#_=Y%^i*qwu{|c)SVc19J{h;bri%9EB&q&pAtB%5x}>RG4j- zZKe9WP&`d>vP#9cEj06b2@Vz_IP6h%_O%Sq@_!3{@)N4O_u%iK;XUwkj#lA&;b-4c z_)GX>H2gpK$=j=NuE#oS*orZR?LdWh1lH@%&x8YjIcKZ*{eboQB-ZomZ%S`7VXnXQ z^u$b$#^=R*3Mn5>;L=2(Dw}p(dTO)`Gv%EH+*=DTGV)gGX)}d=OyP0^tFpy*l@`u( zz1L`%=RTR<*h{u%NRH7O%iG*xhX^`p;zNU-h#!y+VI>}_vSuT#{+)=)Z(XWxrpCJm zyUOt<1!b`xDO?Iac|nCao^Tzl@CWdB)9^d+UjcUs=rtJcAe>1ag9|!wmaNE;kI})A zUyftmSwg`U%|WaMq^7gn-&4$=SZ(+3CS|d#!qZ-SRQz>oCXbclr_mBx1R^7+Re3*V3soYt#G9rNZ=yoHsS5R`D%6{*P;aV2y{QWI zrYh8%s!(sLLcOU9^`qw)sS5L^D$JXzFmI~Dyr~NJ zrYhWl1^sfzHXD#Dwp2ydz)ys3)t zrYgdlst9kYBD|@J^rkA(o2p1}sv^Cqiu9%`(wnMCZ>l1_sfzTbD$<*(-riL8_NJ=0 zH&wm8sp{=bRc}RAye-3~@}Xa4LcdA^QyW>y2?H4|4aPOnh9<-tV*^7}YWh`b`c?V# z>p7{C`CL^7{i-JDSJgnjsssAnqmTf4$?g$Igy?0vM;{TQmo7%0%*y64O7?74SM1!I6 zC<2c|<1_gaCVxUxWYM8%DH#k*A7*1{;s6;OpOBg{2-rv~A0{Uc^>6x)GuL4g}!T{p5#DRmvbC~f4OiTtH#I|I9+!V$fF8+m46&te_ zzlfw>SvCZ{QG_B^2rRGj2gTthbVw$XhQ=oj#ShvLjFrG+i%lmKv2wPYk}5fpaE0#W=XaY-4h^0;(S@hPd{00?69#}CQD z54#+G*xT^Kj)ou6$5i3+i^%q!6%xe+Zop)2z{Cnf2kSt#5O$EPkZ3j$cQp1=Hz0v- zKr-Ec#JYh_L9|Xmv_?T_utq^>utq^>utq^>utq^>utq^>utq^>utq^>utq^>utq^> zuug%fMT6?l5S;=sQn^EP3dBg|4$&zPBb7Tur$F#W?hu^p<{4 zDnxKRZlKqJ;C9?0dL0N(#~q^Af#7o7A$lDM4o8Iu{>BaTIuN{#J4CMo!Pj6wwk0KE z+~W{Y{q+zx5z9);g$557Mx$YC7{=yGD@Kc(7Np3g2=;HJ5jyOIO0`3)WnYBUhrS8A zfLv4lgEbufx4?LdQhky+TQer&fm@&Cd8}O+Pwh9pfc2A(mz(g5243{lp>J>TEsTy@ z{qC>Znx)?J;faR|2Re#IPg#BK4`00X^E>^KXQyS(=Qb?8{Mq@pw6FW-;?BiuH#Hys zSm$@vuf1dKzGZv6?qwYAeNtXTxdn9q_)B>bWdVHN2#)d}{_=TaIHqAZ{S2!IcM@l6 z{(@^#*Vobxt`}TixJ0-#xNNvWxC*#C;AX)+0{0Z$3vlb;w!wMqwFotSD{gYM&~`1$ zMpX$@^v?rxZ=mKn=N={d<-O&(EM>JrVP&;LVP&QAGx}=$xf7)@gVTe!~}#rapeB4)_yetcjvdckm7puEJC`Rh;+wn{JiOO>h{Cq$DvHt14fiq-`sWk6hF_iYF zx~HRY*m?VpKf+%_K8-B4{ioi9og&(uu&l&C7xC4T>=oGi5oclkyE=tYNm|#y|N1or z_`=u7lLM0>4Pxt6_!i(;4L@Pv5ilv`{!$~YuoUIY!{sF~8!2o&23nD38S?C?rQM3O z>;dMqGy++K#2ou!8xpD}xPgWz7Ss(!NOK5zg=l#lH1bk({s1gnq3!+CsPSpj>aM-6 z?yG|i?>_T>;lYL-Cf_zRZNS=&n{Pb&$gyjGEOLFgIA-wtw-cJwiru@V>F5U*v@Cz2 zpde-O2FF`pcG~>T>;5 z*UfJK^m`xA?$YqP;;XK{ZRvtfZ$27xY)R{OUs@V88Pd@5nVY>TXGN^TlH zquKQpKO7%Zf1% z*fryB?ES~_b=Pm1U`bo?Q&3XFz>c%CzJ7M;k!{bkpB?SLC#&i3vumukrj0)J`HzKu z_u9Ys>aQht^%*|gI)B5Q=3hG7H_3h8chifTMm^Hzjn^iG4SUk@#N{W}JsX_d; z4-}-;Uwq}lbt^Y+X#DE0zmC2mu=Rk2kN%xu>oRZQy<<~5&A$E7rI8Pgf6q2$bY@E5 zI_Ycr)IIxMzw7G$^LIw_bGz4ldARV=W1H5lx^Hjtg7o@Z+w3@S;JGD3QujPOwW9VX zVm2@h z^hXxQis!%G*nWAVV_!VEGOKC$Mu+pUfl4PUkK`lY_9eU2P`vsLOy<2?$4S&u4!M-@;!yjKAyup8AhluOGIy`b;>=j3H z8-94(jPZwO#yO|-d-0uw!%g0EJ>O!@ANz;jIBn0E;B6^?b@*h~ih+mzN}j#=ma=aC zor;fc`}3xEpIX@Rt<00IL#2)WdC7T2?A%b__@j3pOgXbT@|o?+ivoWBV8+u2J{$CY zmlK0aK6zmD^u~+k-+HwB53^ri^=_?iR(*5Tfh{AujI}3aHCds>(8)BP$!ubr|c_0{itw25gI5czlB z_gT|kZ}s3!$J63F9>0B5(}!}GX093e@QLUxaVM9J{V}KB&(84HFEvO?UzK|0Zw;5M z*xsi2^@yHJ3TD0ckn6hxH@~v${n`I}X3ge4|0_&u_F#+JXP)@|Y`104?CX*jk<$5| zpoI(eZ%rR>-PmT&GXMTp9KRx_S z#LKrnJz($2%nzprwOL$YrbEJkUFM%FBLjvgY(U5E;@n*wy;$Uc2^h|9-#{OUg}y9LwLEGJnFU-BZ>l z6#4)0{)))|EzJ9~NlLxo1N{ciU0;0TgR5_Rd$WDw$Ek~MUtceO!EfKhJ%8=L(A54781R{O+T<*XC5ruk+0KS#uuwu&8Co%a>2BopbE6@hw05=)~3sik@6~^q%@N8;>X{ z>$@t&x^maoF`tIUo?XCJ+}=-Th}^rtFvp?(EepBzIr@hcl(s4 z&m2uZd~nxc+k+$KURm_r?h#k{J^aFn8Cl=n|G?s}o34B9m%~R_uYY9d>ksb#VEX^Q zd-a;AS!W;US-hdgm-j6{@!7#4;pr=K{W{)#{nG<>HQT@5Ij3pU(NA6Z#_>jPzkE|* zzu-BiN7b6!@4Ltw|J*&~&NYsxv-6*Lu-W_VzMS_;v+>84&YQPy)NOx$y>i65?yttg zKec|#v&V1xV^(?8o|8wO-g~e#zsJcr4Q96)y~Q@9RoZ4-(WD#t{PX1-b2r9y`}>8f zI^8-aarv~!kB*GXcxRq}e&WJSpFgv*)wBci{jV5SxO0hR=<%=4OkT3>Y+m2YzQ@OW z5%|!pofa2v`|&`%RZX^ixqRl0&Cj&^rth2(-Zh`Y(Of9=7CUMoD0PaqqNojs=;s7hSjH_O7 zNv+4FW?$33{jW2dZ#nhI{Mho_<2H0H@V&cMW{;=$^aT5q(5Lf5{%wYLsNJ$<*YTlc z&(?Y7nP<}%?z!c+_VL%|CADqw?B^w8rk?b9=FM@JH4QHH@oT+tZ^h?L{H|PmaR2Rh zt~|bA!?NKM>I}Q##@B*N?(w^+SKcQ71AYF?{LDJ^>iE3-tuHOR|Dow099)}z=evCa zlYbtwDSX2{-M?!vz39}IDSp%DeEWOo`h_e0nAOKc7n%RBW?Dr?$wBz`;KhI2ZzCQbSX77&|+V9?UeY^XgURNjn;a0nAJv`i+`pKS$ z>ZP5$_15|a-f6Vz)DOFEeSJ{OKc9X*>H3#e*8g(*t<;iFD<~`yOjC{JGUF9}aVE_+{4*vs{1ee&{aWt~a;-eaj#7vn_Eqj#_=_lkQ#b zX&O5B$P0C*?^v+gcfzf&OgS_wvsv3YE3f(H#kYdP(m%YzH6f+@J)eHC|M1_*J2Rrb z?Kpm`^^q};ti9@o)1_B6-t_ft{?EJ=_v34EuiZYO;}2)8n-?$3D4RO3{I~BPKXxSX zw|XgcyT?6z=#hh;?)j+Spr>E;ODpsrz3MG{*{4_EIkHR7q;J2tcYM8wFONlT`}MV> z%irDJHvjOfE7yhBZus1m&rghc|A+dmJCxoPb64!s{Xe-pe&tK+-+uGXRaZ80y+66_ z>=k2fD{7zX`0j~gFK5i2clh(0EVFvOKCAcHMXeft_}r!=gI28jh{5|-C&}F?__MBC?d-x}9T^&AL zwaGdD&81tNwNj^#IFslM@Be74@+&_2@V2Kc$09!Z=*(Xmh8>L__3NA_lcp^HXiq6_=fydCULm1Z*0T zR80_^-jB2ttZ=N-5XeZHfB!eEn9mheX#Po zXWP~(`{L(<-93&q?AKx1KM&T6{pIj`a~ig~a_R?*&t?>FzIxQgxjdDG*{?=2q?tbO;k~h;nU2$;2A6>s4_Tq@>U(-i?)OFPE8=@Ng9{?Xf z;J>p#t`fgMSpnh4U#s#@!d?B`wKf#LF&fSSgpz_%UlKYE`~;!|Ybr#+9S{Ogaz}lMonh&}EO}1eQG>BO4D!A*eU201yMAV@U$P zwfzD+-(;4H6C!h>gYQp?+IO6QlvCQo#0nxZQ1_WFt;zbGEd4`x>C-RJX)?UT&4vm? zXdg(2{rm_{gv>t!N%${On*+o!5R9UvxXp&7BGLkWdwKD({0l6pB6Mbu?OkuAB^_qj z@^y=%8z@SCeJxF{qQ`h^ns`CU&1c6VmU1|np|@@Bjfz96&mou_L*xL&ieHW3eW1vH zaR~L|4sx)AkG&M_P*1~hk=`z44tGl>l=HMVOrb;KL^ym$;rWX|Oa_oza>jCfHnkNDChzKq3$`TicQpe3U}&)GFXx87EWlae%3-tkQ~9&q?D z@P6eSW!7s(-{k&f{HT}w-x|&Uci4Nh2nagG0{j<4lII(YFtZoTdrt=1$Fz+evz0h1rJkK0Sp2 zYR%kxm+772{<=w2j)G9hCuyHIVb6{uYDwdfAo8VCSaC{z1aP7f7WDX6f?KUp?Auae zw1?MPx@!4e8;z+CBJSL0S0fCMzP|O}%iQ;a(;l9gLo^XKZEOJOEtFy?LUv71jR+P? z8xupPv8Cz2FI^qMorXPqv!k%nuV7GbQ$V}Icgo}3RzWm2d1RTA`1imX+5crj1GZC2 z!*BIl;OXF=Fx9=W4>Z>Y+kPFVxFzH*J?Sabhm}t3e?M+l4^okw?WN$#~z#Y3Nilk^mV(t zo2>1Nxk(OV0I{4(f*m%8W)gDKP{uW%RZU9J!P_7=6gzo6pTO#x9JDSo-yos^g$RDv zKDugC=pJL4fq&IRV=T>8Wq8P7iu6Bzl20m-A@GkA{}a2y_uLVBH!+*jsXm}a;PX{5 z?nDvyMqqy1k14^GVoR1s^?9S`g%fNx#5(s`GC|$6zk$0n1Sb0s@qHs1Uzm?E;`%?g z`?D{&7e{0$rl;b(lQ~HDAj9Xp65MG{^A7f&q1f-?LLGceIo>rVl4Sp%(&rHzTSE%B zX7UOZpBFw_Q0icxc&1Y+1CtuqUb;Vkh z&@v#EadQXOE>#KxxmNV61kuIGJdWS&-@;>9E!G^gn}15L=udDuuI9GpR_O~gCFd89 z^TTwURnd!<|FfM2C?vEG-T|d_?pXkT%0|V6uhA0MCA}0%f|zpY1C_ z3GMUzM}4w_k_>(BMNL$EZq}=J>6U*}^YY+Nt zK)Bo+!68&Hu*lHSK%{m?xy*E@WtrwIh31ECtEGchOlukNoJjs}kYqw|C zHe$eRCFvosU#^xmVAFIz+1T(3O4I~ab3r0<)knHG;|U-&mVx0pWKsMwu;xHfuFi>6ND7i*yAjN z4yOoZ;M)P4{E~+t4MRqtNWe67fM%273gK)8Xnw_od@k!ik(b_uH^W8(;J)qoQPKum zLf>ckcmzP|;y)^Y|l=0;= z#)@HfY2r}5=6$afa8o&!94^gm+&6&map^AXFL@*u56C-7_Vj{gqm6m z{V&%GL1KeaLnGC_GOVa^A;vDWfknKV%w{|0oJN@`yyBI3e?j=3jQ74ZX*mENZa@cG z8m59lSs~S>Ul)o6Z-Va-UK+HM4!6eb?PrjR^# ztaqpS7fsV^y3);(2A3T1kr=PP;;=gx8b=xMD)@uOYj)*NQC;Bh_%E1ln(QYluG~UDyrdB1=9^P5r!)ld87kwJr*3;~G^Y<-EB(a9ZOk1UMw;S8S|>${_$v+Ds1s*T7ho11 zz32VVy4T)3<{ZVC2^$UgYr;n z*G3yBy(k{CjqV_hxY)PQh$to^PUt20P99^V{v~7_i#U;yj)UcObX3m;nTyWXn-ASI zGfUk@RI5bRVXr{G4q&C4l;-D22N+7=`aPt~^sUC2y|3PIxOgQeRP_m)jWMynW62Ea8J$khH|~-~`5tG4qoHX>oR8;u)%? z!yBLxs1%%a9KWw4Uz_V%Favj+K-5Rqiq@%U#V_BL!h$wi-teEokM`p}MRLtUBh_bBBsW~eIS#B@eT$i9xJ zY$FUczwfuCyHz1!xMTKjEZKiPtxKF?NF01a*z;qrSM@J0+0itOu$1NkMS^qQ_!9?D zujRN1LSFtapn}*F%V5s9t0d`-M%TMx}mEBpsLt2ZUALTJ(5nq*mh` z*xaG-5_>B84|iyq|2}X4scCZbbY-$!!VYCUX0@fhZaZ|}ztmW}M_`bbFIYJw0O@@a z^mJL77UK@qwkS^Q2MZm1;M2TC6Sd${;-eG|CWw?htnXR;de3WUh$>u@+xR-=_>gIp zv1Qk<%gN}*Lx?+v8JXG-b*En9XpT_~VC z&F>XHo!>uob?RcRT6{%ud1buW(DA>0>4GJV+z&h}VrT`cuyt`0Ovcl>IA}1M4T)NL zs_??hXMd7&i$pRnstCj&_0&Hm%xp!tU6f>oq6|h%+ zp%YdKqxeVjCN?UA?am1DS59x5^b9-LNK}TMsY9{?M~)m7B>uuN{wPke4dfF4M{-81=M@ChDi%L%x^+y7h1#XQ+DF+5ac{+SJa?Ke1Pq)M z_UK4_Q}CtK8%jV8w=P=%@Zeg_?d#SCpnQDo-wF#{AR2*)Aq~qf9eKE zx;^u#Ixa1R_(@wBqcB=?7vU==Mu^8iOtHM(6*k3(x(6-W@A1s4ApIl~`kVd``FT@Z zs{F)=RSf+V6YVg{I$$O*NT8rH`xd-}^AW*#a|KZ0mioEH3g(G_*s*)05s;J;O{!(o zuPCs0tUzH5^6;5^tGgz?h}#;yPTd!ik!7WAn2@Q$`}_TUZtfz53h8&6?~xMLCgJ=P zlIiuY^=G6W?Y}3Dk-M9OS}hbx7kev0~WJ-K-npuz0L`|5pQypWV!5Os5z1Z4qdSKr2yh5 z>^&FX`eGnNxF?az9#&H^`H%e-z^PCVGrvd@?AVkE_3Q3Kkj)?a^MhSl&x~{pQ=Ikt zu9T4oACtu#&7bP|jQ(+aJ?7J-{-nrv*ibHm;>)F>8w*adJp*hXzz5XZ($}{?J%|b_ z2six=_~_6sitHg#RX3ux4U5wgRaO?F{C#s7RdC^Ij$zik^(J{be`?z~W*yR&{q7iY zx*?q@FSofECncdE4XD3Uv0A^nAsAe7Mh?$SWY-m#);>ZmH?D2Zuf!F}XEX`-kOEW@ zqj0r*bNrKlz(^)9uPD+&i}?OyHC{B1lA<#%k*F})Q8}?(W>p`*3=#c7KzC_1&w0I19_x zvYmMCeK-7WjRk)WhlXNoh=zcExiGkhvlc{?_PS~2ubF(0@N`{yQjq79Hc`%{3eaY$ zfI*fEG`uewh=km!gr?gYVo7@A{e^gKjnF|e)o<-i-K*T{q~?Ij1F?WMi9S_m8gtQ0 zBng>g9Zl?6>nlTv)TZX0w{~wiLaA!oLencHR>d2Xm$pLB;X3r}eBLz3k;h5cp0o2kQVzKo2awF z!hGr~poRb$y>WNNwdK|$4ThF z?=T$pMhuVDO+^-`Ku_pS6Lq%rPlKgEIE3;uVvPI`!4$Z3nUSWjrBJQIlzjSCNMs9C zr$7VLW9hFdSv{3%WiQoRRqR*#x@^qwwz6uV8~3EXB7z-GCKBTEVybqv-wqu(ibMQ; zUkeSJpFG_9@BLan*9NQn#EE`i#V-;zfmjyJ6gu^UWI6J;Nu=f(KDv+m6fzO_i9ED; zt2EEP^k~ijx*KzQDo%HhbCV`96+hqbm}%=Y>;yfz3O*x7XAZJhrMz@ls0z-W7_Rqd z5z0(|G~JAcV7+Za^PhYq>L0=w+Vn@%H8>nfK|sR38wiwGBU}@&BiO0(EU5ZP?!T5($39mrntzjjm2h0{ga*ri zFZSv`LQo z3=Q`cVR3mwWgyQh$BC?n;qWV)M%*qz7Tb3s>x|s@VXtO8NfUbb9@cbX;OF~o58D*9 z&4UJx+lxARTaqQ4OHu}pWs*W}yNH;LVI;c7UyRe&tDcBvz1*AFQ}tguxWgbXw%cga%{1)w7fcy&A>M86b4ayZeBm(zO3oNo%kcx49HDfzkhb6BHy(Gy z9mA_#en~Fi+pF!{1)V;WyCvqrc#ofYw|5~+e7k}?X}~Ne8nawH&qlCwan1F*PpZ+7 zn}&MkyMFsPUkb=X2SBz;b78mv`1=O6`$bu*5~OFqR&q+Gh-P@s7&{=Y2qQo-59|#E z?mnJi+kYGA_N<#yCQ|mCfJcEC@YJt{Oyfp5BfY_+(XXP*ffS6CWNLT&_zDeo3ojlw zaklJF5mIQ=DdG4p(SV~-ki$a)K;x{~&sOfz}yNjKQ z;;91OF4haPudwl1rOFX>cbpVxcrl0NwZgc)f>uy!&YeP+xsoHycp&c-I`^N?I>IGF zmE^;##G>CoW=-n(T&eBOc2Nk$VW(K~b|xDq!1_?1kt;tu1G)O>!Hy3y>N-GacxO;x zW3k^a#Qo_7AQ=Z1Vr?r`Ew*kcPlt(9Nh0NIt4vn3$M$IN7tX@~eU-#67k++2XePxu zBS%!yV5?}fVNv_lt#QaO{ggG#uz!x@-l1Cyz%r@=)RFQBsb)c-ekH9gk zi&vckCYYXQMkoATp8u}Uso@axcOWwPc^t<{o}+T%)9jRsM|ILR?>?B9938aRyh?JO ze%$AB_+U}|2;m;LdlAZNICxNvhT5wQRQ=3g+`cuj=&%usPJC<`etFPIc~^OS7*=i) zB?la`Hj!onUO|K9EN!QM^~OjetU+0Z%|cJ4fbnthD{fum@#-q_jO9rPrIc;!awn>N z8a4_vZdwb_eB}aG%?O}ExXyd~kmUnt$%FjzW;aOCo@7E;$W$g}$C&#Rl^G`d28e+I zRwp;%hT0gNKJNbv#3`rd#UWWzfa$`v+Xt;J&jq}hl&G-)B5Mi@-XLQp@&Q|m?fa6T z5}6r;qS8=nm}oQD?>{#)2s7itfVPMb3Qm*k*Xq%2ZmS4nVvMan3FLNYV63&x*R48i z@Y4H<%(Qg-d#he45>aeJackh)W_D+ibgdtGeNia%4VmFVuD<_rx*}dJ7VM@sAkmZ1 zecYOQ$k?zloDbmKgT?Dw0z#O<*ntyj9z7Y%2sCGj-?$tg65pPJoQZ}=Sd~v>_RSU_WxV6scy4mSrrTUo;YxLUoW{R6J#aue{hpd? z)>RW`ugNei)y_*Kw-cIpX7AS)Zc1^RxV`|p&bM<3TLAAN?O_qJZFaapZL|WsLm}!9 z7KJ?50tdZTKMLMo^M<;am%! zm9DJNw6)Gkm*nil4D~}vF$}ie0=r;8We7AWCtuoe-_$icL}pvhM3zzhQXZe>^SUP> zS>F~0jV``zD6@$2$`@J7)~6CwjT*0VCcD&!@Cq95huPU|t6IUidl!Bp=tRvYl?I4< z%mp11b?xb?&R&u1yDT3W`;t--E)@bMn@iipD?+t52tO+RYSE?S$tCxIq7Y26_LcTpssHUgDN29?p-NhQb;&Uv$&gq*~F~5SjHi2_}M9sEvm>4I!%s=BtlH zVUxAgo0z(y1E2ShV#hewr#g;grXZ`x& zR#k%Ua+!+ZWU^-~u7i{PosBtVrhFqtoT zx3$h$p(ef+u4tMc4)N3#X^(T0={{!KJ}KT2fnh)PPy3Z-_)&L$Ech8}{)j`2nDs$L833nM0s z@f2PQwcHGbieh-tw(5pUrnkFL5IM%m#7c;-OcGPMWrg&(RLX&e?8q`@8yX!x* z05CS^dBhKrRgXdBVK7K)V6`41A-6#YLPM`pa^H@!H6#=NNqV-b`;_~)VHHM`=s6HH zV2To14Sf1BwE61&8g|16nQ*h-PS%}E6BUu@RKVK(0Yo+X3A$knviW{3!h%z!qwPZJ zOx8ZOUrU&5Y$no*bFb-mI(wP)BN1s}R8k}Io$(5% zsW%KOxDJ_BTA-L4^e5Iy;Oi1b2xqmR5mz?K5MCXdFJ6Zsy~a71q4dU|KssgeTRy4& z#pzXLP&S1(=QcZ3lCf?Rd}^UpojFcz03lEx@xUgsJPBBX_5FYrDjM8ggT?9ZMp6ycpKDCpVdd$JL6;tH@;3NeVG<6 z%}_gYBkM$nz|V_t++Vx90%ZF2L0RFQj|i8Ii@-aa(G5p!aIxAp-|qcK{Z$Gln2;+a zwA>6*&Bl*EXugHG=Wugooygz)duK|<$>-f6c5UTMg>Fdw9{l+7YI8dd=Wqo6#K zBr1UdaNCZ?nr#(K$?f_J{t9nYV`xrwuuKBPlrdrKv_nqF5G9zr(o$wcQ&J#!dqMz2 zZZM9k_H3m+4r@9ZAer$CQ}Hdn&9Ev7Y>tUqARA{%ht!FmXrp1@J5(*)3w}?{ze<`e z<$-%C!!VQKD5G{3t>(L|SXzn<%(h@nvz@`B`hX))1!4c`L?wiYm$JDne#NtUVR@0E z+65OMiq{G#2X1jD5-GYZ31HJuM7Qy!9lpK=I_AsR;9F)K3#CL6-`9ca==YQSr6(Xf z$2iF$Q9=7kM{53ecqG{9o+t!Lsfr>Ei`yXFQPO4^*SCYypRb8CWL(Z;LB18Sj{9rJ zMtWjsa4!J}&$tIA6wW3FwCifPynEoSCOAQgj~I?m)n_mtIx3Lykaiq;9ZT8=S973g zhp|Prp=k8OpQ5hJs`#I4DlRT|nMfF9_8BBXdqiTgu3R=EZkYt2h}{T3yR4@ac*Qd>)X&oN z+(&A4$ob|o5^W$6#GYNV+E`>|l7Gll>xHid zK7xi@)2y{Qb96TdH0EU=83wDW(B*^st5Az>=--u?y>#?s9`xg8BY%rqLx8_~*UDP8 z-$BjN9gMozM%$U^kj16%b9ml+cAs7EVA&zV2{^lPdK83)4Bp^EG*i89>0TTjTwP@4 zjXNNrS?k=|asZ^!IoFedp)ixrCS4rX>j|pZuv)96t5Hhg7t6NYz>IxT4`EOHEi{*U zMdE|viwdD@LIyl7_ZsTh$&a2hlI>=zhxl&R)rd_-_a5;xr^Wek77<@s{ZUou`u zmuaX35SrRD-;}XXB<}FWPw}RtW7?i$u97IZUbTDA1{tY4cqW5V|12JEnL~7BG2z%= z=}#UqNOo?p<3`UCI%qC^NMV@*R)+)DDj3EI}b{HYsFM~>DqKoRktDuUnz&mvuwd~HUwwYO}`&e6Yt4Gd$T1_y`N z)18dv83^2~$)wp_LiJjBhSCpK4c#?Vc7vgv9 z-oCisX8JwP`L3Lw*;kGpm;ygoHnFh6IxjgUA72hr@N7IOiu}v3YE(uxK3PMHCQmzx zX*<;XTZe;EfBdaz=aHn);9u+ciDj0x#1+NfGd;7~1JWm*31**w7}fV}NdLcY%i#lB z(mI@)ayKI^x@j?nhWG&pZ0YOujv&PaG$_hx5(1fAkO#BT%io>L5`s&^>&MVA_Xi(v z4by(5JG!4Zax%M#xbP##*hVi3(8e|#bqo)dQq^jA7-IzJwvu-uP9EXe7a)Q8LA;{~ z6l+^Fs%BE(SsswXy#Hz3bgQ+(7Q>&uIQ_`jDgFfG>4{Kr=n-fLR59wLo{REgWs^dP zg;M}T4*0{Mjx#UHv$5COHr0ALQO&__azvi$TlBQcq*WJsLi)lugv zn)L34>bp;9h$k~s$voBzoWH-@qW@21aPFvz@NyCJ>dhI*=R^#zgn((3*)9?1BE7Bc z6tEN0WI9|zV`OHd6XOO|Qe>7{^hguPF_0-aJdKC&g?T0ghM5$wU&<>hof zdX?p$CTX5PHQbX!e)lGVx$~=)TR|9e0Hi-)H2s&yjK1s*$hJ0QiHKgpy0D= zAtBWqHLTJ9+$=u#SI4j*plwn>A*B1@qrl~U5;wQC&t{sZLtsli%2fZV8>&lK1N&aP z*SSkkJRsQ5kKDtJoy*?nM+#fs7Xs~MDDj&pyb-to*qiN{`DccKy&1<*E|Fti@jAfW zd&dHW`YC^;HVdl+r)6hR^R&$gm_W%=Zj<&z778Q zLE;Y!eA#{SQEjRvg5-0M!jJ+Xt;el7+XfQG7Ob|8p!H7v;BfVBmgXGzjpuvqvP_vhPAH_TiQZ zH|Pl~Q^lU!X*jmj@4rqgRXL@u#X*4f&2;B!;Gx=5hNDf82XpJy84Est`YGx!sP6Fm zpYg#-q0XQd63k|6YXC(`ag0)?$>F~YZllXnpsoR`yS>h_w`4>(L*|OUPHXOl+EU+Z zM0{zmSizs{)f&}-{72-0w->t>F9M&dHCJq+XNwd!WrAV_(Q{OMFDEH3H2A{Q_z;St z&#WHoEHh4RTHTaItzN7$MK!JzWe^23SiWpILl7xw4y+`}&jc}kFP|lWTePYa21Vik z!AMoc!F#dq>7f@KAPpm~NQ+JehO3}!Nvl11^Fx3{n5L9$U0hH`t{!NicSbd{!-;e< zPI;$7bhv&)ME;AnS-Srxgb6B?U9(545@v;$GWYc#&>~dKVM_l#mB2n)jBVTPnBsD5 zzM9$(RLvb%a~$x3pUhlFveAQTsfSx(Ty%%oEr6-f=?uBHu{BzTb9yYF?Cjs(rdSP& z%;}7E<~9cbxZB=gd8*F!>{liUr;DO&U5vcbztL zO;6l+Tb0qBodazWX~rI^`dTSw-f$*p+uG1id0n)M+>|kjoPmW81Z44xbAwk}{(V1Z2Dr6(4ebZ_kk z!EW=Wk^+(u)w)!7hGgFJM4~F2Q@^DIdp%52!)FgGxrpr%uavHtB+IrhFN}|7ecp)i_~g=4Z^X^vH4Wer#;J)HI_) zK%_+Qx5PIWhs%$>;X_?G+A~sR_k06Fi9p7?>9G2XEk6r6?}v%^nPC|<0_ivNG2!*0 z7CAwy9CnetZSsz?5Aeg&CIy$b=e-dy{TGGWWi>z?>G$7q0`Z&<8>_iY;4R%&F>@GS zYf;)Nj@r@)6N{?)wVdYkYYOA^r#n#|Xp|hQdywjr;ESi?eJl-0G%575#47#hOSm<4 z$(((Rcm-0&AKTB!AJ&qfe61JJ8UZ%x3>gg%C`}R}{HBM>-n=7j3et?KrzIy<)2te@ zvn{Z{{mASW3i1i(nD6Kd!}ODi41kJ`Qvy#%V)#+Sh{)H29ml-v5B$%Q(2P1qdZJ7~ zo;*$D$8OD4uqKFD(TA;vYc+9_fIhw2F|zr&#Vppt(~1(+4)|e7*1;vdJHCZV9`p@s zbi;Q`msNu8pc&wCCAlH{Jp+0FCn*3_;<0IybmdNWeL%}$!otfqAf(L>s3Z48Oh1BXdL|ABs`*mt9! zx5D*S9AxyY-XpNm!v$bc@FXlY!OX~ObE~Z@X={lAmwfU2diLl)L z(d<K930!>CGL!@^JgTuy#yzu5b7764irhezg8K8p}v%^VB1 zP6tv~Rrv%wm0XitYIAJ)*B`-A^-4XwbVXyXXdVK(tQ~_Spi132XRRU zdHOl~ETIL4sJYT;%Q-49TzZ5MFj9LyojfL*Oc**bD`$W|A}4aO;t;e9G35V19{?JO zH52)g-b;Hlf>IGUBj`o>6GZA6HwW^7Xjg}dbTLaj*u}8~Ny2mn{f(4V$uM;cE(p0H?C^)rOk$II=hovZCdz7xe0sO-y`~BI-BsFW4_G=Q2(?g` z7Cx^0RvVni$STV50dO1Vq~_YPVWS{$FLII9J#*;8>DaLtKh-=KOg<$RY%Ik@OEGo% zQdA`E3~`yGeSf920;M+$Kv@H+XDVyK;m2+D-f4hI4!mqYdMaNJBxlhnPJw}^yG!O> zK09ej$H5JO>4+67i}D=-Iya8*;@7564RHsvv%gbW1}DKSw3*5LKFg-GXlGx-(U82r z8YAQunZvFzNt-rIIY^=6D#}pyR~3zjH~pr z4~<{6eoBjvg0Z09&7ZJ#CD+6uT6n1tVR*s8buJyy0&_(>@-79^&$reM(tb*4AXFVR z*y7TI<(3p6%P^sN&Ax7e*{Ksi`X{f*)Q-XsF1XkUnozHwa zR^cVFUqTy)$`i8jH?=(~Dw>Ll8tlx-F5h>~!i+)?Vhzg@DlVATav&@B;A=yw8c}Oh z{I3fTz9zVh5r|pi=2yvX?uYqNdc|}t`y50+P7z~j5Zuz0 zPv2v4x!X0}?p7wWI;+gr1hdueN_FZX7a(GGv`Ipi+cLnSpy%o==nY+wioONHIIyQI z9sA+SY64tgPyW%Hr^Vv@WDi1YT`FR>^*bh02eTcqw*Rlab?F#X1Z9wHn#Q{WgF5 z+WO4uK1Z?gW`MU>SeX{NpF4&4mNTbstR^22+I>{6kprnLrm6uMgHc}M9b-@iiVWXU zPjH&*#y>(q@R3BDa?U*J+ zVQhS5=kk5ri-X36?Sz+sUYB9!S3C%4MxgH(yq#s&=XE}#aOOi8o1LCH-wVCfCT7!+ zH8YI^;qH9=K+#2XA4=zQUf-K7v@ca?9xDcDEr!H2HaQ^>5Xn$Th*}Dmz7Z3I8g;*+ zfE_%At6U57WUPuJ6K%K`F4teI_J7%yjt_9KQ(k>CfnPbjIfC27^?rI=i)>Hd)8N1bs#Ny=suC1kW z0#66jHvg}e|CFs?6+{jDE^R|^cmnag9~-f3?ZiHk&2$vbiXip@6_Ps<60x<-HCBr_ zvOb{5VjgyTd<(qFsUv3L4=XXQ1@pTeKh`JUnj_F|Rd@&rYCFx_I)>)c6&=Ee2E0tx zeQv(L2Y3qc%#*`_)`mMC!Wf1emWvN&mVR%z(dQ`cl#1-m8r>MLHmQb zj_d#MRHjX3;UnGJk<)e!I-+9}fB1g`Dsp_DYExJsSwrW7Py8t&IsgiT95J2z;AX=3 z!7smE8>%Gu%z6wK?DSPej$AYNxms)XIc^1?4C*R@+~9FW0Bo!C*Z6i5hNXJ_aG`CM z@_jY@>ttQP|I4>5=en4t7f;}% z7>X`~x`=VBw$tMmXH8?&CiK>}O-id8R+VY_GWLp0l?ts=*D!^|38$d)ZyJ}RO{SsH znvwzdDt}%lPS+OWiSbpz@x$~w^ z)oSOBC8>V+^mK+PG(tONab&F-jr#3v6{NXZ$|R%^l|Ne)S8N#XJXuNr1zr!Ww8zTg zcMA#4ckEF-Gnj$rF4`!O3FWslE|dyBptWFVpeS9TtLR8lR}v*4EPNSikvP0ZNhd=mBB}>dOlc{staR>VqB(wxLE6gH z7^S?CVmx zczM0CTPLF%69*Rp7fPz)eV66`+o~dGiXa?LQUkXC;(Y=y**6f?9=AZ|6%6pkY0qn% za?@Z{F_sUGw;BW-=QSZdcpcWZ?hb3R2(rMzWJH(Z3Q>|nWs#(Rt#TiDOsz`CtAs~w z=!w;ebDCAH1z{%VPl|^m=)+S&d17~~T;pYZ6@C-~cWb>PL?Z-MFYrk_qvYa~q)9af zT_dy6$U-#aAT!0R<6A1Tk~ZgVLv07Gg|f?GpJrYE=@?mun9hJ*JbMlstT@iXVXR-T zue`+&K3c#61IZLm7OL70Cj{MbkzvjPsyd+_P~9H3-=AHetVk`?q!}@iFPAd=5~!tF zOwxO1VTHgMx*!6T39?c>o~0N~!=@3{Y)#Rlo!lZU>vZlmb|oh4FVxVLnqsQ7ek>rilTl}Mjx=mli{W^)P z9VoWB>|56&Wt{L&J+GPWDuw#e#&>W+^NU>Y>&RE9`4Ti(P2}XNk_d)(;ETKf;oFGE zd}wKG;|a2dtC99SOt@=x*sw%cOGE>=Z8IH>{8J9KbgTU%dq{KJ#AJwno6ThveAUDD z%BdRT*{(;Yxz0;*4nyw<7`5pZCObF;%Om$?XXs#OKr8P%pt2Wq@JC#5@=8&q9;&Ln zwC2!ylI-GENtjNiM73S|I^e|2`SiC?!r0F+J%@0$)WJXDS$kTAPr zNZze91{c%~_phTm9o<&}3#*FJEUim-swPxFV3_T6COVXHMR+HLoWOvMYKsN+t; zdBA)_u$!F?q$jA**KQ5(>HuB5whK3_*6k?Th5X2208F^jWjJX*ZC%dg-7_M1w-?Sl z2Y@jVIRpyxIyw{+Ib@Iw52{$C!=ZX#A`!NO} z_C0ZT0TSc`;<>kM#tuoibHHQbER_Qao;c}5TtE_Ms>Ev^_p&7%_(v9L(C&OQV-v;U zuwfc2*y*S1o@2LDmehHkRkW9U_oW#-65$rJCGSlPIX{FFB4#^P=64enLGeWgsksP{ z8p;>Uk8d?Twlb{th$cU6F+E8$6?eHnO8ewRHT{%6>G60(^~qVJmV=@`UT(rP%3L@C zrV9jZoz$(PA1z5LevW3{hqc6rCrzAv0y#VR*MfF-E>X1kwF35Ol$^s|0llgO!U@Fb zQXxX4&BOI`Cu&wLXfvmFdr$_zz(p|E8-x$YS$Gn&`*uzAU(?>_0JFCSG%R--UIoL@ z%~+Pv5aB@8n2(XO7IQ5+ckC%*N1Ki8!Uy!Z^7pJo@eanf#sDio)W1A<Rsx_pTqs^RI#M@vR0*`zAhy!>gd46Rf=GTb+ut z)JkHBmyTT2yjPA$wfX62;#^+joi{!hSW_r>wF1G}`L4(tK;1*5f3J<(>d55rU$nL8 zja-%tz7HpxWgH0ylNU^wB;-Seo!`Y) z2+1theU<#%E^mnue?P^5AXfIDPmBtV5CQihdgl%pylW8{1@xnaNM{2#u{LB$KeVi- zEHOJNdw@##-ar+))TrnNBFr>~0D8x?9YE1piHOKoav$PZ@D*X!3J~DPD5lo7UBoy+ z0ztU`*H@Qm0znlFlSEViw2CN5&k#b=-OK!Q%b23q1=0Cxl+Di5SGB+!w)A)yPuaec z8{nVNr;~ijI$7k{|77-X2S*-5m0p-K832XI)2AYkQUwFZr)t+hK(cx_i+q%7X%$Lo zQfbhgbYYsHDi>w_H4p2dbZS9(>IL~Sr(&h>U5VUg(E@gtEb_ZMf^b9>RO7~5!CQQf zWrNFKA7RJfe6%(UnDeg!`EGOn?y&)?sz3ssHvbz*4gC>}8@JarQb^6_TqUFvp=-f) zS~R~Nd~R0d@_CiIkfW|qzc*;bwHpf)CzFYd`fuQwDT|5{ajLoglod!knfW0dd7VXn z7a`fN+o$=E=r<==)uo)K7&!NSp%kj?1EW7=5gbhdWI`k25Uh9x8d(-F)a!>moFPc@*F=)&fTP z=xn6st*8!Znn)#yuSWdN9G?&%Ht=GK+s7m}ta@ol>d&lPpYJP!jUVkgg%_zMHr^m{ zaaDUS>*iC0Id``yo7LB#h?=u9FFtRh1up?i>%ASXoc2FNqrEwM7bcts+}Zj>=Br3Ia(D zD^F7O0m9XgEL(KK_1MOb16 zLxTdQ4wjmRWPiG;@I=PJt|wbV3n8W;ypy+7<<6vPBN&5A{ zka6T2Emh1(&)J{ukl9DtOXbq>P}x1pWeu;TFQeWd@q#yOVom$59?{ zE2=lL8B7S7Jju8azS^8rz&8ZZz1(9vKn%JYNUW2GLNdYRz_|J`oISONDNq>P-_zk6nifLmf;kg9Xt+O z%|`YvCkhuqV}DCzujSED^vEN-DQBIif-Wi*Q}5uxbUlHG&&<$X%d#pJBNkIkVjj_D z?V7QGZD|wuMz=l=FGv2{8-TWHe7QD7pH>y$sSWAbBjjkV!;GU^hy`EY zd*eTPnx#WUysZ9tH_SpsMj@i?|CA^O156 zM|LoS0zTjoN3qxn{zty_QCoc)txDU{mdgBuL*QaOw`ty8_TftEHZ!SzUXH#v+-jbV zlC@Dw_alpT>xz$>2JBDCi}MXn(?adp(jRjCI(9!zy{7iJ?5rP?T|D$1*bPKw`2NMcTx=cDSF7U7cXPq94BEGKk+cuAnv!zy z)=8D*R-ja2RV#`k2^lID^fYe~Qd&frSBWur^Nq=z68GEIxh{Wb_>|)rE<%`(`41|} zt+DSGnS7{Fgs>JLm*eg^ll3LfDF=6C-I&;2D3CENIQ5FzDe^h_C9M~{Fj;S)$Q~9` z!BzTkzqB41*&|eP>zuKZ?y6bQ;DOW{h?SffGPEgV2$7wBZpG9{3>7-^A@$)m4+25z zF6En>s26>XSB3Q$*1Y$$(?Rky91STi6X%>ISLMMrF{wx9`A>WghyvPw70iMZnPo~L zDp6C@nLG;?gQ63$=CUH^r{=gWU-f_&;Idl!K+F?c$I3jU&jPUxv1{A?FAMXx`Vi9P zB{UyU3)U0WzTFA`5*3tkMbAd0DBf~>W_78@wf#v)SF%HXmAmt~6Lcjbiv!M{KgR4J zCo@Mr*A|35p$;REmHz?B^*(iAm3{8)5F*T;>V7h35!97GNxS8GUg0{}4nv)P_AeEr z;@#Q-1%S+}VihaNg@WN9^43N&JBaP>voGZxdIw-Il1xF>DMmPQA}cp*e_cW$RmkmN z1#{Ri>$kqE|M!0~M!WFviKv>Foem|SI-s#uq)`^?^jwiq?!!7oI%x>0uUe+V+W8;5 z{Mw#3v`$H1!OxtBk`no`ELksiEg8N86@#Z?qeYVCt(4uo+M8g5qd6G}xWM8`(rN;x z5tZb0VxQZ=@kj)>?2pEBy5Q-R^?s;wJHsu9d~S}c_e&l0Y>FyjA{1=5ZZ5ZhF`zx5 zy!=@pIOVn>fHp-dEa%e$2IjDC}WX`jb3FLjgZke2fzr%>gl_Ji*7rr37rRHga-TW z^Kt+5C%+YZ-XWrqE4crcL$5S|>X>vc+~_u{nVv6+vk!vWO_m-KeZIHq^|)xTfhuOD z+FCl!N%Y)Trr@voC$@ORrZdByJAsJjICZ%(qIGMHr6v8PBRd;9K|VKhn;Pmvc&#Um z%w}rDRwxQAzBqZD$kvU80#$|4L1E>TmfWN)-OKZTs%5F|IxQIeI6^41}Jult3&8l!XIddyWzS4+1}8qv|zaI{jt%rh$Yl4ldLzz zuc)BUC_U7~)D9F~a6%Ht=ho@8N4E!ZU3B+EG|cop)-HF@(uRC}LeCyueu*zJiA>4s zu($>b7(n*e`DpA7_F>}QR(zX6KSA7gCNIPmwQxzhK%u_a=`;np96JY}j>af@5L6}< zl@Qu_#4WbXdN=B+u$T~#|61jnrl}}){8Jt*`?^kHrTdjV`<=(c! z)`HC_G%5KjsZwa4r*}k}xzjuFGMz(6ulX@HW;Vm`~T+N&H zkk1{{FO`1yLS_W5VJ2MQPZ7OzzXheVe)H<%HM zTIqh%c|^L2A&JgL$i?Rn^%2+WM9@xZfFfyK&wInV@naM}8R=`VaO46HWlqvlf8hAv zKdfG3Pbrv3Y9n-vm*3%^$pPa*h6SigI`eVmy)yDxb~#VZKA;8<&wE3~+&i{rAs6xR z1@~TH->xq^(4Nu;JODOle2d1aXG6@(V=rgmGQ|2_0M3GAnl({c(7FV*scq zSVO?;Rc-=lj(Mx0ju(mWxO&f+6?xx2CSsIVbi)Hu#j;Cw%ps@%Fg7FsI~kulRDC+j z82ct;ZzJNY)&Fm5^k?(k`#;qgebB~@TyPfwHDTP+*;+%jC85SKZ!Zi zilowO!2h+2?6yS6(&Iz&M1jF(K?X`&asGenYAFen;W3E$r{-;)UQ)J0-tS_V_c??i zHJ~4hZ0SnboF(BRIw;``YR@j#;j0Dgv2Kk;?WzqwEqxyMAE<<#(#23UFiU~OD zf&leD;I|21wk5wOvvqw2Fds5=PpN*!-M-PvRM^WezMe{%D6ji>&38oLg#yAY_^zDl zz!fqS)&JF`_!MT0N_=mlb;^&1sr-p*4;#R84GOqac^k93VV#t@H}GFm4n5- z21}7EO8ax^M!JI?<877~3)3r)OL?!&j$3_Z?~Wam(idL3&BY_1O!lr1uxVkJuODsR zSowub<{I!HPRBrQjzmaNX|xoTR<3hH7P@0+&YL0aQ zH{-|I)z{E0BlbnWm!?T4xq(A(BX>pt)Iz0i?V1}yUnC5LpB&-d!r;swDtrAK+{dLP zoxj`_!$Q6r?Hj(`+=QnY)IUaiFgaGBkGywv!cJ7c7~ABjDqJjO_Z+dCZ>wTp&mR0? z*UG^&D3%Ao40Lq@Q^T)O4-OW}Z5H>r%ELf!FGbUK7@r{Mvx|C6M6bSpm*%Y(r4Bi~ zu|oi@ZRX8yeHkR#Za6Q8r;fbq{e~Owy9&UUd(7ne91J>T#0_lQNY}oj$7!2~9P<)D zz%)v3!J{KJ+wx+@8sV)2lpRm|1pRYx@K;%>rL+!oZ;YNDaK6YS>uI}255E3Ekv&Q9 zW)gcXk(lL_hJ7bQT`cCFTUKNC3_-(r8oYeHj5cH`gH*iKB)PLoup2q>mtpWSTG8Hn z_*>9c5ZgiNDVYN~s-Qsjk8Aw(R27w>E+Iy^0%vM5v*6FDwQ8Uo1f}#t^&k#v9jCgD zU}{TFm4#nBhKma7r@RIMvwRQ(hIvnv1s}gCFFLy-9>epl_`T1j^cFHvNWVXy#k&Dy zMCqi$SW$=`T8p|!^I)YZ#gYpoSgAIoL%Bj}Px)GMSA(;QRemKGt7HeaLvU(sa7NFlu0^waJtbhxVB0fF%0w85StT_rr`+> zkr8oGx2;*$@!|$^Dtlxh4H)_1>9<*rao^R5U2tYTkYlZ6`u_JaHAT5{{`yiyG`oNH zQ#s3g$KM*5-i@~N`IA%r*tIa}8oWCR3!@u| z>oviA@Nm^{klfG-S^z+A~4OKB2?NTG**aEV|uBGFLdu7qj{v3J^?534^Qh(yLv` ziK&mKLh`AV6D(_v-hb&J!ZP5C>M3p63Yjg{`WVYaVs2XlUra~K$!$W)yq@N#aH~;! zty|#)q8*{$gZ!p$k5__glJkjMYJ3el$0{-_`Xp7t#`f`dT2}`Pu4}*cM7Ty3a+M^; za*ZEgYZ1u3*3sSB3&KFZEQ0M5FE>*gf<`)JEQmDU1R&m~d`GwEfKQ$v@lFgt2qVUw zAJ7@^tfAT?WIsy}ZMVi@Hx1ia)6L99Z&}n&s@g1}AkM3`s}ksN!Y+w7{t_l2fDvmZ}P!W__`-xYM7cKgOt$o~d&! zvSK!{r+oM`w1Ax7YNZvC;)Z`a%y`q7+OFT?JihqYIIRa##uxN0o-y1NF;8d*E~m$B9c)`o{S{Fga6?YW}0yjF6EM z>k>)l@eyqX-Czpms0W~Ph!hQbNhVcL_E;#J9Xv8LR5t2WQ)FRB$zWli#<(Q#0~E|! ze7OuE$A-_~qIoEHU>IalGB0oosQV=8^z#SXAad!H%A4dsWWd>0&Y|-U7ikP$I7T;7 zHmXiq1#J4z2}3Z1X6sAo!nJ5C0SI21%qQt}dw)t>nQL$#7^YX-QlwDMX zh_KzEr5zTS`|N6CK|wtC`0QJ3*bw({vqk{P<4y>^KTAj{-4G!HcDWg;a(c@cO4I+} zOHIocagGl=Bm^T9<+I8+01vcPoKX)hP_~5gEIhD!&r#P@3B6zqh9A3h*y)^Q#N36( z_33*Jjr+k&wTtijU@)+W7MQ}0h+)j|g-nI+^Ll73Bh?G;dHx=mW+8dClRjKDpwmOU zrmeb^M30?!no)KDkA6OzV6?`{N6XPk-|yCEn8!ib7n%5590W4OBjXH%Gb$R+A_=5O z(Z8r%ue^zdv{aC0(S)EKR-j9z-X6{#BmkN?Iz%{@ohA#@c@M~(*CIW@ z2BVtVsGC~kFM6%nITHBsUK7}@-r&WbUBrR5>&rvkkO>qGpnriG;wC{cO&8bP{5Xkt z6#_KsLnYc2*2|@u?$m0i=%ofDa(cR&J_$IuJof;#TfUK~##)YdAaKr;pr)?P!R(m% z!%_>Hy4yjS-1z_8N4@iNdu*UOp67|?ws%(qBRYKFQJ8`;Tk~FQJI9wY`d$bk*g3D0 z3Dxssw4LxT9d81>`%cn;1grV(a-9DQ0y(>pMY4DAx(wTjrBvZeZBqnkut&xmp`}15 ziT2RuKh0nGa=*i7R_h+rZs53Y@5XyW^Oyc!ke=mCY>4Rf*;nJ+>tHoPl53Dz}XUPRdSiOT>jsNGUFwENuumxWm zAi5@bR2JS2sXm1IY25Z31A^pBJe-FgX!>9(=qMt8u$ z*l~b&SsMId@Gr9Zg*hLo^=(~t=^g(;LN9t ze#5z;BZyBQ1hj25>8h>KM`@M{ZpDc7x5dg>xW67)scDHl{&f2CWy?`6w*6&ZWu^5>NMrcnw$a2`FiqD|5*g5BECQ*zQ{BwBz)T|k#cq|Q_qO}vQv-?GlSq({f14h zw7s#qdTK>RaM`gyxEtrFsNWBb8WG%-Am65me=Dw%1V zyo|N+@Q9B;?;V`&kBRX0fh0b1j+DXAaJ3N)V&dyF!W`PC->lfaxB(t5cco?i#!xx{ zNOyO6;zf&_wfVOI)SbEbK}x)DPe~PdoR&quZM`GJE>e~wk4R6e6zM${fcd95oE&+x zTSj2lfzAbn+;~P*tdaCLH1P$09oFz`08gM&f}V2ndNrd2MkK3Bw~dB>5^_kNj zR}S75!wdRn`wqrqTx>4S69wUex6M7(;H>xgwEjJ`;dxH#9{=6^o{@HxUhJwJ)4V-X zjZf(yX^#hjq3aN@1duPpQ}&3iOhq;s+G9e-Py$H|{f!Jfyp~oVZec#!lqs^c3hk0r z_y0gq7JK9OGtW`s$BGzaq); zO@MwX@SzHsz-u$}z_@Uhb9}FJ!}=zSDrYrOw=Q;~0q(Qf6i>qXrDu-+Lm_@U&oBMw z(erF^N$hOUgZk|vxLGi(0{OJJ@3fI$Cuq!A&_KYSVPcEMaD0g&M*09%8W`bjpR2U| zNp(AYh&>QS=td%qkf)kOULQ3 zem`%bMZ-bax@|FSy?}}+VyFcZFjtHWr17G14%Bh9nlCB_6jl-bPm4yv8^3}Op*S?k zE=&?g63@vo<$CrJP28> zWEr+^+(N!gDV@4BB22f;JkzDK`EvCX;Cc4~0rSX-i|1(CmlNU4xle|T4*Wjctf7U| zn^NXTR8Ep-_uQo3!D9VWIr6`6*$s=U#0OpE^46pVx9I$eN}wp!Y8@bpj^-ynh@SxS z)f%~ZY3`e>XRCtD?fDWg=36i+CG?j-_G1}3hB+Uf3YJ5sabu$7o4eX&M-s_pqT z5X^O7{hrT`06fal^l~*^iwtc9Z9sP@ofmQsYq{Pu{Erg5={x|bu6CxO4j@dPJ9ouB zIs^_)n~tX&+mkozY~WNH>}s7Y!zE9bo3+XX?QNB=N2&z_ zJlKHXU;)5`x{i&XKCe*;p4dR6RAW~UwqrZ2<{kAVy4eJ?+~1c-AY~%^?e5ak!;PxJqbZ{z}9KO zZzQK>H#0*Hk5<&3eJ7)6N?OOc{V6U-|2DY3iY#Q}aB?JzCf1ug!@sRgmsSU)ioGF% z9ua!at~ZMP3zR-UVOx?X+M}9T_0KALb7U3r+w#{R*NfDDBnsG1UT<0%*e+pO?g z$M-ig{tLz3DoQT&es{7qIEi~P1N_)tTozf#51NHXO3FDoOF9c5V~^|nDtG>lO13eD z+_&W9_ADdRih~Q)qE~}e)KXIsVgvfH;w5AxK1nZQ{8(X4fwrmgslK)LhR;VvrKJiP zp|Sm;O*&kg8^N3w0|1fd6$NCfYL!$*P&%DeM__iw{~s#rzzW5m@FG^<1rq&_ZCJ2m zh%`pz^%6{T#%}!y9QpqU#1A#wb>lP1Wm}3Fkq&8*A>B6&S1mG!i*DZ|Bb9Pnt?ntE zP2&5W=of4;^}61cXJXy`%RK35N3ir^fWxf2aUA*u)_2OUx|vW8twCcYY4BcCko1(? z)j4txnD%^{k6ldgO)?x>0v-66J-`oJkQ}B&Nc^xw!a0-+!()=^{et2F7h#ub(IVPX zF#h05Yo09_pgF!jXF(}WO|$d?xKcvm2nFq8aoTCpaedA#W+B1UiOpxDb~2n!m3*Cu(K0%WvYiVva7#u z$v7ZPA03-x)~t)DgmUPdHU37xB5TJ|$b>h@0(KmiVwHdw;7(Wt z4m-qx^)(G~k?yOrM7cV{6DB`@0rjM*@xY-!^OpowxsGhuP?7*QS%23CZ~sj#atE%Y zaLnO+kQ=z-+(6Gc{PRx(1ZTN)bLVNQ%R44>Z5YxQb8H_|K_aSdHY=`9k4A zGLUL60IyxJh%W8Y;y^Q6GqHQby=HLugZ5~w$_*gyVF#VFE6elacNQN+O{2mNhGpxg zR64$}xgTgG{RH*5`DSHNOX&NZNvwTOraVdkxtf4>;O_b@h9%ZFEY+C;={Lq{fwfIm zO&YxMHxT51U~MvAwjera#CzsdubU_?rM9%K_n91XcSD>3r-9}$n&%&Fst7Pz&!e-r z5eqvnkwvEkfdd5cvD*sU$xNvz{9qg-^| zd{p;OC9+=R$SBUDXw}d4&wKDfS5tZa^wKui&=9MN#3i`hO2TOd+;^mnP4*GzdAtWC zBk)b)Ss+JmsbCHyc_01KUq+xTr>^$icEdLmR_3F_pU!eyZ3et*8Z(++=*^8!Fxht4 zKps?xv;Igx^X$ASC)R0Sek%Pbm%0LN4>zx5p)qO^fP9Vb2+Da@iKAsPg`l17?aQtM zzu_qWRM8XU7ghApp_o8TtUQrro2c!B19}Y+2?pC$)l|IlF!N%Av$T8?S`$$qh5Q{n zU)da}9jf59GLY5F(B}EvFo}T^0Xr^UoC36I@})8Q_Vq{lVcwS3xvtW491qYt;3MF? zyZIv8*_qF=;QQt(Uj*pR8)9>F^cZkge;#{Sa*~l-bG;KAvv|E7B23MT!@(&+Wm_m^3L;sgt>uu z2>ACC3l)P;&nF8T#9HR9L~+&P+gRYp&t9oa4vqaoghTfZT$+T>Vm8(-^rEkpa3|Zb zDX}}#yf?L+wp!F>eq}|yPoD6EmVRoMttR=q*r>aNi5^CP3(s~KH=MW-#QdFv@Vk|> zpu<3zMqDOQ938GW!RmwwF(x2_wW~UKv$g5jcP?6O|81|M_e$cEp5O-ld#2V*=wlGRjJ~P}Lm<+d28fElbWcJAUQoAe`fXwOt}R@U zz>BOBMi2gn<=<$lahV>q7>U3S5jW+~tdMrp-OFF1aIRNj9?EN8vJ_$%A)HROsK3tL zn3reR@a8YCXBWg3(dK{*NTdl+KSK|-7dQWO^gb4GY;jBp;0c1KZ;dB4!obmcAuIUZ z!@lMtFhoudyKG_H?|Lvr#@DDA5}Fd|1-}*St<$qPB-ij~*3eDPl^T+onjRbVI#N0_ zKT!OC9oSYh_8Xz;6a156B3Y^&JL36r*9VA6>4?2U8=Jp1T&(X>{}!2rCE!u4UPr|z z`zFjq#leZ{%M3^y{gl~;?K{zW6U68>f*DosLaHr?YFcEtaxA8(qh@?*9eq*!qh7$< zNABW8ES+y3QjJ&yRoAa7!uaG>LMYktF9+My9B^g{nCd=KaG5>Fn{*@&=db>n_+8-$ z$WX+TrXKmT>Ak3un-ih9rld5x4*+9UQ!K|nf%~{+B2vCMa>%VW z)feXD@M{BL8(OVru4e}o%FGkaZ{Ij!o4mt|CfY&Zy*fV!!OESWe}SYFx-c);4t=bb z(=GsONWRnHz5_*ft%(fk-6eTZ-YLN)zK&--;gQ&DbB9h?3dPz$jTD_W#K^lJa1>vh zU2B{M1{h*%O`Dp+6~ae{HfuFRT+hB0#M>a$VJ({zLm9rZWy~uW@WHm8_b`$RK9&uh zVBTp$^6kgCrh~aH*ic}i@wxhm=(@Lu9ECYCjtia4S`d4;*@TR(HbYe0^i0D z=R1WA8Qa6?+tO23>1#2+yrOSF=!-V61?BI(_uX1%N$zUos+s~ff^#9U}`ev+W1&FpI79A3+d=(8h)qQ)+W~IzLeus&R@93xYm#R~~ zOp+Gx-$VxH<`GF#xC0h7!x9?iDe`_>tc>`UaWG;3hBV|XHuDmMCKz#$I%gq)=y6E3 z(AvQ?)KlmW9vK)d|`s8Zi{FyrA&NGm}wn)^W>kh|RZEkIQcvSoiz(Fh0u0U0;+2V&Zp6ohG9~AuW0-fdMI?T)o%HT+O)!56;1zUno);xrk)KV@N0ZB5Eo z&(`YujDO6|zihRd^T?Y8;qxZ5lPLlUt~Rn)ihAvabgkdZG#0wyTSoHVRcELJ3zvGx zHU&HgBY0-dg#NXCYmIpB9b@R~j%|tMf4693Rd=zd#7PQ-OUC;03QNxC-cwosWLzud=(>f$q8x zHaciIH&a)^?#ZlLG+-T|XLf1lsC+SX!NZ>&}z2IREl<(KNk7df~*Zck_K~W>(UOMTmgs8yI z>z4$HJ&9FEBZBP2BQOcV#|~!5FkCSRI{xr9&ZSc5ckGtmk*ifOW6tOm6}ij&K7SDt z3CdGXO*Ptj!UrJ}GiT+Hn=+%?YDY`I5e@fbK(JE%y5AswJ9{vtu zYWnj+y5t`xYB74XX@nyZ^o+dVG8QSz7F7@Ps@~1+gC?Mes(3tMzgfv8#KJI978|4PJs>B7efb}YJ5s!z+Z)L z=t5o*4#hlfdGe8ShgC><|F1bCwu^n8VEP2{u5zDDYOS8Rr>Y2kc?? zo_%^4m?q`eqRB8a-meU!1!3$QtV9CQR)f049M`kk4qsE$97jqc4kMC zo#blQ7IXftUQ?-mUob&nWZV=76IuI%PC0-#e-X59e2NO_VA|9Vh!Fa$u??IgT3ma+ z;F#R>zzgBbI1A5b8}Mxy3TPg67YTq)JGWIh%#fHb-psgWNPFLBMR{Zoi5qzpt?dN0 z@<$Ix>ok`l;aji!m_WBcIaF6FmkyCCGQai;68fFh-t2tmchZ~vUY@D!3T;`D;HokM zX;1DIrvJhZKe8IqfV7p8>#R7p#N()=(+%m=;*L%Ni&_R}3*T;w43bmpjZa>7sU%@JiYtx!5=)ssw@{Df~V=yJPn{e z)hdu-;Ncjy*V?e#bFjFT`DC56ElB7DW#dUd6~`~quf0R(aiCtkwU)X5)CjK>JoV|E=XrhVMreIlW2D3B^p;{jbBTM5%L)w)v;zyl2?VV>DODWTy4b)u?Q z4yoJ(cc5J7_LmNki&-BzLsB9Xi9Oa#*T;hg30wCzgJE0WLnWGR=6~Sk#gN&~7ZFUH z2#x1?mLb~e$={#H^Ac2u15$s20w?#S5+v;2$C{;kx+!$FV}T#IkO22+?W*~UJR$^p z{}GqI{d+_-YD1!AdjVDfkDzI1Zz4u@Pf@D_stmz8(*Z6vcpwRmN$T-qcX~d+5-W)2 z;VI8I$*5rO@?k8YcfIuvI##SEB>9MI7;7y?t3Z|qyJ-mXUf2i;+}yMvC#!x8$Hbu8 z+)HhsrqF%%U2Aq}V_d~$&NqSHjpUY>Q=zEhO{OK&d9-U@15$Gu^1N(xA0m z61DD9kE!MkZWj+08>e9bsccM;?Dhr`au#v_1~2Cp`$XYrw#Q*kS#s6dUD7@GR7s1h zN6RfK^g<#DufsqdL*%{qrOY#6L6Ye=&0vS_fTqjQ^W+}RE2Nq#OvoRUNv%d5BqLlS zT=wB+v!P4dp!PmsUNZmV&{TRk8N4Q?P6D78^V;Qpm2pFZtN_Ze4XC7wE~9e|`=hre zdPwa5#g%AB?Qo6n=S9ofo$98zV_O*DGcZo5ftj?>zz6|s_tD3 zZhDGQ!{FqP?ChcRRBTjeQ`_ih?C5E0y59#mOM|j_vHg;sK0>e5=0x|m-N#v42j@r0 zPXliwn{4`P-bC{8a8_7ZO0hc(6z%ZK2V+WtV6Bbd-&AV>alJnB>@9-NdovBaZ7uLD zPPu-wn8t`}#l`)2J4>f7`CK&}EVq3ic&K%6T`sZK65wNJx)Ar+WT%qMN#4qU%||wv zN<`*fT3LvxLbH+KkVJrj;b3^iuERo`UUiRpiNrpuS3Q(eK;5>3hZe@$<1&^_N$8i5 z_|X`HD-PV3z2A$aVtt>c>~P#eF=hb^6F`VD%t%y ziOu|k`7O(3XcM$=en3c-7-6%A*5do4{^1#0fqU-eoggJh_G>1$XM4&=wHT6*pjjvb zp>K7O^ysc{+PHYb3lHu|Hp+A3!Hq^}+deFm^NF+N^mnJ^euIG7 zy-_%hB$4!2+~!D3<{Z0q0FdVBfNE@Y#nIaCh2@E%R(@lP_89atqBMplDK+>hunItfR=Y!K&yUM}wCLrXm; zDqT*Ue!^>Hda;X3|rUNpZ!BK`}I0+C3tGieRvykSS&g5N`Z1n zL*S|?cCw-_VjvzR+XBc|Jk5dL#&VM0(<=nFFE&6fshVR;bF9*al4-zuL8R>=^k!pm z!7&3_+jt}-iQ>@+p0{A*2S}6e0zcv;L#Q*I8C)4~*TS+`SVw6Joxvv z_kO9FVAk(&*lT%T-i7}=)pqwu&$hB0*1rkJ7}|4-{NEzJV9CUK#RutPuKot!A6y^| z>=IG*n-Clj3|syTOQf2C|4q`#3Js#0v#(%1d~1ekE^pPJ!|4y)@?d*2 zW;@_uwSAYFrCQ1&U@&Ij$ie-EHty*qg75dA&1Fy#{@mlp4ngl)pX?pE`%9~=B!;=) z-{*l-AJP-sAb{)3L>GVV={(Ry-~FT?E<58u%)!p+{hLY2ayPrt>!5xT{HFfETLBRa z&M&P6d7$k|a}(cQ5)jWlzLOv&rFjW>eb%w&oh-_PZiPvLz05#4ISlRERQL#tfGz}^ z%7wPia%i3QO}#6N!q_Ox?rRBVCNo`w(#ZL;W81s0e6{^qPMplHReS=jI2|%=QGh&Z z#i)Wvi8EE>iI|NO6x{pHcdDo`yx|gOjM@SGC6!fUU^HVdWwLJ%>@Pu<&@FEh+n~Tg z)%ff_zqlYPlv9S4(AtyMXolDDV?1IZ+V2yjS7JK`xA)w9pslq8KR*#%8Z*{MlG#Ei zWc-FUtw-z0{i||tx;TYyU&K>Xcj(9h=6j~IH8HOdAh5?HHP&V4{L6V=+tU!L6BV7t4BKjbFaJRU|nBl4WHiHj7 z1$&BW^$2lX&?)9#$^Uj z*P{uvg*r`QG3fYX7}C6LjxJ&RV^x{y{l(2^Cu$WstlRS?)4)F#5Ny0U#E{+2%LZhA zN|X{_f1+}qY9NMi^#%XsqKKH#dyPo`g4h->56vd#ygrufg`ME7UhsvzQy8T-28?I} zr}ZWkm`yn=kb%mNeI;RtcW)kF?4$Ta!+}>!uOXZgcsRR-jL-w2ITFi8%Qfk>whW;c z{2d;@#2}MbHKNb?T%@UDHa$#bNjOyf`6Kg9-6G@gW8~l)bYOLi`ehK31_Ns zpw6u0fM6Mc6ZHq~KH82wjG$jaBi)n^b?;#L|JeSW9Q>2W+9Vb6+c=efK5<^&h^78$ zzfd=Fz+YIXd~W+?jy@L1^Gr(?^)R>t6D#M9dv&%ZQ1J~R!PSUF@$!FbXcrO)J4kj} zF~rv0*A4m|MY7W*fFOONzb>QJf99rx|(W~2&s1#U&{3R!#-)Mpx z+bANI$J;_*Wx3cSP2wk1JuSDI>CC0Mgb!*WnBN%{-7JTkt1&ig z0a37sdTL)ey-syaVzQKaI27ZzFMyKuo$Hcl?&IX|QCi9k$Ap&^1PiVqq&eQ=1l6@D#)V0`8yUnbj&WKQIhy`P^P6Ks#4@%k z7?pOUN-9~uobwINOH}4B`02!EW7$hPc)QU8?Rnn^wncP~W+m=9<|A*YIGd!YD*m9U z-d}>;^5|U?#j$Ihu6`qb*~l!bYbtgNCOu<=+yFU1#=l!{gs5qu1t6;3 zrwhSZfEe$bmUzUz|8Fl7IT_GDza@-f9&948XEqHNcuoceuMG?7^BNQVLGpZ^se5{9 zN2*WfU;~BthH2PnRp@jL{~cmups8QNwEAnMsyi?x()1iZO_hdqKh~^VAeGULLcxn` z#XWBl#iHOh?u5_r-Q<=^=)r26nEa&Q!0dA8Gpz!_bQ$m(Wv{zp>_3+u*GUV{8s

I*r$van8)(@tEAHgGh`>_q*CEW#S~=3zxEN^S3%8~kmx!oE;W$ zpW~@S*GMZ|${#sZG9|PvY4VI@Ky5Nkv#x$xX}v}v(YFd*=0=?;o4tLd|Jm$ zyQJj81Ey!iLo2@>nZOea9&xQ@1S1yV)i(c2-@buiOV_e;)siAsx>QzLXp!P|17Y)w zo^zGu**b<+9E&H#DAtvpJ9;=lVBeOp&;kiL0BNiRo=z{kCcJd`GD zUMbbb$MY!d_We5JW$Eq9j?xl3$qkw-ng{xJmW*Ytv()GY?)OBKcTi^U#y49ASdn+S z_P6O_Sk=t{c+BKxVqCS#sY_d3vN@p`(U}`9KjeCIhZ)(U%$p{lVbc%R&%;(UC9kVV z^N1D;SgXZgx0vwymdAp2gt_Z)jIlYg(l792Ngd|(CxGGvNUbnJm0zdQk>Sww3uc$` z=?O4f`1gxIM1H*~1K;8**dft#UT+xv*xT$r$Ib=K%7fPzKQ;Wu$nGwsYggb~m#52) zbh~agt2kV9wX988m<(@CVJIVauiiyT2^~bDM4Q@O#({;1;%**YwBncn<~LShQ>eu; zfLT+XmzI7-AtDL#gB`-3QN=V*=~Hd%2j;LI!!S#-Ax$;1G@+w(zr_-j8hul4e<@4X zA=Oy9As$#`XjSUAaH`UzqSwPwr_QN-F~)b)&kK&S7AP#!49!#0_s7AbLueiDg29?K z?Kd7U-z!_lt4_?umFPl#%BcE&WvJpm*)bqWWzlq5P)Fs{L#FJCVXT+Zh3vSx5ZC`# zu*ed4A}wX=YA9Ro|B041Ja>#5>Gy$81wmBwTMNh#plfy&8rAV8YMMjCFMDZ{vVsZM zd;wJKwVNM1Copx5Q#}#sS@rcZ^@OlKiyJ$NkVz~ByA>!$Hmx&q9V-Y#3`1XYQ|$hi zb3)a%>1`JwV#V;S>ll-H7(LwNedjY-eMSEh zM19vemy7=&SHohuH*cd2(Ys1bcy|i%6xkUW< zV~E<2CR?-NJr#jJBkGM7bJdSFdS+CmM&5Iz?7Z6(PoA_`6>9jdf!0rlil9i|>G>;q zHrcL{Vzi)3!H-JB8OsvhPd!~SzW?)GT;NlCdxL|qz_`SWu(yWQFhQT+;;PJc~;Pt)TgeLyOH4>~txs#Q6`dpf4rEw6^Y$=4Gg_!9y1$ zqYcSvMZ1~naYWkNc|$;~lnA5x6{C1H}F*KT9ndM%#VY zDy#+A0n4+EKBB0Nt6e;n?qJ*0jY$nR;>iqPeX0gQeF$gpKul^OayO9s7TJdyU;3QNtK_({83 zr81K$*PWirm|L!ny+RGP8LgQ)j^Wpjp{c_1{TqooNA2th0Wd260PN*__itO2#Pj0K z4|6JCiA?q_%jbg_+~s@|XkUFL zQUW|3vFze7JtxK&FNYZhz9ykx!9unPY@W>C(0QRo;49$x21cx({Td87;WV^JT_^7p z^ka;JsA3cYI@^h1!kf+0Wt>DO^xTIW zEaOfj%?=wx_Syqe)1o&qQL>sCmxkx~m8d}&*hK(#O6O@f{fFHrbcM@n{(6tssO-3M zk**O8Pq`M(eORnzmDc8$$F+B_7XcPWHk(0?h9Hs|NmiIs?ht+jeyjl3^EyCwcQqkG zV&Q}NHdKFtR&(fF$B#_PNdHjq#4K4R*4roGe*yMhG-6Eus`q4{`u@W8Bv1FSYUL({ z4?z?J@Q@dT=a8Rb1MZV(T+X0t*XKwp@|6(@3e7A+?>LAlPhj`ag~>s)@0k#mIZD(e z?A)}OQ1JS;W^djY%-rKv^$nV)zxU);RAgvUcHhEw_&SCE@V0DJlO7oOx#~i2hV&T(~`5swALlI%7Zb0>aq@Jk?m59Z`e#O?eKUjT;18&)^D>rP$D4Q*f4Y*;Z zg%_*%>_cHW8EROm3Gz=ll}M$M>Ljat)?28)%e%e^1CMV=wR5JDi@gB|_5h zBIInEp5)Ro9tuNvaiVd#S4lmLKb~ndH8cipOSJlCwomIZSy0QwWtA$$L?mCv_ftf3 z;JwR14;3he!|bB#G{Q!W(c?o|Bej+tNksr1+st4J42;L`c(dDi5y-Z3Kg3RVo-BnE}3k|EJv_g^~LL>Eq)u~=O})rSf4QLso_)SRSkyV9x*fa^zR zGgWx1(z$P5EqX;$^dng${6P~ z&y0S()rD+#Ti|=cKqy)fRAFY8n`G4+TP8LFVh?&E&wl?w#i0sQqpw6qBtl`h=<;IG zgDbV$BoKi3B$wEsY28Qqp|jtC>6BG50?Apv3%6Ak;fOsir~PlMt$ zN0{i5zb7I8EYfIM*}MEX44V?EQ)bb{*!@Kj4mS~Q3?*mYcXcH%=r!d%a`B{I-}jiO zJgB|jJUoG!CK3YG{P`lPZTyq}Hw2{-kZGs>TzW8r90a!n1NW^z_`$h>LEUn;ds_pLM8F(&IuE1lVFj6*1Wu0m7!D17=ddmzlQ*mVSoV zTgbZ>W8o1qLt91~)Enj7#Wu?FfuaG*Yx(PYiDbe1bs_f>pP0E5g&y<&!>SvoVRsdm z9dF*6EuV50B$t&3#NFW4wF}0}Dd4|By=o9%plc7-A+ynn8HvWy2UlV(5Ti?BtrIFT z?=FJHdvS4Zqb>~83Pd6|3CRbbvUomQcsjGyMa#A$?W?(F20Lo|IO(RS)47D&Fc>l94lz_}h*91@*Jdf!Pt;UN)qe37@p=n%l% zL_RF=?=38;d^m6ASoHA1Hrd~hYZ6duRBt*1m*H zIS_Q9G%FPU)dPOfAqU^j*0uk=q(3=}eA~ZE?Lj1F41ntHcjtjGAfwneoS?RtP3-c* zu(K7o_3jnHc71x*A)U+(KsE6h4`g%M%h(L8Eukd49W()wWQm4J_)sf4!It+jyT+P( zsgz>DD$Ww9JRJ`HR&s1ycL2;gk#+h3v3ex<_nD5?kr&vfi;qO3!5|AkoGDIj|cCm-s@P8bg(7PYFHNY^*e<<3Cui*9J5^Jac zWe1hy+&v0md;HZZf?Nn-Cg1VTH1nx(91H(Xd-aG_9|&B%#0GWDk ztV$0%iLKI5L%OZiCzj<7gchYhi{4H9A+o;;bSB1axExq&AxY*tj18aRTsrSY&(ln2 z19m-i``m4?(JQB-3g(7Nu9m=UkY@Q&h?-{^r^$ekjzezqJ5?IVjHZ73&kQdl=?OHY za{^~t3_E42^pMzOJB`*q_vC`nLX5#>iKa3C-WwA7&CVH>4EnVhHkIX#yVLQ1QN>xL zh9`O}#3^fX;%pB~lFq1?(p6daT_Fv74Ly|t_2eGJ=XPtg)OWJK-=tmUnf4=y#hXV< z#iQmOSgM7Sa$K*McR71-JXb1~G@z{acy$UjMi22WbN^>vzzNZnF~}jkJVfG=-S&k` zpkShVdwko{e10Qy*A{H(u8}xTZ|LQXTV}NiSKc_eE)Ib(?|qUNklfLp^syT^Nxf~U zWAZklA4D@b!}NRxVQ#%>&c_ASafjql#yF8krv(oY7CQ>*_TQ6Fc}!d>3IetXCngf&qz-V3+*cl6~X3o zsu%=V-UevHJR02%Enr=62HJUFv1LMW=&g0Y4JOb=tk%r+G+dVM;9stsXzeg zXN}{#3sxZ*7?Y$iyu|9rOgSalk&})#oYre=jMIh$B10aS)2tC-`$M;S*g(%bj?ztf z5HMxp;!TUN@T%KP%BdH`q@cC3_vCIGJKqgxDBR$QCcS?&YuXcdrWobrPom-sdvw+5 z;Cx5-?o|$i$d)o$B*8>uVj%HV*2NAQN$nPb8~OehtLwk;z#?@6_Hn6xE&h7j=47^p z7qD37E;?R5&o|oykxb7%Io0NpN4v}P-jmHaIIeU&C!#1^6Ha~7fV+BtRO>~n# z8f=4qbZIvFcn>L$#=#vr&+D>T5=>U3RIK=3MP}v(Z=;wZv3E3_E^A+=Tlw}Yxtja$ zk;woSw>dp2WfyQJrm&sbv=%i{h;lM-9Ys5sm}A?~=H^ISd&>Sx!y7{NgVsAG$oNJx zG&PLC{YuGti>G=iXEM&TLf?{>RVCB2xh}9_vw-{@ocv>h;@(flxg<&S*&x0-Laf6@UFeG~71P!GE9W*Vl3Stp5JQIJ-nO*tlYG~No z!QX$UY0D|0wD6-cmDKNul1-Tj#lu|+UEeD><*cK^fCSrf6FdXB*66#2vN7=-@)L}AoD$HaS(C-) zrMUk@*_mRgqXF?+knazfuT~pIUeY_35;5eHtZQ2q6oth%Wf;IpE_)(V=xFx9^tbaB z&8cM!osuLi+cExRRiyfosXYFytvU2c7)lE$xY5{`18PvCysBt5q50<2ZM5AM%{D`H_4n$6nx)_b)Q=?YDE8X+E^V>yakyhTk@>~^8x|xz$cGFA z?ZGlF{z(Jp`HmI9aH|@(Vm;)=&f~&_6eOtDfPDBexcrr8pOY0i@v(jA^D?xJK;}`eh zZj&S!0)h-k8smiJLio@D`@dXzpDos^&G{H9WP_Wkf6SDQpEl7kGb=jXW1_Hm4T-~C zkHEeYIyY>D#ow9svuH^i9)(pP!pAp60PI~NC4F&1<^8Y3T}qsKOs30CWDc9nQ)-zo z)`h@)iQ*C}@&JBgVksqQhg-3mX9oKkSkID3;6hUTDQs3liiD0UNeA5=n500FC@2j6 zlseKDk&_WE=hM#+LLa*+#?tWHbg7H7=cHqVO-OfXI)f!ci0pL{*ZxwvB8@h|De6Do0D?!e@9G{Z?LvoRs$RSif~)K=3s1-D?J0@Q zn12z_el*~hhUOp=PV?y&?NC7H2sO<_6~Xg7DortG%?S+haNMoFoJ-A)Jhvwb4tawi z_whPTdB4AhgiygXB0314&-Yq+(cdivHsJHSj`2$n07tDUz6oEsF8{gCjI@dfy8V*1 zgq5y>uzv<5u}8IbZNOy@8>!DW2zXH4KQXe3$az0a$;k$+3L`5A{Xbli=0T)rU-ZHu zyD$nK(o`}{e!#{xB%86rKkRCTW~3ruV+T76?DO>sVpdey(GFrfcMJ+(?OokFzINh2 zv%9+c$=$0nVj8Wus^#e--ER0MO38ATc`sr~)+Eymp=I~PwqV_GJBn!a#29si+5kZr z#CZ?%y~Y&5E#SEVF)h|(fcLE-7;W97P8=D>{EXi(B34Gt^@w}GSwNOp{V!dWE)}~q zX_@84xA?8)9{o0faU-6C5yS!JVYYc6aptx`3ho?pw8%r(^4Xhcls=2&usRvQMB(8SV%31|s&M ze<-c1evBI&Ou&t-uCQX)UMo^2WhY3M%sZ(5+981h-peedvW?DP?Ne-^a*#~4eIu7V zk&-e%8PuRUpIj?{crtO;qnUtVXhXvwLoqk_n$+d7&XVh0(pyh3`Qg4v4OOGxudWPX_o{vrzRpb~%#+)r zzY)8+(vc&Qs@2M~;)mQFsG7~Q7Ak$$k>z(CqG@C==bwp4G=%bflXC+gLIF`g`dGH0 z@8J{wnv<+B&4;k;Gx2UP>HavYU6}2K{rZYnI_Hp;J#EZxuK;?=Kv;sd;Ro!-gA7Fl zNqOgGqG$jTA2)q5zS-x&LsWfJjj7*de{`MpjwH$6ZkVdn8}RSqowF&N-WPq`JI|33 zkCVwKq;5CBUchl{HOmo}H4!QWf0#TOPyh{kxbpJe4ap_U0mJ-=HcQFzOR)6<9#ZvMRb~^*xqBXTjANyzwHwpkFO_OYwQp(dbUH#A6S{_a#pQo+= z6#1Nj6epzcu|L8(yF+z8iN@KVpl|8Lv#9R&bc%>o<|R(10sBeuXRiu@f?kL62ooKqWN+Ki*ysN1KJOQ_LMlhANg6GtlVCjm(Vtj{ugYK?O+r$ z0zck4O2g9SHfC@ckmC3o#RB5sO?68$4)jK4?j;rk>j+ZnQ6238+m`V3oMB$!c7OGF z!nV=`q8W3mS0uSKfIW%z%>+v24*cIVl3wkuUIvea1l$4kT7D*R)v9^0 zk(Q{m**y>l09`WT-)C44b$6JxD{RN11*id|LL(lLi;dA!2xuR10m@K=S)Dvf)`w&{ ziR(U?WG?V9@|`ZDP^Ik6t1uP`CeY42eknwrb7P}PaPB^Qk$=ue3C7;3)YL)^`y^X- zoVP&2MfDY)P`~-H7aTW->n<>XcTUkJ5u#bxFO5J}8JWyF&T8}xNzwYZ+Fak!Zc=I- zntqyd&ZiS=-UpAiyD&oa_h3k~7+C3}yqetn&N-U?sD$rFMdlx{Vm-Htw~H;PqqFvTaUA@X zBVTMq)ywn*}EbAqevWIqnl)B%A0)Y26k-M`7ld$QszU(S=b(*Rb@4|SVYD?S30G4{Fw zNW*4ODB-I;`+u2N#+8Kwu zYF2bp-6%*mUVF^60|j{l26|`>Ia4b?MJofKjx_N=^TEkp1~`vEVCS1JpZJhnsaItq z*M32@qGjD!?n}V8!jZfi3S)~lR+7UllK#0ndSbphi8{>RKm7h|ay7JDrFGFKYqQN? zrB+!ULz`>2vQ5c9Gd`4ZPG&vKw)|#7GiVJtzDB%+t>mr$`hTsoq$1_r8Bj8lVY>QA zr=lFj|4w^gwHvuNglnjEZSsd%xM}fyK))nv5wa*3@8SB07o_8?qT}w4@gCRe^+v=S z!F4!EP^49vYp8(9y12RPemh30;6eZWd(d|X>TSjI0;)7*t+!K);GLDCAg-!+iI}}> z3$W3s7iQ+j?Jozh?8W}Sm^cz5(1&R$Mu|K9%W9suxZMQba*M_^K-_bgPK%yHIypoK z)aDX(ybL5%8_GjRJ+(?i3K?7X2fVF1Kv!Pk_|3J(#6ar?aK);C5Jx9+SLwz6P9BWq zVP7D_u%H~uS`HDq6)WjH$b4)WaF$PTz}2%t29Uh zt5l?GIXy-T4gME(m1J^qj3E6q+^>>GgQqnG`g#6gD|QeeRoS)HTC_ZqT&1*LE3pcS zCw#V7KBfHS*XlrgT)7T2z46WVAK~0ezJG1V*sF09rWF)X*~nHMcYEEM8-b+-Ug3Yh z8>l z%Kb;E_yOV+X72P(E_t*qDn5%=eCq$8vdJ|KLU5+qpeFNb+fJf>ob!+B4(~>L4T@zyjm1cWouPK@~Kc%!UgB zBOi{-HOl}}LH3ry@$AR^DV9YAX@!X^x4UDE=B}G0V4jN;+$C0&o+cUU3pcwgcmf>x z_6{kz!CI*H1clfpz_{LqGb>e7fxD;mmgRQ@b|lb0y4d5e`;*)w^hR{c&4U@naIbQ? zY2xS^I-K7mXY9YybrYS8NKu3E9rHJ7(iR7I0yYxzJ(qznmUjCU_6?yZ1S>wFnK7Q; zbkmTIyjiE5Nk&f7|Ndx6`R&oDtZoc}fO&EWUydl-HVf{gNAtZnc+8Q6^|Cf8S)&eE zwslBi)RwAf>zG9hRR`Lqg)UVCW>fw}OJ!Kn8;zNf%dQ;@o^nM_mrrJbmmTpw%{kY!sMV*F`E9)=mTvED9x>Ne;3Mtc$iV~;mWz^^p%UV9hVZ4 zL11T`K0!><<<%Uy3U<|;yv>#VE}YMG0735 zL>X!O`;n274F@U&5=5_j#L!LKIcSfhD-GErfh@lb$BfUmSuWy7o@psm5C)>*PuZK_ zP`jC~YVcDYqW0(+gtzFSNe4z-#Y9($1+Z$x=s^Zs$_0y*!H6A*mhs_Dye`GNdr6Ag z#{cV~FH!m+h*`{lSUzid>gc0};QpJvw3?p5_Ebwjq2}nxN|2)IRxczD;K;0h?xvTJ zW0sq4vcX_Jf4-$zn)Y~Tb2OeFk+dOo6@?lEM1vVEt@z#9)Tl3qG?p+8B4_s7kCJw4 z5Uks0`M=_Qn2$Rrn;Gz60#Qw_*`rxQm;u}L7f1q|5r zvbSaVe1S8uljik^T$tFctauagZ1#@e>Bf0>6SmAuCLQc90^$SPK8-s4z}2-8XKIP! zSgnS;?TTx6XN?>4;=Kz$#-fFO;$}QqRsad66#YJER)jkAV%|aK)v7n0=v%y~wG-8O^w$MDuIi#E(*g8Kl15Y^;5_D+C;v_iJ|_!~g&oA(=qd2Ak}-Px ziq^=W!9?Ph8hE#W%UM*wmhlZxYOu2v2xVyg>%E!Jq0S02w?9fbhKWCA7c~$$IVrEt z&rtObl*UB@YN58xAlem{HRg!y<_*hgFXAUs_n9j+fDU$?>R6=EtxapQT}w>nM9h?< zf`&yiHIZKc84bcFQu&?cFR?fmbc^%pb_wC1b+j4YZsG*_>_W2AJ93{v*g`rE7!{?- zq!y%}7;!5yTZ4BJxv2H!La~HyEE6^n&fOI3n) zuf~1)iJCwseKL&D)pXZ;FeRCu$YU+2R^d^hGbc1I3f)<%BjR8>2rvI5ZnNL}CL^}> z8h>)QIRrUG#9HncXR=H23|7KRLmA^6BDnBZBKy2ChbvbX;f+*Id>rH@-J?HqAo!c- z4q;0B1HP{(Pkz83*GRm83nHFLeEFN=JjQRA-J4+X$r1@655r9aaLae47*+gm%!Xwq z4RVX_J6gZirI=4g1rKwvAk2NjEl8FFUZP?7y8wDAlnDZRD3FiRe*kqlG~7{NJ3!%{uNK_b2_|yJ5uEXxq-*w(2`LP)1U$^wF1NowJ?F8v519b>p7( z-kC~Sd?;=xSDinRz;u630OkU1jZGq*V0KtJqOX++U{*x=qh!)=TfXHT{lR6-njU|r zAz}B>ox0onxZcYiSQN6jR1cd=H29J@1t$nv{a?EYHje!Svg}x1uiO8NYXJSz8gEnS8bVCVl`4 zrB~~JzjB@5M>wX&BEs~qLLNI*hM2#_s#+Rywz^PT<)FVf&LI|^bl456iKq60c->PC zT9hCAxJ&z#ZbZtnTeq-fYeAT-+xQK$tJ}Fk6~U9@mP`qfr4839nFq%)V#a{~f0T+p zXvU%Ma<`+0n4OBY$s=`E~YmHMb5dwG@0c z>b2?Xt;lSc4>Y$u*lN)3O-h1^Z2|g*kMyz$zYnd2b7{;j>EP#K6^OnbKF$88Z~``7 zhmcgUl3}wczCv%<_sXJYcdbCTIl&o2#bd0;4R-v24fWMF@uds?C=NX_Z&V9MfJ-oE8 z$?cwL@jJP*EuEjeFC9cF4m)Uj-prjW{^EGb{M<9CC5;BR7TsaLZ6WEZc zP7qls*`$E`UI&ieyzTyHtZL#>$jRO2we)$-`2zb=&@X>}M!Ys2@1mDE6hV@RHi<~( zwT%QkguFq01Is;RY($1 z`?HPd5!6EoJ~DltXy4@xW!9Lg;wBP(mB@htXmhhuG&nL}$wMo(lvS1@F;>d!Y#w>5 zi{!K_Q*T#7RpMfWA!sCraD1;xCL5C-`+*I^7xil}n*~BB)v=s+OKQZ_0?02>q?~&k z=kOL(ibIhTs9(|0jCiq;&VZ#hs-N0M(&i+=`FaH1*rw^joKF?|8q$s|j#8)gF6+BP znU5t!c!n?hg$j<=3vtfaOp*g=D4yDV{q?IDw7)N8pZ-mL9x+PGc~b?$;j-*jV|J-- z^ytq@HpqB%Bwhr=WgJk%=W_@Ua9~m-#9s2<6vj)`(5u#^gV#sTKuT0H*Du8+8KBP( zQp(spFwBfTObLoNNYk149ZXLK_$13|5p{w%TneZj7Tur`YO2={ldZ3r2i}|O96!EKRXTe0 zsMFS8M0#uzUVT|X@QUc3dGISM6Cu22CttDXi;pY?Em(O;*wQ*Bn6EvP`KGRSO)QWAPkB7Yjm%ddL~jO!Zpi9 z^6Fq6wrsbf^#nW*SY})F=4u%wdAo&pr&Wb6BFyum5E%n6hti1MA*gB6I-L<30p8iP z;;K2Ay`Kyf3)m&&yoZ-EkfCHlY0tvbD7xNs=O8KDe(_~wEJ#^T} zpONAGP4dcWGuQEkHCMNfmEg{F8QQwYUF%3_xs{4Aj-RrJ3iD^TPA1pfj;e1(q)wTD0#=>z`}Ii-jj5>*l9YuOW08TyDQ&~eTXa}i>LA0kfuwNqyJVAZLA%8k>?LQu=SX*e>e6wc9dnbsR z-xZ0T9#eISRnG%83$1JW)H%y|SbpGqu(e+XLDirGVv7}vbW*yKz)B&E+WvzCvIUGB z&ux$IT-Lj}g33Q*xH#7L-U<7HB}o0LNz=zLu3<-^?g-i*%rv`U8``RID3^ny-VFn& z3cd7goo&Zf6pFf@5#`O`vP>bbfPmSSkAR7p96mzQeYZRJIi&g%@POmfCwQ2e%wwR* zV+y0bCDL@V+W_S35;5?9LDO#UEKt8LGDRV0;-{<-m-iK!D~+`d3QrDtyR#^E4KEQw zzr!hO5g`EkINIq8}XiM4&%@( zrLKPmxk*bADDOYgqOL&x^fV!14+auEgxn~+y8ze8uTZ=y6RX>>xY$fu+O;Tc025Kx zbH3vKM;ReFsPBsC0Cnyj4JEoE{n$H3hV2@$1>-fXaYuaF)CPQTw&%IE#52$ypiXq+ z0Q2@BsKf(~0Mt4w8eCXP-oXm=J<|ttxqM2Q{n0n$Vo-S@mhG_i99nfTPXAmWyReIr#zb-NkYOO@H_3Vd_{sT$SuGzV9}4(^ILF$pWV?R?fyh?K-ofak>aUfFKer)v2}s$!Q>TiA~Pee z-^5WLDexi$E?sNIktg2VWsW{^eKu8tf$Fcb{-)d7iTW^H34; zMYFXT+72NgylfTw5AE`T#Jf7f*#c4K%OLr0)a7ri1+>Pg)}leY!rAtk*i4Q?wg0uH zzR`1Q=__;X(81=2O@@?&8s%{1FG}r-Hg+s{=e@~o27XTnAt7bWV+$UhgX5sKx|3iJ z*UHRPZ8}0=$neBuC*+}8+{vGH*Uu6f`o14G($2=5d;gT^t<@Sh*XV2JW989&@W#`VMpDxq9S$#YDggf&;;duBvtsBov z>0ZEs?eHeO$sGnE!m(8^03+>{mLd2Cv}=ZU{Hq`)=>MNF>&m`2vjWDVkKP4La5yv z9aMs>T4pyWMuwY5b+9++AeGZ0%$Q7%ZobQ*1|C~fHxew*PDWn|b`>&F<&TA0c-XzK zk_P8JQrQ&ES`S=P>@@>&gzbi}1#kAGHT>)HwX7E-5#}*%8(XNdHxO2CchKH!shF?* zcss{`v)LeDsYyFE;nIpSpq_LbjQ-fR5Al`_dm4${?LO@# zpSak|YEshmKYb4?0E5IJ>i_nVj~{);4a!dO|Pk!vf)4*q|eFEe##2 zLV`Bh3>?B|`ar>vDrq^(ig7e^gifv|!kI=*&5|u1yjgrQwEUGdsYw)&<56Bs^Be`^ zBKEU%j-*{5zM#?iiOhRk0%@M(;=f zGD!voZ$s8M1pVp|bR&2(0LH6KEeVSsUjAu#(-^A&H@Vbd*|d2`-wUcxUbN+O^zCUX z;*P(Ati!i?8V5eh`5Gp0&c;6{rFu-JK)@qXJ7#jrfq-r)8*65tGt%UQS$Mvlc0(#e zLIic+8at2Hj%gFgPUN^|l&=ybvI$_SZ3HeYhpdS1lE-AGugVMgO|C12FMOP^_dr-L zTU~X=w=eQAfyF6Z9uYZX-HBBv`K|8cd6=gDM)ej16556}?ZLnYa0fvs@iIdF-ShB+Xn4UR zqf4ErhWM>uH!A?U+ak?7xOOMUi$5zw42DXL)?vUw*mGwXGG7sBwq?pntWpLC0nE^b zW=~RGkv|@q;lG!wtq-|9Q9=wtVYXLz_kKo9 zc2^*EQ$_n!scbmNqx8Rp$LdU6&|Y?3@N}CH`{bZ8U4+ZSLHZ1LBCp zY_4? zFiMYNah4fVst_xC7AaC`+0g!Ca6y$By&K7v+h*S#<$ZWNat?GwJzkLP=(mhThC;G| zT3lKgmWP=-;zuCZ&EJxa>KU{n|%Pq)#=}{d34~sg_PXMj#z|L zQ_TLKS$h@-jg;YeABV!Z2MFZd-;3m!n(bUV(i=`$>M+IiA^=%Rk2T}rsSfKbYvZGh z*`BZ9@9>+u)cn^07WgA?2#SQb!s_YcBaQ#qW9xDH@u@K1lRZSzBQWkPj=D#kvSq^Nzq$RRG^$r5$7V<(>Gl)F( z`~x6kL>Sh~3HW4!5k+hX3VI#lL0D2J-xIZ(N;WZbtG9S{~s%5Z; zRzylAl~PEBv=-S?TL^fh5lQz_eTL!MUKNy49y|rP=$8?L^Stabb*jj zfJ{=iRMt=IFx`V6^SHae{2DhnyGVtRG23waJ`OMuE zc8$IRrEMEsOqA;r_GERaUJyZf~Dy{wN$kwm|eLzmmNiC!qk| zi44_E`OFB{9va~R&pisRt2k|8qV^`Z*GAzi>fl|WcsWMkgfkcWMu9~}YY$B$Wur6@ z%O(1c6V9nh-1S+B_YR>-wNTg*k1nvfuI(+J1(jTu-;Clld5zHOfHEu*r0;F#YzJoqS{@s z?jJwfOZ3BZeY!iUzDfjI9Ww17OVJ!uM4I`DohK{=+%dPi)sLJP31e;bcZ;pQ~y~`cx=pRN>7avl^u9#Neo+E8DiE zn95e)m~JCmZ!Qbn)HNORUU<=`?y!rg%H<+X=K54YlL&HtNIeR9$1otir#tGvLIW(B^`598x})$PF(FL__9@F`b&}~v zxVDQaZ(arU^ZcO@rdf-gM*mHkNFuYOCoO$f_C1K&q51)-k!uKL<%Wf_GA{$##f%G7}9|7YsEMs z*S2%PL8BbfNzP@n1kVJ+0zjf*_ZX*;K zmeCX{9b5wUnQ+W$y9y>cYYZdNDq%IRFB_G+pC!6Rj)T&(3TZ5Yf{(C7G?royZs|9N z&?9}e9cYc~9@)sePMa9$beIB!=?oOOkHq6$Vw46q%7HN$-q!SPE(FVpku<=+IQ`~% znMR{CM}hz4;Q)V*K@WJLxH+Pmonn1zU(KjQ`v?+Ibq#n!WT)!J9g=$=wB>d4=f>I&may9@e+w9_)%=K1{> zWEJ4cMIQF>S9b`9rvj^`Zh5g%J|S1vDS=9UoP<;y8blnoi0BPVBA`hxISZj(v!66{ z0+YG4@jm^dReG7DJY!~XnY`qL%?8JnPCz;>QD|JBN4bU6Y z8P~l5>Dxk_37G?tQzeK`Xm$nD-7`MkiCAzUJVCrpLBMtI$kwj#f6H<&nE6| zFIc735+Ae(S`tFKR2Le$W1h&rd<#W}cgzC$(5|U2Lotou-RT;^F6YKtFrjbp8L1xO zL=K+`eKvLE$L<+ofNTv`o&`+C>3#wj2NqyY(fln+wAmdnCnrX~JwGQeuyyNKI^LA1y+0sh z`_>$S0TYvzHNI-E0<%;&F+0@Upe9|G0>gl%{s=~tH1mK2+MvZ*F>zhFSj5Uy6f*)LJv>%t8U0JR^={}$^u-+n&b4ynHs`=1}P zr_Tj$IL6IrT#YWdIDSmQZuy*yjiC$UD*=>kF@?z-Dop)yd?0^;tl`t;X+1Kn)&7cv zOfi{{x;kZSFrBjtw?5>bF!~<-phEY?Y>}X_+$G-FnzK}cdJArf{x^m9O`T7#E+J1J zsjl%kzF)NQQl<2;7Kh4EsYLi;B}5*@aI3$TrTvl0EH^$MPUUtzzs_&6Qu;#sg=eZe z5?1W|9gODT$8=6#jk;(sn?hruIvc$=OQV*9r>>{us{1M?Wb%z9OL}ld9Z%p&%i|1fU5^uGR&v)^FzI~x z^UYWB=ZiAJpTlC4S(46{>e$Jgvq{KZv{Ri!*S+**@Lm6@&&X|VBm3YB{rZ@|Oov*) z0jm5lHQ6Dj=U3%hFOffW@%U8Jp5(vxrbdKM(x$%*@!g#?uR}3DGoS8ca_ih8^ZL$i zeWt!z?!^6q7M8B*A9cl8iDR{NnP%=mHwvhiuA1`*+-h!X-{*YE?cwXAwjs~MZ46UB z_jz|!fBD!jiSY`9nI-qIGTKy?pqVdeU8rx-& z*)d0DPc!SY%R3fxznNX`7rp|o4c<>o6LMokAQY;bR>f)$&ESvHl_V>V3&<-rr+$gz z(NMcB1s6Uw`(rH1hcNjq@S#C&aq00x+3_q*T-SJB-5sG-QC!{4CW#iZ7P{bMS84S9 zotD#AXMsv7m%hdCvOm8TUWq=7eN$T^+E1y)z#46JKUiT@62*LyMcwPUAv4fsM~AGL zzU@&Sk;_*$I!twO|I1ows@+$0jisV&e%71ke4@9T92O-eKiA@>s6Jdyj>>yqaOlLY znTKR}S?%1!{eJM6*$ixh(thQseu0g|6m6;ideQjHYAD zs)iHgt`{3RKhyAa1u}*O^zD;)c1$kJFzwj+yj9P#xAEFfI4B;xHh=JTyde)^tjjEP z*8Svu>+c+gMTK7vr7y9VG5L$@j~j`5Wn|jG3v9oz`|!rZk7s+*j^%Y1vY3Qa%-{z( z#b;ddUN4zm+~}LRzAj0fbgSm`y6oC6)1HBXTn=((rjuj5bhJ#jcvDB)vrO(d<*Yw+ zbibIJ`OI9S?ECXDlE^BNCdqroZuLE(lxxnTypEvB=^d)dC2wNx!qAb z7&a!!^G6p%LcTbN_nkO4$OqTWodW-m#z68*A)+lU*W|>ZXU$BPeB)fpn`aTrf{~?S z$Kt0$!d~%Il-%U{xT5MSQo+oJEwKvftYmK`50|9E=k(uiLYC{#f4D3WTJz$GIG3g2 zPi>a=WZvY`>X#RUvP+ICq*?FpbKf|dt%!BxDOh=@$L?=$z*NrrUS;rd$#M|3nZ*Dz z#+$mt$dTZ7IWq-6c6pyrTL=B!3R<=++^|T$^6T2WJC;+N1Z!xkt@R#a?nqc(O`r5u?3__W=BWor0dUrjac z^0YY(`DvibcFf{bp}BDIs>Qp;D4|lG z^6`Qgt%0kLm@L+fPDYwnraiuFJEbB-Kk%q~>XN*vDw}Wj24Ry;5{O%W@ZTk)!EsIS5A5^(NC6lD3C3Pzv59_4u< zc2w8A^}BpaxT1=QHd7pWuRcLxAR+N|;$Y=F>q_LwNHa@6o2(i1-SDCANs%;$I~u3N z=s0?HUlh~}6Ymdf-ZfEHjySV_>C(#|=ld#%Sp!T8^Xp?&@|SEisXrj}dCrEs$r%@< zZrfk9p|H17LgPJq_uOusYV0OOkH_Sm#EWb6i`O5fBz$b~4Jea2TQKaVa%b{l>C@$t zc&>@CD2w><&=cIA6s%;_`Jn;X{y+T()CZK`ecx2G$d>we{CE=EsT&G~HmWlwY;2A+ z!|aXsR|*SV+Kn00fKZKxvgUBOAsfp_&+C`4YL6TDfG!|!m_n)62> znU2+RZ3fLjlO!co3In4ygesM-bbFjfKg)p(M8rELzxao&pCovd-w%XF-dYM++Qh-z z;rar4Mrx5~4m=R#$URm3HAwv^QLx5ZtSxEC3iDFtD4)!8y=M*=U7quGMJ?=&EU>D4 z%%h(368_*t7{B|42>)xU_w*)hVkIMaZjm34^;WXE5r^=u>S3g~bJiSZusYVx-N6=e z(!8VebmYRxhYL|Y$^1vCGaN4(eb!eLZzj_Xeb=$;9(DEj*Q%r9o;|pFnWJVb2ZD$b z_td+b`Sl9do^$xuKEA~fc-1+B82GW%+q!k=u~0NkdbK`_>YcZ3#BXPomFnXFe&BlJ zxppSxHJ7}QPU!RfHl@2O>_YDH46rlXcJ%SOR=?awcij9o@5v~lT;}{p#Y>*~Ld%pI zpWFzMW{%X{{nZ~HmYiYuRCD?GlW^}oq1W+e6AT67P!V@)=?qPo*SnZy*vn2urXth0 z$V{hY)$=SRyFYnYq#$ox?lYAZlpbJ{Exh!;iH~lbUNEC-zU53whBI!-srop)sK|-C zlaQEnO*@6Z&fuu@S(z6}s3w*=3&uv`%dDqQsM8eb9HLj7JmnYO#;#R2bg4OV z<*L7*`^y(MS4PcGJm+tE`nilYvo4R&qCh23J$^7|a#UA9u;f^w+%s>Apq6nlZVuD+ zfIUuc3)K#a&t1#6eBz?u#= zLs`!&SOuIp(roKPw$;>rZ-d0s~p} z!_xMa17hjNtev=;XP42mk8b!o_M!6%HxvbLhTqUw{}5&Un4bNX>AouF7pG$QZWP=5 z{VaXgzx0I(?{xCp)`D;3`BRt{=G}Fivd_CEymjhMSo-kUBxhh1 z!E?y_<~_;2%rk?vacsk6gXu zaP@G!PoBuv;I_^T3#}761&4Ha^_D-sU~2PVijGzB8RO4o-Jp+O*V0anU*b3@JnBd(;5Cx9BDDn59(P!#8SxM6 zB;)MU!&o!uyzl8nk6?lvj@Bw?a$W>dv;e%wx9>6bw5qzmn8Y(x78FJZFk7RJ+Yx z%Ewu{iek?>C$T2v@!?8=cLgnD`DhK3n72^8+evSaqhD^887&xpAd?m2lsm)yLgbP( zUDT0?WL5Z`s2`J>%Co1PZnZe}u`&ir>o&i|z%)L5ukNhX?qsOuZcH+3W7fwSP&rRECY5!6`tyh=msaE1Oyh#eWPYO#2 z<=)oI^>~P#T$bGxEXNydr!<+Vbnx4?$b6ZG>i1_4#KI^=P|SVD{Pd%>?kO5YE)jIE zr+gkvZtyqHs`+BMNcWXEHQ)Q?oFr$G6Kv@A!dPmC!SwMx;)+LBG$Pop&~<#B4cb&V z@o>PpfzUSN)rF~iv!Wd-S@V)m#RlVT$JSQLzAyQ{5HuMq&TFRBta?03r;CZ4wW_6T z_I&(Crh(I?kO)xSJH`m4q*be;muu3)x&XW&a*BH@6m&g23`SL{OSFGb-t- z-|&38^pPg1?y5}A+p8+~S*e`%rz2OR_r)P*MLI3b3ux9&ZaSToIUQGhq$K{lO3l86 z&TpfP8ef=$v5&8?NMzhK9j+W0?%9|6G4X`jXp$V-3|op$W_x0JQgDID-MDweXmszh zmb)K|UTC{eZ_ozT<>clwo<@9-&Ro5PVKl~BR=VDa7Yt4u_idM{_qy#A{-sQ~Z6RKk zZ&$EDNmL4VJk5B3@>9MFbB$vQJb~RCG@t3cBL@>6Hf0V}J--%79qACd{{(MLy*1N- zNJGG}FAr|f*e_FsH^?-nrziTUMmcctP2Z63PBG~!ntnG?c3~e+s?xFj-31}T&qhR6 z41$uc?$U4*8ZhIfqkjvpayQ_e#eQe-o_Cw$lBA~my8J%3p6c7>K|R`fEWcNnr+d!* z=*N*s$%uikNBjBGTbGi(6#|b7iI4KUHY9Ge?fUVhEI(aO&~z}%q_N;_2ijzRY>1C) zIs9IUqE&;^*{n%K-uQKUFdy`f)2+`C5!nWg%imuL(eayjdKm}*=SnMC4bnyOX1%23g2tb9k>|j z(ue8Ta(WyXYiYins-a()k)wOR3+C#_T$_K|F=IHeu9)tw48LT5WFh4xOWxS0l|!%C zS=IKKd4zMaIL(EB-(7jfY9etUz1elo(?{QWbSDU!<75#tm3BYp_+06nZM6nucByGf zgr7cQWEeL4jx1PFll)>z(ZE4XH=7c!rBFIn#a&9gavsM_PX@2(-_*fj(tO924xvsg zOH8T77CB8Pe}C9*A&`$MeB0r5&Y=(|&gDpy@HV6BSYyo6lszQ2C=`rf{o>2qyTbVW zKJ~hi5p$rN^NWNNH-)NPm0W`iVMhkVUG!4Z5#P-9S=moV3RH|)y-zF%pL(}DLy2}( zxNyxOqP2ZAr(o!g=!iYbR-RXkfm z$U^C)e!aY7W~t$zw4-;V?vu!@%kbwZjy`ND%z4xYMZLor-{a2aEtiKM>))flFC+WF zg-&Co)hs~)JEl{6i|L%`Lyp=yICmf&z8bv?pSUN`KnZ^!+uF6D^}@G7?$K?tEwE zjn_G|G>j!*Ubt)}r~)f_=pXv6vG7EiUHw4FnNyh=2pa>}FP6g0mEjNG%hSPm&*d-= zep*e*x+pdo>FcvkuBG7uU()iQd>3%l5Gw&2n^sbfmd*)OxPQ^1n#ASPk9dhAz z`M?=;>vfBUK=JY9UczMlW|^0XNu-$Cxvqi4YOmL>L5MS#6eBk{F6|mKSB~-?I^IHg z==q1`T~bNQ0&4q-6A41C(Tk-?JQ=57`rXI=WFRJrp1V>;H5Is-$`tsnulUmZH$#1e z%gaNDrIL&Tu}`fuR&z>Xr8=kLXF~$&OujP62qn)Xc8F7w*G2x6ys9L90A(7nD8E?| z9{%{}iv;&$7q8*PPF`iuNyL8&Vd?BTu=`H^__v9C&(8d4|t6N#xX zmcFbZR6Cv2a$g;X#3T8=eanGyEu$5C&oxe^#Ory{Ff)EhtGU*HHxGp@PEjz?b5bAR zy%#LCzqYqS-b|Xa=58kUYeO3zhiQ~IUzIPSWoWQk= z>aMjn8JtJX4A6tU&otdY1P3$8S5BpQ2=T0faJbrl&##-Fd-zYEK-p{zm zXLlEQ@AD6eefHn#pB`#Sm#L@B8GK2_a58aku}^Mc#caxqQ=QoWE$wLu@$&;c;x6&@ z%6H`&jHdG&&RNC^7JPT}NXZ!(wOT_@@z^B8lly6947sbX4ef60?`xiT{T%)9qUo{5 zrupNC)tqWG>Y^fl$Yi8_Me&H%xW|5c`J$AfCpa_rl5LyLv5OU4uRU$uSh7-Ypsk(i zKfC8!rr*B}>ov{2d;QfXQ)Gs}^h67>m#Vc_c4{yB$^1=`4bDuv%l_@&(bIgbS6Nit z4Sf3=Eu^|8m0I2zRTaH|QFA`7mdul0*_%Vh1I?VLpY0&LyI_7GLojVRxk4^|_W=3h zW+C2h36bxfNpK#-jiFh<(X2izYuO)E&_KAYqk=KPAsBwOBjOXk3>Q?bq zF`M`s`gSO4KPOC5TV{9BaYP7(8S5_6P364LnuFt=yYye%%+Kx#q93lV?b%57a}QAO zpMAirAGdL%E6_l1W|-{c-S;V&1bl-e=0IV|Ca#kGB1d$5O^Np0?&4wU4|{yk1A2ofMq2NR0u{^P<+4ZAa_vl?_*Rf39ggJ)9dAVVR(etC%yvtx#8bEYk4Z%r(H2 zKRsfo{=nrlhtJePk;WOT0UFv+SBLsVXWx93%gGC9fu@Z>;oH-+Ki6+}CY2VbZOlFC zeUnXofl*)r&xZ(7wEq$mDi+FMq%>3%S^3J`C(K@_g5`F>0}o~;iNm@-R>IXJ?q$!5 zsgLqa%;nZI3rsmst7obeQn=&~zBOUH8*_pGzVH#F%!MjvwaM|q^OcpX4dsIxnI+U; z=UXqF495AHW>qC=MZkwM@BJ`}lW(~IuSdVBulu=r>b=Os7an)b2#!Z}Z{%LTk|;sF zw%=cRs_U(A%m-&B`N6rAv6tVDv+IoWx{Dtup>Vdy*mY%Y^j!2yTh^g4v@R>P^jrJ^ zSaPqRcBrOiT+X9iX!1Mq{ou#H9Bn#JG{uy}UFRMv%6w54o!4`dS}tc~W9^ucvmxf> zYzU`yr`qZ`f1y)gfj-#fTx->$TO z&fcwYG;^udvHJc#oy|8Va*L#^KgRU&h_0eS8%mzRrJnpmU)H~tC;z6@QuC2drWiIW zitV_s!mY(5qz{%l|3sZ}z}XFh!H_X)X|ve2QjbGohcsTieJ_(5J=H^w`f|olT~2N} zg7S%z-kfw{#F6%v27-~wp~Uu6q3zFJi7tNPEK>EPt2$8FU4Mx=;^lGf@b*R`Yc0G- zNiAFpspB;=JK`X=$;Gbfl;AD=MclcYZSc$80-W_Z<|5hwI#1m5!Fxy8#Q3Eyuo9^E zHkg<2`ncG*k85yVH`Q#nlDt557W0}4;S=qD<0?JuKz5vI=lvT9Q5x^N75gK7?#CGR zm*}sVODKf$m+U5A^sIQ>Jlgnr#Y%Z2mn*xE&f?tI1yhqV*Pfi%6r^goA#u>0`V9m5 zO%{*-0)x14xMS3^>-;!s1MVMg$R61`AAL}}+N9ybi(a4dk3H*$lM!`HSv2LfwMM8s zcNnc-?#+5Z4V1MfkTqfAt|O0JR;%(b1Gt8o)4ZP`(Vk^*jN7KvaGw0jP*#l;(M(LHE!bZ zeKY&J#~Hh7eO`qnN;Eu;lN&qR`0$9FpU{wd3d49rO^%Fh{<^qG&@*JHo0lFleNO6_ z4EI+)u@606dl?*1uZKG|p9f+tHo>zE35~E5r|!rvAT2MRNJ_liD=fa}^cu%__MTfO z$gFlJWBF?{Z_~Hjxk!9TUz#1Nds`~@n1k~T$Lraxk$lf4d7s%RR*XK$v;H)SL>kg1 zlxMgeU(c7`&!4X(_W=8-RIa^9=9SlzF5ActWS&QJ3z~`XO=Q%gVPS)|4#QbkDdjR}3aq zbnI(BOcq9dhpv(>w?e%Owukq7BDJWqv{`kBM&Xg^T0WNtWmdLpw?uYlKIE;wa;Cg9 zO675J^3AUSW+8*DwF~Ei83TBV(=KCf#1`Tnan1*?cV-)KUzr{$4b;HAzpL8v=);Sm zs+IJ{k9)cYhi_929dsCHXeIw77xv?6`3xTy8h-P(OG3BO#>F2@W6liMqQ!>}Q6FBs zQFg%N&S`k_{W?)PXa13sW$}+ET3kIIm9z*J9}-U$UNps2tWSPF`$a%~#9rRw;l1QH z=k$H%#AD~M^58&YoC|CtBq3@ubYMF2#;QWPWwopmlR(UJgc9GxjiiR-1}sh;{U71cYDzu+twJ4X4Lc-vfY@@iuLvOG)G^NRtWG_I5xoZ?Fq%Twib zl(VOPjpun-V3%mDu(^*b&t6FHN4IUkPy{@&;RBVt+|LOH9VF}C7tXhD8q=_!F@Z%tnuW^Bp5RoaUd?xKHwFyiu6 ztqVzYygK%evEnM|cm;Y}mMR&O5cxHtQh!`(#;e1vQRAgyUcGWRDJINX7Oq$OrqE2I7wLkxGj^wW%kp$Je_SdQDoOp z*VjM4e0pSfzjxyCIaAA#MP_}`ho;ebH$U>KMIT%(5Ef}^V4Zx;zc<}tOazx2tM4t~ zRQd3;!m009bj?RJFE(E4Dz*ICTfDX~tK#Oo9%E!&R`J_fS#9I0|2a;!Ip z`KmYWf2B{8@W@yBb3p-TjEO;T>hTS?vwPA@xO+IB>&7HXK3Pys$#u=U+Bm@q{)}h( zRrhD@o7Y|y-R+MHDc~&<2u@B|N+l$i%&N^=(^89Y!@x007kBPK?+5;nMO?MW`X%x()SolS;jf1`9#q%i| zwYonu`du_%X>ZIQXEjl~FERfJX3Y2i|3#QiYC?5d8y%zbqq$AxOLUIt`75G2_018^ zTv#sMM;09k!uCRzCCEI*h%xNQwY~csVsadY`tjN||>|RD97yOgtQWFqhF(QayK5 zEo{invau2VBAKZ(tm&MuDqhDX&?s)NzY@M=Jl_lL$3jefP zJakQQJ*hZrtvq%hY1I97x1(3L!aM_NrgK%Ofb|}_$v8{k(UW8j8`)KYWp=)S-p5Cc zKkB{Nzu@1MM<9|PIu*;dZJ<2&?b**@)1pQfAZjfzlyRpwjqteciG4-ORBra%TyaXd zomzlPN3}VY_4CwpL&1r={NT@e>_2D;Z+e*Qv4Cx?RWKo+NHCzi;QR6<)h%8mzHT*0 zS($1;RJDoT=U@hojq(wzJJ1k%(87(@E-LxcnI$u2WlY3obYH`mbLAF5Yx)ZuTO!Ls% zB)*EQp?Ur8skD#S*|4V2nB#ID4__v#j5OGM8oE8jU6E;;Y;O|{Un~;0w{A-bs0h$~ z8Pu4cScDm^p;CPlc|)7EpD*ESp1WaVaZc*w?c%u{5sp-Iy!_qe_I$V4zCPMo*W2YS zrjNW20JUn?$Z>7kJA&?!k#&{rN6^AIs@znk;ua=d#;rs;m=1-a`=yhg`&BLhxle>nea?$+U%Q=0lC_5K_8 ze3OJvRhw~i5RI@C*OU2-Lg)#}7&DiVF_U}l4|)bMiK@LZPwG{;bwoz)y^Run_*t%I zDE`J?gE_XZyN4+j&?&2C;~eg{qUShE=N}ReUgunmaFx`*a7F0HoANc5htb5*+r>so z$EB;dVk0CBsMOR9@9me?Ubc$P*KgsR**Amjc=W*h!8xuo_in}Wr0HEt zFz?_zR(8jhUgjr_Rz;65P*oHIjp$TI}hgWOO~FY7Nsu6?}hpef%49?lSxEY=4d@oPs(nTB|AklPLZJX}OO-u7#~N3FtTLTx(YTzpn0nv=z1#S79-)}+qqF>h zwwnU*&E6E&BF%{ex>|-83T&kf;3T{g^Ocv#r(9EPJ7#bWo2Fv#Asj(%5w@rur}WT- z!CGNGUyjBjBi^|dG33e3A>Xn%V;0a~H9}!~@KO%v?14(eaWRpJ3G3a=^b}vB`COjg z)46h|Y{ue_h+?nVw7c=E4Sm|aWp_uLKsoq%Gb{KJuf%l5n9{QD`MxT#z?bdfE7tVa z3-|EczrEb#v};sVJ6)dPMHBdMDc$wQFs$l?#L~yPt|MGZ_b+_qq!?9zlZOXyP?lQ2 z%#hX2j{@lY>Uj=4VYW)3SlFX!^qJTdj*~BYe_O>gFV{!w%tpc-9gShjwa|C(x+u;v z;_tV12fY&djIA6S4GaD9WB)F-(F@v5MNh1_%TlGZ(%A0T*;%}@?zVK|mPqcp?+|jN zVMyfl@}z}vPUqBO5+=Q-x1VfL{K=G4TB`1*?dQ6=TaDwJkp<0)A6U+x6uKWHgEASs+)W3oBMbx8xrd=6S@CvE zoAtBOi!$Oj+asUpP_X3{8gL5V8&^uN?z)zI$$>un!w78BGt2R*i0GABuT!_prunK< zg)|$u*ajEcDD}-6pKKYV5ELIqc-FUu)2FPeI2bj%a8VD7ZA`T$G2 zhpV5ujwh>cIe6poRmJZYzlSKn4+OE3&r`v&-D86_@C+L!Ve-CWpYPq zjo&m}7kzh^pEbsboMyn#j=1m|?OFIZ(bW>!&3d@|;~-Pa)!=FbV+J8)c*r5)nf*7c zZ-K#~^&jzTE3A?NR~sMKpVPGb%rDw6U3BJs%G0(ZN0R`B%U4k*6Mv7OD)m%>I zOj>stteYR8aGn0#TVJrEpkdzF5PIjn@=C%dGj5S}+~uS*nj%6k2%REXEJ0FIjvP=<$s-y-LT-hDHzAp5oSEA>4`X-^SH(rJ^w zdud*^Yx+JEaadMs^K)OZGfT|;!Z>yGwBG2$yx5|%1m&+oJQ3%7X}Tp@jw)WgyBAe* z_N-!rHq!1)#bYL6!;({8l%?d|u)DI)s2BH@#Sbk}$9o*s%X7~9jJY(MM#-(Yzfpwy z$SCUVtjD)H<}jbb-e25<>TwPW>#5_;d1N{5JI-&Ils{Yys zm#^Hm{A#{_jZESVW$^;dodY$2)=^!V;7^f5ZuH1fD!WXcG<#1el#=CoUr+Hz-0a%<@20}?`&%rYIPzx?GBIfW+k2fzE;;# z@?rO=%c_(5M`w<#WWA@I)O-@(d!15;V*GEI4$AGC>q>Q4(u*E$o0#7Fbma1Zn5il0Sgi-`qIdQhlyLM;^oR>%Ink4)J<^tH z3oqs*Ekn5P{$GLVHO&oThPR&2Vp_1B*_HdP=!?%q0iN?OUkiS7z zyY9K?sQ=kJcg9;8ZjA@OAiDBrDc=p{!SG}3dk4g@O_MVevNyfFzQ;&CL1dAY? z+Ya^3eiXgCc{-`+m z4Y#LD+yO^U#Pxf|<(u_Mo5^3izoF8)hI6gccY&w#2*$L&=N|4lCn__6KWIVpQTJA&n!{s)n?(2-jYu`7- zyX5sU4c_Lj)8kzku`S68WHJSS#B#+nF&agQN$GOdPa0H7LsUus?eCmqRLqD!jVh(r^V&T>+ zF}IO!@?qKiVWdkYOlNte9Y#xY8xGt0RKQ_68LJ>CmjWcWJ|@^;q#wou;pvC;BEa;~ zC_f~Dfbk65%0S@Jfk7BNnt;FuVX+vj7a{~h^hWrj{c-p(1j-wY@&%bN0@}|LK|~XX z2u~!&5A6Xn#NiP{ZwvuJK>7#xp~bfmML7xgFd`a3AmX>X^7BKuqY*&_ve1lIsOE&z=` z2%3q&1paw#Pc&5VI2w;TDCC8f&;&I_|Dsw`199+woi|+*JJ%f(BZAOE$jJpER1t~_ zK_XjxKw=TVAw53`^7-# z_bhW9jUj{OpGzHkTSX6Bzd*K&Hjx45EJEedK$b|uQQAq)n)-^a9;-m?qVlB;9y zeVPJxch5%YZe|8pQ={dey&)Z}P$*qouHDBwk7q zg~WT|r0{4j3}EIkDFPlPg~58DLnTpoB-jX&7@UNRio6QSQyHb`uHdeqpyVm#jz)RQ z$x28|%E(AcZ#4e_SD~TsGX|upQzTps{T$LYUHCx(c|LxjEubVBoU5&#nb5}pRqoICJW zAT0^tKTnh&#vKqs)MbGk0sU8lO~43^1MOIpl(d4Uin6?-r?QHiyR-^Y#vLu=iBeWj zlt#(k%@aS#s0WT;;#3M08f)wC0P;6EpLV|;x5vABRh@TNh*A)#T%J> zB{UWn!u-;Azv)5Zkziarr~*6nYrH?^ znyq(5`9gdB*H+(V8!*OAFoq*|LbM$C8@^`;?gY}*0H6=4jU7lsdE0M=AVBL%D)R#Q zP@g2+8>+VhuLfzJ9e6%SLpz;RzZ0Z)j{o#;mg z1)LI21>XhV4bvHfO61|xa2hx*oDNP8XMi)p!JdUP!&%_0a5gwQNOQpVz&YVuaBesc zoEOdq-wWr5BVamtsatIY;QQeF;ezl3a3Q!b{2*KeE(#X|t;FFHa7nlnTpBI|mxas0 z<>3l&MYs}N8Lk4;8Gzbi|9C@gP43oK+!BxjhAgl{;Fb3S-e(3+=tJ6SS0SC521d=J zhc;ym___x`@K=@lP$u|54+t)RFBH-b*hvUC8#E!vkEp5|gbl$X0}hI~A#hj(5{qyH z+tm#LEVCdq)b#gI|8!Slu!JB_PYeo!#)9353_zkVM4)h=7_q>>9K-Z}?~jhdItIVt%GqP9U}oi z000RGE4oGJpYA#&9*+zQMxy{7N|K6Obda)KF~AIk)-lC+n+8=dCIik-bi3OL-bmiZm%H%j0e$6!Xci5=q2H{APvz=!l8X>0B~U9djTf~a3vN8G=?7$ z16&jY4tOx$XoR~T4&{p=V2-0<^I#m|9qp??dr10{`g=vT{mvwfvL!Kq-r4FMaqzc7 z69H}X&9?WVBX~mE&;vX{cfaQrvLz@1kot!9351(SSt3aL_R6oek_e#vK^hDXJA@+| z;)1XqR%pCG2Ka3_tUelxL3`-oz|KPv0d9l#gdD7$83Z)(FI2}J=xMYE=;&7-+C#^~ z18;)0C!nDOD9{N8ULDfi53P&G`J%B_fO&NM@Mxq*m_aD8e+h?iL4F>((8T?6CQTqu z?pInL_;Yp`f3$~X5b-b`aK97qUrd18gU1I2fPw9?q=_=Xd0K)cz(dvrWZOY|0FqPC zlMVnh_fS3!07!E|PbeRnPpA!44yB;ZR$G8IKHc1)>_-&Ps<^VCG{%K*10dMa;iiLJPWYfykI5eJwFhj#^A?+^|Py$kdqwE@~0W(z#Goq7L?8l|`V z=W0|OvK9tjr&IOO(_@CJ~Ewm}+TEy!9S zsS*&vMIq&W!8LB0~O)qu;002T}|6=$u1_yg^59v;6G z+y9?dK$O|AY`rIGJkT5P{E&DA=*tb1LHiu)6UzS;4g94yVXz2L4)MZvC=sGA0J0{x z>Uu!78ldYUr~^4O|D+Bm1@aA)L#8hnA84+BHqJll=Mhk!8`NI~Pe_GO+HR}o{~|yB zvIC9(xd94jKmZz`Js%4IG7m|3AxJ}VNBXxjzwNaD7irygUhNlO$@?gp#uRdVoR$dLcBpp9x}~=nTy8zg+Wb$%s?ak5gvf|Knw^53vgh8Ie@YL z-S;FAJ+`JBgZsrlpsya#rwMra0(b0B=5R;f(7O_#`4T_O0y6`B`+zxtWZ_?O%o76+ zMMAuBV5b39>50a}PJz0RtUCaJ3_uaUN$nLudr1G2@JfI~^6RhuLLig-A37WW?IBkW za*d$==6Ce>6|`pnd9C0{TE8}sZU-O<)45*(EXYhofWV%DFC;>LTdDrv7cuC!mG2k! z?=I3`*5eM#DCEfYOuh%+07Ut}V8y~Zz&ntvM03#gPj@izqzK*;GLj0CN?Y9If&Pn| zm>jpmenns$Xy!?HDM&-yMZ#}@v?74N+#-@k2^`d|Gp4`l-ucz`KQN(CBymf$v;#U# zLBCf4Ko-W9r462>9o`DkkW);;j{p{u-hoR49I_Zl>yk#f9d;z)sei-0zyh#<`oPUZ zfCc_#f6On)Q`d1TD1>hY9fJ1&F5;~0kho*nE+DXelZD$7^iJ?7y(Pl2jGM$1z^mosDhKKEMvy%K1;qy(X7`lzTcT z6q-N)vrEJS%LlT2!AXv!G$9Dc4_BmzKM1QLJv`7JJ2UX;U|_y^>?qw%{>ld(p;DDK%J7{15lL9ahg52Rg4co)E_ci^=E zN9@2MyB?B?r1~0vE6)YE04V==cjoWoaKQg0+sWB|n~#)%=KT{p{CD5~OE~sE7zYZ& zlftq7z`4+bj4zOfK!MQlf8@O&LyPogAeIFBwE+E+0V_xhrgO0k?Bep>U=m@y;Ok$p zWucXY4nIIguvZ}c@2j{LjC?U+d7*3}glOa#pWGX`|z0RZmGZ~PKSLpCU>{0c}zGMVY7$PesYd{JLAE?K*f~&ii-gkx9O4z|1Mv$4{m=w~4+(z_@c(0^9n>8Fbx6AC z&EMJ&0vx(~^1F|%*y5H)|66*T0ey%85d9^sd_Wr7;X852rz7Ez{R`RVB-{_AAzO(g zjkG};YQGbQ+LLe{kcQfma9xmw+KU1{u>{X&fMzA|v;)D09c%#(3IVf#cm#Ci1xo-Y zUeGx^FjzqB19-q5hyb9-F}NUb+tDA12Pg25(Ev;taHR!}0;VB|Y5?8`76TMw-RTHx z*=*e(0|(F0Wfsyg7{s35$YAvLH5YJc3^EH4A!vjTbh#x2j|076AiEXR!w@0e{~Sn- z4H{?xhQQZb0Pg_&sdo8i9ts-7Q}H+~6t0m1X|T-z8DL){{kDTOs^BILz(M#X2n&2T z5b}jWhETL01{?R<_6~vpodN(zcp^wc+)cu@01HCgNy2piF7Y=U(m|whT~H3K@_*xf z!KF-ath((P_jzx7jPqbDh)YN~bdgpb;J-XFU=<=DI~H1X90Iu|X^4PDwmbS&36kvY zNN~{nD<1@CFsQ8~Y2^07DuMu9438k_jtJ5d%qU<#9CSAN_x52Jv>&iSN&QIvy&RHr ze~tc|W*r~_5P;@im!P&R5-6^=wLeu6u-!f^TRQ{oA*-Muqw@RW>VIR7iD3cY{v)`l z3-pcaw(|>92IG4H`uqVXL+}d^2WcoOLBbL zk7M9H(g9Eb*olKc&u<)xRPDrX{S7Y$IM_yiyoW>3z;}cWnYUkJ=gWS3#)&u&7>;dSi z1SD<7!4sNWplDzdAUz3S3cB+*43>Om>(1XtkoEt9)18j{N2mMWotpo}c!zxk{X_`t0dN}$GS5jk z$;~0*Bsb@OUS`?4#RC2`2D)P4>JHt919$5WV$mVcl^_vP`zD})Aj9#`=V!<5CBi>m zUiwoW0Qwf?jhB!GH(0ls0EtI=OM#X7|JZvIaH_ucfB2w55$7C^c{oXh%xMy3s*rh1 z$aoBy=Xpq!B2-GEqLKgFz(f3jXw&|3zLHHv&DcNie>-yc+UC9WMj(LC1@_I|dd4jLL(7 z4WL}m#Dal00Y-yK22O%=X8)yt(ZJwOp9hKCItRj#4?0n$W%Tz5Rfe(bLk+>7=NHUc z(4rCpH^Dg?crfq-I7icC27UtPXwb;OpWu68#&NJwEz0E20V{pX>Bj?R_HTmk0lhy) zdeRV>Is6hjW-Qz)hLQ=IbswS6+cSd^hX(CB^F0&;X3nE+TAC$*QJFL1--a?^4*wP~ zdWYzTx?AM>QT?VnMm#pScjkL7hHz*}h2f9tC$qmT9sgI}EjHoz^Hy*V^b7GmjHW^`b*a1RQ>n z8rXqggC8~0@niCB{J8Z8c8pJy*CfF25!nShCbnc@M_N-8I#M0-She8T8>+hk9gk-U z`M^=5J6G{I95cl3Tx*7-%Ayf3PHjT`n-vkaHMI$Otx47@q1uExBX^%$McM@Qy^dX* z-fC;4R)mY5r|6grb~bkjZPeNK+;G;zp?IBd`fqDlQUDubIx5{RX^m@rs_T<4m4(s`S zXI4~P*}p!we!axIQ+4avqFeiN9!;!IFsu!9(ptLV9W~&}GPx&?N(KTEr)>-Go=t@vplsOyyX=1%y?Dcy)Vfp5(hUg;XdJhZtt zNYXoMr#*DpYrWpRr4}CxW<~4S<&|GtoLHt8RF|Kp)ZML@u6mz6c8jq7Vb|EZT*9XM zH^NvD!Y#zr2) zuFY#)?`*VoJo4EvW^|*^l^MSIuM`Y)hHJXIKDZcAN{2FBbl^sHe(uEzc6y2LI2NT&>I0 zCmI)8k&U)Ds%zL=L#oRx4!Y z?zXZ`oxA#~wp^-h*84l=`nk7k)v1?y?byEA8lHY9p^~`7PEqf{fjng=JFvl8r5ks^ z&en|FC)9D@E+S~-6aNN+y|u~fS%woT_C8$)bl<3NwZC)DUar_J&pt$`Vx@KbGkdaA z=PaMRIa`XN4JCDEXl!YI=_qG8Gk8lQ`D*ytS!cGyS@-Z+>UL~7f6zpJ*&ZGT+iP7B z3I4hcf&KOZCsJb_7GG2y?B>7d@Y!LGS4Vq~!>7v)>#U!PI({`fmSR<4=2*6Pr+l%| zPWU>cRIMehJF;fkB!({g;&^+^Z{f3=MNVITHOTJ@vU3WLS$ln1-Cn0=yL4G?)q75y zDi^;$t^4J)lkg}q(O${<3?VVQyPW3yjL_l(A&4-wDL@shsV3u znZ>EP+)6s{wLjh8McF-PefY(bE)yDBo2=fva5?57{e77%(e+-DwH-Cb#Z!8!fFG=y0xaTX|$_U)Ha0ZaZ{l zcE?o8x#%}#InZ=_e^S&&5|1ytxs^cr} z)4V)%btasTisyT5et!K|lKXRyGX0WB_giy4&l?pNzqz8}x!Jj;MW83x^RsHxybkJF z&t{!Gj}(hHo}5;7TIW1@x2AhVJ{3&V+Zr^>Mwi+hx0U_m3OSX*i(BXJNm|L$-@Dad z=+ur|3&p(@t)#vl3N!br@={icvrP6nJ1cJd_0}6+GOm7G8d!(DmZ@_rkG;LvJApIp zwtcz1_v6}?hbuGodEXnor}06h)_cX39~lc+$GsN><)~WCSN7>Q)~YW$tHh-3HdZ64=v9qgvv)#u!%=80%d7te?Qr@TGk?ZQ zU)h*z1DTyfztCJS8CBtRewo{6Rj@lp`l*v81J=cq`ZewM4#FQNA7UYL6ga&BXTr^Uud}0w?4GpMBHLpIz-7xa(`?u6p0Bz#^re{ZaZ& zfgBFeL3@l?gPKBZA1QV&587rCIOFG?pLNtQ~B7-d-JP8RtdgyWAwhcwWE|WFNWt?w=)vANy+Knk89Oq3so}JJSarfEB zK|2*6a+5vGXyRdc$mjdKo#SkMA}KdndZ~YtR*|d85%kK4-WUn<&Jr z&Jw!mwa+DHuKN7aSz(7_3{s`->M|e1lzz`%H7>#yn;Sw%R_j_3%eJ3zc4NCwY^SY; zzVX@Pv2B5mMBZ7n#Ac+==n|Hh7gzZr!Pit(D^5CN!Ts*K(72_+#cJYF#c_Fc{Yk@( zZ{rx_wnH#}MxtR1e1eYuOQTY3UjgQF>x|cc=Zs1E z{6iGjQHHqx5D90@PVJ;QsyhBYmj!NZAl1?S@0VhJU-EQC8(0h~I>x`9LXHxSj9ma) zkc*Q)je&eae4Jqu4Ev{oR2W*k2QeS_sQ|Eij`qN?jWDV|+LED988A`=tmnf9kCa^q zEQBe_p@Y(TX%Li#WsJWS7XIW&r^yu6olc-&+zfWlun)(01{4-HqMU&gPo>`?>}Cdp zz&2u#o3|e@<(X4+L*j5WsubG5Fmf_NCALIC&ePXT8hG|JkcMz_MQ<%A1PE71_#5qv zA`%B)AV{Ly8~MBV`GA!76oO?L>>-1G?|#BYp(`q<-;qI=KnTK)?aOJ#w2i+&dq@%6)NaD=HaE~+Xeiv?Dt%F=_YQl-J~6@-DQDWQ`d zwhxYIzW5c6C_P5$q0J~1cdGcnPap{w4O|3Am_kp5rI$282d<;J9m5|hRa6Sto2EKC zf}bmdL4r2Ha76j}!bFgofUg6Lzy-9-%)s9P&u7BF0Hft+hChK77wTbPR=~{RIRMKr zh35t=%Y@kgV{>DA{y!jngx%1z6y(lm691)E0H&(Vc)AoKkdB zM*Oed0se{zrEm)_kbOTmw7m0Q$`ft7pcOuX`q zp9#+dyp#!}Pf>LmM$2D}^i{#1Ie#6%XxWqDZwHt;e_z0;>0tQ#14i9C0|&DG)jtR@ zb9n?$^ADMZL#N@eX*hfuj+lm@0Y>-3SVH`79nr=ID}fD`3ui(zKO4G(In(l-3r#mC zylXCKs{c24@u%_sH+lZwIRDcUKvJw!XxudjCIm-h1*W8k`JIBps~F%9PdM(gE__zR$~L46SeF9MAE0tWs7 z=gj^;0W;^%IxV~uU^FZRL50D57&$zap&riu%TJJUZo}J1-rs+(C1-6rpq=8~^Xts# zCx*_%gU{x8NO*@w7RYLg^mi^7D$@4dAv`qdlsM$^F1g|duf+0AEA@tJ%a`x@RFU`n z9&zh}JvX_`PVKbTJ%8=+mlmO9;}*99%`3+`R;4O-rbSR@pCXH!vdF!^klDPbmqVU( za*k=kHji`7mn*Ngyy%D)?o%y1uJY;gYlj1_5pUzhDOGhzz2Alw#|e`9!pV>{QFpPmgMiqN#xVM6)XMb)bRWqidE0i^K9f5%apjA zT9Q1MT-()}b>WG~XvXHXEgdW7?>hKw{rV9u{+~g*jqBb!^yC$3KY45)NVeZGFH%k2 ztw5#t$tC0Z?V@EzTQXg;#7ylMXzk<7&*i_hF`_-8BepHZIEQO)`8%>lv90stL#{Fh zySMNYsjI}yhdQ?vzPU7@V|szCaZyg-%p&6lW`_GVZ7obYon2$iqj@s6^m3HR;*Mj+!E{c+30|nQu`gS8P`%hzyfW;=9bPHtw=s*i6lGcI8T{I}^9XU? z5s&)T`l2sGT#-L67aR~;!(XWynSaf8bD+H3{zM&0!@6JcVE+94xwMqsT1VJO>*nk$ zJN5n51^uq@vqyfd6rPcb4%!u!HImIrL5!w9r6LbnkF_e>yc#- zs(5_fsfrdAv2d^n6w54WRS4Z}?96YqOT~}%&9y2^p5Z&boE79`Lo2jk!->e%ZL6==bY0|E#)>0K)Ur(IbA`ZJWjx^E7k1eOOvm__NC3f^?eW zDKSz@;!f!?vjg=f(kwWHk_5PlA3dq8KYe!g_SR6pb4PgI6$^=NdDYfl@c5?ng;Hm6 z{PP-{A_#*%5^XE1`4Q)+ttqPX%@kVWX6-J7(R_ko(De9{s5oI1a z+9YiGa&P&fQ^jXzToSA*h~MBLFyeLBwBO3|$X?!qiG*37B4idkE|lnKj|nDP%~m<_ zHog7vHqOUN2gl5X)_H&H6$-}>V&x2!g83gpTv z`y%qdz3A~a5tfb!o{<1@niPM*M@!8Id@6BHuQG0NweBGMZm?PwBT1#P*7kUGrJfXB zxGMa+qG)^{i}zKkXv-!3#GkUG!=>3(Dhr$p`HO#$SAE|gWo~5WV6oDJ@}+pQn7r)M zt05dQaoUdNI<~uY1vV{sRr~$9V)jG9Gs~k_`|vD!G8&k=t32&OI@jmXB^2>1n)2x< zX3GRho#Oafd#zpI=iwU##;dAs?GS6Wo0ZkY^X@puOET|3N$|eXyLO}JiL!HEdz|_dt!L2} z@0TfcQAqMxm-!Xz`>I6C!_}cwJIeM@QEkVF)y_d@&rNQL=OZ1xUia8-WXX{$#4_cE zrPji6u0EP(cdo@a&ik5n+^&Ptcxku$OV9E9@6~U&8pXtsI(CNz-sM&(YEhV()+IkF z9RGZu?Tnx=$;GK#*N9fr_}p}~^d3o#Jhf7{JfuI_M>>(mre&y^eAW6u)i6=HNaVwN zR*#mZRZbCMV>KGKgM1cdtkj4AryjY{dXFZG4S9#jk?gbzkAi61&|r#{t>}|e`fu0l zrJ9aY?tW|6iRR}LKQ1(>VOV%yXT`p)P~2mE&ho)NmzzKAvye39o!NU{)jV#xPYg*EIwJCnrux8y|yF5l}gchR9) zACIjN?C26aX!}D$@Ok3;nL}~1yas(6iq797yd|!f`8YLu0dYh7+I0pe-5>NwJ}=*p z{zPzAS>uuB4`!|6m)mb23p~xca`D`a>jqv%2+GEK3fAl(+O(b_9e?K_oxWa?JAHY8 zP$W-P;Wm+rl?7hIt*u)YQxwh|_;~o8l(Xrs^pZClKN9&v2H$*N$#tZc%i#RsVjkfL z85^Pfa;>H2fz1m$telPa+tyi-qN_OCVh^TMGIO(1AF@{pXDKxE zPLfWAg_d?S2l~kKMWnvgo-8yS-8+0CeB}BKQd-IQlZmw=H6kA`Zt!DE&$wpPAa$2K*=*##$E#`{Pu^%uc<^e|2FcjgD6&Jen4#0esC50jIhU16#x&zx z1mQ}>rsK) zuh(Nt+neJehx6C2DgMdBF`!W2D}Q71_LW@a@rdu@&62};)M_QS z2{kUhvgKD1OM`a^uVYtq)VVq4`vvN+xgQ_0CuZkm-YwPY7yBBVxpr%hg3#Odp)(e< z?&`LaX;)4bALi}pUvebrLEh!kfl{fwxEf+>M~9Q2K8sDczESYf#z#UW2Jd?oJ_p<4 z$Jb<}HwRHZH=FJ-4GSuiWK}`pzJ&wy~Hi&$9CfX}~w#YrMN8RwpBX<6s z?flfL`Bqnzue!F32KkT+4y3v*@mx^TcT4q4&BrKF(bvslyDAeNRH-=IvRWVH7ZB*! zINNzy!PvL*PL|@=WSe2vh}PWX)tR4nu2{~aB=&Y>d+mCCpRre)XWiSYwOBxC3EQk= zzSfHT=Z`)v%rWE1c>P$dA!eb_LIEX_Q~UbFG`b5F)h0xBFGp;Cmw38LfMB}gX1&tJ zr*~`5B^)uY=V>ZG(WLc(WH#p%|Kqx()8Z#HMAop*e;GXcN{5E(QFB3)dHM}3<&^I; z9R=Ngb!qVy&SjsIBmMfvii?qEW80SzTiQ8K@6}RFv$-O3dHoz_#k>1U2mHnB@~9>MiToo@kWTE=Kbno!?@li43epQcU^VZD$py`_yyubW<4Pn+c2!1v7F z#5cV;{eIz=nWl~YPe|tV7vF8P7Swq$?rT)ivt8tj>bHbB5gXXvW-Tn({qZ4R<*z#) z&m6rU#z!Rf`3|im%Z$$E+Nl!ReR$+4aih>uQHjh|9Nro7rkyg{ZR`{~{)#iT&##?I zY1?M`@a8Eb-#+MwETA0%3*m4`#VVM;I)) z*V-O@i03m0OV?a~x%3jR6N?X8Y!=_#OfWfaBguJVutGeXND-v0JN#lBuc-gTm+u!w zUl4i2wnp*hX!GBku)QZGA2pBoMSI_;J2SsD-j|)r6|>~LU`;O9jYlhN=lWgG54bOp z%KPBmnuefJUG~(h^2N`E{fVW=T*E)waF22wir%?P z`&%C+htU(-Q;inZn;~o?nnYUzT-!|BgcoXA}8kqryfi z7p4_wy*kPx=6#C9b9a-(k~uMv)p8S8>Lb)eLbsL}4d#tIHCi_~=4WQ{-5t2jVIwrr zGlyqRk6}BRtXej<&eq=L)T>0U*7LvmMC$e^dY#u7Nh*D`hG*DWg8x~|qHAA#-#uE? z)(}$DyN$df_2j)i{$u4W((88}Da;l1@;8||*dZXZeqcsE|Bh1rUBfSqEWG%}!Yk#7 zVZ_m4agqNTFT#OzORNvM|KczSPZb^Q*qmO$6ljUJ7{YTUv*UcH{DiX&;>W88ul6S?Qw+-u%X6yy1dXy&opwD=JFA{?@>{2~4KL^0 zW}*DT)`9ykE-f)m*g#yDBe^9faB(c@+wP7sHcp`#dZGe)BS{nUeykR>^=#&Sl&8=0 z%>HP@$x#K~=$%DGLl%;mdA&=As@?mmqa4LT0q$+V-1#Dc3Z-Jde)?HaZkg%IyofI? zS$K1!g2FI~qyi?E(o}jVbDGE(V*8DS@5~DrSYt0<eU)zH1>SZ=@Z~KowFe+2F zAlt24sZdeV;1TgSrpqYNT=bosW3~OVX7kKKSCc@tP=1k=_p~yZ@H3$wFP%zzc!&H` zr^T=0>>}>ZJSi$T-mJ(W@xrJto;68;hJwF3QYGTC!Eh{i+6U<#7ok4LeJ(t=HyL%rgn?nY~6FO?o=l z2I_l=rk@CPJKOllx@Vr=(+}koZo5v%^VVJe(tGDCujhMDP|mwH8C;(=Q*ZaNcZ2PP z#-uXU&d9pC?5DLSSH4#`bwT*6eDAMS$5)wqPVN^QPL$%a|MF4cS9xv7&PnbIBW#r< z`MwSB_s)MIv34@Cxf3-8+;{v-3zu2%IS4II?X0@7MzC0KdBm4B$>t~9&Lz99CD;q>w0Dx4^nUf>+$JBB#_SlLlLtKJ(at%Z z>Dr?!6ltd*zFp^&`sEuJE4K&aopUPvBC!0(ZY5deZ}Q7;y}!|8Gr}|E6qdjvdcA8` zPD|F>Zv*0+jbxXdiMhW$|9nS>@{bfjN`cjP>O_8S&zB1ZHKTsKXGO`Q7nOwduS%u+ z=VaOt+Yem2^|4}$_Q<^M_`9E^g!Er;VX@xQz3k3OQTG`spLm~_39uB$UcTcg8f*55 z{RUCu(&n6qtcCg93W}F67S;=G+d|QED!y#^V$<-C8gXAr&PJWt+ZNnwDS0!pf7yFU z(vsq*YjS3)+vurS?T}FS6~4CXRRiVd_#2E4OxMor0{!6 z-5HYKKUL|TaDQWSTSRWA?PU#7*_8UH72<~HSotMqL_0LaSouBUUh>{Q#e+P{=iVXR z`k~lQ7f9+x{s=$L&l9CbYzn!KP7VA?&4S8Zts^+DsUk~;x zhzv`%>J)P|Iq-gslB<2{z0%p<#_K(7uGL{67(c(dHTno^r}hGAZI3v0-lf}=BgbPrjFyYQFj`rO zc;$gf#({bb{p$wSGI>uJU@#`6zZTR61`D*VF1J=Q4>M zFNYzC_6`&&Da{Tvp%h2?kv|1XHr1TwOPdU zf{?D{ux4-CW8uZi?t7goxcvRY(|tulqMCf-ck-`^iQRJ;;O4g4Q`SVHJ!N%rbvZG~ zcd=}ju5q-8>8l(=6Oj+f9a3q}X1%EA2zp0Nzd&sboyohJ94*hCkTf$Vwy(+N z^J?=YqW5nUupC`+zG0wc!&ik@mi+mL5>+;iZkkhF?0q|xuL#89A2!0uDhrXI*@2z# z!dfeK0{gZT=!8{6oS>Q3gwB$A2%1N+v#kOI%@TCR7N00a(7cYFJ|csE6Ly-|!cWj_ z$4+TYq6E#4=yV3iLqmpR*g42VLy*)5=sL(nLzoGlHs$fFbh*pMv8a*tS@HN`sM89N3 zTnL*H{%kZZj7<+8|Lo-lOemWkKCj*k7tTiez3`iH<02m>q>c7Z;g?k6hzn~Yad^n> zeQP)_w2k(ALFznx=Mr3a8xP+ZdY2xtwh~J?X;Y1RI~VhAd@Y^RqFbagxS)-Sj-o_JFy# z@HmC|Qs^T4J`1jSxDdHeU)_-3x|d(2*l}TUqU5iS4SZzfrMsIjp>p0&t9oN|4^C8n z)WC$xg;XR>AI=w>{J#G*CS*?3^jWBVwtHga3K{54J=v?qpWFLFm z`Yi-aT=-o4Lh8PCx*t{Zba5ecp4STBtu`0x)osRw(FK}+m48$u*+rHKVM6KRG||ud zZ|sivcrF7IPUoq1{j}2eQ&wTyS4>D6i;9%ue=LR}*m7A-Z{o8Ya}v zU(>A2bs$VQ^)v@2+%B@}UWe3mnZ4F}xR5)!?lOOncSuNyFkRTavYvv$h>t zfeX!3lpO{3ecg~Bdp8mjo);2VGk*D_QPQu<8xx`@F6LN3UO^bp@2kax>3N5mikfxe z&$M?%U_$kRmmHVOS~9e2t^zJxPwZNGsdkySY?CT3WX~&Fdt#OL&an77xUjuo*A-57 zUe5z>HsV6};%URPlZu_}z0*Z7;d`FIA-z-lmBAY>F2IEF1=77=r61`v70fHfgz?2* z-2M>Ztn`$-ivttN=Xt2&Do{0E%hPUz3Fq^(X~n#j9>2ON(-{-e7uC|^TB5op_;Ri& zF08-r<>QJvL(^_HTxg#^%xwKT)%=3jI=Jw@=T2X_(|bM!}JLi}W(p){6nw9ico zabbSGavUQCP!^05(kQq0H<{t&0HI4cH^V>KMBg;WNdm+ZHABrF z{yC++aTr;E*I>AqbGt#!tIiILG$6<=@UiEy-)Q}(6pTDTx7x1jeOE|k$&E(PooMa%N zqr2dM@y4zb#VQ!tKy1mp<=08)ec$)r#7GA`AsO3cn>WvWvj`_22<#6&c{$}X=OKTb zgdp~+?w;9qK6VE;oQy!`i3(p_A#(p)9G#TVl5G{xc_R9&15Qp5T|{l(;q$)fM~)Ik zQXngyPU&TLWckjDlNI>Y_MMa9xN@s}`w@(^AVL!^8JWd1Y7&T(7szX!1uoWEujuB& zNep}sBVTt^$|W6rl7f*LL~e2RH)N{uoN&QO4W!QxyC<%4z_K(>Zr~fxJ{EhL>%qAc z1B~P#9I|_Xv2?wLVT%Grb|8^`J{}MHl|gNa!blGktK`BI6V(cjo0~E6gV6E{UF$%d z0L?4m7zu*7y;JB@+JPq1_f{Agf>$!f>GYSM8t;#JW26Y7?*#QTExEme?`~t{2%?H+ z>i&6mI{RM*VCSOVl8!!@u;AE%v3imGG?7guVnL@n7XLrI)qwYx|I;p~Xj@$|V#$!cA%EP`$!<{&juw1zEi_bs!>NgWi89I~QJFl~GJ zQ;ggp%%0D&<*@|(z0!-UR137 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 Jv~hIIzX8ms)D{2$ literal 0 HcmV?d00001 diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index 5885cd30..a4de89e8 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -210,6 +210,7 @@ impl Context { "rbf_num_limit": 99, "max_btc_tx_pending_sec": 3600 * 24, "unhealthy_utxo_amount": 1000, + "max_pending_sign_txs": 1, "expiry_height_gap": 5000, } })) diff --git a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs index 256ab58c..bb0dc3e6 100644 --- a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs +++ b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs @@ -364,13 +364,13 @@ async fn test_base() { ); //40000 assert!(context.get_utxos_paged().await.unwrap().is_empty()); - assert!(context + assert!(!context .get_account("alice") .await .unwrap() .unwrap() - .btc_pending_sign_id - .is_some()); + .btc_pending_sign_ids + .is_empty()); assert_eq!( context .get_account("alice") @@ -408,8 +408,8 @@ async fn test_base() { .await .unwrap() .unwrap() - .btc_pending_sign_id - .is_none()); + .btc_pending_sign_ids + .is_empty()); assert_eq!( context .get_account("alice") @@ -455,8 +455,8 @@ async fn test_base() { .await .unwrap() .unwrap() - .btc_pending_sign_id - .is_none()); + .btc_pending_sign_ids + .is_empty()); assert_eq!( context .get_account("alice") diff --git a/contracts/satoshi-bridge/tests/test_upgrade.rs b/contracts/satoshi-bridge/tests/test_upgrade.rs index 541771e0..1c0e2bb8 100644 --- a/contracts/satoshi-bridge/tests/test_upgrade.rs +++ b/contracts/satoshi-bridge/tests/test_upgrade.rs @@ -1,4 +1,6 @@ mod setup; +use near_sdk::serde_json::json; +use satoshi_bridge::Account; use setup::*; #[tokio::test] @@ -16,11 +18,11 @@ async fn test_btc_bridge_upgrade() { } #[tokio::test] -async fn test_btc_bridge_upgrade_from_v0_5_1() { +async fn test_btc_bridge_upgrade_from_v0_7_5() { let worker = near_workspaces::sandbox().await.unwrap(); let upgrade_context = UpgradeContext::new( &worker, - "tests/data/btc_bridge_v0-5-1.wasm", + "tests/data/btc_bridge_v0-7-5.wasm", "tests/data/nbtc_v0-5-1.wasm", ) .await; @@ -62,7 +64,7 @@ async fn test_nbtc_upgrade_from_v0_5_1() { let worker = near_workspaces::sandbox().await.unwrap(); let upgrade_context = UpgradeContext::new( &worker, - "tests/data/btc_bridge_v0-5-1.wasm", + "tests/data/btc_bridge_v0-7-5.wasm", "tests/data/nbtc_v0-5-1.wasm", ) .await; @@ -71,6 +73,55 @@ async fn test_nbtc_upgrade_from_v0_5_1() { check!(view upgrade_context.get_nbtc_version()); } +/// After upgrading from v0.7.5 (btc_pending_sign_id: Option) +/// to the current version (btc_pending_sign_ids: HashSet), +/// reading an account created by the old contract must still work. +#[tokio::test] +async fn test_btc_bridge_upgrade_from_v0_7_5_account_migration() { + let worker = near_workspaces::sandbox().await.unwrap(); + let upgrade_context = UpgradeContext::new( + &worker, + "tests/data/btc_bridge_v0-7-5.wasm", + "../../res/nbtc.wasm", + ) + .await; + + // The deployer account (root) was created during contract init on the old version. + // Upgrade to the new version. + check!(upgrade_context.upgrade_satoshi_bridge("../../res/bitcoin_bridge.wasm")); + + // get_account must successfully deserialize the old account format. + let account: Option = upgrade_context + .previous_satoshi_bridge_contract + .call("get_account") + .args_json(json!({"account_id": upgrade_context.root.id()})) + .view() + .await + .unwrap() + .json() + .unwrap(); + + let account = account.expect("Account must exist after migration"); + assert_eq!( + account.account_id.as_str(), + upgrade_context.root.id().as_str() + ); + assert!(account.btc_pending_sign_ids.is_empty()); + + // get_accounts_paged must also handle V0 accounts without panicking. + let accounts: std::collections::HashMap = upgrade_context + .previous_satoshi_bridge_contract + .call("get_accounts_paged") + .args_json(json!({})) + .view() + .await + .unwrap() + .json() + .unwrap(); + + assert_eq!(accounts.len(), 1); +} + #[tokio::test] async fn test_set_icon() { let worker = near_workspaces::sandbox().await.unwrap(); From b6a472548a67baa346fed3a096df86e4aeacefc6 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Fri, 17 Apr 2026 20:19:51 +0100 Subject: [PATCH 20/28] feat: unlimited pending sign txs whitelist (#31) * option -> hashset * add whitelist for unlimited txs * add migration test * lazy migration for accoun * fix lint * add limit for unlimited txs * check whitelist everywhere * whitelist set -> map * remove new config * fmt * renaming * remove unwrap_account function * unite set and reset pendig tx list * get_account ref From bc68214a66f28b76b16ba2f0d9c960efb0c94fbf Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Fri, 17 Apr 2026 21:18:17 +0100 Subject: [PATCH 21/28] Support BTC refund flow (#28) * first draft * add standard refund diagram * add refund requests tests * add fail diagram * add refund tests * add psbt for refund * test already verify deposit * fix tests * fix tests: execute refund by user * fix execute refund * small fixes * add no withdraw flow * add check for no verify_withdraw for refund * add verify_refund * test race deposit flow * add tests refund after deposit fails * add tests refund after deposit fails * tests execute refund * execute refund test * double request flow * change deposit test * add safe deposit tests * fix lint * fix lint * fix CI * promise-result-checked * fix lint * fix tests * add comments to public methods * add option to provide gas fee * rename * hide refund_timelock_sec for zcash * remove as slice * use deposit amount for confirmations number * reject refund by anyone * fix burn_amount * any refund address * fmt * fix tests * fix comment * reduce refund cost * fmt * remove checks in main function * merge setters into one * mark pendingBurn as unreacable for refund * check update only one config field * skip time check for DAO and Operator * lint * move check Role in execute refund * new role RefundOperator * fmt * add trusted relayer macros * check input address * Revert "check input address" This reverts commit 6549b23d108c574739f67277de99e35bec8566a2. * check refund address is some for skip timecheck * fmt * fix migration * fix --- contracts/satoshi-bridge/src/api/bridge.rs | 141 ++ .../satoshi-bridge/src/api/management.rs | 180 +-- contracts/satoshi-bridge/src/api/mod.rs | 1 + contracts/satoshi-bridge/src/api/view.rs | 7 + .../satoshi-bridge/src/btc_pending_info.rs | 15 + contracts/satoshi-bridge/src/config.rs | 123 +- contracts/satoshi-bridge/src/deposit_msg.rs | 3 + contracts/satoshi-bridge/src/event.rs | 15 + contracts/satoshi-bridge/src/legacy.rs | 12 + contracts/satoshi-bridge/src/lib.rs | 13 +- contracts/satoshi-bridge/src/refund.rs | 404 +++++ contracts/satoshi-bridge/src/unit/mod.rs | 2 + .../satoshi-bridge/src/unit/post_action.rs | 42 +- contracts/satoshi-bridge/src/unit/storage.rs | 1 + contracts/satoshi-bridge/src/utils.rs | 26 + .../src/zcash_utils/contract_methods.rs | 2 +- .../satoshi-bridge/src/zcash_utils/mod.rs | 1 + .../satoshi-bridge/tests/setup/context.rs | 183 ++- .../tests/test_orchard_validation.rs | 6 + .../tests/test_orchard_withdrawal.rs | 4 + contracts/satoshi-bridge/tests/test_refund.rs | 1393 +++++++++++++++++ .../tests/test_satoshi_bridge.rs | 36 + doc/refund-after-deposit-fails-flow.md | 71 + doc/refund-after-safe-deposit-fails-flow.md | 69 + ...efund-double-request-after-execute-flow.md | 66 + doc/refund-flow.md | 91 ++ doc/refund-no-withdraw-flow.md | 96 ++ doc/refund-race-deposit-wins-flow.md | 86 + doc/refund-race-safe-deposit-wins-flow.md | 83 + doc/refund-reject-then-deposit-flow.md | 81 + doc/refund-then-deposit-fails-flow.md | 105 ++ doc/refund-then-safe-deposit-fails-flow.md | 109 ++ 32 files changed, 3250 insertions(+), 217 deletions(-) create mode 100644 contracts/satoshi-bridge/src/refund.rs create mode 100644 contracts/satoshi-bridge/tests/test_refund.rs create mode 100644 doc/refund-after-deposit-fails-flow.md create mode 100644 doc/refund-after-safe-deposit-fails-flow.md create mode 100644 doc/refund-double-request-after-execute-flow.md create mode 100644 doc/refund-flow.md create mode 100644 doc/refund-no-withdraw-flow.md create mode 100644 doc/refund-race-deposit-wins-flow.md create mode 100644 doc/refund-race-safe-deposit-wins-flow.md create mode 100644 doc/refund-reject-then-deposit-flow.md create mode 100644 doc/refund-then-deposit-fails-flow.md create mode 100644 doc/refund-then-safe-deposit-fails-flow.md diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index 10151d02..b0366964 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -406,6 +406,147 @@ impl Contract { } } +#[cfg(not(feature = "zcash"))] +#[trusted_relayer] +#[near] +impl Contract { + // ── Refund API (Bitcoin only) ── + + /// Submit a refund request for a deposit that was never finalized via `verify_deposit` or `safe_verify_deposit`. + /// The BTC transaction is verified through the Light Client to prove the deposit exists. + /// After the timelock period, anyone can call `execute_refund` to initiate the return. + /// + /// # Arguments + /// + /// * `deposit_msg` - The original deposit message. If `deposit_msg.refund_address` is set, + /// it must match the provided `refund_address`. + /// * `refund_address` - BTC address to send the refund to. If `deposit_msg.refund_address` + /// is `None`, this value is used directly. + /// * `tx_bytes` - BTC transaction bytes proving the deposit. + /// * `vout` - Output index of the deposit in the transaction. + /// * `tx_block_blockhash` - Block hash containing the transaction. + /// * `tx_index` - Transaction index within the block. + /// * `merkle_proof` - Merkle proof for Light Client verification. + /// * `gas_fee` - Optional custom gas fee. Only DAO or Operator can set this. + /// If `None`, the default `config.max_btc_gas_fee` is used during `execute_refund`. + #[allow(clippy::too_many_arguments)] + #[pause(except(roles(Role::DAO)))] + pub fn request_refund( + &mut self, + deposit_msg: DepositMsg, + refund_address: String, + tx_bytes: Vec, + vout: usize, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + gas_fee: Option, + ) -> Promise { + if gas_fee.is_some() { + let caller = env::predecessor_account_id(); + require!( + self.acl_has_role(Role::DAO.into(), caller.clone()) + || self.acl_has_role(Role::Operator.into(), caller), + "Only DAO or Operator can specify custom gas_fee" + ); + } + self.internal_request_refund( + deposit_msg, + refund_address, + tx_bytes, + vout, + tx_block_blockhash, + tx_index, + merkle_proof, + gas_fee.map(|v| v.0), + ) + } + + /// Reject a pending refund request. + /// - DAO or Operator can reject any request. + /// - Anyone can reject a request if the UTXO has already been verified via `verify_deposit`. + /// + /// # Arguments + /// + /// * `utxo_storage_key` - The UTXO key identifying the refund request (`{tx_id}@{vout}`). + pub fn reject_refund(&mut self, utxo_storage_key: String) { + let caller = env::predecessor_account_id(); + let is_privileged = self.acl_has_role(Role::DAO.into(), caller.clone()) + || self.acl_has_role(Role::Operator.into(), caller); + let is_already_deposited = self + .data() + .verified_deposit_utxo + .contains(&utxo_storage_key); + require!( + is_privileged || is_already_deposited, + "Only DAO/Operator can reject, or UTXO must be already verified via deposit" + ); + self.internal_reject_refund(utxo_storage_key); + } + + /// Execute a refund after the timelock has passed. Builds a BTC transaction + /// that sends the deposit UTXO back to the `refund_address` specified in the original + /// `DepositMsg`. Creates a `BTCPendingInfo` entry for the MPC sign pipeline. + /// Marks the UTXO in `verified_deposit_utxo` to prevent future `verify_deposit`. + /// + /// # Arguments + /// + /// * `utxo_storage_key` - The UTXO key identifying the refund request (`{tx_id}@{vout}`). + #[payable] + #[pause(except(roles(Role::DAO)))] + pub fn execute_refund(&mut self, utxo_storage_key: String) { + require!( + env::attached_deposit() >= self.required_balance_for_execute_refund(), + "Insufficient deposit for storage" + ); + let caller = env::predecessor_account_id(); + let is_privileged = + self.acl_has_any_role(vec![Role::DAO.into(), Role::RefundOperator.into()], caller); + let refund_request: crate::RefundRequest = self + .data() + .refund_requests + .get(&utxo_storage_key) + .expect("Refund request not found") + .into(); + let has_refund_address = refund_request.deposit_msg().refund_address.is_some(); + let skip_timelock = is_privileged && has_refund_address; + self.internal_execute_refund(utxo_storage_key, skip_timelock); + } + + /// Verify that the refund BTC transaction has been confirmed on the Bitcoin network. + /// Cleans up the `BTCPendingInfo` after successful verification. + /// + /// # Arguments + /// + /// * `tx_id` - Transaction ID of the confirmed refund transaction. + /// * `tx_block_blockhash` - Block hash containing the transaction. + /// * `tx_index` - Transaction index within the block. + /// * `merkle_proof` - Merkle proof for Light Client verification. + #[trusted_relayer] + #[pause(except(roles(Role::DAO)))] + pub fn verify_refund_finalize( + &mut self, + tx_id: String, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + ) -> Promise { + let btc_pending_info = self.internal_unwrap_btc_pending_info(&tx_id); + btc_pending_info.assert_refund_pending_verify_tx(); + require!( + btc_pending_info.tx_bytes_with_sign.is_some(), + "Missing tx_bytes_with_sign" + ); + self.internal_verify_refund_finalize( + tx_id, + tx_block_blockhash, + tx_index, + merkle_proof, + btc_pending_info, + ) + } +} + impl Contract { pub fn create_active_utxo_management_pending_info( &mut self, diff --git a/contracts/satoshi-bridge/src/api/management.rs b/contracts/satoshi-bridge/src/api/management.rs index 388c9f83..31f177d9 100644 --- a/contracts/satoshi-bridge/src/api/management.rs +++ b/contracts/satoshi-bridge/src/api/management.rs @@ -1,6 +1,6 @@ use crate::{ - assert_one_yocto, env, near, require, AccessControllable, Account, AccountId, BridgeFee, - Contract, ContractExt, HashSet, Promise, Role, U128, U64, + assert_one_yocto, env, near, require, AccessControllable, Account, AccountId, ConfigUpdate, + Contract, ContractExt, HashSet, Promise, Role, U128, }; use near_plugins::access_control_any; @@ -272,16 +272,9 @@ impl Contract { #[payable] #[access_control_any(roles(Role::DAO))] - pub fn set_btc_light_client_account_id(&mut self, btc_light_client_account_id: AccountId) { + pub fn update_config(&mut self, update: ConfigUpdate) { assert_one_yocto(); - self.internal_mut_config().btc_light_client_account_id = btc_light_client_account_id; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_nbtc_account_id(&mut self, nbtc_account_id: AccountId) { - assert_one_yocto(); - self.internal_mut_config().nbtc_account_id = nbtc_account_id; + update.apply(self.internal_mut_config()); } #[payable] @@ -312,169 +305,4 @@ impl Contract { "confirmations_strategy must not be empty" ); } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_confirmations_delta(&mut self, confirmations_delta: u8) { - assert_one_yocto(); - self.internal_mut_config().confirmations_delta = confirmations_delta; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_extra_msg_confirmations_delta(&mut self, extra_msg_confirmations_delta: u8) { - assert_one_yocto(); - self.internal_mut_config().extra_msg_confirmations_delta = extra_msg_confirmations_delta; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_deposit_bridge_fee(&mut self, deposit_bridge_fee: BridgeFee) { - assert_one_yocto(); - deposit_bridge_fee.assert_valid(); - self.internal_mut_config().deposit_bridge_fee = deposit_bridge_fee; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_withdraw_bridge_fee(&mut self, withdraw_bridge_fee: BridgeFee) { - assert_one_yocto(); - withdraw_bridge_fee.assert_valid(); - self.internal_mut_config().withdraw_bridge_fee = withdraw_bridge_fee; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_min_deposit_amount(&mut self, min_deposit_amount: U128) { - assert_one_yocto(); - self.internal_mut_config().min_deposit_amount = min_deposit_amount.into(); - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_min_withdraw_amount(&mut self, min_withdraw_amount: U128) { - assert_one_yocto(); - self.internal_mut_config().min_withdraw_amount = min_withdraw_amount.into(); - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_change_amount_range(&mut self, min_change_amount: U128, max_change_amount: U128) { - assert_one_yocto(); - require!( - min_change_amount.0 < max_change_amount.0, - "min_change_amount must be less than max_change_amount" - ); - let config = self.internal_mut_config(); - config.min_change_amount = min_change_amount.into(); - config.max_change_amount = max_change_amount.into(); - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_btc_gas_fee_valid_range(&mut self, min_btc_gas_fee: U128, max_btc_gas_fee: U128) { - assert_one_yocto(); - require!( - min_btc_gas_fee.0 < max_btc_gas_fee.0, - "min_btc_gas_fee must be less than max_btc_gas_fee" - ); - let config = self.internal_mut_config(); - config.min_btc_gas_fee = min_btc_gas_fee.into(); - config.max_btc_gas_fee = max_btc_gas_fee.into(); - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_max_withdrawal_input_number(&mut self, max_withdrawal_input_number: u8) { - assert_one_yocto(); - self.internal_mut_config().max_withdrawal_input_number = max_withdrawal_input_number; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_max_change_number(&mut self, max_change_number: u8) { - assert_one_yocto(); - self.internal_mut_config().max_change_number = max_change_number; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_max_active_utxo_management_input_number( - &mut self, - max_active_utxo_management_input_number: u8, - ) { - assert_one_yocto(); - self.internal_mut_config() - .max_active_utxo_management_input_number = max_active_utxo_management_input_number; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_max_active_utxo_management_output_number( - &mut self, - max_active_utxo_management_output_number: u8, - ) { - assert_one_yocto(); - self.internal_mut_config() - .max_active_utxo_management_output_number = max_active_utxo_management_output_number; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_active_management_limit( - &mut self, - active_management_lower_limit: u32, - active_management_upper_limit: u32, - ) { - assert_one_yocto(); - require!( - active_management_lower_limit < active_management_upper_limit, - "active_management_lower_limit must be less than active_management_upper_limit" - ); - let config = self.internal_mut_config(); - config.active_management_lower_limit = active_management_lower_limit; - config.active_management_upper_limit = active_management_upper_limit; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_passive_management_limit( - &mut self, - passive_management_lower_limit: u32, - passive_management_upper_limit: u32, - ) { - assert_one_yocto(); - require!( - passive_management_lower_limit < passive_management_upper_limit, - "passive_management_lower_limit must be less than passive_management_upper_limit" - ); - let config = self.internal_mut_config(); - config.passive_management_lower_limit = passive_management_lower_limit; - config.passive_management_upper_limit = passive_management_upper_limit; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_rbf_num_limit(&mut self, rbf_num_limit: u8) { - assert_one_yocto(); - self.internal_mut_config().rbf_num_limit = rbf_num_limit; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_max_btc_tx_pending_sec(&mut self, max_btc_tx_pending_sec: u32) { - assert_one_yocto(); - self.internal_mut_config().max_btc_tx_pending_sec = max_btc_tx_pending_sec; - } - - #[payable] - #[access_control_any(roles(Role::DAO))] - pub fn set_unhealthy_utxo_amount(&mut self, unhealthy_utxo_amount: U64) { - assert_one_yocto(); - require!( - u128::from(unhealthy_utxo_amount.0) > self.internal_config().min_change_amount, - "Invalid unhealthy_utxo_amount" - ); - self.internal_mut_config().unhealthy_utxo_amount = unhealthy_utxo_amount.0; - } } diff --git a/contracts/satoshi-bridge/src/api/mod.rs b/contracts/satoshi-bridge/src/api/mod.rs index ade09f9d..01292e28 100644 --- a/contracts/satoshi-bridge/src/api/mod.rs +++ b/contracts/satoshi-bridge/src/api/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::too_many_arguments)] mod bridge; mod chain_signatures; mod management; diff --git a/contracts/satoshi-bridge/src/api/view.rs b/contracts/satoshi-bridge/src/api/view.rs index 4d390c2b..c25f2b62 100644 --- a/contracts/satoshi-bridge/src/api/view.rs +++ b/contracts/satoshi-bridge/src/api/view.rs @@ -293,4 +293,11 @@ impl Contract { pub fn required_balance_for_safe_deposit(&self) -> NearToken { REQUIRED_BALANCE_FOR_DEPOSIT } + + #[cfg(not(feature = "zcash"))] + pub fn required_balance_for_execute_refund(&self) -> NearToken { + // execute_refund uses ~700 bytes of storage (BTCPendingInfo + Account + verified_deposit_utxo) + // At 0.00001 NEAR/byte, that's ~0.007 NEAR. We use 0.01 NEAR as a safe margin. + NearToken::from_millinear(10) + } } diff --git a/contracts/satoshi-bridge/src/btc_pending_info.rs b/contracts/satoshi-bridge/src/btc_pending_info.rs index 6012dc3f..374d126e 100644 --- a/contracts/satoshi-bridge/src/btc_pending_info.rs +++ b/contracts/satoshi-bridge/src/btc_pending_info.rs @@ -73,6 +73,7 @@ pub enum PendingInfoState { ActiveUtxoManagementOriginal(OriginalState), ActiveUtxoManagementRbf(RbfState), ActiveUtxoManagementCancelRbf(RbfState), + Refund(OriginalState), } impl PendingInfoState { @@ -84,6 +85,7 @@ impl PendingInfoState { PendingInfoState::ActiveUtxoManagementOriginal(state) => state.assert_pending_sign(), PendingInfoState::ActiveUtxoManagementRbf(state) => state.assert_pending_sign(), PendingInfoState::ActiveUtxoManagementCancelRbf(state) => state.assert_pending_sign(), + PendingInfoState::Refund(state) => state.assert_pending_sign(), } } pub fn assert_pending_verify(&self) { @@ -94,6 +96,7 @@ impl PendingInfoState { PendingInfoState::ActiveUtxoManagementOriginal(state) => state.assert_pending_verify(), PendingInfoState::ActiveUtxoManagementRbf(state) => state.assert_pending_verify(), PendingInfoState::ActiveUtxoManagementCancelRbf(state) => state.assert_pending_verify(), + PendingInfoState::Refund(state) => state.assert_pending_verify(), } } } @@ -157,6 +160,13 @@ impl BTCPendingInfo { } } + pub fn assert_refund_pending_verify_tx(&self) { + match self.state.borrow() { + PendingInfoState::Refund(state) => state.assert_pending_verify(), + _ => env::panic_str("Not refund related tx"), + } + } + pub fn assert_active_utxo_management_related_pending_verify_tx(&self) { match self.state.borrow() { PendingInfoState::ActiveUtxoManagementOriginal(state) => state.assert_pending_verify(), @@ -222,6 +232,9 @@ impl BTCPendingInfo { PendingInfoState::ActiveUtxoManagementCancelRbf(state) => { state.stage = PendingInfoStage::PendingVerify; } + PendingInfoState::Refund(state) => { + state.stage = PendingInfoStage::PendingVerify; + } } } @@ -243,6 +256,7 @@ impl BTCPendingInfo { PendingInfoState::ActiveUtxoManagementCancelRbf(state) => { state.stage = PendingInfoStage::PendingBurn; } + PendingInfoState::Refund(_state) => unreachable!(), } } @@ -457,6 +471,7 @@ mod tests { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }; let path = get_deposit_path(&deposit_msg); diff --git a/contracts/satoshi-bridge/src/config.rs b/contracts/satoshi-bridge/src/config.rs index 16141891..4ab203d1 100644 --- a/contracts/satoshi-bridge/src/config.rs +++ b/contracts/satoshi-bridge/src/config.rs @@ -1,6 +1,6 @@ use crate::{ - env, near, network, network::Address, require, u128_dec_format, AccountId, Contract, HashMap, - PublicKey, ScriptBuf, + env, near, network, network::Address, require, u128_dec_format, u128_dec_format_option, + AccountId, Contract, HashMap, PublicKey, ScriptBuf, }; pub const MAX_RATIO: u32 = 10000; @@ -110,6 +110,9 @@ pub struct Config { pub unhealthy_utxo_amount: u64, #[cfg(feature = "zcash")] pub expiry_height_gap: u32, + // Timelock in seconds before a refund request can be executed. + #[cfg(not(feature = "zcash"))] + pub refund_timelock_sec: u64, } impl Config { @@ -139,6 +142,10 @@ impl Config { self.passive_management_lower_limit < self.passive_management_upper_limit, "passive_management_lower_limit must be less than passive_management_upper_limit" ); + require!( + u128::from(self.unhealthy_utxo_amount) > self.min_change_amount, + "unhealthy_utxo_amount must be greater than min_change_amount" + ); } pub fn get_change_script_pubkey(&self) -> ScriptBuf { @@ -189,6 +196,87 @@ impl Config { } } +#[near(serializers = [json])] +#[cfg_attr(not(target_arch = "wasm32"), derive(Debug))] +pub struct ConfigUpdate { + pub btc_light_client_account_id: Option, + pub nbtc_account_id: Option, + pub confirmations_delta: Option, + pub extra_msg_confirmations_delta: Option, + pub deposit_bridge_fee: Option, + pub withdraw_bridge_fee: Option, + #[serde(with = "u128_dec_format_option")] + #[serde(default)] + pub min_deposit_amount: Option, + #[serde(with = "u128_dec_format_option")] + #[serde(default)] + pub min_withdraw_amount: Option, + #[serde(with = "u128_dec_format_option")] + #[serde(default)] + pub min_change_amount: Option, + #[serde(with = "u128_dec_format_option")] + #[serde(default)] + pub max_change_amount: Option, + #[serde(with = "u128_dec_format_option")] + #[serde(default)] + pub min_btc_gas_fee: Option, + #[serde(with = "u128_dec_format_option")] + #[serde(default)] + pub max_btc_gas_fee: Option, + pub max_withdrawal_input_number: Option, + pub max_change_number: Option, + pub max_active_utxo_management_input_number: Option, + pub max_active_utxo_management_output_number: Option, + pub active_management_lower_limit: Option, + pub active_management_upper_limit: Option, + pub passive_management_lower_limit: Option, + pub passive_management_upper_limit: Option, + pub rbf_num_limit: Option, + pub max_btc_tx_pending_sec: Option, + pub unhealthy_utxo_amount: Option, + #[cfg(not(feature = "zcash"))] + pub refund_timelock_sec: Option, +} + +impl ConfigUpdate { + pub fn apply(self, config: &mut Config) { + macro_rules! set_if_some { + ($field:ident) => { + if let Some(v) = self.$field { + config.$field = v; + } + }; + } + set_if_some!(btc_light_client_account_id); + set_if_some!(nbtc_account_id); + set_if_some!(confirmations_delta); + set_if_some!(extra_msg_confirmations_delta); + set_if_some!(deposit_bridge_fee); + set_if_some!(withdraw_bridge_fee); + set_if_some!(min_deposit_amount); + set_if_some!(min_withdraw_amount); + set_if_some!(min_change_amount); + set_if_some!(max_change_amount); + set_if_some!(min_btc_gas_fee); + set_if_some!(max_btc_gas_fee); + set_if_some!(max_withdrawal_input_number); + set_if_some!(max_change_number); + set_if_some!(max_active_utxo_management_input_number); + set_if_some!(max_active_utxo_management_output_number); + set_if_some!(active_management_lower_limit); + set_if_some!(active_management_upper_limit); + set_if_some!(passive_management_lower_limit); + set_if_some!(passive_management_upper_limit); + set_if_some!(rbf_num_limit); + set_if_some!(max_btc_tx_pending_sec); + set_if_some!(unhealthy_utxo_amount); + #[cfg(not(feature = "zcash"))] + set_if_some!(refund_timelock_sec); + + config.assert_valid(); + } +} + impl Contract { pub fn internal_mut_config(&mut self) -> &mut Config { self.data_mut() @@ -232,3 +320,34 @@ impl Contract { } } } + +#[cfg(test)] +mod tests { + use crate::*; + + #[test] + fn test_config_update_changes_only_specified_field() { + let mut unit_env = init_unit_env(); + testing_env!(unit_env + .context + .predecessor_account_id(owner_id()) + .attached_deposit(NearToken::from_yoctonear(1)) + .build()); + + let setup: ConfigUpdate = + serde_json::from_str(r#"{ "min_change_amount": "500" }"#).unwrap(); + unit_env.contract.update_config(setup); + + let config_before = unit_env.contract.internal_config().clone(); + assert_ne!(config_before.min_change_amount, 0); + + let update: ConfigUpdate = + serde_json::from_str(r#"{ "min_deposit_amount": "21000" }"#).unwrap(); + unit_env.contract.update_config(update); + + let config_after = unit_env.contract.internal_config(); + + assert_eq!(config_after.min_deposit_amount, 21000); + assert_eq!(config_after.min_change_amount, 500); + } +} diff --git a/contracts/satoshi-bridge/src/deposit_msg.rs b/contracts/satoshi-bridge/src/deposit_msg.rs index 629e6f2b..d51243da 100644 --- a/contracts/satoshi-bridge/src/deposit_msg.rs +++ b/contracts/satoshi-bridge/src/deposit_msg.rs @@ -22,6 +22,9 @@ pub struct DepositMsg { // If this field is present, the legacy post_actions field must be None #[serde(skip_serializing_if = "Option::is_none")] pub safe_deposit: Option, + // BTC address for refund if deposit is never finalized. + #[serde(skip_serializing_if = "Option::is_none")] + pub refund_address: Option, } #[near(serializers = [json])] diff --git a/contracts/satoshi-bridge/src/event.rs b/contracts/satoshi-bridge/src/event.rs index eeca095b..b30c7926 100644 --- a/contracts/satoshi-bridge/src/event.rs +++ b/contracts/satoshi-bridge/src/event.rs @@ -92,6 +92,21 @@ pub enum Event<'a> { index: Option, err_msg: String, }, + RefundRequested { + deposit_msg: DepositMsg, + utxo_storage_key: String, + amount: U128, + refund_address: String, + gas_fee: U128, + }, + RefundRejected { + utxo_storage_key: String, + }, + RefundExecuted { + utxo_storage_key: String, + amount: U128, + refund_address: String, + }, } impl Event<'_> { diff --git a/contracts/satoshi-bridge/src/legacy.rs b/contracts/satoshi-bridge/src/legacy.rs index 3ed6626a..0ba32414 100644 --- a/contracts/satoshi-bridge/src/legacy.rs +++ b/contracts/satoshi-bridge/src/legacy.rs @@ -61,6 +61,8 @@ impl From for ContractData { acc_claimed_protocol_fee, cur_reserved_protocol_fee, acc_protocol_fee_for_gas, + #[cfg(not(feature = "zcash"))] + refund_requests: IterableMap::new(StorageKey::RefundRequests), } } } @@ -191,6 +193,8 @@ impl From for Config { unhealthy_utxo_amount: 1000, #[cfg(feature = "zcash")] expiry_height_gap: 1000, + #[cfg(not(feature = "zcash"))] + refund_timelock_sec: 14 * 24 * 3600, // 2 weeks } } } @@ -331,6 +335,8 @@ impl From for Config { unhealthy_utxo_amount, #[cfg(feature = "zcash")] expiry_height_gap, + #[cfg(not(feature = "zcash"))] + refund_timelock_sec: 14 * 24 * 3600, // 2 weeks } } } @@ -395,6 +401,8 @@ impl From for ContractData { acc_claimed_protocol_fee, cur_reserved_protocol_fee, acc_protocol_fee_for_gas, + #[cfg(not(feature = "zcash"))] + refund_requests: IterableMap::new(StorageKey::RefundRequests), } } } @@ -470,6 +478,8 @@ impl From for ContractData { acc_claimed_protocol_fee, cur_reserved_protocol_fee, acc_protocol_fee_for_gas, + #[cfg(not(feature = "zcash"))] + refund_requests: IterableMap::new(StorageKey::RefundRequests), } } } @@ -536,6 +546,8 @@ impl From for ContractData { acc_claimed_protocol_fee, cur_reserved_protocol_fee, acc_protocol_fee_for_gas, + #[cfg(not(feature = "zcash"))] + refund_requests: IterableMap::new(StorageKey::RefundRequests), } } } diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index cabe4dc8..b36772a4 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -3,7 +3,7 @@ use near_sdk::{ assert_one_yocto, borsh::{BorshDeserialize, BorshSerialize}, env, ext_contract, is_promise_success, - json_types::{U128, U64}, + json_types::U128, log, near, require, serde::{Deserialize, Serialize}, serde_json::{self, json, Value}, @@ -36,6 +36,8 @@ pub mod nbtc; pub mod network; pub mod psbt; pub mod rbf; +#[cfg(not(feature = "zcash"))] +pub mod refund; pub mod token_transfer; #[cfg(test)] mod unit; @@ -54,6 +56,8 @@ pub use crate::json_utils::*; pub use crate::legacy::*; pub use crate::nbtc::*; pub use crate::rbf::*; +#[cfg(not(feature = "zcash"))] +pub use crate::refund::*; pub use crate::token_transfer::*; pub use crate::utils::*; pub use crate::utxo::*; @@ -93,6 +97,8 @@ enum StorageKey { PostActionMsgTemplates, ExtraMsgRelayerWhiteList, PendingTxLimits, + #[cfg(not(feature = "zcash"))] + RefundRequests, } #[derive(AccessControlRole, Deserialize, Serialize, Copy, Clone)] @@ -105,6 +111,7 @@ pub enum Role { UpgradableCodeDeployer, UnrestrictedRelayer, RelayerManager, + RefundOperator, } #[near(serializers = [borsh])] @@ -127,6 +134,8 @@ pub struct ContractData { pub acc_claimed_protocol_fee: u128, pub cur_reserved_protocol_fee: u128, pub acc_protocol_fee_for_gas: u128, + #[cfg(not(feature = "zcash"))] + pub refund_requests: IterableMap, } #[near(serializers = [borsh])] @@ -190,6 +199,8 @@ impl Contract { post_action_msg_templates: IterableMap::new(StorageKey::PostActionMsgTemplates), pending_tx_limits: IterableMap::new(StorageKey::PendingTxLimits), lost_found: IterableMap::new(StorageKey::LostFound), + #[cfg(not(feature = "zcash"))] + refund_requests: IterableMap::new(StorageKey::RefundRequests), acc_collected_protocol_fee: 0, cur_available_protocol_fee: 0, acc_claimed_protocol_fee: 0, diff --git a/contracts/satoshi-bridge/src/refund.rs b/contracts/satoshi-bridge/src/refund.rs new file mode 100644 index 00000000..4713ded1 --- /dev/null +++ b/contracts/satoshi-bridge/src/refund.rs @@ -0,0 +1,404 @@ +use bitcoin::{Amount, OutPoint, TxOut}; + +use crate::{ + env, near, require, serde_json, BTCPendingInfo, Contract, ContractExt, DepositMsg, Event, Gas, + OriginalState, PendingInfoStage, PendingInfoState, Promise, MAX_BOOL_RESULT, UTXO, VUTXO, +}; + +use crate::deposit_msg::get_deposit_path; +use crate::psbt_wrapper::PsbtWrapper; +use crate::utils::{generate_utxo_storage_key, nano_to_sec}; + +pub const GAS_FOR_REQUEST_REFUND_CALLBACK: Gas = Gas::from_tgas(20); +pub const GAS_FOR_VERIFY_REFUND_CALLBACK: Gas = Gas::from_tgas(20); + +/// Stored refund request. `deposit_msg` is kept as JSON string +/// because `DepositMsg` does not implement Borsh serialization. +#[near(serializers = [borsh, json])] +#[derive(Clone)] +pub struct RefundRequest { + pub deposit_msg_json: String, + pub utxo_storage_key: String, + pub tx_bytes: Vec, + pub vout: usize, + pub amount: u128, + pub refund_address: String, + pub gas_fee: u128, + pub created_at_sec: u32, +} + +impl RefundRequest { + pub fn deposit_msg(&self) -> DepositMsg { + serde_json::from_str(&self.deposit_msg_json).expect("Invalid deposit_msg_json") + } +} + +#[near(serializers = [borsh, json])] +#[derive(Clone)] +pub enum VRefundRequest { + Current(RefundRequest), +} + +impl From for RefundRequest { + fn from(v: VRefundRequest) -> Self { + match v { + VRefundRequest::Current(c) => c, + } + } +} + +impl From<&VRefundRequest> for RefundRequest { + fn from(v: &VRefundRequest) -> Self { + match v { + VRefundRequest::Current(c) => c.clone(), + } + } +} + +impl From for VRefundRequest { + fn from(c: RefundRequest) -> Self { + VRefundRequest::Current(c) + } +} + +impl Contract { + /// Submit a refund request. Verifies the BTC transaction via Light Client first. + /// If `deposit_msg.refund_address` is set, it must match the provided `refund_address`. + /// If `deposit_msg.refund_address` is None, the provided `refund_address` is used. + #[allow(clippy::too_many_arguments)] + pub fn internal_request_refund( + &self, + deposit_msg: DepositMsg, + refund_address: String, + tx_bytes: Vec, + vout: usize, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + gas_fee: Option, + ) -> Promise { + if let Some(msg_refund_address) = &deposit_msg.refund_address { + require!( + msg_refund_address == &refund_address, + "refund_address does not match deposit_msg.refund_address" + ); + } + + let transaction = + crate::WrappedTransaction::decode(&tx_bytes, &self.internal_config().chain) + .expect("Deserialization tx_bytes failed"); + let tx_id = transaction.compute_txid().to_string(); + + let config = self.internal_config(); + let deposit_amount = u128::from(transaction.output()[vout].value.to_sat()); + let confirmations = self.get_confirmations(config, deposit_amount); + + self.verify_transaction_inclusion_promise( + config.btc_light_client_account_id.clone(), + tx_id, + tx_block_blockhash, + tx_index, + merkle_proof, + confirmations, + ) + .then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_REQUEST_REFUND_CALLBACK) + .request_refund_callback(deposit_msg, refund_address, tx_bytes, vout, gas_fee), + ) + } + + /// Reject a pending refund request. + pub fn internal_reject_refund(&mut self, utxo_storage_key: String) { + require!( + self.data_mut() + .refund_requests + .remove(&utxo_storage_key) + .is_some(), + "Refund request not found" + ); + Event::RefundRejected { utxo_storage_key }.emit(); + } + + /// Execute an approved refund request after timelock has passed. + /// `skip_timelock` — if true, the timelock check is bypassed. + pub fn internal_execute_refund(&mut self, utxo_storage_key: String, skip_timelock: bool) { + let refund_request: RefundRequest = self + .data() + .refund_requests + .get(&utxo_storage_key) + .expect("Refund request not found") + .into(); + + let config = self.internal_config(); + + if !skip_timelock { + let now = nano_to_sec(env::block_timestamp()); + require!( + u64::from(now) + >= u64::from(refund_request.created_at_sec) + config.refund_timelock_sec, + "Refund timelock has not passed yet" + ); + } + + // Must still not be finalized + require!( + !self + .data() + .verified_deposit_utxo + .contains(&utxo_storage_key), + "UTXO already verified via deposit, cannot refund" + ); + + let refund_address = refund_request.refund_address.clone(); + + // Parse the original deposit transaction to get OutPoint + let transaction = + crate::WrappedTransaction::decode(&refund_request.tx_bytes, &config.chain) + .expect("Deserialization tx_bytes failed"); + let txid = transaction.compute_txid(); + let outpoint = OutPoint { + txid, + vout: u32::try_from(refund_request.vout) + .unwrap_or_else(|_| env::panic_str("vout overflow")), + }; + + // The deposit UTXO output (for witness) + let deposit_output = transaction.output()[refund_request.vout].clone(); + + // Parse refund address + let refund_addr = crate::network::Address::parse(&refund_address, config.chain.clone()) + .expect("Invalid refund address"); + let refund_script_pubkey = refund_addr + .script_pubkey() + .expect("Invalid refund script_pubkey"); + + // Calculate gas fee: entire remainder goes to gas + let gas_fee = refund_request.gas_fee; + let refund_amount = refund_request + .amount + .checked_sub(gas_fee) + .expect("Deposit amount too small to cover gas fee"); + require!(refund_amount > 0, "Refund amount is zero after gas fee"); + + // Build refund output + let refund_output = TxOut { + value: Amount::from_sat( + u64::try_from(refund_amount) + .unwrap_or_else(|_| env::panic_str("Refund amount overflow")), + ), + script_pubkey: refund_script_pubkey, + }; + + // Build PSBT: 1 input (deposit UTXO), 1 output (refund address) + let mut psbt = PsbtWrapper::new(vec![outpoint], vec![refund_output]); + psbt.set_input_utxo(vec![deposit_output]); + + // Build VUTXO for signing (path derived from deposit_msg) + let deposit_msg = refund_request.deposit_msg(); + let path = get_deposit_path(&deposit_msg); + let vutxo = VUTXO::Current(UTXO { + path, + tx_bytes: refund_request.tx_bytes.clone(), + vout: refund_request.vout, + balance: u64::try_from(refund_request.amount) + .unwrap_or_else(|_| env::panic_str("Amount overflow")), + }); + + // Create BTCPendingInfo + let psbt_hex = psbt.serialize(); + let btc_pending_id = psbt.get_pending_id(); + let caller = env::predecessor_account_id(); + + if !self.check_account_exists(&caller) { + self.internal_set_account(&caller, crate::Account::new(&caller)); + } + self.require_pending_sign_capacity(&caller); + + let btc_pending_info = BTCPendingInfo { + account_id: caller.clone(), + btc_pending_id: btc_pending_id.clone(), + transfer_amount: 0, + actual_received_amount: refund_amount, + withdraw_fee: 0, + gas_fee, + burn_amount: 0, + psbt_hex, + vutxos: vec![vutxo], + signatures: vec![None; 1], + tx_bytes_with_sign: None, + create_time_sec: nano_to_sec(env::block_timestamp()), + last_sign_time_sec: 0, + state: PendingInfoState::Refund(OriginalState { + stage: PendingInfoStage::PendingSign, + max_gas_fee: gas_fee, + last_rbf_time_sec: None, + cancel_rbf_reserved: None, + }), + }; + + require!( + self.data_mut() + .btc_pending_infos + .insert(btc_pending_id.clone(), btc_pending_info.into()) + .is_none(), + "pending info already exist" + ); + self.internal_unwrap_mut_account(&caller) + .btc_pending_sign_ids + .insert(btc_pending_id.clone()); + + // Mark UTXO as verified to prevent verify_deposit later + self.data_mut() + .verified_deposit_utxo + .insert(utxo_storage_key.clone()); + + Event::RefundExecuted { + utxo_storage_key: utxo_storage_key.clone(), + amount: refund_request.amount.into(), + refund_address, + } + .emit(); + + Event::GenerateBtcPendingInfo { + account_id: &caller, + btc_pending_id: &btc_pending_id, + } + .emit(); + + self.data_mut().refund_requests.remove(&utxo_storage_key); + } + + /// Verify refund transaction was included in Bitcoin blockchain. + pub fn internal_verify_refund_finalize( + &self, + tx_id: String, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + btc_pending_info: &BTCPendingInfo, + ) -> Promise { + let config = self.internal_config(); + let confirmations = self.get_confirmations(config, btc_pending_info.actual_received_amount); + self.verify_transaction_inclusion_promise( + config.btc_light_client_account_id.clone(), + tx_id.clone(), + tx_block_blockhash, + tx_index, + merkle_proof, + confirmations, + ) + .then( + Self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_VERIFY_REFUND_CALLBACK) + .verify_refund_finalize_callback(tx_id), + ) + } +} + +#[near] +impl Contract { + #[private] + pub fn verify_refund_finalize_callback(&mut self, tx_id: String) -> bool { + let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) + .expect("Call verify_transaction_inclusion failed"); + let is_valid = serde_json::from_slice::(&result_bytes) + .expect("verify_transaction_inclusion return not bool"); + require!(is_valid, "verify_transaction_inclusion return false"); + + let btc_pending_info = self.internal_unwrap_btc_pending_info(&tx_id); + btc_pending_info.assert_refund_pending_verify_tx(); + + let account_id = btc_pending_info.account_id.clone(); + + // Clean up: remove pending info + self.internal_remove_btc_pending_info(&tx_id); + self.internal_unwrap_mut_account(&account_id) + .btc_pending_verify_list + .remove(&tx_id); + + true + } + + #[private] + pub fn request_refund_callback( + &mut self, + deposit_msg: DepositMsg, + refund_address: String, + tx_bytes: Vec, + vout: usize, + gas_fee: Option, + ) -> bool { + let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) + .expect("Call verify_transaction_inclusion failed"); + let is_valid = serde_json::from_slice::(&result_bytes) + .expect("verify_transaction_inclusion return not bool"); + require!(is_valid, "verify_transaction_inclusion return false"); + + let config = self.internal_config(); + let transaction = crate::WrappedTransaction::decode(&tx_bytes, &config.chain) + .expect("Deserialization tx_bytes failed"); + let output = &transaction.output()[vout]; + + // Verify that the output script matches the deposit address derived from deposit_msg + let path = get_deposit_path(&deposit_msg); + let deposit_address = self.generate_utxo_chain_address(&path); + let deposit_script_pubkey = deposit_address + .script_pubkey() + .expect("Invalid deposit address"); + require!( + deposit_script_pubkey == output.script_pubkey, + "Output script_pubkey does not match deposit address" + ); + + let amount = u128::from(output.value.to_sat()); + let tx_id = transaction.compute_txid().to_string(); + let utxo_storage_key = generate_utxo_storage_key( + tx_id, + u32::try_from(vout).unwrap_or_else(|_| env::panic_str("vout overflow")), + ); + + // Double-check not finalized (could have been verified between request and callback) + require!( + !self + .data() + .verified_deposit_utxo + .contains(&utxo_storage_key), + "UTXO already verified via deposit" + ); + + // Double-check no duplicate (another request_refund could have landed between our check and callback) + require!( + !self.data().refund_requests.contains_key(&utxo_storage_key), + "Refund request already exists for this UTXO" + ); + + let resolved_gas_fee = gas_fee.unwrap_or(config.max_btc_gas_fee); + + Event::RefundRequested { + deposit_msg: deposit_msg.clone(), + utxo_storage_key: utxo_storage_key.clone(), + amount: amount.into(), + refund_address: refund_address.clone(), + gas_fee: resolved_gas_fee.into(), + } + .emit(); + + let refund_request = RefundRequest { + deposit_msg_json: serde_json::to_string(&deposit_msg).unwrap(), + utxo_storage_key: utxo_storage_key.clone(), + tx_bytes, + vout, + amount, + refund_address, + gas_fee: resolved_gas_fee, + created_at_sec: nano_to_sec(env::block_timestamp()), + }; + + self.data_mut() + .refund_requests + .insert(utxo_storage_key, refund_request.into()); + + true + } +} diff --git a/contracts/satoshi-bridge/src/unit/mod.rs b/contracts/satoshi-bridge/src/unit/mod.rs index 87b86a37..03a2f2da 100644 --- a/contracts/satoshi-bridge/src/unit/mod.rs +++ b/contracts/satoshi-bridge/src/unit/mod.rs @@ -81,6 +81,8 @@ pub fn init_contract() -> Contract { unhealthy_utxo_amount: 1000, #[cfg(feature = "zcash")] expiry_height_gap: 1000, + #[cfg(not(feature = "zcash"))] + refund_timelock_sec: 3600, }) } diff --git a/contracts/satoshi-bridge/src/unit/post_action.rs b/contracts/satoshi-bridge/src/unit/post_action.rs index fc06a8ec..b77168ca 100644 --- a/contracts/satoshi-bridge/src/unit/post_action.rs +++ b/contracts/satoshi-bridge/src/unit/post_action.rs @@ -239,7 +239,8 @@ fn test_check_deposit_msg() { recipient_id: recipient_id(), post_actions: None, extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -252,7 +253,8 @@ fn test_check_deposit_msg() { recipient_id: recipient_id(), post_actions: Some(vec![]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -286,7 +288,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -313,7 +316,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -340,7 +344,8 @@ fn test_check_deposit_msg() { gas: Some(Gas::from_tgas(200)) },]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -367,7 +372,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -394,7 +400,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -421,7 +428,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -447,7 +455,8 @@ fn test_check_deposit_msg() { gas: Some(Gas::from_tgas(50)) },]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -465,7 +474,8 @@ fn test_check_deposit_msg() { gas: Some(Gas::from_tgas(50)) },]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -489,7 +499,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -509,7 +520,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -529,7 +541,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) @@ -549,7 +562,8 @@ fn test_check_deposit_msg() { }, ]), extra_msg: None, - safe_deposit: None + safe_deposit: None, + refund_address: None }, 100 ) diff --git a/contracts/satoshi-bridge/src/unit/storage.rs b/contracts/satoshi-bridge/src/unit/storage.rs index 7212716a..f0b20346 100644 --- a/contracts/satoshi-bridge/src/unit/storage.rs +++ b/contracts/satoshi-bridge/src/unit/storage.rs @@ -11,6 +11,7 @@ impl Contract { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }); let utxo_storage_key = generate_utxo_storage_key(txid, vout); let tx_bytes = vec![0u8; 300]; // TODO: optimise storage usage diff --git a/contracts/satoshi-bridge/src/utils.rs b/contracts/satoshi-bridge/src/utils.rs index f1ecea9d..e406c5ed 100644 --- a/contracts/satoshi-bridge/src/utils.rs +++ b/contracts/satoshi-bridge/src/utils.rs @@ -73,6 +73,32 @@ pub mod u128_dec_format { } } +pub mod u128_dec_format_option { + use near_sdk::serde::de; + use near_sdk::serde::{Deserialize, Deserializer, Serializer}; + + pub fn serialize(value: &Option, serializer: S) -> Result + where + S: Serializer, + { + match value { + Some(num) => serializer.serialize_some(&num.to_string()), + None => serializer.serialize_none(), + } + } + + pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> + where + D: Deserializer<'de>, + { + let s: Option = Option::deserialize(deserializer)?; + match s { + Some(s) => s.parse().map(Some).map_err(de::Error::custom), + None => Ok(None), + } + } +} + pub fn verify_secp256k1_signature(public_key: &Vec, message: &str, signature: &[u8]) -> bool { let mut recovery_id = signature[0]; if recovery_id >= 31 { diff --git a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs index d7f698a9..dae92058 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/contract_methods.rs @@ -103,10 +103,10 @@ define_rbf_callback!( internal_cancel_active_utxo_management ); +#[allow(clippy::too_many_arguments)] #[near] impl Contract { #[private] - #[allow(clippy::too_many_arguments)] pub fn ft_on_transfer_callback( &mut self, sender_id: AccountId, diff --git a/contracts/satoshi-bridge/src/zcash_utils/mod.rs b/contracts/satoshi-bridge/src/zcash_utils/mod.rs index ea6ecdfd..0f54b256 100644 --- a/contracts/satoshi-bridge/src/zcash_utils/mod.rs +++ b/contracts/satoshi-bridge/src/zcash_utils/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::too_many_arguments)] pub mod contract_methods; pub mod orchard_policy; pub mod psbt_wrapper; diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index a4de89e8..e9552d7c 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -212,6 +212,7 @@ impl Context { "unhealthy_utxo_amount": 1000, "max_pending_sign_txs": 1, "expiry_height_gap": 5000, + "refund_timelock_sec": 3600, } })) .transact() @@ -611,12 +612,14 @@ impl Context { protocol_fee_rate: u32, ) -> Result { self.root - .call(self.bridge_contract.id(), "set_withdraw_bridge_fee") + .call(self.bridge_contract.id(), "update_config") .args_json(json!({ - "withdraw_bridge_fee": { - "fee_min": fee_min.to_string(), - "fee_rate": fee_rate, - "protocol_fee_rate": protocol_fee_rate, + "update": { + "withdraw_bridge_fee": { + "fee_min": fee_min.to_string(), + "fee_rate": fee_rate, + "protocol_fee_rate": protocol_fee_rate, + }, }, })) .max_gas() @@ -632,12 +635,14 @@ impl Context { protocol_fee_rate: u32, ) -> Result { self.root - .call(self.bridge_contract.id(), "set_deposit_bridge_fee") + .call(self.bridge_contract.id(), "update_config") .args_json(json!({ - "deposit_bridge_fee": { - "fee_min": fee_min.to_string(), - "fee_rate": fee_rate, - "protocol_fee_rate": protocol_fee_rate, + "update": { + "deposit_bridge_fee": { + "fee_min": fee_min.to_string(), + "fee_rate": fee_rate, + "protocol_fee_rate": protocol_fee_rate, + }, }, })) .max_gas() @@ -667,10 +672,12 @@ impl Context { active_management_upper_limit: u32, ) -> Result { self.root - .call(self.bridge_contract.id(), "set_active_management_limit") + .call(self.bridge_contract.id(), "update_config") .args_json(json!({ - "active_management_lower_limit": active_management_lower_limit, - "active_management_upper_limit": active_management_upper_limit, + "update": { + "active_management_lower_limit": active_management_lower_limit, + "active_management_upper_limit": active_management_upper_limit, + }, })) .max_gas() .deposit(NearToken::from_yoctonear(1)) @@ -684,10 +691,12 @@ impl Context { passive_management_upper_limit: u32, ) -> Result { self.root - .call(self.bridge_contract.id(), "set_passive_management_limit") + .call(self.bridge_contract.id(), "update_config") .args_json(json!({ - "passive_management_lower_limit": passive_management_lower_limit, - "passive_management_upper_limit": passive_management_upper_limit, + "update": { + "passive_management_lower_limit": passive_management_lower_limit, + "passive_management_upper_limit": passive_management_upper_limit, + }, })) .max_gas() .deposit(NearToken::from_yoctonear(1)) @@ -701,10 +710,12 @@ impl Context { max_btc_gas_fee: u128, ) -> Result { self.root - .call(self.bridge_contract.id(), "set_btc_gas_fee_valid_range") + .call(self.bridge_contract.id(), "update_config") .args_json(json!({ - "min_btc_gas_fee": min_btc_gas_fee.to_string(), - "max_btc_gas_fee": max_btc_gas_fee.to_string(), + "update": { + "min_btc_gas_fee": min_btc_gas_fee.to_string(), + "max_btc_gas_fee": max_btc_gas_fee.to_string(), + }, })) .max_gas() .deposit(NearToken::from_yoctonear(1)) @@ -717,9 +728,11 @@ impl Context { max_btc_tx_pending_sec: u32, ) -> Result { self.root - .call(self.bridge_contract.id(), "set_max_btc_tx_pending_sec") + .call(self.bridge_contract.id(), "update_config") .args_json(json!({ - "max_btc_tx_pending_sec": max_btc_tx_pending_sec, + "update": { + "max_btc_tx_pending_sec": max_btc_tx_pending_sec, + }, })) .max_gas() .deposit(NearToken::from_yoctonear(1)) @@ -729,9 +742,11 @@ impl Context { pub async fn set_nbtc_account_id(&self) -> Result { self.root - .call(self.bridge_contract.id(), "set_nbtc_account_id") + .call(self.bridge_contract.id(), "update_config") .args_json(json!({ - "nbtc_account_id": self.get_account_by_name("nbtc").id(), + "update": { + "nbtc_account_id": self.get_account_by_name("nbtc").id(), + }, })) .max_gas() .deposit(NearToken::from_yoctonear(1)) @@ -1156,6 +1171,7 @@ impl UpgradeContext { "max_btc_tx_pending_sec": 3600 * 24, "unhealthy_utxo_amount": 1000, "expiry_height_gap": 1000, + "refund_timelock_sec": 3600, } })) .transact() @@ -1261,3 +1277,124 @@ impl UpgradeContext { .json::() } } + +impl Context { + // ── Refund helpers ── + + pub async fn request_refund( + &self, + user: &str, + deposit_msg: DepositMsg, + refund_address: &str, + tx_bytes: Vec, + vout: u32, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + gas_fee: Option, + ) -> Result { + self.get_account_by_name(user) + .call(self.bridge_contract.id(), "request_refund") + .args_json(json!({ + "deposit_msg": deposit_msg, + "refund_address": refund_address, + "tx_bytes": tx_bytes, + "vout": vout, + "tx_block_blockhash": tx_block_blockhash, + "tx_index": tx_index, + "merkle_proof": merkle_proof, + "gas_fee": gas_fee, + })) + .max_gas() + .transact() + .await + } + + pub async fn required_balance_for_execute_refund(&self) -> Result { + self.bridge_contract + .call("required_balance_for_execute_refund") + .args_json(json!({})) + .view() + .await + .unwrap() + .json::() + } + + pub async fn execute_refund( + &self, + user: &str, + utxo_storage_key: &str, + ) -> Result { + self.get_account_by_name(user) + .call(self.bridge_contract.id(), "execute_refund") + .args_json(json!({ + "utxo_storage_key": utxo_storage_key, + })) + .deposit(NearToken::from_millinear(100)) + .max_gas() + .transact() + .await + } + + pub async fn reject_refund( + &self, + user: &str, + utxo_storage_key: &str, + ) -> Result { + self.get_account_by_name(user) + .call(self.bridge_contract.id(), "reject_refund") + .args_json(json!({ + "utxo_storage_key": utxo_storage_key, + })) + .max_gas() + .transact() + .await + } + + pub async fn verify_refund_finalize( + &self, + user: &str, + tx_id: &str, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + ) -> Result { + self.get_account_by_name(user) + .call(self.bridge_contract.id(), "verify_refund_finalize") + .args_json(json!({ + "tx_id": tx_id, + "tx_block_blockhash": tx_block_blockhash, + "tx_index": tx_index, + "merkle_proof": merkle_proof, + })) + .max_gas() + .transact() + .await + } + + pub async fn safe_verify_deposit( + &self, + user: &str, + deposit_msg: DepositMsg, + tx_bytes: Vec, + vout: u32, + tx_block_blockhash: String, + tx_index: u64, + merkle_proof: Vec, + ) -> Result { + self.get_account_by_name(user) + .call(self.bridge_contract.id(), "safe_verify_deposit") + .args_json(json!({ + "deposit_msg": deposit_msg, + "tx_bytes": tx_bytes, + "vout": vout, + "tx_block_blockhash": tx_block_blockhash, + "tx_index": tx_index, + "merkle_proof": merkle_proof, + })) + .deposit(NearToken::from_millinear(2)) + .max_gas() + .transact() + .await + } +} diff --git a/contracts/satoshi-bridge/tests/test_orchard_validation.rs b/contracts/satoshi-bridge/tests/test_orchard_validation.rs index fbd115dc..edb37b12 100644 --- a/contracts/satoshi-bridge/tests/test_orchard_validation.rs +++ b/contracts/satoshi-bridge/tests/test_orchard_validation.rs @@ -31,6 +31,7 @@ async fn test_orchard_wrong_recipient() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -42,6 +43,7 @@ async fn test_orchard_wrong_recipient() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -156,6 +158,7 @@ async fn test_orchard_missing_bundle() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -167,6 +170,7 @@ async fn test_orchard_missing_bundle() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -251,6 +255,7 @@ async fn test_orchard_bundle_in_zcash_tx() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -262,6 +267,7 @@ async fn test_orchard_bundle_in_zcash_tx() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( diff --git a/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs b/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs index 618c29ad..184a1bd8 100644 --- a/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs +++ b/contracts/satoshi-bridge/tests/test_orchard_withdrawal.rs @@ -32,6 +32,7 @@ async fn test_orchard_withdrawal_with_ovk_validation() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -64,6 +65,7 @@ async fn test_orchard_withdrawal_with_ovk_validation() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, zcash_tx_bytes, 1, @@ -164,6 +166,7 @@ async fn test_orchard_withdrawal_amount_mismatch() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -188,6 +191,7 @@ async fn test_orchard_withdrawal_amount_mismatch() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, zcash_tx_bytes, 1, diff --git a/contracts/satoshi-bridge/tests/test_refund.rs b/contracts/satoshi-bridge/tests/test_refund.rs new file mode 100644 index 00000000..69e1fd1f --- /dev/null +++ b/contracts/satoshi-bridge/tests/test_refund.rs @@ -0,0 +1,1393 @@ +mod setup; +use bitcoin::Transaction as BtcTransaction; +use near_sdk::serde_json::json; +use satoshi_bridge::DepositMsg; +use setup::*; + +#[cfg(not(feature = "zcash"))] +const CHAIN: &str = "BitcoinMainnet"; + +#[cfg(not(feature = "zcash"))] +const TARGET_ADDRESS: &str = "1PAGsaT5vDz6hjzvuenSw33hWzESTR3ZHQ"; + +/// Helper: compute tx_id from tx_bytes (same as contract does) +fn compute_tx_id(tx_bytes: &[u8]) -> String { + let tx: BtcTransaction = bitcoin::consensus::deserialize(tx_bytes).unwrap(); + tx.compute_txid().to_string() +} + +/// Helper: build utxo_storage_key = "{tx_id}@{vout}" +fn utxo_storage_key(tx_bytes: &[u8], vout: u32) -> String { + format!("{}@{}", compute_tx_id(tx_bytes), vout) +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_basic_flow() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let refund_btc_address = TARGET_ADDRESS; + + // 1. Get deposit address with refund_address set + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(refund_btc_address.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + assert!(!deposit_address.is_empty()); + + // 2. Build a BTC transaction that sends to the deposit address + let tx_bytes = generate_transaction_bytes( + vec![( + "a2a5069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f19", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + + // 3. Verify that UTXO is not yet known to the bridge + assert_eq!(context.get_utxos_paged().await.unwrap().len(), 0); + + // 4. Request refund (anyone can call, proves tx via Light Client) + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d" + .to_string(), + 1, + vec![], + None + ) + ); + + let key = utxo_storage_key(&tx_bytes, vout); + + // 5. Set timelock to 200 seconds + context + .get_account_by_name("root") + .call(context.bridge_contract.id(), "update_config") + .args_json(json!({"update": {"refund_timelock_sec": 200}})) + .deposit(near_sdk::NearToken::from_yoctonear(1)) + .max_gas() + .transact() + .await + .unwrap() + .unwrap(); + + // 6. Execute immediately — should fail (timelock not passed) + check!( + context.execute_refund("alice", &key), + "Refund timelock has not passed yet" + ); + + // 7. Fast-forward past timelock (3600 seconds = ~3600 blocks) + worker.fast_forward(4000).await.unwrap(); + + // 8. Execute refund — timelock passed, should succeed + + let storage_before = context + .bridge_contract + .view_account() + .await + .unwrap() + .storage_usage; + + check!( + print "execute_refund" + context.execute_refund("alice", &key) + ); + + let storage_after = context + .bridge_contract + .view_account() + .await + .unwrap() + .storage_usage; + + let storage_used = storage_after - storage_before; + let cost_per_byte = 10u128.pow(19); // 0.00001 NEAR per byte + let storage_cost_yocto = storage_used as u128 * cost_per_byte; + println!("==> Storage used by execute_refund: {} bytes", storage_used); + println!("==> Storage cost: {} yoctoNEAR", storage_cost_yocto); + println!( + "==> Storage cost: {:.4} NEAR", + storage_cost_yocto as f64 / 1e24 + ); + + // Verify that required_balance_for_execute_refund covers actual storage cost + let required_balance = context.required_balance_for_execute_refund().await.unwrap(); + println!( + "==> required_balance_for_execute_refund: {} yoctoNEAR ({:.4} NEAR)", + required_balance.as_yoctonear(), + required_balance.as_yoctonear() as f64 / 1e24 + ); + assert!( + required_balance.as_yoctonear() >= storage_cost_yocto, + "required_balance_for_execute_refund ({}) is less than actual storage cost ({})", + required_balance.as_yoctonear(), + storage_cost_yocto, + ); + + // 7. BTCPendingInfo should exist, pending sign + let pending_infos = context.get_btc_pending_infos_paged().await.unwrap(); + assert_eq!(pending_infos.len(), 1); + let pending_keys = pending_infos.keys().cloned().collect::>(); + let pending_values = pending_infos.values().cloned().collect::>(); + pending_values[0].assert_pending_sign(); + + // 8. Sign the refund transaction (1 input) + check!( + print "sign_btc_transaction" + context.sign_btc_transaction("alice", &pending_keys[0], 0, 0) + ); + + // 9. After signing all inputs, should transition to pending_verify + let pending_infos = context.get_btc_pending_infos_paged().await.unwrap(); + let pending_values = pending_infos.values().cloned().collect::>(); + pending_values[0].assert_pending_verify(); + + // 10. Verify refund transaction on-chain (like verify_withdraw but no burn) + let pending_infos = context.get_btc_pending_infos_paged().await.unwrap(); + let pending_keys = pending_infos.keys().cloned().collect::>(); + check!( + print "verify_refund_finalize" + context.verify_refund_finalize( + "relayer", + &pending_keys[0], + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + ) + ); + + // 11. Pending info cleaned up + assert!(context + .get_btc_pending_infos_paged() + .await + .unwrap() + .is_empty()); + + // 12. Refund request is gone (can't execute twice) + check!( + context.execute_refund("alice", &key), + "Refund request not found" + ); + + // 13. No nBTC was minted + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 0); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_reject() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "b3b5069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f20", + 0, + None, + )], + vec![(deposit_address.as_str(), 50_000)], + ); + let vout: u32 = 0; + + // Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d" + .to_string(), + 1, + vec![], + None + ) + ); + + let key = utxo_storage_key(&tx_bytes, vout); + + // DAO rejects the refund + check!( + print "reject_refund" + context.reject_refund("root", &key) + ); + + // Can't execute after rejection + check!( + context.execute_refund("alice", &key), + "Refund request not found" + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_no_refund_address() { + // refund_address in DepositMsg is optional — refund_address is now a separate parameter. + // This test verifies that request_refund succeeds even when DepositMsg has no refund_address. + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: None, + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "c4c5069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f21", + 0, + None, + )], + vec![(deposit_address.as_str(), 50_000)], + ); + + // Should succeed — refund_address provided as separate parameter + check!( + print "request_refund_no_addr_in_msg" + context.request_refund( + "alice", + deposit_msg, + TARGET_ADDRESS, + tx_bytes, + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![], + None + ) + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_duplicate_request() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "d5d5069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f22", + 0, + None, + )], + vec![(deposit_address.as_str(), 50_000)], + ); + + // First request — should succeed + check!( + print "first request" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d" + .to_string(), + 1, + vec![], + None + ) + ); + + // Second request for same UTXO — should fail + check!( + context.request_refund( + "alice", + deposit_msg, + TARGET_ADDRESS, + tx_bytes, + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![], + None + ), + "Refund request already exists for this UTXO" + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_then_deposit_fails() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "e6e6069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f23", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // 1. Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + None + ) + ); + + // 2. Set timelock to 0 and execute refund + context + .get_account_by_name("root") + .call(context.bridge_contract.id(), "update_config") + .args_json(json!({"update": {"refund_timelock_sec": 0}})) + .deposit(near_sdk::NearToken::from_yoctonear(1)) + .max_gas() + .transact() + .await + .unwrap() + .unwrap(); + + let key = utxo_storage_key(&tx_bytes, vout); + check!( + print "execute_refund" + context.execute_refund("alice", &key) + ); + + // 3. verify_deposit blocked RIGHT AFTER execute_refund (before sign) + check!( + context.verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ), + "Already deposit utxo" + ); + + // 4. Sign the refund transaction + let pending_infos = context.get_btc_pending_infos_paged().await.unwrap(); + let pending_keys = pending_infos.keys().cloned().collect::>(); + check!( + print "sign_btc_transaction" + context.sign_btc_transaction("alice", &pending_keys[0], 0, 0) + ); + + // 5. verify_deposit STILL blocked after sign (after broadcast) + check!( + context.verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ), + "Already deposit utxo" + ); + + // 6. verify_refund_finalize — finalize the refund + check!( + print "verify_refund_finalize" + context.verify_refund_finalize( + "relayer", + &pending_keys[0], + blockhash.clone(), + 1, + vec![] + ) + ); + + // 7. Pending info cleaned up + assert!(context + .get_btc_pending_infos_paged() + .await + .unwrap() + .is_empty()); + + // 8. verify_deposit STILL blocked after verify_refund_finalize + check!( + context.verify_deposit("relayer", deposit_msg, tx_bytes, vout, blockhash, 1, vec![]), + "Already deposit utxo" + ); + + // 9. No nBTC was minted + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 0); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_race_deposit_wins() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "f7f7069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f24", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // 1. Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + None + ) + ); + + // 2. During timelock, Relayer calls verify_deposit — deposit succeeds + check!( + print "verify_deposit" + context.verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ) + ); + + // 3. nBTC minted to alice + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 100_000); + + // 4. Set timelock to 0 + context + .get_account_by_name("root") + .call(context.bridge_contract.id(), "update_config") + .args_json(json!({"update": {"refund_timelock_sec": 0}})) + .deposit(near_sdk::NearToken::from_yoctonear(1)) + .max_gas() + .transact() + .await + .unwrap() + .unwrap(); + + // 5. execute_refund fails — UTXO already verified via deposit + let key = utxo_storage_key(&tx_bytes, vout); + check!( + context.execute_refund("alice", &key), + "UTXO already verified via deposit, cannot refund" + ); + + // 6. nBTC still there — deposit was the winner + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 100_000); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_after_deposit_fails() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "a8a8069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f25", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // 1. verify_deposit — Relayer finalizes deposit first + check!( + print "verify_deposit" + context.verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ) + ); + + // 2. nBTC minted to alice + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 100_000); + + // 3. request_refund fails — UTXO already verified via deposit + check!( + context.request_refund( + "alice", + deposit_msg, + TARGET_ADDRESS, + tx_bytes, + vout, + blockhash, + 1, + vec![], + None + ), + "UTXO already verified via deposit" + ); + + // 4. nBTC still there + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 100_000); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_reject_then_deposit_succeeds() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "b9b9069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f26", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // 1. Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + None + ) + ); + + let key = utxo_storage_key(&tx_bytes, vout); + + // 2. DAO rejects the refund + check!( + print "reject_refund" + context.reject_refund("root", &key) + ); + + // 3. execute_refund fails — request was rejected + check!( + context.execute_refund("alice", &key), + "Refund request not found" + ); + + // 4. verify_deposit works normally — UTXO was not marked + check!( + print "verify_deposit" + context.verify_deposit( + "relayer", + deposit_msg, + tx_bytes, + vout, + blockhash, + 1, + vec![] + ) + ); + + // 5. nBTC minted to alice + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 100_000); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_double_request_after_execute() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "caca069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f27", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // 1. Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + None + ) + ); + + // 2. Set timelock to 0 and execute refund + context + .get_account_by_name("root") + .call(context.bridge_contract.id(), "update_config") + .args_json(json!({"update": {"refund_timelock_sec": 0}})) + .deposit(near_sdk::NearToken::from_yoctonear(1)) + .max_gas() + .transact() + .await + .unwrap() + .unwrap(); + + let key = utxo_storage_key(&tx_bytes, vout); + check!( + print "execute_refund" + context.execute_refund("alice", &key) + ); + + // 3. Second request_refund — should fail (UTXO marked in verified_deposit_utxo) + check!( + context.request_refund( + "alice", + deposit_msg, + TARGET_ADDRESS, + tx_bytes, + vout, + blockhash, + 1, + vec![], + None + ), + "UTXO already verified via deposit" + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_spoofed_refund_address() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + // Alice creates a real deposit with her refund address + let real_deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(real_deposit_msg.clone()) + .await + .unwrap(); + + // BTC transaction sends to the real deposit address + let tx_bytes = generate_transaction_bytes( + vec![( + "dbdb069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f28", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // Attacker creates a spoofed deposit_msg with a DIFFERENT refund_address + // but same recipient_id — this changes the hash, so script_pubkey won't match + let spoofed_deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa".to_string()), // attacker's address + }; + + // request_refund with spoofed deposit_msg — callback should panic + // because script_pubkey derived from spoofed msg won't match tx output + check!( + context.request_refund( + "bob", + spoofed_deposit_msg, + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + None + ), + "refund_address does not match deposit_msg.refund_address" + ); + + // Real request_refund still works + check!( + print "real request_refund" + context.request_refund( + "alice", + real_deposit_msg, + TARGET_ADDRESS, + tx_bytes, + vout, + blockhash, + 1, + vec![], + None + ) + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_race_safe_deposit_wins() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: Some(satoshi_bridge::SafeDepositMsg { + msg: "".to_string(), + }), + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "ecec069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f29", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // 1. Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + None + ) + ); + + // 2. During timelock, Relayer calls safe_verify_deposit — succeeds + // Register alice in nBTC first (safe_mint requires it) + check!(context.storage_deposit("nbtc", "alice")); + check!( + print "safe_verify_deposit" + context.safe_verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ) + ); + + // 3. nBTC minted to alice + assert!(context.ft_balance_of("alice").await.unwrap().0 > 0); + + // 4. Set timelock to 0 + context + .get_account_by_name("root") + .call(context.bridge_contract.id(), "update_config") + .args_json(json!({"update": {"refund_timelock_sec": 0}})) + .deposit(near_sdk::NearToken::from_yoctonear(1)) + .max_gas() + .transact() + .await + .unwrap() + .unwrap(); + + // 5. execute_refund fails — UTXO already verified via safe deposit + let key = utxo_storage_key(&tx_bytes, vout); + check!( + context.execute_refund("alice", &key), + "UTXO already verified via deposit, cannot refund" + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_after_safe_deposit_fails() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: Some(satoshi_bridge::SafeDepositMsg { + msg: "".to_string(), + }), + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "fdfd069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f30", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // 1. Register alice in nBTC and do safe_verify_deposit + check!(context.storage_deposit("nbtc", "alice")); + check!( + print "safe_verify_deposit" + context.safe_verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ) + ); + + // 2. nBTC minted + assert!(context.ft_balance_of("alice").await.unwrap().0 > 0); + + // 3. request_refund fails — UTXO already verified + check!( + context.request_refund( + "alice", + deposit_msg, + TARGET_ADDRESS, + tx_bytes, + vout, + blockhash, + 1, + vec![], + None + ), + "UTXO already verified via deposit" + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_then_safe_deposit_fails() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: Some(satoshi_bridge::SafeDepositMsg { + msg: "".to_string(), + }), + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "abab069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f31", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // Register alice in nBTC (needed for safe_verify_deposit attempts) + check!(context.storage_deposit("nbtc", "alice")); + + // 1. Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + None + ) + ); + + // 2. Set timelock to 0 and execute refund + context + .get_account_by_name("root") + .call(context.bridge_contract.id(), "update_config") + .args_json(json!({"update": {"refund_timelock_sec": 0}})) + .deposit(near_sdk::NearToken::from_yoctonear(1)) + .max_gas() + .transact() + .await + .unwrap() + .unwrap(); + + let key = utxo_storage_key(&tx_bytes, vout); + check!( + print "execute_refund" + context.execute_refund("alice", &key) + ); + + // 3. safe_verify_deposit blocked RIGHT AFTER execute_refund (before sign) + check!( + context.safe_verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ), + "Already deposit utxo" + ); + + // 4. Sign the refund transaction + let pending_infos = context.get_btc_pending_infos_paged().await.unwrap(); + let pending_keys = pending_infos.keys().cloned().collect::>(); + check!( + print "sign_btc_transaction" + context.sign_btc_transaction("alice", &pending_keys[0], 0, 0) + ); + + // 5. safe_verify_deposit STILL blocked after sign (after broadcast) + check!( + context.safe_verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![] + ), + "Already deposit utxo" + ); + + // 6. verify_refund_finalize — finalize the refund + check!( + print "verify_refund_finalize" + context.verify_refund_finalize( + "relayer", + &pending_keys[0], + blockhash.clone(), + 1, + vec![] + ) + ); + + // 7. Cleaned up + assert!(context + .get_btc_pending_infos_paged() + .await + .unwrap() + .is_empty()); + + // 8. safe_verify_deposit STILL blocked after verify_refund_finalize + check!( + context.safe_verify_deposit("relayer", deposit_msg, tx_bytes, vout, blockhash, 1, vec![]), + "Already deposit utxo" + ); + + // 9. No nBTC minted + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 0); +} + +// ── refund_address matching tests ── + +/// deposit_msg.refund_address is set and matches the provided refund_address — works +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_address_matches_deposit_msg() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "e1e1069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f30", + 0, + None, + )], + vec![(deposit_address.as_str(), 50_000)], + ); + + // refund_address matches deposit_msg.refund_address — should succeed + check!( + print "request_refund matching address" + context.request_refund( + "alice", + deposit_msg, + TARGET_ADDRESS, + tx_bytes, + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d" + .to_string(), + 1, + vec![], + None + ) + ); +} + +/// deposit_msg.refund_address is None — provided refund_address is used +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_address_none_in_deposit_msg() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + // No refund_address in deposit_msg + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: None, + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "f2f2069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f31", + 0, + None, + )], + vec![(deposit_address.as_str(), 50_000)], + ); + + // refund_address provided externally — should succeed + check!( + print "request_refund with external address" + context.request_refund( + "alice", + deposit_msg, + TARGET_ADDRESS, + tx_bytes, + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d" + .to_string(), + 1, + vec![], + None + ) + ); +} + +/// deposit_msg.refund_address is set but doesn't match — should fail +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_address_mismatch() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "a3a3069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f32", + 0, + None, + )], + vec![(deposit_address.as_str(), 50_000)], + ); + + let wrong_address = "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"; + + // refund_address doesn't match deposit_msg.refund_address — should fail + check!( + context.request_refund( + "alice", + deposit_msg, + wrong_address, + tx_bytes, + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![], + None + ), + "refund_address does not match deposit_msg.refund_address" + ); +} + +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_refund_operator_skips_timelock() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: Some(TARGET_ADDRESS.to_string()), + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "f4f5069f02ad4ca31a16113903ab9fe9e8da6ddf20cad4b461b71e8b96050f30", + 0, + None, + )], + vec![(deposit_address.as_str(), 100_000)], + ); + let vout: u32 = 0; + + // 1. Request refund + check!( + print "request_refund" + context.request_refund( + "alice", + deposit_msg.clone(), + TARGET_ADDRESS, + tx_bytes.clone(), + vout, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d" + .to_string(), + 1, + vec![], + None + ) + ); + + let key = utxo_storage_key(&tx_bytes, vout); + + // 2. Set a long timelock so it definitely hasn't passed + context + .get_account_by_name("root") + .call(context.bridge_contract.id(), "update_config") + .args_json(json!({"update": {"refund_timelock_sec": 999999}})) + .deposit(near_sdk::NearToken::from_yoctonear(1)) + .max_gas() + .transact() + .await + .unwrap() + .unwrap(); + + // 3. Regular user (alice) — blocked by timelock + check!( + context.execute_refund("alice", &key), + "Refund timelock has not passed yet" + ); + + // 4. Grant Operator role to alice + check!(context.bridge_acl_grant_role( + "root", + "Operator", + &context.get_account_by_name("alice").sdk_id() + )); + + // 5. Operator (alice) — timelock skipped, execute succeeds + check!( + print "execute_refund as operator" + context.execute_refund("alice", &key) + ); +} diff --git a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs index bb0dc3e6..196b37e4 100644 --- a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs +++ b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs @@ -114,6 +114,7 @@ async fn test_base() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -123,6 +124,7 @@ async fn test_base() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -134,6 +136,7 @@ async fn test_base() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -182,6 +185,7 @@ async fn test_base() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -231,6 +235,7 @@ async fn test_base() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -264,6 +269,7 @@ async fn test_base() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -483,6 +489,7 @@ async fn test_fix_bridge_fee_and_relayer() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -494,6 +501,7 @@ async fn test_fix_bridge_fee_and_relayer() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -623,6 +631,7 @@ async fn test_ratio_bridge_fee_and_relayer() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -634,6 +643,7 @@ async fn test_ratio_bridge_fee_and_relayer() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -766,6 +776,7 @@ async fn test_directly_withdraw() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -777,6 +788,7 @@ async fn test_directly_withdraw() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -895,6 +907,7 @@ async fn test_one_click() { }]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -955,6 +968,7 @@ async fn test_one_click() { }]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1012,6 +1026,7 @@ async fn test_one_click() { }]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1078,6 +1093,7 @@ async fn test_one_click() { ]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1151,6 +1167,7 @@ async fn test_one_click() { ]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1208,6 +1225,7 @@ async fn test_one_click() { }]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1274,6 +1292,7 @@ async fn test_one_click() { ]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1341,6 +1360,7 @@ async fn test_one_click() { ]), extra_msg: None, safe_deposit: None, + refund_address: None, }; let alice_btc_deposit_address = context .get_user_deposit_address(deposit_msg.clone()) @@ -1403,6 +1423,7 @@ async fn test_utxo_passive_management() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -1415,6 +1436,7 @@ async fn test_utxo_passive_management() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -1439,6 +1461,7 @@ async fn test_utxo_passive_management() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -1625,6 +1648,7 @@ async fn test_cancel_withdraw() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -1636,6 +1660,7 @@ async fn test_cancel_withdraw() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -1860,6 +1885,7 @@ async fn test_cancel_withdraw2() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -1871,6 +1897,7 @@ async fn test_cancel_withdraw2() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -2044,6 +2071,7 @@ async fn test_utxo_active_management() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -2056,6 +2084,7 @@ async fn test_utxo_active_management() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -2080,6 +2109,7 @@ async fn test_utxo_active_management() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -2413,6 +2443,7 @@ async fn test_utxo_active_management2() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -2425,6 +2456,7 @@ async fn test_utxo_active_management2() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -2449,6 +2481,7 @@ async fn test_utxo_active_management2() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, generate_transaction_bytes( vec![( @@ -2618,6 +2651,7 @@ async fn test_unauthorized_account_cannot_call_trusted_relayer_methods() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }) .await .unwrap(); @@ -2631,6 +2665,7 @@ async fn test_unauthorized_account_cannot_call_trusted_relayer_methods() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, "tx_bytes": generate_transaction_bytes( vec![( @@ -2665,6 +2700,7 @@ async fn test_unauthorized_account_cannot_call_trusted_relayer_methods() { post_actions: None, extra_msg: None, safe_deposit: None, + refund_address: None, }, "tx_bytes": generate_transaction_bytes( vec![( diff --git a/doc/refund-after-deposit-fails-flow.md b/doc/refund-after-deposit-fails-flow.md new file mode 100644 index 00000000..59ad4f4b --- /dev/null +++ b/doc/refund-after-deposit-fails-flow.md @@ -0,0 +1,71 @@ +# Refund after verify_deposit — request_refund blocked + +Relayer already called `verify_deposit`, UTXO is in `verified_deposit_utxo`, +nBTC minted. User tries `request_refund` for the same UTXO — fails immediately +because UTXO is already finalized. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `verify_deposit` | `contracts/satoshi-bridge/src/api/bridge.rs:22` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `verify_deposit_callback` | `contracts/satoshi-bridge/src/btc_light_client/deposit.rs:147` | +| 5 | `mint` | `contracts/nbtc/src/lib.rs:118` | +| 6 | `mint_callback` | `contracts/satoshi-bridge/src/nbtc/mint.rs:46` | +| 7 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant N as nBTC Contract + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + R->>B: verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:22 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: verify_deposit_callback
📄 btc_light_client/deposit.rs:147 + + B->>N: mint(recipient_id, mint_amount)
📄 nbtc/src/lib.rs:118 + N-->>B: OK + + Note over B: mint_callback
📄 nbtc/mint.rs:46 + B-->>U: nBTC credited to recipient + + Note over U,B: User tries to request refund + + rect rgb(255, 200, 200) + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + Note over B: PANIC: "UTXO already verified via deposit" + end + + Note over B: Deposit completed, nBTC minted,
refund impossible +``` diff --git a/doc/refund-after-safe-deposit-fails-flow.md b/doc/refund-after-safe-deposit-fails-flow.md new file mode 100644 index 00000000..6e257691 --- /dev/null +++ b/doc/refund-after-safe-deposit-fails-flow.md @@ -0,0 +1,69 @@ +# Refund after safe_verify_deposit — request_refund blocked + +Relayer already called `safe_verify_deposit`, UTXO is in `verified_deposit_utxo`, +nBTC minted via OmniBridge. User tries `request_refund` for the same UTXO — +fails immediately because UTXO is already finalized. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `safe_verify_deposit` | `contracts/satoshi-bridge/src/api/bridge.rs:95` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `verify_safe_deposit_callback` | `contracts/satoshi-bridge/src/btc_light_client/deposit.rs:179` | +| 5 | `safe_mint` | `contracts/nbtc/src/lib.rs:96` | +| 6 | `safe_mint_callback` | `contracts/satoshi-bridge/src/btc_light_client/deposit.rs:214` | +| 7 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant N as nBTC Contract + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, safe_deposit: {msg},
refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + R->>B: safe_verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:95 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + + Note over B: verify_safe_deposit_callback + + B->>N: safe_mint(recipient, amount, msg)
📄 nbtc/src/lib.rs:96 + N-->>B: OK + + Note over B: safe_mint_callback + B-->>U: nBTC credited to recipient + + Note over U,B: User tries to request refund + + rect rgb(255, 200, 200) + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + Note over B: PANIC: "UTXO already verified via deposit" + end +``` diff --git a/doc/refund-double-request-after-execute-flow.md b/doc/refund-double-request-after-execute-flow.md new file mode 100644 index 00000000..ba494046 --- /dev/null +++ b/doc/refund-double-request-after-execute-flow.md @@ -0,0 +1,66 @@ +# Refund — second request_refund after execute blocked + +User requests refund, executes it. Then tries `request_refund` again +for the same UTXO — fails because `execute_refund` marked the UTXO +in `verified_deposit_utxo`. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs` | +| 5 | `execute_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:454` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + + Note over B: request_refund_callback + B->>B: Save RefundRequest + + Note over B: Timelock passes + + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + Note over B: UTXO added to verified_deposit_utxo + + Note over U,B: User tries request_refund again + + rect rgb(255, 200, 200) + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + Note over B: PANIC: "UTXO already verified via deposit" + end +``` diff --git a/doc/refund-flow.md b/doc/refund-flow.md new file mode 100644 index 00000000..788fd51d --- /dev/null +++ b/doc/refund-flow.md @@ -0,0 +1,91 @@ +# Refund Flow (BTC → BTC, deposit never finalized) + +User deposited BTC with `refund_address` in DepositMsg, but `verify_deposit` was never called. +Anyone who knows the deposit_msg can request a refund. After timelock passes, DAO/Operator +executes the refund — BTC is sent back to the refund address. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `DepositMsg.refund_address` | `contracts/satoshi-bridge/src/deposit_msg.rs:27` | +| 3 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 4 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 5 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs:170` | +| 6 | `execute_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:454` | +| 7 | `sign_btc_transaction` | `contracts/satoshi-bridge/src/api/chain_signatures.rs:21` | +| 8 | `sign` (MPC) | `contracts/satoshi-bridge/src/chain_signature.rs:57` | +| 9 | `sign_btc_transaction_callback` | `contracts/satoshi-bridge/src/chain_signature.rs:135` | +| 10 | `verify_refund_finalize` | `contracts/satoshi-bridge/src/api/bridge.rs` | +| 11 | `verify_refund_finalize_callback` | `contracts/satoshi-bridge/src/refund.rs` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant MPC as Chain Signatures
(MPC) + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + Note over B: verify_deposit never called
(relayer down, user changed mind, etc.) + + U->>B: request_refund(deposit_msg,
tx_bytes, vout, tx_block_blockhash,
tx_index, merkle_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid / invalid + + Note over B: request_refund_callback
📄 refund.rs:170 + B->>B: Save RefundRequest {
utxo_storage_key, amount, created_at} + + rect rgb(255, 200, 200) + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + Note over B: PANIC: "Refund timelock has not passed yet" + end + + Note over B: Timelock period passes
(refund_timelock_sec) + + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + Note over B: Check: timelock passed?
Check: UTXO not in verified_deposit_utxo? + Note over B: Build PSBT:
input = deposit UTXO
output = refund_address
remainder = gas fee + + U->>B: sign_btc_transaction(sign_index)
📄 api/chain_signatures.rs:21 + + B->>MPC: sign(payload, path, key_version)
📄 chain_signature.rs:57 + MPC-->>B: signature + + Note over B: sign_btc_transaction_callback
📄 chain_signature.rs:135 + + U->>BTC: Broadcast refund transaction + BTC-->>U: BTC returned to refund_address + + R->>B: verify_refund_finalize(tx_id, tx_block_blockhash,
tx_index, merkle_proof)
📄 api/bridge.rs + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: verify_refund_finalize_callback
📄 refund.rs + B->>B: Remove BTCPendingInfo +``` diff --git a/doc/refund-no-withdraw-flow.md b/doc/refund-no-withdraw-flow.md new file mode 100644 index 00000000..077de6e2 --- /dev/null +++ b/doc/refund-no-withdraw-flow.md @@ -0,0 +1,96 @@ +# Refund Flow — verify_withdraw / withdraw_rbf / cancel_withdraw blocked + +After refund is executed and signed, the refund BTCPendingInfo has state `Refund`. +`verify_withdraw`, `withdraw_rbf`, and `cancel_withdraw` all reject it — +they only accept Withdraw-related states. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs:170` | +| 5 | `execute_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:454` | +| 6 | `sign_btc_transaction` | `contracts/satoshi-bridge/src/api/chain_signatures.rs:21` | +| 7 | `sign` (MPC) | `contracts/satoshi-bridge/src/chain_signature.rs:57` | +| 8 | `sign_btc_transaction_callback` | `contracts/satoshi-bridge/src/chain_signature.rs:135` | +| 9 | `verify_withdraw` | `contracts/satoshi-bridge/src/api/bridge.rs:168` | +| 10 | `withdraw_rbf` | `contracts/satoshi-bridge/src/api/bridge.rs:203` | +| 11 | `cancel_withdraw` | `contracts/satoshi-bridge/src/api/bridge.rs:234` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant MPC as Chain Signatures
(MPC) + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: request_refund_callback
📄 refund.rs:170 + B->>B: Save RefundRequest + + Note over B: Timelock passes + + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + + U->>B: sign_btc_transaction(sign_index)
📄 api/chain_signatures.rs:21 + + B->>MPC: sign(payload, path, key_version)
📄 chain_signature.rs:57 + MPC-->>B: signature + + Note over B: sign_btc_transaction_callback
📄 chain_signature.rs:135 + + U->>BTC: Broadcast refund transaction + BTC-->>U: BTC returned to refund_address + + Note over R,B: Attempts to use withdraw operations on refund tx + + rect rgb(255, 200, 200) + R->>B: verify_withdraw(tx_id)
📄 api/bridge.rs:168 + Note over B: PANIC: "Not withdraw related tx" + + U->>B: withdraw_rbf(btc_pending_verify_id)
📄 api/bridge.rs:203 + Note over B: PANIC: "Not original tx" + + R->>B: cancel_withdraw(btc_pending_verify_id)
📄 api/bridge.rs:234 + Note over B: PANIC: "Not original tx" + end + + R->>B: verify_refund_finalize(tx_id, tx_proof)
📄 api/bridge.rs + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: verify_refund_finalize_callback
📄 refund.rs + B->>B: Remove BTCPendingInfo +``` diff --git a/doc/refund-race-deposit-wins-flow.md b/doc/refund-race-deposit-wins-flow.md new file mode 100644 index 00000000..43ff9b26 --- /dev/null +++ b/doc/refund-race-deposit-wins-flow.md @@ -0,0 +1,86 @@ +# Refund Race — verify_deposit wins before execute_refund + +User requests refund, but during timelock period the Relayer calls `verify_deposit`. +Deposit succeeds, UTXO is marked in `verified_deposit_utxo`. +When user tries `execute_refund` — it fails because UTXO is already finalized. +nBTC is minted normally. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs` | +| 5 | `verify_deposit` | `contracts/satoshi-bridge/src/api/bridge.rs:22` | +| 6 | `verify_deposit_callback` | `contracts/satoshi-bridge/src/btc_light_client/deposit.rs:147` | +| 7 | `mint` | `contracts/nbtc/src/lib.rs:118` | +| 8 | `mint_callback` | `contracts/satoshi-bridge/src/nbtc/mint.rs:46` | +| 9 | `execute_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:454` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant N as nBTC Contract + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: request_refund_callback + B->>B: Save RefundRequest + + Note over B: Timelock period (waiting...) + + Note over R,B: Relayer calls verify_deposit during timelock + + R->>B: verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:22 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: verify_deposit_callback
📄 btc_light_client/deposit.rs:147 + + B->>N: mint(recipient_id, mint_amount)
📄 nbtc/src/lib.rs:118 + N-->>B: OK + + Note over B: mint_callback
📄 nbtc/mint.rs:46 + B-->>U: nBTC credited to recipient + + Note over U,B: User tries execute_refund after timelock + + rect rgb(255, 200, 200) + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + Note over B: PANIC: "UTXO already verified via deposit,
cannot refund" + end + + Note over B: Deposit completed normally,
nBTC minted, refund impossible +``` diff --git a/doc/refund-race-safe-deposit-wins-flow.md b/doc/refund-race-safe-deposit-wins-flow.md new file mode 100644 index 00000000..f08b4fe1 --- /dev/null +++ b/doc/refund-race-safe-deposit-wins-flow.md @@ -0,0 +1,83 @@ +# Refund Race — safe_verify_deposit wins before execute_refund + +User requests refund, but during timelock period the Relayer calls `safe_verify_deposit` +(OmniBridge integration). Safe deposit succeeds, UTXO is marked in `verified_deposit_utxo`. +When user tries `execute_refund` — it fails because UTXO is already finalized. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs` | +| 5 | `safe_verify_deposit` | `contracts/satoshi-bridge/src/api/bridge.rs:95` | +| 6 | `verify_safe_deposit_callback` | `contracts/satoshi-bridge/src/btc_light_client/deposit.rs:179` | +| 7 | `safe_mint` | `contracts/nbtc/src/lib.rs:96` | +| 8 | `safe_mint_callback` | `contracts/satoshi-bridge/src/btc_light_client/deposit.rs:214` | +| 9 | `execute_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:454` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant N as nBTC Contract + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, safe_deposit: {msg},
refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + + Note over B: request_refund_callback + B->>B: Save RefundRequest + + Note over B: Timelock period (waiting...) + + Note over R,B: Relayer calls safe_verify_deposit during timelock + + R->>B: safe_verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:95 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + + Note over B: verify_safe_deposit_callback + + B->>N: safe_mint(recipient, amount, msg)
📄 nbtc/src/lib.rs:96 + N-->>B: OK + + Note over B: safe_mint_callback + B-->>U: nBTC credited to recipient + + Note over U,B: User tries execute_refund after timelock + + rect rgb(255, 200, 200) + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + Note over B: PANIC: "UTXO already verified via deposit,
cannot refund" + end +``` diff --git a/doc/refund-reject-then-deposit-flow.md b/doc/refund-reject-then-deposit-flow.md new file mode 100644 index 00000000..36df4508 --- /dev/null +++ b/doc/refund-reject-then-deposit-flow.md @@ -0,0 +1,81 @@ +# Refund Reject → Deposit succeeds + +User requests refund, DAO rejects it. After rejection the UTXO is NOT marked +in `verified_deposit_utxo`, so normal `verify_deposit` works and nBTC is minted. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs` | +| 5 | `reject_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:447` | +| 6 | `verify_deposit` | `contracts/satoshi-bridge/src/api/bridge.rs:22` | +| 7 | `verify_deposit_callback` | `contracts/satoshi-bridge/src/btc_light_client/deposit.rs:147` | +| 8 | `mint` | `contracts/nbtc/src/lib.rs:118` | +| 9 | `mint_callback` | `contracts/satoshi-bridge/src/nbtc/mint.rs:46` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant N as nBTC Contract + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: request_refund_callback + B->>B: Save RefundRequest + + R->>B: reject_refund(utxo_storage_key)
📄 api/bridge.rs:447 + Note over B: RefundRequest removed,
UTXO NOT marked in verified_deposit_utxo + + rect rgb(255, 200, 200) + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + Note over B: PANIC: "Refund request not found" + end + + Note over R,B: Normal deposit flow proceeds + + R->>B: verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:22 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: verify_deposit_callback
📄 btc_light_client/deposit.rs:147 + + B->>N: mint(recipient_id, mint_amount)
📄 nbtc/src/lib.rs:118 + N-->>B: OK + + Note over B: mint_callback
📄 nbtc/mint.rs:46 + B-->>U: nBTC credited to recipient +``` diff --git a/doc/refund-then-deposit-fails-flow.md b/doc/refund-then-deposit-fails-flow.md new file mode 100644 index 00000000..cfd01e81 --- /dev/null +++ b/doc/refund-then-deposit-fails-flow.md @@ -0,0 +1,105 @@ +# Refund Flow — verify_deposit after refund fails + +User deposits BTC, requests and executes refund. Later, Relayer tries +to call `verify_deposit` for the same UTXO — it fails because the UTXO +was already spent on Bitcoin by the refund transaction. + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs:170` | +| 5 | `execute_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:454` | +| 6 | `sign_btc_transaction` | `contracts/satoshi-bridge/src/api/chain_signatures.rs:21` | +| 7 | `sign` (MPC) | `contracts/satoshi-bridge/src/chain_signature.rs:57` | +| 8 | `sign_btc_transaction_callback` | `contracts/satoshi-bridge/src/chain_signature.rs:135` | +| 9 | `verify_deposit` | `contracts/satoshi-bridge/src/api/bridge.rs:22` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant MPC as Chain Signatures
(MPC) + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: request_refund_callback
📄 refund.rs:170 + B->>B: Save RefundRequest + + Note over B: Timelock passes + + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + + rect rgb(255, 200, 200) + Note over R,B: verify_deposit blocked after execute_refund + R->>B: verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:22 + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + Note over B: PANIC: "Already deposit utxo" + end + + U->>B: sign_btc_transaction(sign_index)
📄 api/chain_signatures.rs:21 + + B->>MPC: sign(payload, path, key_version)
📄 chain_signature.rs:57 + MPC-->>B: signature + + Note over B: sign_btc_transaction_callback
📄 chain_signature.rs:135 + + U->>BTC: Broadcast refund transaction + BTC-->>U: BTC returned to refund_address + + rect rgb(255, 200, 200) + Note over R,B: verify_deposit still blocked after broadcast + R->>B: verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:22 + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + Note over B: PANIC: "Already deposit utxo" + end + + R->>B: verify_refund_finalize(tx_id, tx_proof)
📄 api/bridge.rs + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof)
📄 btc_light_client/mod.rs:113 + LC-->>B: valid + + Note over B: verify_refund_finalize_callback
📄 refund.rs + B->>B: Remove BTCPendingInfo + + rect rgb(255, 200, 200) + Note over R,B: verify_deposit still blocked after verify_refund_finalize + R->>B: verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:22 + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + Note over B: PANIC: "Already deposit utxo" + end +``` diff --git a/doc/refund-then-safe-deposit-fails-flow.md b/doc/refund-then-safe-deposit-fails-flow.md new file mode 100644 index 00000000..2abad68f --- /dev/null +++ b/doc/refund-then-safe-deposit-fails-flow.md @@ -0,0 +1,109 @@ +# Refund executed — safe_verify_deposit blocked + +User requests and executes refund. `execute_refund` marks UTXO in `verified_deposit_utxo`. +Later, Relayer tries `safe_verify_deposit` — Light Client returns valid, +but callback panics with "Already deposit utxo". + +## File References + +| # | Method | File | +|---|--------|------| +| 1 | `get_user_deposit_address` | `contracts/satoshi-bridge/src/api/bridge.rs:406` | +| 2 | `request_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:426` | +| 3 | `verify_transaction_inclusion` | `contracts/satoshi-bridge/src/btc_light_client/mod.rs:113` | +| 4 | `request_refund_callback` | `contracts/satoshi-bridge/src/refund.rs` | +| 5 | `execute_refund` | `contracts/satoshi-bridge/src/api/bridge.rs:454` | +| 6 | `sign_btc_transaction` | `contracts/satoshi-bridge/src/api/chain_signatures.rs:21` | +| 7 | `sign` (MPC) | `contracts/satoshi-bridge/src/chain_signature.rs:57` | +| 8 | `sign_btc_transaction_callback` | `contracts/satoshi-bridge/src/chain_signature.rs:135` | +| 9 | `safe_verify_deposit` | `contracts/satoshi-bridge/src/api/bridge.rs:95` | +| 10 | `verify_refund_finalize` | `contracts/satoshi-bridge/src/api/bridge.rs` | +| 11 | `verify_refund_finalize_callback` | `contracts/satoshi-bridge/src/refund.rs` | + +## Sequence Diagram + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': {'actorTextColor': '#000000', 'actorLineColor': '#333333', 'signalColor': '#333333', 'signalTextColor': '#000000', 'noteBkgColor': '#fff9c4', 'noteTextColor': '#000000', 'messageFontSize': '14px'}}}%% +sequenceDiagram + autonumber + + box rgb(224, 224, 224) Off-chain + participant U as User + end + + box rgb(255, 224, 178) Bitcoin + participant BTC as Bitcoin Network + end + + box rgb(224, 224, 224) Off-chain + participant R as Relayer + end + + box rgb(187, 222, 251) NEAR Protocol + participant B as btc_connector
(satoshi-bridge) + participant LC as BTC Light Client + participant MPC as Chain Signatures
(MPC) + end + + U->>B: get_user_deposit_address(DepositMsg {
recipient_id, safe_deposit: {msg},
refund_address: "bc1q..."})
📄 api/bridge.rs:406 + B-->>U: BTC deposit address + + U->>BTC: Send BTC to deposit address + Note over BTC: Transaction confirmed + + U->>B: request_refund(deposit_msg, tx_proof)
📄 api/bridge.rs:426 + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + + Note over B: request_refund_callback + B->>B: Save RefundRequest + + Note over B: Timelock passes + + U->>B: execute_refund(utxo_storage_key)
📄 api/bridge.rs:454 + Note over B: UTXO added to verified_deposit_utxo + + rect rgb(255, 200, 200) + Note over R,B: safe_verify_deposit blocked after execute_refund + R->>B: safe_verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:95 + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + Note over B: PANIC: "Already deposit utxo" + end + + U->>B: sign_btc_transaction(sign_index)
📄 api/chain_signatures.rs:21 + + B->>MPC: sign(payload, path, key_version)
📄 chain_signature.rs:57 + MPC-->>B: signature + + Note over B: sign_btc_transaction_callback
📄 chain_signature.rs:135 + + U->>BTC: Broadcast refund transaction + BTC-->>U: BTC returned to refund_address + + rect rgb(255, 200, 200) + Note over R,B: safe_verify_deposit still blocked after broadcast + R->>B: safe_verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:95 + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + Note over B: PANIC: "Already deposit utxo" + end + + R->>B: verify_refund_finalize(tx_id, tx_proof)
📄 api/bridge.rs + + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + + Note over B: verify_refund_finalize_callback + B->>B: Remove BTCPendingInfo + + Note over R,B: Relayer tries safe_verify_deposit + + rect rgb(255, 200, 200) + R->>B: safe_verify_deposit(deposit_msg, tx_proof)
📄 api/bridge.rs:95 + B->>LC: verify_transaction_inclusion(tx_id, merkle_proof) + LC-->>B: valid + Note over B: PANIC: "Already deposit utxo" + end +``` From 2afe4662c5a04c15ace4fa7a0702756621369faf Mon Sep 17 00:00:00 2001 From: Karim Date: Mon, 20 Apr 2026 20:26:18 +0100 Subject: [PATCH 22/28] fix: config migration (#34) * fix: config migration * Fix config fields order * fix tests * Remove `migrate_config` --------- Co-authored-by: Olga Kunyavskaya --- contracts/satoshi-bridge/src/config.rs | 7 +- contracts/satoshi-bridge/src/legacy.rs | 124 ++++++++++++++++-- contracts/satoshi-bridge/src/unit/mod.rs | 3 +- .../satoshi-bridge/tests/setup/context.rs | 4 +- .../satoshi-bridge/tests/test_upgrade.rs | 28 +++- 5 files changed, 146 insertions(+), 20 deletions(-) diff --git a/contracts/satoshi-bridge/src/config.rs b/contracts/satoshi-bridge/src/config.rs index 4ab203d1..d25c5ea7 100644 --- a/contracts/satoshi-bridge/src/config.rs +++ b/contracts/satoshi-bridge/src/config.rs @@ -108,11 +108,10 @@ pub struct Config { pub max_btc_tx_pending_sec: u32, // UTXOs less than or equal to this amount are allowed to be merged through active management. pub unhealthy_utxo_amount: u64, - #[cfg(feature = "zcash")] - pub expiry_height_gap: u32, // Timelock in seconds before a refund request can be executed. - #[cfg(not(feature = "zcash"))] pub refund_timelock_sec: u64, + #[cfg(feature = "zcash")] + pub expiry_height_gap: u32, } impl Config { @@ -234,7 +233,6 @@ pub struct ConfigUpdate { pub rbf_num_limit: Option, pub max_btc_tx_pending_sec: Option, pub unhealthy_utxo_amount: Option, - #[cfg(not(feature = "zcash"))] pub refund_timelock_sec: Option, } @@ -270,7 +268,6 @@ impl ConfigUpdate { set_if_some!(rbf_num_limit); set_if_some!(max_btc_tx_pending_sec); set_if_some!(unhealthy_utxo_amount); - #[cfg(not(feature = "zcash"))] set_if_some!(refund_timelock_sec); config.assert_valid(); diff --git a/contracts/satoshi-bridge/src/legacy.rs b/contracts/satoshi-bridge/src/legacy.rs index 0ba32414..bd961c70 100644 --- a/contracts/satoshi-bridge/src/legacy.rs +++ b/contracts/satoshi-bridge/src/legacy.rs @@ -191,10 +191,9 @@ impl From for Config { rbf_num_limit, max_btc_tx_pending_sec, unhealthy_utxo_amount: 1000, + refund_timelock_sec: 14 * 24 * 3600, // 2 weeks #[cfg(feature = "zcash")] expiry_height_gap: 1000, - #[cfg(not(feature = "zcash"))] - refund_timelock_sec: 14 * 24 * 3600, // 2 weeks } } } @@ -333,10 +332,9 @@ impl From for Config { rbf_num_limit, max_btc_tx_pending_sec, unhealthy_utxo_amount, + refund_timelock_sec: 14 * 24 * 3600, // 2 weeks #[cfg(feature = "zcash")] expiry_height_gap, - #[cfg(not(feature = "zcash"))] - refund_timelock_sec: 14 * 24 * 3600, // 2 weeks } } } @@ -410,7 +408,7 @@ impl From for ContractData { #[near(serializers = [borsh])] pub struct ContractDataV2 { #[cfg(feature = "zcash")] - pub config: LazyOption, + pub config: LazyOption, #[cfg(not(feature = "zcash"))] pub config: LazyOption, pub accounts: IterableMap, @@ -454,9 +452,6 @@ impl From for ContractData { } = c; Self { - #[cfg(feature = "zcash")] - config, - #[cfg(not(feature = "zcash"))] config: LazyOption::new( StorageKey::Config, Some(config.get().clone().unwrap().into()), @@ -484,9 +479,115 @@ impl From for ContractData { } } +#[near(serializers = [borsh])] +#[derive(Clone)] +pub struct ConfigV2 { + pub chain: crate::network::Chain, + pub btc_light_client_account_id: AccountId, + pub nbtc_account_id: AccountId, + pub chain_signatures_account_id: AccountId, + pub chain_signatures_root_public_key: Option, + pub change_address: Option, + pub confirmations_strategy: HashMap, + pub confirmations_delta: u8, + pub extra_msg_confirmations_delta: u8, + pub deposit_bridge_fee: BridgeFee, + pub withdraw_bridge_fee: BridgeFee, + pub min_deposit_amount: u128, + pub min_withdraw_amount: u128, + pub min_change_amount: u128, + pub max_change_amount: u128, + pub min_btc_gas_fee: u128, + pub max_btc_gas_fee: u128, + pub max_withdrawal_input_number: u8, + pub max_change_number: u8, + pub max_active_utxo_management_input_number: u8, + pub max_active_utxo_management_output_number: u8, + pub active_management_lower_limit: u32, + pub active_management_upper_limit: u32, + pub passive_management_lower_limit: u32, + pub passive_management_upper_limit: u32, + pub rbf_num_limit: u8, + pub max_btc_tx_pending_sec: u32, + pub unhealthy_utxo_amount: u64, + #[cfg(feature = "zcash")] + pub expiry_height_gap: u32, +} + +impl From for Config { + fn from(c: ConfigV2) -> Self { + let ConfigV2 { + chain, + btc_light_client_account_id, + nbtc_account_id, + chain_signatures_account_id, + chain_signatures_root_public_key, + change_address, + confirmations_strategy, + confirmations_delta, + extra_msg_confirmations_delta, + deposit_bridge_fee, + withdraw_bridge_fee, + min_deposit_amount, + min_withdraw_amount, + min_change_amount, + max_change_amount, + min_btc_gas_fee, + max_btc_gas_fee, + max_withdrawal_input_number, + max_change_number, + max_active_utxo_management_input_number, + max_active_utxo_management_output_number, + active_management_lower_limit, + active_management_upper_limit, + passive_management_lower_limit, + passive_management_upper_limit, + rbf_num_limit, + max_btc_tx_pending_sec, + unhealthy_utxo_amount, + #[cfg(feature = "zcash")] + expiry_height_gap, + } = c; + + Self { + chain, + btc_light_client_account_id, + nbtc_account_id, + chain_signatures_account_id, + chain_signatures_root_public_key, + change_address, + confirmations_strategy, + confirmations_delta, + extra_msg_confirmations_delta, + deposit_bridge_fee, + withdraw_bridge_fee, + min_deposit_amount, + min_withdraw_amount, + min_change_amount, + max_change_amount, + min_btc_gas_fee, + max_btc_gas_fee, + max_withdrawal_input_number, + max_change_number, + max_active_utxo_management_input_number, + max_active_utxo_management_output_number, + active_management_lower_limit, + active_management_upper_limit, + passive_management_lower_limit, + passive_management_upper_limit, + rbf_num_limit, + max_btc_tx_pending_sec, + unhealthy_utxo_amount, + refund_timelock_sec: 14 * 24 * 3600, // 2 weeks + #[cfg(feature = "zcash")] + expiry_height_gap, + } + } +} + #[near(serializers = [borsh])] pub struct ContractDataV3 { - pub config: LazyOption, + pub config: LazyOption, pub accounts: IterableMap, pub utxos: IterableMap, pub unavailable_utxos: IterableMap, @@ -528,7 +629,10 @@ impl From for ContractData { } = c; Self { - config, + config: LazyOption::new( + StorageKey::Config, + Some(config.get().clone().unwrap().into()), + ), accounts, utxos, unavailable_utxos, diff --git a/contracts/satoshi-bridge/src/unit/mod.rs b/contracts/satoshi-bridge/src/unit/mod.rs index 03a2f2da..56209c01 100644 --- a/contracts/satoshi-bridge/src/unit/mod.rs +++ b/contracts/satoshi-bridge/src/unit/mod.rs @@ -79,10 +79,9 @@ pub fn init_contract() -> Contract { chain_signatures_root_public_key: None, change_address: None, unhealthy_utxo_amount: 1000, + refund_timelock_sec: 3600, #[cfg(feature = "zcash")] expiry_height_gap: 1000, - #[cfg(not(feature = "zcash"))] - refund_timelock_sec: 3600, }) } diff --git a/contracts/satoshi-bridge/tests/setup/context.rs b/contracts/satoshi-bridge/tests/setup/context.rs index e9552d7c..5202e819 100644 --- a/contracts/satoshi-bridge/tests/setup/context.rs +++ b/contracts/satoshi-bridge/tests/setup/context.rs @@ -211,8 +211,8 @@ impl Context { "max_btc_tx_pending_sec": 3600 * 24, "unhealthy_utxo_amount": 1000, "max_pending_sign_txs": 1, - "expiry_height_gap": 5000, "refund_timelock_sec": 3600, + "expiry_height_gap": 5000, } })) .transact() @@ -1170,8 +1170,8 @@ impl UpgradeContext { "rbf_num_limit": 99, "max_btc_tx_pending_sec": 3600 * 24, "unhealthy_utxo_amount": 1000, - "expiry_height_gap": 1000, "refund_timelock_sec": 3600, + "expiry_height_gap": 1000, } })) .transact() diff --git a/contracts/satoshi-bridge/tests/test_upgrade.rs b/contracts/satoshi-bridge/tests/test_upgrade.rs index 1c0e2bb8..b19b28aa 100644 --- a/contracts/satoshi-bridge/tests/test_upgrade.rs +++ b/contracts/satoshi-bridge/tests/test_upgrade.rs @@ -1,6 +1,6 @@ mod setup; use near_sdk::serde_json::json; -use satoshi_bridge::Account; +use satoshi_bridge::{Account, Config}; use setup::*; #[tokio::test] @@ -43,6 +43,17 @@ async fn test_zcash_bridge_upgrade_from_v0_6_0() { check!(view upgrade_context.get_satoshi_bridge_version()); check!(upgrade_context.upgrade_satoshi_bridge("../../res/zcash_bridge.wasm")); check!(view upgrade_context.get_satoshi_bridge_version()); + + let config: Config = upgrade_context + .previous_satoshi_bridge_contract + .call("get_config") + .view() + .await + .unwrap() + .json() + .unwrap(); + + assert_eq!(config.refund_timelock_sec, 14 * 24 * 3600); } #[tokio::test] @@ -77,6 +88,7 @@ async fn test_nbtc_upgrade_from_v0_5_1() { /// to the current version (btc_pending_sign_ids: HashSet), /// reading an account created by the old contract must still work. #[tokio::test] +#[cfg(not(feature = "zcash"))] async fn test_btc_bridge_upgrade_from_v0_7_5_account_migration() { let worker = near_workspaces::sandbox().await.unwrap(); let upgrade_context = UpgradeContext::new( @@ -120,6 +132,20 @@ async fn test_btc_bridge_upgrade_from_v0_7_5_account_migration() { .unwrap(); assert_eq!(accounts.len(), 1); + + // get_config must deserialize into the new Config layout, proving the + // V3 config migration populated `refund_timelock_sec` with the default + // (v0.7.5 had no such field). + let config: Config = upgrade_context + .previous_satoshi_bridge_contract + .call("get_config") + .view() + .await + .unwrap() + .json() + .unwrap(); + + assert_eq!(config.refund_timelock_sec, 14 * 24 * 3600); } #[tokio::test] From 7e62867925f358e830ec9478a3a0c64e6ffa1a2c Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Wed, 22 Apr 2026 19:58:17 +0100 Subject: [PATCH 23/28] feat: Add paged view for refund requests (#36) * get refund * fmt --- contracts/satoshi-bridge/src/api/view.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/contracts/satoshi-bridge/src/api/view.rs b/contracts/satoshi-bridge/src/api/view.rs index c25f2b62..ce9eaa4c 100644 --- a/contracts/satoshi-bridge/src/api/view.rs +++ b/contracts/satoshi-bridge/src/api/view.rs @@ -1,3 +1,5 @@ +#[cfg(not(feature = "zcash"))] +use crate::RefundRequest; use crate::{ env, near, u128_dec_format, AccessControllable, Account, AccountId, BTCPendingInfo, Config, Contract, ContractExt, HashMap, HashSet, NearToken, Pausable, Role, U128, UTXO, @@ -294,6 +296,25 @@ impl Contract { REQUIRED_BALANCE_FOR_DEPOSIT } + #[cfg(not(feature = "zcash"))] + pub fn get_refund_requests_paged( + &self, + from_index: Option, + limit: Option, + ) -> HashMap { + let len = usize::try_from(self.data().refund_requests.len()) + .unwrap_or_else(|_| env::panic_str("Too many refund_requests")); + let skip_n = from_index.unwrap_or(0); + let take_n = limit.unwrap_or(len - skip_n); + self.data() + .refund_requests + .iter() + .skip(skip_n) + .take(take_n) + .map(|(k, v)| (k.clone(), v.into())) + .collect() + } + #[cfg(not(feature = "zcash"))] pub fn required_balance_for_execute_refund(&self) -> NearToken { // execute_refund uses ~700 bytes of storage (BTCPendingInfo + Account + verified_deposit_utxo) From b4e2bf82566ae08d429dd4b9f5b3567d7e910670 Mon Sep 17 00:00:00 2001 From: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> Date: Wed, 22 Apr 2026 21:05:29 +0200 Subject: [PATCH 24/28] feat: removed lock time verification (#35) --- contracts/satoshi-bridge/src/api/bridge.rs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/contracts/satoshi-bridge/src/api/bridge.rs b/contracts/satoshi-bridge/src/api/bridge.rs index b0366964..b4396699 100644 --- a/contracts/satoshi-bridge/src/api/bridge.rs +++ b/contracts/satoshi-bridge/src/api/bridge.rs @@ -39,10 +39,6 @@ impl Contract { .expect("Deserialization tx_bytes failed"); let deposit_amount = u128::from(transaction.output()[vout].value.to_sat()); require!(deposit_amount > 0, "Invalid deposit_amount"); - require!( - transaction.lock_time() == LockTime::ZERO, - "Tx with a non-zero lock_time are not supported." - ); let deposit_address = self.generate_utxo_chain_address(&path); let deposit_address_script_pubkey = deposit_address .script_pubkey() @@ -118,10 +114,6 @@ impl Contract { .expect("Deserialization tx_bytes failed"); let deposit_amount = transaction.output()[vout].value.to_sat().into(); require!(deposit_amount > 0, "Invalid deposit_amount"); - require!( - transaction.lock_time() == LockTime::ZERO, - "Tx with a non-zero lock_time are not supported." - ); let deposit_address = self.generate_utxo_chain_address(&path); let deposit_address_script_pubkey = deposit_address .script_pubkey() From edab79aafc8f7dcc3b1440c89e71558ad64d98c8 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Wed, 22 Apr 2026 22:22:48 +0100 Subject: [PATCH 25/28] Check gas fee < amount in refund (#37) * check gas fee < amount * fix tests --- contracts/satoshi-bridge/src/lib.rs | 2 +- contracts/satoshi-bridge/src/refund.rs | 4 ++++ contracts/satoshi-bridge/tests/test_refund.rs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index b36772a4..813c8164 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -14,7 +14,7 @@ use near_sdk::{ use omni_utils::macros::trusted_relayer; use std::collections::{HashMap, HashSet}; -use bitcoin::{absolute::LockTime, Amount, OutPoint, PublicKey as BtcPublicKey, ScriptBuf, TxOut}; +use bitcoin::{Amount, OutPoint, PublicKey as BtcPublicKey, ScriptBuf, TxOut}; pub mod account; pub mod api; diff --git a/contracts/satoshi-bridge/src/refund.rs b/contracts/satoshi-bridge/src/refund.rs index 4713ded1..ac56affc 100644 --- a/contracts/satoshi-bridge/src/refund.rs +++ b/contracts/satoshi-bridge/src/refund.rs @@ -374,6 +374,10 @@ impl Contract { ); let resolved_gas_fee = gas_fee.unwrap_or(config.max_btc_gas_fee); + require!( + resolved_gas_fee < amount, + "Gas fee must be less than deposit amount" + ); Event::RefundRequested { deposit_msg: deposit_msg.clone(), diff --git a/contracts/satoshi-bridge/tests/test_refund.rs b/contracts/satoshi-bridge/tests/test_refund.rs index 69e1fd1f..01ba47e9 100644 --- a/contracts/satoshi-bridge/tests/test_refund.rs +++ b/contracts/satoshi-bridge/tests/test_refund.rs @@ -325,7 +325,7 @@ async fn test_refund_duplicate_request() { 0, None, )], - vec![(deposit_address.as_str(), 50_000)], + vec![(deposit_address.as_str(), 100_000)], ); // First request — should succeed From 26997f9ca8072456da6b7a3db0dbf6fd2a5e4dd5 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Thu, 23 Apr 2026 23:42:08 +0100 Subject: [PATCH 26/28] update refund timelock (#39) --- contracts/satoshi-bridge/src/legacy.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/satoshi-bridge/src/legacy.rs b/contracts/satoshi-bridge/src/legacy.rs index bd961c70..08af4132 100644 --- a/contracts/satoshi-bridge/src/legacy.rs +++ b/contracts/satoshi-bridge/src/legacy.rs @@ -191,7 +191,7 @@ impl From for Config { rbf_num_limit, max_btc_tx_pending_sec, unhealthy_utxo_amount: 1000, - refund_timelock_sec: 14 * 24 * 3600, // 2 weeks + refund_timelock_sec: 2 * 24 * 3600, #[cfg(feature = "zcash")] expiry_height_gap: 1000, } @@ -332,7 +332,7 @@ impl From for Config { rbf_num_limit, max_btc_tx_pending_sec, unhealthy_utxo_amount, - refund_timelock_sec: 14 * 24 * 3600, // 2 weeks + refund_timelock_sec: 2 * 24 * 3600, #[cfg(feature = "zcash")] expiry_height_gap, } @@ -578,7 +578,7 @@ impl From for Config { rbf_num_limit, max_btc_tx_pending_sec, unhealthy_utxo_amount, - refund_timelock_sec: 14 * 24 * 3600, // 2 weeks + refund_timelock_sec: 2 * 24 * 3600, #[cfg(feature = "zcash")] expiry_height_gap, } From 4a669062ee51a476e078ebee7110e3f75308d8c2 Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Thu, 23 Apr 2026 23:42:52 +0100 Subject: [PATCH 27/28] fix safe mint (#38) * fix safe mint * fmt * add test for burn bridge tokens * remove output from test * test init transfer on verify deposit * prohibit transfer to bridge * add comment * return comment * reduce comment --- contracts/nbtc/src/lib.rs | 13 +- .../src/btc_light_client/deposit.rs | 3 + contracts/satoshi-bridge/src/deposit_msg.rs | 15 + .../tests/test_satoshi_bridge.rs | 382 ++++++++++++++++++ 4 files changed, 410 insertions(+), 3 deletions(-) diff --git a/contracts/nbtc/src/lib.rs b/contracts/nbtc/src/lib.rs index 5e502f13..88b35d10 100644 --- a/contracts/nbtc/src/lib.rs +++ b/contracts/nbtc/src/lib.rs @@ -100,17 +100,20 @@ impl Contract { msg: Option, ) -> PromiseOrValue { self.assert_bridge(); + require!( + account_id != self.bridge_id, + "safe_mint: account_id must not be the bridge" + ); + self.token.internal_deposit(&self.bridge_id, amount.into()); if self.token.accounts.get(&account_id).is_none() { return PromiseOrValue::Value(U128(0)); } if let Some(msg) = msg { - self.token.internal_deposit(&self.bridge_id, amount.into()); - self.ft_transfer_call(account_id, amount, None, msg) } else { - self.token.internal_deposit(&account_id, amount.into()); + self.ft_transfer(account_id, amount, None); PromiseOrValue::Value(amount) } } @@ -398,6 +401,10 @@ impl Contract { env::prepaid_gas() > GAS_FOR_FT_TRANSFER_CALL, "More gas is required" ); + require!( + receiver_id != self.bridge_id, + "handle_post_action: receiver_id must not be the bridge" + ); let amount = amount.into(); self.token .internal_transfer(&sender_id, &receiver_id, amount, memo); diff --git a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs index 6f9a40a3..a92c4a24 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs @@ -259,6 +259,9 @@ impl Contract { } } +/// Refund only if `safe_mint` returned 0. Any other outcome (non-zero +/// amount, unparseable payload, panic) is treated as "UTXO spent, no +/// refund" — for safety, to avoid a potential double spend. fn is_refund_required() -> bool { match env::promise_result_checked(0, MAX_FT_TRANSFER_CALL_RESULT) { Ok(value) => { diff --git a/contracts/satoshi-bridge/src/deposit_msg.rs b/contracts/satoshi-bridge/src/deposit_msg.rs index d51243da..4b46327e 100644 --- a/contracts/satoshi-bridge/src/deposit_msg.rs +++ b/contracts/satoshi-bridge/src/deposit_msg.rs @@ -83,6 +83,21 @@ impl Contract { let mut total_amount = 0; for (index, post_action) in post_actions.iter().enumerate() { total_amount += post_action.amount.0; + // The receiver_id cannot be the bridge itself — that would let a + // deposit immediately drive the bridge's own ft_on_transfer flow + // (e.g. TokenReceiverMessage::Withdraw) inside the relayer-paid + // receipt, which is outside the intended deposit semantics. + if post_action.receiver_id == env::current_account_id() { + Event::InvalidPostAction { + index: Some(index), + err_msg: format!( + "The receiver_id({}) of the post_action cannot be the bridge itself.", + post_action.receiver_id + ), + } + .emit(); + return None; + } // The receiver_id must be on the whitelist. if !self .data() diff --git a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs index 196b37e4..817463c4 100644 --- a/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs +++ b/contracts/satoshi-bridge/tests/test_satoshi_bridge.rs @@ -2764,3 +2764,385 @@ async fn test_unauthorized_account_cannot_call_trusted_relayer_methods() { "verify_active_utxo_management should reject an account without trusted-relayer role" ); } + +// Regression test for the safe_mint fix. +// When safe_verify_deposit is called with an unregistered recipient, safe_mint +// must deposit the amount to the bridge before returning U128(0) so that +// safe_mint_callback's burn (from bridge balance) succeeds. Before the fix, +// nothing was deposited and the detached burn would panic because +// internal_withdraw on the bridge's zero balance failed. The pre-seeded bridge +// balance also guards against a regression that would burn more than +// mint_amount and eat into the bridge's existing tokens. +#[tokio::test] +async fn test_safe_verify_deposit_unregistered_recipient_releases_utxo() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + // Seed the bridge with some nBTC: bob does a regular verify_deposit + // (which auto-registers him and mints to him) and then transfers part of + // his balance to the bridge account. + let bob_deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("bob").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: None, + }; + let bob_deposit_address = context + .get_user_deposit_address(bob_deposit_msg.clone()) + .await + .unwrap(); + check!(context.verify_deposit( + "relayer", + bob_deposit_msg, + generate_transaction_bytes( + vec![( + "0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e", + 0, + None, + )], + vec![ + (bob_deposit_address.as_str(), 200_000), + (TARGET_ADDRESS, 90_000), + ], + ), + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + )); + const BRIDGE_SEED: u128 = 150_000; + check!(context.ft_transfer("bob", "bridge", BRIDGE_SEED)); + + let bridge_balance_before = context.ft_balance_of("bridge").await.unwrap().0; + let total_supply_before = context.ft_total_supply().await.unwrap().0; + assert_eq!(bridge_balance_before, BRIDGE_SEED); + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: Some(satoshi_bridge::SafeDepositMsg { + msg: "".to_string(), + }), + refund_address: None, + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f", + 0, + None, + )], + vec![ + (deposit_address.as_str(), 100_000), + (TARGET_ADDRESS, 90_000), + ], + ); + let vout: u32 = 0; + let blockhash = "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(); + + // Sanity: alice is NOT registered on nBTC yet. + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 0); + + // safe_verify_deposit succeeds at the transaction level but safe_mint + // returns U128(0) because alice is not registered; safe_mint_callback + // then burns the mint_amount from the bridge. + let outcome = context + .safe_verify_deposit( + "relayer", + deposit_msg.clone(), + tx_bytes.clone(), + vout, + blockhash.clone(), + 1, + vec![], + ) + .await + .unwrap(); + assert!( + outcome.receipt_failures().is_empty(), + "safe_mint_callback burn must not panic on unregistered recipient, got: {:?}", + outcome.receipt_failures(), + ); + + // No tokens minted anywhere: the bridge-side mint and burn cancel out. + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 0); + // Pre-seeded bridge balance is untouched — only the just-minted amount + // was burned, not any of the bridge's existing tokens. + assert_eq!( + context.ft_balance_of("bridge").await.unwrap().0, + bridge_balance_before, + ); + assert_eq!( + context.ft_total_supply().await.unwrap().0, + total_supply_before, + ); + // UTXO was not added to the bridge's available set. + assert_eq!(context.get_utxos_paged().await.unwrap().len(), 1); // bob's utxo only + + // The UTXO key was released from verified_deposit_utxo, so the same + // deposit can be retried once alice registers. + check!(context.storage_deposit("nbtc", "alice")); + check!( + print "retry safe_verify_deposit" + context.safe_verify_deposit( + "relayer", + deposit_msg, + tx_bytes, + vout, + blockhash, + 1, + vec![], + ) + ); + assert_eq!(context.ft_balance_of("alice").await.unwrap().0, 100_000); + assert_eq!( + context.ft_balance_of("bridge").await.unwrap().0, + bridge_balance_before, + ); + assert_eq!(context.get_utxos_paged().await.unwrap().len(), 2); +} + +// Regression test: a post_action in verify_deposit must NOT be able to target +// the bridge itself. Previously, if the bridge account was added to the +// post_action_receiver_id_white_list, a relayer-paid deposit could drive the +// bridge's own ft_on_transfer (e.g. TokenReceiverMessage::Withdraw) within the +// same receipt chain. check_deposit_msg now rejects such post_actions up front +// and the deposit proceeds without running any of them. +#[tokio::test] +#[cfg(not(feature = "zcash"))] +async fn test_verify_deposit_post_action_to_bridge_is_rejected() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + let config = context.get_bridge_config().await.unwrap(); + let withdraw_change_address = context.get_change_address().await.unwrap(); + + // Seed the bridge with a single 200_000 UTXO via bob's regular deposit. + let bob_deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("bob").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: None, + refund_address: None, + }; + let bob_addr = context + .get_user_deposit_address(bob_deposit_msg.clone()) + .await + .unwrap(); + const SEED_UTXO_AMOUNT: u128 = 200_000; + check!(context.verify_deposit( + "relayer", + bob_deposit_msg, + generate_transaction_bytes( + vec![( + "0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e", + 0, + None, + )], + vec![ + (bob_addr.as_str(), SEED_UTXO_AMOUNT as u64), + (TARGET_ADDRESS, 90_000), + ], + ), + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + )); + + let seed_utxo_keys = context + .get_utxos_paged() + .await + .unwrap() + .keys() + .cloned() + .collect::>(); + assert_eq!(seed_utxo_keys.len(), 1); + let seed_utxo = seed_utxo_keys[0].split('@').collect::>(); + + // Whitelist the bridge as a post_action receiver. + check!( + context.extend_post_action_receiver_id_white_list(vec![context + .get_account_by_name("bridge") + .sdk_id()]) + ); + + // Build the Withdraw PSBT for the post_action. Numbers: + // post_action amount = 80_000 (>= min_withdraw_amount 70_000) + // withdraw_fee = 50_000 (fee_min) + // btc_gas_fee = 10_000 (== min_btc_gas_fee) + // user output (to target) = amount - withdraw_fee - gas_fee = 20_000 + // change (back to bridge) = seed - (amount - withdraw_fee) = 170_000 + let post_action_amount: u128 = 80_000; + let withdraw_fee = config.withdraw_bridge_fee.get_fee(post_action_amount); + assert_eq!(withdraw_fee, 50_000); + let btc_gas_fee: u64 = 10_000; + let user_output_value = post_action_amount as u64 - withdraw_fee as u64 - btc_gas_fee; + let change_value = SEED_UTXO_AMOUNT as u64 - (post_action_amount as u64 - withdraw_fee as u64); + + let withdraw_msg = TokenReceiverMessage::Withdraw { + target_btc_address: TARGET_ADDRESS.to_string(), + input: vec![OutPoint { + txid: seed_utxo[0].parse().unwrap(), + vout: seed_utxo[1].parse().unwrap(), + }], + output: vec![ + TxOut { + value: Amount::from_sat(user_output_value), + script_pubkey: Address::parse(TARGET_ADDRESS, get_chain()) + .expect("Invalid btc address") + .script_pubkey() + .expect("Failed to get script pubkey"), + }, + TxOut { + value: Amount::from_sat(change_value), + script_pubkey: Address::parse(withdraw_change_address.as_str(), get_chain()) + .expect("Invalid btc address") + .script_pubkey() + .expect("Failed to get script pubkey"), + }, + ], + max_gas_fee: None, + chain_specific_data: None, + }; + + // alice's deposit with a post_action that transfers to the bridge with + // the Withdraw message — this is the "init transfer" step. + const ALICE_DEPOSIT_AMOUNT: u128 = 100_000; + let alice_deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("alice").sdk_id(), + post_actions: Some(vec![PostAction { + receiver_id: context.get_account_by_name("bridge").sdk_id(), + amount: post_action_amount.into(), + memo: None, + msg: near_sdk::serde_json::to_string(&withdraw_msg).unwrap(), + gas: Some(Gas::from_tgas(100)), + }]), + extra_msg: None, + safe_deposit: None, + refund_address: None, + }; + + let alice_addr = context + .get_user_deposit_address(alice_deposit_msg.clone()) + .await + .unwrap(); + check!( + printr "verify_deposit with init-withdraw post_action" + context.verify_deposit( + "relayer", + alice_deposit_msg, + generate_transaction_bytes( + vec![( + "1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f", + 0, + None, + )], + vec![ + (alice_addr.as_str(), ALICE_DEPOSIT_AMOUNT as u64), + (TARGET_ADDRESS, 90_000), + ], + ), + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![] + ) + ); + + // The post_action was rejected by check_deposit_msg, so the deposit + // completes normally: alice gets the full mint, no transfer to bridge. + assert_eq!( + context.ft_balance_of("alice").await.unwrap().0, + ALICE_DEPOSIT_AMOUNT, + ); + assert_eq!(context.ft_balance_of("bridge").await.unwrap().0, 0); + + // The seed UTXO is still available (nothing was withdrawn), and alice's + // new UTXO was added alongside it. + let utxos = context.get_utxos_paged().await.unwrap(); + assert_eq!(utxos.len(), 2); + assert!( + utxos.contains_key(&seed_utxo_keys[0]), + "seed UTXO must remain available — no withdraw was initiated" + ); + + // No pending BTC withdraw was created. + assert!(context + .get_btc_pending_infos_paged() + .await + .unwrap() + .is_empty()); +} + +// safe_mint (in nbtc) must reject account_id == bridge_id. Otherwise the +// bridge-to-bridge ft_transfer* inside safe_mint would panic with +// "sender == receiver" from the NEP-141 standard, leaving the bridge with +// no minted tokens while the outer callback mistakenly records success. +#[tokio::test] +async fn test_safe_verify_deposit_to_bridge_recipient_is_rejected() { + let worker = near_workspaces::sandbox().await.unwrap(); + let context = Context::new(&worker, Some(CHAIN.to_string())).await; + + let deposit_msg = DepositMsg { + recipient_id: context.get_account_by_name("bridge").sdk_id(), + post_actions: None, + extra_msg: None, + safe_deposit: Some(satoshi_bridge::SafeDepositMsg { + msg: "".to_string(), + }), + refund_address: None, + }; + + let deposit_address = context + .get_user_deposit_address(deposit_msg.clone()) + .await + .unwrap(); + + let tx_bytes = generate_transaction_bytes( + vec![( + "2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e", + 0, + None, + )], + vec![ + (deposit_address.as_str(), 100_000), + (TARGET_ADDRESS, 90_000), + ], + ); + + let outcome = context + .safe_verify_deposit( + "relayer", + deposit_msg, + tx_bytes, + 0, + "0000000000000c3f818b0b6374c609dd8e548a0a9e61065e942cd466c426e00d".to_string(), + 1, + vec![], + ) + .await + .unwrap(); + + // safe_mint's require! must surface as a receipt failure. + let failures = outcome.receipt_failures(); + assert!( + !failures.is_empty(), + "safe_mint must reject bridge as recipient" + ); + let failure_text = format!("{:?}", failures); + assert!( + failure_text.contains("safe_mint: account_id must not be the bridge"), + "expected safe_mint guard in failures, got: {failure_text}" + ); + + // No tokens were minted anywhere. + assert_eq!(context.ft_balance_of("bridge").await.unwrap().0, 0); + assert_eq!(context.ft_total_supply().await.unwrap().0, 0); +} From 9672b394de0005fc3e5afaa4aebd72da85d5deb8 Mon Sep 17 00:00:00 2001 From: karim-en Date: Fri, 24 Apr 2026 00:25:00 +0100 Subject: [PATCH 28/28] fix: test --- contracts/satoshi-bridge/tests/test_upgrade.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/satoshi-bridge/tests/test_upgrade.rs b/contracts/satoshi-bridge/tests/test_upgrade.rs index b19b28aa..cae06c5b 100644 --- a/contracts/satoshi-bridge/tests/test_upgrade.rs +++ b/contracts/satoshi-bridge/tests/test_upgrade.rs @@ -145,7 +145,7 @@ async fn test_btc_bridge_upgrade_from_v0_7_5_account_migration() { .json() .unwrap(); - assert_eq!(config.refund_timelock_sec, 14 * 24 * 3600); + assert_eq!(config.refund_timelock_sec, 2 * 24 * 3600); } #[tokio::test]