From c8f634247d07a2089a380f3778d16527d7341b79 Mon Sep 17 00:00:00 2001 From: dope&&& <133738522+rondales@users.noreply.github.com> Date: Sun, 14 Apr 2024 14:44:27 -0400 Subject: [PATCH] Revert "BEP-322: Builder API Specification for BNB Smart Chain (#322)" This reverts commit d1ac2a222de1523ddb04662fe062d2f4aaeadfbb. --- BEPs/BEP322.md | 417 ------------------ BEPs/assets/bep-322/block_timing.png | Bin 95395 -> 0 bytes BEPs/assets/bep-322/workflow_1round.png | Bin 251823 -> 0 bytes BEPs/assets/bep-322/workflow_2round.png | Bin 251699 -> 0 bytes BEPs/assets/bep-322/workflow_2round_proxy.png | Bin 773906 -> 0 bytes BEPs/assets/bep-322/workflow_topology.png | Bin 189559 -> 0 bytes 6 files changed, 417 deletions(-) delete mode 100644 BEPs/BEP322.md delete mode 100644 BEPs/assets/bep-322/block_timing.png delete mode 100644 BEPs/assets/bep-322/workflow_1round.png delete mode 100644 BEPs/assets/bep-322/workflow_2round.png delete mode 100644 BEPs/assets/bep-322/workflow_2round_proxy.png delete mode 100644 BEPs/assets/bep-322/workflow_topology.png diff --git a/BEPs/BEP322.md b/BEPs/BEP322.md deleted file mode 100644 index eb84ee14..00000000 --- a/BEPs/BEP322.md +++ /dev/null @@ -1,417 +0,0 @@ -
- BEP: 322 - Title: Builder API Specification for BNB Smart Chain - Status: Draft - Type: Standards - Created: 2023-11-15 -- -# BEP-322: Builder API Specification for BNB Smart Chain - - - -- [BEP-322: Builder API Specification for BNB Smart Chain](#bep-322-builder-api-specification-for-bnb-smart-chain) - - [1. Summary](#1-summary) - - [2. Motivation](#2-motivation) - - [3. Background](#3-background) - - [3.1 BSC Trust Model](#31-bsc-trust-model) - - [3.2 BSC Consensus](#32-bsc-consensus) - - [4 Workflow](#4-workflow) - - [4.1 Definition](#41-definition) - - [4.2 One-Round Interaction (default)](#42-one-round-interaction-default) - - [4.3 Two-Round Interaction (optional)](#43-two-round-interaction-optional) - - [4.4 APIs](#44-apis) - - [4.4.1 Builder APIs](#441-builder-apis) - - [4.4.1.1 Retrieve Transactions](#4411-retrieve-transactions) - - [4.4.1.2 Issues Report](#4412-issues-report) - - [4.4.2 Validator APIs](#442-validator-apis) - - [4.4.2.1 Bid Block](#4421-bid-block) - - [5. Further Discussion](#5-further-discussion) - - [5.1 Implementation Consideration](#51-implementation-consideration) - - [5.2 Payment \& Economic Considerations](#52-payment--economic-considerations) - - [5.3 Builder Registration](#53-builder-registration) - - [6. References](#6-references) - - [7. License](#7-license) - - - -## 1. Summary - -This BEP introduces a suite of interaction processes and API specifications to establish a fairer and more transparent -MEV framework on the BNB Smart Chain. Participants can follow this specification to collaborate on building and -proposing blocks. - -## 2. Motivation - -The Ethereum MEV market is thriving, with -the [Ethereum Builder API Specification](https://github.com/ethereum/builder-specs)) widely supported by -mainstream consensus clients. As of October 2023, the inclusion rate of blocks from builders is -approximately [90%](https://dune.com/ChainsightAnalytics/mev-after-ethereum-merge)). - -The BNB Smart Chain MEV market still remains at a Wild West stage. The absence of PBS adoption results in a chaotic -landscape with different architectures and API standards. Nowadays, it is very challenging for validators to -to integrate with multiple MEV providers. Moreover, the absence of native support from the BSC clients -further exacerbates the instability of MEV services. To tackle these issues, this BEP proposes compliant guidelines and -standards with the following aims: - -- **Improve Stability**: Unified specifications for both validators and MEV providers to enhance integration and - stabilize the market. - -- **Improve Economy**: A unified architectural specification increases speculators' costs, fostering a healthy market - competition. Validators can extract more value by integrating with multiple MEV providers, which benefits delegators - as well. - -- **Improve Transparency**: This specification aims to bring transparency to the BSC MEV market, exposing profit - distribution among stakeholders to the public. - -## 3. Background - -Before diving into the specification, let's analyze the BSC trust model and its distinctive consensus protocol. - -### 3.1 BSC Trust Model - -Validators in the BNB Smart Chain are considered more trustworthy, as it requires substantial BNB delegation and must -maintain a high reputation. This stands in contrast to Ethereum, where becoming an Ethereum validator is much easier. -As of the end of 2023, there were approximately 40 validators on BSC (with more expected to join) and a total of -20 million BNB staked. In Ethereum, the barrier to becoming a validator is very low (i.e., 32 ETH), leading to over -800,000 Ethereum validators according -to [Nasdaq](https://www.nasdaq.com/articles/the-most-pressing-issue-on-ethereum-is-validator-size-growth). - -Meanwhile, in the Ethereum PBS architecture, the 'relay' role is expected to be trusted by both builders and validators. -However, in BSC, validator misbehavior results in reputation damage and un-delegations, reducing the need for -introducing -another trusted role. In this specification, we eliminate the 'relay' role. However, this adjustment should not -compromise -the security and trust model for the MEV market between builders and validators. - -### 3.2 BSC Consensus - -In Ethereum, a block header is transferred from a builder to a validator for signing, allowing the block to be -broadcasted -to the network without disclosing the transactions to the validator. In contrast, in BSC, creating a valid block header -requires executing transactions and system contract calls (such as transferring reward and depositing to the validator -set contract), making it impossible for builders to propose the whole block. - -## 4 Workflow - -### 4.1 Definition - -- **Builder**: the party that specializes in the construction of BSC execution payloads using transactions received from - searchers and p2p network (trusted by searchers and users for fair inclusion). - -- **Proposer**: the party that signs and submits a block to the network, referred to as the validator. - -- **Mev-sentry**: the party that runs in front of a validator to proxy requests and enhance network security. - -- **Bid**: used by a builder to do competitive bidding for a block space. A bid should include the following - information: - - **block_number**. The height of the block. - - **parent_hash**. The hash of the parent block. - - **gas_fee**. The total gas fee of the bid. - - **gas_used**. The total gas used of the bid. - - **builder_fee**. The fee that the builder would like to take from the validator. - - **txs**. The transaction list in the bid(optional). - - **signature**. The signature of the bid. - -### 4.2 One-Round Interaction (default) - -Builders and validators collaborate to propose blocks during each block production interval. Two interaction options -exist -between them: one-round and two-round. With one-round, builders include transactions with their bids, allowing -validators -to immediately seal a block without additional transaction retrieves. *One-round is the default option for trusted -relationship*. - - - -1) Builders submit bids with transactions to the in-turn validator. -2) The validator picks the most valuable bid from all received within a predefined time. -3) The validator executes the full transactions and verifies the bid (gas received is the same as what claimed in the - bid). -4) If the bid turns out to be invalid, the proposer will use other bid or a locally mined block and also report - detailed errors to the builder. The validator may blacklist the builder for some time or forever if the builder - offers invalid bid. -5) The validator seals the final block. - -In practical settings, opting for a **One-round with MEV-Sentry (optional)** configuration stands out as the optimal -solution -for ensuring both security and efficient payment processes. Subsequently, we will delve into the specific role that -MEV-Sentry can fulfill in the upcoming section. - -### 4.3 Two-Round Interaction (optional) - -Two-round interaction involves builders sending bids without transactions initially. If selected, validators retrieve -transactions through another RPC call before sealing the block. The two-round process is considered more time-consuming -compared to the one-round interaction. *It's suggested to adopt two-round interaction for builders who do not fully -trust validator and are not concerned about the additional latency caused by one extra round of communication.* - - - -1) Builders submit bids without transactions to the in-turn validator. -2) The validator picks the most valuable bid from all received bids within a predefined time. -3) The Validator asks the builder for corresponding transactions related to the chosen bid, and also gives the builder - its signature as a receipt. The builder should return the full list of transactions. -4) The validator executes the transactions and verifies the bid (gas received is the same as what is claimed in the - bid). -5) If the bid turns to be invalid, the proposer will use other bid or a locally mined block and also report detailed - errors to the builder. The validator may blacklist the builder for some time or forever if the builder offers invalid - transactions. -6) The validator seals the final block. - -There are some **edge cases** should be elaborated: - -- If there is no profitable bid compared to local work, the validator should use locally mined block. - -- In two-round interaction, if the validator cannot receive the full list of transactions before timeout, the - validator should use the locally mined block too, and 1) notify the builder using issue report API; 2) blacklist - the builder for a while or even forever. - -- If a builder finds that its transactions are stolen by a validator, the builder should 1) refuse to send bids - to the validator, 2) disclose the steal to public channels for social influences if necessary. - -**Two-Round with MEV-Sentry(optional)** interaction: - -A MEV-Sentry can be used for validators to provide several functionalities. The sentry has its own wallet, -which should be different from the validator's consensus wallet, and append a transfer transaction to send builder fee. -It can also filter bids and only forward the more profitable ones to a validator. Meanwhile, a validator needs to -interact with many builders at the same time, sentry helps to hide the validator’s real IP -information and protect against DDoS and other threats. Therefore, it is highly suggested for validators to run such a -layer in front of itself in production. - - - -After introducing the overall interactions, we would like to highlight some main differences between Ethereum -Builder Specification here for the readers who are familiar with it. - -- As mentioned in the background, the BSC trust model and consensus are different from Ethereum, it is justifiable for - builders to - send transactions to validators after receiving the receipt signature. In case a builder finds a validator stealing - transactions, it can 1) not submit bids to evil validators anymore, 2) reveal evidence to the public channels - (e.g., Discords, Github, blogs) for social influence. - -- In Ethereum, the fee settlement between builders and validators is conducted using the 'coinbase' reward (for reward - to - builders) - and token transfer (for the fee to validators). In BSC, the coinbase reward will be transferred to the system contract - for - later distribution to all delegators. A different way is proposed in this proposal, a validator can run an MEV-Sentry - to append a transfer transaction for payment. It will be further discussed in the later section. - -### 4.4 APIs - -The following APIs are introduced on Builder and BSC client sides, to implement the aforementioned workflows. -The full specification of these APIs are defined -in [a repo with swagger and smart contracts](https://github.com/bnb-chain/builder-specs). - -#### 4.4.1 Builder APIs - -The following APIs should be implemented on Builder. - -##### 4.4.1.1 Retrieve Transactions - -This api is used by the validator to ask for full transactions once a builder's bid is chosen. The request body will be -treated as a receipt for payment settlement. - -Request: - -```json -{ - "jsonrpc": "2.0", - "method": "mev_retrieveTransactions", - "params": [ - { - "bid": { - "block": "the block number", - "parentHash": "the hash of the parent block", - "gasFee": "the total gas fee of the bid", - "gasUsed": "the total gas used of the bid", - "builderFee": "the fee that the builder would like to take from the validator" - }, - "signature": "the signature of the bid" - } - ], - "id": 1 -} -``` - -Response: - -```json -{ - "jsonrpc": "2.0", - "result": { - "bid": { - "block": "the block number", - "parentHash": "the hash of the parent block", - "gasFee": "the total gas fee of the bid", - "gasUsed": "the total gas used of the bid", - "builderFee": "the fee that the builder would like to take from the validator", - "txs": [ - "the transactions in the bid" - ] - }, - "signature": "the signature of the bid" - }, - "id": 1 -} -``` - -##### 4.4.1.2 Issues Report - -This API is used to report issues to a builder. For example, if a validator finds that a builder's transactions are -invalid or the transaction API is timeout-ed, a validator can notify the builder. - -Request: - -```json -{ - "jsonrpc": "2.0", - "method": "mev_reportIssue", - "params": [ - { - "validator": "validator address", - "bidHash": "hash of the bid", - "error": { - "code": -38001, - "message": "response message" - } - } - ], - "id": 1 -} -``` - -Response: - -```json -{ - "jsonrpc": "2.0", - "result": null, - "id": 1 -} -``` - -#### 4.4.2 Validator APIs - -The following APIs should be implemented on the validator side or BSC clients. - -##### 4.4.2.1 Bid Block - -This API is used by the builder to submit its bid for the current block production. In general, a proposer will use the -`gas_fee` and `builder_fee_value` (`profit = gas_fee * validator_commission_rate - builder_fee_value`) to find the most -profitable bid. - -Request: - -```json -{ - "jsonrpc": "2.0", - "method": "mev_sendBid", - "params": [ - { - "bid": { - "block_number": 123456, - "parent_hash": "the hash of the parent block", - "txs": [ - "the transactions in the bid" - ], - "gasUsed": 100, - "gasFee": 100000000000, - "builderFee": 100000000000 - }, - "signature": "the signature of the bid" - } - ], - "id": 64 -} -``` - -Response: - -```json -{ - "jsonrpc": "2.0", - "id": 64, - "result": "the hash of the bid" -} -``` - -or some error: -```json -{ - "jsonrpc": "2.0", - "id": 64, - "error": { - "code": -38005, - "message": "the validator is not in-turn to propose currently, try again later" - } -} -``` - -## 5. Further Discussion - -### 5.1 Implementation Consideration - -With a shorter block time of 3 seconds in BSC compared to Ethereum's 12 seconds, designing for time efficiency becomes -crucial. Validators must set a cut-off time to stop receiving new bids, and a timeout to retrieve transactions from -the winning builder. To be more flexible, validators can choose to run a node with or without support for builders, -so a switch should be considered to turn on/off the feature based on its choice. - - - -### 5.2 Payment & Economic Considerations - -On the BNB Smart Chain, the block reward will be transferred to a system contract by consensus engine and distributed to -delegators and validators based on the staked amount every day. **This distribution mechanism is also applicable to MEV -income.** Without changing bsc consensus rule, the following approaches can be taken for payment - -or the payment from users to builders,both off-chain and on-chain solutions can be considered: - -- Users can subscribe to builders' service. For example, users can pay builder service every month based on different - levels of prices. - -- Users can insert a transfer transaction into his/her bundles to pay the builder. - -For the payment between builders and validators: - -- A validator can run a proxy and append transfer transactions to pay builders. If a validator does not append the - transfer transaction, a builder can still use the receipt (with the validator’s signature) to ask for settlement using - other approaches. - -- A validator and a builder can negotiate other off-chain and on-chain approaches that are out of the scope of the - specification. - -Furthermore, let's also discuss what will happen if a builder or a validator misbehaves. - -- If a builder wins a bid and does not return the full list of transactions to a validator, the validator can easily - detect this - and stop service for the builder. Eventually, the builder will get no income from block production and users - will also leave the builder. - -- If a validator steals transactions from a builder when there is potential value. The victim builder can detect this. - It can stop sending bids to the validator and post evidence (i.e., the signature from a validator) about the - misbehavior. The validator will lose the income from the builder and even more builders. - -### 5.3 Builder Registration - -The process for builders to register to validators is not defined in this specification. However, a promising solution -is highlighted and suggested–using a smart contract for builder registration. - -In BSC, one smart contract can be implemented to provide the following functionalities: - -- a validator can register its information (e.g., consensus address, proxy URL) for participation. -- a builder can deposit some amount of BNB for participation. -- a builder can register to validators by providing its information (e.g., builder address). - -With this kind of smart contract, builders and validators can discover each other easily. It also provides transparency -for all related stakeholders. An [example](#6-references) is presented to demonstrate such a smart contract. - -## 6. References - -* [BSC Builder Specs](https://github.com/bnb-chain/builder-specs) -* [Example Smart Contracts](https://github.com/bnb-chain/builder-specs/examples) - -## 7. License - -The content is licensed under -[CC0](https://creativecommons.org/publicdomain/zero/1.0/). \ No newline at end of file diff --git a/BEPs/assets/bep-322/block_timing.png b/BEPs/assets/bep-322/block_timing.png deleted file mode 100644 index 40f197bf56672f46bef7f7672e4c8d4d0774e7ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95395 zcmeFZXH-*L*FUNVq9W3isuT&JbQGi)1;L1biu5XoNEeYBAVyI@ngj);1uG&=dM6+? zQU#?qsUjtWk^mve-8tt7!Q=D1?}vN;cieIPaK_oLz4ltO&)=MDk
xLnzPCJ>2L{+b4$&!vlWQbq6N&=Yc^EGkLExp)1BP^MsRFc+aTAX;fV?WT?KBH+u5txIj zd-;AT8Ba=9{g9n*v|~#)v+-VYw{K`jbQ^MMzc`ZMLJD#zW}9mW0%D#>ivQe;wXRy* z@v3syPzKdC@8JA=eDlYTD5E!S>?4E@D_e{Jav zQnni;Dy)3hw?)(-=gLaF_=PL0 O-8*X|Dq^jA)*k|0fa1`Maz)^s2f|18ef``8rxn z4)#SDZghK)b|*Fn^gIm|Dan@^_8Tws`LLb>=i_q0j>o$Z-3&Ju7WBMER3jAwt`%>J zJj@s|yZ)wRW?1NAH;P}f?aW{W3CBN>LHIhPMhaC`W>@Vi%e@hiP9HuX(K(dgouzsB zE>PH|MqFXtGPT|0;%CbifwPlM>YJ~t*M=3{BF{nsS0jc{M%cTUb!6!av(#hC`!|Av z5mEKA#&6A>3VD=(KtYD_+EYM|P{^&j+H6=jWl=oDNK5ihgXdZy&|H}BRwJ(XzQA(V zW3~$?>0KCrs=asi-jdrX@1mIi?-5R(LP(x(r2O>bR;bbkmrp ivz-xz$f5 zVr1}cfQxyEH)$FnmW^#dY_eAOYOo5*W*6N+p;>_%z`dOx8U{38t`!EJdDm%myw^YD z*jQ2+)F@BW5{7|67{XNt18q^mecteVw15#LLIGdbM09}aaF7d^_gTeF LS+B8 zR##ki=e%ARB6#DrZTQZS_-LweHWJa_Ik)DqK%hy;dQ-mJUu~zt*%1WvOi};s$vjWu z=2-COj*iQ#3i^jys&tY9^oj|E=(E9%ANcjM{aP=Mj0a!~_4?2CYfG?m+b8)Lqx`bY z&elq3AgTf~`qQrZl#v@43`(n}1DlcOR`c7Dr;7Sr voO;B^~d<}N*MrqZNQ=oI;o3yKGZ;c@6 zyz@$uQw#9)xG17}<`A@2JPz`$G|hH4!bprmc2YJx-)f NR#Yi(8#4?!>|Jcheq}7d`~wheJ4DbaJsx*J`W; 5SKq>#IEFytL^2QU5}j9ufQy&;sw?5T11sM}C;|=5i@BFu(0P }& zI<~dX6TN3VWV~G%LhpqQnkQGqSm7VeFj~Zhk^iz8-Lp*3-m{PfombjOd=h=HZ*jnQ zuYOzBTEhGsz7aS+@bd3n;A)9sYpu#ndYG?o>ASZ<0tnx^=f@d@vD5Gjx2U=DZhgx> z@AQ1MzV}@Kx&eaoC6NsD&_a?64p(L=5=MtU0LxO~1&6k*Yd4j}ftFh^cdyzs#A5Sf zz5RL(O;n?kM&_lfg>`+!mLyCuvWQszYIX{O2%j`O!LU|VmnF$dcT?768ggV$7XZtP zSHa^z5LT!v>^Lq3^rSK5Lx(IR^6gycH|LqTf#Twb0O6?=NJ?IEn-XTRWa56lNNmXx z&~d^U8q3ET|0u_dxbrlQ5I497x}tyH1-PU{{J!VNp6+ht1QN3c)MfawliiCs(`JcY zzIsll93BAKuQpk-5kFcXgdtyX6QQrfIgTYd=eqPMpeqQPv&E4j7AA}38>R%?htI0~ zerzNc4~IAMRH~9sD~>dxfnyN&@1N5QH!V_N?uOOw!Ss(uEZncuo3dKi%ozKAEwq_I z-<+Pv@>zKyb!@n6f(C&5Ks!Hu9i4i@<6o!p@mJNX=PprnVV@*chqJRs;oG&y4H% zYUOm0-dy`SOWK383kAB3_BpTHEZNLwJ?C8*8a`!Y8Mr^6Gi$-m7wG^cVR^YdHehnD zye`?|?^??PzaTzzCNL_1A(UVD-BDNj2MQamZr*2F?$3thREgb8_AGkbwR9*vKQ#b= z^FS+1`0ib(Nr-B*bAG*(1hV%Gxz9s56_wweta8{Tv%2Kgu`3J|HV^}NR2vn=K $m2(|zbO*rbd7!#4o0Ok>r*DG`I28HZKIM(sa+#tW zgns1(?VKrQ^~ QUei6v0l?mHNu}abXp9h_Xfb&k~fw>Z=dLs+( zqUmyU1&4joZDVqZu!t?fOqr2$Y-D}hrfZz75JQutOu(mHb&;x+^3LNXC4MU?e%oap zhPlOoj+kk?9MH(^h&S4?@<2W2-gI5)nt_$Jwzj`_O=pK9WEEFftkN;FIcG4$7A_|s z4uHEjyfe8L9W!AosN(iVAY6~wqRaDL+D5N8)}2MlWdmme3QiWo8Z~=?+a~{uvw=h5 zLi{&tFf36j>`|(BpcR|#$a*cF3Lc)o#lRM+Y4hBsmtk7i*4}znD`8fXyP?K6OOMzL z=d>ddNkRL^$Jgx ;Rq zZr%szo0-LZTCl5HM{ ~_F9~qf_zt6di%oyL1TRh?v15G;QWAxJN z{lHzHGG<2h9)t43+FNio)d;v!12HHc65Vn%*bH#ono>pd5>m6?0N$n{DwDS>NyhKy zKvW6Z5moM0%gH)&G4WoO1ghy8&X-5GYf ^g)JEz7ilsl%C|#esMmat44<&zO^8d1(R0F7) zc%(NPz=8FQw>bO1OJLYu9eKZ9-FM8=Y<_#)!?SxA1$HLiW3zV=qN08*2J|(&px3mv zT~wCrqWZ-{B3oVrn*rc=N*nzL<=s>dnE)?(d*r~j7XcdpSd_SL*Y=)I5P)Z>Iw=A^ z>I^tiF8-Cmwj))7fqqe9*}Nr%mv4W%<(wV5fOpDKxZBp7?T6oVY5=1BUR4M3C$c3A zZ20@OJt3l38t~rj+su=LmG#Blu-wyUx0ohBRGzc$2${-{3At`H Azxs%B z@HXY-H9E-W?U)_(!YuhDZ)q%Nfa_k8yz|kr^e&s4IVJA0+ZUPs+6RCaTVVaKhZQea z4SzxxcCU^)7eV01aNvnS)h(HmAA(emDpKztyh8+tZ YWDC2JKO{`atzSMcRn~i?a=X$6r2Mb5VBizKhrmpu zf<7H)N;Rm-0%kZweL87}kbmd{mrM`=`ZAPT?Ym?K++HnMEmYVsdRPOP`$Y2u#mO`9 z{s3^}N&K4PVTzlczz$s()vT4WZe(qzHnNUa0YAx}UP#}r%E-jLXJuqJ(y`;+vDwOT zKwc7#MP>rq=6p}h4Va3XS}6D4A=~d409SC{;R@9UC2o)UGPEFclUC4J*?#GQ&xla_ zwYKuJJHNbG%@bM9yad@X`VIoCv6pdU40vf`ZH~*jOL>_Vu<%+yzubEZkM5xNupV$v zIG0xA^)y|0SP$0`ii%3@UiAw3KAjb`e5dXXQ9aNKKgJY&h>3mro(tVh8bkp8Eef@B zci4-h4Alco>5&8t=aZ5toXQ>)zyfeuO+Y&BO+%h;JHBCj&{m3sc6Qz&Jv~hJr02cs zlyFw=Yp4r_O39 q>^(}PHZ zf&z0!Cb~lJ3;dSa$5{y^Rj0MUu8vj2Y^&kIPV)rL|99L>+{YMyoq8|5n+gbQbK@ab z*>RoYI-R|hLug$$&VHY|gC5JSL1eSu*3BirA$^29E^X%ovIuSVA5=*54SN)O10mfh z)-0keev7lLCUuWiWZ!8WGb{ZeF9C-+DM#b+$@(&`uRE-p-1MYwST`A |uigC&PJlKYi_j!OaXluF7+XJJ(!c z1 ^Z zG+5CSPj!~ayM)lj+*%vBG;>KW>S!5O%kyHI^A0L`JKg}qYaidUEp0$jyb`bgU8MIy zAYnuNNVNDdaNf1oU{Xi{RAXg6?~yd|iS+ANn)DpEwTx^T JP-wX$PmnFty5i_4*hv|;WV|;;>mAw zuW9(_ )Iw1i;SmZ*xucG9Bo5=r-P+27aL-4ZLCU8e^j2pCE`a>4XQe zf@{;FUnAa#VNBq4X<%kVVL@FZJw4`*c0t7{ed&rjZBH6VhtJ KuDiUd*mo9caX~^}}Ub$fH z-_$g9Ug&ME11J~#I@euewyQ>b2cNth7O*8%Nj+!ZH#2POBv@&{w{oj)rRF3a8PP<+ zT<6zf&FA6bT+yOjOns`qe#%efOL{ny`91wmI4wO-{&f)j9{8<3$>S!kw5UZX?m+^| z^^}l&RRPcF*F5SooV<*CE{*qRfrl;lY8NR8an(nU{+-6rjxX%je+)#hW@^udV!7 zOW!;{ejM+Oya0a=m!8LcwU6h#xq%$PrF*%JQ<}Y+^ +ypb!Y>#i4iIs05RoIgBL3}+YRv0z^%sOHcs`?>!Kl|5!pm>X-~ho$g!J{Xwb)qs zs-!pQH4GvOe|NL7IRG=cx`$Rb;W1%n?A)O`a%5DCqMMWSyNmF(jQ5=Cn@V{#LK4Kz z_H-=Hv;^GzF_6>#x{A=C)!Y)$sX{p3(0&wkX*tcIxf2W*1;WEmx1)IzrIirw$l2{< zfSdMGdiA4vtvcE^@M#f DPUkzam8UIEj0Q90e1lJA>*5qMAU>AY&6#U?2ujf6SVqRa53U!-q5 zxH2?U?X%M%|F!0KdDz+7L qU8-+YvD_HjTP-^F0?jOKyDm(10*1cQph4T5B;k zLJX|%_J&P@N(USSv5+jlym4fc{v~z)s&(qOmDM%V;U+h)YTt3t$m|L%ek9Ftd-wx= zLPmP37@+Hl^|u#nX1!vFU!)7%vm9Ba9{pQrJ4W6{RgW^YMrqb1xRj^4dvtwhaCx8p zR)%agbBCf|ztR?bovROw&b~LP+gS(g0GWSjIbLN8A12@g_ar`YxgB71q;PKoZKQLc zq>k;7*8?|4&i)b?qZmTU4k~^lJ|vkgSxt=r{dzDnLj-4MiKWpq0our;%dez$T-{V9 zU2YkZHr2bKsTrui?JFjK$^Ku _$E(7QdqUAIuo|`+ i((=|`TC}YMrQw+6W|^f&Qqh`9A#zx zM=Jw_pPwKbqVjn#8=jW%=uGyYi5+V6TPx3b=H*M=(p3Ue$hD3JhPR~ocfS|-c8q*~ zL~gNyc1ll3cf-3JLvrBk?~SD~G8KY+lyf14y?qe@F683eZom9~xq7DWu0#<@ab5Ja zojGrNpTBhuO8|hg4CeWz->>t}bl3(^ul2a0uj&5xX@3^mHrPKhqs$urciUOnG4`H< zMAWb5{7dq@TucQXGR(gHKZOCH!)VTe_#ak#X9bjS1g!4lf8X@opT)Mb@E@5`8q5FF zrg1bm%;D! EmR=I~|H2a`+8wsV-oO z@2@bjR&v?6Zt&j|#02o?fo&1}nv~|V )+o#nO-~P+;9+QtG3{|h~Jd*hJi|rrX_^%Aq1Bdi%89eWIG;ja) zg_ r*`8Uys(tg6fWDy5yYHR-5XCvg>$e?{cKtae!xKn}SZFF6008PNUN z`fZn;qWndGf6R=+rv8{2h3EW h}e!9U*Lbrqc@x ;F;eLoZ=0S3G7*}T zK;NWf`JNs;>G3d} ea<>GTfPMkfWzdaAD;)L+^8R}WBTnlLH zcgk5cot-Oe_shXo3GnXTe?g6kxmRU3&G>v2Ozg=$YS2Gp mRU$J )u{<7AYUsk-EwAYCQMxru(YOE zP9y(84IkKHbb_V&?la>t6^^+-60)yKx_-RDw`FP{OaY=ZCLLTTXrX+RqozW}PxzkK zaz#u;_4LZqjLUp1+;$yF4YiuyQojGhF*!CQvuv$5dV%cuD768dt^Fw?3GjG{_XB;+ z+5xcckkj~d_faYc)uFJ9Tk@?H0C+92b!z`lyq}v=s`Z`N7A(l7Qx`J9s;@M8s z{@k}31~{Ke2dvO+i^^2MXXcWAvG%R`u1s =B)D+MZK^2DYx zr<=~whXtfw;>0l6^~uDwp%G$b(~Q}kb#-ud;zU0Mq;_lD^CCaD_sE9>GzNW*ZF5ULek0U5o|CbYiZ{RuuOh1vs|jGG@}^Rtov zdfaQ=LHV@CkoJ*zh_>E@tII~Bh|QWZe9$BHzK7uYE0B>}T3QMB?YuB24ft^~ zH#e8iZ*A|k8nxs7A3TD-^J+Z7)V3O5;^=)27mt?N!L `@-kET3K6~}y`wyk(VQb3i)-tZ-~Wt3XAzNZ;aCnO57L#^O?MjHe!F!x~7o}3Xp zo1InM#HnYq`_D!gVNW%%TPmT-W7F%LekR{1)e1n?%8AML)c)xW|FB)n3yU*fuFF+Q zkpE`Vjz5GU$4og%syEh3-IYkarRSiy*&}16YnvdWEb|cA*#P*a1)Rb2{;Bm4s35AH ze(<{%ydodh7bPTbh8r=ua8CDI74T!EY)f-)(8LM;N~&h8TZ(l{R?6o|r-kC#2(b8P zIiq1qOiPtJ^O6)U!W H{9K5@I2 z9%SAa)JHU(%#RWB#j0_C9{~BTF}3-Yi~f`%H<03oADqn#-HHN#%lQyF#q&kJ4}jmJ zo?>KYzJ@teWeSFeeRxRh~?Uo_{X&x!7tY8@ynU4n5(G7N!}GC4Mdd$N?owT0X*5 zxxj;4zmXu|KqT;IInb^#w`tv_s*4t4FVQ%VuOV~Ld{xb8I9T(Q(;7Xn#XoUtfE=^v ze+=ty+1)?R_R@L|1O%qYC)H1^{ntS`3AN*OARlHNeNOMPz`8NN_QKhaA5}xAP_Kl0 za)3xb!=rPHDf}d^8swvhb2-7_j%_4;_d;;Uv7LAGi z4;?tDD%^W1a#*)E0E;U9vn+n4WiJrR6=guYFn-Wwmhk=8{ag347BZr|=jys1H6sls z6u>E#hq;$7TRyWM>{m^gGF_wpc^BZTFnf&C^G(zn!f1$3;5YH<+a%6AbO>dX?BmBO zS5OxI7 `CA zByk-i;qZM#Sfd54w}cwAMC;rc{zNbmU@yi-2^Jh^cp6|2r#n2)y%hVF{aeZY<{?>P zqJLe0q7fYWev$XEmzW!-qvPwEvNUR*v!Va^)^^sffUG9_cp&jtcv1}nhg^@dfd8GN zlBroc3RaO0u74imUvTx&X026HQ!Z=OM!B$MQ3i9k*@o=w$HO)8Pd*1lE)0mon7{Zq zt_b%pfs@vgz$(U1k%n-4R;c lK{4FS zar?O 7V?eCB^uZCoM}>0M0I%%m9^XgaPBU2w=!BC9miHT7^)!ET zS-uKz>13G{^rR=C+yvgp3N42+FDc{ZH^3=|u)D<|ToRSrxjv-c{k5DedBTzb4l49( zuiH{2a*D@8@zpQyW4^+bpb_SQl3 oG;Zs6tqly z1ws}IcB`+y?76F$v5f*;03{B{nOywUtpC}jnc4W7WYtyXppMSr66XhS|Mcbzv#E2# zv^8rGT8)va#uYswUzeJhXt1kH^@1gMp-iybjjI%W;8CaW7NylTz$R?tQwCeMvom_f zU$nkbv-T1^Y(5yCR6D_K88`pH`qBu`vkB-CM%Sc?(4i4-_=H#eblk h5KEa*O#LJi|^>$1;Vx#Z0_-mYDo%`9pF~q&|r6=rY4$ z8t566h%g&E#@d{&kI)H<6a9E)xtL`Nb`eNsMiQSYWl=P6|H^NEAB~WOS6!3&>bMf@ zn6}uuECe`h%YQ Vv+lS6 zLGJ+wDSHQDx1m*Nb%J^rs(t5C!wcU4xOVGF$UKNt{-Vm%@`iZ1HXPqp%6(;x=2_8g zs|8BWBjY>|b(;q}xZaY*p{Lb(_Z`JnPQ4?ZL4|@ z!Z~mD{a(1T#&^DhGIDcnen@=CmLOOE*3a>2 Nf*LH) y)*Dnk39bA19ygaYSfDTA0FZ!AJV0*~5R`mm?p5M#H>oFi3;beIy zxGYG%nORwVQHgXE_Dr&yC*A|0DCldQa|{4e95wMbmBdh dl-pfnsM`nm z27nYa9aB-#*-I`rE7}hE>z uANPf;5u zRiA{Lzi2k_Ptm *k^CqlfM9vX z-t`M@IquGQw6*MCtI-4TpNrQ-V@t?8U+>_xnvYzG)?F#o+cCT&&{9yw3BWH|wY-r3 zpe>4-07O# d}>!3%u8#&q>0WxeQr#RPkM*L?6?L~llHQH|1U%2n}1dOU& z =eS^hIXK#?Z4R&*+_2tQ|l&76jZuG`B6eq3=fn6 zj(}Fvo?lc=p~tG^znX8jX&@Trq>^7aKdHtEuG_dHRrQucL>z0~gi5Wh^z^|OH_Zwy z&Y&{FF1o=d_GeUmKJ?W)7vv_~?@ 0|- zX~FfWL%5o^VroF{+I`FNKSq?JN-znKyg^PJDR$x@?TC}&3BbmfVI&FE^y9sJ-4?dz zBQ}#kP~$J2*&rU{D+GdLpb9E1%+D=x;<{5wPxiI-(_l*j=_yCB P+}{{`MFlEY||4-)q=58;~xs&^zk=8d&N zn(S5hF)|LZ-DBgiwJ3$9R5Ot~^7qdU=ZXunqkHf59^HQ-H5BL>v%F0fD`2>f@do*t z!Fj|^z#n}ZPJVLfxsyPt-NThtxKe<
=Ad 5Fuc3#qBT=ZNug^qIf59o0j};DJ#?uO&&!U8pD3j{ zq!h|yaCYVIZbN1JKJ9>+*3lL5Ss
a5vj_3zufPiI$OdF6{KLVcJPRo?E-xByBUb9vXXEene z2CKwQ#6-}Km7VtDK0R`2DQ5_oBW;PiAhonR(8}9tLCG_< z%tRNMD1eeRyiCe`+$A7y29FWq>-p9g p>s#Y*ksy&(KM@qW+r-b&?&lXWU$;Lg#7=uhzKp7-gxatWt0JQS&9j&Nr^4{D8 z`J8lukc)+O+K#EMs+>X}FlD~Qv?0yYt(A9*uaCHGWGM38#>$?NWD3ZQ5&Y&y^u7r+ zT0bqQwgH`W_y-Q ^?+0D2%EvbCQUkczIsg=X~W0 zT(J MQ;?2VWWVS_kHS3v7*EKVKQNJKzR9PUc*H_vX2GNMCqjc(}5K&sn&= zpl^TO`ao|$*fI9qDMsEG?nFnU*SR1gEI||LkG?m;n5e~w#aN}9n5FiZMgNJ#+T%sp z)8l7oY^nWIY-O`E`y|IWT5tqD@NmyA7XT>lQP1p=o$D@rF@Q0LI>Lj!Xy0%qth$^x z%q6x6TWCrOS}jHyDpZ?KCOa5-y#Yyx2}6J`$-BW(DzNc5-Ye&SqoRA$3y0O&A^P5D zU1~RV!3!gyxzMZWJ{Ke#)E_U|+T6)Xb`BpYWQl6rz#xTvNsAxPJKx-ckK^RyeUvX1 z89WsKZ3yoKUKlV&XR@CYpyEwwTn>i}@}u0^MU2;vz93;ONM_=s;kK^Oh^3Q{yuYB? za5XVm&=70O0Pjmn)s}p9=~X3lN2|MhTXZ}3 A8DN}LGTFdrnaea3USD4*v*|{a#X{i5V4R_F7w&t-JukteW_WWxw{Ge zgO9AkapLW|-I<2vR>hi;?q=5{r|vP+I(<@CUG8r%&KoYSf@a-o4+0QE+*&hTT# z@f6 l2}Oyi&1 z=jCX)?z7W!SmyCBhus{!`SR8mHwD6VQIgjI>Sk`G-F0T?`o$e(=a191l&4%^ux C_sJW)q_>x5PKQgYJiNqp;4)>m~FxJ{+zZkhMzKfwu=5;=oG@cAQ-n&1YXbg-@7S zHg24D!XB<+&y8Q {cyMScL zV9huW^!EQ @qmgsqa> zBzmHoaBUL(Mf=@Cu_w2xa}eSU-Q;@X5J^I!R`J~w&Bg;T zjE5thW5mwme7_~_$LVm_^;a%*O`?L>JYe`I`Y}3lroKzG`RT-Q@V@_xuD6bB`v2a> z6;U>jMp`;WN~C0fQi`-lH%NDnmK+k&U7~^_CDJfPI=WOCJsQaY14i?E@rnC;zwgKQ z_y2@>o+qwzo$DM3-Y=}gNB DiG1M4U#)6`f-WXliE#3Ty57d~A`TE^#5$L&n4A{fw^V;nmb#sX8eRm!>dA=s zs+4C893>*WRioTf(C?coX-3~cP2lUGL_1q}i$+0e{wa7kD8B{5&XZsp!jIQAQ5~#3 z+-*V@XP^zrxvJQq8_13%cvP6==rbN#YZYT2n9YHq)vt#7P~x4GD_@p4-oQq7YWOlq z97IMBihQ%#)DN-2+24!HN+4DDn0|RHYxw)wOg1wsqkp#V*9tU#m$OHrBZ1s?r*r3* z%l{4R|J%KVO0&InGw>hzelwmxZEzKgjP?LEJK2ReeIV(2Ar^UdG~wb&z2Mm6qT6c} z7u^>H9Yo?wN07sz4i^flA?t7FeGnWNUKgba4g7S(#dSqlc7#|bbL+~*Q`FV2DjE|# zSDn^iTu==Fom`0DlUP&TZ|_6zJyoO?jBjNv8&`1b8}A~xoWniJA2W~=dfKD0x|mo? zh>ZTl{OxrIlyaXTsmLa}JleKaERmFI;ZqIp7^~v2o2N>$0$CBepGD<&SvVx{LeL<` zn4U`I`8;I-P4fmf?s<|?x_z(8cgc*%d8Q%)5l8%Cr4CBe-KstBTZ_w@XJUteGsWg{ z--A2V8~7WOhL4`z!s9NCb%d1{1Igu4$-6I%Pv$43scIv #S453lta4(A%bstFk$iNYh?BR$#;rlL)N5{C>sOwJ+w1)=VUyUFPo`gFu1aeK zH-tqj(osOz&gL{hAX}Fn$DTvi9f;Q%bXa2aR_fWppcppl8}U6;Z%{&!ufUuu^!4F3 zI4{Hb%Jl+1EUz6ZmO9r3+Rmsj*2LcFVjyM0#%WHj*gP`*1C30J%AhcvD_Y<+j!C!9 zI^$w>@ B!X!+Zb6AFtRk?Z23Ge&>aKNUGuq@ zxet4}`8^<0Zeoq90|7 zw)u5!R4l$#1nxOUqhC==<<{y2{JfvotZ VT0>#*50jM1wQ7FdRuC Fw z#JT(>lGIX3(1S0M@txKQw9^i|$vw~5?ha?dG*dHJ-srTYy65B&+}?T@J++~wbZpqQ zf*_9k>bzi;)yeXd3M^NRi;up29+W?}UpmLuTW~1QWmN!20uBm$x$_8fXLe20)n=To zgFWQaS1Zcl=Pr%>?U{j%j5XP|j9w2&>)eP5{Gika mPZN@VJ8(l{_Cjvfcaf+4tBV5O^^$ z=KRmF=>PIofGYlmZ`GkAQx-}thc{ONZ5X_3aVScRdbOOTT%nVi$41Luv$*%?$6mjU zGw(NwmkfgAh_R`NV~>uu)u1cGE>f{RTjZTU=T7GKAA;~jcU}KH5>}2Hu0>z8Lzu9n ztC>;BvT9!9%p-+3&PAokZbTv+=uckd=~+$={T63@^VbZU`4XgeOny}7D%uXckKG(k z!%&A2Ted?q)D*lFK4+0XIa=bsWuFz!^|t #C^bYrxuZC9yPl#f0J&52?(Ui$+9pKNY%#SoHUF zSq=cJn!rY_|68R@e5!1&1N@vK>*(J)zbl-NJQ8@rgiWPt6Z>oH#>M_PT1Ysah?J0O z(S)8vDvQ-l8Xtw9!=m@BnMSjP6#o8wG~ix}TG&EBsU9(jocU9T&71*#m+8*=*&dyr z8ZpwKT_(08s @%O&l@PtK;u@L7EoXtdZMMm z?Ow|PTAbh-FPM_TU#F{>TY(8Q_f2^Zg7g1SMwJ-W_%t}0=0$v3ZBsyRUdqk-HiYnR zF2QdpVRu&67_NKXXA^V(`^awI2w#_#_DY4KW2T~Gx2{OwGLIkJ_;3$|c) 1mm1OJ(37cWH{cjx0JjGim-J7MQ;c7vUTJt-CmkXnj z&{&l7H4xKIW>G)b#ywa_%y2$!0`w&J#D>m%Iynv;V}vn1X0!E%pxu9)j%#Odst2M- z#fIVQP(@FBzC`l}K=2)s$WL3=+K6B#(NA_!%Eu%%Qw3bC8wzNqoQSnvD)x*m=~yD@ zWjcX8a>IBGn-t(AFSJT`83i7RexT{^jvD_9z-iItyq_&JCK% J;~7eQVVAx{6;M@N`D#|Hn^lY31pvrU z!xK{fTNwvvz}9OkE=9_l_AB0XPZ?>-Q1Mt15M2D@4-_ r;vBWhU1IjqZ#>~o$<#p_Xoa2)w{3XLPn%=#h!pQ9T zmzU0ROLKpS{;LIeGF-+*Tj>~_#GZ3mJ5|~&8Kt)d@4Q>?ZMgFtbk`3>a+thZA2KRk zFOe$b^LIru54HLvdaxheQnAJ!G#Oh~4yL|pKl=e1` zkKj&^GbGlb>fNF3H*-~Hng!W3;=(D(4_ZX>YQSG&l*I-~xl()#{?m7eVj}suP!189 zlYF7}w2RbP aV4%Xb~CNA47<<)R(OI;f|N!6c@i|3-wGJhxF(+~ zXsr)(`Tcw({>``<2+Z8F2&-*|#@D^!PsSXU++sRBD*-Ec2CLnRw+&K?X6X{j51b~9 zmq}|~5tldrW(RS+hetKc3RjZVv43FN8y&wXH2$!I1{D{svgt45(F*iBpn2^`gyFF* ziEU5=LAjz3!ol~&hv8GOvdfRQwo4@nxg#7g`N_^Kvsl&TLpEBCLDrTV*=;rHvL{o@ zAjw&Al9(2+d9I8X`$&$f*PjcaJ~V~_Np*gM>DQbx7+(KBqxF9^JZ@Wnqa_60nYd!- zz83X$OJTZy-Ex@IoL|r-%r+KL6p|6{#jeeMJq!G1K41+>k5J`=t-TI#@HLU8Stuic zhuh&^liN@$)x9yHjFU~qzgglcn-vj%t~2#7f6_=<#!@nbBzI7{`uN4d_L|mESx<(A zyE3vfCiV5m-;-0xh$O*&lIGlCIt0CCgz~mt@k_VbCD&8mc7%x=ZaDDDzqjtd9ytT` zai<>Wd6MLFME4HQn&4w1F8pD8#L19G^LUnF<17bgAH|bKS4P?ZO&ko!=dmE< kg@+}64}@?dqt%68ViAy631JFnsVC6gi~z!|6fXf4e;So!W?dY@WuFP zmx`35XFTIIZGU5(mFF^+3sP8Q+=%D2tiLLLo8)YVj+g)DZnUJaVF<0!nJHa)p(NBM z|98XF=0V{D+kqY_u=piICF)U`mzvOO_AgJm&}?`^X^l4+DVh{92#tv5Rg$sW_d41( zQ5MiYFJHBQy8u5DUjfn2@$8_z)MM-HkE@tu&7LNoXRi8!)nq3}TWB=%X1;-*N*LLU zC8SakKSFP5pvNz8ukR;RR=^S3C)=dgTb!RT DpZXK8IrwRmloP~ws%w6 zR5xPqVeC$<`HZW081h64V=f0_pMO88!O8mh?|_4;X&{nI?1Y&-WpbIRkJmp>shyVe zft>k~bAbn~ENAaw?2*}nUIwn +67?$R61O=kazy76 4Kgj?WymE`b5O^bz=9gTEc_i1~S3 AN#gN>=feDFI^{D@dkn;KH)#;4TSx#0K_`??$9nbwbq}tzv3Ax 1MuGt1#Ksf*DNR?sSHy_OyGgB`mV9L`Mn<}{ z=bq$aAy5EmNwmMlUym4%`wZI!rJ%<%l&)LU>;tQqd$%3KgykS%foRjjh~1j t1%t;%HDU-p0zF9knJ)HtD#CnV0T21jH3D?ijg&Fr>lKOp!6+sn zzjR0~rHTjD3J$4sjD8z3HlYKF2lJc6ATQR08tn~?PL(ER`NZd}bmMHnFy>Pwj!=Ua zhiWp+_MKw*OC@qrut16VU*h98Nd6oExxF}$zkXLTCD5%y-y<>F?Kp_ gZ7!lJ9AHW2gLO`?qC6HK K_sww6K9o&HD8q2W1trv5C#g=CUe#7FT{Xy=&})69AR!<~N5#XQ0QxjhrIC zSW+$0jc!}PbNc1Av=z4qxKC;=8T)H3C^t1q%~iD>JETI^5>b_vyL_h2q@&Nx#~tJ? zCL1r~l#daP0l)$WbokD|YDMY|*|Ou%vHIW_F==xHeTeuQtT9YR=Z7@Oi6L*sbn{=b zKffm^o&E2Az}yV{M~n-Vv`H#ct2P1SYMiB?XQc`$`s%xZY@^S%PTK?+gBew741<`0 zZE=RKNK@nOp!^}lnmW83s<>Wz<*(g{3+Lq6$44$aS9^f9nYUNWbG?B-K*iJ|Z_*`y zBL5S1v0L~>Z9l8;CwFPtSZ%-`h$^ohWgHAYJAnISHcHt4HRl0meiZ403X=@;zzq)Q z+qC?Inmm~rS~(}We5!?5 01 #kEsofqbx|l8XP4bD%mK1mTbX zx_;lC6 DfX*ZX6zx64wK9h+VqC2-#o&d z38nl0B|2&oplCaT!DEA#SY}dCBl^K*i0ZGn;gm#M*D)mN^8WJ`X3oaWZ?12GC?-Vk zLQ I0sz>7cJI+{~=FEtApYe2Hjk@KDZ|P z$}a>+e^`a1@r#J;9t9~wIjETk_#{Y$VV~B_N47{zrWRLDqvv5l`Kb9|ymBy-S)-#c z4w2Of9imwS$yE4>&Xp#2!lS}O=a~tI(U0IlD0j_pjJJKXPbKgno-OYar_b5IBV-s{ z85Zkow-KV+X 0DtiKq2&=`F<+8)4JmYOu(E15Xy64-eCaK|%zKvs>bH}T9 z=W8$B`SZIN3Ad&bpPx0M3V=R!TalLQ_EUR_r{r|j_eSd-V8{mMRxDk!f$1*2*~cgf zhg`^jRn(`6K|`(&);_T7@j_fAzrp*q-jw kxo1 z3fd%v^LiWV{+q@TQkbV#R(~k79C6UC8?72@6)9By5-;HCy#8$~v5%( a~y!akQL4lMvKCw8O z!cFj6;%e$-uFaIt{_0@WaD%ngvT-43l8^>I|95z#J#_p6A5w|d0k^9LL`6`_Fi^nB z#Xyxt(>3Tn=S|wU`#jxCVza^1i63s9>FMHg$aRh*9p5w^kA{-d5?;j;2oWf>N{pB( z$bVEw_3LwN98wN>&U5yv?ej*qP%qj~fMVlxA?=J(dS1>%9e3HC6DT84eOaqo$O`Cj z{Z`pCm+sFc;QwrTIW)bdtKYc=yYo@2#-G;Hm4pX1{s4mLy=iRJ3=SBcNL?r^asAu& z8+gi+Fk$DP)n}_|?aj8y0X26W D2tKh7ZV-uR>?~@ zxZbt`7KS$BDZZ|}XQ>fpeGgM@hkDD`{Qtb6xkL1z;)@4v59J0OIli~zzt<7sYI;VO z>^hb|CZkc0YdKySN+}x0gWDm}@e@XHzPHn7g=~NO@jOA^dNM33);63U(P<{S@WYAk zBX0mvgv$ $`@)O95lsEUc%`iGE*&+F+%&m)}=M zXO3UQ`N%*$*_p$4kGYm>w!Ua)9ugo1P{TtxEWyFM`1wi8Q)#9i&~SPA0p5MH>N`TX z7rdIqRJkUmOdjhYA!I4A@eJ_;xl{H#*nx6sjfVX1yS4D1>sM~R9L#xb6}Go!m_IA1 zvVZ6zy^v)_xxy<;-RB=;9>>jxX{$ZVw3S{uE*1#9v`;?ws;3@1mGVlo19(5Su)T?P z0(hJwtZp^l^F(r?#ZQcs4z@8j+Cnp5JIGpGhygqLs(t>llm3E1d)nnh^jb4Osb4xP z5vqu&fcN?gD#H0+2XzVX@YX!Zo0DqrCbTyLsZ$_*rqMaEI>Zg&2WQFoBL_y zZdmSriG6vDU~OWVcxVZwSTd37Vl2FKv(`0238~_z#okA>=sQTpybEEZuy2fV4>rdv z@}7Zr*698!h~;M)(rDdpqP+RkgJWkLG<*iNuk` zF69LtR=9~}to!7lt7!p%_BK1%HaTJM$bPp9yZr`|o6as%n?;Uw9Aft_{S%?br2!__ zRup!of1>{!pO8e&{i~%xXLZQm+2Y!r$?Qm!uk*#q{da$FVC>6BJf^SVsr1pDUoAd0 z`NMm0dg6Ctcg>CnhEm5V1(yD_5XqocP?@h_*8hR8<@h9OLP}mNfqG`2+l@+Q=ABnW zbX}N%I63(JghMC|NS#+?)3)ssYwPvHfpFoyKE@w9gvgn2bQJ%I-r08h=610O&r*E? z^vPj}r@&c&Z;ZL>v6@636gMtWo%EjDcQE|@zU|BXy4w-q21CPD#K+m@1HQSMD_9Tq z^dJlQ(|Re)N|o)yg;ZsGu{Zr7 OmvEE8y_p3`vxWNAM^WGMsEbmVP_v z;3G}I>@y0M7 @>ig46bJPx|u~n^Lp`+w-^;kJ&$1cVMbJtSxt(g7xc( zZ9pEB tG}A72GHJud{N2qHUH>6 $dB z-K9Uy&JsN7!-bK3NXW$dNO^Oey)d);u5fN{Wb35n6`+Xb?|t6%1L|}26PS!-n?ss! zTU{l-9QtKQx$9z?3nG>oHdhpwB_O7Hc-!i96!&8F#!XMV`~~|%?pu=aj;KXprQk8~ z;Zlj-;x!sIIf(y0BWCNzddM93%8FHkp~*4n7Ux^g@w~c%!!{d%QO~<4v5--Z`=gZ6 z^dtUXqrMVCXX=>V1MIfD&L)~nFmoTCO^2SW=3*Uy%zd#UXl{rKe-3E{@yZN4Eb_vB zFp00p!Sf7YJtk;}vaGlZxM)S0>)0k~VQ#;?f$TK&ZTyMKgQ#CnjD#}{8$7LBztIzb z_f{^JJA;7>ESe{Qw(-{GUssfrULdh%(-y!?MhYS!=1lSLETSC!oJg?43@8=n|9K*x zSl~exm#PHux)-GnUV w>bO;Gd5#RCr!gSjhxG0$ZZd{J%5rnZ&xaD~T^MUF`-- z1?h>8J_B_tyJ%jvaP&Uso}+1J)Zm8hU1`jLJD0yJ&T~<5TIo&Uyas|Ff;$K-^7qEM zWEV5J=?{ej)&EB5?ehogp%M(tCSE)*%XEN#(-O~F4m6v%@r5~pzW`M{9 R%Ek9IpTMLTAvFBsU49pCd@0eDf0bQbRNE}IRB&5f{ z+(y>;xV OEX;2c! zGcaw-gZO~aFV;@vm%!&CP`Y`b?P31Dh7RHXJ%7)*pL9=z!$Kfs4IEYKL@E1lT}rT{ zw5%TOEhawSXZ(Tr+-^ldOwd5!oG+6@mo@YzULbnn?$7Bk45O^W@g@Ihr!VO7=0n*q zu-VUIn&AiIlN#lAZ^lhz2WJjWdpt8z{y-Q`w7P6=UKPI|6aXX33J1b}dt<2MWMvN! z@Q;2%we-OeKkNtSUk9KJBHI>D#k^m?uRJea1z|h`aZuOg`dh=Nik;uf0S@85CA$wb zG6{VPWL^4rE@gPMMGy;F2}-vm9sa}15CeMVq??BMUh3q?e}IX9f{DHidcWrfAh2=H z|4TLoNI`{wQhA>#_m&eqLj-C^Zq4nZV~<4Ii=kT{ecv0U-{i{VMCMzHoNp*TQ->X4 zEy%{dFz4H=3fWLzahYVM1ph6Z WfFK*2$97`CB`3Z`lw1o>e7GY!Lg9uDAY9+ zE1i79nM-peCDLKu^5cwDJt9f=D|1w&8*5zuYoqk5Omo$ m_JuDXa(Q&m*yDu3 z?WVyd17>nx@H1U{2LFf$>kO>lZN6AemRSx7i%-1a+s34jd93ddx!m#imMrN$$TmRf z8Jd#%ryn{fcETI`S5{=-&@J0{fXvKg?l3f^UH*>QDl mAJ$KHyOCtKG2 TXUhlpa7@+K5PeF!~f3|Gjc8$Tu_L)jybqgAua6|S+ctzZN)d-rAVV_4Ou zQKvbhUy|Bj(r+(p9-1qnpqy@wZ@>@EY)I<*kdJmrty79?Q+``IT{PO)ahw(6M=gwK zji6d)%AhZ~A($%r7f#t{8T}(<;>?O)Rd~w=8EQJ-Vm+|7{^$VypFZY4Dj5k7kP!)l z;{ry(V&=?~nE}OUR*D8n%2qDWTw(vG5yH1>YGQ7-VjQ&9Sqb{%4!8}mStIH9#s#%4uG-X^=`*Hb+FhoIUnPpbCRE3{=a1*2W*B)n5)Mf4&!jvpt`e;3Rck (xa?AfzgS!Ph8TGFaIDxSuVJkI$V&=hxdbUr60yE$g$8ai#}8he#>1V z%=fX!Uabu5WNuH|K{Buk01O;-2>F$Tsj95~2^Z(gMPfDRD+Hz-vpZ7|Uf*iEyjiva z%@HrnAlBN(dNEnZ{&P8iBp;|g?WB9^UWxFhf@U8%q2TJIj`ckRKcD_Mz7@VWB)XX1 z@ KljZ$GtC2Y$djy0QGbapuBQENUjQ3B z$F6uzrf6<3%!gXkgC{A##S~<} 26Yk;j` zSn6qKggf{DC2D4&trqw$qbj-&Vcpno6*W>2LbxTP_`erp5gn{ih Rt% z<$E$^yeg`8D0zT!veAIDUv;#3+;Jb~yY9_qv`?3lf{lmfP_@~{$IAgey)$^A?cBZg zW7>i*v2g{ce-0S`BOmgBH9rH%b$z$qJ~4@2G|1=QFoK!GRi%JpF#Y_2x%_D*H&mEd z$NNIywedDK+dK|t$G?2IbqdhR84JTU^PL0_^p%86i`63NAQqqT er@>Be_)U3VfJU65R%v){ zv%=wo(nXFwvm>Cj)BaJnx)la|nF0xkr#(}KvViyvO5JK5xjCI^zI9qR5Y60Oo0G{7 zrKZ%qKk7xtPXD`H=|ScLT5J&4%h5;3CyI~pNrZ^$V6LX{0kx*J+olLc dR{?7`_XsiC9wviZWi7_x zXms8NW{HKAX6~EFnH#xo{i=oW;u}h)qzs5@bO5LldT&flZ;||Wt68f6yqc`V(Ns2f zuA3-6v6Xpa1EIe*Dw&GgdVXhLeH?$OkhkLwndBq0%m_$~wzI)yZQ>tmhMrHzJ5)KZ zmlZm#Xvm9^w=Ec5i?e~ErUY;A&yfs8NqOQ`K9svZzD4j{u7$!SPjjJ2Sd4T7!F(R# zp}|f&NOU2|LF<`V2zmTec4yKL9#Yb;@(#vqfq#-uuKT^lkG1m45Np56ye621>HFoF zNB58Ps>_95$+MljD(oWLLtFmTwUcDH?TztF+Wlyb1oaO87diUP(WhFg4h1@DE~oo$ zy-l0wKc^BJLaPS-B1z#g5niiggSVSSTdCEv_H70C$0*kqm+!0QZ(F}1{Frn=n!a#| zD^LjpJFvd)-yo~XM-4uQd=&gu8|$_v+N_ijRe0_Mj2?qv {sHh2@9jwATSmGvb|# 9yE-#naChKSRA8w? Z LYHscD`_}SBFUcseZQv^D``^WV=<+PW&Y`I8$u@0+TbLs4B}tE8c10a zVEdT4^655#N``&Hd~Vw6_CYRT20i|h2S(f|w)1X4C1D16=)k%QI)UAIMX5n9Pu8wt zlx994L4l|dLoVN`h|Iq~bu8tZjMJIw )dCO)L_~7y zLH8lcS$Y9n#xlL7caU$_NDI _#z C4=faD})#!X>lbq n*4Aipl{`EF3tK%X~5 ztagj>CNcL>TVhRpDtfH6q<$uYJBm5G;{xKXOxepmX$S~=Z*6QV`<>sgDXzIP9yC9E z&e1d)Smw9L8-yd07(9A9-E?=}%(BM)`m{u);@_nfn5u7#7ohw$HvvkHi+@ZQZHg`9 zVuNsi=emnn5qmQ{@!!7!0 -h#3tr ae94i|Kd zBCPr+S?!J)7302}vBGyoia1Axd$mX7ax>(J9|L F>9%yCxnmr@CbZZKDHTQJkB`)%MvJ8 zP_OSyGJgn_b9XN_kF$Nl|BJwp$8jCPe!s(!FVX=3y3>&CV8o7O$FtF?=D^KB+lb=| z50*ODTHog~uJ_^`hnYJxmlRd(PW_??-1rIAvM2}yE!p@F%Bd?t{sw=($&&pFE%Egr zY|(WZ5P_`tJ#ke(Zv1EU!@rh?m?zf%QN(Y3w1(FIi!>C0iQRXUw4fn>2+(Yjogmg3 zOATd@i;pY}c}|Fs6QvtOgs2HI5p9}?l~c2& z# Lw75a6Nba**MNPgdXHyESia!e*!RMzF@*_n#@p7Q-vAt;(dU0-AM3lf6 F=*?X-eV;Y4eGVne6>fquH9CsPY>-S&p` zm*KZw$x3p2sI-DZ(jpQ!f=aK^7Jv0oLw{Mo`#*9U^-Pa)<5jm4$ GrKliixi9My3=c!T*4cn6gXCq*>R9Yk9OxXhS zk9l{fE5OqFu$6`1VC8bmsf-vYUvawc*qM`JT*IR&<%fti2P9iY((!h$_@85S_*iB1 zs_eBlnG17 axL<`Q{4cuWYYS& zlVR3`LSwkK3Ya^lVOAV2)fhZ`=sB!bkpO5mdtzPf6dXrc9p)O0TLBHLalgW}o#@=8 zOv>lGL;=Zc(sBT?FQw{R9>XI&jxc;bFBbQmvh|b_v!}&aap45KFFdkN5 zR_hPwdNikU_obv=b ou-17Dy5mP=Qs(?%QL+zwT5|N20~8z73>-MP7h a&s0Uy5_ zu&G}Aly(YIJN=0~8;BW`n_IA-!pVFEr^o&%_yt!yM&U1^U+#0qi*p&<(9Qj*D^&Fc z7}fH|;zrUXtySg J48^oMqPzOdSu zabkRQeJoG8$5-9|&UjZfr(^&Ho5TD)!_}t+Hvtc; Pg#;A1$m}>tYF>EnD?3MDn-}Tp^WQTOE z^7F#NCvA?CVZStu^T2<5DL2WxpZ|2y|7@u@UC4~>5A!#@Q&X>eL~6FZe90DOttR9$ zC=6Z!Bq1Hjb9G2oUTK(Pn0tt)t%=&dqCbCep@p~ocr;C(NS+ZW2UB;Jd{r59vr(#Q zLdAx10Tg22$Bq%n%~a12cjKoGVJpB^{1vNP){x^dMcP+7{#=JJceNWqZ#X0DR4!^C z0U7l7rd7EtghA!m8>Y%BY|ieinScNwM-OayNf_%F^eytvb7OxsOb1{q$OpxH+MjZB zWx$2zXJTF~1BcFYe@{=Iti4dl4pn^q_Lc%X_7G5Ia5+8BZ`=G{?={N(H7Br#QDV!8 zKlkFn6p$^BC-T3P((-NocR%Rgixo$i0Qh4fog)#?`#un&RpSas%P)&swe} )A^=(%`T@ p~aU8oQ|9_DH!=j%DdBRoErYh{H jfrpETi%)MO}>{U9zuV{{a3YuaxJ6isWw*%vTgd z;67*7f{?YoH-9m+&}s;iXr?t90cjgm&-*5!e(T9xsJfvf&ySZK3LkkxG_F4hSuAzX zlXW23oFa;iL1#vUYn9eHgOT0G5R=0RgMxolknhid3WBrye)P3O{KfwA#}+3D+Amb* z{CZKd;%tzE^ucA_zw+9i!^vwaDI=g _XaZwy2i7-t8q|m}zf)E)m*V7F5#DK2Ae?FD^yub(=s+Cv+@qk2mFe=v=+xzG})@ z&4C?ot!{Yd-GpkiamRf&!rW5#N0$X01M50##g6cnpVtRigIhelmpDNfFw5SG- EPs@DnJO!)L(r{z{sDNgo5&u)jw&j1RHSH#;L zz>`%!ziZZ=s*OQ2eV%O8(GzDH8Rpx;_HpRxcRrp1q7^{kqIZjQ{&_{FSrw4rWIVSG znfAHlfT|u5k5VO!lqm6t$r t_W255K8CwRR}(_LAXOH6)Hh z88QB3BoAgJS#NlIX (U)~oJEFUrI+4Sf^!ojr8*4+83itd7B_?p4taH~z;V`~(+ukT^%vcUVMeWjVAq z!w+VJzl2fWAL|<|UKOecf*IZh?BVxmd#yB=y_OMqPU4Tt7ODq?$21ujdng{|O^382 zcI7#(*HAmjxS;$B52Sv^KZ6E)P1pxVAN>gBu5^kJ{1LjFrz~SiUfDByIvF-lL5P&^ zxXJXUz^L;tuvw2VANY=f{25AK{zSQo-?4owW*;~ub>ToJBaymSdTYT8oX~S88xVp0 z0nf03JDlxNs{31a>>|z{{*20o3Fm7F3T~YBbLhD=beDk|eM2gE61pe2lm8ne$Mnki zQlT`Xw0&gb^5krQC#Q(yAk>AC%^{j!eZB)3b2VR7qpbvwo?OUO+Y7jrHF4 HR+a=Z;?xx6;t}r(Q>Snpp$EzGSAnf4o?{?7(e%_Mn^^{Pt9N z_|+;4a}%aFd1MaZPP>nZX?5=J1O}xKY~#HDdA>vH`V{aQ%+8hJIEe#f9wcSU`FcU0 zKrkzUtRaYDe`r<*fF{$ci^_A4Exbx##A%mNbYXan0%yhMaOSYR%@pHrv{DL8UHQ6a zn;Zk55NTn1$|*AqJe@7zkZDWQ%l(0m^S~)r`Tn2jNo`3KP^A^kpUfO5ElNzHg>_uC z)x{pPrN- g4lR?)*#%pMC9Wo4FgGYc){CnV=2rcb+whf|1wF?u!@K`^WDl zz?d1?n)Y_N@#J5I_*VNn>4jw_1WdJ{8}e$LQ;L2!)^(KU(9Iu?0$g9tnZ5c1Z?J2V z=0jgyr{#S}o`ebi|C}tk-u_{H01PkW?@w;yHaYKA7M >vK;GW9m1;fwXo0?f?EzX@q!zGuJ${|R z2Hz$$_(Rgkich0_g}#iPp#6{?yX}2Ztc4 m!FaH}(<=ek3S>~)A= zBlye;HeE=C1w{uPQxWUYpO0cr+Cstp6iDCvJQ?suKYLkYDEYo00OGNUYp3J#l=7Y* zul;m2eupUt!PO3>^jz*RQ9n% 7HoV*+AsCTc?Y_4cOIAX{vz zb{oGBhQpVa@W-erVJL8$^vlzA{@)#8%qC7xGFU|>HJ`l}Y@zW{7Rv8#t?Tu&q-dy_ z0H=`+$xD*-=eEmRq&YGyMvQXg+QcT+mouicYIH *lE{#?O@$5)rW7Td5z?f*K6 zjuA(0VGT)^vS9(G&_iHTxf>xssBl}>9Fi50oEoy_>2d?0%YJfD_ZN3tu;7vC&$5af zF9PDI4W-nD8%#l%=>k2EnCr(>oy d-QHN+o@IUeN*=hm; z>A(Yc*z29ir+vlCD@{BkRyCC(EDtG_SMR400qDJ8hlD0wXSX?$N8BokXTUXU-`sNh zA_4d6)pBZ*o#|9$@zr8m{Bclcb?JHeb9$=GR9(tAKlSr&!Y}((vKo5P9$!koU0mkY zo2svm{AhLkGULc#eJ`&5*=zuS1Y*f}(8Ez5>mR %QY@T69K+>1ltdU!etz(0muYjB|MSIWbTe?{KQf*zPn{>{7SK7b0Vtgx?gp3=K zjW6Zn KZ26xcg?*&Dyrsp2@_A=9; z&QjXS@@A3&n8AG@Qbtg EGsq=|j`Mixm`k5Qi)Ysi3b>`gk{>_e1Q@ z{A5UokNmZJ-g)c04RDG@6gZ1leTs`6CNs_?SV=%Davx;2J PTdLJoc<_c+g)Mw$sGPpGE8XT?3Mk1 zFNEkFp*H>S1p!B+&WZ?$`u_9>8(^xB@<30yf=F0q{aI>ztW#K~(qUF#6K>tFo#}x{ zoowsUTNL>P2R9wR4S%8F{k1k8U|9LQ-7{m>oYBG60STALm}2bp!$!ETm1eQg7QkaE z#z|o(s9DUH!uJAaXFilST=SQQ@3?gNR^O#W3w{H>6ZsQ(z@Ir*+ZM(rJt0u4t %-Z{4wx_IaKrrSDFJ=ugq}Gv%v3i1C9tVem12>HFCjgIyz^yQ#ftJaD^AU%XXdvT z1Hp<-+t!l^9sIH?p@st5iTQa`&=04l2Uw&FF!Zmo(r$z(%Wg7T-U#BjD=xQ}ptH|3 z+~=`TK%7Y*3zW$k=Li4tfM)XnT)3ox6r(W1rY~o^)KVb3+^ef*9ZJv1)ULBnTqFy# zq2e_8gUgSk4U#>57IoJ7JA)+BdU1_Z%;P7FRW9HyhMS1WTC$%9;h34~=Cu{NCR=G( zso~bbERJd~*| %Bo-ulbEEjGpH<)82QDCKUW%MTJ30LF#PY)2^a0~X&i3T%;)Oa zGDXCPU!E1M)VNOHj2VgJ@Oqa)=qg2gSnc@*f4HosO@5nj^H$?5t28`DIY`rplt+r% z-y2YinJ~WSunPKm1;2GEkD?yWnQFGYn!4s)>bjOEi&Rj6jUC?4$oAeR$Yjgie?Q#x z7AJr?233n{rQ;rc{B<|dGaq=s7VN8v`wEuf`Djkp&AD~`dXT(yjf~rI^jEMb`++!m ztq?77kT=}xddkk;>MCLPGr(zZqKDp)&rff)#fzuXVe_@@(V9KqmmooLMIlp;l`$a9 z#oIIFqZsd$O(tesm6e6 4 zT(nBTj5YQ>+Cf_~(E@+Oy;$tNna9y0&(MkUGUL<=BCj$II;%+|Sv-S`ypFa;ydA0H z)>pVzK}^xmJD!!+TNKLCU60=YORyWXeY`S7@m2&nwuig$&QFb8Vf8aa!`6`Zu#bXw z70WkJ@op_~ClHgUxl7|x^Yf5Tzko%^;aus6^ar%e9XvZ`%s|`iI&jLbD`Yx+%u8Dd z+iV~EW*+D!-;{EnzF%3qvfYXP$K)ukn7*kv-L=-tXBtoewSS6>&xjq`gsymsd4k83 zOlw%Di_IZvt$@nzzM@z|Pu}4NaL)NMx3$bt?Jse;X!4h3HW5mk3L77hP-*|s*cNrX z=KvwGDws|A>_gOYq4G}dG9mlP3_ulolXp;Q{3?m!=E;GXWqB?%ZJOb(TTR!bWm8H; zk_cjtLDVmYR8Ya#${wR!Gf6w`=xvQQUJM;nm)$GK=?#hMy||JMRTHXM!@rw_MuQ&r zDPJ~+@HjlQP1~IQ<9e}|hVEi~_IQE3>)Cw(_F2tl5;2HU$fM%FifPT4rDXJSTxUTeIC^b3Qn0UnmYK_fjQY za)mv@+#n&ZK_D ;l(7QfrQtw&WvU?1D+Tli#Op&o(ags< z+MY4dKYyEjCGYP&vKJMr={+;TR`A|l>VEBUKt_LtjTdJxc*rmq)Ty01m@I6y!0tN| zM1NZjLOgNKd3RlJ?T^~u7K6EIgHdj8Nq2_k+SgUQ=dPI%b%*i016Z+sn-xLr-ut~# zEZE}5Vuhy+`q4YfZV!nyzJ@%wjFy;wP?PM~aGn(Rb((?;L(rVK4g$$DTttX-u2B_U zfEEl^r{C;x3$7%R #}60FT;`{T(-yC zbSlwYRWjdm`6t{(UW7b@TnlV~b^wq_-li3xcD-vZ%`ziCJS;5Vb6(D&@c*&*-d{~^ zTmP^k3aAK(3P=Yj7J8SeC`c0#Hb_V50-^V26h$Rcq!X$jB{b =w=1c_2J&e-!BBaA9YkEs2as zPID|tU2Mqmx5=(m;S-EI 2(?Zk|2)y4cQ zM-C(2%bM6=Ri>ohBGTV{O^>Q=o0$|_doRM;LVF$$#EgxI-5LuV0go#XIO=QvP4;Mu z?2EnC^&*?*n@N;3a0m9+ow=ugxJo_mH0hitBKg6W0R1@gGk9iMqj7OkK%J+KiuL(2 zeWtf$PK+H^->2b`0xsrR_wv<-Eo}*3IFiwS9@%~#&h7eb(9f%j&m*jGQruF|Vo7$d zPHeyKbN)_dkGYZzI%UyYOJz7zbuVWx>?+-iOQ;JS8!C!rmLcN&mbX{dpnoJwXYm_3 z)%jT_G*kIOSxtWu=v*MEA7LI5$JPY(uOCwS*A-$O>D;%?B+D#p(9W7PyPGnTqTka5 zW`07x;&S 6Uf#b5NClxHlY-@i1F zD5~nnWtFSA_KnP~>qJA?DxDUTQc98-t+W5d2^M6e@i(7|7u#ofZ&9eDqkj4P^8T7~ zmLmfVf2U*X)rFS#JFicaRn0!0%EEKueugUqbb7n9Es(lCYc#_Z7`v)o`;QZS@hK(h z;K3mQd|NZxqIT<0weQE7C!zvc?<>|~R&JWE>r9_+Crdu8^&SN+2>c!`rvn+3fx#9R zVWU!Er`xgfK^`@raGZ*r;04dZxJNseV-@6@Q7#cej^n9>ABE)(;7Fy bYAblSy5Vb)`klT^@zq6HuqQ?8(U5n9n^QaUz(bc0P7e zq4Adx#|NP+$~44wzR#YW@71q4;?9|QsYSo&b;q95snv)qs)>IA&(l)>y?EH${_aG! zyt2oqjqlUPlk7WU)Z_0wT(Dudf0E YlXow*W+nK2?3WS; z4xTH@UsB$^Q;pk@M;c0 &y{uQ-6*BEd$}1 z%sEZI^{>HSg#>3n7ntvptw@ DWa#13`5Vn zq_t_AnXLZ4kR_}a8tfqSdsFU%7{!ao+csKemGDu8?`sci);7;Eg-xM{8?aFC7W~pw zMbgWoA22`rkvr&Ca^)N0hs6_48q|TobrSl6jP@Nc+GA4uRJ3v04q(5!J1^KJzrA{x z(qhLloaaaH%e3=M&tt%3$|nyprYhg19MyRitTT1Dbw2ib)eHV== Bj-`#dr zMZUVeq`Q3Ic%@@+J|jtdr#%sttZi0m#>v2;Wis$y<4k{gGeKP=q1trl>_FRQ=og3n zo>yhqUWGDEo0*TD&kWnYRyL{I=!!2l+_{|2PA{FT&ZDot)u&;wTi4|DgyM+#+IT4M zM&xL?B__bzE5-MWo{efzq!EMf3;JAhhl^i;|M1d9-@t<}KPULHCvXBH-MLL)B?u1% zM)qE+^*m-BxxlxvZFuUTs)5s^n5@1x* M$ib()?cgiunE3n)Dl(j_a!XWDS*vvb@rN*88^~ zXyl>))hrjeOsn)!XQ!`iLH*`&|B{R084>hj1B^rM%|#onS6dRsl)jt$I>_823QnJr zv0sl}JkHF>%ed>k2X;B)I4d|6tON0e^e&6xzD&BAetl8AM6}1LycTp7?S=UW1q_^H zga7*2G13cjRcgE0 z8fkTTN6LKqQH1or@~!Vyw#ZK%6^{KMUQu>3ng?q zD?pK;t0tWJWX*hwLqiE7)9kKr=k{X6r6$Yws#qmw^3q|Uc|pf2&kh&ysik{S6oxzU zhdi}xFBouKe>ta&zpR28fAjhsaZ}0Gb-n-HN^>Qpm#M9x%p%gX&a}-O7p*04lgB9m z8ZrD_Ax&U-(DmK10xYe;!vpbUftX~t#6mT1X6K>|*x*7gkZt%+&!D- V#6qHP# z+VJDKL_?1PZ68tEB{hc@9sm*J`-O&UMief6QeUy087K>5TV5T$yfp;wm$dp){3%%A z^N+C33ow&g<2QF-s)3=efmQ)Jm+wXk3el``cA!hHE)=jd;(AZKjAE5BU|c5TJFR4^ z{1bV KjZr
uIG<~Cf*6B^rf@2N5g)(I;eON!+U7eL$~QSXwE8ca@l$ucctpr! zBXDt?2@Gyicw7|Tc4m6a{rrq>`7g?2cCf@TK5v-cZ;h+z2CLXthkh5jdF@9-ykAc= z43j;q*p~x`VqRi1O^AIMTfXS$n;(o?Al!5b&o?VW!4`jF?1gz3U~eE2m)^Drvhv@V z@xRaC0Lk3YeiYn_RoA%k8Y2@i;oiU!`Q-I$3A=zx`~&)%NnGmUpvM{YtY7k=dS~Fo zd<)%2y_78pm&Y1;T41%y3cJJ3$cL(J{J0mxZ5VOTR+zO8)@pyi4dV1Z?Ga`tdBtma zZ=a*P?Hz}CzR%-Yzw!L0PdALYuX)?~k1qYksR^!0$L2YISOnU#_bi5UZpGTgCr;(7 z8#l4ce6U`%6xSD5ap_%HC0~!r`u*-z-A0c}`XYXL$htQ9Yn$uLPv<+Cca_q{UN6^K zIS0)B%&37~WerzUUcSO*@v(GZ(%+aU<~QH@Bbe!SMnhF0%lKG2&)Hy+WN<%` ?lO~6NFO`t0O9wW|w#gp7w$Fcq6;?cy1E|ZJU8Jv)yO#N9`FK7?hGjFKGhg() zkCnRLc^#tp{*2Mh=R}fsqrx}xsm#u`*-A~F6zqi5L5S9jVNsMzVX^eN^E}5EDEp`@ zCETw!P1tBTQBw|_DND}_+7dd-Vk2T_L;1T;-rng6nBD6{){`*&NBz>ToN$u^b#KO% z2b0w)6Md?BTP}uTmCZ-`mLJ^R7Gie-;{PYlZ-b>~3}=Fp+n0$C?sWtP>PK#|X4OtU z!_Q(!mSaB;X2HIJluFw6tQ!*tAFeFIIV&q>{ao7@D5O{2-)WC6zPORAZ?J7K&HM8% zO+3nFRoT?!cuu;@Pib!cv~9v%SoH=M9P?R5Cem|UsJW@N(q`TKc0hOo;T#+TrNK%P zB?6-q7?0s4)O{$CR}wTAQ hK*s{$^bD<^xPD7>=H~chR %w1-X_cI8Xo%an7OR+&a4VVE1 t+mDjbe#dQ0|7V;a|5cCB2{B(Cz&Fx;#=zGj(YL3ugNrJR&%3#&LY z&OOaWFJ*jKvE#`6bGP7o&v%>!H9jfyWIG+7`zHrdcEl+* ;($oBeD=_epHT_p5Ay8F6EDIwOhOp84zdAEm#yQG%{K63*;cOzFAVIqek{ z7l*{zp68oFAP!21%`nE^wA5ma(?rc-#~~|?XQiiWt&M;cvR|Hc(`57g^U<((6E57z zd(EvTql0H*O-<;YW9s~kgp`UJi_x8?S>{JV;+I%4d*hZPN($vwj%Op<1E&Rt_UmQ{ z9aIZSD&>bj&XW;DZ|k1DtKaj31uv`1K{3C?y82Ya2A^X5-MU;huCX^CE^n$!1=>lw zX{Zo?Ja`Q!I60WD&BBI5AsW5;(dtmj1DlYKP=Z};9YpJyk|6FN9_sB0Va3kqic4=1 zY0~0;V57h09B>w!JEZo^o}S)%4AiWjN}Gy}ck}x(mbOc^;H$h$#4|IpDl&ox(SHhu z>N31nbRj(UpXTf*y;vVbteR-7k4=WV3>_UT94RF31C{1i-#Tv1``1zJeqymq1*t(* zha|yV$U#M26I?pi&UpBVE9U|X)}V=hll2ftm25QMy~tW_My@n(o4S(@f72xJS%WIt z5-iJsF`u1<%$@obfne*ex%L`W_!DM_I)8uqJ(Bkpb_}zcW8m3l1=LwVLrMi7u?F4C zj|^RUi`mtbc2pgoeWdj$J?@1Y?M%1@L^Qw%nD+ZF`|9~c=w_MK-CC)W&>W=v=zvOY z!(&@Z_N~hyyT}(_Ra%D{g%wD7ybDX&c)wxsHMtTW9mq57zGi1Ovs~HHGh{M+KYEdu{cT;2PO-hiaOY2>I6nSQ VO8%_}5wBl fi4)W`k X50ly6@7O>LwC zmsEYV3bNE_YrbW*-%PLfYUB#nX;@@ZZYS9vGBUH+B0kKv+LnV1_~i+Qi9+D%Of3!V z6C$QkzcVwq?P?QlVEU4#@)ByI<(zdKaymO#A#C8|U-p%R 9ng=)b~!(G7QSGh^5%uA`~PfeEks1|bK=G@Gy{1(2NNGrM6 zEjvJSwhjScgr4&n#W}V^<7-Xt^p$3|)2@wV^t(BCx3G<6Xi>*xhv1|7^;fsPJqQ?_ zcD%j0UMTe+R_5^>COH)9r5+bIT=v(Y8cnxuv= wBoY~S&HFC2G@!)#J<8ba?gL>vM zuKbwa5K=DGU=TjiM6U1g+x&&t+nb5+I1qiUe^?RtH2+2~y%Ak4!N1@0E%LW~(3zkz zWWcSA(jt&$|8^Yxvtv-h^Q>vtBn;QXoE;Av3irxe_Cf-^KP$!Hl1fbWx6ur*@`-vI z`(L2DIDT;z$M0#MDc2l=mS$Hd9!__LJsa0S^2HP*!nvFuP`!%yU~4}-5l!bC7PR<= zf|T!gqWB@y)tb)JIPqX&kkV26BRga*ZRKv=3LbVdc;l`1bm6EdbkoyHAyZKX#D75i zj!hGe!|WO_Hh;D#QsM$DMkAqzu^w@@MQEqs)9g^_FO391ZuqR59R7RiZ3XL8HvZ$m zU$7k;dP0qH6)gU0zplf lT &r}ObyDdq~{~#KO z;rkDHa-T@zZ0qc_dt|TNmk%+(6B|4-uCkJ`^}C}I2db#f`P~(|6H Wq7Pr>5jkfyyibHCMz*g`$QLi^i*z|eHwqDDReE}$Y=`dd*h;5{ bF5H_p#9H+#}I2?#nWxp+6D6sbs~@!nWk{F)SzI8djk0 zu1#}PX7#%w+U*kyx>&gPnyi3a^|m_tAZ>Ac=7CN6&hybkGB8Xea#f@BG^Pu7XRi~Q zb~O^il+Vx16d)?|37$Ht;s+6ky`~ura@9@O%HH2QCx~G-`!%T7lk2-y6VwgxHQUJ! zJLR9cnwb=?f)X>tlgYk%^B8M4i2Pps#YARS?gGrEZ3})F%g}h5_J5N={w@?N$1>E^ z)a);GrS%h{Qss&HdGSM6LRJ$nd?MJ_ZBzpNa&?p#Ml1z(QsQbsWUa?+S$r22Z_PtH zgLaY=m*D2~teIXxdZn&Lx@Gx;dRD9q8$dFB+U!h%_F~ z2=-kSYx?Az7@0o@Dfohi@ME&iM2n}% xs^YDBz>;7E zL_u4%TQ&3;&TcJ4NWR>ZwRh59Eh#?GYk9{ZBaVJ&pgJ{ae7mp1-LMO6;b#nFjRafe`-TN$ z98D*Q3^ZJ$p=MU`<*tzS?rk((I3Zn528$JhttExoDEUMyc4L)(Jgoj G08*#d?YFD~kPcZ;OLjZfDpt_PXu%;N)Wso{Iq)K6>Z x z=rA6Z^Uov)13NFTr(HWTL^r^tHf@vQ{rafuBsu)%vW~Eej)NsGhbd}Wk9Z;uXrh!M zf;QgL*kzz#5SJf_t3{C-db@JU+j}c28a5$4FTM@>U+ZIlG5-=cHj{6+9M$uzUnKRt zyi1<{50GbIqG;g-2q_NH9Xth+bZ=RyO;yCt0n2(>fE{jKh;WqsyfN0w{Sd%XE$GN# z8V_V^Ex!ghor*gkZB`*xhgtLG%kbLDfw?!ZU}X)N6;b&;5pNLD_~13y|to#NHRW zvySeOtR^d|;1#Dq?paQ(nd>+WW0@kQ-T!am$UlabECpM+bF<+R&t$1ilSp`@;n8ib z JBIUS>izAPiXowP)cY4TYm?(b zMoSS95fQhWaDA5E>E>u)a5Y8_OT&Z9=drdW0|)=P+a;h!M?7U zv@nTSHE6jkw1}dAFzq#j{4EG12KnjS9>>o-bQT`sXr#+i{qF4-57(BYc!rlQ=Um&K zjUuER&@SxX;CCsXoG25b4v3tmc&X*;lo_+U(6p!<(t?K)amU5Ka1&OFt^$K7VX z|EYSccm^d8)ZOJwi{)8*+($?x2IFB$P|T0-Q<}SBNd`HTIBPb`bc1%=yEZq((G~p+ zFx3x;nVO&VqyxlFf0WLZ+||mAoGt4XoY0N>>9@F0Kx)8!STyqX>-B|54Z}=BfX<>_ z`%AJ!WHnw4u^MlzWNj0&g)s;ov#=2spYaQwo8?M5C671hT?ZBlp_{{Lqkz9R8*lJC zM0cR=;Cq8EHqw*`rKqa>A>ht7HYdxwr-N8M)#7$!Y%1K4d*iEvR!v>98T7&<8ujs? z)uqIn1LvBhtNjRLVNxjXy$18J4^?;}qhYz-uq^gLuNM=7OZmV~$;=5*dDVycVLTOB zR2||ujfOj9un&o3LA+GVx|_O9Gw Rq zRi&|RGr7dCIqYJM3|dISVq9n$yJdO-r+_$`us66|mc4nMiv7&lmi($^N`~yzmjaVv z_ETK&tFLA!$RrT16)W&M`daJJh@R=EORq{w;--?)4fk&OYh*cGSQWH)db*_KE-a2N z;iWh?Nk!eF+R}Tz(Jc1uw{6fx_R}yiR(YaI31Ta(O^eM;l)ox#Q7K(g+AIiu5U2)( z>X-AWLp`HWirZXuDCwEHGK4i=Sv7~OzZ)hfKC@W3k#e3@k@ml=#y TQ!Ahf{6)fMctG_nYHc1A6*?wXS~+%ayw= z!XGFF_^6&;Q4xB4mugDadRm0r5>OZ+^Uv%JH{J&*p7_XAzg=e+t2w%MsYEyP%2N){ zF^~=E+BdnU+MNf-_OgTmRVs0TXJFIR?+wz+$Fo-ymZgT>>tH9*n)I+LTnYPBhCRRP zkF-^~0J*Dla!oFYb-fL@ftHpkXwK-Npi6QcoVCf>4zwCC18|({(;0~g@p~c*bV468uMo}E9Q_t;*+ 1Jfa%u;^H-v=?)43yBSUA?oNraN zyX^@dx60>1o0u ~a#cBr-x-EuVB0hVNeo!>JjUgewP-1+(A z326a=%vN@83nlmr#wP%q8I4lR;gLN=e=ajZzq||)ah1a3GCUY_nbon{S3|Z#Zg8Z| zB@*%gVBi%$QcprxS^@zI<#f}eoSefp_xqv`kq(#T?}Lrw5#0o`0KX4;P?yLZU$jzn zR{d}}Ua4I5i~o)09;0D*b8n8N{J08d5(s2hh|{7w+F7AsdvqALuA-x3cV)YeUPc`s zsere0TRaHdWJBr69o`(Mg{`9-%2eNZhhM|z#I>oK01XCCz#Eq&RHwwCn62SM$8J1C zi?VgFl_^8+#^g<<3}u}P`PH5SdKB=hwHaQQ_-rCJZ{IYN`n%!c;Y3BXppIqQ;q`bz z)lirkmuSK #V-2(j7H|JqnQ3L{3i`D;{2KL?TDL)e)Q+e21g3vWkG_o3l zcT ;pEdXfsn zn8XU=H`pTA=~v#i_aGr%4TaVa13=%hqP&8=@Zn+3%JyI_bshzN;=Gq*{;PxctmD3` zeHm}&AwXjPFy+1NW2blXJt-R^fN$GHIUa!?H2srlNm;_3+Y9c+2)XF`#T3*;pSs)- zeMWp+Gh(ZCNW@f5k$-q}TK>}qm;I*@khTpwg}Z+@6m9sxi*I}qo}M3jhb)(7S&Xbr ziZiy&J;N+XEWo(c#hpROO=Jgw T!mMX z&9VM6l~eh28_QpO%_Wr~(b_40_5LT0s1irj+L(2MZAy)|lp<0+nB8h8EUPHnn*ij~ z9OgM(!8KCeftrp@WO6m;5~MiZV2MO&O7q@&bS%^6_j-$LN#ndgc(76t$()xr)B(y$ zz`-3y5}M`GXB$2{4wDoxJFq-7Eit?du_mT-&n_t{r+ T3vdbz2`2!|FQv#li0D zHzk}rL;F7rDro3wS{Sj&eU|#Z gYfVt4RestduU35UxRvL2Xq)tOLvSJ}DV_p~+)2VwG9CRUrwf z7bZ3;6+aRX0+%I~{UJz&r;}a_YLK67X{L75mx;ww145>!d44#YO@y6A-`h%Ha6>2B zekL{^IEQC>`)U|7h>+rm&u+-X#fFu*?#T`3?`+o7fdmp7b4KX?%?yPq(9*&%eNhu? zHnz|hm;CQ*s`FP-uk!(RZJrU%{z;Wx@6nPsV=9nI wQMpn*q;nRw z5YOb7O0|8Q{S=n6z<*2gHXOkE_+`a2?pA0{nKWf^n=vhJW0OBA D9wRrSN$%0EP3)`~Ubg;prX@}KR_lp~?-Cr>v5@ ~m_weVZl{^Kh0wGiQh{O(z9S3wrQ&XOFfk>F@w(M5e)uI6 z4a-|`U#~s!_?AY1%H!{0y$FP647KG^;DX$MOy7k(lq~fVz2L7iGSos8)SuasNVVF* zjF#w)Gr+v(558O^cir6~?uH%S1rpDU*)H)Hug+?QDGbfx)J@) f9v5wunKBnm1^OA4rLWj=b(|u(Kq+a~OZC>zQHC?M2Wtmkm_yY4zfwZ2Brb zg{*dwLgR_Qn%kCschO>f U*hqHPJCg>G1)be9snRz&^s_`7X5}$#kS1 zZ8DP3Q&^i^n))!5xr6$b^}y7FIA;rQsXKcD9X3?ZHL={e^Y`q&tt-lo|9abD*JMgV zc&c|Vj%QIs4}MT$YFib~jFj*vwQgK->-O|d%y&~*24NlDWGT;87oDl<4yAUWvt!;` z_Dxz)?XZFf2C7S4mNt~bS1nq^*Z4_=hFA&FF&RGWNT>0Fp!IabRNDiETqZCrBIF~( z(UFkWTX|BUZLwL_C%#ii8dIbsmXzwHaGc!ep^WRC=&b0y*+rKzn3+B}5FPP7RWy)A z05h &d2`d@`&js=jkib -3(O zQ?vKMkIf`@uS(a?V}VNH-ixfA7lv1|0_>BL5{8uV%Fddtm{V^miaI-#yju@p%QCTT zC(rK{tSjuAOmkF69aOwK!NSPO9Y9mW^;c5huN=+tH6HOym)@r=f4@kptEFb6^l|2) z3Dw_M^l!-gOPZ}cP_t=P*M;-_^{#)|p#PC~$OLNYcEeQ>UxEMqwsRoZ6~9$q{olX& ze?$AbmGcbwe^mQBTmJu>*Lv>FJ+JC*3;?{*O89*#han5Sf2Cso4NaP>JmM;y5QBe! ztj8Ke`=QFn?SCLoJ_MBC^TfEz=l@1vn Irs>(-nX3eRza#bxZ~rwxWFgYGcr`KP=z})bp&=u`M-f3p 5|+Sz43QFTkrp0vq$d4i@k&cA)8Xfix==QN~5Vkze;nL 93w4e@iFeULd8ZCzuS~ z+@!w9^S}Eu86LH{wv&>T^7v#o3I0g_qfcT_mH_}mF@jx|A=Cx1^rZ|cJwFCzJH6Px z?PxN*lvZo`0PrtD$e})!rriO#`{NmlsT1 xbbBu0ABV79tQLjxW%5ms!6r>0%gnp*~wiQki*cMnStdoze2T;{56 z-O;098lP$*zN*HaN{A0!EGA=i0dXzxZC9G~J{~di+y(H91+U#qsA+pN=D_p<9pH<~ zzZ*W28to_hZitbJTK4=soBbg~qYvTNC>ZZN4U?-R@PL%k)dM9!4VU5U_ai4Soc0*c zM%Zy^#S7@sTF{nU0!u({g9G@~qDHmgXf&Ki-9EVxcnX?IcLm&=3s@qYN7;*4U8vio zu=c2<0)%kzHJo(Rf`T9_A4L|4LYXfxvS#s==^cfakvBkcRQ=L;2aY)5XvAkB{?z9l zfmlUm 8W(>?8P0a#}5z3xR$G$II<^SjY)w0ELC3FfF4K_@3yKM=Zhf$qWQ5?a?52!Dn$O zr58vG@LzA7DGtOwlICdS7yobM|0~V20HC)Faa{)Wn}FEcc9zq^(ScY4arN3GQv+Op ze>=U+t{`_-lC80HK1T~c^FJ0K%Mu`!cm_f@cLOqS**H+q!NLm=DtUjg6JoVS%B5iW z$lOs&M2;D#**pPP?2T{A>UsHFP>_FpZ%(#(0+v3{$yLsOUM(&IbuUB+`CZE(b~RgH z`vW)8jX+>$AF)@s%&WnwXhwU(ga^7QbrZ$HDn@+N=k-T6y+rIyS~2&g_{aa3U^*;B zFyLKvZJMu}P9AAeXant36JmYP8HNlHRR%kE(Wd7iMG&h+8Jx5*{fCpabR4xvA}}oG zix3u9Svz>B2#$*b$W~P}sRauf5cwD;c>$0nS8q+yLr<{O`vDY#@@T4s6L{%i{-gIB zvIJNF)A>~<(9I%$DCc<|@mo-Q5rW2NRYW|~MhGDZ<)l+;M6}jai9k1_ZQNdg0HqP! zumpDItTI4fc|;4Lo()QJKV3#1Mre6Cf)I3p%C_Uw5o{Ri^N>Fft7mSif-&|#aJHJm z6tB`KGBC52%Moa)yf55)5Zm@qrEL&QS#boL!9ln@@Pz==xiq}ues+xi@#y3QpxkAM zEF4b9CPe$U-ydxf&-9y&XtXG(rCR9n$#~0!K%R8W^4&x 3X#08iB;N43)A$Vd!Rh&?9s3gB!=8H#FbdYc+nK-HB$Tq7elp-Nw0x z%2WkB9;t{REg;m`-I{8_5LtKTXih0Gq;m19V^GaSR{eak(e?w7(IO|L6pKf9idRnp zI|dmdr(yo>F6z{R0vn$YjfUmzR0~?ZIo+UDW5W++2Zjl!xUP!NyzYHLyQUAy71iKi zK@VXnA_74^X9OlUg_ZNT{>Tk?C>FdKEDAIAjY0;@D%&2$gASE`>zPrRIVQlDJoAFO z9Xqt2iQK0yGXTnq5DZuuJsYLA))78%ph{qFaP-&< 7N`N=;R}~kB)*J-bLCW-A2;z7%5>FeV2CBWL-1$MUk`b}GeBEq! z9kI8F*n^MPSiPWS{B?S&2oY9`c$I{F%1!hKc7}nS(>{OJ$P{XBJgj~SLfca!X@ad@ z^#;?_@opdAGCz6->Y?KqC2y#2QZ+myY=CLMc?fBG`5na|gZsc3Sfc+|b)*jS@A+ja z$2Ktk>{h&5rPx;Q3@AG~t4-+Gn1Eu=Qj6=GAH)bCmLsq`PYFqgJq)7J7=r D@wfsNbD0q%w2q0H2II-_IB$R4{#Fr+TpZ`6$w#~b8gD!v(}=w{ zad15_2|Wvnc%^}shGk2@*BDUtK7|{lrlLMD=NY|F$+g)_Z{gpGmjYI>#j9ZbBR^+# zI)j&CFvQLT{F0i@WvaSDgrW)1O4QL{$Kcx(r7;KVc=y?!5QTTf2m$Cz&^~7wnNMqy zhw8hDhJ>2~OS6=%ZA3S_Z$4C;&202{Kj4c;bW8L7RSB7rt9CnT>QN$IeF?OUu*)oT ziOfMEk1){kVnov!mE`~@C+6c+{8ZdlKvsV`8O@dIwOa?b_c*9Qs8k~ktdB% Dh}yAZU6{8lU{`yeDQn%piSgv &5zq{4Hkq#I`~4DySq=$1AW-BC z=xG^WgWis(nhh7#XbD2hO*9}p5U_N+TV(}i{+_OHTn-u&0z-ye*5P*SbTH;?hgv{O zcVvAahnm?fP@tTowP;1O<{=