From b60e41bb5889f05798252816e822e593e6f54aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marin=20Ver=C5=A1i=C4=87?= Date: Wed, 27 Mar 2024 16:35:26 +0300 Subject: [PATCH] [feature] #4390: include trigger id in trigger entrypoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marin Veršić --- .../src/lib.rs | 2 +- .../mint_rose_trigger/src/lib.rs | 11 ++- .../query_assets_and_save_cursor/src/lib.rs | 2 +- .../integration/triggers/by_call_trigger.rs | 7 ++ config/src/parameters/actual.rs | 6 +- config/src/parameters/user.rs | 7 +- config/src/parameters/user/boilerplate.rs | 16 ++-- configs/swarm/executor.wasm | Bin 533713 -> 541333 bytes configs/swarm/genesis.json | 11 ++- core/src/smartcontracts/isi/account.rs | 6 +- core/src/smartcontracts/isi/mod.rs | 2 + core/src/smartcontracts/isi/triggers/mod.rs | 66 +++++++++++++ .../isi/triggers/specialized.rs | 8 ++ core/src/smartcontracts/wasm.rs | 5 +- core/src/state.rs | 7 +- data_model/src/events/data/events.rs | 7 ++ data_model/src/isi.rs | 41 +++++++- data_model/src/lib.rs | 11 ++- data_model/src/smart_contract.rs | 2 + data_model/src/visit.rs | 6 ++ docs/source/references/schema.json | 72 ++++++++++++++ schema/gen/src/lib.rs | 3 + smart_contract/executor/derive/src/default.rs | 2 + smart_contract/executor/src/default.rs | 88 ++++++++++++++---- smart_contract/executor/src/default/tokens.rs | 28 +++++- smart_contract/executor/src/permission.rs | 9 +- smart_contract/src/lib.rs | 8 +- .../trigger/derive/src/entrypoint.rs | 2 +- tools/kagami/src/genesis.rs | 9 +- 29 files changed, 375 insertions(+), 69 deletions(-) diff --git a/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs b/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs index 2a725479740..89f1e48aba9 100644 --- a/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs +++ b/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs @@ -16,7 +16,7 @@ static ALLOC: LockedAllocator = LockedAllocator::new(FreeList getrandom::register_custom_getrandom!(iroha_trigger::stub_getrandom); #[iroha_trigger::main] -fn main(_owner: AccountId, _event: Event) { +fn main(_id: TriggerId, _owner: AccountId, _event: Event) { iroha_trigger::log::info!("Executing trigger"); let accounts_cursor = FindAllAccounts.execute().dbg_unwrap(); diff --git a/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs b/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs index e3558de7c61..640e03338ef 100644 --- a/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs +++ b/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs @@ -17,12 +17,19 @@ getrandom::register_custom_getrandom!(iroha_trigger::stub_getrandom); /// Mint 1 rose for owner #[iroha_trigger::main] -fn main(owner: AccountId, _event: Event) { +fn main(id: TriggerId, owner: AccountId, _event: Event) { let rose_definition_id = AssetDefinitionId::from_str("rose#wonderland") .dbg_expect("Failed to parse `rose#wonderland` asset definition id"); let rose_id = AssetId::new(rose_definition_id, owner); - Mint::asset_numeric(1u32, rose_id) + let val: u32 = FindTriggerKeyValueByIdAndKey::new(id, "VAL".parse().unwrap()) + .execute() + .dbg_unwrap() + .into_inner() + .try_into() + .dbg_unwrap(); + + Mint::asset_numeric(val, rose_id) .execute() .dbg_expect("Failed to mint rose"); } diff --git a/client/tests/integration/smartcontracts/query_assets_and_save_cursor/src/lib.rs b/client/tests/integration/smartcontracts/query_assets_and_save_cursor/src/lib.rs index 5028ca4e01d..feadea44447 100644 --- a/client/tests/integration/smartcontracts/query_assets_and_save_cursor/src/lib.rs +++ b/client/tests/integration/smartcontracts/query_assets_and_save_cursor/src/lib.rs @@ -26,7 +26,7 @@ fn main(owner: AccountId) { .execute() .dbg_unwrap(); - let (_batch, cursor) = asset_cursor.into_raw_parts(); + let (_batch, cursor) = asset_cursor.into_parts(); SetKeyValue::account( owner, diff --git a/client/tests/integration/triggers/by_call_trigger.rs b/client/tests/integration/triggers/by_call_trigger.rs index a2c2ac2b41d..bc1ace81b41 100644 --- a/client/tests/integration/triggers/by_call_trigger.rs +++ b/client/tests/integration/triggers/by_call_trigger.rs @@ -378,6 +378,13 @@ fn trigger_in_genesis_using_base64() -> Result<()> { let prev_value = get_asset_value(&mut test_client, asset_id.clone()); // Executing trigger + test_client + .submit_blocking(SetKeyValue::trigger( + trigger_id.clone(), + "VAL".parse()?, + numeric!(1), + )) + .unwrap(); let call_trigger = ExecuteTrigger::new(trigger_id); test_client.submit_blocking(call_trigger)?; diff --git a/config/src/parameters/actual.rs b/config/src/parameters/actual.rs index df23be982f7..6b10b3d870b 100644 --- a/config/src/parameters/actual.rs +++ b/config/src/parameters/actual.rs @@ -177,10 +177,11 @@ pub struct ChainWide { pub block_time: Duration, pub commit_time: Duration, pub transaction_limits: TransactionLimits, - pub asset_metadata_limits: MetadataLimits, + pub domain_metadata_limits: MetadataLimits, pub asset_definition_metadata_limits: MetadataLimits, pub account_metadata_limits: MetadataLimits, - pub domain_metadata_limits: MetadataLimits, + pub asset_metadata_limits: MetadataLimits, + pub trigger_metadata_limits: MetadataLimits, pub ident_length_limits: LengthLimits, pub executor_runtime: WasmRuntime, pub wasm_runtime: WasmRuntime, @@ -204,6 +205,7 @@ impl Default for ChainWide { account_metadata_limits: defaults::chain_wide::DEFAULT_METADATA_LIMITS, asset_definition_metadata_limits: defaults::chain_wide::DEFAULT_METADATA_LIMITS, asset_metadata_limits: defaults::chain_wide::DEFAULT_METADATA_LIMITS, + trigger_metadata_limits: defaults::chain_wide::DEFAULT_METADATA_LIMITS, ident_length_limits: defaults::chain_wide::DEFAULT_IDENT_LENGTH_LIMITS, executor_runtime: WasmRuntime::default(), wasm_runtime: WasmRuntime::default(), diff --git a/config/src/parameters/user.rs b/config/src/parameters/user.rs index 1a0d7a5ced1..5afae534472 100644 --- a/config/src/parameters/user.rs +++ b/config/src/parameters/user.rs @@ -566,10 +566,11 @@ pub struct ChainWide { pub block_time: Duration, pub commit_time: Duration, pub transaction_limits: TransactionLimits, - pub asset_metadata_limits: MetadataLimits, + pub domain_metadata_limits: MetadataLimits, pub asset_definition_metadata_limits: MetadataLimits, pub account_metadata_limits: MetadataLimits, - pub domain_metadata_limits: MetadataLimits, + pub asset_metadata_limits: MetadataLimits, + pub trigger_metadata_limits: MetadataLimits, pub ident_length_limits: LengthLimits, pub executor_fuel_limit: u64, pub executor_max_memory: HumanBytes, @@ -585,6 +586,7 @@ impl ChainWide { commit_time, transaction_limits, asset_metadata_limits, + trigger_metadata_limits, asset_definition_metadata_limits, account_metadata_limits, domain_metadata_limits, @@ -601,6 +603,7 @@ impl ChainWide { commit_time, transaction_limits, asset_metadata_limits, + trigger_metadata_limits, asset_definition_metadata_limits, account_metadata_limits, domain_metadata_limits, diff --git a/config/src/parameters/user/boilerplate.rs b/config/src/parameters/user/boilerplate.rs index 2e9b8695474..b2863772d71 100644 --- a/config/src/parameters/user/boilerplate.rs +++ b/config/src/parameters/user/boilerplate.rs @@ -656,10 +656,11 @@ pub struct ChainWidePartial { pub block_time: UserField, pub commit_time: UserField, pub transaction_limits: UserField, - pub asset_metadata_limits: UserField, + pub domain_metadata_limits: UserField, pub asset_definition_metadata_limits: UserField, pub account_metadata_limits: UserField, - pub domain_metadata_limits: UserField, + pub asset_metadata_limits: UserField, + pub trigger_metadata_limits: UserField, pub ident_length_limits: UserField, pub executor_fuel_limit: UserField, pub executor_max_memory: UserField>, @@ -682,8 +683,8 @@ impl UnwrapPartial for ChainWidePartial { transaction_limits: self .transaction_limits .unwrap_or(DEFAULT_TRANSACTION_LIMITS), - asset_metadata_limits: self - .asset_metadata_limits + domain_metadata_limits: self + .domain_metadata_limits .unwrap_or(DEFAULT_METADATA_LIMITS), asset_definition_metadata_limits: self .asset_definition_metadata_limits @@ -691,8 +692,11 @@ impl UnwrapPartial for ChainWidePartial { account_metadata_limits: self .account_metadata_limits .unwrap_or(DEFAULT_METADATA_LIMITS), - domain_metadata_limits: self - .domain_metadata_limits + asset_metadata_limits: self + .asset_metadata_limits + .unwrap_or(DEFAULT_METADATA_LIMITS), + trigger_metadata_limits: self + .trigger_metadata_limits .unwrap_or(DEFAULT_METADATA_LIMITS), ident_length_limits: self .ident_length_limits diff --git a/configs/swarm/executor.wasm b/configs/swarm/executor.wasm index fb05db1652ebebd21b800200616392a24d65d64b..0c8cf303e2b21575db88e623ba001064a8eb7dbc 100644 GIT binary patch delta 179658 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 z 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 a$ZtEpUHta)JHYR6{1U77=?e-&*ZdCwnzx7m delta 172596 zcmeEv3t&{m_4m%~JDY?Hgd`A1c9&No1n~u^sJT%Pe1h6)t5xw)HBga?t&i3X4*?Yw zdXYf{1wjQx1wn}l5?+deiU^9J5)>5`1zS|ADBthQ+{i$OlUQr!UXiuTxR_sKe87*qpup?(x|xgqxeIv~ zb200m+vW1PU7E|y80Q|BE66$bBO7!1U5tLX@B{zcE)VhrxyQq~*X80~=H{N3#~FUVWBadCH6i1PrxxC1U%vtn0CxVg{k<`Ev{ zS={6E1%qDh%Hli^J;>uO&fVw`8uM~vtNSD);_2c=uUu~9JWn`)Cf#nY%WM42b5axP zI10&sLGCtQ@N_l4@?^*G9mDgxIEpcJ!0q$98NJAV%)2dyZvtT7|9I3kVOAb z)QukDpV#GcxqS>N%g*9>?L@*k<0BydE~%9G>)3Y5p(^mVlM7N z1(b|G9zfCUahp9sgVam(Og-?|i=I=%3IEU)nMn1}=xNGi2KCpP?DmELAb_ZCQ1%v+LMI{EslWsjsCw#`NmyT30CM((kKV zCZE&lj5q!5*jl4FP?U4cwbu{*^9`2|y=L&Wt~Zg=(ftl9Ho}3Hu^~5H`RAKln^?gm z*Zg_#)dMcM^2RGKzhUU$KVR~vYp(k9fT35q>R6Ha>H0qn`18<9E+2gD&_55jeCQ-D};iy6@-1J^S2?J?lIhJa2o}dfxO1{(yI{cRjy9 z>tX(}|3m&S|8D|UM;Mm}& zf!l*$29^e146F`p3v3OH2>vUuD^L^oHZU*ndf=JB^uYUpe+T}sJ}@)zSm5Qr-oX8V zM+2V+Mg<=TZ1cYvcp>mkU`1e4;B)_&z-@t%ff0dy{-69)va;5G(PmlJe9n9^cZEI< zlP&+0yIfI^&cdFe<6N$=$5SCc8YgA-Wp&2wS&!lG(V^q;cW`KxPZcsw$S%moPZZ5@ zg|b;F6n2G~mWBG}S7m>~+2cn4CMUCZjeDEavg-N2)&AjTj~bsfZ_8$jH{0?8Bb*mD zPRZ*No53P1yJaZMbx)P{q8~4Xcq!u^?IHS7;C#tf*~+*J*|V$g)MW7%X7QO+A}>v* z=FXa$S(%Jbi!9ZLrdCo?<(jix6O~C@L>zwdxYxtm@iAH4{p5J;N|qv+5$FH`4Zr39G;(#nd_bZU~D$a z?idQY^`onzOlR6`CI^FA|HzZw!T!J%w8095|H{saC@d5n>@|zzt#|N}t5Q0huMDjt_tfR*E!B$^km9ZY5Tm)>c*2x+=~pmVK1r*>S>3p# z(4|${UB;49r1*{o{F$L><|0(iXqxPM*naz z8)sY>E^hu0eAg=mM%?I0DC`Y;wE4#L@I~xte90?tn4a%#rRs6HjikVR@KfGY6`YSlOyNKqfIjA zMGt2$7+a&oS&L=GK*<-4VB1dY1LK&s-Pk+EptfhT)yAT>7lUjTwJSMG(n+l<>ekyJ z?^3FH6$c3oyEUKzFLTf3VP48>I1+#e_*qLofeHAjg+27hi^@l#w$d2WZamvGzg2q( zobMVnn@(gijLSN-J8S`ZsjqUGv%g0E&@K+Uw5I`?aicjejPYCBy7XF)=wHE(HR?|D zWVxbV-9J!wg}ugi9l8g+Iv*JI;-y>1;!{u+I_jzFhLO7~UEMimK;OuLlz?}XYmqQI zS<2tzG>}qW$2FH0rC%F?uv%OCRbhyZ(LRY4RpXy_K$ZQYv@nMD2@vQOEeox^YEN%@ zY7X$A-1Q#sMTnx;pqpIl0MIe5NOc&(jn*1JClNu=N4<#oK2~dk#9|}@nelg;rwU85 zJ65Gz-!4;T#Z$uWGWVpIr@I@&b5pZ(J>B>o`CDHgS4Na|5NW&IG(4Zagt~W_MpR&oy9%8wBj}g%*ci9YPmOxz zD9iX*cce%W1mw~VBN8KP&^m>^IT%H_sJnX?IxFGf(K@4|@?IpZMX(-#(FC^$KBGs# zHLZ*6joz|15?xw5lIQeNEw`28v;_JX!5+lNn+SWaoRJ8|oHzyEpL+^on1f$%3TRr= zPQl@rg5xm<2Ra4D>xUKRn2_!&A#Kd-oNqMg)Xc`}LWR{w(ASNeW(SiO2kAzj0tY_- zw_!D)w%c75VQH|N6Lx!$2}qiZ-GFx36Vr}V=)KDw4X6cNi{;1k07>|AJ%*Y5Rl^D0 znL>5K`A*>gA-cW?^|*DEvKBBc*BWl3KLO5K8b{HRmx}-bpjrgR1D$((x`i zHBpT*^p5nsln?KFRQ^1or^UGO$CU|AR~cQ_xw511V4B2sz^Sb zEATA9vkudeMenYvNTC}fgwR_%Cdwp~OL>ndlk^hYqLOtdLa*~~{1iOK+*XT@Qwj8I z3N;6T1hlgo?<0SA#ji<7wmE_^et2^ra(C_l8_FhlgQ%kaU>{1NRur|=OjFm!eot z6fws*(;6d<{S2i0?4hFSsNWiEPsdm#>BcJdXn?Qeb%pc<7nJSRaSeE&v*TP9VIMH< zSo#QfmhwKT6EWoU(mQfWz6o~X#V6{cpVE73$MFjKAH7WSM4RdzPPKWOUppSPZ^t@n zhG%J2w7G(Cm?k+~70m* z_927*pEoGN^;pEmE09HUQcuK3(q2J0fC5_2s9)d5hM2gsNY)5Rh3TGw=!TL~Pl!O+ z3+Q=NuTN)H5g!meZyCfWY5UxzHNF+oRL>Lq$i4kBRY7vwqCr7Kq z#pN0Te*rOHo!kk)9O*Cmwwwx%4;%A}b!d zc_g5nM0}CZIO+$$V?eANg2kY!Xb?a(y9FeWlaP&1vFod%zT+_^1PdtY-7y4YgV>az1|k_vK&GQD!#PwxQ4pFx z@JLsLNj&nRk5M1Nj3#&v!Jo!j$A}Ovptk@G3BuG|khE~%)SQB_Pr{;=9_mYI3-JU? zBoWG*f^x2=N4!`!J`xDQ7?QyXG)Vw!;P_Y~T!GhTqro^_W&0AYE#&gR@D*Hv(-N*e z6RtKyF#;Q)Y7)&#TZI|PRWv*rl$Ve-9P^<*6LZmDK9uIl4b~uamr9I90@7N+05N7C zsH9<@@yH`I3v1o@T7n#8+HfwWY7M;vL2&4W=2c%MIUY?P*G|TJEpUJn4#Z4;s=8d` z4!5u-)vG48Mowx=QcKMFY(euG_5siyEb3r{crb~YYb9l#*E?XK9jHLYOb**+|0Flbqj6Y20(1qawm2 zGZ4d*2&zP3kZ!FvlDdL95IH?nmZjg@L6~Ep<=aVFL=JEyqQ#_)0ZAo)A*K~Y>kf(m za5@PF5sFj<0vMhb&Qgmk+&tXOs*#XmBfwB7`>VykKJh8aBwlimlN=56$blqsxzbOf z4fqR`Fe@QZAsjF#M6PzK6ucJ8P0AclsJ0Of0M2!I661)#V3VRl=K7aC3KMUU;**3~ zwkzaPAl3Sk;Yz6h61GYWkmj$7f%ppRRlTp$)Fr>dgjMe=rC~I>@rQ0%ClE1EswHOI zmLM9dQ_k$x{vd1cbuTq#?w?mZ+z-_RbPy{!Nj)UC@5X=lKq7{MO@fk$36~lQWQ!yv zktA#FG@5%-PCjI z+dY;Xxc!A?K>a=>XrXr`?j4mz+=I#9lHh1hFWKV_}X_B-? zj1zknSXO|33jXur@HbP&_biHWA_gD@Fx{5+Q%bR1u96@2r;^G-04fr<5Y#|z=Gr+} zqX)Z;VhMcwV2v)oxl9&yOP&BF%3n1>tWWAKiHUMc4B_jj#J>bv{6!! z!D94wN`3`JA$1p0on+@esi*FiHq>!|@ySrWB#?__HNOeWC_o@3}KO-rytL#6A+XPRFo&@({N9X1l6fy{D~5JL-A zg5#K|SB_Ukeg2}~r;#4!nyi~}D?lu`KLk@x_a=AxL~&LhnsC!qG}tO+Jl zpBFN}lytDx+NlL(`zS*Gw2w` zEGZ84oi!T!A@?Z@U(EqvemQL>TV#?jnXGpNNM*bm1HxnO{h(9$jP+}8B*AnCbVxGY zSsO{TDd8eCh=s{JgQgBd6g&{92kV<#yA-vd$JzjFR7>2$o|y-{A|2UtH-hYeF2#{m z@f_>`rJHa-Turzhr+f9t9(uWhr$B+rT(nsZxQbIVtq^E?V51taX z&O`}~d8c*64u3EvonXmdBTy9qA5Eo9I5yEe^_7VZ2c=BJh{`ALqVI>9B$btf45Gw2 ze0UI%>nL$SZK9J65||))GHs&AbmuPml_ZlK_zo@zymJ#BK2X*K(?*q)MY;Az*&E_l zMc`M)psQNN>V0Wt3N+^SI#^kz`MHW}RLUN#m2qW{mUv^fgJb*a<#3Sm16U*|doXz? zOq7?jJ+iTa$k-EQ&J*SiFuq#N)6cXW9J7q+HJSH=9SfG^LUY!xvFEe?tXb3FGFA4L z)+EQ2FehDH)2~9ura$1d|FfKal4G!Qqk}*5DnyM5vz%&@$)#nCJC8_E5c0pg{@{BpWk<|M9Q}WDB!?I<7hUKoIPm&2*JYk$nsAsGh<22Tw zLEE8YjMNWMZ<+fV(^7cJ9?G z_iERv`QP~$+wH?lDfw$bEZL4D{cWW^9j>RAMhQ-&*12uvA%U#kS1EP(!Df7V6Vcu=mi@vq&^N|JWRDoKQXe3yHds09ViZs{$SOrtI*nCof^9O{pC-9x zE-7k~rn*?U1UIV5>H{={De7&+o0QJR)Fk#jFv<)&A9L?W1}vl_;0x`1WU{>}0f3qe z5MayU^KUHe5RU0Etd+Yw|X89`@`9t*=^3A z$k;PY-Boa&KPVwCJ$r8?cb6N#jrUZ=lx1S?l1XHg;jT~O5ix18OkuD8S$+B(GMp`x zd9|T5)7X2o*}IukVPt0S=DPdkL^GN@*mC~^3|@(5#NcBI?#7D2-;gwUzvSGt2WwUi znGVs+!J7Y4k2RYqC4VK+3?6JL7hY*YqM0G zoOCwGmb~F6}&dij#J?cwm^3YRS=}aDWl3!CvXVPAoRyvb5 zr2Ui5795~-W{xi|oypTvaZxFQK)7f`vfR=*fzVu4DMTeD5N2p{Fg4(Uw# zmC-19L(g~% zj!fAgE?%cNmSC5u??f}FUS~6ilH+eMw{gANO$zTFY|Bh>=qYB3B8D(8q#%Y#V{sVy zlvy4_O~>Nuk7fI?WWcMjXa$BbylFa@AaWR^4MH4gaFF(!>ydUd#j(=Ol({`@JzO3U zsBg)vr;IzyC^$ftI7o;t)_kfB3i84(lKarNkh28}n40_FlEGD_ER=qfO(?l+pE49J6ocalp$=0cAA0+?3@w zT9Sy+4ogKn;6OImZ{VbXO&+`~O~0{3;511Bj`7t^Hrn5+K+*hW8x&^B$@Nkk12^;7 zt{7g;Oo1y#Jry2GdOhWvwl0%ZeW>g8(!eC@rO})wm!(68X4c1CALremFzO^Nn~)4`|}JH3{b%kwDYREzO^% z(5d-LN3Xc*kwSPK#_W0ZDauQZE*#remTi%O7r-K@)JE<+3g(l(%pkOA6{Rer;7Mc^ zv~B-@oMjYDX%x2oBfZ-2`qOG9!Dr8!X)9@K3{HC~jKrY34tKqTS*)R<{VeW!YOpb~ zf?%+R!d)-bEE1+E9b`m&8V`-X9-57MN*(@sWSTW4j^^l=T$WrLX-?_%VdnhBlinOw zOjK2o>9`_*<4pAkwu7?UB|zAz6*$MIGVDsTW3uW{&-JgJ^!_qEulL@aEM8=m;}t%} z#{&^J1_aa2&z8{=&`~8-OYa!l=MXuhs6+Ne$1bKtNgOAo`F@?0mV^ZOKs5S5PD%rq z4KfI#KQJVx-b1_%7>M?r`%Ax^9&FQ^L^b%gv?*ntO&zyiyA<$ww6Is{HBp?_vkB7D zk%hhLBU1(iZLf9G(U!&i~} z1p!5|V47WXxNRj0`w0>eo#6$hlZT;+?{sj&!go)cbNVvjdu;#AKJcxSoRfTv zF`v*z(r`|10_TjI%q8P=2t@7cn|(&bNv_2?4HnD4MlninBN%1FeA1SG==7mYR7aac z)nsRvb+6_WDfGN_ulxzEOTh zD_h;jtEX-xm_D#h|Iex$nRYW`+8yz^JA@$$;N2(Zs|D;PbmH4oF77lZ?9E{X#;!X< zmLzH=*ItC^YGeIzX~y1GCb#K&(o9@(p)(H2%4r(OB?GgmHTP<@xbELLZe#VIBo{^T zA-T}m$B37N7AOWOtUidVL*(9}0Hd+E`QiXE5^lbh`j93ROh!!!B3uKJU@)1PE}%zCE9$J*6Ux`%Yssi4gcDIJ|6zhd$r8+9PUN_0T#A9QBUQayZe)uT~C z$!xdQgSGagQ8{E#G7@N|X(e%^nY?sj9&NnIf|Q@mK}RK{P_GU@b<4u4U@95BgsC*4 zosttHOP$5ue=eX}UZjnHDN$DNd8yA4TS#dMWodxhun+V<8e;FX{2Z3hgafY!9ux~3 zBMEb0N}Ud!TFwFRB3AA?MGB?=p*e^htc)e+Ae9+Y;XIb6k!cQMzgS>07$4;vq}a+O zrxjD$jhSZx9J_V(cJe?V=^(A4Q&}T&e(i_dj?6C4+K@ppjS_bPm^W&IM_Xd zhD{;Oj1FhzTJrF{Ca2KPvbP1Sr0dSgH>&T?PR@DOIr+xi`~OEnEKL0QdH9-o7R(Gh zJTleh;liAmv(B-3xRvzxbLH$O=v5I(2c}DdJ@$wXu9RU$>46Xwm zOYm#=%c$4VT|#BoDS&{o6G{CVut504pdJ~Ri_1Y=+zR;xO~KKPI*ucXDZG+5O3fC1 z^h0Pr5AFRX$4f!LsXpD)mjbg&PmL*NFmUqZO{%z&^~Q4CDwNrQSJ5kn9e5Qnb9fRy zgwzx<3Zp}JqKGM{uo3UTOp4QBnZ+y)DFH>ah02hs;FtROB^`6Ak*HolNN@Vr#e0yBqgY1QpNpfA(3Hecx`Lt5i3W@Wt4c-X zZJ42024j<?PiB#(v)9b-hV~prtir%C=$o$#5Fj()}| zHbt83fqHIzkp`Woh~qyGGMO??qftYNG$flgx=7B?A;Ey~IwY7FMFMVEg!#oJn2;Hh zYyU+U=~LXW2-8SzGv!Xj?^15*reim9pA7<)WH+EgIGT{C$dG79icCNnNgJ)mWTBXo z?ZlwTgo*F$FWbpV)MKQZT*GW92(i_nK-BUxtD;#_l(i@eLiLhHBLlG!OD9p5xP1ye z##2v^0ow^fM3%~n$9VI};#lJsfXM_JUjQV&LAnMWWD}v{9FxQ+5jMCg118q^Gb~x$ z6as1{CkkXWHTh4fEW`K{YfDY|lWI#3o5adYil0ma53sh>?4WU#VR^w{%n7#CjG%F~ z)vHXh0FU1COdS^~hCM^|+6Py)8B!EiaAT&1n;vpXQL`9Tv8B&8x`3^|rYr$FyVNmh zCB@rFr1f5hu8B&p;<7U8sYK<2ww`K**_ICSwuTGpB=yumP)mKJsAi_}WUTll^;Ey9 zrv@E*s$9Gc6M5PmRTQWk>ol!OvBo^5<{*mx`xG0fs#x9x(?F&+*%W6!Ri>C+ z|1_@RoYvWN=VGc{j!Z@J{>26|wUT!+Hjt?$-OGp_*UX?Qq}xgx%2XgD(l$_2z6>Fo zlu7B;j`6jS0X~y*#i_A^RGz%xv4Kp@Wq3%60V}U!NgSq6ci|$GqHv6B50I4ss}1JR zW^^T_3>%xFNJ5FG^4iD-8c8UjN#n9rB9=4=t6vF4q^^x#%2O~P-K6WH&scc&noB)O z2i$Ue5W&>)8k{3_aakd(0c4{*=o+P%b^u*8E%gck68b3RxC5wBO=gM;rI?poA@J|O z!6;?DZiQlQ~iWtU!nEjY@FV)e!^;) zKosNjr#z*uNjzYcwSR-(B#Dq%P#ZssMtDg_(IllNtGPz4;TcLJjhNT=guye*VlsBN zE1cD^G(ue=X~cgpR&&j>I)~vNsIDh4lWKR zuJ)k_5MbldIBN$5ZjhJ5M?&uKshGgZLPB#o0CQJL_pp`nqY)gK^^yWDj;;*A44bNA z!)I5CU*g&ncmjWZMmfotiT&*|Z!N!ZL-Ol0#Lo6lyU3aNBbY+uGWs@|`ogOPZq>NT_E}@f zl2dSP>DDEGz~7T|($Wrn=3m?%B^t<7X)T{Yim01wHVysgiV7{-cY zdO=82!D#$cWTm|F7Z>*iAOzy#Gx|!7?0CpJar2YztqMi_7#(eU%2Tb{3?pY{8}^9N zX=RtDXf!8;uklu@R-TbRLjqGN+vvPB&Y{>E6q{juzOp1nE59qX=SH{XwYXFV^@Afp zj<^R63bC>C22l*Mp;Zvl$BBtP*sw7J-5qru(JLh8xb|=$c!?fxv0J|8gl|Ghm}eVpeDrt||>Z=U3@@ z+C#?atBy#S@19kqeI5C5?HPg6+qZ~BDQlh|W+5GVlS_LP>NrK`AB!hxr2)i{r=*dL zzRv!~D`mKl-6{rgWv7QEXZamKm$yNib>ibL4++fHM|nki{Nva1qH^n_yrw<=@t+ZU?VPpiNemll6HIUT$j~-GxtdFvFfBh-=DIu403if$uzt5a{EXCGDwK{`lfHtrYD69t*TJklb z{756B3c5}77i8HLaU08CYa4TuG-KWpOPs|`{wJu#gA#awpqlUzB8K^nCPCUck#&Ce0~6V#mVzXfM$iP!RPF_d575u2Gj!l!>U@@azG2Di*4sX|br3gtUhPH)++{ zLsUG(F~k@^nKVYw3rA0r#yCQD)EY+881WGXJL{u8Mm5BdUhJJZ7oP;G@x-dEQpGVK zL@1`y+T>#P$$QJ7O2Dt`XlQc_10xOKt#4q|-HxQ68qjR) z5m=X3SCds11^1A^i03Xm;ZNn>E(sCtqNemfmCh7UWu97;Aq^IiNDURQ@xeb!Ef8D` zgcsZ)j4%aD8M%N|;~glWEt5(=Rf|{*UL-6>0xr&_pDX0g6+RrtN75=EQNdEa#;2{M za0hMag&Hd5i_A~8K8?ekEWhcsxKGumL4$_ZBd!CcOCy-3u7A0ZwgYj^5yQ0r+4Aa^ zQoh~|GK|EvVTp>4)Z3_le3wG(cF@%vj6??*6e_-HywFNz0qy ztJ2MDkb08yo!`oUL#~wF{D!{AkUyxt29QmD@M;%hdT=DA7Esk!062C77!YP{^ppgT= zzJfE@6M)9Wm*txdm;1^%s$}Z>Ie4>Ah74v02ab1kH_fMF!)TJ%; z83Vou8`pixV6QonP!bgFTJ1##0})r=sCu>^M9PZCjLT zymc7sh1ZE+u{`=Z{w&s>zw8tHhOw3f<7VI{x}f$h@0Eioz=1AEL)yQ5qRVhr!B&dF z!`bmcGtW<6qwa&el4ZUK12PaFN7fI0z?&Rbh#WMb1Zt~|rdxXPEq-Im$Jd?u3LGjU zAP<3FVQ;TL17W<{D?Y{93*{2WsxGb4P@@zE7`{>gWDcnk(94h}>PE19zSS@0_G2gI z%G{`wNZBf%sNTgo7?bK+p7V+?)BIB)Vguq1 z-Uuc_3YJ(}NRn^zj|U(z_|{l7)yzHHn3;P#^~_CK{_D&+X0GJZ{;`EV7N8lb_1nZ; znidr?pNsWO!lt$w>(w$a&Vtq}$ve?$BJbvNJDx=5>+r;vS*Qo*@ZIz^iP+DD=~5B< z7@tLE%vpX1wO@c2kB*DjiP|H^4TwDvbVcl`au7=3s!8n8x<%|4;DR*z3hRq}F7gwx z_bFme?UeF4=BK%S5PMuBpNo(Fa6nP|Jw9>vQH;)2LsYg%`x;zSPbF8;4b?ETc}(IC zvy_9lkMR-}!{($-+%fcxE$_JZ=0NS%gX-e1I(P$v-b?fGHvEp= zX70k{1xpEi;itk28$5t`ZJoRt8&n>@K^O72TADUt2_|}({2v7+$4nrs4wfxS`(!`K z=~-W4a*Vx+9Aj4u@5C~u_(>d;9{2ioq|qMhgm@a6KF0bn-84xH@I5QeRA8zmu3~MJ zlbM>hiuF!&U&l;0mNByGEQ{mdiaYQc{XOt4pT&n{P&%K*v2YwhRZT(+U1+E-pr<$5 z&O!7T6I1yq_$~*}!Ls#L##x_tXp>i^-6la@>$jK*=2SA1&|+i!=go7Uvnh-Ryuq0F z`DH}NYae1IM8WGGVjcbKpRfo_KmL_ZTrz`o^)Fa0iHjJroZU?Y2F!(nI~c+A9o?wh z(z(92lsx@zY`Wro=S?*cOe0>l5Q_#!`#<29O7DUELVz3#5821P(WUIx14eT^<1o7reZ02F0@LrQ8c)$`U ztRGl{RPMkME(H(agkGpj?3?c+=4KqR>%M$dEbJl1K;>MroEUHk&WM6B95I*Okjxmq zeus6PzxeBy8GGBf?O(sg-@1RD!uLLEbl80^UT)sq9)G9pZqMHsX1u)nyc0&u!nm90 za|9kal8@-S#@D*^>VM!5wxhvV^fCCYJq6AK!yD|tA@CTc)f%Bs4Giri9Np+^GAeHGkb>G<~K5S66vr0cAGM#wwWgEZWQ?kdx~_R^=i}kaJ)r zyg>>1jvOCTLQ6-&Pn6KgkuYf?5~7ZT=PAK%C5C2Rr<4|sEFUE&?4g9VjvV*bAfd>S z@GK=1I}+AYLTg9DE=nkIB;4~H5@OD-&7%}&C2vqd*imLDB{%_a+w(|pj`zXjgy$$h zbJX#QGvQo<^ShMdZ1+1#uwjH8cfNoGC!A+ef^&Gal+aE#Bi8oeMRX3pqi>_s_KwDH zUxWmj(wr=rVG6xR=p8f-1s2mg!G!!k@VQ_rwTNbe&SC@8F$yUvIw?K6fQuW3{n#PdIo7*dAU$c0Suv336d{ z{&$3k$XWj`&R#!T5*LgT6BDX=BPyr)7PhO7+U=M4$7Hu|MC2L7}={Ic2ik z(e{VCjlb_Zjg2x^?K>@Nn3bum%yfjEY3jWfv(wmwduOu`*bU-##`r+!%O{rZ?OzgvVHdgd?v(vKvVPy-+8rHkn3^qjEm}}P1E?$FX)-X%epe5CC%oLbSIH(+CX|8VvuSVx727qSu%Br(% zyv{;#T?f|HgI&nv-khPO=uI?UGHmu{o$5_EsfH6&Z;;$jZzAzJOU*i;RdqtoNbc2p zO<7@n@_52D?jB-mA!{K@ny~=;N|os3pTQ60uQ+fl<-<^l%Ka^we5@Sv1f>{lvH&D$r zEl|z(s+wKN)nFuT@>$Dzu*8-O*T;yuLYALZO$bCdyFpb_4ShOQUnsqSzJv={NA{hp zMqF3GJZzG4V$3l?r*Ej9y{Lx|3yLFhSx4_Q!TIMDqh}c+&#_v;On46-^ zT`f}p0$VU#U!?$1YXRapRSDTB5*juKKjibv9{rQ1{HxyZCBl? zL-uJY;7RF&F^UYBUey}id015gg&=WM0B1=Xh?j}r^pp1%*C%ng;6md_{39fJA2J=y z%D5EO{D5kbXC+#U5j>=to`y21MnLHej38WsYBsBCpf9AXhSD3TrZ@~hY%$@9>ipmZDLS)EjcHPHHR$D* z(iD>n6#|rp@$=lge0e+lEbOcZupUmItNr-ZFMIU+oe5%2-dfQ1m>E zbv9pHiV=sw()gI@_m;0%e0Uhpa-rzl3HHm!xwyI$Ys*w&d{?Ah!OtrpcjUXZ(p1ZQbaC7oGRm9tYx+5P$-K4}!)SkBsH&wMN{zfSDJ z!u91>aYPsFwX7E5uB=Gh-30=`0wKDv3y~yS`M43SY;#D-4YqQns<|ys*XNP@)8|g& zgCp2+v86uS-W*g$HEblgqFEktvYdus1`OLUv{zE*p5~5(bcTJ|5bYn($7n!;Q5oDq z-8mgIC#wb>LRTfa^GWzchPOI0Na4BBe6Gc_(uG3}s|ZeReJt($cH{5SXXjqa8q#{u zI*z!nAfwKTpu_sMMq1y(mi4VJ;IzI`#n|Ntge~hEnzpQOYfS4~kF}@g_oTb(%TC|2Nz{ZGjiLP;RbQ8sBQYrtuAcav0xsN#h$R zgwyy|D{nzOHOI{>$ohk}#gd~~Nett|kk_E5z0&>_gzn^xz}f=aoN~QfIRD#>e(i3Z?n*J8rvJ@K>Lldy{!T$B@UnqX5%o(!7>I5re)g#&y}{f z-LRNiJ38B>fy_345t2{|>oaY>Id^Pmt42@S1ww7uk)k~xvHWP(64)d@IGUZ_!jK0P z)&?z07yzujEKWQIRAIG<9m67Qx|n_pE6jZmwo1*9G&>t+UvcTvth>MFZDkeP_bR)GD8fCfu^3RIXBIz}p5x}j{Dt(XS-da3vjwaW z&xs-4iL7FsL%e0HZ5yCXXF;3pMd~$KL+RL3Q2WLw{t)6l_*|cuyMSHAU-FBeLi`Uw zGyhLsvE?;Z*j(Did}JFVZxiTiANs`DY+i;Tu6>4`LFTdQ*V)w^n;qBYzzG7qC_Wy& zz}`-mH&~3)pL&D!BwN>zTz*|s)F(GyNtQ%y*a!JKmv>wEL{HY<6RQoe3|uaMg9*B66y#=!YXR~=b3<10LmoUagcUF6dz8^&jN7dbz}pU8e) z93&4S=PSjovC85r{AZl6@R)JF!oS6ST@)n84C^(fp)h!jQzZ=Yv>U%!~Lj7{5Mx9x&!Bm$q13TnYRd^`aP6 z$wZ#xKD!BW)o|@`anfn5cX0F5DDWv2s6Lq$bXyWs=5`a9c!f)h-7;QbG*q2bcD7+Lp#12MS<=1@@D< zbZ-m^nm4(9-6jN4Cuw?v6n>i-dH*>i&eeZ&CS5AL%Fbz(qOe{zt>DS({qC!WqmrrcE>86^8w1N-6j zrbps__==^H#Q(YyWdo+H=Y^n`1qI_v$c-OigY;>!<0JMkdqqqy;LioktPt};e`GC{m?yVD ziP=KK`p_r-{xNFKd+b!!Uz9(}oeEsQ%BJ>_o3ufQA>= zShTsluR+0gw`t={5PTQCt^oF{;G075HCOoi@ZxJg3tr&Rf~^%k?TueoxI>aSOI-d6 zh^AWM;>>x7&795}zgx*=iPrcX@BDwXw2Q^{RW^tDuwf3f!Xe38oO{|!2akXML!5h< zxtiBB0-7o0p!F+$g{EUQOF8IFOD}k6fAoTxN*YSk3wD{r@>f2TiVvAS1WRl%r}tEt zpeO-$XIA+#`w&d~oL$YH6t|s@!vUbgDbJCOd=gln;vCtYC2}?VYB!g5bCa@s)i7ll znS!$HRVTX+>hQ(?5S{L7Li4*uKr@A2wH?P$aKiDRp!q+fS6R?}s$pm@aNwpT!_Hju zD>M_hUb&B-qa3daaz~RdQUi`-yZ6VXt4OT!qk2;bp3(>!h=Cx|3Ll;OobPNJrn*3tjt{tO%DE4@KPZE1pHh}KjEK%pOU+h ze*$Jz`6p~{!uRp9&x-dneinOIbZW{^g=gmVP5Jk5gS@sGzsnMUw%eS!5j#*L%}Gm8 z#K*j*R@$!uP@({|5Iayy7@H=V7W39v8eNL{5itZBBX=5{X@Qf76?;eC;+>QP_g!+T zp}1J^h?74bR>x5(^${7vnW{m=6zLaZ{v@9m^^>BA;A|26a}Wbe)`7#};)7y-a?^+4 zVn*I^Ru3K$N0#t&(bG{Syd7}z@eHzE6lhw>b6G)g)YzfxQi;b#O8>u0a5@D>!`>x8iK_BYRYjB+ho1GT!r7?pnkYZH#b?-}#8Q-Qhwv97AZ=%2 zX_WWkpD=NDe}46ePJM8Dv?#&i{&D~#TFw5-`o){7EiN_*a2H{WSk@&olo{-Dm-U64Ph9{EEy z2d{aiqdAe+frl|H`6UTDvLjTH>JkA(bqQf_BpxyqcZRw~2UyMJ0c=$Ol67WLUSOu2 zGqY53=fwODyji=CsS~soWe5jMB|RC=(aK~5Z@?Uj&pPmmqfn!TGr$r#Z7M-d2HfKi z)`Xgszht+WnAd^l_5PTJWMy)$KO^XyGx3r7jd&z>00~rk2T%%8Vesoi^*x(9@tJtG zBiGq$Vh;`xu{ngbEkrom>k&pNc-aQ=Tq*y3Xb#a0Uhe9V<1&_Z$X6M9l<`88=wHU$ zu(@Jz85Y(CF|LevM&jZ!6noU^q*ApKF_V zI3(U2;tMxhPv@nx!t$te9e!)`#5sra{vD@qZ7SRc)uHKY7`!BDesQ`9Cuys+=V^)K zc-{-5Q&%2^`~O*8d8Cc<_CLBxTf{=mU166*EMgPBq1uyTY**f@@Sm6$;`TIG+9Ger zhiqDTsI?eB#oOGk$kRfxu`555JqOC;Z7z;I0$^Dv?)li)g+I&0xKmiGh0h*=M&acD z!7;oQdq!M$G%x4Rc*XQvy~PXlqj+=17c#Ns7~YaSt3Ez!eq4Ms=8e^;g3qaMs zcQ?$&R&h}`{sbOb-FYj%gNY8^`IEesiMPA+E@I_QeliD1%-Y3^n!SdQXJJmn5~LD> z%x6q=-^H&Io*w))u%LB4_}Lc&lPf8H0+v8xfJQ7cGd7fT#oqzSORn_@W3&ww!a*E< zrfMmY{aZtbuL?>Ak>uKoR)i=KJC=vTpre!pvAj;CEV!73ngaVVn-EJJxey?*C*=y) z%e4==O3k{E>p03)ny%a8)Z=*gSTi>|*MoAS&$^^gIPt6ABvI@}Z#e%;!9J}nO+#_3 zF$6TkQD3*-BW+{bk=q(38atA5R}4%ZX6f-fO!2Y^7@vuL$MeGA47iMk&v+h$HY=q(h^~|X zj=v&L(5&ZMkC@hz7dZM}>!<<4$BAG>H<2|gwp;nhkq3d>qLil^JJC*T>3IT=9B#G( zY{98nHA~Hj;8H|=9WgbMp*j|YEWiOR;D)YZFQrCj@iwwo#sNnW@g-j5QyXwgS8oOM z2CsDWR!DDfN=JNXU{C~-+N0vw6L}=xtY@58#;2F{v;yC|?!<(t9gnPq@h0Jsj_4hB zMX%zk)qhk3k94<=Goa}vKJO$RIWArq*o^99G4&B#RlQLtHR7i#lnRfBdJ}_D-ogmP z+mzQ~)XI5SV$ao+$YUYb3x0Lq*sA)F--T=^m|X$n<+T>H#M)Bh;MA%s?dT1HCD6Hk z6=zk%2ahVi%Ynw}2R{kfEuaI@EJCDr1km58;N76*0U%gYXcJW3WW^y3d>n`dMUFh` zKlX%*LDb_?g`)^o=5|l0j4^N%WQ9=qTb&O&|1qD*&b7zwUvunV1FVnt+er`Fzb4qf zZnJ+aAdwT|zGzv=PyNH&lB*CGQjwG2AvuvcuRW?tz|s9BDX3^K*j040@=UjrYP?DS z!C@W^q2r{3e63hq$uHLeD%c(3oMnTNj{87#JsC{+Rq^|idE1;X;8YKINDzG~zPyDM zG+!ejC8<5YAX%)q^JIt;TSd*u{3z%mJ5J`m#re>aPvP%3-HO~`nGyNO)@wJ5BYN=} zY@OK9iyu+&mQ0r5CV>Yxnh?!eFWU6xlOP8?+naYTdUq*~6%?Y&h|ag(jpv7W-$p-n zi649Ov)S9?%u^wsJSb{T<%hBN#Na{R)@<{{K74%96DM$g%u7+wcDb!+Tts}BHb>0q z!%G6Z0@9L;$HbeLvgV?0urEhkH;?6ry?uDc5aQM~LT+Kso}6xp7BBW)F)bbn3+m6hRyTqLM_t*E7{u}$K{)A>~= zHoiQfpy7OwM+L)CbqMj%>HIXDZ|`yjzbPo2nt-On+%x!?K(IT)A|hPAs5q0K+XB!* zfE0weqZ?5;F?WK~tTTD{*m&%FAI^3mVrp*$6T#t*T|64B+_%p?qSD=8rBve(Abr`x zBiXu(D1rsE_b^aIHl(m45(F5iq!HHlb=G$}*t8c{0RXDNT!I#|atP#zTx!DK&P(30 z_41lAU)9Lpx2lC$M285eTAH_!>L>NDUIhuDv-{0u(A2 zxvMm%4ZoEG!+8b0mdQxsaaKh56w*DYmi|hLGJn_KAJRsVh%Wuzl4;5OJ+>ROGbeF>Yd^PDmyPWWm%%gd*|d@8L8)`8T{}kGH*qw1iwT zM3uQ3)gmXA#T*1a)A>~i9b8P(Iz&KiG4Z$j!uZs*idPGL^{L}~J~^Lv!lT&*yexqA*;S(5$rte7oC7J4OS#+{ zc)y%H8n!j`{<$6(f+5RnGQOnRm@R}!b-B8^h#?{D1Y!qr{oj}ymked6n3UIyM91|{!LmG7eo!LU*OJkY zpepgzfoGt@`A8hY#61`Df`HkT&Eo3|c#F$0d|-jSS2v5!lrc;uZrMpj>#>q zy%5GK`T8$@oCNYcB#7ctNgnk{sDt4FipMiz(*)6P08s!7za`tiJh(>VwcG_%!n2Ii zYN6*$E*T-8!-?IL@&#N{jeSs|aaLT-=pMY_M8$N3X_TvOB7_SsER?b<#A;Wu}Mm+@Os zu>Y07q@dV&8P@q6(d=?r_i>lYx<_7a)!jwpT)}hV4WK`207OABC#r!SSI7p&ULhM; zcSTYIEpnUCR)GW-=5ULcdnIps0xAF{F>Awm112kh0}t4iAbya%2YC=r+^Op#1=yY80tH2xq?dRLkZ)uQ5MxNPK?I0ww2-G-z^~R-)T#@=+NqLy zQ`xE{DpIj&mi;ba@V$&RTw`e1lh9auqKVU9aZ87@b^K!Z)ocxy0z1 zfVDaUmO{Bs_Zfr;!m^$(N0Dp&kSEo1y1Pr!IS8C2T$$o0X3y#>X~0tc%yINpqR{~} zAL@NIlQhvihDGEFc{ieGqa_fy3H*2$)K-e8O&D?+GH+zvT?9dNvIicXZv1FGfG3^t z01A<+0t|&%s3ZCX*FiK*lIhZM`=sQF#1UPDS7di2;;Bfdo}JCat5@^R?pJ(FygAs{ z+6d?QMA0?8|4~N3(yrqgeP$ED0`cHASi$#;m#^U!`3td>uz1Kmp?;Aq`Ciecig$pa z_>?N%n=KM|R&m^C0UZ}R9J+s?zK;#TZWneJ&Mva9jG#UvER+kDN8HFmCIPt*NA~S< zyyA`^N)1%W-API%<9BB}70pXqctR?0MJv}PV1$s@POnhxfb@4yyj2(+sMS)lIlNMH z7!agBX;z>b3+4FYuVU#yUIUl0n+NeeppVN3rO^GQp9umChW^9_w#;YziB~4*{_oLv zK7sDPgMNH8@mhW{RR2q^MeYa1ch@3x#vCU4f9TByADbcY~&NJ;{%(l@k9#{a07X&nYP9wa)If4o2Ge5HR0fSSr(T8@iQj(#?cHp%78B{d0YfqB`ZqY!*7=ue<1+QgLmF%C5M zvNg*&P=^(uo{%PmYQ%Pd7L$v4cw2mO3%`YL_b$BrZ*U0kO+W-9*lKV4JDBWNG3)QV zoo^HAYeBK@@BI3L4?GlS9{tkm$W&<7`k=VzR$lJ8->V^(;;kq$)r;mI6bo2^V^f{4IUyu;5?cU?QMpiVYxW9iJ)wHPb%@x z7?|}s(W9Cl8GefaB4k1X&|o9eASHqflJXAX;KC+f(`R~$en-H!;MHn=d=@ktWM0K` z+6XoZ>SfzuJRemZHw@FTSzI-YpM=Mw!?4@-o>)VVb>iz`Ah7R?$Z*~(Uc5jRA32;i zLjf^d=3F!!IoF9D^mtFS9>GgV`cUmPL$|P(zlKEv-QBZT7!cFeiOWX7JK=pXb%e8S zP1ZeeBzpF~C>SXP@2f{jMfC2GvY#)EL_gmXKa6y?kZrf%vs>6K^xM#x55$n$_$YL3 zk9sQ|CEuPJg>PHLmQnl^Jlc)sI>z$H(O`V#KU*;aB~V$CU?went`i%FlTPO z6EfRoanx8jtv8L8P@FxMKh8#r-`vF?fKSlwyMQE{MccdiRk2Y|GhPzoWVRf~21Y~e zT)aZ_MO|P{*j96&2}}U<&^-gGUqp31Ro(b?;SlYMg-FuSU{?*5xl1D@;ZP|bidgP= z3**~JR#nMJl7e?iH~u#~woCKsjVj>`JdWxX10xOT>+UDJYgg1CqD!K?@oLnG-(B&u z51ynxglH#6D|j^Qqf_C8mcVDUcme&n2umOYNRa9uF6l>Vd){V3(F zF{Vir@){pNG7&dkM>czpD8i*JinzWdlm%ZHDcT07Kk6an$0a2b7ow}@@W?naP?hGN?p zNFkm(a6zC>w^@{t0th=D;Gs{#yDf=8agPS|AW6e6(iEjBFYKy(=<|CwJ-uoC1&*Ih z5P(?)iLU8LB!gozNK?TfEl3dtAp=Mse9ids{jE!8dMc;X&E5XylPhOrB_duTM7xXX z2cR0jUT1@JqY2XY4jo7{LJ@Mk`k3U{L@}$Z; zrhGK9ZfxzEWv)a3sg;SnMH?b(O^B>NbP(B3Bzvn7NS12ki2!q~TU`5-0m)vfeSgw~ zRS$0;9jhGn@w<0^`Odtz)+a$R0nNm%55Qpk`b1#bR!QqtnGgl%KUB0%t=i*L)4KZ0 zc3~qRni33YL5ll$GJy2m^-n&s@V-}8`71XJe|7p7k8awOmxz`L05vILEs!+JWFNIA zNLLU@>4Zj^gMBQ(`{6Fv@kE`-?hE#jRgZm)e|z!TIh$TyU2bxZuP1-<)R$xCzx)gW zWu{~w`-!AG8v)W3U`PPyTMit>378B3oxf%ASEDE0vtya7@~#h;JvQNq@5QV}Fqaw! zNNY@xF8Z$p>1&MuX-Yt(1u70KW&rA^ukYJ%SMADudgY7>pKKX>@5(J7HN5Tz-*2z` zxh6yx96E@qb)TPl-HSdCCG!?3A}vf2nlJ-Q?;G{h+?PLj zZ+TATZSOoctnRy~AJh^NGLd(iOB`-hxN1kqL*q=4P9Tudfxt40c{i!j@4>sWF)Lkg zO#HjW%$wI^<}>E6TJX)XZM9uZX8yx>A54Dl@#*WUEoR<7SsC0vwPsHvK%4?D2@qcI zVCFc0nE}Exw#9}tU{ zkEUcrDTkgGjKg4uNN<*yJ^O*XhE0F${SmRs*)LDt@x#o0YyOe}Q>EA*!(P0Nr`0A9 zM;NX2*PVOrU1?-enpWs@xkL$pV>LQL70i+$L&Rbslv%C4k1n|_#WV*f5ZvkH1JIY zlLYWOxj(|%WdQGUOUC@;KI6T|*Sjj$eEZ@{KRmbY+uvnc^~y|)%?5kXU!VYd(IEuz zK`r_Z$u8f3(Kr=U(gGM!#WDbR`Q4k|pSbq^ts+)A$%^6{G`-pL(cJ8#P=TtsA?4A4nIeYJ7 zoUgPt+tP{YqGBHRn(BImTBxTS!i9QJl(5c;b!jMJDxf65*GUPtWQ6bXn&}(YzdYfY z&XvPARe!yF`YUggWCE`eFI)78<6IAgb3Ola>vVw=Vky?CG!~^8X9C2Wt8{)whzMz!fU3i}@5_`0L(s|%&sy|h}c>VEB z@t-nI$LNI%ra%3{o*le$!P-Y_hOhYS;S0>!@Mw2p?|30UOtzLHU#iA%QF4a4HzqHe zGivQyw-1X|{!lah?u{d=C)@j>9_!>?dFZ|&HCc0Smmfq z53k+%!`8`z?9sg%2W6^!saks_V{6Y(dw<8rqHfW%vC6MDj2iX%KOg&{x82$kvb6y; zxK#O4wKgYXYoCnSJni!@U;F`Md;5)9E8kfD%F_=)4G>eG=SR`$h{}{1>~_Si=XtAS z)T{pF>AG*We=Gu(D|SwP?9+Mc9>2vNz!-%LSbMB8MLxUYpjh%4Z<)LiKK|?Z6DGa2 z?A{KQ6Yluw?nmx^QoNqTswHI<{a&z{b67Fwc3{qQb6A;WqlACT4!k$G!8r5jSJyo~ z<&%#;vHVlEPhIiWV~-n?UqM339Y#~{J1(VzO8rgSX*53#h|Q_S9S0TMS5`aJKHTP( z0h#aJJi7LQZ(n$QVyyC~SEv1J*cacu@f&k?TzWcbCkA&WYiFlW0krj@1n5Z^Q5uh* z`T(8U2!N)7LRx?#%vc71e*NK3WAAu%-<~TgpV;!w$i)x-wDamr@H7qSS{$I70%+c$ z1Sq+mr2(k8r8ZgOmaZ!)#+e8)k+qb!>YBucZr?cP#m8nny!S7aZ!I=Hy?yD_#}7+{ zj`Cc=YP9expum9`V~1|R?iYS7&x~J#h_s~`b|SDG>vdU1^x8Um`23GoPWa-S%8ir6 zh{@kR_v|psOyj|YcH{&oMXOZ#;!T=-Tw7GHEgv~1V@pP!ZzPXNA31fp^gWDD2FnC; z4a0#dX%EBwlX}M^&V$u0?X)6=8oki^_V!xo|HJ zHxK7)A@csumX7C9^dSfB#87$IkIPtf-WTqfIW&MAttLpGn67YB#MHvMS{G`AUt(`G z#E=1(Y%*k_9CWyxA_XA$7DkV=A}r*>{}PIFS@=|BcNETnTM!)!0sL{TDz13#8}^2? zPXBWb{4RC&7kHy;2+iXjO7-SM7&_oH@3`!ngP2DEFZ@}_2)_ha;lI8`=&-*p zuH4L#IieUp4pO1tXBKG-gCSHC2=6ayMpSK)1)v&zPg8on_)sQ;3%RBy3j>D;ESHs z8?y=g97u^cA4C4YD10V5AR8GNrQ-)xr7?U)Ght8FnV1r^PC0yfn98AjPu1x;GE4@( z^hJh*vX}!pArfY%lN&B-9~i;XL=2|B(O|C}FMvP+L855ei-P};wKoB?syG_I?>XIf zwmUN%V1OCcdoLgZvW$p;sF6b=Xo7-?CYrcLqXtZ(iOFk>@eYcBJFbmeGOnNk;yUh* z2uj?*L=D7k+)+_+2iNac)#uIv*~0bNg76B=oYyLSW`aPI?IY2$z4|1) z1slyQvXRMF&dBwm556-?^MW949{Nv{ey2(EFraoJlO%78&4_Fe-X#3rvo)3Dpzu3= zD{?6XtRR&c1{}dm33l$C?IFz2o3YjsS4}*rAh*iTRl#xLcQa@tx+&}p5tsmSy&b&7 z5m7!8?AgBp-h=}xktBhzXf~9y*EMljK~5M*qhYp2#>+9Oknn9}iyV9icp-PX9`iE| zDkxe?3j77n$(4Rh+*47>_o9Pb zH);bsBR5_a5nq28RN(=1_2GW;3(qZQ#zrdxN*Ai6Wl4_ams6`szJ?1nC``{hj?9ddm>BsP^MaDl-#Gndw~NkBBF`}3HYU_PI3U8$=PtC4mK@V zLerRR2|r{6VP>mwLIWKr*%T>B1{n$oktvEMnkc8c_Ns*hN4{=GurFjmVkxFjCBQK= zm!?L^sNgTm3z_N^VctOmy%nYeTI-xaiJdSbZYuF}60S%g<@8ll6mz>OB^{u4XeSffMN03E>Hr2dhSD1IpwmCX+R~Tj_9I9__=~v-6?32ESYuZ z7hm00n6zN_c~|{w*;!Ye@b4;A7Z7C~=JXsnT*mp&72uy=&&ZjS7Lj5SIs43lhq$OO zx>yI<668x6A_GbYC>thvy<>Df1xBP~!x)oC+dmFs0AppGmUA+4WKq!vwhJ;JMDu1% z2P8^DQOp!UIsu3{4tt#ME?*vBcPZd7c0b>E)=I0#K5zS>-o<`a6t)~vQaDN>jxH?cA^=}_1s9p> z7pWDUw~L6h(VSBGD0Ovl#Q9F(EHCG@Q6Zt8QXz8Xav#`#O^|;HLDK)8AOdA)YUmt1 zPR1kDuqWgS5T*k;MDPM`N36kWU_r;*fkNfNcKkuIODC=zo{v-(Av`-E%2(VPQF4x1 z_^yyBlOmP3$#^fzIPJe5=QbJ7ld{No^~Y|(cnRMXIx(I|M8>Y?sN}pYzcG_ZD$8Y+ z=Kp~yO?-oJ7W?@e1{Rd1I4&mmfw3fUkerT=F5+hLA`2F(v)Swbre_|xgS90Sd4-DO z|6&gOx83DiR2m zwM!|Ps9Tb61=q}R>uI};V$V$qvnw3$`Q>@LwS1s-t)@bswx2Oq#IFX

V+W4N$weYvS)w{Xb+hT<)>TS@$c zR{qayxSDc>IIT)XF$qSqic!@sMdM%_noWmVM6O)1TtsJQY_`k6ttR`I0%J+G8u}w5 zy%=l9-PT=-`(#_4Y*XmZ62|FZZTv6TD=5)B7zZVBlhh9XGy1Mp_Wb{eJwmoZ9osh7 zATs2s(LiP=@~B2O`SWi8%Tq+tg47-d9bCy7}CEAYn5lzHP*i_@%V(dabe409$|g=wq{>ufr) z+wm^2s_2o}{Dl;j95y%0i;~11Ur-_jIZJRc$gwd-1y_`48{Q&UJH3<gN!0(IPKl9a6waA{J^6--YM^@d0K-R%&4W$UF;8 z`Eg9Hineei2|Q&i9`a)U=TdP&6q5`<*Juc9S%xO-2n2P`3kB&~>(X>(HXYqkF4mCT zvleE!C`MMevYKe{myG8s+_%qi{x{nlg%7H#Gsb38K}C64X-PWNRa&+}vh3uluGoBx z7SD|&q$gKJa#@hPRF&hAR6_!nVTHG@r;u1twAjd2qnFAaVurzwnX=r%yA!*sp9}jJ z)^dLvq^1(~Qxp9S1yiP*wjP_&A2T}a2EltqKs zmDw_}lK4}W?IOSUQx>fa0hA?jdRkSrmiCiTp z`NB++&r_2A%bv=;M{ZkGFUZVP>s~uDi0lNIt}~Es(tR+wO4MTUKatZ1Y;liu`@t)ed;xc^S(LHzXzD$y%(aW#n85z_~^qFm4+^r!;B zD$#&Q2qvHie$K&yxWsp?Ej6;X)=?x)o+uqvst2Rk8de{OXKCwnVP20{Q6zO%&l+RR zjt!e=L;RChNL#!w;E5Lv{*-80c|I5wfRj|5nTEq9P>HciP`ESD-vS<68q_;Z zoSKr&z$h*E>Bmh9xMZYMd*K(Q7u^k-B)-#VoJ?Z9OD>_taR?(T9mW~i(@^J7zKgWa zj@ozR*%H8WA$t>?Th|L(Rs^7mjFWR|0k_=O&x_i@`<^e^h1Ni17!CP~nORt~ z0(pl{?Mgv~nNQ$|<`7g@l4WP)dy>TnB?Z^M474X~ObWgw9aP7~R#q|$`+a;zkx z3bofT8;u1{hLJ+9SM?bisyPaX`qCmf*c9v@KqI+UFS=PBU>wcWF>~lyG>D)IH#3YP zTWPxFDnM+OrityOHij6n-XIYsyOy@IkdD*6kd|w2pn=kE>|TO2d87XeT|CTa#tb3VMbK&(AUxfeaj_05Ee5<=aR|~p)m7R z5mZu~ykg1aJ;7v7B(oP8AX8VkSEeoq2db82XPk+QA(0djswg@OS-tY6JWFFRBrZDI z@avRo!Fmx*f+f)g<;7ddVKH{gI&*t*BDVqJ0gg(wSHc3?V(U0pH?9wgzB2@IitXm0mepKNJkxI4t9T$i-AdBgwYb2 zQ$P?i|KetgJP#kuVmfZ7M7xFD$sw3S`t4g++l$*`9 zmk0GMAerjw;%H92Z{EQ$;`A>f-+w{r>Kfn-YJet zXX>#d>CNZSte84m%qy7^EYc5QZwvU0`}&PAFZxS_1T|z#JdR{fb8L95E?0H`j(MJm z8<7_oA&GFNLY>hYx-;uBbxj=GCyFP;kq-C&a=6-40`e% zx*&^N&zun3-{woiet{7{)Lwo3zB(WX5v0DsLg6wr{oqYq^lFF8(ct0?+s6@(M7bx8 zxlbdh=rt{JB1-gi{iS_!^cnD@fpLIAtI9k_|FTmk^A6Z~%7%W&j`zhn;U)?Y#08IhoDq(@H?QF;&DO$sq$ z*TX15GN^@UAdR{s-VSrzfO$F(H~syvM~@ffnmociLc~T$N!&4f_vobe!|lR10(bTM zVM8?^XmvMl40{Go zxkomJ!?}jdeXr-<*Wcl$e;oD-Tkmkc z{5YH*uD{dW`*CdKYS8ORxuTiRX2BzU@su%T zF=eAC-MY`ii}*_6uQ!Er!*>GrWICO7y*7u(kk+_4?7z>40n8IbJW7wxl`(#Hg5~}_ zrhy93lISB5(l9;7Y@kV{KB)y(HI!;iiEuL6^62BhZP*+R2zge05!QvD1g`#zFkAPr zv>9KqBF{x%hJ6d0{1@90IRSDf+7w`;WHJ|q zK}ms-x)vm_p>=MXLQDm5(`@{y4Kku2`V4?X=!>qAq;O)~vJ$k1G$P9q=2%ixeo!v@ zT85y7b?+S58}`t)Bswg-9o9T(arlRY?w^* zzBWVfCgM_yM~z~a2mF@r8-XfDmdY#*1A7YnZ3K8gZ~o@1@V7zX3mKh+FQnxo zT(Z(GjWkWfTv~EEqyaK%1l@Ep7iIU=G zsQciX@M{mm#F^PrKIpRg%y+;2_Sya(2*_1B>Dmns-*MhEw=Z}rAZ74DI0=aUg zZVBY;ka#`?g=RVr1`{WZmSb+_F$R3GWk!m19v=$Mm#f97NXoTvG}>%2WP(J}Gkzuw zW?9Z81=oOhvjrNMw!Xo7);38w(XXa6a%c~r@sXCnqBX$h-Y+#rcG2N%q=9s{P7)6< zGu{2DTS_ER5gYO?Boy{mBbm=F+39Q_KiF0+(wT0+rbYVtBHSrVE1jtb-VkHyY(HP5 zg(8&cL|0nzphsA63VQc)bK`yrdLvL0?c^)Zr*g%XWLcvnl5sR@i7hG81dx?F4%fB9 z)EwxMqKOIQtx%|9E67`bys`-S8ZEK~;2S;QwfV>ceoBSe=+QeLu%aU1h)o9FX>u@V zEs+3Di1{`MunZWZA^{q;$d&|X1jZ?0%Wbu2={as z)BQ-TwMG+@Ie_T0Tg~GpfT}G5jvU*125i(49&EBZ;=Xy$$V^Qmmzpo>VS1|=yS1nJ zY#drkw2^49RHiHPUzCET$TL$bN>r60p*Uw=is5&a4o%8HnA`qs|QY@f=JZDJp9{CcEg@q$o=) z=^YLv2wh;nhQV6WT#OJK%|%H9(QFVxQ5q86%%dzi)ty;q_TYnaYwAqHG(R#Tx`_x* z+Ezua;I)<`N@)rUShgX+T)8aRWE8SR&&(AdN&&IAtY1>mJU6Yk8C<Ni{x*D%oFLLT&$MH617@F@QLY$yICxvqFE%S35J;r zTFfnPYsfS7NuE+|Y-H5_DlrVDGUcETREi(SaaW=ny00 zg*Ztrj#NpOJxq@f<1d#4+2EY;pJF+XLp8x7A&yXlCd(vGa3sO*q(d()EpS3u>`a;v z3Tp>Ner2WEhHXrsa;<{pmX>02-L8-lsFb_p?;PEEQX`3CGFn}oD_1x4H3MgU8sv+O z2humYxRb)@4F3r!#YRUYg*pT&C)n^PEDl~QG6l9cJCX#&8s^`r?t#8$Ko=nNDS<-i zHuN?9ERfE1RsBrg>110nI8~IOSvtddOpveKEXE`~;nXOOpYRfI66*Mc8I%9#xIgwY z`Ebo_cV#~_u76@1!aI}1!2L3)q9>U6w1-k696su2zB~Nv5QZ}{iIu%!bXojiK7{zf zlw`{FdB#869p2weA1q{Sx2ds-5#UKtokw8U7wzTV>ui^rx_GX<3QYvPGX!-dr?7`&>q5$(E{G43Uz~m~>C)O^vT27DmZdN>_}E zlFlRRHqbPCG$V$x=}x`4)`6xbA*N<_q7XbF>OZ|zFO8bo34h}TnRT&_Wew=wYAmSm zErvql=){uF8rtnU*mUoy&7hn+52X2|!RDc`u1@p^npT&VqH&8N&`qc}Lwc;bs70m^ zt+SsJCvWZ#^=7++*Itao))gS*LU^X*_LQ_V8R~89GL^Ly>vCy{zQOi%g>*gI;FpQ$90s7i zE!oc&hj+BV{e7f48ehkRQOwJw?f`k*?EWyyOs!cK=F@T*2wj7$PS3<0bc=g#l!^H; zUTuRpvS;gZq99Yf<1%hGk!XJX@szuu!AuSs-MR)dcJk~?fmc7UuA)Rbwc=V6RnkIU zToOMb4_PjAeo>0YkI5fd0oxhz8h%GNyZv`CdzG%9#nOHLTzB0LX6NuPi(KmtW?1;u zLRUH39M9(!P8n@Z;<0%&BY4*J+R^-=^2O!qx1;TOFS=jvXol6k0zMfxiiQWD2SGJe zv-5bhTehR=Red!dr}SS9GV!&Sx@UJZ^+BuqW=FGYcfM_lt)=*DL*3qE%(!56^XX&E znqJMV@9>3|=KZIdr-GihDPhDP62vDTFOCUwd~{p$&ij~&L2z61Nz=^yAXwru`OUfr+A&I3) zVq@SF?~=soVq)kMH(pUfYMzRP@WGY)UE#;(@nE_8!B5ON!2@pHPt5m%`5;@i<;c`4>fzq^WsCzVMFd+p2{gWVxq<$ zEd<>4q;V2RlYPp^3tivC%&mNAarI&5#rsl{sbqjlVrFXew3~K>IUu;#Ejq#s;j!ijQ(ptHv1}!XF*ze1;sL5W z(oCShlp{@!$1jgGzup??w~jQ^gQwm2UzqiH@4UkTKa7NEX4cIoN|aka1TYV|EQ! zH@WAJq5bFFr^lGatwA~cmu75%lK>L!Fd-%1rXz&x4{?{{e+2Cc{g2v=px!Ad(n!{0{ev8Rl1BHY`}=*3B?G zGmP#t&4}>wMQ+keGgL&xuV$JooC zFc{du?ONb9*x~6gQw=6}3{sxLV&?4-JHwY^u;*17k7Z+4JLnf-$~ z3t#f$KbX4yE8wP4!NeSl6tmu~0TpPUJ!Pva6+Pl!`vbiBXmkF5Oi2*@%?&+~f&9%) zJJAf~@y8QQL)ATE%znZu>Iyy<;_f`re7ELa7EkKT+(WadNBy{_tyreDpSI!aua z%$$@)ibr?4@BGnBnDVgL^X2|PuJ}P;sPYRM&PKmbl%@}hEh~UN!4feQ-6uWMQuLtO z_Yzp&>>m81`30yQe3BW&fP9HB)0MSKi`)56Ag9?K@h5YbZ4RRc+@pUodm$3Lo@{=~ zSJjU_*))V-EOdW48Fq#kPoB(LnD-A(hI1cxnLk6YcSE-$Pw4p5Kb!9f9h)Q>I`XXR zq8n>$RxM+8#Z=w+XEPUio_LDszsv2c97Y9lrim^1V{-i{!4^=q4~$;FNuxQiF#8ex~x6IOn-2-oP+$!A5ytVs9*+43^sm#O&+q&mz_WR~Ic9!o_)+NY zI>+?o+p_MtbIhP#pEC82S0@q(5SaoL^y|8wYx-2l0@lRy&?NQI>gJu#HPu0n&4QM! zT5pm32IrrJ?x6F`obZdV`StV6xoP=v!o_Be;fMQbfyo!Xl}c-&R0;DyUvx*P#Q&C^ zRV+)q6<U{380gNL_1e2ua==UdUmfnzxBpaZaV9M)8BON&`(K_}o>zQdEu~ zY4%3mJ5*l4jFQSVK9{vE3aG8}dd=lR1E0%Mx?|nDboRDIv_@h$dU16t}^{gU%#&ophC{|6d8^DbtZw(%t`4LMa773g8Jc z-R@UoM$dJJUu}-8JWajD734*;-P2c_@qJE}lon1S3&CgWB+3XErE$Csy2hL+`+|SD z#`NC_S&)$s0=P_^U252Sk#oMuvk(R8yLEEHct^3gp3dszgbmQFZo> zTJ`c9wax=KvSM24-n~(~=y#I>L!F-PSBp)Bn|YI|qAe=+c1?>-iM!M%EW8PWVWnGp zllJ)eO~u+-x7T8=QEZ~NL+u)V-?3P`?Q$!SY+MW^D_!Xl4AK>jzO(MAC5ZMFu2{RG zOTS5%UH!L~%m4M{U%pBG8H1(`k}d-#t-Sd2=a+u)$s_M+&OerD%bzV#ka{dtB<#7g z9SLVGW$mOb)VlkZD!u=))Yn<+>)fovm~wLw3AOH=o3$Lh_H_^5jB6B=>SnF;$<2zm z+%m0m=q*Ix_n!2R=jNPw`mEdNEAWs0%tTePbYw-l=h(@-+&mfoU6 zr+C)A=zr5y%_X;zywZWNkvzV0tKv$!b5}}EQuzu0TPuI*e^=b5aE`c5JDhr(;-hd| zJ3f}**3J~4-lpTs+^%&--mZ1_zFmPV+^z#y;vdiZNBJFEa`+vJg#+)V$g(}}{^4XOYh`MePDu4p%Dpu_pqIu=HHppk9 zmF~!99f@n!I*<4Vv#+Pi++|?5=0SHMD@9yPzMGGhp6@=m+k8K`*d2DSSr`&ywBerg zK5q2A^zS6C&i&{fb6#7@=4FC`|12dH}QTv z2N%0F_nYZ%_xrKQoczwaGw(P3diO>+i5G-VE)%>|biN^?%iWLf1C&eMRri_hm6!Y0 zaTi9Hxf>oZ2bA3=p0mEuRj&L&Gq$JLJhm+mh64y(^MaRt{|C*EeVX+4f_xZ<5|L%2 ztB{x86@Rt6=0Qkuu3PgUhVMcnF+^&P5LTM(4d5o1uo!(~Cn<@dL0v_QMC|$y8F`p! zk=wV$bU*k8Bhif-FjERbT2XX~yR$SR4~0&uxRLOgpw2JX5K{+T*)Gbzn z&lKJIb>JRqF*Su7Mb*-|Y};W($<|V+Zc%Ik1q+jkTtNyq6-kbGYbag>pgf`pAd!A# zL8&cS-oF*iO@o9+Nh0=8sg$8V$tsbol4y|r)lveJUxvsyQN6w?6W!oWe8}W`B5RYu zmq_0w>_-LB8E)A_rnUsI2)=VqJ!E?IR5;qa#0nR1xGx_vgEMp-NXPtf+b=h{g8atL zq`s$C8;(4-1!n3PsncQHide;|mC^GmBP)e%WT0xes*|C^KxsgSEL($YaMB(76@%R4 z%guJ97D~Jwt~KAMFibTD4P$JxjM@k%aZWD#u&J3KLjl3x2H`{j4Q`?ha3-pKQy}Nb zLS-D^hR3C>k0AW7A7;1nhJ;i)HvLn?K!RoU!i%4TotNcQ*>=#(}CSD1*hCQ3 zO4F}a8<L4%i zZ0@B;Pzg7<;88P1B4{x3+27N6D_P5E3d<8osnz9|rfl>nSvC7KMIu=!Qx6G~T5RJ2 z0V@(|logDuEc{CgFCr*3XALjx_{&Qnh&O6EO!CG%Aa&4$Vnk zTJ%faY$2++~`$C54-|iCm^9&2QOhqo!^#ScHQNwk6aqO7fn|I`>+?ySNV<0VZo+Q*qCTG z_(!bD`%E}7UenT&Vwm^4Q(j_C^MG6MlG!)7#J%$p@qQ1u(wEJEK@UPGjiJISNE(sx zkSzPM(ki1vX{;9!UNJ2IumOHrdN1~M~EmSHiNVn zwFp~02sSzKQZBo)smx#|VMIWo&Om<1T$C}(FPWd(P-ZOi5+X|3PdFVVl0#*kBG;!( zNGSn)ZB8r*f-^%XNgYD3I#$qEI!U^k;|i^2M>+m*dn;BA&sUOX^(*+-=em)v0QX!s z?G!i?;1oRdk7l#X*O*G&w(|ECX#W5hj%v zkri{@x38MI-H8WOl=(XY_%+V-HaJ=2}R&!KfZD)jCWdiFVo%g1~N`0JzRn|>H3Bloy7lPXLBM| zi1oua%=SW&tzZlD;2VT3c*A6SQUHIr052jQ;5idb-cxUwp4*cL=8?aGGLPs|L0Mai zT0sZxy1Yr)>w|9pH%-2bNh9|7L$2_q>A9T@G>LcgQ&X&UnNK{}T9Suh*!R9^#{9g~ zutUXBGVDE7#Zm9Hgn}wB^hHP{(}fo>8kZagw8t_t7d+Ymi4%pn_HqB>_I=Atu0xB! zI3h4<#TXV#k`gXWue=}x&%f?}lc{bok z6rSp3+{qLUN+I9^DW}ROL8CF=eZN#K@h&;7Q915&Pw;pI~*-|!e!nyb)%jXrlgh}@dOAiQ9lkbVxuQW=i)NC z>pax;fdsTgPq`nxYc7}grFYHnh~u7e|1i7W`|+6nlG}cR$=5YvtMQ7(8a)QlxkN(# zoDeOHeNuq}DdoY~`ThC`s3_-nZ34)O#M2Lz|SPfX71?#lO>OP{*e z-Zw{aPVxI6n7)19)HA#FcyL-${xXS%8Iv@K>n%6y12eZ~z237Ft7@m;2I%~>>$}nH z)K9AFz7ycphht~BFjXFZa4wq^A zrh9TDHrJbO!$y?xJFfgg^Zk9a11UlD3Df>vJtYrfXkT<{mW*hF^w=cEzX+}5UG`Wg zQO^YrOkkdig6Lg$)rZ7+J?-B7&}`r3J&F4h*wj9G-(^1{1nFtl^pP3e|7j)Fcy1&J zrGPZ1UC1qg9N*md5!il)LzQND^#_W*1|2_WnenmN5#aywF;2~A+}j@`%ik_{^LHkY zz4~LA{26!HCuSP`Ec?W`@kxXg%(2?b%7OH=OtzW3uoEpOB-ENB=;ws!iSptx(dZwp z@Ts|vws!ptD{`ef{4>I(IYN2*XJ%-(`@N-(*&|aCbNGJO@|l^A+d@^1H->nTnOdpx zEMBk%0fxIss;%j0l{@rvoO_u4T*mGG{JH5@cwXme5IxUk z2d%5|fn!GHVXL32D&I6Z--|kNREb=|P6G!j(8OF5PoGZ)`#xF3l?*@{@)7i+(90xK z=01-d5q=axAV{I4zK9<3L>uT~579?@*h4B|=1<*Z^5YR&P?ud`kpsS8jdLf6y(nT~ z&|-^Xnu*jwpkKeq3^-6^I3|I5gGG*tU&uEixS?})k~M*#cvw-zDxjhP#QTDr77w8+ z0zKy;SBpt?Lht);*5e*WZYCCw%?%yA1hvFX8If|>IGasvFM5#Jd6JRZ^jAF4v3hgS z55+jkzc9ngUZf2W@h`Upl{sDaDA#o!9Z5)9mv*zVkhs1+y={ z54L#6T>O%KYUsOq`<;o0dv*V=*hDBAE4^Vij!PW_vTXFOanA(>IsS1oNNVv-#rE8Id-BNY}Hkod23D9O7)$R;GK;_{A5VS^*|{#q-~O`aR-i6HK%Nm-H!*c0dks_jGG(#SQ7+ z-ctfibNBW^pIXzN4Ity)do^|t1M1d8%gpkRjXiXfpreO7wWmFh{$A**1%A-WzEdMx zH5emZR7`m}vCQpNYlj3ExZ`VWKlabgtF@zfEU&fSAFQJDEk-c>Op zA}(Kwtgn)v;lz-QH0t}sy^-X4yl?cKSsWs)%1@7g3wlCEAs-GP*0%wl+pVW$+r<%uG zk?~zP>u{Kf)oT3<4y}Xx+X17b8J_7q<3Z+mxB z+N6~(s7s-W%M7sVM%-kw-6u7ka$2q?)~kioLcFLX@;I;YIA6wA;aWJtbpdJ<0^ zsd~?iP@5ayeJV##QKD4oS(bx-BQ=@f&@a zvpG5H2s6XoBqoi@?qXW@`>;fWC_tTLmC8w&(jo)2k|oOodi6EsMd0fu`)0B?#`}Dt zcgnevMB!yP0un}yywgQ~gzUL}BQPvr{gnnn-M|zVCu7!qIJthB(riOFx>b2QelQzx z;@8j?t;c}w?21?ATeSrYKHk9tZ7#UpO&Ms1_1kn2ib|Pw5hjl~Mc1nZCKBcvckVzt zr|w$#LX6{7wmUb^#d6_{m>n${ml2)hR=n{$OrA=D2tq2=;@L;=pE#^pCBLM|b zBtse5fST)WA8aR-GXdlxk!7J9G05)Rb4k*YpDfyvOwyAF*$J`{r&m36z&PzNlb#x6 z#}pfC;)adE_VH?2lOY9&7&Fn^#;w`T){b1zuJMW3?_>eU4Xhn41Z0NmImG^u1>G-) z*aMJS%ZJ$Q!w-%7V2GW%+lMS|P91J{0F>K@+uw5jVaN#k4v%glvANKr zBkcqpvq#z^y4?f^0|HYJjEgW??KY3JS98SdicxkL^nG-c?ca-y3FObD#&DdOr;CJ` z>p|Fy_-d4G=mGz6@fg9zGj~YIO@{_mv)aWCwvJYQ)?f$7HpR&e+`@R1TijqT>j>z+ zA*;JvcL1zg-P=20C*10qM%#gIhtalY_^EMwjkaSrMRm$(rsWdJ`d)#V5wlO?qb%Uo z_3uGLHhV=t_T_aWuk5JGYdyUCaeM9iY=qU{+{ZgIpI9uJGsCZq`|(cpD0x1xlkHVdn0+%6 z+%Rz__7D66;KRlG5I=+ttORyM=pbEn1y>Y0p>BS{tx^r!ou#M9BI=FdYjWRc3-!!7 z|En*N`TiH*Y~xp)a{G<7v$|8)Ah5k0L(j^pZ~a(1p-Owami=cFeQw;Sadv#qZ%igr zlk!V;)=9EllXcRc$Ju;P<=sga&6RCDQ4LjY`8ZhTG1su0tlxz zAfwhZ33pFM8>JN%R-Q>3Jd=zmW{6{r>xUJGFab>b%6QvbHYmRy&j6RW?9R3)dv4=) zwgdf6BW||Cd66P>cD9#OBtOCaGMMGgo?wp}JWIG^9^9cMtrTXFuf-@BLhtc<^Fyy) zY_=T0gvhivaTi-7?zM}`2CnhQ7<)Nm; z+AT7DUq+|3ln~E`cF!h2r?$0e?AjzBn8_JsX~p|bHrUMWR% zRBbkqo<)|uymlnR`f68-14fawiS|V6Y7xgLs=8)9W)Ug$ujwG51O(u|7TXF&-^2F* zftK=TCwzxEOiGG-)ao#`?W5OD#4hk$s11pMed!eYT_PV|oMQWB zyt#*GEIQAn_q45Kg=OsU0S%6PssCM$IaVT%iO7|1IS!O{E>SokbLER$dQ_IU!F z*yFIvS2U6Ev_Pd~*R_Rmz4xcCXQe9ZCmqKsW)xrZ>^z=|D|jwt^lsy6!vGj>e323H=1WjFNxL}5UC$vlf@s$ z6$K5x4~Bf3I@f5di!@2)D7ej4?ruklSCfwQOoRMd#iI8Xx6khO&?;@%L}v&qpW*J= zoptd1(7nIA-Nk!FWF#K50- zB^$CPmx_@S(OK@p*!E(#sC<$gHe4O#;0tdAoe7_VEJDSwIgu+m>-^lY7)*ywvO~Hn zFhyUuFg=}KI?0ao_ZAW#mIvB|xrFP?B$BZ`{l7(d*n$$;o9qvBahZBZo>&_&?QaqITBc`5$&-mD|%xTbw`BnQvHfHX){q4>}ntU8x+sv&h#uf6pA-O|e`{h8p+ut67 z7yGmQ?fyKb{+KoPg>LST@m{>_mi^cc#A12o$98XaA@e`6Lu%Km?oQF6$R>>jkcg@K z+~Gg5BS&1wia|6<5UmwWLI_Mx1R*j|idRODf}glC=eH;yb@%uRyLEoWEp;MMbn}sc^cMM$1VR*bu>{1xfYT1J14U3V>G)(a z%j1M;0CgD~XfZ ze80jMmA%3WT~tvJc)kQ4;pXgtwnwc@Ev(Xn-Q%XL=)8~!puG>Yy~Wc80>u;F29y|* zb6w#;R$_m1mmFyI2HTYf+MMhXGQ=Faa7lAzNLc#$`anCrug10&gWWi+u9%grgHp~{ z@B33*)Av54D!sJu#c0;h(r@ys40q0~pW5C9!Z+m*%1VSgAp2|pi!Ns6tz}E(sVjdh zgG*%D0j1?H9@C_?2>y^IzO*6_N|kIY4c`{sB?U#2tTemvN^BJ24!)k)&AwGWF(swx zsN0OrjY&OWEr#%upV=|t{FUyUpRt{FuY2cbGy`@j4`OLM*Nr;JZa21#q;er2l!0l{ zVR8wQr;or2mf_DNfg%XMvktPuhP2fc0>KVy>9!SAdw{~T-3teye(3j$gP0U^U7v&P z$Zl_|X)4*8AzRj3jLr@^)b=fa zQtYoS@+CG%aII4c14U4s(?zQ!%cXN@7$rv1EeKdIPR~Wsr}xOc3|0=gwKJqvt8{kY(v=# z%TsZe=>5P=|An11;PnL(?Gyo^cSDKuDTzJ89DdAw`U{)OY-%f1&DB1(cb5(&f+|z# zT7F@B4w&CoYTHc}jX~MkEX$IJo#w* zi#}IaT)zCH9N$bHkxFq>f_x2E3OsVOJ)--SwuLyFc)?5lYAxbjUU9n~V|SW#6SEfI z6J^EMCckTF_7zQ)`?g3B|CBU^^pnSPfqoNJ=-7ZTTIg;&2BMtqUOC3*wpUjO_A{~} zS+0f>OHct1vxO(e>v&W!-`T($@k_fK+W<3vX@}!gUhqp>KTP*zDKGMtT{~X~HXyje zZ^@!R<%lA+-}$BO)0@UZG1pnWP(e#6jN}iPVSj|T{C7P1A$fg-HAUN*3%s(LUF}|* zVRO4*BrVYoe@Tz@RT@^+p*uNY{GNmrMHfm*9~DKY7sF)E{l$HErk&VdYv~DhUrGbM zJ^30abJa|HQbmgpkD~mb zXM7<_F5Pe!{*S%C+j%0;*KC&rf!KJ}gYM@i+QGYB$f_29Em+WBp*(0PUaQVuwz^i~ zj%x8c<23LD5p@#bA;+???pB>A}u<@U1Vl+THhO`}6(` zp4-SDrYw@n<3M0xT!TcK?|O>ev1X3y+353j1brU5(@wF6jXg`DMarIiKi%k?#6!t3 z3^t!-ha+D6n%_8Q65&zQ1XowEI|iq@y$kI3&35M%?6BOK2_h8i3W^H$@?3H%oEA;1 z>gJjX?1r4`J}KBqzEYi=-e|kl{o9)Eq(++?a;n<3K$Wx!j=35_%{=)bv3`=`mN(jg zyZFm66mt~eoT?1D=}90F6OKzRFrRrtk?YMO=y`RAuvHkk>?}KUSYtw9@$f+?>dW-g zhQP1?A$oap=zcfL?$`Sa6PKRwy9ueedlkV0YmdVz7r0kuLEHC@+wD}l%eW?>fhKt8 zk*S`UXzXl$*N12SfNemY^M8Q+D2>)D2v9*}&dsOVAC=783~?G=*=cs@NIY9|NLRdR zal&-onb(|IvLgFs6%WL9iU^ToL`kSO9Nit)@CnocJ;tSCatN7`@In55=Rs6bb&d$kI z-mB|@YV#{rDXnGN5q^M71u0YG)^A&ykD6`Eg36BtGvj4ji5-QLPG?t*=jEr{+2V=M z&9Nh@H%STMJRy;B2hFjg#5;e^9QF`TbIo(?OdbR0+L;45Xo_Hou9gaogGK)0;nIl@ zM{yzRlDT%=_J0+_(MG2eT26!P7qB909V}~}N@2VNBf@Ccx-Ro<-6Tp1kBNlfC*Cs^ z8w4S4Qjv)4IUTwXrXtM}VkdT>GDIU1Llz`wyBYKBcl%!?V4V$bV%I95bg{tyDChFE z4HwwFdvBf{Uv_~Qu_e((Zp0b3*C8DY1I(YnZL*s=fZ;5L0aT~F{6ss+m|N7|uAq%) z4Uz?nubC=;pP3rH3=s9<`aR|EhCQQ~-PLE<9UDAZ4)82{5EAM=_M?WTQph;@GKgXG zEgqW??|boGjV^tr-ARbB>zNSjJ>w2O(~jxVB(q@AcSKGxCr)=wXWE*Ka(>n`{)1=Q zAC<0$hax;`b!XXnapfsyg;X$Z=K!Y?AMG^P9d#CKG|%up-~MM6o4;bYm9)5 z&IsuVU+w<$?Vk%kLTE!9BzWq?+z^gcU!(V=HsAkzK^j6_-A&mUk-m$mAaPi)yALm7;s3hZ=VCjx+f`O3xJ0d~8tFm+)#8io zvQfw~IckuVz#0hfkeVRn9OV#!QjRsNiedrF3*LxAI_naq?)crrhE`5_4++89RHDttyvqGc>Huj9kYcxbM7J2*QfxZ3^E*&7dj390OfT@|lt zf2odJ+Fxk8_|iBA=fuY1n{M2+zc5|fU+}BHxK^QGmgs7)d z)ZijOtq&Uqla-(-Bu#Ke_y-7jhH*wWh>gFNF8IZcSH?_a-6GY-Y|*03$fU*6sKPhN zlwIV;UusX-=SD#bWbz$FH(L3^uM$#HsOk$0)&f+cfEpY^Sr&o`BtZg+`{Gi2puNhn zV*ANucK`l2N$awi4LL!55NU$g4nchOtM0MO?5-7yrA!M;&&7__=RTa&IrMV7@8PYC zY>8wsZ}A&e#Am-k3iVmp#f#;)=Bl*iP)x)4TH9W9mOUE&RGdD1mgB3mH= z_E*>^(lUUX-K$ri0k1&~&|l+s_-<#GDAv`k=_%}!7^zL-*h`Ev^kAofx;9YK8RbbsCWm>gNI=Z*5Ooz;QyWuki;(H5{TZwH=KtHoblSzuSiM6~&BD4LgV2=eM z{Q{8)M*5{q50ao!_8mxT&+;`z>HvkxX3B6*Zt+McGgaJXpi8N?aJs*0TDkdyjv>14l;un z$pcq#d2|=~O1Tzu`!(57ecGyu7NIJYwQ5;(hxog;oRE5kD^+NlBd)?} zrQ$LZ6kcaV<5E;4osE`zC5NGl8V*IK&PIGLkhbQPiWY~H)QYHgZ(U;#93Vzp7`Nh& zeH1AZ^HtBaQefR&bZw0s2fNnxtXNe62mu;$l`C9pKMY=T$6tpB{ZV((b@uMwe}jqS z_-7a|W5YKcJ;D+NZVlM&KKgolbhvJ=TXVhL6@OUOLMx{#_gZMjWkrQ7x0$1f6J^7? zp}1eob|D?jKtnbyJm-f-F0wN$$BHgpZ1?3@(YuT7v8CwOg+xcVLzdX7 zy?uiuOyG-{fRp0$s{TS(w_=HXJXqR1e<{0s!3(bCW;=~0kfnzPFS_HF*+G>rKw-fG z=zXENX_n=K+kRzKd;B5x%3gB0<@OJSjp8XA@CVWG3+->^fgI-Q zS-mLp^gwzS8$ivyyxxb|{@$BRf&)4ytjB%VRzphQ%kG@8*0v|~#WG3BN7*_TSydtl zZuG-8FC$XU0zrOe_4B4DOcZe>}kf z8HWAlllH3cg>v`)6LzS(^(ng@Y3rV{M+Pr8e`mGbD;>PlJntEMevm<0b9@8ci+~&S z95j5z&3VoqrDrh$VqRguP|v*LCj9m}JedIWqqVl7ZeystiIY)OjA}H5VGzCQu2^gP z*-t}$-MZYXr@%kWpTTlBL14!b>Xy^Om7&*HCI zZQmMEHBoE1b`EeM?D#3)uN+COedii*8~ z=#j($@roo7g)a%&coW<%zxZM>8`-&B{8f@rB?)D@eB78+sg{Jw+`xEtl7I;yUhzTk zJfBeDBkQEpH&kc*4l7ybH1wvwGyov;LTYh`F#dZ4cnrFObuMct`gqiaL4kjWDxau|J=v|mi zMJpg1s{puQh1=l`yC27j=DcBt^t{YwcJh)#ZfT})Acft-Z`hr=famKs><^Gmd%X!C zta9_-w|H^!o!r^n_*qFT>f~wtEa^CPd{O1eBp0 zLpM*kA?b8KxNeVhdPF%Vw+(#5hs$a=+i7Et>nzXobY=9EjG|@+SLNWAU^8NDIEV+Q z!R1H}r@;^SQ^}5f1^dQ8nqO%r4n~{$Csshb-Q9w5}TaG^-)h3H7+ho52}1Dx%scX9KWu8(zjA`hhoI zlk^vNa}WNxWMqlQfGaOgkKUqa+aQvnz1oo_k{;@d#8?};zoyf}ldsP17_I9J#Yz{I zq+go&Zb?{LuySwiMpGOIlAo<1b^$`sxUC}GBT;1w`Nb&;W+;!^Tm|}eVe{?l*=G%& zckAA^lgpl$RS^4XZpb?Xm@IUKcZkoq$+>sf)H~Nb{0;(Uk*j&vE{$#yyE*vngwz0L zc9x?Se}9*ti$$(#gB{xShCn!2#3HjAP+oLXHgGKNC7U<0J|hvVzKj-^@8l4YBE?8) z)is!M>MQQq4Ft2j-~8nU!Zr#_9FQU=Bu&fym$WO$uS}}GL9#T)hnaP>1d??lpGM`| z#@gh{AhS2vmH2IpfwnI7T06?UN@Y|vzg`nW^UY@-Lyg4mzfr?aP9*Sig^X)gDfOm% z{(YMry;9(bI^0Y0Hf4pA_=2*{{GRy}PL#@Wu_%~g0B*zwwzel=@eP?1aw$W$-nKxE zx7^P@uzmJqjM9W4g~0i?5oR*|Ntj-2C*baO;zk7{0`99eb4^I>Hi)9TGW>}zx(7b6 z8|wiG1jIGR&WK-NIUhvtSbTaol3;NbYqIQ3Wgac(O0M6O^t~`!Q|l@|L@nLmCVXfc z3JQzt(nlZI4jsyO$BBaXNnAB45NpzhK8Z^=+mb%=Nw!1M$3BTOYi*@I@kw0GNfK>; zs_*RcfU);JBv4O_Dq=f8QrS(AAOQGZ(r;x~NlUuZ3ZJ!iS6MBYz86oX&wZw}5l-~P zqSu+#VHBjKtnyqcKAOl=SS*FNtc?On9$?+%n^0N^&u!+tQn4lQbZ)gvr&bj_sqWzd zXt((zJG8@Kzv|F-!dPGXqy+6{GelOkv6si*HyvvM(YO9x5H8@ze=*X3M9RjcGsT?8 zNMUI-t&fb{z_h00*cHmgbQ}Hs*c9uE&W_YR)fW>C7kd(hRFs;aL%Wrgf?dJc*3I>8 zC-!XL9{1JKp0?z&ua@-SY6_d~(Ir)#Ai8WD`CU73Z$jk?>8?sT&d4tXp^{%va_b4F zXb(6E;*h zPWMTE?)w^Zd{V~-=ccRMTbY;63~^5%Thc?EgOxLw9^4)NsqLTWI}{yC4=7q)-DmbY zMgH4T1j$B=pKd^>puBA>(~_33z}83oxWrr^(=SQm$uKYpZg)a zo-`e`3qX&Pq`{)1Uk@9yt)>d_HMi+YJ7Aa>C~=*H;pDO7+U0tO7DSw%=i;wy?F3;m zToWQVXljB~>(HsPdD3Yg8N~dwIC)jVxu*w)z1@0LI#N=Qg2|ERBS9RS{I}hI zprGp_jb_(dzaNpzbhTI%?ZXp8fdUoMZ!#mb!1<6zmwpB1G+S9NB}7F6gXu7ej0l!4VN_l9xfMen}Qk;WaW3^m!LyvJWcIf9acNRgv+@O;LV!dIvh#1^l? zdrfaV)ioukPVUB2en=*|ehS$`j>VnKy7r=H3yfOy|6}e=z@sXbzVSI{rh6utEC;fX zkc7+(TR_7itAfZuK@d^gt}C0n39=~eS0^e8A_&M*fFK|sC;?H?pe%+(76A#XY(h{} z1Z44g6&3aWtL`(CA&FP-`+ooD`{Xg_OrP%R?&|95>ZFP(NGq7nAdTf{%}CUn8f#SIeEpHXsx+<(TSZmkoUbbFcr>3=Rs=DDH6=j6@>Y%Qo(I5sVt)i(FX)iL~R8?&vh*RBn z8sns)hKh_RJQ_^d;iBJCt|4;NLW}rA$f!0TmLeYhf#oA2-K&iamU%sjBVt#2{=_^1 zP$S>ZSz01Y)}MtDVP>s`9R-oMw>MySWB4r|Fq6T6#o@uZV^)f2Zk4$Q_B0F&tx*#L zU!inEf^GpX)MS|=9g47qrl<>@B(@<}5}9HSk}h_Okm@vwRq&md&Q|UR&niFGSX97o zxIl)h3Sa^BLxXYdq7n;6tu7dbx;j%Vd$(fp0ee4r=!9Ejw42Mi4=5#KV?w!*l*-N- z7#(=@GK#QiMW_{iWUyurnj{DswnsEJW>J5BOd#@zC+SoZkqPZhd{YrLsO0>n;v^zV z15s=gM?o9}NmsRv7+=M z)h+hG$4A!kBh96oqnaHMO8NX8I}%9i1-CUEeF-RyG+lRr=$Q}AG?D;cw-$aFFcYwI zJlX&+kVxtoNKeIIQrQLKM_drOu7&6Z{Z@^ZA{A#`8nhGxYEKf0knF5!9<)MX0K!?2 zr@%B?*ir=Bpq|M>uT(hrhslBM3;T6)s#>1-@CJpN6HO_Rt;FL-N0>qo z>qp^>_peYPa{`YgXpxOR1|NsvW22Fuj9fNoZGtk<`jARni+Xio7{sk~9yE(}BxR1* z3NGX0h6GIIX6kJtTC%I(A8kZ{dbJU^T9W}i-!%`+BhM`MTk~ms8_|lrpOEE=s$WO6 z6-^SMs>ZD1BaYC-(#LH@gPfIUIB;WHlLTsu+8zQfRjuzr(Kl{*X(@OFyJZi)P;jJ- zS1uGcP%s}ee=W7m$3&P*cjSvZB?k-#Vt>3))PbLQ+C}0`HWscpp3q34^o7Pi#5UV zBxnowWKyU0Vq>sW<4zl<^UUEgR6`Scz_&WYm4UiliIL5 zRkhJAmx_2pSCo8Cdz|9~^~*;_Dytq898D5T-SVN)mSY~3yr{Dn zVQeFR7ts>as$&qz?j{Dbd0qGs zCO`x%J}jLG_b3kNVKXUu5a!bp@^uCa^}+NH%lQyqI`C!z@X>Cf1xTUJ6=E+S{(ObF z3y(hC#o$Zl!%xkEeko{0&Vt0*Mh|Gb6EN)!3l&=P1or$UFTy(@iLj2p3{N=5v-1nq z|B{p|#ZZI$IJt*7YP?B9uM#(<%t!PtTnmcXrQh7}f;oAWcrbGTI9Q&!7~B%f(6kof zC&RMdq$jQx)3UfhUi&b(1xMRx*&n`6=uON1P;QsB=qXmIihjCA{E_mO0+axiIUpfk z5L!xc*NFpADjc~^)WePLiPwuRwNW2?SuBL44rTRfL+$+6pu!L7{_90P;{LqCkGE;V z^`dV5cNEawh>Om4cAP-xVtkjqwG=xOlYQQ;4@+v?fD-8+G8*6&k55isOygyA{XfLN zAz+Q2FEYKGfFzH#x1``kvCgPnEFyted3gMO==j4}#|&!^U2?OiW$dBH>WE8l6`9DU zhi^s|vuXCt;tD)Y-YjmUo&iysP#S z38RbErw+}(Ra^to|Ls<+;>+ps+koyB)c-c|kKE-V^t#6@!@)JN6R|8 z3SLEH`iaqXR)b<8*jObfLv@C(QrieT}TJ+fA$6ScpU+%_WO{A4~i%!h`#699Q=6i44BgSGt+TANI#N(lR z#TEQ@<-KA`_+_{Dw8OR;!YtRW*FiQqL9*t)p+Q&R4$Y!GwP4|ag zJjntDqC#QmbYHU&Lp+h}LU8zx=$=AxB?f$Pq3Bj~q1Hk$ ze+Fy}*k(%ZFG6%jGDdAJJ((=7h4r{BS!6JBjwXxe@Nt^#-UD)#Qr z6t^k%eqU{IDrKvJlB(Ie732m{|17Zq!O~l2WBP2R-r0!zhsrE0GG#P38~s>D`?AH& zu$;Ea5g}t+$xS(!G3KYD);Sk?ur zm{!$=u(p$m>xtfUZ#|KQ20m2}{GB-IK?I@;)E8k6^;TaD09_UtVg4s2vNezMc522WyN}d{*B6kLBkbdi#FtleW?R`_Zap6dnL+shGYRfGJ;0aRX8P zI%+x)Gq;#({EYB|lLv}CyssK4I-?W5K_a(4`zydR2YV-AE)V<)kMl#)ZfceDbWj?$ zLv-aJao&B0)W?hvBo383JIH0Bw!%45^~rKRqz2t)N7i@P-vIg06Mv?4HApxXP2gBC zZ~^GfLN2zO_;xb#jmigMs1K2QFnaI>H5x2>8DEwR8;lVEKHqx)jBPjl@qm~KdYbtl zc={pQ`XK0UK6!_T3(P$pYBxk&RUeB9F9mA0@Zy5-l&q1%s>Iw0n@^S;=(1-;XZkcK za>X)(=i0_+D`wAmL$M^BrDo$qFZ%vzQ3B`r1FfKnAK22oik^Q&q|jSKFz0w_!A!j2 zuvUgTVu~|^M>5n9>y2R&b=j_V#t5{F*LSo9`buC*X`#TDxV8G~2rMdxG2LG@O-VJ5 znwgaO5CrYj)cqlG6CSf45_i#^L&ep}6Gcd<4nd5upA)TWu29lkjnw2JqnSBrB=vpBXb^{@ruIxy z$va+D$>wi@?s;BxFpFQHxzCH+6HwY@#}llqZ&TVZ(V+I%5W)~gG6)Yg7SJ&L00t}k z*Esz%OmwWda}{e?y!J%AFgo^_^!hN-)c=i%dF@5UZ%is5h6QS8i8&lI98)~^1&Ba9 z>9!ZdCD`greLzfA`?8+u(hmf1c4RX!d-c*q-+EHSaD8ix&( z#4g$#AzG%-i&wZ|X2L!y_>*dVYtoe?M0O2)Q^^Wm0w+HVRCa-F{B`hr6lyIB^@*nnT3?p* zeNlYOMBQMN=$dwC)N9MFT-Z3v4q94ZWP;V~EHGMUcGtuSzb=)7A#oCw=@b}^tgF0UNhdG1#@ffkn9PbS31PAy82Hqry z{Ue*Ac>8z`OMRC)9uBB1qrl6e9b}N(UWN_<6+iQGMa5sfEG`OQ?qdT928Wdf51%zj z@)NV&nk@Zi1!cS{UQC#xjykdJ09P-+^(sV+sZ?jWXqYffCS)?MK!=Ozn&~1nv{)ph zM^Z#Wn)8Z$sr(86<7wD*k(d9fWd9JAf>-#PL|);>5qX6lhkBh#`=^Ub5#t~*Lo~f) zs$^5C{vg>XYFg7Jn?6|*xAOT=mU^2ZS=AePg??8Rxq%MO5MASDqMN*zok`7Rf*CKQ zM`nt=4zFPtk}=(^SqclO*!cL<@EgVgi>F&Xz{l4mBAUuuVjx+zDKzsn@j%+^GJ=*l`VD=WOL?(YN{0x8msAVw!%R*$@zE zvglBYS9>OpI_Q>u1Jau_REDbXNB;p$n zEvm`)=kZt{aTQoMV00Gn0K&B(@_8Zu#*Wik<`4ylna7>S7W9EsHK-0-<|zp;i)d!R z#}}0u%|hlHbx|2`!R9j6uea22VCDH_s>qI8#I>Qfqv*s`(LVgPMlTv$Bhuj3xr-?5951bkesLW2y zfx%`eiPuGLe+I%vNo$$PaFd;_DpXkJx!4rn)DRp|I)tc;CkORb)0a`I#;Lu+X%%j^ zB3kiBH0E`YYQKU6jI|>Ro+Ec=XpNO}r-5R}TFzOI<7ElIz~kQ{>0eA!`Wut4TqT2U zW;q@^9@Z~B*h&mWw3^ewfIPOpYC3Zxtbj&AYnU2AN@ZAK`PRLs?l;o2RY_)2F*)`{ zaxA*vsMSK{U~hq#90xcD?%IWp7Gq;uL%-Z_WT$?N4Kf^rJGrmn*lMbsYpL-7 zqn^1=($xcuMi5;e8(?I&iOC2Hsm{n9!g7e{Z5jH_4V14(DtD6QIRs?r+TUoK@h$`% z7DctsnY9Q?RbU13-j}b74)F+Q$HAxFb|#%SSJY1UO$Cy6vsNaPu9+(`Dsp7egL6fY zMZk%3VFx=SY13TMIq;L@cDQY!u!k4Sxu1YAw`zs|6>2^Y>OJJXdLGugpCmmr54;u6 z74t;*^bg~CJL9$!Re)=}fF-SxRObyb5PRX5-VkNMDIsQ+XTt?8CdM|6rqYlSsNymzqJ}j?+@mG!?Rg7w@T< z1{fR4)nGmy9Bd5gQykALqG^Y$9d34ZHR0IHuNJ>HzRqltwoL6qDKC{qk51222fXp~fu zinImv#Dm5oL8QSUhldv&0X?bGFG?9=+yn4W3^DRk;nc3AE)WOvn2!yZ1}N_-qeI)D zWY7QseZb4MA`gVQ1`WkBLdBZEmht4hA!bUd<)@T|P=IWsTNh#nwZG(vh0qMp74xxl zZ(}`qt}&zJ?fKB#q$84#(jDK+eATqivW6CZ?12U1htz0 z+QxUG^BPNS7emXihn`!EE%_eWxL90&Zt2}IrL&%827#5q;VO=Ty-ex6^WPEut!Kc? z*j|dJ%m)K_kfy!^rTiZHMn5iiSKL_R99|??GyD2mV4)D&cDyC}yGKbs^;`ss-XrLb zI-(J+S|p12#~ZoWG2Z^Rc;V)DsDVY_s=j=eA*~u;K4e$!GVrI^Vj6J}1S38}AX1ig zFa$VY@HsvDo)}zn6nHS;DAyuY>^S}Uo)~!{{Ae)PY-nMl3v&Dmd)9jKVNjt8yJiXRueQ!Y#1^bxza*(vp%MJrpaTyZz04maUHpjgF1PUXBStFo z6z`+PeE$9Jqs9aLz2Rd-;oT5R;ypJ3Aa<)N_8(oq7!Q)03{G9lN zk;7l>JfXXN@e@X_svInwy?B9}n6D$AFq&p4r0@i^YiRbzM|GHiZF#~7)C%jJ5soD3 zZF>Yn(|;O4uKw`*qD9SBihuGZlwFY2PQ0`bo4rOQqFoxMH|w@}>Y0j_xtWzcRswZe zF)b{Cs5YN=l!#lIHz@BpY`(Da(#1=}_0Yn7I>4xn9!*?}@kV`3OK}wso`XxVg-2Hw zm5O%!``}urf$+>-iPJzwkZ+y1rS=XJx;JIFIOlvNqu{NTqMlc`+oWd0ycu+Oov7vA zfq)IxN=e3g7(KCs<*ygnnZuzWz#8RfL9&4<R46W3ZvzXg30|jkb@ox{OM}v8Z3Yxh%D(Bt zu^zBn6%I zF^$1hb^16K#A`GLxI6R-bacR-ccW0)i9u%RI4a*H zYMZlOrn8$sIXhkk);SDS5C{S0tq8iP`DRf&5KA7%tCGk6jQCIfkBR?qb;LjNKN5et zze)TjtM+a(HC_W$VYE80iO%gTdS;Diz(a=#exVnm#Z*E^)WdP6fLV z?d{6bnUQJ@^+Jer&gX#K(Rb|z4HjfrZ|cKm+EE$5zhOCPsG;Dy*iV7i2lf_KFxbzW zMRMggPH#0Z(xXP2A zkCJGgc0PB+`zpg`4|23hb;da{#!lgpB4M40U)@*(XYiDanJ>EPywj_rhX&JQ0V?6 zq7BT5bB>7f&oLviikYi8d<6ag?@-FOVi!EVj(#f&>nyKjCWYN>qMU)iw0bEmf+HjQ zm>)F8m0gia!;V7#JdM^KMT?5*$D=UeuA{7D*c@%6cE@0tET;a)M8np_;7a-Mtdh9# z&8s_`?+PZFhKpyI^{UsgYa)Ocs9H%c27IqJ98>no?~cJ>R80QkumujICdYy5VtVel z=!D1mZ8qM?$EjbB`RxzcWLZ)rh_LR8Q$#hdR6K?oC1ry{9 z+ItG#6uM3KM!znS)bg~r7%(0<4H)}r!fD`c9esQnX1!wi=`^~tpR&JKiC2CPcbs)p z_&tn9#Wac&XVUWT6;cj;5BuIsO8A$!6?NVFFJWg)R{|dHct#L#J_KZ{*jlKu^k3q; z2AWjP;LGEa) zM@(RyQUaubo4LpSD9(r8b;XaOVW#eCGrm|8*N!QZa2~U=b@cm>5U6$$tcS0_;=c4J z(LZ|~`vtRc7wws-Z5(A(Hj-4IxbKajNlzT#aN5z)1O5a z4fi|(j*D8k2=&8>1+gIZ3*oC7L2HUe-mxkm^%44aUay_?%zd!^NgUuzhi#`^W96o zYe%!!e^-uXdw&;OIroA;#AA3)$dkjcoKJXLHbkKbdnN9*5G5W%PBY9O1kEyK^DONb zgLub$_Mf|kn-cLCH`vailcu~JEUb-Nc22;MB4{YP8_xF9aJRh4&lwRO4mZgNI_8!W zSa5j8BaicQkdQg%zXgpJ@;lT?Pf2-a)@j^k3U^~TXfb!_t~OE}+`~F4=r<`B!ZE4X zD=#q*dFeZ^>}b47O?>h^<4P)j)SKg;238CsM*7uIS-%>m*H+f8^C~et&OfHAg9U3$ zt(o9I+@Xw+TOXxj{jZ8V0xmw%-Be`Cdy2P z`*5PX4nIFhl#em(c20ss4NTpWB+ox@tYi-=ci>zPD(H_wwb+FUZc%YjKg1PDQaR!t zOOkD%;HjG|o8xgqGAi3cQ1kK@MyXrDD!A(s?3Os zIL*FHuLfmP@~6pqnV+hCLOEDYp1Iq!Hshx~9E@fwbxo7A(%5qrm*LuS2s>2?JmE9@ zemdIDxad+#ew{K=LAYM;UV8?8+>}c)X;*y>u2vAsa!uF&XMfS z{AP~ai?7esQCL1!M`O8nuFMg8faRT3lnX5HB49a#N^<4TjE8pu@-fTY_7< zt!Ej>*Jtif$T_0WTW(t0Bk28%{2@6lN1@k-|8EG<@?h40>l$u+%Yo$R0|!HBiVN z-2lkmM28y4EJpV44df{N9NADl#mG*`lg}b(&6qsga|41-?wknm5{`_ZZu%%s<};E{ z>;2&n+7(L^)&t)(eg&JD+pdTmi==N${5e{ z_#m#Ng=A{8ZbNyV)7Zv(Xx?b7hUW9eay!7heV&|z#}((xS&W;L=VNF92{BJ=E|Z1GDoS=Sgt zb(+gMnfp|>sAu`!$N(Oo8=A`*dVV+qi1S12HHd+Wzd(*v12?UOd^`&v5)sjGuO5sg zd@CuMf=m8zGt~tx!4wWsK}+=T9eR}?+e)^zlzj}CKrd)58>GFYgaAZ(v4*O*GBsoF zZw<=cPt#kY$NO-MNM?e4>}@R{gA>%?o$eG`=9fMsebE+6#y+(|T*=k4=-QJ-*N#fA z+(u0HnKJ{4`?IL2een(fOk5-_Vcg7wE9AD%g?F&LU{`^w7W=U|HnmgQQCBm zRue@h;hh0D5mN%8MNb|@~Kn> z&GHDW3~E*`YJ#a54vE*1&;A0wmHX+R zUqDpcMz4MWX>uEt@#AwczZBP?4cC7uE<+n8^J709_!2qyO+1Xh`zdr7mAyj!_}6xN z_OR$lb#`JuxtlHo5&`~}ooK;AdUmI{uE{c`*41h~CVGgHP=-7ROrGn{=s1?n*o%F@ zcG|jEoEK(`1B4q}ZRf4mpcN?a2a$#~JCcl;udD+|;6T6DER}-~3P4&^`)5>pIiD7= zUgu9}8_c=<8A%wq*NhOyJ5cB20%o@?by|VH*$A7k{=nVX&uWDNGQyqLL?N?#R;&^O zq88xbglz){Y9rHPu&5jj;y*sLN>^Z@0@XHd&uk}8zK9bttBg(-9Kj0qWQh z>q9Z^;a|h(Y)82~UGI-9_~fDt$HU@n%=VHkwya^89}8-Blgy}fWZIhTZ_Xb#WrM5J z>~}ud_RiF=zxoD1>YS+DLPgO%SLu@aAj5HJkPG*U6?(Ex;mo-~UV+#>5|zHoN- z52M%pR=V27YG$L;?x#1>bJ{=9OpO`5>$_ zzqj__yC*){`%7UP_aGi1L_fvi1<%3Fl-F5aY(k)&ek+t3!#c|z_g33pmtwV|Ju++J@bDF~8{EJ*TmhL4 zZq(gnIug5dm#=1Qh~qgXxE}lkov^oq$68BgyUV5kcm9>~Vb7PQA*thSGCe)osZJH$ z1qE!s61#{)^zSQWi_F*|!x(jn4jI`!uqtk*+j_`G5FVcIA#Vs*2MFdE9MX|Rj`R3S?cM*6N254Aj|kDRqE=7Q)EFC75i!WRk9WiuzH5D zkFPfX2)KzFK6_raPH`xHFPO1aigRk(2LO+R+Hla~CtNJ!0`bf*FhSWJ)T``^Xllno z_5g5U3W4jw1c&D5nM2Sf&k#^zrx|aJcz5E8m*xiBAXb9eDX{&sk6(Cc&YG#UG@T(3 zglz3XnSjyA9Mr~@N>AS`)54`-sI56}8!Ev0;?`(CN2kP zYy8b9aAq);Dn-BX0avwX#u+75sxgiLz!8kx)Y6eF}g+79Z?cVR&)O!BiH+9Rab7Z(rOGqr*N z#ycNttFU--KLj`(_9=h-k=s3y&#{UjP{Fyn;@x9Sg*vWtB76f>hD!#+{0c93qX1I^ z=fof<`%su2d{PT2aIH+gi{og!5&4A)lB)|O=r?FDWHgy&E2c6h!N*7Ccwr9U+zVjg z!9G-e8$E}K!)dJ2jRbud4U=BER@P~Yc;c8AJhQvvJ{VjbrrHWO1wN3=*MHg2(ZL*Y zPI=&wPG2ii!rZ02{<^0q;*^FbgX$^H>!2yBk*cdcbk%gas#N)^nLPBER*Vq*RzXYD zL}U#3)S`vtdfEsv-T+~0%nU+T!{{;si=#03kBy)c;J?5D;!i|6Z=&(gFJmZ;pwD*W zm)CFOU@$vSv5vVF2m^;8Vbcl%>C9Esh5;jMvk#g&MTn|@;XiE|fccr?IXaSN1~~r2)6s+DJTc5b zR$&HMDFR8F6Y@=GiTZU6UKJ7IngG1Q9gcZin3)_nHowDS7fA*y4EQc$))H`^%UZx; zqO65^Cm2eU`&O_wJ)X=D6-RMZa1?-y5(4v*o#b19qFlGPznLCQYoo2nee(}Fo z9WHJ5|56v*!|VXbwy;HY4gJqOM5LkHWMKtQ}Uedwg`pDsUVlzZkom zC^&2d7UQ?Gd`nx&K;Zmp9#+touAyQ))otxOTOY+bC@fVK#8rq=kd*WsrWbq3`er%N zJH2H42G#UeOO{&pw-9#U1^Z80Z|b$#>?H!FbzStz&5(~i$%%9HTu1jr6g8g1EG>5(Um z{OjO`sk}1`8&SgH!;i))@IiEf6}@PMWvz%;QZXwKK#RINI8w?1)?mGlVjDNH|` zKE)^mY5e`NL5HENr;4{<;s-0TF)-ut4%HHVsMyx*k_^(rux~Jwf3p5@#Ops~P~WFu z^RNcU#{G`Z1O&)r3}N0Rt;}LMD}Y^C0y=nxzt_;;N4}=NgW&KTB8|>670EV>Obo)w z!k#$X<|VJuD+6Sx<|@tu39zCX+A=`i+Hd?qq_gG+o2AOtv%ooxzq9xcZaf?Bpgbk& z#ZV0THQw#X@>~vhc>2vA>$LIPG1J zcWw-%qu4CFW1t*%var-0Q_&Bcg^?J>2+ekCVwpQ8&l%3+^r_UzqUj(y&VNL}0LpGB zOC?fxb{?QO$cuD|C2gmo3%O4(a~>z8@uV5LPb_iAG-kuJiY&81fbcKbJXqGN8JoTX zd64dYK(8Zvc^E=4kQ?sN*nHW(sU+l2SUBFsDW+ZDWUcpmv(H}xK zzzwstIfGxb>Ci(m99N7KYbwXkyYFGyEO#V^0}AUolkw1dZd;9_!&PYEKV?p48HV1L z)nuX*56irUi}`b$(yC&VUG`L7JE}l@3tsoK!Jn$$ohjp|lMl<>rl}D|qiZf=mIR^5 z9?mb5_>VLF6|KBQ-#!9s>uzfLsI*~q9{ea6z^NJZ5`MOKE}cN(1OR0YvzW^#*{k@$ z<`6KV_58kDCn(OdAMdy=&Hoq#sNxxP<72Wr0MB|1lG6eD?lIZ02H-NCv#ym9cV;)$ ze;g+=KcVX%mservW<4%%sJD;LOW^C%#?_vVYWYAk#CfF=Z5I3}mmlVEYw>_SVrbP11 z`=_j1XBoJY?W;OMddz9Sld^54yD*9{qS`p2ugyS>_dO{uu9U0tjTy*w;z`Vn1CeIc zykS4!5twSc~357KbB77904J#&VD976gZ{MwYDTvce3} zsmQC@vu3={aWxKAjlnxJ-b!3`24~^n1dL)QOC_edjI%fssnp5hFjb#J(`B5+>2i3t zlcy3_{bF_nn3xqVw$Dcx3`gukW6n5GDlygJi;$(J&f-Af)+=G5pORl_Q+sK}7`pcI za5&A6)C-_$VLyOV)kU(Wx$$+{P$Wa)9j_y=gN<^$$1K#5uAZtUOU&ZHYs0Ucg>^3I zMr8e{)QuPBR>^{D>GZ=gr)i|7V&*w<_Ivz*5Na>umreSYf_<15kGJUkr)AxSTUa!a z_D+8AKB}BwPQ}P8Kd8(TpOH;!mznGa3+B5`y=al@Q`3(FvJk1V=}u(IeQu6|#9C=& z(3=Y;9)-72bLj17z>r>@L!a{V%{g=o&$=aC2!Zg=DHIW7*78R$TPV}0!?RMJx0w?- z8VK-Ic`TcweJpzY&g<-{c{K1@c}e49{*i1ispOC{MvuR1zQM0}|(;&^Er9j4QHU4Q1b!n$xuhGjv;nldB!8zPC*@z9Ac&yrnTllOZdAp z{gx>Zl>fZE=9WV|_&iAf`V`)Is#OAA#PcXegPwtR&Qhs|i#SV`?xB-KEw>FDzWfHh z`0Od_0a}^OFR`;nWmhYBZR$8orkrCDKLuvxRHw*LTg2<94D+dz=a><8fCFq9-J67z&3!&y1VC|+8!=MBpN*|7W^+LL6xU8478)5}EVEhL$OsM~G z*|E+p0D;z(K`0}~XWBI#n_KK^{fLy1K@<1OW(7`k1Dx)6q8s4NiEe*ORw#;ziJe0%La-VJz2N~FD(DE;2tAsD1 z&f!*bKnME$3t2m9yibSRgCf{EBB=QYnbwlexpUwG&22v7U$7G57rRREAy~!(pTf6) zh-CVZ27W2ilR4gp4TZlhIhm%9kPTb@SzM6`%=}uaqxPqGPmW)aXbBVP{=+h;!xq5R zU4<>kpms09HSZM~{Gv<^jFPOxH>`IgYw58QMlQ)aHT4R|=)AAw1s+63xQRxFM4-No z8(1-3@Jv203`4AJdOVo^9SNtvL}7DnKpfPz$v$oaBQh z9y65%GRVUaiev9qV^I%xt5u`Dm_mof;mVb$@`ARGkr$X{pYWDFuhHQRmvsW4?q5ThQ7x3xT^h;>_SxW=O)=|Cb#0kdEtE4#36a-m(H1~q%j#c1 zdA(XFKWtWQNuRVCP=b}A&_^R>US(7sFLjEPqDW4qA{(hlnzfROVO_$P1Xl7L@KQm( zaXIU0PQMJjDfBkG^NpN@#b8S~kqM$(FDEuJ0yWB@=0wN^IEz4AgCm(*J?b4W?8olK^(7q;>+E)#fMb$zn-lTiEW+R|9tOR8ueRt5vtod%Vmjb;E z!rO!Ty=LUniN3~V+}+>@`V4Wu@y2=H9rIOpY48Web>=ZifkQ?g@8YdU{8b?OsPR6R zX#WL_=|E7OJB*9?Ir9sn0jC$;VO+((x7@)RCrQn}G}P(ZUSAs7wH)spj(3G!E6yx% zfQ0W5zxhk!Hn=h#|I(NPpNyHc%n#z6tiKEL-)&^3sFTa^z~>X;yc}6yNP6-sBL_IQ zR~T2D2fcLsE8|~HHXt^95bKY(Gj1+<05!O+4N`BIaNp|;Fnkoo9~i~>+;hS=Mz&cF zE#eg8>vUZf<@~xZEbAyt2kr%Y3~|%@jHNZu4!(yjpaFp%=$dS^S#?9cxZ1&5wp9=L z@iGinR;9tJX2?sbfzkqjHWZ6kvI;={28;Nx8Xy;#%Qn*6^JSyFPXMI;U$Mg&P`+LcD1pC*vbtI*>vdbw&wd6dnU$f?r{k(}h@sn6#p$!R zp$IFDV_B2KAvQ$k&VS$#Z~kvN#3z-z)cjT1g0_yAjT+5k_K;txan;bu=E@+{da@t4 ziSl|fat)yT4IW-rEtIL-G?X=91Ak|PwpR;f(JGDZ9V-E)Di3czsmcf$XDB#YHcB7A z4kfBkDSckGggHiYeRJ_gH27tiVsxUXCRc^KhOQ|F+_SuzR9=&oj~jb5CFvmc%0Rla zGK_os=Am0QShd@$_d#wY;&sTIx7lrfIB*d1IBau4?`HvRWwf)@mrrJ_eM=e?4oy zt_})L->Ior#8dBYh)>^E2gDrXh%C$4DYdfv(TPf@Rv}Asu@(u^CsiwPQNL+biwxBh zJpKLEsHMu1LguSgi~OLa!}NL8bIMs&i@-|x^c2~s(c!VH7l|Qsk=nRcqO_QWyDw#n>vVBb}_K$bLt%T*hQnrAXDO^dj|}Uv(>T zMt4uH;qEo3WlO-xzFk3IFOh{X_+R^hY>$J3qd$-@hFKuavQ8L@840ymdx49;?Fn0v zSep}TaV$rj_!cK-a$-71b<~OLIgu}mNlfGTjyiD%C#G;>YC=jR@tbI33Sa4}bN;e5 zjI2qVwWf}E#nlhr7D=q3V_$LNL{3ySSvm|BC%zWVnXDsXapIzAVv-Jy#fd98QMD;i z$I0Tvt=m?GosJ?g(x_vcwF9?_!wWhsePcTkQ#mo70}|-wFXzOToEWD(+Z6InbK?1& z=u>7ml{jq&661k(gHJg?h77S^)+FctnIIj%`KXJegR_kHeUu`hn;lmGI=pH?vt0{=)f2p zu}{LL+5S8l0iY%J_cn(YhKj}ozrsC{F986;p$|742CSFkY!@Qk@%EV={xyufk(_)3 znZe!!$k1m%D@R+_Fhd!UD zGDPINZXz3uOsoK^9%5DG4yVKU$k;RTnNRywY|Sc$DuJGC;!+5Rard853j9DeOu9is#j-nQG!}D@_eV?wz*w(xo4!eZ*P?Ke9p0u z>auUu*)Pz@Q4<5IqKLRpA#0@BBnf3)b_pCt~CP4TzNsj!~ATXu)&~j*xb2VY=iKd0jhn z&$M0vsk0xa60ss(}H2$IDiuc_i+u-Dz|7Ar>sU`hCh17{)>#T(H@b(%=!}XWbw!kd@ z25sCTb9FTJ1v_N@+9=mv&mn|BaRC9WN41X_h;F{AOx}$k(ml814AeDSWw+!7d^1%u zc(eszhJ(l18(ZZ?IKDY?2aFTHY?VD|=ME4ZoUq(GWqW?wJ7s<9S0?L5i{kn>?BW;F zxH8$wgY)jHmIh{~i%#t}(`t`$``cA*%^1$tdmCWY*e?0X4K(SlC`jF!1+->+q&0o% z*=;fu&7kXCK#RA@mY#A~1Xkivv#Yrzj&3|^w&CZPqh`;pU8A+@SR8N-cR9B%Cj@~< z);?nw!b$3v`s1-iv1Og@Y0MV!e-}zQVP3?c>hIbKlsvzJ#_g1p`q2tZlg3sa*ynhh zX5c-+Z`5Izycw=)lXl75e8=BKhV!iD6L-tbw0<{Sb#DGl=J;qal3T|n@8jgnoSdza zACLQ%f0Vi^GPUx(@g9=S*C}l>cxYia*vW})tmOuNrZRKS)x@s8MtCpW^;yjdOEuN( zAg`_qKf(gX9TG9%3NeTt`>?A&E+hZLJs1a45Xg*%c2MqwpLT%D;8OZm2k_fF_TaSk zRJv*}&c&VHBSY3Fd}k9MN&q4RN?Tq(8f}w}l72AA28z7b6S|ZY)}sq@o?CQ@c)P{iILhBI@NWc#GNt zZvLD0fcNR6y8&A$EyzP)a-z~`{J!}EZf02h)?euEYj)s zHzf;l`hC7+`AxqUJK?@L|6yw0@Wl@phBe*?ArH5NI4!~_^aZ0-Q9YxHtH%rBFw6%S=7?KR&lhew+t;jEL)|6a`~xFH5Nidj>yJ854&Mic z2MzH#y2J_}$=Rm=#;6ZxlX=;0J%^Eet|ZD6k-QCRG3%bOh!PD4>qW)Ubldq|DyLh652%p7>_T zQe4q4?ImtL>CFdC@UBu2x+$8nNTtlHNWmE>G^&kzp3s$}$pAkAchPcVam-5E^HiDH z@HEQ{b9>#;b75Om(Y=XIZW|4WcM1r_tr5IOg@21Qn<8+T{p;2(cJmbEy$u!wRTDhj zBJJhY%~q|$IU|IR!x^avsBr+*)BrwlcMmS>`0x6P^GJ$rEBY`mrVn^kofeQcxx-#$ z25BR6*cs3nkTcX^qQ|g$IJvPRBexH^VI{2qy+0;1UY*SARpvNkhAFio^WK=uxT3!yu2aPaurHagxoJPZm5eylYGju3=;Yf_xYf`D_vF4RY-!4QNr z@LJB-OQ&J*1HIZPYCvlOee~-xy!OT`>gPjyk8=(H}##fWQL=PtSbUXV{-G z^x3`S^WALI^ZV9gZK7vaB06&GW20QWEY8r+G1E^U7wrLzI!x;^%JCXKn6Ff=vaDXLv&uv`BpSJGocQPm1 zx?N5uxsQsCpF{r+(Q=PxyP5vxu`GtxDH3%tC344ihf_KxU!ZQCz~(W}oF}2z0#p%b zz+v6Qhm#5#=Q?G12y7>wi%?D;$2+==7u=8&L)ZJ2<*3bvTm z<~;a625>ZFhGlyMR9CG{YIjP4k7Ac$+B0x2rWE<}%rVK}MR<-+4no=KMqBSXCF`TD zI9J6Xi*RC?!xuptz!Vd;oj4m=cbNTpB`egx9& zgu-Be9|gf?wiRpy?SdBwKp?js=w?!&5w2DYqz9T?erDTgI8&bx?jLd&1RWVsp#;)| z5sI_TZmMoS90>#XO-vH;|m^Qis33h z@H6xh>Oa`cU3{ua1i}!!{{$2U<4-_cj%q4{0&6M=feyb^fX zDG3c_7K;J}!DRF~Y})0RhscHFe{wbH z<0JEEa=?c_&TNQQ7V{8S0-YAWx#9O6{s1g$-o)+;Rg$NlsWnv2C^`itN`(Z()VPi@e9+9bxcsl zf6JU(zg8nV)u#`_!%Gbmj8IIYXMu+~5U0h%K<=+Up&=*U6d>{>qPJr=X)n@L8 z?5^6;{Hi_`)q}5(kxI&XaI2_>~ z!voz8-xqhl5{F_5Jcn>4IfJtOS1VHqD|2^aK0y(jTwr~J)`HCU8yfAq z4R9zPl14vam5MguYGyZBSJ**%?v=W7Qj1=~ewh`tFpxxXF zOlT~HLs(i1C8#`Ewg*>+qCZ&93lVz8`KZz6!D)=F!cbB-z~So*k_tmL70wcDgk~Or zBfl6nz)a%N1Po?6YQBK)prauOAy7{T!dZov0|IcSv)54BF=_jUd{$C08DDC05;E)H z8a0`ARf?BOFw+NtV%2lzKll?;(Fu&DJ5W=P1XdC~M&O+I%A}=+%pGXOn+Q$OSX0=p zfQBcf9opUHgk{cs0vu zJl5+CB^bnmzuOrDuxuf1lL5AA1bkS=)CBfmwZQcC*btc-cL!rY*8Z4N2t&eHSGTXO z{{?IbGk6A{9|7Um<^#b5HNn&}tkMuNXDp62tZvOX4)^sGkOy2q=H67bZQUCFEA3R2CyIiNhIz{?K%H_X>&6i^i(; zXctU6KOD7r}GFi-1H{cg|PgW4&6Nu zE}jXsS@Pi*kbagX1bAvNuTLj=RtD?B3<0*ojJ7Dgjlq6L@wfq$cTb!Sg>Jw@SDb~> za5)V+E1QM21kK}68Z$OW3}Jxs-deI%cDG8f12k&B3PN?Egc!2Cj5a|sPP;KK22>Sphw_& z4;upKp-q3t09Z{io%}=Q^2>x8-a2?LoN$5nLiKxqx2by0Q0ZeQtn{XYL2uan`htBJ zfe=b?MUN6nfC47Ipx2HI*05c{IPD*zNi)JwSWl-iV!8W!fUtUNmlEjORjaQvy!rk} z7yBk!v~?h?X1HTr&^*JN&h4d@hPN?hDAZ`GO&CaYJ%Fx*X9YrfRZ*)%AjC@uraWg{ zIAPJP&fspA%W9|At$|@$Qz1o#mVe&v=u@ zdc7%k{CO4sO%3sp8vK|u7eR5STos{kSL=e;=WUJ|3_FWz1#^6mjOyV{vD4_Lm}#`c z7d(%%gDs!$kVZbHiyNeICqKdAv8zUnd^?ZSY^Uc z#?=bk(J3%|uAbKC(AJ%xH;{MW0_{*3JJT>pK$~ik-1+AdjVBmaJJrXEN`+&{F)?$b zE~r!SthVT}>Zc1UP}|5Fr}EOxao+l2MfvEa>ONYjx{t|>?&m>speOb4_+SbQeX7nP zeQ~I>21REji1{yDjoIk5TDe_uzcEm;qzHQc3sQ7i3Yu3f#k$D@#d1j1brW-!>jNc1 zAsMB_b0{AQxc^N0|4n_E=uUkR%0G8h_*676Br$_xRT`CDtA?Vt$c2b%6X&RkY)D-PDL{;uM`h5pPEpI&bFW><5c%nBe+$%CHN_efndN0NzFcY{V z*bC+Ov->}QWd7)Y%waM<2d2978MbY;LRpqK4~*|Mr@?U709??S+DU=Vu#@6( z4faL^y(p)|iWVVwg(&_W=!CrY1pC;IpSW&xlqUlPiYMO_T}dix2uG?gW0&b@QFQfB zi$+Si{pfLTMQQ#(Z!C216Q~hEK_CwUo*nEI=o7pLgRUqoLc%con$)_6w&-Ns^ry(-}Cfs1>`PK9<0-S$TWeq9#_*n1N9Q;tX8O zk`o;`sLP#!)u9=jNfrH$b~@k9D!5IGX%6GIpFRvRrc=yDe~iJGh~>M+@-sr-ocU68 z{W8qH&cQf48G!ofLlZNceq^R7f}Er9w8+N@9e->;w&;ovgCll9!>g>zE z(S}Sr2%WYYz3GbHbVF}0hl;pAWb1{tbEON`8V=n)4H+(u|)Vl^*nJsyF=(Rv?5tS!hTN@LRmpfCBtVeu;yL zs5`&Z4D=4%&o8}UE$YE9tjKQ8FEE=0n(+(U85{A7p$9@w+=GT)&#p_EsooCRkV~9_ zh4vFeIuD8~HI042J7{p4w-)G5-@t-Rszd(Z4_X9ObMh)~ImRduxMQyUG_oLYxZ#IT zib&djBtILtYC)&K^FxCJoDN>?bhsx!fq-lH34~l52!xV?*YPiieu}DjcHV$JQ2?gN z>w*E>^sD8d3SO?|9)d*#2Jj1`<7$3kbX>zPjE7NHPD8aFYLrdDm-)d-bi>=)&YxTTgi7&fdgFo_zu%UFy5 z1speE6a+;>wa?e1VsMp?5vqQ^kQG0;hw8FZU7k2D|12l@pBF(d4_|7;^b*Vpzo{QnyJ68I{Ltl#dw_vYLsH#8swl8|&lAYl&( zvJ3)OS!I<`KnQ^V0m3c>kZ~jd*%uA#L0NSeL3Bo(&v^+55*CH=v8oRl^c#bKgCkF1 z1|)3q{ZDn@XO^eIn|5rdx58g71WQYApBts)Y}i`7axqQV`f3idCgy|5>(k=;< z3*~7ODnix0#1BG_uLzZEgH^t0c5|+c2&GiAGnTuA!^Lt!mAdGGVks1yQ`@C&J&+yh z6ibDkw+pQ{OWL7MvC2d9fj_lv(hhdYRUV8`rJAuronoobm+eBU36>oy*B+zLk)diw zr5&oSLVhq*b}5>mj?zGkV7(ukTVs&~rnpfsXpl@KnM=b}-acuI!1D^VHsz->eo z-KI^73VpwJm&vE?`C|Q8WE|6ih$lb_8Lc05UGQ8aTWx z{z5)d3lZ=#i@*)rwmXJ>%cvsLjK0lu;Q+a&$|} z{{TmqjQ<2j-(kVnA)`{GGL9}7|0#|x!MyKbWTgBbjw2X4+eD=Lc~GIpW&VJ!Qi+5_ zc2d3HJfNfQ?S(U3mJTY*ljTf8=^(;P!e#?dAG&atoEqQcKxcGIGjzTLO7vv z)?;Nfj|Hy2m6o#vYxt77s0H!}j0+pBESfmw2@5w6TOA&)!dkiX7c~d<~$j4+;jUrXM1ZxAF3s#vZ26&^`0b@*ACPux;2H=EYR;?IQYzsvs zP^Mqy%s>+x6B)R|L&_o@kmNq1@*zb`Wt|}f_aU~cPsvXN#5xLdU%?&54Y4g(1P^OF zHB7)(OC(7_3}&?EX2|T_-#Rv&O z{T`DH9LanqAWZ=BK|6VR$B)N_S>yQgbV?g`HK#C8y#28f;5s3OxrV zD+wSLRdM_xSDeOoH!3{ekg0EhU$s*Srr|E2J^`p{U~h0ie3_d=TbF=&Z@K4Acz;5B$Uf02%3d5RcZ*HdT< z$^_pHqhBZ%pgj<$T(*Rp#^i-I3r`#a(!#=Sq#%wxw+$Hj2ACNJthh+LY=KuSydtoI zl@+i9Y!Iu!Nt{B7tgST3*A7P|qaQWV-m8MHs?2h+IXYO!RtTfRNxej20%Kc6>9PgH zlD33?1Yw?dbc$udTYy~P?gOwMEP0zLz=ifR3spcu=YZA1zBS-#nbvd7#~ zlw|qDK-kknOG?3Y%IKP*!%)6>La_=JKs1!H$|C|@vON&?aTUn&C}iyv3tDMNP>bA% zbpivvd5iZo#;tQW&f|Pz%E(tWU*?uVhYAg07kJA#x{lsRn1pVn19+GTgx&?xtVj>+ z{RDea93ULYvP26F9U{ET#I(`Ug*mvS_yveATyQ%IobPyA=}K#TRUxy$1Il#Nc3vw< zY{=YrnZkpTq{)I#@o?moTq~3$ZFCjaLjD%PavzwwsZB)|8)T2Uu#N3WNQzM;SYh2g^Dqn zp`(=7cqiOJE2i8nqaCIRVYd{2dlW3kWdytgD_y}3h$}@m@8L)RE8s-LVv+OZvdqZD zg;iR+9zkjp2Pqtjdo5rEd0{iK3zXAb?=d%cQep*rrqf7Z8!+24l_fbcl+ju@Hwui+ zVwaA5WwHVaN1eBr;Kxpr0I(3aiT)L9Uhr74II2iC%;;uas6A!ly;823CE!v?NR$ul zDw+wC)ld?~P;VfVnj9_57qCvSo=H|aEuV#@&47S(YPIC7#+`Cn0(xL>3iO~0MOv#p@w&N$c)dc;8TlfZUotP54ax=@zY9?EiGau=&5=FqJ$ z6CRyB-1?Q;Vq=e#uv-&jN#S;xwAEIkK>HWZRUd_6f#MDq0=5`(Auukvt!>qv znyML)5Wx~spqmZ3t+q&;GDPf!MbnE1R^75yO!o0*if$GCEi-fwmbE>^T-b%wL!<#y z%gwq|ezMTZQFIr2Rd|HD^vJrTM@P- zcGzC{GB%p2MufSpTPb@{KA7dF11dHPq~Zl;YvF~B0Z`mnRbWsK?W2V)I;mYF7mmKgh-nRPjq7e* znCF+TJW8VoF@iVR&4XAq+Ck0C+goCeXLDYd8{0C!lG2S3TEk>D)mjE|yV#y|;cKt@ z+M+fR*bK_%Pr^ucR)zI6(u2ie)A~9$bvf+ZBdkz9s^`lXlsR^Y>wUFmTk;QsH?rs5{2VWfOK4@ro`RPFBW*V>hCVOOr~hYgoYgVc|_u&{#@KxFX;A{rKHbiA>H4l?#ic(87ZQ2Q&zi5ce=p`NV`= zWrh4pWaByre2=_AVa0-3?C=)z@SxEN0v7fzV0=@aDA-?dSOVCN3+qJcOnrq0hzs@} zZUg}U26=4HR*M(0c4rN!&ME?|vjrnoI;$z26+4pfFPk7CJE_hpm6Sagc%v@TS@UHP z#4@F~LfUdRVc_Cg>8%(RB);_4fCaF2XGI|J4Zs1Xvtk>o+Jqr{TGb{D`2e$vmC9>) zp`(aCQgv2TV-KdZQqvM0P+(AkEO6By%BVK)prBz2a4K%cRTWf7jp!%}6XtPWC|b3& z#Kd;`a`_8e;e>9Gqug2zu^I&l1=I-~PztE+@7%Es5l-Fc)`sd=$EhMxVoh3B=nQ8< zaX}kO)W71*Z79yZ?Z!fYmk+j~6!RlQ0uh0*@k+pnD>vFu3mn^+-j@34M~h~*rH+Pv zf{T7dZ{ijx9@3r?YQHBdWatb~wnL+l;z!5DD}bvy3fqGxt6*6Og>n|lSGy%PtV>d= zpraY)9^p&aRb~5Q9T^jia(_&JZGRk0kOIAe9UsYM>SpP%YXCIxGi=9HV9!7bgti}( z0+p#qx-oL_LKO-2SbpqrQwbo7$wx%gEf9kJ@G$L|*j#1DG=35D2x7{WX95t3+ZL1z2v8`T^Kw z+DR(`E=C|!Ms}cA0^OlfJAvi3OCByuei*KbjcL0Lei2ZG!$$-Hc8;I|z?d|IAs?th zxUAUWCA<=Op{&?DC<#31JWc{gqmsbJq{Kke+fW7FpaFM+pabfW2V<$jJiPp9WkAER#(b&X-Q8#^0%vxk$;M3| zU+PA$8)ZJ8*PVJtUBkXg^9Fy}osyC8R(Dz!b4yMz0B}eLI2V9d^#G8oe76U+F>u`1 zV^7h``j5Q(DM%qF_`jb*clnOZo|M<_pXz8J6jvzJZT>6535I6=(--JfevX?9yM$cA zh78PikMT!6X{d3*$EWtXn)Cg}I?jLVMYVn3;b1bTp^)xa&#c5BY>5g-sr|DvC8$|}#C$dAN zA8}JS20rr?_v%lB^=n1j`qOCLxaZ?4&rp-5_v8>Aa17}LIH?T_Hel-GO?Z1Pe_w26 zQbVth8IGRw@wjKGX}(G$qq$gOfD<5*A37*W6eVX`fxU=s?PqZcd-0>{WIM4&jSdF! z$Gk70up|QW@r%k%oY;K?o`V^MSpW_oXPZFjMveo$Tlz(`nLkGYzknM>L{jAxw&aJ9 z=QZa_Xepf7Iu3RNNM6-R5KV$#mSEvAvI8|}VwbaQjVFQP1Vc575+DGT0T@VbHdM*o zZ_f9dazw^a++&WEZs^s&=eM4vhKUOVlJK?pk`fvNq*~}l;%Kn4`TXOv)JR{%aRaEU zzL>KI&`AFhK@7%Aa{(V8pc?+p0D3(7uArg>C5!>}cOFP-(jz7gq@+=0J~`q8!^jbA z8$-I=hzX$|JP=a=Ls*7tCjdZFpX!7vT-b}mNYP9I0c{wHYJb~^j6orTisdZjs{`pV zeJQ66!m9o&zQX!nPT{zSo`SYAXR3jc4dL=^v{6L1d|K4tO7`g^x!8x$L!PEpd*|r`GI$yw9 zgQ>ay)e7XjHki_?pHh+$(1vmfZFtOu{P|#N)64DA8wOJ%Ps>#0d?S%Os0EL#bx93NrAAyK0l6)D-A^n;*;=Plqv!zc|{xIB#F{VT*9JOkcUhg0)Mlv_oU z^awM|MLb|QHS#HdMkg4=G|Qn{{N`|K1|Xjer<8^ju+=sJkGWVTw4e)N*PxUNppr=n zcgiMz<($CUkyBPS#iD=B$fj0tu){;2#ZaLn6vMnCT|!!R0e_rLPobjb2(wr%+;m zS!Lr(diRqfsUZ4avVw-uMhF16t57rJj&JQK>TSPbvEN7?z~Yfc#F_wl!!mGHq@Fzr zTca@0>>mYTaRHZ(3KzXTUmZ;W&ded7KO(ouIaC)YSd~NF%6pP-peF&X{Er-JY?obC zRnVCz_4N9~6^N{5Y(*_qYuZP|p!`cm)B46BT%ib{K#{s?02H~27On163LmZ_{)@T) z80z@T;=D128cA1n;7D8fY!gx93=DTT3n}zl0z2B6Ka_J4zyG zr$zJL(e60@Ut?)g!~d%U1&p^cDMNoZFnv}!W6U0)Jy!Z3bzt8$o}EicF^VzC_$+oU z*Z7@Ws$Ul@!BF#xKr+tz6YDLzUNWDP5_!$<_y7j7X*N@0fzyI zUfgnzH&^qZanvAK<_jQiv9!B}LkZs>O^@)K-+DV;K0KGIC44o5Q6~a2o z4WM3gIdCPlGSFK;9#5?k9*7}HB4gB=K!sqwMLQ;tTaS_u3@IN>qzruxUz|wYYOFzf z0dBacD6|wcG>Pic#r-lzS;Gegy(6=qfmcYC+@I9hi7^CYK;fATyk z@*!WcU;e2yC^6!gT3pDgnkuA@skKk2EtpDekz)5$49*|&->1@Zc!j1xK>m=YPouf| zE-sr!8E#zZT9xPIVNBb_z4L(GPkDA85P*B@WvXk08nT{8X)%Z=rbU+4$mMP8;&aoe zM&OI`NR3n^q)nd=EbYQoz6#PyaQSzKA$e6K$uXLn&!igBh2=pwQa57;)sQgoZ3)}@ zurR+JR$Ms@85hi;+JVac0?%uwDScQNZVr*WE>{i%yrwh%4Ln>|Cux=e|2Bdm%I>zq zwmvKj2UbhEJr4^r?65B?hoKz(UZ6j?Hrl6v){Mi{VY6S3ir36dpl4yp_;H(?eVj3i z+Eu{`*Y(ihL*CFj7Y=LUYqKbhSIwf-=s$|g2rUk%@GU+#i*R7N3Vy>5fdq|y@D^|S z4V52redRaw8=0Goe-R|Vk$1mH?Ln9~U!>og?}5LFHVIlm^loz}zx!Ki3Og_U`nPER z_t(Az{*5@GdWnM{i8JseT7+e>(w8Vn|I^ypAjLm%%h@2)_j%H6h?f7wf1XVZrCjG` z+vy+7qfI_F{bkNG@dJPT6y*CcwNf zS7o?uF13Q|zvt5L^-cWp%d`jmtkXP7$2q{c^Dxyr%%9DpsdC#+m-&<-?-}!{dDXpY z_;EM_IN%;Go==CwTL~bFZ7A>M3uuNQ*t3vQjhj*2Xd!iw_sPSaM>u~W72VyIc*{L^CURu7Z`qS@sST#hr$e3u;LdKC+!_93u^n62P;#wf0{gr1YK z&0Ip6^8R88wW5<4vvA`an@g!lxubK~;YP>{OQ}_jk0J3iaJ6~D)n5%!uxfDQG>QXD zQBJvAXc;7cb8Ic61F07fvkA_7l!eeH+AekNfx1+>jZlmnG>xp?%c;3_AWHVLc@a^U zVG9QXU^Na~=@7>*@UNFs3*7u;+e|9YeMKvmQwQC^#J}LLo>>0=6&wW@BOk4iBFooFd@U(r0KRfhkB9v7%0yy_E9ew|(bH+%hcbdyi{Nv#2Z8x@*SP5+ychk8ZyrL8)?MdeAB+1Z zPX9#QH@WZ=I!udh0nQc||M(e=rq&cFN_^bZqVP_|I}LC7<3FCF{oYXN zT_pNvG++6guJVA-sj%pqFX#hTO5u~HrX$*kPNrtyy>Ex@&Yd(mcT#TNtaqQ}KcArm z)h=x`1)5gz=H7p$1^E{i@7DsRK#)H}K;Wf?ezyevkc>lrQ6D-QKKyZLDS}S)pO`ys zTJEGV*67@v38Spx+MzC{Rt1UIZU~oPM)riSk{&QeiqDaYgexF6(t%+yK=Ly z(4j7O8>mYjU|_!|wJy?eab| zHFwOIoT=RWYpTxw^$o;{5Bl}ffpaz^G(%$_i8%7pBZIefE}8pb1D3p~+y1kR&)y5nhuhc}<2 z&w1WCN@o6+mhy^ksWD&u7L((n=P0Qt3qKQ8Y^QEVY&R;}VF2`AX(d}*qO1Fv;MIQAzR;6DX-L%4Sj;h8^CAAkA?Q)>kG@gaOd+y##N{18sNN#p$A!QB?& zWkY!VO{()iecrf9v5g`sXwA$;2Wf7BS|;X9%G3IfG_~eP8=q-vLMJ?2_r~$&d*q37 zFjDSO&-SPcLDO~tMoXl93@{QotBl469~)&Vl6wYT34)|}UVMvU_ETGlMyH{a;1o6e$BxQ%`3xKd0WI2EJVg7p!}Dz#WLo)yJ4xeK>mzH8tT;d|aaA=TYB81WC*!_TQy$ zzQaz;wmkSQjr7$UYnS6W{^Tz8^)G}|T4?4_PP&H{y8yQ|_R^u8e~+^K-E!^fZym~i zzlU+41o3`GFTXI9hx|L?E*4$GW}gvEP7Kd!&yOR?RRY$^);@R z7Fxanp{{~?iCSo*`aD?;;eSw{^S+GLLVML`&apbUwq8En*03$raHWU(zBHpdqFi2a zARhs5u8u>bI}+gOba6ulVl7=Mj>5!4dunQ-^~%w*{*CboT4;wjq6$h|&pKFD3++~} zEobHrY>9}UD%X)dV+u!CFAPG=@5M!(mi_sKI`7rcLbsH&-xc4tr!T}I z^5RuRRvqsn)$^BcFg2gTdw6`y%fWbokx$dMR|*?FVRCk!431MKgEd;i4ADO3Vo!}n>|7khTPtTb&GG`Fn!ZaslPtnHWTZFTmNz*6h z;aeD~lh4%L>`8eA@UvldvVqRXR{q**1juNghfzES`P;sl_AdN`@V7Is2spH{Xlirs zKceHdK|m21=MQ*GDgKPN)MVcdp3%Wu-zeR|n>u(?{9cf`l)C0S{AmYorvFQ{lAZ}M z3-G*xhw;3LXIqftL*6HX)EULV6N@LA$A!F;J6?X;)UM1*LuSH(*FRhyR~Hi diff --git a/configs/swarm/genesis.json b/configs/swarm/genesis.json index 6c53b83ec1b..e7126967f9e 100644 --- a/configs/swarm/genesis.json +++ b/configs/swarm/genesis.json @@ -135,7 +135,7 @@ "NewParameter": "?TransactionLimits=4096,4194304_TL" }, { - "NewParameter": "?WSVAssetMetadataLimits=1048576,4096_ML" + "NewParameter": "?WSVDomainMetadataLimits=1048576,4096_ML" }, { "NewParameter": "?WSVAssetDefinitionMetadataLimits=1048576,4096_ML" @@ -144,7 +144,10 @@ "NewParameter": "?WSVAccountMetadataLimits=1048576,4096_ML" }, { - "NewParameter": "?WSVDomainMetadataLimits=1048576,4096_ML" + "NewParameter": "?WSVAssetMetadataLimits=1048576,4096_ML" + }, + { + "NewParameter": "?WSVTriggerMetadataLimits=1048576,4096_ML" }, { "NewParameter": "?WSVIdentLengthLimits=1,128_LL" @@ -167,13 +170,13 @@ "id": "ALICE_METADATA_ACCESS", "permissions": [ { - "definition_id": "CanRemoveKeyValueInUserAccount", + "definition_id": "CanRemoveKeyValueInAccount", "payload": { "account_id": "alice@wonderland" } }, { - "definition_id": "CanSetKeyValueInUserAccount", + "definition_id": "CanSetKeyValueInAccount", "payload": { "account_id": "alice@wonderland" } diff --git a/core/src/smartcontracts/isi/account.rs b/core/src/smartcontracts/isi/account.rs index aa814e37f7a..fd238417169 100644 --- a/core/src/smartcontracts/isi/account.rs +++ b/core/src/smartcontracts/isi/account.rs @@ -285,8 +285,8 @@ pub mod isi { state_transaction .world .emit_events(Some(AccountEvent::MetadataInserted(MetadataChanged { - target_id: account_id.clone(), - key: self.key.clone(), + target_id: account_id, + key: self.key, value: self.value, }))); @@ -316,7 +316,7 @@ pub mod isi { state_transaction .world .emit_events(Some(AccountEvent::MetadataRemoved(MetadataChanged { - target_id: account_id.clone(), + target_id: account_id, key: self.key, value, }))); diff --git a/core/src/smartcontracts/isi/mod.rs b/core/src/smartcontracts/isi/mod.rs index 7d04c07c6ba..2c8dde57a15 100644 --- a/core/src/smartcontracts/isi/mod.rs +++ b/core/src/smartcontracts/isi/mod.rs @@ -181,6 +181,7 @@ impl Execute for SetKeyValueBox { Self::Account(isi) => isi.execute(authority, state_transaction), Self::AssetDefinition(isi) => isi.execute(authority, state_transaction), Self::Asset(isi) => isi.execute(authority, state_transaction), + Self::Trigger(isi) => isi.execute(authority, state_transaction), } } } @@ -196,6 +197,7 @@ impl Execute for RemoveKeyValueBox { Self::Account(isi) => isi.execute(authority, state_transaction), Self::AssetDefinition(isi) => isi.execute(authority, state_transaction), Self::Asset(isi) => isi.execute(authority, state_transaction), + Self::Trigger(isi) => isi.execute(authority, state_transaction), } } } diff --git a/core/src/smartcontracts/isi/triggers/mod.rs b/core/src/smartcontracts/isi/triggers/mod.rs index 611f87e01db..00ea4338215 100644 --- a/core/src/smartcontracts/isi/triggers/mod.rs +++ b/core/src/smartcontracts/isi/triggers/mod.rs @@ -177,6 +177,72 @@ pub mod isi { } } + impl Execute for SetKeyValue { + #[metrics(+"set_trigger_key_value")] + fn execute( + self, + _authority: &AccountId, + state_transaction: &mut StateTransaction<'_, '_>, + ) -> Result<(), Error> { + let trigger_id = self.object_id; + + let trigger_metadata_limits = state_transaction.config.account_metadata_limits; + state_transaction + .world + .triggers + .inspect_by_id_mut(&trigger_id, |action| { + action.metadata_mut().insert_with_limits( + self.key.clone(), + self.value.clone(), + trigger_metadata_limits, + ) + }) + .ok_or(FindError::Trigger(trigger_id.clone()))??; + + state_transaction + .world + .emit_events(Some(TriggerEvent::MetadataInserted(MetadataChanged { + target_id: trigger_id, + key: self.key, + value: self.value, + }))); + + Ok(()) + } + } + + impl Execute for RemoveKeyValue { + #[metrics(+"remove_trigger_key_value")] + fn execute( + self, + _authority: &AccountId, + state_transaction: &mut StateTransaction<'_, '_>, + ) -> Result<(), Error> { + let trigger_id = self.object_id; + + let value = state_transaction + .world + .triggers + .inspect_by_id_mut(&trigger_id, |action| { + action + .metadata_mut() + .remove(&self.key) + .ok_or_else(|| FindError::MetadataKey(self.key.clone())) + }) + .ok_or(FindError::Trigger(trigger_id.clone()))??; + + state_transaction + .world + .emit_events(Some(TriggerEvent::MetadataRemoved(MetadataChanged { + target_id: trigger_id, + key: self.key, + value, + }))); + + Ok(()) + } + } + impl Execute for ExecuteTrigger { #[metrics(+"execute_trigger")] fn execute( diff --git a/core/src/smartcontracts/isi/triggers/specialized.rs b/core/src/smartcontracts/isi/triggers/specialized.rs index 09e898b126d..cb0957f114c 100644 --- a/core/src/smartcontracts/isi/triggers/specialized.rs +++ b/core/src/smartcontracts/isi/triggers/specialized.rs @@ -152,6 +152,9 @@ pub trait LoadedActionTrait { /// Get action metadata fn metadata(&self) -> &Metadata; + /// Get action metadata + fn metadata_mut(&mut self) -> &mut Metadata; + /// Check if action is mintable. fn mintable(&self) -> bool; @@ -181,10 +184,15 @@ impl + Clone> LoadedActionTrait &self.authority } + /// Get action metadata fn metadata(&self) -> &Metadata { &self.metadata } + fn metadata_mut(&mut self) -> &mut Metadata { + &mut self.metadata + } + fn mintable(&self) -> bool { self.filter.mintable() } diff --git a/core/src/smartcontracts/wasm.rs b/core/src/smartcontracts/wasm.rs index dd8df4bd163..034ea428db6 100644 --- a/core/src/smartcontracts/wasm.rs +++ b/core/src/smartcontracts/wasm.rs @@ -464,6 +464,8 @@ pub mod state { /// Trigger execution state #[derive(Constructor)] pub struct Trigger { + pub(in super::super) id: TriggerId, + /// Event which activated this trigger pub(in super::super) triggering_event: Event, } @@ -985,7 +987,7 @@ impl<'wrld, 'block: 'wrld, 'state: 'block> Runtime Runtime payloads::Trigger { payloads::Trigger { + id: state.specific_state.id.clone(), owner: state.authority.clone(), event: state.specific_state.triggering_event.clone(), } diff --git a/core/src/state.rs b/core/src/state.rs index b9291530cbf..9b85eb84fa2 100644 --- a/core/src/state.rs +++ b/core/src/state.rs @@ -285,7 +285,7 @@ impl World { } } - /// Create struct to apply block's changes while reverting changes made in the latest block + /// Create struct to apply block's changes while reverting changes made in the latest block pub fn block_and_revert(&self) -> WorldBlock { WorldBlock { parameters: self.parameters.block_and_revert(), @@ -1333,10 +1333,11 @@ impl<'state> StateBlock<'state> { } update_params! { - WSV_ASSET_METADATA_LIMITS => self.config.asset_metadata_limits, + WSV_DOMAIN_METADATA_LIMITS => self.config.domain_metadata_limits, WSV_ASSET_DEFINITION_METADATA_LIMITS => self.config.asset_definition_metadata_limits, WSV_ACCOUNT_METADATA_LIMITS => self.config.account_metadata_limits, - WSV_DOMAIN_METADATA_LIMITS => self.config.domain_metadata_limits, + WSV_ASSET_METADATA_LIMITS => self.config.asset_metadata_limits, + WSV_TRIGGER_METADATA_LIMITS => self.config.trigger_metadata_limits, WSV_IDENT_LENGTH_LIMITS => self.config.ident_length_limits, EXECUTOR_FUEL_LIMIT => self.config.executor_runtime.fuel_limit, EXECUTOR_MAX_MEMORY => self.config.executor_runtime.max_memory_bytes, diff --git a/data_model/src/events/data/events.rs b/data_model/src/events/data/events.rs index 156be776be1..3c6fc21b909 100644 --- a/data_model/src/events/data/events.rs +++ b/data_model/src/events/data/events.rs @@ -486,6 +486,9 @@ mod trigger { pub use self::model::*; use super::*; + // type alias required by `Filter` macro + type TriggerMetadataChanged = MetadataChanged; + data_event! { #[has_origin(origin = Trigger)] pub enum TriggerEvent { @@ -495,6 +498,10 @@ mod trigger { Extended(TriggerNumberOfExecutionsChanged), #[has_origin(number_of_executions_changed => &number_of_executions_changed.trigger_id)] Shortened(TriggerNumberOfExecutionsChanged), + #[has_origin(metadata_changed => &metadata_changed.target_id)] + MetadataInserted(TriggerMetadataChanged), + #[has_origin(metadata_changed => &metadata_changed.target_id)] + MetadataRemoved(TriggerMetadataChanged), } } diff --git a/data_model/src/isi.rs b/data_model/src/isi.rs index 1ecd901aba7..40cdcc316d3 100644 --- a/data_model/src/isi.rs +++ b/data_model/src/isi.rs @@ -134,13 +134,15 @@ macro_rules! impl_instruction { impl_instruction! { SetKeyValue, - SetKeyValue, SetKeyValue, + SetKeyValue, SetKeyValue, + SetKeyValue, RemoveKeyValue, - RemoveKeyValue, RemoveKeyValue, + RemoveKeyValue, RemoveKeyValue, + RemoveKeyValue, Register, Register, Register, @@ -339,6 +341,21 @@ mod transparent { } } + impl SetKeyValue { + /// Constructs a new [`SetKeyValue`] for a [`Trigger`] with the given `key` and `value`. + pub fn trigger( + trigger_id: TriggerId, + key: Name, + value: impl Into, + ) -> Self { + Self { + object_id: trigger_id, + key, + value: value.into(), + } + } + } + impl_display! { SetKeyValue where @@ -353,7 +370,8 @@ mod transparent { SetKeyValue | SetKeyValue | SetKeyValue | - SetKeyValue + SetKeyValue | + SetKeyValue => SetKeyValueBox => InstructionBox[SetKeyValue], => SetKeyValueBoxRef<'a> => InstructionBoxRef<'a>[SetKeyValue] } @@ -410,6 +428,16 @@ mod transparent { } } + impl RemoveKeyValue { + /// Constructs a new [`RemoveKeyValue`] for an [`Asset`] with the given `key`. + pub fn trigger(trigger_id: TriggerId, key: Name) -> Self { + Self { + object_id: trigger_id, + key, + } + } + } + impl_display! { RemoveKeyValue where @@ -424,7 +452,8 @@ mod transparent { RemoveKeyValue | RemoveKeyValue | RemoveKeyValue | - RemoveKeyValue + RemoveKeyValue | + RemoveKeyValue => RemoveKeyValueBox => InstructionBox[RemoveKeyValue], => RemoveKeyValueBoxRef<'a> => InstructionBoxRef<'a>[RemoveKeyValue] } @@ -1059,6 +1088,8 @@ isi_box! { AssetDefinition(SetKeyValue), /// Set key value for [`Asset`]. Asset(SetKeyValue), + /// Set key value for [`Trigger`]. + Trigger(SetKeyValue), } } @@ -1078,6 +1109,8 @@ isi_box! { AssetDefinition(RemoveKeyValue), /// Remove key value from [`Asset`]. Asset(RemoveKeyValue), + /// Remove key value for [`Trigger`]. + Trigger(RemoveKeyValue), } } diff --git a/data_model/src/lib.rs b/data_model/src/lib.rs index 87352bead15..ab1fadfa65b 100644 --- a/data_model/src/lib.rs +++ b/data_model/src/lib.rs @@ -70,14 +70,16 @@ mod seal { InstructionBox, SetKeyValue, - SetKeyValue, SetKeyValue, + SetKeyValue, SetKeyValue, + SetKeyValue, RemoveKeyValue, - RemoveKeyValue, RemoveKeyValue, + RemoveKeyValue, RemoveKeyValue, + RemoveKeyValue, Register, Register, @@ -231,10 +233,11 @@ pub mod parameter { pub const BLOCK_TIME: &str = "BlockTime"; pub const COMMIT_TIME_LIMIT: &str = "CommitTimeLimit"; pub const TRANSACTION_LIMITS: &str = "TransactionLimits"; - pub const WSV_ASSET_METADATA_LIMITS: &str = "WSVAssetMetadataLimits"; + pub const WSV_DOMAIN_METADATA_LIMITS: &str = "WSVDomainMetadataLimits"; pub const WSV_ASSET_DEFINITION_METADATA_LIMITS: &str = "WSVAssetDefinitionMetadataLimits"; pub const WSV_ACCOUNT_METADATA_LIMITS: &str = "WSVAccountMetadataLimits"; - pub const WSV_DOMAIN_METADATA_LIMITS: &str = "WSVDomainMetadataLimits"; + pub const WSV_ASSET_METADATA_LIMITS: &str = "WSVAssetMetadataLimits"; + pub const WSV_TRIGGER_METADATA_LIMITS: &str = "WSVTriggerMetadataLimits"; pub const WSV_IDENT_LENGTH_LIMITS: &str = "WSVIdentLengthLimits"; pub const EXECUTOR_FUEL_LIMIT: &str = "ExecutorFuelLimit"; pub const EXECUTOR_MAX_MEMORY: &str = "ExecutorMaxMemory"; diff --git a/data_model/src/smart_contract.rs b/data_model/src/smart_contract.rs index 379da0585d9..928eee6f827 100644 --- a/data_model/src/smart_contract.rs +++ b/data_model/src/smart_contract.rs @@ -17,6 +17,8 @@ pub mod payloads { /// Payload for trigger entrypoint #[derive(Debug, Clone, Encode, Decode)] pub struct Trigger { + /// Id of this trigger + pub id: TriggerId, /// Trigger owner who registered the trigger pub owner: AccountId, /// Event which triggered the execution diff --git a/data_model/src/visit.rs b/data_model/src/visit.rs index b626e8bcde7..f25fc3dc9e0 100644 --- a/data_model/src/visit.rs +++ b/data_model/src/visit.rs @@ -128,12 +128,14 @@ pub trait Visit { visit_set_account_key_value(&SetKeyValue), visit_set_asset_definition_key_value(&SetKeyValue), visit_set_asset_key_value(&SetKeyValue), + visit_set_trigger_key_value(&SetKeyValue), // Visit RemoveKeyValueBox visit_remove_domain_key_value(&RemoveKeyValue), visit_remove_account_key_value(&RemoveKeyValue), visit_remove_asset_definition_key_value(&RemoveKeyValue), visit_remove_asset_key_value(&RemoveKeyValue), + visit_remove_trigger_key_value(&RemoveKeyValue), // Visit GrantBox visit_grant_account_permission(&Grant), @@ -350,6 +352,7 @@ pub fn visit_set_key_value( visitor.visit_set_asset_definition_key_value(authority, obj) } SetKeyValueBox::Asset(obj) => visitor.visit_set_asset_key_value(authority, obj), + SetKeyValueBox::Trigger(obj) => visitor.visit_set_trigger_key_value(authority, obj), } } @@ -365,6 +368,7 @@ pub fn visit_remove_key_value( visitor.visit_remove_asset_definition_key_value(authority, obj) } RemoveKeyValueBox::Asset(obj) => visitor.visit_remove_asset_key_value(authority, obj), + RemoveKeyValueBox::Trigger(obj) => visitor.visit_remove_trigger_key_value(authority, obj), } } @@ -409,6 +413,8 @@ leaf_visitors! { visit_transfer_asset_store(&Transfer), visit_set_asset_key_value(&SetKeyValue), visit_remove_asset_key_value(&RemoveKeyValue), + visit_set_trigger_key_value(&SetKeyValue), + visit_remove_trigger_key_value(&RemoveKeyValue), visit_register_asset_definition(&Register), visit_unregister_asset_definition(&Unregister), visit_transfer_asset_definition(&Transfer), diff --git a/docs/source/references/schema.json b/docs/source/references/schema.json index 496bb8eec28..4865159b467 100644 --- a/docs/source/references/schema.json +++ b/docs/source/references/schema.json @@ -2126,6 +2126,22 @@ } ] }, + "MetadataChanged": { + "Struct": [ + { + "name": "target_id", + "type": "TriggerId" + }, + { + "name": "key", + "type": "Name" + }, + { + "name": "value", + "type": "MetadataValueBox" + } + ] + }, "MetadataError": { "Enum": [ { @@ -3183,6 +3199,18 @@ } ] }, + "RemoveKeyValue": { + "Struct": [ + { + "name": "object_id", + "type": "TriggerId" + }, + { + "name": "key", + "type": "Name" + } + ] + }, "RemoveKeyValueBox": { "Enum": [ { @@ -3204,6 +3232,11 @@ "tag": "Asset", "discriminant": 3, "type": "RemoveKeyValue" + }, + { + "tag": "Trigger", + "discriminant": 4, + "type": "RemoveKeyValue" } ] }, @@ -3487,6 +3520,22 @@ } ] }, + "SetKeyValue": { + "Struct": [ + { + "name": "object_id", + "type": "TriggerId" + }, + { + "name": "key", + "type": "Name" + }, + { + "name": "value", + "type": "MetadataValueBox" + } + ] + }, "SetKeyValueBox": { "Enum": [ { @@ -3508,6 +3557,11 @@ "tag": "Asset", "discriminant": 3, "type": "SetKeyValue" + }, + { + "tag": "Trigger", + "discriminant": 4, + "type": "SetKeyValue" } ] }, @@ -4060,6 +4114,16 @@ "tag": "Shortened", "discriminant": 3, "type": "TriggerNumberOfExecutionsChanged" + }, + { + "tag": "MetadataInserted", + "discriminant": 4, + "type": "MetadataChanged" + }, + { + "tag": "MetadataRemoved", + "discriminant": 5, + "type": "MetadataChanged" } ] }, @@ -4094,6 +4158,14 @@ { "name": "Shortened", "mask": 8 + }, + { + "name": "MetadataInserted", + "mask": 16 + }, + { + "name": "MetadataRemoved", + "mask": 32 } ] } diff --git a/schema/gen/src/lib.rs b/schema/gen/src/lib.rs index ebfb956f436..cfb7aff53d5 100644 --- a/schema/gen/src/lib.rs +++ b/schema/gen/src/lib.rs @@ -209,6 +209,7 @@ types!( MetadataChanged, MetadataChanged, MetadataChanged, + MetadataChanged, MetadataError, MetadataLimits, MetadataValueBox, @@ -290,6 +291,7 @@ types!( RemoveKeyValue, RemoveKeyValue, RemoveKeyValue, + RemoveKeyValue, RemoveKeyValueBox, Repeats, RepetitionError, @@ -309,6 +311,7 @@ types!( SetKeyValue, SetKeyValue, SetKeyValue, + SetKeyValue, SetKeyValueBox, SetParameter, Signature, diff --git a/smart_contract/executor/derive/src/default.rs b/smart_contract/executor/derive/src/default.rs index 441bc8d7c87..cb2778b85e5 100644 --- a/smart_contract/executor/derive/src/default.rs +++ b/smart_contract/executor/derive/src/default.rs @@ -138,6 +138,8 @@ pub fn impl_derive_visit(emitter: &mut Emitter, input: &syn::DeriveInput) -> Tok "fn visit_transfer_asset_store(operation: &Transfer)", "fn visit_set_asset_key_value(operation: &SetKeyValue)", "fn visit_remove_asset_key_value(operation: &RemoveKeyValue)", + "fn visit_set_trigger_key_value(operation: &SetKeyValue)", + "fn visit_remove_trigger_key_value(operation: &RemoveKeyValue)", "fn visit_register_asset_definition(operation: &Register)", "fn visit_unregister_asset_definition(operation: &Unregister)", "fn visit_transfer_asset_definition(operation: &Transfer)", diff --git a/smart_contract/executor/src/default.rs b/smart_contract/executor/src/default.rs index c409a082878..f791727318f 100644 --- a/smart_contract/executor/src/default.rs +++ b/smart_contract/executor/src/default.rs @@ -37,7 +37,8 @@ pub use role::{ }; pub use trigger::{ visit_burn_trigger_repetitions, visit_execute_trigger, visit_mint_trigger_repetitions, - visit_register_trigger, visit_unregister_trigger, + visit_register_trigger, visit_remove_trigger_key_value, visit_set_trigger_key_value, + visit_unregister_trigger, }; use crate::{permission, permission::Token as _, prelude::*}; @@ -376,10 +377,10 @@ pub mod domain { AnyPermissionToken::CanMintUserSignatureCheckConditions(permission) => { permission.account_id.domain_id() == domain_id } - AnyPermissionToken::CanSetKeyValueInUserAccount(permission) => { + AnyPermissionToken::CanSetKeyValueInAccount(permission) => { permission.account_id.domain_id() == domain_id } - AnyPermissionToken::CanRemoveKeyValueInUserAccount(permission) => { + AnyPermissionToken::CanRemoveKeyValueInAccount(permission) => { permission.account_id.domain_id() == domain_id } AnyPermissionToken::CanUnregisterUserTrigger(permission) => { @@ -566,10 +567,9 @@ pub mod account { Ok(true) => execute!(executor, isi), Ok(false) => {} } - let can_set_key_value_in_user_account_token = - tokens::account::CanSetKeyValueInUserAccount { - account_id: account_id.clone(), - }; + let can_set_key_value_in_user_account_token = tokens::account::CanSetKeyValueInAccount { + account_id: account_id.clone(), + }; if can_set_key_value_in_user_account_token.is_owned_by(authority) { execute!(executor, isi); } @@ -596,7 +596,7 @@ pub mod account { Ok(false) => {} } let can_remove_key_value_in_user_account_token = - tokens::account::CanRemoveKeyValueInUserAccount { + tokens::account::CanRemoveKeyValueInAccount { account_id: account_id.clone(), }; if can_remove_key_value_in_user_account_token.is_owned_by(authority) { @@ -626,10 +626,10 @@ pub mod account { AnyPermissionToken::CanMintUserSignatureCheckConditions(permission) => { &permission.account_id == account_id } - AnyPermissionToken::CanSetKeyValueInUserAccount(permission) => { + AnyPermissionToken::CanSetKeyValueInAccount(permission) => { &permission.account_id == account_id } - AnyPermissionToken::CanRemoveKeyValueInUserAccount(permission) => { + AnyPermissionToken::CanRemoveKeyValueInAccount(permission) => { &permission.account_id == account_id } AnyPermissionToken::CanBurnUserAsset(permission) => { @@ -893,8 +893,8 @@ pub mod asset_definition { | AnyPermissionToken::CanMintUserPublicKeys(_) | AnyPermissionToken::CanBurnUserPublicKeys(_) | AnyPermissionToken::CanMintUserSignatureCheckConditions(_) - | AnyPermissionToken::CanSetKeyValueInUserAccount(_) - | AnyPermissionToken::CanRemoveKeyValueInUserAccount(_) + | AnyPermissionToken::CanSetKeyValueInAccount(_) + | AnyPermissionToken::CanRemoveKeyValueInAccount(_) | AnyPermissionToken::CanUnregisterUserTrigger(_) | AnyPermissionToken::CanExecuteUserTrigger(_) | AnyPermissionToken::CanBurnUserTrigger(_) @@ -1246,7 +1246,7 @@ pub mod role { let role_id = $isi.object(); let find_role_query_res = match FindRoleByRoleId::new(role_id.clone()).execute() { - Ok(res) => res.into_raw_parts().0, + Ok(res) => res.into_inner(), Err(error) => { deny!($executor, error); } @@ -1394,7 +1394,7 @@ pub mod role { } pub mod trigger { - use iroha_smart_contract::data_model::{permission::PermissionToken, trigger::TriggerId}; + use iroha_smart_contract::data_model::{permission::PermissionToken, trigger::Trigger}; use permission::{accounts_permission_tokens, trigger::is_trigger_owner}; use tokens::AnyPermissionToken; @@ -1524,6 +1524,62 @@ pub mod trigger { deny!(executor, "Can't execute trigger owned by another account"); } + pub fn visit_set_trigger_key_value( + executor: &mut V, + authority: &AccountId, + isi: &SetKeyValue, + ) { + let trigger_id = isi.object_id(); + + if is_genesis(executor) { + execute!(executor, isi); + } + match is_trigger_owner(trigger_id, authority) { + Err(err) => deny!(executor, err), + Ok(true) => execute!(executor, isi), + Ok(false) => {} + } + let can_set_key_value_in_user_trigger_token = tokens::trigger::CanSetKeyValueInTrigger { + trigger_id: trigger_id.clone(), + }; + if can_set_key_value_in_user_trigger_token.is_owned_by(authority) { + execute!(executor, isi); + } + + deny!( + executor, + "Can't set value to the metadata of another trigger" + ); + } + + pub fn visit_remove_trigger_key_value( + executor: &mut V, + authority: &AccountId, + isi: &RemoveKeyValue, + ) { + let trigger_id = isi.object_id(); + + if is_genesis(executor) { + execute!(executor, isi); + } + match is_trigger_owner(trigger_id, authority) { + Err(err) => deny!(executor, err), + Ok(true) => execute!(executor, isi), + Ok(false) => {} + } + let can_remove_key_value_in_trigger_token = tokens::trigger::CanRemoveKeyValueInTrigger { + trigger_id: trigger_id.clone(), + }; + if can_remove_key_value_in_trigger_token.is_owned_by(authority) { + execute!(executor, isi); + } + + deny!( + executor, + "Can't remove value from the metadata of another trigger" + ); + } + fn is_token_trigger_associated(permission: &PermissionToken, trigger_id: &TriggerId) -> bool { let Ok(permission) = AnyPermissionToken::try_from(permission) else { return false; @@ -1551,8 +1607,8 @@ pub mod trigger { | AnyPermissionToken::CanMintUserPublicKeys(_) | AnyPermissionToken::CanBurnUserPublicKeys(_) | AnyPermissionToken::CanMintUserSignatureCheckConditions(_) - | AnyPermissionToken::CanSetKeyValueInUserAccount(_) - | AnyPermissionToken::CanRemoveKeyValueInUserAccount(_) + | AnyPermissionToken::CanSetKeyValueInAccount(_) + | AnyPermissionToken::CanRemoveKeyValueInAccount(_) | AnyPermissionToken::CanUnregisterAssetDefinition(_) | AnyPermissionToken::CanSetKeyValueInAssetDefinition(_) | AnyPermissionToken::CanRemoveKeyValueInAssetDefinition(_) diff --git a/smart_contract/executor/src/default/tokens.rs b/smart_contract/executor/src/default/tokens.rs index 92289ffa755..3aaa5baf65f 100644 --- a/smart_contract/executor/src/default/tokens.rs +++ b/smart_contract/executor/src/default/tokens.rs @@ -105,8 +105,8 @@ declare_tokens! { crate::default::tokens::account::{CanMintUserPublicKeys}, crate::default::tokens::account::{CanBurnUserPublicKeys}, crate::default::tokens::account::{CanMintUserSignatureCheckConditions}, - crate::default::tokens::account::{CanSetKeyValueInUserAccount}, - crate::default::tokens::account::{CanRemoveKeyValueInUserAccount}, + crate::default::tokens::account::{CanSetKeyValueInAccount}, + crate::default::tokens::account::{CanRemoveKeyValueInAccount}, crate::default::tokens::asset_definition::{CanUnregisterAssetDefinition}, crate::default::tokens::asset_definition::{CanSetKeyValueInAssetDefinition}, @@ -229,14 +229,14 @@ pub mod account { token! { #[derive(ValidateGrantRevoke, permission::derive_conversions::account::Owner)] #[validate(permission::account::Owner)] - pub struct CanSetKeyValueInUserAccount { + pub struct CanSetKeyValueInAccount { pub account_id: AccountId, } } token! { #[derive(ValidateGrantRevoke, permission::derive_conversions::account::Owner)] #[validate(permission::account::Owner)] - pub struct CanRemoveKeyValueInUserAccount { + pub struct CanRemoveKeyValueInAccount { pub account_id: AccountId, } } @@ -507,11 +507,29 @@ pub mod trigger { } } + token! { + #[derive(ValidateGrantRevoke)] + #[validate(permission::trigger::Owner)] + pub struct CanSetKeyValueInTrigger { + pub trigger_id: TriggerId, + } + } + + token! { + #[derive(ValidateGrantRevoke)] + #[validate(permission::trigger::Owner)] + pub struct CanRemoveKeyValueInTrigger { + pub trigger_id: TriggerId, + } + } + impl_froms!( - CanExecuteUserTrigger, CanUnregisterUserTrigger, CanMintUserTrigger, CanBurnUserTrigger, + CanExecuteUserTrigger, + CanSetKeyValueInTrigger, + CanRemoveKeyValueInTrigger, ); } diff --git a/smart_contract/executor/src/permission.rs b/smart_contract/executor/src/permission.rs index 1bcbb66489f..90c9b01cd43 100644 --- a/smart_contract/executor/src/permission.rs +++ b/smart_contract/executor/src/permission.rs @@ -139,8 +139,7 @@ pub mod asset_definition { ) -> Result { let asset_definition = FindAssetDefinitionById::new(asset_definition_id.clone()) .execute() - .map(QueryOutputCursor::into_raw_parts) - .map(|(batch, _cursor)| batch)?; + .map(QueryOutputCursor::into_inner)?; if asset_definition.owned_by() == authority { Ok(true) } else { @@ -226,8 +225,7 @@ pub mod trigger { pub fn is_trigger_owner(trigger_id: &TriggerId, authority: &AccountId) -> Result { let trigger = FindTriggerById::new(trigger_id.clone()) .execute() - .map(QueryOutputCursor::into_raw_parts) - .map(|(batch, _cursor)| batch)?; + .map(QueryOutputCursor::into_inner)?; if trigger.action().authority() == authority { Ok(true) } else { @@ -271,8 +269,7 @@ pub mod domain { pub fn is_domain_owner(domain_id: &DomainId, authority: &AccountId) -> Result { FindDomainById::new(domain_id.clone()) .execute() - .map(QueryOutputCursor::into_raw_parts) - .map(|(batch, _cursor)| batch) + .map(QueryOutputCursor::into_inner) .map(|domain| domain.owned_by() == authority) } diff --git a/smart_contract/src/lib.rs b/smart_contract/src/lib.rs index b6663381a2b..64563291dd7 100644 --- a/smart_contract/src/lib.rs +++ b/smart_contract/src/lib.rs @@ -290,9 +290,9 @@ pub struct QueryOutputCursor { } impl QueryOutputCursor { - /// Get inner values of batch and cursor, consuming [`Self`]. - pub fn into_raw_parts(self) -> (T, ForwardCursor) { - (self.batch, self.cursor) + /// Returns the query result + pub fn into_inner(self) -> T { + self.batch } } @@ -524,7 +524,7 @@ mod tests { let response: Result, ValidationFail> = Ok(BatchedResponseV1::new( - QUERY_RESULT.unwrap().into_raw_parts().0, + QUERY_RESULT.unwrap().collect().unwrap(), ForwardCursor::new(None, None), ) .into()); diff --git a/smart_contract/trigger/derive/src/entrypoint.rs b/smart_contract/trigger/derive/src/entrypoint.rs index a054363cdfe..29723cd3511 100644 --- a/smart_contract/trigger/derive/src/entrypoint.rs +++ b/smart_contract/trigger/derive/src/entrypoint.rs @@ -47,7 +47,7 @@ pub fn impl_entrypoint(emitter: &mut Emitter, item: syn::ItemFn) -> TokenStream #[doc(hidden)] unsafe extern "C" fn #main_fn_name() { let payload = ::iroha_trigger::get_trigger_payload(); - #fn_name(payload.owner, payload.event) + #fn_name(payload.id, payload.owner, payload.event) } // NOTE: Host objects are always passed by value to wasm diff --git a/tools/kagami/src/genesis.rs b/tools/kagami/src/genesis.rs index 94c851f0e91..1a7292df8b8 100644 --- a/tools/kagami/src/genesis.rs +++ b/tools/kagami/src/genesis.rs @@ -122,11 +122,11 @@ pub fn generate_default( let register_user_metadata_access = Register::role( Role::new("ALICE_METADATA_ACCESS".parse()?) .add_permission(PermissionToken::new( - "CanSetKeyValueInUserAccount".parse()?, + "CanSetKeyValueInAccount".parse()?, &json!({ "account_id": alice_id }), )) .add_permission(PermissionToken::new( - "CanRemoveKeyValueInUserAccount".parse()?, + "CanRemoveKeyValueInAccount".parse()?, &json!({ "account_id": alice_id }), )), ) @@ -143,13 +143,14 @@ pub fn generate_default( Numeric::new(DEFAULT_COMMIT_TIME.as_millis(), 0), )? .add_parameter(TRANSACTION_LIMITS, DEFAULT_TRANSACTION_LIMITS)? - .add_parameter(WSV_ASSET_METADATA_LIMITS, DEFAULT_METADATA_LIMITS)? + .add_parameter(WSV_DOMAIN_METADATA_LIMITS, DEFAULT_METADATA_LIMITS)? .add_parameter( WSV_ASSET_DEFINITION_METADATA_LIMITS, DEFAULT_METADATA_LIMITS, )? .add_parameter(WSV_ACCOUNT_METADATA_LIMITS, DEFAULT_METADATA_LIMITS)? - .add_parameter(WSV_DOMAIN_METADATA_LIMITS, DEFAULT_METADATA_LIMITS)? + .add_parameter(WSV_ASSET_METADATA_LIMITS, DEFAULT_METADATA_LIMITS)? + .add_parameter(WSV_TRIGGER_METADATA_LIMITS, DEFAULT_METADATA_LIMITS)? .add_parameter(WSV_IDENT_LENGTH_LIMITS, DEFAULT_IDENT_LENGTH_LIMITS)? .add_parameter( EXECUTOR_FUEL_LIMIT,