From 0d3d62b25a3fff6eb63eacbce9ccfdb38683b21a Mon Sep 17 00:00:00 2001 From: Qi Zhou Date: Tue, 7 Sep 2021 01:01:59 -0700 Subject: [PATCH 01/17] fix ci (#931) --- testnet/ci-qkcli/constants.py.bac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testnet/ci-qkcli/constants.py.bac b/testnet/ci-qkcli/constants.py.bac index 96e13122b..72fc6a916 100644 --- a/testnet/ci-qkcli/constants.py.bac +++ b/testnet/ci-qkcli/constants.py.bac @@ -51,6 +51,8 @@ GENERAL_NATIVE_TOKEN_CONTRACT_BYTECODE = bytes.fromhex( MAINNET_ENABLE_NON_RESERVED_NATIVE_TOKEN_CONTRACT_TIMESTAMP = 1588291200 MAINNET_ENABLE_GENERAL_NATIVE_TOKEN_CONTRACT_TIMESTAMP = 1588291200 MAINNET_ENABLE_POSW_STAKING_DECAY_TIMESTAMP = 1588291200 +MAINNET_ENABLE_EIP155_SIGNER_TIMESTAMP = 1625097600 +MAINNET_BASE_ETH_CHAIN_ID = 100000 PRECOMPILED_CONTRACTS_AFTER_EVM_ENABLED = [ bytes.fromhex("000000000000000000000000000000514b430001"), From ff92683d0314a9969b348aeba60fdc14bfb7ddf4 Mon Sep 17 00:00:00 2001 From: Qi Zhou Date: Tue, 7 Sep 2021 13:07:18 -0700 Subject: [PATCH 02/17] add balance_by_height.py --- quarkchain/tools/balance_by_height.py | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 quarkchain/tools/balance_by_height.py diff --git a/quarkchain/tools/balance_by_height.py b/quarkchain/tools/balance_by_height.py new file mode 100644 index 000000000..e176132e6 --- /dev/null +++ b/quarkchain/tools/balance_by_height.py @@ -0,0 +1,49 @@ + +REDUCTION_FACTOR = 0.88 + +ROOT_BLOCK_REWARD = 3.25 * 8 * 6 +ROOT_BLOCK_REDUCTION_SIZE = 525600 + +MINOR_BLOCK_REWARD = 3.25 * 2 # split to root and miner block miners +MINOR_BLOCK_REDUCTION_SIZE = 3153600 + +#root_height = 1294545 +#shard_heights = [7600468, 7555507, 7562667, 7588454, 7595046, 7552602, 7584632, 7464263] +root_height = 663132 +shard_heights = [3872082, 3846760, 3844333, 3867437, 3876030, 3846766, 3893407, 3816372] + +def get_root_reward(root_height): + reward = 0 + block_reward = ROOT_BLOCK_REWARD + while root_height != 0: + height = root_height + if height > ROOT_BLOCK_REDUCTION_SIZE: + height = ROOT_BLOCK_REDUCTION_SIZE + + root_height -= height + reward += height * block_reward + block_reward = block_reward * REDUCTION_FACTOR + return reward + + +def get_shard_reward(shard_height): + reward = 0 + block_reward = MINOR_BLOCK_REWARD + while shard_height != 0: + height = shard_height + if height > MINOR_BLOCK_REDUCTION_SIZE: + height = MINOR_BLOCK_REDUCTION_SIZE + + shard_height -= height + reward += height * block_reward + block_reward = block_reward * REDUCTION_FACTOR + return reward + + +def get_shards_reward(shard_heights): + return sum([get_shard_reward(height) for height in shard_heights]) + + +rreward = get_root_reward(root_height) +sreward = get_shards_reward(shard_heights) +print(rreward, sreward, rreward + sreward) From b52137d02051fa395d4b8b9b96f2fcb8305e2297 Mon Sep 17 00:00:00 2001 From: Qi Zhou Date: Wed, 27 Oct 2021 23:21:15 -0700 Subject: [PATCH 03/17] increase rblock cache to avoid long xchain cursor update (#934) - When the xchain cursor moves from one root block to another root block, it will find the next root block by iterating from max root block. If the max root block is much higher than next root block (e.g., > original 256), then the cache will not be effective, and thus causing a lot of raw db operations. Related code: https://github.com/QuarkChain/pyquarkchain/blob/ff92683d0314a9969b348aeba60fdc14bfb7ddf4/quarkchain/cluster/shard_state.py#L203 https://github.com/QuarkChain/pyquarkchain/blob/ff92683d0314a9969b348aeba60fdc14bfb7ddf4/quarkchain/cluster/shard_db_operator.py#L297 --- quarkchain/cluster/shard_db_operator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkchain/cluster/shard_db_operator.py b/quarkchain/cluster/shard_db_operator.py index 29caac01a..de24e10bf 100644 --- a/quarkchain/cluster/shard_db_operator.py +++ b/quarkchain/cluster/shard_db_operator.py @@ -266,7 +266,7 @@ def __init__(self, db, env, branch: Branch): # height -> set(minor block hash) for counting wasted blocks self.height_to_minor_block_hashes = dict() - self.rblock_cache = LRUCache(maxsize=256) + self.rblock_cache = LRUCache(maxsize=4096) # enough for 4096 * 60 / 3600 / 24 = 2.84 days self.mblock_cache = LRUCache(maxsize=4096) self.mblock_header_cache = LRUCache(maxsize=10240) From e69a1010a3f470aa9f94b61fd30411f210cbb445 Mon Sep 17 00:00:00 2001 From: Qi Zhou Date: Thu, 28 Oct 2021 15:07:09 -0700 Subject: [PATCH 04/17] Add files via upload --- papers/universal_v3_staking.pdf | Bin 0 -> 222045 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 papers/universal_v3_staking.pdf diff --git a/papers/universal_v3_staking.pdf b/papers/universal_v3_staking.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0aac51ccfe712eb5e8f1d52a7a96a7226331a4aa GIT binary patch literal 222045 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%0Dl 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
%I9}v}RCSw#J|t!E zs-D$&Jp7vcc1OvJe-i`*zHL^(paMEef1V&NYJpw|s-NY+VicWHjM@*`5p}yr{0p;w z)2awgpr*!KEEojEA=1lmA@BAAs>{2DkFlzNP;*w(uB(&I6w!$DNV(HfHGFK6X_a|l zmmZ^Rqhx9KQiV%sdlZMJ`j>?3M9spfgdn@Uok^`P(R^}I7YgBy$mco6I!-u|5{`mG zG+*4v{$Ek4DgwZLWiakRd^dOP@hb`f_qK&qaFBj@ePSfo$g0JIh1y!1R=!pS>&qoPk0BNPj5T1(FNwGFar2} zoEq(SOd#H*?Y<-ToTONOhK8(A_bPaqTA>ggn)LBoVOsX6Ia_@Pf;K}=fXSSmq9LX` z>ZZ@2X;!A^liau#&Js%k-DRQ;sX_z0qV}C_{DiJ}-^763y)*CIs#Q01w4MRoKRA0K zoyrl@2-8j#7s<^+cai?en)^@Ez~MC6$#x$;dg+shq;?7ISAc1TKnzxQLVCTnvgXM3 zzmXy4n;k+yNVJ0Rww&4pHaqcSkPD4f_Cc5IU~NA6(2m9-lPzT>3&RFFWhL15nL>0d z)qxDZtn!h8X94t^f*hh_47x^Cd$QebU*n>O2j`eTLw^V0B7j@yTqWNN{g6L0+uzb6 z!AFf$)>cI<3Q^>4bi7n{U#!qqnZ@AmE0n3el*|spJB|Y%O1S;WzVY!SGnoE8P0hV3 z5?F)xO;^JuD);I(KI!&FPW;l2G=KAB%~y^ovYXrH<|Tyjt9@$bt7~b4_|PGnKT9!v zUDvs9;jv`PeuOSp`jck#H#KA+!qk*s5+{qKM8OW~*-g3j*kqg!j~L`DLK?5jN}rRc zi@At%y}}Ww*3&L_ ziFLzI?h|jV9K?U0JJGLE(ySw0VFxDQGxikf^|_E&ilYH@s*vP<8NTl1t9K{QSPELz z11@+FK8pxD_90_b+WveMS{7n|X+GNahY)x{!BF|E^cO3q)ze}hNANd18gc}Nv;_AS z^+AcZl?E+zX~^qLkT`ld*w|vnH~rqVIVj*HYWLB&LpIkCE1fCbJm0_%ly&i>0ZUkM zroNV196KFK%9sR|)?plO_)4Kp>9epS0cfb#NTXQNH^&?>&iO@yNG@VnR%g*}a~xuL zv(!GYG#Cahcdy+KL1C?F3Eo}At-~_$h8x6}I`UiGy_=D&u^Q2Gx@WwKj_C9NdWN8-9@>(w9m28X=~C_!%|~nC{j_iM0yL zgsw8ht1?YObC;4Vf~kH>_jk#PcwPLBOk85!iXMIFB^2Q6vqUSCG&*jl)CV(#SrkxV z0xnFmE=3sOb3gvqy-yFSJ5iD*Ox3guFkztteivML{7}MJ5p!``v4Q;fklVWl1?Lct z-tJ$LAHFrZAAj6hb*O>P(p*6{&li6D4J3RDdr>E?2x=ry1wu)+I-mA2bXtcU37drg<@+r+brK zHYn{wE8qNuTxV@cXlxYj4(vIk9lQKbzx8G|DI5}1xJq4S^Z_&isQsl>zjx=+<{WK( zVnUI~;^Td~IBCWBmO6)ql=cUAEI1{o2`BW>78NOsHkK63#s2m<#N=wZdx${~kLs@) zhct-#8j~5~MY5p5$;oJRHnbUTJ?aQ4+kZF&c9Zyxdm6D4K&aN<*y7dt`Zy`AK-@#V4;YkNv$jh8_D3~f2*%UXjmYyBIGWkUHPv?>ovO3 zs9FEzcippdtePDmb|Ku%eIu#Vrn%FHbww{4*YvMg^j$9E8sdLp!_gwpu|{$P0ka-- zbUCa8M!`36iyIh_)fEp=LvjnZZ=NoUmr0F%qBxwoo$QvBURpFoqkTTb=3luY8$Tm_ z)o;0LTy>YuaIc~P@47KZVZ7Y(Dbc5Trkuvlqcf~5I$&dq>&Wr$*2ciCQ;*C}p2zqU zTs964DCN#$H3cgB6zbBUE~I})ji}ciRr};}Xe}+yF#aV?$uLaHR?ifaQ}O!i(4xI9 z`(;*UI4OfOi{zGEcPNZ!Z=_*h7PVI%eQdk+(h@d4hpt5=vR4`%NtO+;XcKNlHH{fJ zt^Iu7n{CiTW`1=xPCuv;uS*E=n9~`Rged%hM&~w+cNR)DywH%Gv29&UDu*MVQd#vt ztfb&aqRMtQkZ%7Bvq4RAyidI4$_^`!83qlG?Vk_)yI4a9KL6<4{?1Wi_{Io|?J9%) zwI-p~f(02Z7xZ=Gsnv!S?Oz%dDM8M~C~#JU>1rB)e$#8f&zd~fcLu%2fLqoNtDRw_ ztmxImQ9=T8?hyB^d1rWeZQQpca&w&CsqeF@xcXI`TZJW|J1t$0o|beSCz6v9f{}vJk?%2=A84AAZ_Qeb$j@+T`q_~+5 zL*9A*Qb0~$V6|{POr&4lBte>Y598EK8tt-7?54F*yRK(=w#2)7rb|! z1(Wq9Gc#!+HmWl3f%AEg5`dz>6E*8wSqa2Q5eGdMz|av#F>~s^6LrQbsG}qUDLlk@ zXF3BXdOG=CyCOTDX7Ti*UbZT~8&1@T($sr6lc#5_?3G1bgQQ+6gW#6(Ii)pA6??jZ5#L+ytKPX|@T4L$CO44OmO=Q<$A!|Tf; zG&s88Ov-KMT}1Bw96vQAIaI@@fKmtOJEl>uZ>wH#iMMvP$!&{@2AwG`=y)&O-K}8b zu+C#ShD%XM)J|g(y20*RCcrl1t=`C$U$e1(z~^cQ7KmX`NQv_qV!KOktw_hPqsfi6$V#bc8IRw7*0`X#Ps7G z4G^-ZotFgoe8TST5?F|Z;VYzlJPW}|%y!$Zh~^RE%hf?{SI|ucjPp^iR`-by@2??) zN+mMY2+nKdfWsp9Z4t$lojD^i-vyn;1mR?HJG>`@_Av?4L+}_~2nI%a%4`6}WoY?w-jagTlXYHX7p#er9Z(Z7r;j_xYRndH5@ep!%6qDt#2|b z(wMjKHo2|4#v0T^!-&Do-0>c0;CavM9-C?=DV*Uz$pWftTqfV6f4qf=LF1Vo_%o z97OCmyRkoK6^>7)rYJmZ!s@jf1MM#4Sm{Z^|z@4x9ZbxEpIz1BH&7$5sI1}Q)f4euDI7k zOw?xbFz8KiyM{AqxiF1RV45sM|C0Ap#r zPt0}OrJVL}xrvp0n%?|G+P~mJMaICv2%zLB?uC2+qSLO zd~LqAZQHhO+qP}nwr$()=~>MGGv~}=YL|%=~j2kx)Rf=>|g54=_0_5X+KnQ{0 z2}6?sA+r!3?f+?w(d=29#*VAfzo`da7O-<4F#C+c+=gz&jzoRuMlAq#h$ppV#YKV+ z1x0X8n5`<_aO!jlZ(`1CNwWSbL6L|;6CvxtZd|h|}BsD4d3V5MlA#vAILcN*P74R>|?)O2OyBJ}yEcsTc<Wvo#k^!3d)ux1n3?OE1~I^W4{4M6oFJGdOngJ*_HvHgV#RI9)JimsJbz?cW*} zylIiy*tt65h+3IlkoTy~@w{{AKQP|Q5xJ9VEU>F*Ylo0S8C&6)lxZ3qz3zbPE&aG0AME z-32SqDySD6+{zz~<%VqxhD8;KWH^FAQ`y#^b+#^*aD!oR#=?T$7x|pS@mH*D`3{WB>3!|ki@*Y}#he9Hjz^b36`gBl|GvO_G4s=&N zuw*8mPVgbU?|F1toQPeE{SnunP7m3}r(PIWXaS0%4|PyCCLR zhcx@{H(or*&@26YPCgLif=MzgNSPptN;p~8ZivcnT^&jo#P$T*!63r9>X&&f_nz*eK5 zfKBGH@vb?vzvnw61JQb2ODh3|c#+zw(JMkbMxR|{lF9DAEbWras5x{Nn5ox(^Wf5= zKAXirB2yVtIXGq#>;8`OzQL?&1=Mtxui7i0!K;op3;Ne`mZKGzh|u&TW!_f25-Z=8 zm&A##(OEN=XsYs(S(>owQ@Z+WaK@y)tCtnGs=g1{4zX;pE$wl=g54J|cev|U_Z*OL z4GRS7zrWh422Y>(UAYM>`8ipEJ>HS7hvRBcR~FUB-w2%}7!(DcK!GD0TIIYs{zQ6> zP!P)bP%XN96&$_r<|5V*6EyuMT1U#KR~&d5SME;t3Hag~!3i?!mn!@gSVO5ZtFSp} zXpITmeiL0Ks_6($jN)LYPQ>du4Q+Eq3af{KP$ElNXLi;n~RHV`^^w%&WZ;|8~4@VqM%?y=q_2_4-D z66V9<1^dOG4n>w|X;wXk)y+rL4+j%r3D;X^Pgo)@yy=_s^aSRWs(qx!w359?*FuoA zz8{LTt1cee8^LusSP03lko|+g!M2=S<8(@EM6zIl1SKUkv2NYs*KDYvdr!+=dUJAS zU&BWM+;9dasE=NJYHO_;{eA=8d=QkSOfKN|*f<7Va#vU6z;vY2bY3 zLFk!BO~D~wp%9WCNNsS)$W?eiW0KD)j{9ckbA(EmIn71Bhr}qk3-}#6Mus$ z+4I_(i#j&Y7X0DnH$`hDkjX-zjG4-tD#QmTW75>Ug%OY~iUHYt)0L2x2XHZ<*l_i) z^+ji_ZNW1i`3%rqOxd%MyzEAe=HwMh1%$68u|h$`Et&2j*8NC;dQ0Qp4`#p1c&vW_y~wPr z^z#Ij#~#Nuq=kDjlGCKyxdBbb+4Dpc{VYD4mPa{nxjp8V{aijeQ#mXDp{g1RVSD4W%purT@-`G zz^fTZG@}#O;J$>TnK)tCL91Fw{DBBUNJK)UuE*ZIhMiY@QIxFugZMC zkq%bgr_Gezl}LmCQ@PvSi-{s+@m|tkCtcK-PpJ>{bn&I9NIDfF_rI4{E%*y&8Ld_s zH*KLNKd|^ptT)gv4VW;GZKsl(HoNIAE;({6nS#=S4WJ1pLhEj%XJ(K$Y$H~TXOa4o zdwu&HA3?IyPhOs-E9eA4V(V*fta1t^6R(n7wIpes(%i?w2-p!y#P+4hc;rLtZH5=Q zAI!2z#j`(cZ=_m4q`@~D6-TCJr!#L_V_ileO@G$`*Qz^$^_&7~7Z919{VP3`ozl61 zhHL0Z>0POGD9EZ{v^QgIlmE6AEW61%iGbFPI!%CSV;usl*dM?mP!Di83{?Q9G}Mc} zh8hg+T-wj;wujL?b7dT)FF?F+OZIEGqhMLg0sKfWkyxX9bEC!CF8F#jXzO3d2T?+# zN|{Akv3?;ul@ry34jy04xVm_5G5rqaKH3G=gd;mLh?7dh{zY%Lb>tFGS!%TOoW-;_ zdjO)xvvCWoRKB9?wvAC|fb+ zH8K)wFs-*CV{@ECS^)_{X*^$s<+jr1BNLovti%CJRgRCNUAHr{fsqH{IDV5u!Ej^J0gzm=B^#3pen1I4uj?{s^Hd93kh^#QEU1(WDAUhb-v zmk&1TZ#$y6s zJ67tGSC^$%GmZ=4f2Lm#(e2E%h2V8v!Y|@@RjwhUJ;oHj~o$xS%4v* zS!B^RiSGivk?EpzWpzXMR9o=-xm@PZviGB?!_Et1Dh4Y7%7}MAO;8IsJ69WjPI3!z zoEOAwFwHfsdXu^-@igws+p4LsT{?*mk{){)X2{0@m*{RN2aFEh*gZmX6tC9 zD~zU?UrS_=Qm)dS%re|aTX37yItQl^a$4MrE|f=!mKp%uw1IQa2J-wlv5%%Ry1MNu z=Xhmc!fZ||Z2r7g8b_V#-)f)R9c6DDkFPbJqv;p=?d|}@T(85j)NGK3{Z=#QhX(Yq z_}G>$7i?VY-10W~G7X`8=w|VIQFX+EsJgB71BMplhK$Dx4hP=ig8wJk@rd^$U7O;r9Rrn;wXr)m_hO!Rj2@o@&T{8TZiR*M2gvo6 znIYa&VEl5M+moNRWw|D)T5ur=zl`qc4kC$Tka^=i!>Lj>U81Tdl~wYfrX?XLs%a%- z6ND?t6C!dl>d(mQ*B!M>g1cm*%Ul9 z_*upKJKbSOZKOQ3F?Qx%>{F)wP*$R&Yz*=<-=^3TRt5K+fxVqDfJ55o@TINDppEg| z7_HIMwKZfTK%3}1yRy#wHzo_pKKp>s&U>1>d-l4LX%OWN;{ZQMn~Sb`AkqBt~7*3&mT6MkSHZ zg%5#P4_ZOK=93ytIk36@;G*fpGDboUsj`@pV9AG8Da-4D8BRF@d^|=o8&hzk69Ww8C}PLA z@bnt&(8EP*E^7*er}~AiLV;ioQDN;Bd5DRqs{C7u96C9ggev;9Km^h!D5I!N8zW_e z`REMo{O<3__+j4dX1tXqg@G?54}pNt?FokM#Wp4C{Bl78@FdC(I||gK6a<#&bIeA0 z(;*#ezFoxK8krM+MGQiQb|{QFo;x#HW9A@Lk8B5ZNB!|&Q-ELSA0Lsx7zVj+&Tqho zs|P-YP;^lPtx>O>NMT1>uB-lbNt)q3fr2pC?C`VPVHoCaOMLi4S+vqtPDyFc;y6XiB9Z#lpN`m@-B;nNXPUDq<=fTI^HURD z9FGi#7QqW*>+sMqJU14m4xarp%4H17@0&*kNz=b%zDzEqk=SGf_7}QWnQh=wG}%NP zSg5Q#Lz>N6?|d)<6j~>lInX`;-tk`4N{cg3&)BIi9wm=*OHY8TQ3pbzW&9I_XK{nS-Y&CFQV;<5jXvl#y+R=CmtdLMoWsJ(Ahq zV>z17u#7}QW441&H3Yn-g@PK!DclsHFSc>npQuh}ExfFBn}KxJ)7iXbb_u>8YPndq znjJ6%o=98qHIe8bq!VmX-)^Q^TOBiwKIu@Ge}TDR3}BbQjN&l*H1f|5;$GY4Wjeng zvQabF1hj|IjTO0Aw&$bx8@Enb9&zz(W%t)*pVzvBr$+sYcq_b^t^61xxG*PB(1Pq2 zJq8fP2g%OFo@>>7#J@zRMKWn66A-W_8!u%3Xp}p*bOt$eC8GtOV)cT>lwYuaZK)m zHis}+tkoi(WJPmoCqcvuTqz+@-?EExi+s)ssH~6gw(UYmgVx#`Cq&BC;Q>gR+xht1IZHk)%7stG0_l1sWzjkQ9A}bRJ;2G1l0qJZ!Tvq!G0Vk&fbi&vZlg7n zcFn0eUyJguJ>t48N;z~h8>{q!f-5TwG7L*K;Pmv4kz2!Sa{>djVQh8LkFv?3EZ-xO zzV@P66)!opJ(8rbj|ALFt|DSPjW=7WkkBhUiGcx|y>c5XLXJcn! z_@A(N<1Z|(fz2WrP$>E`3(M#z7T{PS4-E6y5e9ZXsxdH;U`uPB5O%&yR6>k+D#U%; zVf*3xM}4QoxXR?&X{Gz1o%LT+I$1|xTfiT|O5MLAgwoQ#C_G$k7Ia8JLlFfdb}uee z1CS}NCc(5dfgQtw zliq_P04X<8-*V!?@0hxId|;Mdoi0FMHeR2QkBJWzg3>P=liIYjfGpzGZDeyB$XefZ zet`0Nah$*K7}x-oHs2EnmKXcCr|{0e0#<#+FD zw+FXbd3e4my&~6s0KGarJu<;Dj|?ugEl-~#pD&*5M@mgbD2l2-ik~gg^7DPbyHjvL zwGMYcfCLCU5WPRHw_h$O%zqzisC|E0$2TXaX38j4;>!=qPB7<`gLfrwV9YeXCHx1M|@O2X-A1r>*gE;qYej*q267F9PdV zg9W9jedSH!w>{S=H3Y2-EaGV9_G~AM(ETdP9AiF=j2~XTTe7#yY-1 z0gUf8^be2#Y(+j{-o$`-042*iqPKD;@2vZ%Ahz7qZMd&Ckf(7)nXy0qodD9OJF)N( zyNzE;<2&vM=)MbgJp`=23uiq9_`b-`@Q3b>FR!paN;PQ}4G#ta-V2X)m_L0z__z>* z!1}@6e=l^&a4fZuH{I1p`HrW%*~$DpQ{Br(hPabW0>Lg4(wMZRW+x|A6{+L2PC>`8 z)LcqMIkb$uvN)f%ON+`M4%>7~;=ioLjIdZgYyo+)PQMZ|jnPUVX+>Do;^j+c+u)_6 zh|bMUkm(&JxTV~2@Q2g0-vnL2K8e)4gJPAFo~O(6VMzJy`Le#4VO1N>e3!{?FzF4R z)3q#T-5dD?!^b(XgyNp59zkBlOLpEvz>@7e{r&wKDVrAI@`?CUH!( zt+uQMS$o`MyJd9uCL|hoGmmAeqO_!Kmvn?2qARl-wmcb6JO$Xc^gL;gSp^TK>~cVH z^ zWn_Gll+utc1yxf`>lE0 zYfof~R!*k`vGLz88<(5t#i0x5e03abml&78Fn?1Y< zYX{r{v=<~kQhr6(mcjz+nURi)UKF}q=PudW{tl?uXLRV@Joy9UL31cyiu9#0=?~rQ zKrO*K+CEJ~Sv7jp#MOjC-#FkmTX4>KDJ)1K48)7Zf%RcZOXhHxCd4m8wHfg}1U{gH zMa*xU!){b=)RD^Ud~<0S zjB30vfs&*iU-ABVyKn!^pU2%nPr7E{Y?a3G#znQ~C+NAgs}@;=xT_bb8GM3r9Yk=4 zw$dT=ifSHKHWa}T>dAo9!_vuFgZlQjqB(3F>P+g+E)$|C;pKC?NGakJ}s*S8iNb0IsCcq^KdwlZvv zOtmoPQ`A;OiaWgjxi!SG^vlMld`-9;7(=}yteL$OGG82~F=b2Ky-VifB~SgR%C5Cw zokhk1W-uL=x(0)G6xlWbC8{>j@>vX=v%JeLgs83U+AWQ+UzmaLVxCbY5v5zSp*$1n&jb`+=3ii@Q8u zc-Qdiq@}!T4N_sBL5+bi=La4Q+esNMsv35RIP0)|0`4AguLq52&V-xGpqz3;!+bsh z@}9{x6SA|O5n|0Bnb5x~5p-Mh?1*-(v>f>;e#nG=bBU0fF!j<|A@m>i1oPtI1$;aD z-vb$`7qK%UXr91~EK;Iu3Jgm&jw zs-WTohe&<|-ix2b)1L^JfEK3_F!R9)u)d5i+0@3NYC%XTe0ZTqL}n=%J6E{ zUbl|up}=L*#02x~+sA>cfPpOc-hP1Mu@wq_L5wYTjv@8es{Egm*M{47ZE}KV2MVr4 z69CIk)&uF1Eu$GRA--Lxbhc|k&F|?>)-Xn21vM99&5$}U`9l~to>JDfqKvG?(;4FA#&GU2E4$TO7Z0pKDS zJB<23_A5=nMA^H%3y#7Lxh@Y!H(*f@1NzgBorC|lE>}ivnp^!(~(~M3SFlhSEX~$nOp6Wz? zB#e=V51$A)=>E_2dUEG00{wlnzjn{)Lk_)P$*)I^rCX?lz_rZBR|8 zEut4s@~V^E<9Z~QxdHsEy-)UYftmVZlR*<>7^zDwbCEa{sR2N@XozjS^6|d94Uw8G z+DD)^;N`T9axw=;A+9x|*5#P(H5F~SOn2p_Iff$Z3Fn8ngnzw8Vh+LzwPW|-=cL8S z8=cq-%lSlNZWM0FJa_dDc8wJiJ4N{PdRh(d zAB${JF6kX@Y&CKEdYVVi-HxJ2`$aI#ri%b~{{m@%JYwJESaVupp$gVN{2C2b)@Lv=nbpRxwSv@azn_k5r{e4`p+aI zZZYWKE+L^sY&HyXUxOHOEd|t^oyU+?7U4((v@yyItAd z4rQ4oECE3&-%d2l>dVreem+jaSCo?vY_Ml6h^*-kJ8bv-bn>o=K=3i^=0@~L&yh0> zxh9~LFgaCwsw*VFhtD&7n2KD7z1B?xuSTJmy|}0;TWJ|2=mFwKtvLx-@&c)Zzy#lm zbZfTFs+Gv5wC+%{lFb)UEl%y&C#T|o8JaoHq=X~KID zXFXlKErr(_n}FK`W+g`M3Z%p9@R1Z3!6hG(joZPZTQJ z_BG+y5jQfDw0jlfzco?juMn_mrObypMo-1z9M>=sM52ImzLAbQ^9t20C zgpSq2V=osr;VR@pxb95!fftBuQMH6JnQ|ZX?{eU76B@#cd@;VnJ#48!!`(Y%eW?Z) zhd2|GM1gMa&UwHL=lS)qD&+;vaBl)5;|v**2h&M&bkoPn%;r|^+JA?|iyjTl*hD>p zN;HxN71O8{=C22=EaZRmaH}TnP+;`} z3CHT0W`E?P_4ub)XxHfUzBw=2jKtbt4-yFk#zwvpO3sjBFnX8m;0y(B3AuF9ZX1G+ z=`w`hEqqPi@?k%vTW(DXrVBOs8ZJ~0@r&Nr6CyKeS{Y$Qy=T}w79;NudP!G83Y$lH zBIU4ZmWjK2^$>zqKz8Z!^Ebn(CmP7zf-a<*QcGi-tPIqGf2eEsX2qGHcw`9Xw zyVHmnG(Gf%97!d?7GL{FxQES}?P@L5lTTfja!?>K&LJV)53yb~5WNlfas;p#Zx8nZ z5JHg~KSb7=Y;VB3bRi?i)2S6H%DfjgT$vUPP)$H34Nb$q4uXh+T7?gyH+EbV zshBhj+2ugOG{SWi(o`qZ>Q`^05?1|9B@HK9V|eY2txc^wTei28 zktt5i@5XK$hFE>yRf%#J87F=XuC_Xc^}|VjB#_-%2v0LJ)p&hPvbC2pcUT&{V!Cc7 z&zNjEsIXz=VD-uYNBJbG74dn_%Gb6jt*2|?$F!8wO_Wuo-twGU^%_NH*vIKNYqs5~ zI>3svS*aOjJ>~lI-hdvVR*;&86#FmJH~a(}kh9BW0@=Z;_WqaLd>m}`S57a?LYs^nsdT8BgH2g?G_K5UI00kW z!g|3@5>$XpbBzf{oQ=EwH4`(URQZQA0?)aGF2nXw%>E11?HMeQim{ z7h}~uj1#qTHrKpw|6@I-Dd5yCufuAk!@Qyd&Dk|1mOIF|;XkxhKL2pxPMTeequNt_ z&Ar&X=wc4L&9xdGHFrrQQ?0>1k2{23m%0{Q-W-h+dVKL`m;%>+?lBBXd0xm+9>R;A z5?%X6Knyr_a4mP@R)0*{sV@OpLVct7;9V4aQY#{{b-9U(HXb+ra)GNS2pvK9XqT-0 zV^yCiW}?Z+&id z;JXei_@vO;PG-2t+?%$J&<0;fh713SmeT7*k}_eI!et8U!uTTNGTms(E}`XnHp%Lr z;d0c1*H9hZ;>V|{<&5EH!Oh5{BHpz-U2Ug!W46pAqoZ z$RhIAR2Taj{oo9lr66t?W4T=eZ}91F)5LEmbqxiSa{(hS?+Hg1{BG>Zmxn*fW?IZI z?_3>#i7CU)x#j3wDfqBPkMh^j=$yPA^=FI#?G!u@d9^Mv>KNI{h{zq4=(o{QCT~dd z$Ymi)32MGM@r^=IP=*?Er`&(wRJxW+sW`nBQg_tBsC&Pt9r>fBJc$CgzVUS9TLSc9 zYX-Wq7jkV}Brn7_aLNqpH%p;(DCCIT!4UaNFp_HBWHI*%IZP>(F-f_Itn26%oZ2Ic z!(dPds0?+JbvC6CWGFoFvtq1A9y?D_;bRmEauy`SSMsEC)9Fn<`S-F{iJ~m@ANWKC zG_q@59dUE*EsedYI2qXehZAGONRRtgG(!O0`I^PWXZU9{!higt3>-G-%1u?t`}+2Y z1|tR7YAzmPibY}UZ&6JYi-^B^n{%w@K0=DfsjHa=$BC6yJj*PxTR;sFUp>8a9+rfv zXr`HLp=ZRJ+Px{P@E=iW^;hcrVRs-6kV!FDLaU|90@8%y0|rWmz*Rv2SKOd2|D3X2cCHYWCT;g= zPiNV*M1=*UVSrWcer<{HjS^KPBTewUPk^U@aARHEk|!g=@u@nS%|!c@K&`Q&P8-C1RCkW$HTqf zIw%ghjzutSR?ZpGuv}hsco?TohWVT8>G@AVcM9TPe;_sK!dd*ZSLG1g;J4hX0c=KK zh^XHS;xNjUuE$fxcgr(W#~HvD64k&MY0MkcOK&DbnZQIR2Nfwvg`Tnd1 zounUiCYzqEk!~GT+#i~_hi%X2;$rm0rRoQ5;O4roesH@~8_mC42(N#^@nK96z<0GQ zX0!H}8R>*!*)cjQzosciGep%v0EJ|RH(Q>2>aX6py4u*hZW!f?rz267SUog2J?(wj zmpK3XWPeN_aC~V9lOx{x_p-fFfaGK*u>Y97vJX^~7H@j3BfV{Af^_TLrBLYipJkAC z9-)xp!uEI$g^=~}dNuqo#rHGB3Jq7$s+R60c4*);x4-e6XWHU zgaqhyz=B-NDQ_yBe0?;vAs^#j=2i>U#Q#W* zIo}2x_o{0o+$b=)cyB==#>@jY;`}G&eecc2W)%!&-zoLe?>Oky?OqWzVI7g%8d||3 zZ`aYSt}MMW_JyDs@zB52_;q zCDQXR=7Ec)1J=l&3CNWZk zH?6WFGZN}CMO?%w<=~awQywjSohps^xcp|eFl5y4O}~gBG#pVzCG>Tq>uena9nr$e z5ZtSE(EONP8nIU#UlpJ2lH#3n+~Jx#4yOGDVZ7->QbGmd*nQG>mKZDX`vlBr8kLq*R-}w4~KgaosOT&y=~V zx$SvuX$+)E36Hiw^w0Ov&e8La;j#;x1Bx=8t291NFweP%gEnsSXcWsMo<%V9D6cx1q$BtVP543}*;r|og8@q_A6q7c6RI|6 zQW zhIF>Kc+OMoPo>TP7qc>1i)tVK=wXMPP%OdN*W6TRQv?ENf< zNk&9$zT_dpt+20ZSLwBzjhcL~UH2u3iz;n-%~5(47u<;cH@cmT&G-t^HPk^3#DRj^ zGa=%8CWY~hE@Q5&(ql;|qB0#V+tnw&l>L3}NX#_&6i50w%bu8@*>MqW9XK?l9G_`q zXWNAIx!6+Dg=RZ~MZ!RTKVaTwnuNCZ4QE%8s3Wfse*8Gw$txlJS;t=3A!R5Rpv z>jjZ-r8wFyPP4pAza#R>M~#YSk+_g@q$e>DHd8w@Vks1%0T5vEF6zGtf(o7~c$Fq< zkB>>JR(Qq^`3CO2G4%{M9y~Z!P&y4jDfpG%`-m`>^ajDYCIOz(MFCJpulK!P%qndV zB50I?rGW5#ML1F}+&hEnGLo{A&l~a?blL1BIOl^m4jYI@=;i^ZF6Y^~i(3$-R$#cs z!OKP5ttSTAi`UTIET;j@Sv8I}J&r5(F`V#$=Q8Ae5kYhY;()G99RpP?TP(4-GY(EU z1dw`zN~4LSdX3Y9``j+QYudpJ!tujE0Ga4#R)vR()J#Z zze49u8kEh7+79amze;;trd00r|I#E>lGrK{>Oy8mRH^y$N+zqhcw0#khC5V)-63Fx z$BefsMh(ZFGixF~S-yOwr+4@CV~`31>iCUkW39Ut3YEz8Tlco?uEh*KCH|=*U-DIU z*cC)wYS}1@LB5$~K6mrr- zmW*mpIvFtTypNr>M3jVJmv@{_c_PFb5v?8o{0UIA^wmq@bM$KS{lfS4qEJ@vYYux< zQ;4!_l!yd*IMTkKHYT>J+9^-IkFEZil+e%{q$9&$j3s>ax`NeCA#o%wz79%nCBWKz z5FT;Q;v~lz2<;+Kprj$95 zr~)5_5&{8+g*K}Yq?5{%I~G+kr2=?XT|?^~7Unlr#*=Nd8|neKe2#yQwEg@LX%J4g z0-!wYoKAiEtaElF*BGHWHWa-ThH{qVV>GLHX*|FAXs9}vTVC!=2C$wgnKa@%((z`$ zvn8Au`?m}Z)xg>nTBBX2yLe8mAwf0vLA$3PI1^DgiO+lR%|~>8zh~fCnG|2pkJIAl zcYqIfNpYnRTx#Ce^2iE_vDW+Zr*!&ETU6T1w?Xxf|JDj%u3ZZN3K5DUFj|Rrj3GDnT1z0z_a*5pvYJPdDw};r-h^ zVPNBt(Nij3e)~mlw+C0;gBw;se=tozK3{31!=JZ)3ITs8 z&lf)w3*r4qjvMDDr5%K+@J5b=V#{`>%?0JUmOZIU{OvQ=;?9;xB(T9daFG-)jZxI$ z*`d2s2nIf5c8>JOIy}CEv+Vln7t5u+DJ;m+FvDQ3n#=kDQL4g{H7XP>_*-s&p|`Lw z1v!VhCK)sMUe)?m9R(UFP=wxk**BMLwI>;27C3_umTuXa#Uf=<-ak;VqKC1Scd6MN5#|S z#)AH}CMGa#O#SUTw^3!g-nT#aF7<{l{|j=%@P9>a7#NvY{tL4CH8ir*v;IE<=f5*I z41bxK>Hi0G6Zs4(i*vdR8qQD9+Og2u@%wPXI@-Fd5byPF1R;IPl`~E=WwGsx_-P_yC|Czug(1&&e zN=sV>M3L02^li35oRYKzFn=~C$c;Gpk(GVWXlrG=WuR~C=wM7=WSN zRR&PXWt<&@HHCZC`pY{vi1zAY6lseB;6xSsuw&2c0gdj0Oir*Xr3=geyw2X^*1Dbs zoCRRh2WZZ44?qf@yR|cX?}I%H{Jnq;08Ko>mZ0Ah`|oDdRS6EKLB8 zZX#?FJ9UGU=DpDAq}D&J`TIRI)02Ie7fv3#SmfEus;g{CADQL#>FurQ51w8iLlf(} z4hRPoa57lV*a9k9;ZGhi8=_Vo28mo~-+;8Vw1^N`07npjf0LD|-U}5T8~{J^^`B@x zO1l?Vx;Fr|u2ev$(DeY_Uw#kHEOx*^nwgq@-P=FPpLG5PdVr|`lbQghFR{=La^As7r-wDG#o<^6{mw;S8CLhbiKgO5OIiR`UGj_88 z-zgGv-&PiW0Ovds)iaZQme0=-M?VkcKS%dJHUmBlpFK2hKT@LeOT))>%uhP+Kln{y zG^4{0JYY5w7w7lR08r01Cb};^Qcb=-_*Fo&IEUsRK1~d?WHuoL`X*)%GT406@dWU> zZ49GBljk>9ZyMEiALEw1&b&q*CbKstpuM*&=|2S?oHUFVEhPhQR-`}jfIGA&J_6#a zX}^w5ZhB=nY2UDfgfQ~Wjo2Lo@ZOB0E3_#;JRcf*->|vq?V~BsTjgxJ-u`XK>lZ|GCDjh9KUn$>J+#fu1JDFEMB45c}1Ncwa zX#*Rqv0FcqAz4Q}^FLXz9~yMH+uJZ7JX^*-6`Os-OK&=#Hb^5r1RENzA}Sv(0pIv! zXvr;TUlo4THeas;eRtS^Ti;86qgfqJTEO3OYHgG_H&WR&z9RN%+IRrBwK>SpsmOPG zil3FsB09c$aJJbre?WKAub=5&lUqM}l=r7L4t_V@?T6oAFVXgi_b|8z;`qWn_tA!C zR4HjGZvTAB?)gXhGvwpN3G9c*%h+1v=E2w<3*SU|<+4QddJWTY0K|yWpoF-p+2{D3hm3D;>Of|f_XZY!*WSr@i7*4p*+(mUlMouKa7G(VMI5qevD ze+FObefOf#rB(`>EEsT*_u3WX%ffFG=Y5l#lMnAotr0Xi*}i$>(I)~q&1UcA?R{Tm z+A4dwnJJ`IYbU}8;SGDN=*j$*Y;PwQYB5Bnmx(Eyl|nf8MQ`&jSv;r)ZS^m<=D1^> zn%@wG_P!W(PVG?Lt3zyOsFrZKi%Xt8n>^3x!@xfoz=Jg7AYlz05kIK0X)%<6RX%~; zSW{b5{F$h?zGW%3v{J(3ysqOfp&*aI)7ujKb4@}wd`=}``}WMF`9i_`ZLhYi?28~~ zQcfjwC*nG*aG_;+bk|k9i}(9OX&p*pX+EXK!dW_(QT*!$!&(aM#Rv^tg2<=4_CLN& z%>rl9STKahMpwu}$JudB3CA<&TymbwPaU2NHBzcKA z>42U%b7lxEcZnp>8-Qm$EFh%?#5&YO87s`2Lgy)v<_yN*zS!gf1+n>tv$&R%82$(3 z^S=E^<&#ctL>!STZ-bZc8ro|8@Pll~5kU)<~cgZ0{>|SDD?{&Pr7_guayHE_7>g6A>1 zTp7&~8tm8H2Tph%-*Gne(B5(ENp0h{bgIk7u9vgJ09crn)yg7dinO49jG%hMfZjG` zdg27v-hZM&OYNuv=Z#;2`=3o5Gh$!?o9M1#vTU+tXV<#3LMX}amL zrAFkuO(Mi}MWwPk;D`u4SE!L9<*34XS(TV)G*c=$Wt7RuZ5|IF%9|Myu{ZU)aE@nz zW5ZE*gLp8wa-$2BtQ3|>rd3|yx3Z(SY4oo4ehTHReK=n0t_f+m;j^5y>20)M5c_)& z%cfp=zKs`e2=x`nC1IJ-;C!FB{h@zhnd4GHDO9rkX`=7y(GE)e*u5ihubn*CTv1=F zIiqlVS?OkeLbyna)r0te+mS@xe7bTQ-~QNdheeYqdPr12xaR8Nl!Q5z@4d ze)4uOfTFMB+te_o`;YY>tOoX_y&Hf^qh}!*tMACJ2YI5lXOd9ZybUZ!FpJ6NFeO8t zoVP(;%j*C_NyOq19CZ)uhue)NNBOHMts)QZt(dTxVCo9E=`g!ji zB{Tq1Dhq_Xo7tQ#=6g`XmoCa7QiYQv+dknYt+}uYoWcs*RZ|M)rPTMd560=o(0zG{ z8;ML7*S%Rb9TdtEta-ddnj$o6qVi08{H0iD9O$KD*&+oSw^=rPmEPaG;Hk-47q#Ep zNkS!%!bE|kf`xExcp-@IK=j;E zIC$j@D9f!e?6@^?$tH#oR$@8MW6A=P{7IbD$mU5zmbPt%te~(kDb=t0yru_XTmIVW zH4!c84+V>6Q+i)U+9NAi34~nK6phsqCGg$Xq=|!ERU29X;nL@w2d;lTS4G2W#wzM) zlZ+XJDD6xeJ^1TNCASJuUHSFeEjafc4md)e;PA4H z7wqJ3mH5z{=!*3-E+pER&c+)L<`$@OJ0E8xY=O-;Hu;qM4R<=b3-we><6v6Lle@u`UHQy`a)1|H%ycFYENE%k z71lHxuSX1yd$7+-M7n4$hYcLglkrk7*P~@?&4oq8wW2f&!9iq#QIEYqZIRW~J&Dc? z;8Id}rU=Btu_6#3tzCofCru+E^4lrnqvLYWFLd|7Mbp`mf-_v>kfMy?0M z5Ob_N%~!1Bd5KBmD#)APDv8Fea))PT&(4=3fTgWF{{VisXo zeA>-oe=(zzD9=Z7OuJ?su?jJkhd!55b78XEVs5ZWYsK){D7k9z+!?-tuA|vRn?T72 zYAE={XvJTVU%>e`e-xR&l=nQIf+tjp z!Z=j(FyCskW4Mn3Qzda+vdCV!qi<^pHQ1lLG_HemijA%PR+(pk=R`NgnI{~a%6Pki z2=T;eS?iuxF{$We$a&^^FsX@H7|J3TA=8jhYb}(LmE9e!#KsGLk9?L@>m0q-eJyn0 zM2W}rwP2T2=}Qj!$e30ytt6Vk8q*hJ&(dg>8rX>8Bz=|7J@}HerK=!yte-IlhKhh2 zbE5(UJ z72LQaxQ0aj$*-5_iy67#t~q4sXsX%Od&Zk_f zal0&p8r(x2s@WBjo<{ZFpH$jT{<9ltOm;?gpCM%B^RVDysFQ`^YWH)$Po~3FG$;~! z%SkqDtXvpcXPB<{*d6&{of^wm6&S#*m=tQ{fw%N~KSiLqZJo<+thVmuvnO7$q>}ri zJK2i7o;iQU=o$ERX{WmZL7UblP;xuse0^b`fnh4_9q&004?`j*MjYjhZ3e@r<*(a# za!$0zjBN+MY3dMa>8zY;PR=l;e^WI+n?Whh@9+&0tr^({9l@u?FQcCO;DK?tFS(J< zVtmlcv)C<|_=i!gs8{7kcuv?AtB~7lI}FsjqhIaU3*o)m;3fqm+_-avws6TS;W(D= zOC->6Fn3(LlCV0$o@xeuKSOigrB&S9*o)2|mM6jzCug~lFy9|EMM@?GA*^jYoRvsy znCL|WS==dmum?zo=3@FBL2EtL^Q}k`&10bGpp&wRUU4k_dfL1DA+1k3Q>F)X$C5mr zc523Rdp2m*#mcji^JTgaiLH@@y8kGjYd zR{NQ%b`ep0&mfOzmmHNM^xkM4%g`uv z#S$Z-!7m$YAeJx2n5cU4v{+6weEotG*w@&-N?aA+3@4a$VDnAIAwCSREZ={IrYo#5 z>%O7rk|~A{S`C*9!La3;cgF=%w&sKI5r#)uU9bc-v(yORcq`_LisQRaC4))U>QpTk z*(iM3{Be%>c8fc%fi5=kVl0W;eE^Ozyc9Uc_=P^l>7qcPov2AK7BMxtE`kDOmR>(1 z;P5*&)-iatGTCH><&lujHq<|78pvUYT7knVyG*tYiX3uW;9AeXNFSQsmBn?FNa^H? zP2HB6Dt6Zx4c~A5efzyv#ZVX;fGLvi$vU4;j==6oX2E4(W_5OpXL4}mC=SeuB&wQE zh#oTpM3+Wo4DbWgpjd7JWWQ!wQLT_h^;E*-tx9zmc7y!XoL)RlH~l0gLe+nP0{Z2iAXDnv*;J=?c=f6mZhWSfx`cwD?s4lYKh8RQmfY}9#4`YKQ z(w*l~O46?|!(*R_jqV$x_zuEr$1nZkw`7~$@{no+4OYqE$d{l?kyoh1tb_tN()dHv zaGnX%nFpgA{MXkDq;B!P%i1(z^N- zu^Ojti(Ozuh?8F1hB%wwMPocE0uv97a+Z(02_>EMFdxU6`V0;a@gmMz=2DHrYScuvFMZ7(I#$`Z_?-?OBvs@>r1* zJ{0$Z8wj5(+#4?%PPa(O-SBagK^3|W9=Ad6$T&Hkixjh2hy-oupn_b>1A5kWdM`Vs z&QGS%bevEQ3B|8(cw=Lh&558@iy+nji6Snj2*(Viar788TdgLgg~P2@TN6BbvtM0b zVbu0i>hZ7r>g7voEc|_qm4h9!^LdsAlzqWrs;gJ7YD$`}w z;Ok>W)I}ceCBB8OG0_v}-lh{n*YRAg%R7F)-#1a%pULv=vcblG3D|`{2yX0pC;Sf2 z2eSNx7;}C#;-Ef#z;Kxp|BNZybL!F9qR`_t0s(cHz#SQkm^&k-U+rY=m@6 zynaP}9zlx|Y~JTSC3awtpQ0Qpc!W5YGZq9G*B4Xt7$@hSt$iDIE){BZ``$KSsQ>hl zHUV?~S!Lu$v7)I(DBVhX=XyxCJt=I=(pL@GcCV>lmPeLjCOefU+xOTeQwkBs(Jf<-||<`l%% z>%{XT9s1H2ZHbew$tXjNM?XlqCVNR~WmnX=kh+$2h^k-+4&I-CSV1JDoL&++kVT*? z+l%5Q*GiJHeOW~#=Q*()9eJ|wj4Y*ZwKXUo~y)IF?SBQ9ti!cJ)Ef6g|Bj-S2 zQCRQ;4ZoI^@s2`!gy8E!{_v~c58&phrnu~!PfBa6HnQ*3S23r^A?yM5A(5d2cnh58 zcc}#lNy@%_?;}ZP+U0I$$j0Na^@gU&&(qOxMj#L5S`h7u& z(yp_duPXh|lc`i$Dr`fhd>&-YpNQFh5vz^zmVPirJzb$_c9D&TW)d99Q+hqiBy`eT z5A4D9FsN>UY8Ry0I?w5DFbJ^8x`*Jf??lnt&zqFwL!nosET%#Sl|<^-D5`YJTuRT5 zT}={q390j*3NK2YWA7`z!b7WRcds$m@R!rHS#4^~Lj`uQTeL`uH(AB5FfP`qzoRi! zdq2fM6l&-0`%DiXp{v*|fjKD#epPh~uLB>W`X1Qe)iZl@!PY*l57)Tpa{BV3^Mk`U z7F*KKD8r*WCKy5^+b4=jJE37PJVZ(uSz{iBQwCn2I4xv<^+xcCcUaTt@!hcC+!r2N z8D?LsnFf7Q??p_Qb2g1-uYsS#t~-*M77(LLg`wBV8^t3u5^)jS$U#pUMVSxoG?f>Y z=#k$s9cOtr%|DP8wN$NQMp!{R4#F2@wmaJ+GPDRMz{x>Kam8+vR`{q)hQHe@eb@!) zUV1tEga-K*^vTcFtD#30@dj9w&e^tq?Ga%+kDb3zgJS~Rt21v}Onj2f)L*T` zBB~&`#4vs`3SQRMxGBUXIuY9QLw4bmFt- zdR$y4TN>whw>B>UWYF@8kQv<##byocsbbrzs2T@P*j;dU9e7M>HfisC zUuK=-h)CzSiEjb|C9jg59fCe)%I&nMH5JQo~siIfMtBAiSj1t=^ zg-^s>MhxGWDI(Apj^P6UoYPDHyUiu?=yPPI96KKESfCsO?!uZ@k=m|u)L5lRsT5Uk zA6DP$19siy^r*x+>*A!eGFLZt7162Aj@B?kt>iG8ghKp+LHdyB$E_T4G%$motQ7nz zEqhyjdk|KJKZv#uM^CE#3kJ!S2ffX|IJi%R5Q2doKu5&(Fg#9)V;bIeUf+E=)eL?K zC>w2`Vg-I|PzSWDs5__>DXQvyjl5N|FMQTg;w)t}ANWy$Crq-xka8emh*ycdF9%<_ zD%QkD;j%h9AKJ$Beou|AS*sgSuNgfLfOw2xJuWRuW;(+RN9-qc4==&@sg!6a4N@^> zTCyFp>uSf`{_ftYUwqLMT&zi&O~r0&7j86Qhkg{vN)Jnn5)rnsKL-qyDCH>4mykXW;S+64>nHQHcdO>Ea!tH3x~!!= zZP21VbhK1~@dgL0;r^T&IX!i?%2W>{oIAovs+DnU9XW;VRa^Pw1(bXxxs8RK}9vv zm&YeN!j{ct#2o&STid+$JM)H}=~Xw!47O&^@iebWF+vRoZ$oC`VE(gs+`^aJbUqwt zMDmT!OT6uF9HEgmCPm;i6~4B?b%!X?;S@YtUqa+}ZpFKK-nsdMqqgZyGO#uIsJanN zeD9Rl+=%_`MNAHnJ;l&L77lb?f{+2N#LD}ae4XUuqi$V;g&=rR;>{+!r_O0Sq|ySH z3O&{WWcu+iv8qI`F4NVxFlVzQ534>x8XBaw-a3PXolDm2IXTA5Vlg8j=h#v4g0qSe z^_L&2&9@&PvW7#WtP_|VuR~(mOtCqBBF*hPjg1piaUSC|%+r%VcFi(`!q4DE$*e#j z^7qLo4VKes@yi@6z<@oiV)hTUn24N9(48T91AH5^(N2)~WqOcjtXZ^qN!5S!OFl%| zUf*l6FCuQ&yGv>z;;u?_$T+Pc5I$UcT#fDM83@X5S=ydbi9LnUzxUPT`0QM@x=)`# zu>t6h*=@Ke%S&OQWRA=yRsNjr1)epx5%dwJ`cqI4k^a?BvH>zWW16G1;HV<|k6!*$ zbkh~~!rigH9+h5#Y2WG!p3H(0lz_D0fy!f2j|f zujbTkjulM<$(j`viCWne9PVr(9iYd$+onW<4N%K<$*`c?9M7Z_sN+0Shgin*+}$^r?vKFm6gB&sH3xiA*?%jPUojoy9J?%f^#wMnD(TjfT9}AXsgCg=eU{Ve{TWkVfJP67k1M;W5W}Tc7K_#O|;0!P7Xenm$3ZW zX%Fj_3AfQ6o-*FV($-fuf|4i@ncz&K-?PG$4MkVrMSbGtUhd!DP8WEAQa?yU-u|+L zQtrZY0f{$qk%(2$l~xQ>lXTIaTWrcTJ8M!(?F~+Yy7iAKV22%_uv1s&R5=Cit=|Ar(dPuS$m1jNtF0 zO**eDOpZNcNQD=$2EJ(Z9Ibb*`xRdt8m0zf)R!CDj#O$!xqkl2PM!dfZWXPKXxmspQ^4${+hFPR}c_!Tl;cG@s23p&uVH#}9>T!Qjwp zP<%cD8bf^G_{)M&mE3W-2#-lgj7sCL2n6m&GMP@5rNG?CJhffFT}8ZS`X+x5v98&6 zC6#u>@U(<_S4(OZB_GKRT@A?fEXoRc#-ou4fvL?4$|v5rNmQQs>ohbG%&hs!O55Uc zP_Hi=2EGS}K{Tf-;0&{ zA853WRi8$7&Z>;gbjE zB$PLPrz`Z*CC9%;Vbg+kNRR&t|BAZ|(>GVqpQYo>17A-AKGH!5q8y%vb|u_wd-0#w zTzWrWRnG%&N=>O&k70!6NMHVa7@U9f%WZq-#zy?48)*ziSiSj;?z(4`lZN(C(@34y z#f7>nm)^5&M&lEi?McK=eq-3<3Hz7(LvqYr@5Z6aOW3}1XxSd~Yi>-*oyoo{Av2^E zxt;ICn2t9Yio?K57XB zbI>Ju(oyrZW<;KPSKyWnhqIuGi+knmzm?>^tALTZR)-$WM&8tvER)*<`R@1Vps=)IODlq-|=RJfz z{Lr+8M@*~4v1y)|tAKtWFv?hDE*j(6E_l_thDKuM#73gimblI}R&HI0*ltb+{lu!c z?UFlztJFj6%JG_d9 ze5#wxu5`X73S2w7s%VSBzdl`|6ID#tJIA&x40;yv%uMj}wo%4nF@C9*RiNX4Whl)& z?DRJL&i6wY<%ST3ovA85rQ!o8VrU7vU5etfpRFD8ticM#%j@|1R{gL)wba*O2}jFTO@ z9?;g(fyd79w{fM;*KYi}lORkq2DdMc)Nx$Sly@0q>j6XAqq`?E!ZkqP6bWwVw$AB1 zK%hzMS2bQ!7v_q%f&&tJ6k|*p#c7aa(pc*21m!`+b3^8XihXppO!;{UmVfecz zdqW%Sy~)j9=WHI(aFwNpV;UY{Mme~1$D?-;>eH!l5EyAL)TK$MuHRaZH?2#N_*FUc zMqA+y8d#cQACB7XQVxEzFc4qv(ftJDtK=i|BHwB$KUl>~j;`@V{rvJ(Jtg>-t)r@> z#FhhRw}Qx30S70oaoPqG@pB@!SBV1{Z&|>Pg4}xvFR@}bigJ7iDY7_hbT0;IfX?Vt z>n#JHZWV1WuiR5dCK9FC-hOzjzb+lA$&la7K=3yL?N_NKo~??N=^7MB4tJWlE{2)G z$#@3}q~7~-W{9R00R&}q1!mglEcb(yVLS*yznDW2MuR6B|EavnWmjyM3#;0;m2w*3 zF2#g5zaITM?S5eDDQ)|)lQ9bXReC+S^l`LRAHwEaAz4-(c(jQw|FOex;$#uW4`IYfrR+uoZ0cR; zLHKkg8)VMF43)ZduPb6G;=Y$PMXmSo&b#v$UQOzV^F9joeEC+?DxiD5?Ua1&R}krR zY?y?dP0N9=>E?)}19uqv&)fJxHtV3wv7Kh5O^ASAZCHcJEWX`waVt^c9H=Q0KoTs? zqsbmT7glC>`jKf1L}l7%_tVfR@__v3(sl69eEVUJj;}T~Xd@UOH(G?rPb1lEc~ZRC z>>=jOvXw|Zo%Bj+NB2QJHNzc1VLI*Ab2Dv=Ifk6I=8KKEfwi4_)+*alhjtip6pt0L z;pp@biGB}fIu=QTRaV>~4y#iBZ?TkM+q`$_)tgAS^DLIMEz_vMHef+V5pY19-rdln zg9eq)^O(3ToBJ(EL38_BmG&l<$9v+0*j9QTK1V=f)(y0YWIYZaFsIs<&xRLv-&46K%frdrAb`OiM3m<#en`muEZ8(o* z2_>xr+b+S|`<)u2Gy|U3hik_#`b+y&IfnF0p}+6<2bed^^y7>u1z{~*R{D0}B!tS( z^bYs?b;*EJab4!bMeR>YH!+J0DimRjhU^IU@vZMfu_>)r6UBDCbN23!^Tg7BeQdMeMYJuwvk-iG*c~Ywnr7p)_ zopiD5CRgx|}hH+|QVc-XA-@{bX<)Gy#eaMqQeqLBn_yef06{?Fla70{im%>j%$)yfx4Au(n zO}84336-r*-l!d^K#Nd{r^t4;Aj<~wi}o&KY)9R22l0s|`sbcZZd>mNu(E;f>E#zT zGUlg6w`QP0l@M1-kD9bVyU2z;?cqF$%vkOx7wu9se32Idva2z-aIt{+Ro25^!p9@@ ziI<$HW-jHP8?Tk07lL1G^FJcjHG%<39nSlNf@cj;Q|PjX_EW1PxxprS9$5sfa3^_m ze}eS84DgCMS_&Z~Q=3Dm5e96uo{%k}2h+Bzz536Oii4$FDMY|+u@JG4ePTTnm`#%s zb~vmnYWJKnKOr{%p&=vjJZL7>MxH zl!bgx+;?t|seXmcpt0)hC*>WB=`}>^CxzrXI$c(+b$V{T`ug+LZnO3Ufgdo@bq(`h z+&RHcYMEs=Gw2ngSgjP4&h0~D;ft_Cn?7QUtNA)C3A!|qAG8U6SoK3$FW4(li6x7i zyl#%r@M-e5t8UToT}+SXjI+PKH?-KLdfK9Oxm75t8+vJn(_j3o;`IIGeXjijzom+6 zdvd7|e)bDgYlwF6rjh^LHnYgF;oakGJ&A26G6!yDP^k$0#1I56#>aCKeY*BrFN5=^1GE~%l4%8#s`bv4vUu-Yxz;Yn9}h#qJD0TjC{)cP|Y7z^4o}w=fp8LYA+B+8KPO1_Io4-CZ;< zXz|ueg^uMhi26F8wp}*ZkWxi z8d()=A?m%OXY@r8X5yvG>JuH?*(|~`8*&-jD%uP+=i*f1Fq!)5D^znaT=w8m!Hd+` zIU@K$zNQJyf83FF7yNm^7X1MLX9!~VVSOU&5rEPDehk0uJ*#cw$*1T!`a>gAt*_@} zM86;B^|zk`hzJ^TL(rZS6Iv%+Qyop%TEz2=j4W!U-}vY z;QALaL_(Sh{6%kp?GjDzPWBqF0X#_LKWPUK}tnowCiYsV4*qm>-eIRb+}&ScpPVV=F!r_Swgy; zeHsscnCKs4r9yPLPSRItgAm(}(tCz!piwDz>FS%BBlPVD8o_t0)$hb zjN;FT2HM9m;R>@XlDuqMKu249Gy6N^^JBv5ML~czwv&m+E_v*o@|4vItKmx{WX|Br zrzQaPf)DYw3Rl>0D61wnZjPM@*R*p8LAa;~Uts2Uvzontl62=Kx3tgrk#HiadAXS7 zx7JkDb35uU!ta}VmCfFgG0RanPXVY6xaJ>Uk_!2E8e0&mQ^YhZ z55FtKkS*j2RN+($<8;F%x5LMF^=TEeU?)64K6Fkp$2hq~^31;Dg-L%T#%C^09C3&; z)e4ak+jTe&kJ&^FmNs;{EcpIG=IjW2l!nTQRu;ADXEPYlS=$wvBgjcLPM)xM+%qk( z_f`cOVBV7*tGmT)`yBsieK(m9%#P1&g!Dk$v>y%BXQk<5?o9jK9dLIJ8-{4ZX$YO* z{f?dPRq~cY2l5@(`uMGKX6I#(*w|f&jTvS^Xtk1=m&x>&>g3&xbdUN@!JSFZb#m(- zcUF9q_bMkGZShU!{q`+d2E&}rDb zY@aiyrVt&}R9TDTMQl&c?tTCa5x~wB5%v~VA5*SkTwnHP`*OkwqxPCLRbhbjaqf1( zR1feL1tX|@4^md<<6g)+501C(89P0DP>d8sfe$OfGeYzY^~V{(sQxIuZ5qe;`+9+O zxrZus0;oo%FW{~QABr#2?~!xIEbfvoUd$Y{O@H+m|X8Kc_;t%xFW=IjjUo%FJSP)Eqg(m*_MbE zr#Tmv#0_>SzwX!*q9Z4_&nIz;rF^)aDD!Qf$;C|>SGEJPg8Iii)sPwVye`tjbxN)1 zxv-0`4_f|x8}0-!uG21J%d7=?;uQ%8U++W}KkcG6iYzMLgTwh+ov~#nRXwAA4^E5> zLz`Loh8^8l&`)9ALDfNmasFaCvM(x~8RP zL27V0T}UVfb8V@}Y>Upc?})XBxIQd3WcLr#&_iSusE-Txgo(4CNT|r7NrKK2ZKuH* zo8KwuiCVsXMnJob6~gXHBC3U!$y!$*N~PrLScSZj*16eh=;uCI$HQB9nuk!Nh-8UV z;2gFzLjwH!w2VZ zq?0z`om;oP?qHmq)#^^~^+%~Elt>-b^p9lZO3XWCs79D89{gW~vOGKN>yI2g9=;K} zUI^yI;l~pSoyZ(cUFgN)^~4*O$}7k`$~d-5#akbm?6DypFT{0m>+V1+ila0EX_|E) z`7gn#0iS)xnXEY}xgm!2?&*dLNO!Df0H|H7q*Av8++!!rgCzS8RKr2%b8FD~XB1bI z=v2X}O0ACi%>(hDvg)zhBDDDhMMqn{{WKv^7RXXyK#4-HJe-0 ziZa!44-Gfg*D@XNH>qUWK|yJ4H<}jLxKK_pKQkc%vWC)Ghi1>;asmF8kdCb&e=hYsq@^MX!^h<(I zlAPGEeMArW6?C26t5Vl{FW$-FUZ-6&ayzrNv!PzCBnjx;QJn z8c$B6)p!T0ykcc6U!{*fuWQ2VleoV$AWeJ~7z9py3ZDC-R7M;gg@#c9VHf3k#mvV< zEiM7|ZJGa(IT6v3LW%FfP3POdK9UYuE7O=h6OUqVV)xwz3jQzVF;ds-`i@im{WKiL zpL?tDP8>=E`DgZ^j@t>UyQ(lY#lqxFW1LQH)!DkvhRsLo^3cjgm`Oe8qL{fQ8`mTn zd8zM|`j)Bb}RDay4^6r$`71UCGXZerHVwGMkxadmGk`;nn|V6^h=7-xjQzU zv)$o?rGowWpvjzNjxw#)pjm4uHLya15&Z;+@aadXG6Zy4P2@7Z6nx0-4x4MiLfRQm z^xSs67lUWGJ)2n4=jrDv<&v4r)$hU_icY~%`nhX3R$vIN7qA7vx3X6lk6qoQUVGAQ zZnL6lTiA_xPyIzZ(Gu$ASw9F&a|r9TZ6KE4?wbcP;?dD+dvSX68t+P>U#De7Tzi{! zO=1YiAhZYvypvRyk-0ZPzi4dW(qO%D0qj{@bnYPViL2qC~B$-Ve zs&*hvVP)dZtX>P8G;RF5v_}q=t4>LqjHILKoxeyX7M7233xv-hl_rSk z9}Fjxg>7YMNS)god(`=M5L4~zxTtP-d1+|VFQ(x!#+dPI^ao%oExY_0bp0$|X-T>I z&}U8AQuEZrx3vSAB_*k=+yR5dJ#6N!zEHf?-aQ*3Zy5F(`(@%6PLDS%H-)Ei`Ph`H zJ~hN=@ZnFRuBb4*BeblN191qke%sCS1`5cnZLui=?21aC zk5}XqnS}9ei?!4$sz(wCq1y}kjZWyG$m4a&Uibt~9CBptle2Z_?{S%C01A$JFx+!s zQe`zShI$1zq7LGR9tzn@ym^D~%^khaJCj85OD0*=`$?a6C)x2uQM4edGM&APzUR2H z8o&jPnXOw&M>{wvxP~j2FGA3(W@uQ96zN6vV(W&;>P{)%@@Qzz$EqHSHU~^?-->?} z9@>HZTv`D1ScPXEm5^5vux+Uu!QO(-JT7Nk#2eeqy*tz+Kd3{C(vOJgQ)<=BReqdW z`yMaCSYfGwNZH4v-bZ~bi`NOG`@{mIbQ|6>@_oY661n5#!<`Ckv~TO)U3(SQz-Xft zjI6LZy1m9hd9G%$y)D`(V`y${*ha~*&(3Rr?^*#|~%AMEsO@bF&NJ6w8 zxO)GHROB!(FSIRhGJzG9|IzR*ZVzJHtGn}ff%SN>JA2y{?jeQO0*nPGxBrcS}j9nSI+QEe0WAzyX41P0l;6VM{_!*kKPB;zPQ~rXs!^&ID<@=f2$!l;tEUf)LnH{?$ zqhqe&pX-0fL(r75$i~0U7S*wN z^}<%CtwJfh$i`ERItEfha=hT9te0?*RsWEVcO;5ry|~6B=Dvt~Bv;M;v8;p@Ke>US zf5<1>rW#kl+-r|zl#bO4Y|O+HGANPU?AE&u_O??Qlh}aM`*nOwB}sP7&CQp!aWNxa zfkqj;ygnoJ)p9x$DgkF$89(j4S)6t8rv zu!E36R~Cw^qKP=1a|}EhODTo*AdG@Zwir`&X1z z<Em!yrOn;VXfkB=8*0FX^GG|T*KBheXQKRh^_yNxt zRhLKGy=Ld*GfWD}hv~7th^u$O7Pwo9y;l|iydmfAZt6|D)ULv7tvt9Z0RvU3*yk9n z>{nk0;mLjbJ~Dy@FthXUOTtcjIQ94AXqjsUxbBoQr%N$mPVKlG$IL<>$dyKwieO=e z!t&)(2A%cdHg9NM9T;e^YZ63efn%=w-QpKJcj-f__H#hOF^di!@jEYcGIsq>T`JqW{P}xA(vQP1 zpFvkWj=B;Z#+P znNmUNqp(nif|cW$1gbO8TyfVbMXmvFK2{S7w(la;9cDi$8vR(SgsX5YA(ngN{eLl&0iS*o%wKis&Y!qIz5Rri66M_E}c z`u-+*g~%z{7~2)J2J}hNV&a38MHt>C&;dOCE?km@J4W8S#&!-W5o9}Urf*syrhK4q zxOv~s!y2WTplTxS1DlA9A#i}*ZJiFwoGdd*V(97&oU3FIMaaKcG)d-ZN+j9un4WM!Pk5!vxGPfTH_3RMOo1}Wy0?5=c~op95gRl|!e9R~o^8z?p)?Jd3gNN$ zQyt4Z>@5-JNWcS>8tx^>0TM|=;nGUpE4@0z0?a_gP)K(uGjVt#QOG%5higH#0$#Nt zs!CHHb0lJd7)jA#SJDNKLP{iaZ5f+QNt2rQ8LM)X3NV?+eoNJ)B^fXadfY>i4tzsW z0od9v%;(cHo&xv{d!-BjdUFzd=6e?iBxJWN@4Y2~W(xo#Sk;pJHqeo}kb;>HWVVO6zHzhhelJ{3i+Gvk*R4#KcLy#yIKAM#5q#`& zK_3Zu-ufZU1)QVLkGC9!*t5#N{)~p;85+);2l^Vwg=QFP_{M6fJWEcgXG8Np$AL+4 zWlj@hjD0rrxm0w3-GQe3praFeyY*)*?N2QH+qhkJ?gf-yQp*6ZzCbC?ig|K;r$P~b zh#O65~kcjNgQOPdwAgj92WO0p%aSyZI3sM;&Gc4@* z=hKQ`6?$dbfT~F_NEyO?9I&HVnjO^rUP=>0Ci_T7J3^WHhm zYmdD^X-{|8i>J~Huy6S_bOt-B1DHZ!L=eHJ2i1u^d8%Fc3|Nik;T@cy`sm}Si(x-4 z0_v>0q65*b$pKb&CxAR_9y!fWG^AK30~}wH%Ija_&>us4Cfh!W+$72>!`!ho4ZP^J zLnfxHzFJ?)YT*0ouY`mETK)15B|QwkEuqRPJgvbMnx+Hc|Im3<6;x&`uY1R<% zhJ)c(n)A9JCjH83LGW6;G@f+|UdcN3fKhgI7c#3>``mQqL#n($*vm|~d1#Xi@6}ij z#gdH}6BEHh7L;tI6KZ#y`K4UwpRV+7fmmiBlj?Ls%nyEGlt9;t_VrR1mmLAD%=PqE z6rA68tS-K?BzitHxD94To{x{UhcfH*z9a(#2qqkiI$o6VtrYkMi@NUceO9xGRSj4b z_0go6O;0<~Bh4J+@O`3beuRMY+i&=T91y&$JbkAJHuI;}wT#V3Id?Mc-K+H=Zoz%u zcNQ(NAw&eAM^O%r2QDFL21K`j^uV{>nZDJqfJ9^qH%boJjbPpA&>es3BZKw7*?pd+ zPgv^6bCS?Y27Ue8_yCY&Aoa>qZ%-~L?w8-d3)fyTyeQ1=9(+;#GZiQYI?X)?Z+^}^ z0GG!VR`T|e!ArZ&NLP9J3B?T33Y^Lw7y3vZnAJygEBY_1@S2cK&F)s}cv7ZcW(~-s zmDTfrCC?Ul)$3+VTP^-0f^|~jddT#S#xYa@k9X4j1`7=}@h!%)gMmq!Gm6|Itw`9? zKJtITQD>Z1DcIxQzPTg#a=~9DO=B4HZm`E{y3OtNiLt8giENo?hDkd1TN|++Vv1~z zcRsJmW_lQZc&>{o=&_+|_^59V`yrzZ)8h4>Tc=!VF5J{VM@{2Xxwgd~O0iyM7+)?n`J4Tx9P^XKU9s6RSJ;l%vf{b_2?X5!_w(;J1r)odkr&aTLJ*~OMH@=M&ROu;7j6<|D z)rJ+cz4WMG@?tG}_>0T)WazSb?l%l?MuB(G&cN1i^*d^&S2ZD6Aa_2~IR^UK;#?e{ zch!C$r&|ZH+?G2ivqJG<-D{=E-jv~0wDT!;$KeS^CGOcq;bWvvEKnZ5+za%qrYmoT z{hjP|2s&D6tuCmQhiV_r!K==%`MVYW3jQGgr_kB8@>U*Sj7Ei$Q?ZjpJJJ(lKB+s`RZCn7x`C4BHU~1^ppDAI^-aS$5%{%ke zY|^`pi4qch1}(fPtBC&L&@>@yWTr1Dem10II;V^MFMxg1_?_i!mPb6yNEe*$g_8pfS7Rha2~Cs(TWzqs)9|H# z`kQbs1V!Jxyw{At9uH5PV3lMRPrPfnl=r)u4gFKO&4gv+B&Pg*PM6U_ z*fyhqvUfsukvk!SP>S=t#)t(num<+#N1&`F>ioYOahC$0QQy)N&^rw+<+M3Np}Lcz zyK)H6^Zx)vEwUc5!b!OYyA4A_`VA1Mo| zA>zBm%wT4@%a18K;keYo4v15imDloXPt&cR9~O%)6I5q?~!#AZ0s6 zBq&H4HK*>r5M4lOz~inD#HaR89 zmxTL#YQ%#zsa*HnIG42^=2ON8_GaLXl4bb*acWc9-C!l>En8#}NyR)zp zK}mnKmRWJyd*Hd!5actpeQd{WPuG}rw&qfPWDQ&>M*p2sh)c;bO*64>MPagB2!`=c z>-38?!4#(hc=qlg2dNFi4L{uO>K+#>dM@FnT&-s)hzK zWAk>5M~hu@(m}3QMxDowfyn|1B-fT0yO*;zK-(`@j240v3E7Q@Nl=)u^GlW}ova&X)pA&= zT^TE9p=FD&&4M%)lQueJrW4T{q6oyn-qary5>k^xwsV)YIfj?d95zz@T40S^vdc}R zL1roIUbLDYM7Rz?F;0~$4rTXX8qw(I_4^E9K?*PS)A&|!1gT1ZL-@`s0 zf28p_O87An9c!w14I~wBTJN}Z+~GkWD!B6X;ZQ3KX6P3@NwJ2Ltm=`x?U&`!;hxI9 z;f>iPXYrxpRZ@I5w?|v*#93&*yyVAd2^moA$6G1rvTD~x;AdcRAz$^+pw5!2u0#E= zQ!T=>pv41bUR{)NS{#C-1!C7*@tP0TcKdg%Kll^&T44J>5| ztaV8IpFR`N6OX&BUe14BD3zin{V)+kcI;bT>zwpeDW%;C0N07K8KR^`W@ONN}F-KA?0O?S;4LlggggmTlr+^nXOjpT7fzprb+9Drp_9=x-7>KDXxZCa5u7ozf>qPQpjeKra+ zDM~+;g}~E&w+A9c3OlH40wsCi{uguM|FsU<8(YEf@)9wKTiUpoI{iCsj9g4bO-<~7 zoBqdD$V9}%&cybgiJ6FlgN5-w)Bh9~a&j`V{x5G~j0d>tlFkP`30;f}yyPj+!otEf z{=cqJ#wntIZK2yaK}7f<3zCvD?$ALY$|xWpDEEYXxes5n?f~tV8ZGOS*1Q)_YryF? zi*-77lS{j)&HjoZI44~H^e8AA=-A&&oCjcF!F(V@q_MccsVYbz!G8Zk&M62(4Gt(g z^5>+lWXQ=Px(NG0tE;Vs;`dLHrO0ARbbdjevY0 zy*7BT=-Y1%s1^zYsE{ZuhT5_+3dFJX7|0tdhVdEj+Yll=AZ|mBx=P43jN3}n0EjW{ z&oVXwJhOmY(4lLFVEQeDeP}0e(0Cv;W6-d6V!bV+7DEjnW*$KeE%^L%kgzW?^^d4N z@YhBzAbx@#|ADW&Z*(Y-k88Mw`aqt}0K*-mbiO_W5O7dd^d%1@eJFY$D6@|!sGyGi zgl{55Bruo;aTLEa1Q5zG3sAu^grCP#vqKn1p|-m=q5NL2qc3!b_UU^@9j>-U7OXIb z!8f&Cl|M9V5bc1SE`NkoXo#1Px9{$T;69sczhy*jn5%P&mQ1 zj^HofpVs|d8a#gf0JUU1A0HoKAR{B8fS=w&i$Eg( zi&ul52}T}H!N*#sgpWt}aRPtVzGrj6HQ=Av5?~2xOgO`jxVhcmoc& z1z4z023)5xo9y`3Ke)=7y>f;}a9=#Nyi*W%AJ%KH;GsZ78XEB&2=`S9G(rIkgih49 z{rbJbaC^sr{m7D-Kn)W90r*?!r>p&uK)_wvz4^N|zZr-5Yvi#4guN`%~ukzrxgcqK6sBgC2E>w9g{RV~h_AR$=auZZQShoFa$gRVf z@)hDBzC=E+l*mpOm_n6FWgWTyDVOdL*Y|wMAl8~=w@F_30c0*X&P6Q3%|;?mUh7QA zHj*A_iO*zXBaWqTWtDkeQ&uJ57=;5G(Hn0YSMs^vZHbe|_IY>su@(3Y7nmfxyn|D4 z;eav`&QA^JNje^!TrAa2J#9xx+Yof>bZi+Bojg3VPh0s?9imZd4gcB#czP`@=X|Ir^MF`tNc+^3e+|7%j$B+7|D+f$VkXc{0!S_Epi z&_j?v+`}(Goo^XK2(ummC-!`}0v+T@qIMl-bz)b^k;P zCmG5002WV$q1}`Vvu1xQKx)NaxprC`jOJ8bus{Z}~e@P_y+-u=5nML#(j*l8Hee zHPp(lEFxI#FGMBGfg?$=rNEt;#EJ*^nWl#yo56FLUjUiZx^tsXXWQi~VADKC;!T|S zDS>>he5vLn(nrIpeo?pP~OpUR)o^V48H+pj5=U5js)*PPNH$kCKDp&Bb!+cxQF?jm1c@j2To(ECcYAlK)pijdGZ%<6k zDxZ!^$GVUxpx$}B+jL~_tGKO=pdtM*yifX)S?a^tG`g{TBY*ya5$o>hXId_#P?QFE>kc^{q*J)|5TaIYH6;aV;`ADAvZHq|I+ty>zX?*+zMIif*ZX(mzAzGKD7YavZ z(#meechM1lQ=SBAF65tdrphWFQumY`AB~tk5hfbCdvXX@OVqd zRl~a3Pj{5_?gs{F#NC8IF9xk#igjSHnN5S7f66h88=My)l6f|hqR z%a90bv#pEZ-c|$*uo#qP+zr-=pgTs@B)a~&W@C0^)ozx&U5i$nZl9*CEuC?>6Oy^HQf^sRkR}*jR7vd#cr2yk2|ufn zb5|jMrBw^I^IP>Fo2ZZXau&>(Iqt!l@O9e12Lc~n4y!%99?V2zf7;d!gQ&2`T%9hW zI+Gwd?qoSa8@MjD&%Evj^{-_6Q>FP+fQ}?=SrR;?`0Or#A`o7?9tH=>(6o zLyL{xlS+-R0-JX#fVAO~u}7`srYW#1%we**D9j$p#x#lM>D%RSvNDw9_9y=*nj^;z z@&~kRL9pI{;A-#Kq`$GA>I9Z45kxy3^<6y|8NYBM1}t>c)hLN#bUn3C>r~SC$*=i30H^d;H!I{@ zFQ1fMOJ6`I_IKaNGI~q(Q8Y(wGo(grL9T#7x!G{wq7=cVLG z^G#Ka8TqXHHI`lz{>ejK%@(F-`Ab4?oqs+~#PA_yU)JZ9NSzJ>R7slvN117_R30S` zPyN_AI$Ua!x|DZKbJ0lg0Sse2loj{=Vxu*S&l^FbyYbj6f8X~Sl`kiTlgt_5&G2?; z*l#g2VWNtu>1&PCxmL>hL$FRofm5W{sgK&@II3oW)&%u%43A!-I~l3hJs}03p*P-o z%Dfr|wVru$zvt!9>nycme1^!3oV$V&AoUG|a_{?abW-6_KLn3B6S!Kd`!TR@XDE%aV?qGo9$ zPzpuY`ti$gsuwe(X>RTW1-`Dr)##vO6q|>=cf!?RD288*Jh1S9hDf7GUQ2N)^x*dW zlb_$IdSHS%LM;=(I3o8<0L}tziRll)ruvK{Db(>NqR2twA9i64y~r#7e{it?_;*L*E7(thN0s};Wo`7k9R(Srq8uN_ol`QzpH z{C#t>fDIrK3<*mRm)-Izwo1gfA*b3gsMa~Vuew;L}H+Tj%^hJLXu z9o292{}5Iw*Ki0>cCwo+%QQGs)#Adrer3vUK#IbFcqFb>^pWe7|DmnmG9py9EAO7X zLgf}IxG!~`FaJ|fCjnG&1%GwvGaStRKv}WNdaQ(OJGLls-`GD+PtOK}mtwkmsm{U| ztIK9?Gio$Y2Pr1H_;M{O!f93Bixc4s*h;V@yY*g@zmudl2s~xYwGAmyT>9JcFKWQ;@;inXQ^~J*T@aB0a3Y4wpN-t%lv{kY9 zgw;0qyEItep((prYdg`NJRc29!}=o*wuV=}BWw6^QJ%*!`a$7@+-%C7O91#5VeWg| zGM!yi3ahKc9fc& zryqEB_ex%JCL<*9MnJRlwZhnJPl}gNb&U80Nu4_wF%yH5htMOg`Gr>lt1v#$JDKio zTwJOV0UVO6E4Iau+gb#Gaal;HWIKzb8@KTV>}Vz8&VmU75<;X?AGQqrq+pNM0QE8g4rB2}F*GuHg8S~3 zhNAT08t&uF)$3VI?oAtsGS72uRjbU$`pv-$R6B2zZCAWEEscQHP?AMGepidT9k4im zq086c`K1%)`;-Xz(E2LXtc{MVVngW23p*Z&d+$d)Qhan?tgg*mEMFyV5?h-E85yQ^ zeh+p!{Dp2D+KCx#PeKDJ9HuUJc~F1cRD$rtecT-;dE7CoYuz5C3|Epo8Dake-;B!r zSV-yNEgJgEvr{T;PGK<%RC%+ zz3iIwGcmyr+!QGiZ#H`#QxwSY>2G50;Is>MXGso>NZ2%Y-SUNxaz8kkxVV@y1a@kP z#duokt*P27h<#|n&C=<8nVr1oZVz||LkTMM9+<^GWYp0zpS-ZCYA4UTM;6mqy{Kln z(Mv_=X#Ho#k;vTppQW12nE)_3YKOjBK0|p^uE$1TTzNK`!XXkAV>r*w2EHc8M4i57 zXyxvRZb2Txe3+Lm15spZGXUA~Tn=U<_Z4mD_?8|ekMplTwv8i^Z^8E9Y(`Wfo$Pw_ z4DrLZ)0IzCb~-JIjaD;kCz5{GV`xlI{rV~?DJ4i0;%o-uc#bm(-zbG%sbU&qd)%lS}%^u#gPqBnKXQ^5*#W6;p% zUT#0|I#l#S$peVkvKU?X`za25DV@c{V5)aQpp)jP*KhvHMYpxhH3hQ;6%+fQ8!bL@ zKbpyh>B_p6-5USj4fm`4BScUmpGb!47?Mo|{ea&ZP~4%Nl~Ax|>3hgukGZ=1a`t_wUL_t!Q4yaPAlxE{W$%hYaDi8qko1yS3URi9(3;!^_}B%m z2A-9rI#$yJG_dPErxkB!@38Q6YEBUrD!~eGBT~&t8zGAmK`G8|qx%l2T@(6q=0p~u z+Pj&XZ&hRVYR}8b0PfDPxO(2`U%K=wWXO)_>>EIe;`tTm6rFHEpQ4?`)V#^jB*!^< zRk+CN2_L6z-JghtU~7zfdKCK^FFZ+$-x5Xz$Qh981yG12U34w#n3VNrwZv4nbk)9Y z!qhoC^mpkvKmH|c174m__j}M}yFWF#`f5vez*7ydVkVW7+36xZPW%7jUa7xw_Bb_E-SMjZFj0{cJMPS}Mdn!1l3@m2rT- z_VmG=Idiv8Bh2$D2HEn-HO+UGJ|e$1^hkEct-lOyKy_049t z^d#Rmg-V*qIcT;;hygMyA9`~sYP)MfGBvosBwI;T`f^fou!j2`5?M?X0T%JTvzcmj z*GiU3H^l`6O!1&#f2X57#qsQCSYe{u`SCTIQBjp+J)J-kF%PL)LKDlu zw8p_9&+N~BVwDB#W{Ys2B@Ywh1+QnZw){HO^NrbLi7DW8>2WhkT{ZnfKXW@aJAKGu zX-@?-)d==h5{&s#1UzZNrc5X~<&XkS=W2PbGbh|kB#OOVLX84L+nR2yRLV{5yQSC9 zLISXAq$uN#B{bc|4Vb5^=IrQ1NO6|(8W>TzSVnE1+;^j&t1`;E8F{||xvfy8gVVa4 zX%L0jq{7Yq?5#1sIWyLllQ{bi^`Sw{68iCs9y)8&3E?BB^NLod7f(KG15SaVDqZZA z98<4qUpWr4GBF7Lq;psBI7Xr6q7A&GVyZvN2Y;6Yx${db)JZ+?V-*4eOx}Bk>p5? zmF&&!%>9$7IhJ*?RL$kLsqn>-)Q`Va~g6XKx$ujJ~ST_Hoi2?a~qzMq;RiW zJ6i1@oUkyd^SM?=Px%k3T{9+joXzfG&$daumFR0sZ zOMW7*Zn~AQWHatp0+7FymER1#6bq4RAnbU}Pl%PCm=--Wk?=cw8$E@{d&9?@q1pHH z$P*PQ!jtL*ju4dVu~}bLf3eGz^bQFulW+}Tw%_uHCgjU()?J(aIk|rMTRe)F$-ipL z%T8Ao%l0L|WIHbKtnS0vmdAJUguB#(8>wm97vl=u zq??VadkF&GwC@vEdG>9^ptYj6vnKg$Dc4DPBB&(!6M%*wIb5(_%(LH-*v;AO7?7z*Ry-qOH$-89?QLQ%=G9 zol9;&Njbc^S|X&mjNfI|vMDyzZ^`RU(n{sX^i4MsWEBx-W5=@PIcobe`Ouvpv2iN& zU8BUj&?H618At3_rNUqHTkxkDInFe9r#<)mP1REb zffg(#h0IdhLgb3$)g$;JF;==ivuBi8b#8CpONoTdkzia|ag!U{o>enS*`qJs zo`43%8RzRozGd2~>E7rZX6B**rL(lpTyWb*^uug~VE%z!78T35)FgT{jC73hr##HA z1a`+5i;Ck<5VrOP$aiuQr-9=rq2a8}A@KMlz+6rZqE^Z9Y_~)Ov3ua~)dO8)I1F6| zwCpvlRAq#+VR(G`z0m2f8Qo~RHV?QyXwp6yRc)*!46};=JQPGls{m*{rXJ(EuYy$( zC}{&DSE6DZ?k1x+Juje?d442_Op2}LV90b37A2i8_MmaytuC74RHbIgoGv=G_}!7B z!KBuargRbV!+~&0+3*SRMS;FLSeB5IT0JsSl}8KS%QtFo_z#3qoO-Y*7W1T33@Nzx z0{PoKOmgdACk<(oLW$pl+`Ek(B}+2y%qJqABjpFOB)~8aggd4lI@cvpgo`8NF#{FtMsg*=olH6}~ zS+iE@tNv)^RZ$3==IieHfI(_KQ-IOmP@@tQzpsvj(KuLDk$;8Y({&{ZcSr~aQh>9H zO(4R5R*x(D?#~`oZM@k(@oBLRn=NYCoo~&Lr)idxD5G(ga8NZ7X%gCJ;04(3QSNJO zxeOGg{H-m&t;NQ=2c!OToyq z;LS{}sH6pv4-|nK91k&~-l0P^g2=>X_}BojS%fX9o!{s@xTpbWaAgLUo~*;)r3zKY zURdCx#;n6O@;Pu}uxm5Lmno}M?Jk^vKyhH0CuI<}GT6p>AJwcLj8P4mq?ZF>nvCk1 z3No9emo&jd5#uuFi{{b82|aU40;eF2t#co^W|VHp#>sV*w=N()LJLt<9Ydb{IR$hP z<)i?@gGF?)h+4@-FA{*;71Sc?&bBcdUoz1xt=r5()^r>}?;c#9IkM_J<7N1m-**;> zn59{y?e0TfB|8pebtEZ_(h^M8(->gjm^e%B9NDx_u(9G*x-9w4%OwW)1z5d!M}4c~ zx9r>9GesK6Z>i71F_#Umz89&zOp_fE`Ko!-6;5{^viHmz4cqv|Mwvh0YT0RMO7VV}#nv3Z8$32mnAg_WkBO{#Sy?tE<;4mumMz8tZe zR?>Fqipfi9zt7pCGU$I*<6o@Dp2h6)H!aP6)4r7EaG1;IHHvy?-MV@kqbs zdGfW_{OOqqQ$ZS_?A}Ye)LRj4{>{)y%`(+BiW=IhT7YS!cxdT8%b6^Vs*hiQz{k%1 z$-17w7a`=jW;xo9Qi*5LKj$ZVx}4D*s$?xOD9ElN5*4WBGVK+_V%WsCi0=W)Tm8eI z%sq&7|6b|7#R4)aMaw$amn2tCtEb(I9Z{4tl^j2j)Tz@%ukh?NHrKhp!5yDIDI!#; z+g=ZZeBjL^u-V|fLv!&R{oAj_N{>2o0M)r$yg3_?o3hCM-JmYN4kEVjuI#NePMa>z zmT+2MLoNSGPtE=UQ$X2W+>g8mO6E6l+_Att7?lukUJIINmDOKc5%;O@xbuOGeE-+- zo0xr5->p)V#WP|JKO%q&+i~uGb`=)}_^_MOdkPs*sF}yvfR)?e*N*7KOSmM#vtibA zpFdGUGY6g5nxk!+9H6XR8_Pp~7F(c}$LB5^s5Y^GAjOqKZ$_+evELFh#@5OR zspX8LB2`|5E`FrmCGN2Z-pOb6Hg2vFj$eii%1Wp((y7bw6->_~mYDh`E_Y}aFBCuw z1*dzVcTrxZQETvYcM;DwB4s|iBfM;WNe47q=Ert_VqnExY)JkW%T-6+OqWOaS9iAg z;HbaLZ#J2^2uIATUpvzFy`iT}RwFDgBQzo?l&csI#j#ReVthRie5KO9pZxU(|8#RH zbA#zY3hDbCeXe7+%Q>|Tw_eAl@=Y5_>sC+1B6`u!i^Vf&;#uBj8VvV&x;uZWtn^B` zhO?v}6w4j24x)jM0a6d062)SM;MMo04RH&0^6&OS?)no$V!Jj>wkE2q--u9A%x3=u zYGM8VhFaKI{wLJJ#LD$wp%x}iuKx|SG=ZxoTVt}za!9(v!AL@hz!O19x|8A~3<8P3 z!-LODTE zVnqxb^-H2DfZo6>q_4uOjfzr6tmeSRYTkPjdq0D0CyPT}PDLn?;yh-^cx z9q-ZaK&4mXqcl(N_5#U6VG8c;i_AmzZUZyRD}up+xc#$%CHz}=EyW_$kqROr1PUeW z{J`|TjUhz1AVY%i@$tR&$=mrjgjA!gf(B5)SwhZ*b_gL8C|dW`1_5UpQk>;Yyh5!3 zzq>KE3bYYyL7YR23j$O2AwvXmcNXw&S zpeVsyuXg$ba$Ft4ytzNVo9hC(bT&V!2R63BUx%8rO#4}`0VtmvN(kM=}->k8^E2rL=Gv$Xrt z3;&~!3!R5F2EC5_DyL673lWI>-)hxHZhHDYkmHM z@E!0CqPCP*j(c(Y`S(?TT}!JCvoB2p2yD+63IzxXs!+esI0)#+KYSiy@LM|ghtL4s z9G7!%KhH*K^wE8Uz#lr`p>}@{Zf?PrzryHV_S0NJ z)L$+X@7N+1k)a`&9%t~1h~TUe;we!?iWP>-Ftt zG%S+4=zyWCzC}e9ttR0FrXXyRmlkjED)#%q&%=G%^xDL}5S63wsnXyDxa+1uOS(9l2~`Gx(}N@>s)kmWPqwnB2G zbKt-tu4kC{wHL%UP+*bYI>qHhZ{A-Y6M@3r`A9+SmYkv_OFi68Z(Yh^{YfvAj5GIE zmk%C?xsphUCMPMiIox((3n7(PDwoU~{i@gNiMMx_0uVRB56BFSu~p_WR1@uztf9HC z>!dqf-%RsA4JJ(HS&o)R0 z5Hw#3Q#m8Sk%^&&Z-pZl!`jxI~f09F0=9J#c8&2TJ{fdjE$CPayL=NM@ebZ>9VtZvY&d_G+L(WzC z$oj^{FjnP80brD7O@zsTVuchWO*iGSE9`7>h|o@te8ykrhcOS4dQR!Z*adl2;3GgU z5d#yP#5_C0pwQJ>)uXd1R=u>dzr3Ttt^;G%8;TzJ3FZ;}u8)!@^_U~w_>{@#mpY=g z*DoaF+$|GBV$vJWl7o*%Gj!POwq>c>JB%u*QjF+u;$jsM=D)fz_tLPYU zKOE*jzO_7x+{}OPp({lzm+Zj&m^b3W?w#73P(;E#)-E@K>PLH?Cg>Y1)> zP_OP_!cyyzG1!5i%GW@>P;z@%<}dDt`9-J+Hge$ABVhDL6~|xHzt)ce(tInD?Q$QS_0gGfV@Z+Gx-gvW{kC(21`V)IrC8_o zeNj#79!zN<51#6FBtz5 z6{x8`SZdknYVoeq#YpA9$eEk;8@+fED>}V+OGp1D$rvvP;R!eK)3ATxq9CKYOkmE$ z#8ZgtWX8;nqAB1%L0+|0b)675>iyerLaG%W`*+R11Ls)u6m+N267TZJ0X$o_(u25(O+X zXYMqYP=44rRykXs|DBmv$$xS+jaVYcE89vt5I6WLe`Bn>C0NHx1XxeKDcLoXCzSpj zFuoQ-uQL<*Wjr3L(ycy|s`JMVa()K|Ej%&B0b{td8%!X~XBl7H0mHFAYnrj3@$QZ* zAyygJkf=DjsPlIeYfrgGC}@$c0z{bPranQK$*>K=VGiD{FKQi^-NzkqGAEBxigK#W z!b8vPM~C^sYVr3yMW0KoVBs7;s#Ne&@=;;)e(Po7KhiHQzsIkX5G-FWEug2FsM;~7 zxulT0u{B|zQ|ir(MK zG+;nvKgD(Q=@d398?yzU!#W+oOk2*kfS>tMz zxr$t0>$Q5Y*mlHy&7dI_TGlR`0e4p*ks;qqDnBV#oAfW_@;G9j_vnCQt=%>!eyB?! z2!}&APPC0^&Z$Onkc3v49%VRk0SE{zMDen*vy%M!35u8Rg^yJEXVM~p+hA@ z1OygZ+wlpz6mW&U+Vkj$>MJB2{O@_6yp-ODt{>~07do3G#IVg6bHd#ly1meAmsa@e zMtNL5G^Ms5i*PQ_)*DL*_1ZPs7C!lO`~S600|W z9jhSiAcWI~oMy+(%k9NKh>-ZI72k-E*d}p!O;R%*GAD#+%1x+->mv8;AdYZUuviEr zT`dX7(%4J?p33%7VXpt8=Cu8QvSp^1^iRkvoT9_LEWqDNVd5DF^0B{$k%cDBc^kv< zPm&EDmj`mS?H!$Fou>9^r2IsXWB8ifR)%5Vi%B9W5wZ^ZT--y*9m_CFOaoM(zZt(F zXW&3IH9WX+^P5y-p%j{D8O%qEpFJ~O{sWWz;eucW8MWpvFgv#tPuAhd^)aT?y0DGsK5K8p6^H zTVKlq7ij^4c05KJi#n2rXq;{W3JuKpS* z*EErNq(*tw45i`CnNOs+`EF>dXv0qDK)~&eM;S+Z*OO<+zMI)gJ9;?_$8=~(SFi6l z>%!{T&KG#LYq%M`046hE{~G#`nIHiL+hm)CWQXyE1$J)Ioq903rG_cdMEMKlbZo2ES5Zu9WY-Hkvds(YRfLw2G{GQ%f|&;ppF=u6bn zWB;sD-i~=}i}^|QdFHcC(#C?9*NdORkzN|?xbA>viN*lINMIvR?G2LpT88 zT`|Lm<)6rl;>eMeGw@5b>E^c+iKY7Za!e&{c&x~E(;ng38ZtfM8TFq{b!F%b&C2Pb znT3h~0izg%&YBzrWqWWA7>S3T9{Wo--(3j;E#&G)a!$R!=%SHdlBIVx_TtAmrHje| zMo(V1){RKoAvb#D8C~~Ta?ZvV%8hw5QF1|w%<8d8J+}8_-S4MYCT5IprI-2k^P|DL zEWQ-THd*x)?h_b=je@fzC6HyU=V~!3Ii@g-C3pI_0bN`U)+Xxp$zovqb^DC(U9ml2 z?|*n$@BPZENlGyi8koS!ZJ;g!od!g;vFx4y;AaM-upep3i<%jjODdD1ffXlw<#e)q znx|fH&H|v!i=310w;0bw$IkGs?pdIW-|32n*qFMiIW!8`wc+(WTA!#gEvTY!e@x@Z zQg7}bd`#S;wdE9lv_rdI%(hC_xaCI_j!qq?af{xg7L-E~OTo4&~IGF&X;qR8gu(U(Gyi5{2% zFJ3wsHdiG9jUq@J5OS+<2GeS5ff{pmalty1npW$8g4P5xClfq&u(O0DPCIPDU`Wvo z8>=qfn%IVD{O;nSerJ?;aEXRot|ESTqQ82NB|e-^(2=WmYNhSxYE0Ef+A*G@vE!LM z|I6S&X4=Ph?)~jdCq_YYN@%(^nzmM|Qf;IXwpo`MM(Emek7H=R!TYMa5ph@dI17+j zN3S$JBLl=+18Q&_Z=}Yr5`|H^=r+)t*@snRWHzHi=ln73VuScz{-Bzh`vk5+BBrlNR0SeO^_ zGQzupCYKLaw^_GOQ^J6E*p2`gq=m@_0;@$k1qMZlE>mo#8?58svR#O%`y5{A37gGZ zV2j8IfZGKUi16VWW0f$ZXZru1v3%>UOyD}N2aF@`MGyA~n5H9if zONQ-W@b^)r-0uEj!oga=&d}A~+fVf;#oDmIdINM4FEiP|-FN!L*%Ui<1;c>e=(Q0^ zDbp2I>ESHfN-+?sS3*~BA?IC?z+c7mExMPj{bGFOnS&MBN*iwRyOz)eP2N4&Fh;JPOXoe)_5ruF{@+3*^H33 z&UpBHAVxLxsWqBqcjtJ|1kQ;0`RgVUs@484R$5kX_?|_P0Vx&2M?S)?3YDov>gpIb z_=2TJ=3NhkpaFL<)%#GTYn5g|fBd3z-QRW^Wj&f-Yb$4YJ_0vrOwI*LADU)i^ZKrm-Ijlmf6jBtI>RBq;;@`)gFbu4oyLPP2zv5t$^n=qmPpR-*7&Q^IsbFYkFW_6dX1Y`` z!pzH_HlPlHy*>|UfFadVJ~nTgMIu4&Vn|7ai;oG$4O)pa;HK7{qqhKKl)$h20$3HFZZiQ-$hnH-u($}k4Xt)2A%fz~U8h@0fvILC3k)=imvq%i zuFt01p-+T<2>O}{0@gZx{V63np@uyzFcxeCCqyw;?#U6WLGDhi3KYCmfhexrnO^(+5?X?7Lu8ZM z%vEHuCGrc#n~ZoAJESfNDh4iJr77X)?;;h`+iHVZNed23kssM|o7UZ7$D!~_g2#ch zVyPj$GBNbOb9&3OIx)Pg>)tMf_5HDT+ecjY^d56rzt@~cP6*T;pCma~sS|p8oV7g>vO4D9 zC9VY@)enD7;W4Em`B6MD?NDNoW5TlvD=c&ZFU5rrPVQ7aJrp$zRbGur zlrFDXoPWec@F}!)40q(>_cw0vCxP$JwmLfbs+}~XY~9@I@e|fg+OnppL(L&pF&y)D za^Q_o}B!fXU%RAE#l^PN9DEB_i8w%b2ggn*ejw-r`Q5j0^{WMtYJqcOmF!d^MHce z6RQzy&qK_ydBv~Y3Qu$E=R9&xHSDn;+T%V+{|hI{v9SmE+nC}`tC$`AC=FCqufP~P z#gg)+j@<3UtrmZkY`kIo@)n2X973b#d86Rk`%COQ>Limur5J+W+lY=2154R1oY#BO z;iQGEnXUw%9kb?xp5rzs~Rb3QTtYuV}71nmrZCLsIzpj{JY$^P_1w24&*MAzSQoTSMWW&YwCR zpdtw!h)+Rg`$?& zo!iR(4`b&LBucO)(6-(ETCZ)}wr$(CZQHhO+qP}n{BQFkW+G-W%gTsaXJy_~=NNj4 zau%TehQtHLlBKGzWd#|5mTWwDlrXv{OSDzcEJFmaSWFPiq+Qhh$i^PEXgaNIHVu6vIQ6uO5J?uJa zz314^D30Jr=g&QxV}#VfDZ(0d7}V$_cEzL<;GvATc2qr;uc?!?NTO%c4{FUsg+EO< z3}Yb!4+U@~`Lx@i7tl=sO#F)nDGqfB0mGmdF* za?Jq2W!$^JeeQ0W9fO|z%vt+9EpoZ|3pBClPYc!JW4%3@vO=@t5Fip0d_r}15BCo* zpm(jhvA*ObN1p8bGs9O{(B;ll5K%u`sl>JOy#`);-R5po_jEQz00B4d-h~PSPr}Gv zUS0it<+b{^ezD$~6DV7A`j)CW!|3vqf&^`foO;O|QFF{>r8xG-;jLPBM`Ol}ATdv+ z-c)tnv@NJ%PY=|V%@>=M;BJbfAwpYIIkd_NKZyPu^inht^yw6B=;`Z;nRc9p z{4Hm9?&fI`89iZqYqBwCqk>_xE{?)4%$1q+EL&zj`NF{NW(&*Edpn#R&ool-1DDr; zL~f)9L!(OXsdlzU$K7?KC7ic57JI4l2mH(u&jcPeBvPC5>Bz@8iSXim(CwPHCoC@kmV_pM!3(c5_Hv zxZZu{&1}_6l{BFhW{wA#MbnkTiyFi5jk&hJVy*%ZRu|+uk3CEV^XA1F@~*@ovTy#L zrbGE8aQxsfHNk*R^AaI;C!?qrk1de>4%`J(4Xf%>$@Vlbe8ln;WkmQ;+N21NyARgO z($0G2P6z1#`EpvvkAvlR7h}!j{<6oih5e>PxH|76`5((2;ERE$-a@sU8I<~reQb-lNU%YHx13b8hZf#{u&?oQjqxqot>eio#4cA_HA z-T95;_8UGE6R{}FT&w=hO~M5qj(Z(>fv(?^)L3c2LAH}HwH^1Z0yG~Nt9rrXrY7XDhDq)Hme?LoKC7?#oQYIm5F_|OO zwJw9@6?WttM_s4epWDB!jTpNv8)}^6MUiKh^FqVk;_*4=_Zs;4`m^T9^!;GGcP!Yy zdL)lu{f0Z;9hWCVdD6ZJ(bZ;~m#neRFr+~AAfl_+NXwWY=LYI$b#UWakT;X1eU?fI z3YqUYz{ofthT*xrWnB@8SjMj^*!E#%k&xS1zPFCLUuJ@n>>! z+vj~6(i_98K`$(u(jg4&OhuI8K8{mhmX^x!vubKHW`DB18+8D~qoHoWC-jAi(?sXJ zwtA}}1XJCbFR_crbbq)3Os$Axv_7p?8nnUmNfzVfFfik)8y4v+K4w_UYhn{L(LJOq zpd@tZ1^({UX$8CQh%;t7iMziW`+R5-y}R(8-5k16{p_P+YX}xQrEX$P2EH@Yoo;A^ zB**$UiOOolX{tSwd=0)j@Lgm=iZ*ZtuQBf2Xt)NUJ(*D+1YEYs<~uoGR;<&U`c&e} z8fhzgG$gl%B9TVj7R79_! z^Bs*KI4h&9a<{(-jV@9l;1K_3a&y}k!x*>P(CX;dn4_<= zLyumRS^|ZlZmF(~0N;%a3bb|}nP|5x_Ns(l-znu?XS8U*=!3%8HA);!6x;ys8lrc~ zB;#rr9lM%YY_|H>S?+jJOROFe4**s`>RO3gqks5t*KCnoBMpt{uth7RI*G)^$uOK! zNX}xLst^xuxzpdt?!Al+C0>;(J;-54|o3qE3_jx2t~utrWU3OAYQZvG)^KTF~hsSDd>NpJ+2kg4&afRnpwlW-Tfuts?hvG&T!uIPQ>%lN-3-3 zF0_Y9iG;w;>ZfqWd7(K!pd~J&DC!0~XL4DSU{RnHgB^JhW?zoU6PJiI?SP|p-cXu| z!=?FJZ*Pfa=XyZIP0DETijc0&NTuZ6FvZDBrT@Ifn%135DzJ@Ti@&<*6*`sCBK3R_ z!n`sW+SAGX47&U*|LxY~J!P*x;{|ghsIn$UfqHK_6JX*12iRSoB+SQsq z9k>=sm zj>YRnG-mJTD?|2S%tiG)riz>^t;jAGDd1^#x6@zN({u=2P0V#>^p^$LCMQq>&fgk= zA-r)5gWa2PBnRIx7q zw;7+8s_T31Pc-~Se)!Mef4#3ic?m?{LB}H^2Jtz3j~xpjX%V8!8q)G`V9jpGy($9r ze?kLXST<*8SdqQj!Xxv(k(3c)$awqj9}D=ahHKwZT}#yR&+?PUFJ(z`N$j6|OGyv! zFA?_1GUEY~d{$L@ySsiFjVJ=XwQkWlx|?4(oV6>cUG##?(&Y+k8{590GWKbc>XeK z&_$8)-ii@Hr#X^ZVG3PNjqEeb?yAv0xhM~uImN?)3xO|*oA0}P;Tj|#)Bhi|0rUTx zHejb?`7d9&1=hSok01vtVhfXsKaqf0?H# z7%46QM0RCz6A}PqWJ+LUWN0k*_KM=f=5ya8yQ7Pef8Q}Jd^x`AVQgub9NuF>u-QB? z$5#FT=BAbajFf)qfuZS%q2Z8y14BdKxPqGCIDTdMk;RaFF@Sj1&`i!jglP56j;?h~ zt#%)5r@XNM6owW6jI6Ar+qpLY`hOL{B@G4f_-5wD2bN9_g$xBP{UWOCi^~%~e}nQ4 z8toh!4)u+koSlv7n(U40oaxZ=N`TumIMe}>q_L&3wWOp0e2ZY>Sexj-Ihn!O9Q-PR ziw||7{%A6istSTD_J#IsEUclNz3m^sFwr{$cxA!K#V3H0t)&C~GNgP@`oZ0~+5=3% zO#Q;Xw!Y%}Q~CRH{Kfpcxv_=;v`y`Q0>CI~spuEbMirQtiHzNcVD=E2pWj?~9om~8 znP1$TKOfqky95h(FdzXi7z^_|GdsW5zc4c%-#@?b5sQWK3-Ks#LZ25NRvjHpJ~xhd z1MgFi0#`DE>+EX!_32RU*HXhb`-{gYnHRo}Yo5loNnZg-eVr{`EcDy*j?n*2$jIsp zRL4k9Z(sk<>~alQVl#po<%^YfVPpDHn(z*PFABGl^+&=|`k)lEGu#p|=jg$=7M z1tYP5?=uBZ!prmP zz3_cThpd^`{K@@ ze)nkh8oA_mu_`Z;{GTT1n@L3M@CM1w14fO&&>yLJup`~Z^^>Y()Fwf7##zEbvBO{04}=+@RSwy-cOqvoC`qV9c}?HA}OPv z`~mI|s9w@9?STOh9mP-J8bDOVZ(b~!#V;NlK;efkA}gui{2lHS;^G)Gw$yK$OXEA8*`oZ&MY3$fIw6>>28B)^q>b!1m06;q z|E;d<>)r*XANKBv0+jv^#I74SHQ3R8tLmrmmT~?<`^dSzqkZMweAG60%ej7{eLT+58AWKJ)rG-c9~4asv+H^fBv~|3w9Y$c-XOeK1NPV-YHSF0GTa44uKP6EY#+x zC1?66MHW>zP0?l8-qrxC;zNFvJ*A%D)wT^XDX%}fqJ2GOj3Ig>)2O(iq@Kwq&y>MH z=p!j0$g6K}Q$y?n;tXcwsN`9Nnw@bLk7w6`l>U;zL*Vt0!bUgN-^I`(F9dGhk{RaY z5ot}~sDSqfZhxigPK4L2&5Sz#(Z)SBSc5g-_F1Fes zU~dBDi36f(_#^314@#MJZ6efOI4ZeFt+9aGlU1Z~);}SmzM`r_<3B?S2ff=1LdoNe zsWuuHO>s!9$;pLXTY8a}#Ga`k#+nhcQ&i?~-9E-;4a13vxQAdZ{@R|Xx2nnxKtu`k zaaqv()A3uRSgpZ73U4It=3sDiH)%S6tl;|$3T0J=(G!b`Q9f`&#hx2OTD|8Sj|Yw zq_7hRv1Bnibuh3$*-h$rUHBAr9uP#4!1eE^4E7JN8CKB2V&#s@iH}Qdn{lK|TdGU( zF`7#hg8heuu!iN-Px%(3XcJ?Gz}wB#Gtt z+R}55F1ZQyZ)xC|{!QBc5a{3l|B%5VVPO_~rr%-ER1v}j`U@e%18WR5P|N#c>1edp zIQ_o3u*b1Cy zGLVwRxlVKxZE&Z72x<7SiB`1IhZ`>dUYqvo?eaiDM8+gLVpb%>p0S{0Xqc;K(<(i$J?nRSqU)gaV!WRs?>>?k}Hoq&tXftL`_CYSC3*k zFyRxgrt@HuNE^p#Hi?pN4qGuO(t=rQFGqAtUy;(RN07DaV{|z8?+aB214pC+^(yT1 zj6#~Lj3iM$ddD5=C#&DPU+N;aArWs*IfG-Y$bN~KN`UBBGYYvZM44ua{hKG!?a_}aGRRW0(FM6A>`MHMOD{-hKu}0HinA!K#QV1#-qa*Q zlkKYjkRu4*JCTM@Dvv_*G)(muYl@jmPJ){s?CG6`qbl7C+T$6U_kaSz1_(!& zbgz7GGt(VBloPbkI6NAa_r6MJ>!R_)LPk!SS{c}KLIKx#Joljr0G*He^hw%%mv<(= zUM|!)_5HmbRH(Eju^-}Br*HP;3dF(Xn0m5*`OL~`?`r0lJ+{vy`r1HN1{^`2e^O-# zSsP_@idU}E_fH2$4&`3LnbwNsSsAjI*WyMZs5pIQczsjoZ@5?{9d(G)6P@R?Dy3i% zaPcz3_zDeeNAo-!=rVX7xSb~5`78MSFIcINWIJJiYH2OFHyiYJ?UTo6(Anr^JNa@W zX6Y$D5#Z);N0(BnS#)HR*6~L_So|`GFU5h+8PI$H8707lbH^;h5I)`-2Z%~+v$1S( z`7wS!2gZLl$QCO0l|h1(wQ#GUX8qQsjCOLxMD_hi_5fK&(hoNSz)k;z@=C9`pXdlv zB!!j659&mI!^iWSzEEePD*VF~1l@X2e+kGu_5*cXs096Vid(98gFN{}c~eY88rV$2 z(ZVGvzJU-Y8`Bs1$ZA>$JY43WNW~Sv^}1^i9$M~jY7lHt#4)y^LRvFx{MJYyzeDTJ z{m=RYxb(juEh}s)CMxVVp5$RRPR9XRnu28eHcsVpXs;1zmzdCyg;qE3?*#f86<38p zg+Xy$rwgQk;(4N{r{Ll%pAhxWLV@&#v89XCJi4d(o z5Zg@})gsp`%}4b^g?#Biu5S7tOZ3NaAwM-oXM&HQPHh^cayScuaCz^YBA-qu6qD}Q zm+QxVOmvgyLNGXCzop~$U(BARYVDFcYx)jQX-o1w@N6)n=~zLfu1ZetqX0}L=1L^k z6i~>BZ!*$K0u5+qo(2VP;zbUOE zJPQvJ%-e+&=%L7Q95a6YW@A*){d0R8OeW^&SWWoq>OU?{vJ^j5UGE71_#rhZ!dU^Xf0`#me_(8JVqWuo0)VblqgVz zwRzU8_r9&Jw}7*nWqQXZ6LwK$eHL7dz>3kns|tHP5l(kSWX(9dDgG#q^2pSH#1nU zJBX(j+_(;FCi}i18leTuGtk7xo$LS#6dj^SR?mk5aUZ9B z$zekh7tt`dOpWc-3$VsOlaPPs69)We9j)>{5#|jeSjf`9QT0n!JZ-l(l0~)%ssF}4 zOccZUU(+2)F|=u(3c_?^&zFj5eOI`b6XfhWMWoI2w(sMQiSKoQEvC>9^mDQOG{W$OEl;kfkxl5)iKpDRavq!= zaQyH!z=9C^9gsMHu3fEgRR0F_Db^J9f{lKgBuN%fvwNl$<{-C2Ly0OUBA5 zsQeHMCv?v27lh{zjAJlHK)b;Z0(bF%?3V>LnSV$K>R!Av|0Q#J|83t#Xi&ikh4i5+&&30(rgV*zW2u-X6SOUfR(+)>y zyKD$Y`*j>b##kN{yyc{C80bl54EeWkyek4S^!S9d#&sU}mQBo3o8vLtYl9~GbaJ+3u?`zFez^Oz|NC~lR{?lRJSJXF2)&0UPh(#7!Qrn7cKc% zEY#6Sz_EnZ5<`}a9m3t3nmTVBK>fVh?L>;h0SD;e)Yr52{ekB#b zfOmKS^zIx?VW{3Zqqpg33$F`&mp?M>!;K&8Qsoq*q(uzZxai8u=EY;iA&NT`cxpaw z+89h=YpS67_lf#eTRdke=PUduYeZoLlIfZ_aJpI_+LV<9v12==Grj!SEMig}W1ton z%w0@5bf!9)AjP!0&3Paz0Y050fti{K>M-f?brppqUkli<<^!ZfvCIo~I?jNt|FnCQ zsg3mgH~UXuB&LozTW0KUE9BT6ZAz7%2Nvdwo^OIKO>D0=n{8q>?i`~McsdFdNB}xl zVYRy2mA_t9?tlYoe)S~o{50&4hNvldmzA+0d`L~O9ep^GlhiECfg=SQ@Z2j8kEvpV z!c78|E_UBs9?Mt22g@*F?}WY(yTNlR+>un9c{;3at6ua7QnV44(1FZlrv+c1Gunu` zo{gK~<3EuWj$$;)o0WyYd_R_x@#8K}z{ef*O9iT9To0*L!!b+uhKj*E!oNo}KK%FF z)CW(*GHl1K0tno>)upUwjWMQ*#Kh_|iH=XlFO{`A-m@M``~R$Es0BA3>E#@?U+oo*a~?tQH8bw4JcU|st|t#R+hzh@$5*FVC=rw;h5`i#U_mxr_h0g52qtfPA{jsj-&1d1yu1#5o1U%pJ{=8d9<%#A*4UD;i zX&WzPH8H>j9rL0$!uJjc36*wkU+sa61pUIWYb>LbR?E?QEB@Dk)uYPtiR~noL?$C_ zg>S$s-b-L|j$VB_>UZN%;C6G!Ho>m=P1#kX zd{l}i97$10@$$<4Z9V~v6Q0+(Wx(>gxYD+{RXf~O6ew*{B-EiU+alICOaom1t}|&5 z?#v}Vi`n~eFhJR3F)j%q{`rLe%aRkFtgIFc>0VbK#W)uB8?>3MTLKV<2At`A`eB#Ot>xuBRFCFS zm0x_GZ?=+fmjFU0^}xt7TEMY|1Dg-$7> zP^hRhutd>LdBO!2DzGM0+KVJ$x}wNX03aquB;&gS`boCVoGyZ-k`;v!T`PbxCk#n^ zEO+Q~6i#;o7V>|l`7kmtUOlk6dLRbdb?qzWFO!k8^er?gr0b(fomXlNMA?Ciw<-Z4g~z zdY&uG%*|I_X=hLpyBkyNH4zgaVbnE=0rKcp=`xs26ugHIkJF90hqLGYoBlWjVVxwU z4*c;29>R?FRR^6-@@vdsgS+EO1VfUUc?BZft#ogO=W+(cHf@u-9} z(WX5Tu^VDMW5!EO4oDXh`gK6vZP0L%^wovoU)84+GXZa>z~^6srae=xE6_LV9@-$r&Kpb&)Hb zfg8yct(k3`7#>^Bn;b?!)WSp_VOB3u?c|vnUkRBKz7bC}7mtBV^>oUd_!_^|{!eJ1 zjkUVAL;oS~#Ip&llGB_~rI}JVp3XFPt{iAxmnw5jLvF3kF`0tqu+D6esoDpKRxlAx z7m!Cf14!{Q$VC&mHf=hLEuUxQPrH zN2s?bcM>&UuBUd-5ZYFRkKu~%bMh1vL7L_?yX09!yt6cp`okfl@yg8vqTwpe>fc4v zPh7Pm8jhV4K`ii91-^^oa+L1Iwzw)Z5*=sJiy>Ek zpu**zsZ%7Pnxws~#}UGEThjXu+bMRlyXWUb<{(P5rqO2EA(Wnmy+%9}+3@2!3ohKWBD7MW7 z!c*{s%vT5LQO>~hO!Ph8ouQDr*%xUv}B!zS*M5PHNPp2 zmZ-B&R@;JDYZ8!967J4{rTSKKW(vVZn&3cbW+7WlZ!oRlJa#zhHG=6iD+Lu?0j)?x zR^s(W@rb9ZmB2q-_O-YpK_v;h)&LA(Y_Yii%9sGDH{Cm&56Ti~y^9CPeF^WDQl5^V zMAYhc97Bu-LhigKn`l9Nx8dh3p43twgdSmY$^i!4s)drK2!L zQ?1y#r#ru{wJj*H%tspw|1=cEd4ul_zTHl}PL}B`VSjHrC%xd8L8C5=HEoaaaaJ*^ zt)3r+heKck^?V{+&5$Lna&l>|5&+8$V!gx?H_o z-$%#It+*-7a(Ek|jdDmH{_I2mI-nOUuNOQd!>ySc+wuuk%r~k}C`av1N+Z*^Md_Cj z!7U;?bI~0omhlE>oq=YZCPJJc#G!N`)LhG}Li9R_$qt_w-c4=VI#9FY-(onsXFim~ zHQN7$ZCxLcU7D-m(B$fEVr6jNUwKew>HI-fR{j#$%C10Y!;#hmsQ0O$l}k%u)sTC5y1Xt2BMM@!Jwhi{ zvC_a9-$Ng&OB4cfYA8o|INN=(^w!MT;|R0pl-Dy$BZ1tj@KaG80l)sq^48va{r)jV zczoH2>XLoIDwpv5R(ZG+X@u6~`3F{@@-`NR?wyR4Bl;Z0+YbGL9N<&lRBV$1qDUTe zeaY&0+VA`nGTFPYjv0xggc5}L6!8L0ucmy6*kXG0mk}i7$P1JJ;RTw&^QdjIx|^z# z^?`Nw1wn8_;RAa>Zz#^Qs^nR=t1^3#P=1RU(X?c zFEsVLHQc0_;##zuevapZ@=^mQ?lyo3%}~s_q@`2wqY&q~#7SuPDb*WGkqtgB&i+=9 zR_jsN9hnWuU&>)4PPPq!br-zQttfBM`wVkHSj>wt`56tOQHqO^$#vgw+-jYjKHwk2Xs8jSAwSX* zE_Qq{G9mEE*pM<`tlh2DizF<)EdFV3tLmRy&5*T3CDSk3L~ z!M$i{w@qx84;>NRb}-u5*=i@jN1=5;j{RY&GFW)sMhw7rR3NKDvJK@it%jm<==RnJ zahU7$OkitLL)Eel+73kWukmj{Pk(VPo^sI&A@X$FQV)tu{8c}AFB#DSO+zdGV_@jH z&g5B1C{W2P67+?X9ZUj%8`w{z2!-mUh7by$qY@VxFX z;J=H0jy#h1F=C805=6FoElZyY(mmd2qiO#w;B@TlxKm%0i_sAaLmG(zxs9ngdN#~m2#VCfQ=Z~jnu{{-L@UkKyh4H;TkO(E5z%1 z$6_ir3Rpd$;pRdwxpn!W#gMuPD|;yOw~hYA`INaQ@`AQ+qGerR#p-yEvU=o<#&>Q* zde_U-!x?}z!quA9Evd$ST4&r`#PtSDmpoP&6s%zRaG(|ox(DT7nP4)agIYQDVk3qO z2k%?u^V6tG)aw`kA4Vgtg57RIMm}BLvJ!x6wpC*|YZAhdTC=js9Y;M{mFaGmPxxWS zIps8RCJ}Wc3*dUC9)X66%9xh401$=l>|z5?^%`wxI|69p9$ z6b>Gt2A0qi)D7`yb?}gQ?ysrQa*wgVb45$pSiLD^tR5Tt{FzYy zT`7Dv-G`Sf+n~>ZtHPl)Ushl!Y}G890)zF3pY?PfSyQLul}tY@+uan3@&u|HYC2eU zw-m+FC&c`bg>;mVG8WOd9$m%Y@Wy_wd&WZ=3q5TIpK3cb^NKZ$U|R{ z^D{NBi!IZ|;!hrb_4&dkmueUJjzm0v}4ZrcAA(X)raSqz4Hb8YyU9HJfuVZK*7$x2dNG6 z_U=^`7!@zF)YaG*$cLJA27hqmEJkgP1;K=kT!sn=fY_)9y$s8E5=_uFMnCL>uBBpn zlXK?a75Iq9h4eb?ZTBC6HX1!5YJ=yiK9~(-sIR!)Uo~mYOJuYv4emES6G+cOF&e!Z zeLSG$np|ZUv}O@yoJZn0oW-_ZlXnHCn(?fsh-ahbhKom=86BlE?L`PwG57fQXHlmF z+W7hq^}5O})tJnOQc}2X9y9KCjxX`|q(kHcLlU_N*C4J35D?!m%rMeKEqO&jl)AjW zxjAL#>?Zz%^LqS!NNVx(YTsG>RsUO>gi&9&-a|m2)2PyjC7MclEF4*g!qk5dB-@Ao zy|M{r=%v$XzEnbWpNRSFv9^4u3BA8e_UbX9t%>d zdXYS;!09ttfb2=-OFE(?M=*_QZ?DYQ9|^JjB#%MlexcR$=#w~Tp1gZlpZoPspKib; znHX_2GfP@DYZYZY{i6`k>K~lXM{;4GVFSx`7xyNqjMuk(B#LvWmKHIJnIdaDFaU{F z1Ori3^c*86%VJH?cv48-#%6`v6@~`@qy%ey04Uyz?M3|d5Vb%?VU@sFBt0g>t?(a-4dUt4M z+kzGU&6d?&4d$y=@=aSoXV2kmnm-zN56VI~6V_#!48DRgRE0kRi{YJRG-{kJ?703?`CV?{hmfaNa_D z6wPr8K4NkbKtjfcm012=Lq1F#rWr}A$5SvChf9%R&MZ6!SNl_kW0uQ9v zqE`1jvGNDkEGoxsG{cU@Dej1>!v<;1UTL_|bHa_SMxVl`AuQ;_FfHX%NtU~@x|`Uh z6;9PNMtl)FW=wq^Bh+MqN_S9g_nwRsQLbxDh~YqFIS$|X#VuP!+jP`t8}L{%5(B7z z$Bi|Y%qA-9ZRv_nJ5c)B_Pn(t%U;G+>F&rTN@x=GN`grHZhU1;ovneYhW>fqsCbGm z1KAml^M%<20EFXG9&bp&h)>7i+U$uJ`+bvUH88Sw`#kA`f9={RTpl4yj37>rpwT-c!uu ziHY7SS1`HKGQS=4Z0+FPdA{bOYOE$eUV{b5>G)m3sMAfRT#K8tV3p4q+v+21mijm| z3cru-Js23pZRne|GLu%V^U~Go$M!9|2p-yGvQiGFIrqn%O)FiOwmsEz0C==#q1WG> zMScDmQ8x*GCcuvIZq1Ai;>o5v4uCWQSQ>Xt-*;x#kkeG;D1WDjzOLf;so^UkJ@iDd zy-|{6i?FX;{fht;bVgu%CbbhIrM3fEKtkPE+ZszY=oniQ2$ANxz zUw>Uz4;0;rQ~6Ut>~I*NgFkj{kncqvwPQ;nRv<-`YXZRTtL*ZD4_(_9os74WO6lYv zN>kF=)ME8>vN@;}Jz9@`(vzR?MYtj^>JKSye z!RFirCgqWp#j)JVzkN)1KxSvkM%Oy)u9^0={?q!X$l=(Jg zvu_6Yv`oh-$jbPP>5!Ah&`yCspB{PkXk98swf0&gX!mWv208Y$-4B|L1&6}H@|Uo| zk%#RLG@?D?a2_oUV$7z-wd1N|nYOXWaKw~kf!wNrY|Sz=3%*kXzUbF(z1Wt&xrhAA zS|TNO%aL?dytc{gk{Fk=b*bGQs-WL27pN5C=H4G4z&gQ^OYt@3XECLKr8U_MYjOB! zW8rEHRA5=rW{K*1zRMnYiXmXlWQdiLV+hjt!`T?Ym-cEg~*x8A0Gy~ zb`|(Q8BH~~4IEsl*IOJcdQV_CUR$R&H>KX3QAg znR?L)=5ev11t3sKEfmu5Mm-?w!lwkHS)T_tZj*B)OQx^r6a8%r2JjqQ-#4JGm6Bmt zHb!56qfP8uE4TlLAV!ilB8-cb=|nqv4`q*i7~1nvz_%E`HVwLadho|EJp!Vb86`rU zXjg!bdCuiQ97;4!HrorVqP?S?_ve%gzKB#D&45U@d3AkWB+cOw>tlC;N`m%b^O&9; z2ls{18gY#3=d@CT+MkmHYvSW<{lKgz_W93iY5KyVx$N1S;Gy#SM()*QBuqP_OQ%_! z-NqN)=A-50uWT041YQ$aLl5`_67u+)LXcpNgi;c|(=;I;-k)M6_mY{@oTdt*2$tfx zS$cmZSd8eklj|feio5}xgwCvj`FXpUj`4G+-7)d%9^F{Y>@+ejZT(4tV)=f$!hRya z(rWT77P8qFK#{;_YmLOZ9m+LQ=H9xYX7Lc*;Yti7egM@`z=9eNKQG&o2U7b>%7(~Fr+*-=jM!2ME_NSczV>^-vFm^V&z)0Bfm)*QUP7R1=w zrNpOS$})k2$59QzvK*{An+LD(tHO#&3(^N1$OPBV3mj0Ou4##jVg_c%2`&7B)s0We ziG)2GfwO2B2kPioWK1qNW!+LcGejEVW2&G4ZpO7;s*FDyjshS#z)rdWVdlZu87$(spDW%6V419NlJ*6>H(eLJX zxUC8A4$m&IP=uhwDeC`cbs}dgbaH*&UiAKOs5Ecue^A+xyv3i3AE<5*QjcaYq0y8p z$3+vL*TG~sfs0r&okqH2UDb86q2!*cgz4mg6|XLbe*jp?Czf1$ zZgROH+y_GtScj(0vN|Q)S(JFugh;i?H?Q2hJ+$eh-&U}Kq?eCaNO5f1jY+AjR2HYD+vuB_Dc!m{7;L(_NQh*XU>C)xAnix;it16g(O=dS-eHGg$Eoj3=av??$swIG2 zjgqcgR+wb059J;%UKr?SYl>bj%B}NJ<)AHo(#!t1eFu`8!tZI{H`yr0aQB?5ds`~! z0e;s+O0q;`>XU4Frm|F>l0UCoe?4A4R@{#I`~xC{-`sbH#nFAn2Nw-jGqGy;ipb*- zPa6(CBUfsxDPifv>!koimEV&tH7WjgIuh&23QWrRt;<$2l^iz+=@3a(7OsHTn^ zDU$g%p+pO8OR(o<2$Fh?L00>$2i<=F0^WkHLHU+x4o0_02~C?VF$35U1+j)$Y+Sy*pj`)Ru;qwG?wA;h^yoVtn%*oT-Vpv205Wg@T1Ec z*c>ZxLL1ExW7yA?$4%DPypAmVv5;KXwTS8@)6y>WRR%?5)%pv%`B{r)1I~dH=1VRd zx31B{>^Re#;V=R&!%#;mdDPH5S7nW5bQTNQw73ulr#3uGp6UV&NkvX>p$EGy2u4$` zBB2k9UrrW2h(1sG+gvQ|>?BA)4XnxKg;dqxjK{K>f;;?-{SMEEMjRSPY2ofm&Gked z&THMSM#{(qh^I6H9F`Z@e7Ac-!@(Y~i6Bd9{cz;Anz8O$vkB?PAvYMN;Z)6HcF+5r z@gRk2slwSsZcy11p$+yBGE;(o`;i0ceP3}BuXXpv{>?QK?J*GD7WG85P5ypXu8f%_ z9nE%A{)5^Xv7mRiO#AMrd#Hi1+e-(LIj%v_QSR)gKrKG?=fEutR=dkmktp#1Rf=&I z=x7w;PA}ILf}xk(e}wE6(<4sbrFtq%N?x$^PeBfzV}fXW}?ls zB})>>Ai93$*+nfwD|WoNlan(Ow#OwMWo@yoRkrJPv&t<`z-v4zyzS@l2*URVxYVs# zrh)rKylw}NIrDm9%v)jtw`zND7=HD~lxHqn+Vl)m1M5aDiWr6tU)mZL?X~Kvvlowibv||a4MMOdji5Q6 zLlOB&vIw1ADpT&DM{^10_nf4Ew?U}CG6Pu9M+7km8N3<6+>iBd9Q``lFs=#^V8t3C zxyFuVg=)e(a?w7g(mLJgu>s# zWLE&lk)EQrNLb9%hF3dAEOVA(6v;?Yw~y)|(q0K;#fTMT_-6W*vrRg4y{z_e2G%!h zx97EqctZ6>pcf9NJn(#f4Ih4?OoH|)+wcio6$p!ihN^*-A(=WWW>D5>hN;cSvJ_gi zh3iU&(8n2z5)?ZiUel4GmDtpkcmyJ(2u|7ZY8gQ1|MV~Lvbter&<=_^h!be$v|;fT z3dkd?UrMB$K-|`An58qm8a2RPD9-mjFp;Ep3SC<)w+MyNJ&c~(+(_!o}+{k!h`VVLC z7-U=5Yzdcb+qQMe_9@%8ZQHhO*D2dNW!tvZ^<4D#-spSd>*&}&GWJ|^&se{9jvO;b z4w6poWX=p;36mN*_(MmSPy}vU{9p9Zhk-wSG(+)i>GYs>pk$+yFj6fE0Zd`Ex_+*) z3?DR2xhrAqz4no~J_Sd&zz~cXYA#9VVY;@j_m?PKFM56 zRN&?C`wqU9a!gUKTNI_8(#&U%$GMZP&d(_H1tl_?l?OXRKpoVQ*5uBTr1R;Sfr3rKxRq^?eth&^?z2)LNkT7KCtPt*Ld;Z+F2G*@%q=5~-0m zKNJV`=5ydcA>3ppkr*a(?Q1qaz+b$WT1uQMLM6DbO})D4ybP2|B$R2ebj}2`GwIIk z0PB-##R-~3+5jC0#C_v55~@?8@Rhfk3L+5b9hmx-lbpK1JeP@e6?x=9};&KSt?4kf-Wm+d;~# z|Bmj32#exWk;evAf#Y*0xgamx4U{ah!2qing68MBzcQliW6ch^RzZ~NO0ugVDp#Ii zTbhZ&4I;jaqcYm^6W6J)e9(?x6{{dCoL{Q##$mn?_Bgd(5SX53OI|g$S~i$Cz0)%OHAvUNT$I z$hX2RFVCJ3WmYl;pA4fmI(@C##x6>%2`4)geC=V?Sh!9&9WHD{2-+HYC~jG+78bPq zUGl>*;H==IGDl_ckLng<0k4IS^4mmz#qVa0b_qjuP%x{^%qz#LA14%Bmj#6l$U;2k zEawE^HTMFHr2J4;S%z#j#sQEaV{HX`fp?FI?pVm!=#HM(zr(iU#Ql3nG zpXmybxPHxx`9AtJBmElNu`g&zZEeG)d0fzMO6{rL6hyZidO>sx0c8Bm~whIcr46{DiAIDtZX2mN4AtQY_)ShhgU3`9x_ zt^i@c_7P;Fx=uPqkK&#lLKPE+(k>gj=r0f>iW~KipCq`FCz&%(q97m()X*+1LL#F- zHcIr3KR%?JAq5S&TDyTlGE6uMRoc!bvf6DG;9{RXkNh#58j@Pb4FSrF02CojAM+gn zBSgO&M3tO3LjSmYnVfjKk%P1}3}nKnL>kT9SO$avLNEeIzk?bY?7e@BaUEtt?|gMU zM2a7=@PT3ofplJ&zY#+(szDHVp~Hqq_?%nd2y7xL4SI%c#|NMsCJ0CL3jG&Atc@Kaa9KbC^5Ht zV8TIj746>S0Y%jTlYX*GsSeIz}m^#__83<(21_D}LnsNL- zb#dD9<3r+&LIxn5cm5b!hDO!X`&4Rs$=XW6;h6%gJO!=?!yjIY+MNvcU-T>pRm4ES z`^x{?c3N)xU{A3u{P|i}A4(FY#u{v=8lk_s4M=#i(D&BoB~1C+ zu_y)jV@M!KJaj!AI=U)OGYQX+!o73JI=wKJj}nchsUV`aJs&R{uKA*KtIZK08+yiW=RUHjxD8c_^JjB2h{(Lc z5AnoOR)1B4;jHy)K2p(W-m_8s8#^sU#izZboASOj$AKbF58Cuouo7&xzsDz}%Z+#E z6I$cym#x#D>Z7@wtx-nwrtqDU*6p%}+?`IXK^(}ZW7=FCW+ac86ZlSCFGaIkljH@c zO`1=v?U}MB>ZH+&q?Ofw?vC5M~5v~d?FF1eo8SWaKu%35d3r;ak& z(>Z1f*F-EYuP`>&pAM%l5~f>3rc5>aFORZbrih8i+wU{!(c2BiNaRbYn=^iVAPxxi zZ@VR*GSxQ+$H=e;v=q1o81k|PU7T#$3O!vfrO(Z~xCqs{zx@WT-&cOO`zAtP^{8Z? zt`m1Wz3>`uP;bpv{5C^zcOlJDE@tDc<(s{~KdjNMG09A=HD=f4OR1{+s@e8!J>Gox z4H7<~t|LV!>yL~Lv$Y< zblcHN3X?#T9mL;!X! zh*9Y6lTrHZk}}=zYV7EAb9{{!;$D}Z@djZLCl2+RNt>$oZ8|%*!S9#Cu0)hEs=Qcb zrsc{ZtxD#~E|7C#VDUFY&RszFH-AaNrB2tgH8V+B(+9kkL7CKMgcx(yH z9kwev$z&VDvgFo|N>0@;KHnBEJNi=12ublCBB~t8(O*H}7o&tc*Rzt6hSz3(SE5C7 zutOM2v7`7jdy1GOtsUQ<^Ck>-W?cWe78~e{u^9nBuhIE_{5yx-O-8K%hMd)Huk-3X zogrZU5sg~#notkQKHsk;rGx1!GV+l%v(%#HddGk{;fCHCBtaUM?q&D+eSZ8L1acMl*Hkd8&NN%4wJtRT3)T+(o z%i6-8{Vs07T1N|8s<2YqStO!`eGE_6$*ww&n;Wpi{lHqwAsO z`VmdZdj=D6s{OUxn*ZQXS*RMVCnS`KhOgsjm+?Ed1^!oBBxet=%6iiAG;j7V`mOWc zso{6ZUu>Mlt-KxW=WfFgr7cXa#LS=ek!nXDV}_u$Eq{(@auZX8a3I(8nW#Yx;5d!b z8$^%e_Sc!Cz$#$|;_nhO$R7k@i4_eEZ4jJH>P~bNd$^samR+If7jV>(H*X}y(DxwO zr=DWE?6&k@|M+Onzm0TnXxX(?xRb9_>7-(M`$nV`S zDVrpIh7nhiysQNV8uEfafPyApT?yf8)oj|?dCJ9jq%vO$CO2;fqG~?iRqlV&NOBl6 z&vg=x>3SRKci)ekBFC|ia2r3(EqgGxeAWdmcP^>9*OWMzlzvTZMR;6vM_Ptn;1J7i z9c*u^I}yFr&2-J38CSwu)9P|}83c)Scgon#ktq9vlxPRk`EC`xd#K9(HWO*5$MW3kIe6ew~_}s`n#@ys} z5|%l}#p3PA?KkJdVj5Vs>n5;$P^ zID1eS$4DlWZCPpzv3hXzdPK;>ngI+_Oa|#et2HDkpa4I-XTMh3ctQ}iLLOw+ zu4}5D4RC_MA3InB=6+hT@F~bJP=7wUKB#q)4ZwLo4F(3h5C~+lR#HR-KOAXhj?Tb7 zpd=Cw3x5P@M$#P#I6MeZgf%_7cs(j`9LSn9z1*fgVGQ~{k`VxJyD?BhQhw~6j=&N? zO*nqXK*Z1iU(K)kSLXbYK}7zGu)qG_DFl6|6UpeW=ODD=y0!sEr^q9c+udHP(M^%W z>W8D1qrQaw$|d%a^M4+RU7w7IwN-H3_lA7PgAkoQ9&7kceYq}U{ZQ8+3phBn-4N** zM53Aba>V+`Ac^~pjzBKm+mM2QChNS#x7c|B`sgRVj13{XVDS<~U(pCH&7J9Q9p)$04W`7meYT|;ruXkuCl6#tank{;EyhNN-8F{2f1Y=-%_>HxT0UV-uG!9XHhuQv?N-dLrC`%oz?3PhDfz1{T}wW2|NHY+LKoDP zYN<=QbA91HL(+AryR&D&*fy1Ux<<{VH0X+DL%%9RVfj+V!@Lc1dko%e*&=$@&X+M+ z!4=D9m)J@#wa-xcEBK1~GowCHM69J(J-~Z?%Keb%z5a^dbmLm5wcdc@N!3b0Iz@5G zCavB?rk=Zl`#NWGE~!2#xspb8c>8MRXYt~<2m0q~sl6$PzNO#51+N8cI$8w0WQfxjbAn;G&v1ZfASk#5Pf44pa|F}8` zF>KF7nKL$(G(O}QCR{&|lkZ~xSqOmZ7`oLm^m9bQ>o(s01=uvj{aXqJrZZXBV!b`Q z73OH<+*EEzF!`mDGKUdr5N#=F+JR1*BfiXt(1u4{bs@6ghV}82@b2iVwloS9p-Ko?OY@}rHIrhQW1sn?{E*m?tbf}JJceQ>cD1r z>EN67BE6w6XgeHmTb968`HapG{&VV23Eww)wS#0s%-Vy+px8LKlsE){mVPQjjf-+k z31i&GZ=wh34ipcY_<6)G`WJ%*4j^2wi32xABdEPQ1wS*;wgnxP_PM;e-jbU3f+W zNCmFjAWs3xaXTfxc4*U@`-73ahk;_>lxpCR7Z_qogzbSTsm&WSk&)vtMJ;591kNnw z96?iQ<_5?^?QCiOsu}9+m8&tyJj?(xFOTD~7>bvwteaKTG?KGws);4TSQ#9wE!^OK zSOlgibf%%^BX9BOd1F#Gqgd=r%EMGq{F&*66SHP2E{F%>^%U)fX;mp-tV;y(55!MO*bef!~Ns8$xVTZh9;xe zg?EoAqIC-i_?d;TtN9=heSlmEI;ztTGRBxi5a zkALd_X+NRVN;YwQ$ZyU`3Ng_?#F*-hWagg*7cuoczQtdMG|l~QvM$H}U)E(|;b8h7 zvo7bqCFFmyE(bHye_>EAH8mZvTN8Y?b^S+*T9}ys0Be>i9A+Yscat<^TOJCem}{b{ zE0B!a-<{7qI~$JXi)$>zTQYt-sw{o{29qscS2&AxQ}uo2|2|-PNPr7g-Gne(1K7q6oAAL5Gu%xMqPOf z!LZyPZ?>_+k??m6XKc8>z9lb_L$Iceki(wNU{HM@sMQWGA#4Slr41&e3VJx1BWytn zv=R;IKIKCn`NsEa5F)8g%$b z89m7sup{YhcLu)^8w{BnQP2yJi^xd6BIltD#2`)pdX$xDAcj3W^`LvTjfnVLCp z!Ja?Qo~%-PAcHWnP>D6k+6X_LVjflbBuY601e%J#r(78e{IPzOicvNQGpa&E1~Z7T zNn>%6Kt3v>=v_8Xu_T(_5JLKXl^S7wqxi4`jUrLY*K*I7@!R`RW8~`Y$H_xcV{YbG z`e_fBw~s~lN5j+?RAFH1W#(6DuJ3M+HkfhW5}b;?gS(fN5AluZc6M$zcTN}c%n|tg zYRBr>$9?6=CfdXKieXDOFh24FyiN}<7dMbbBj5Y|&PQ^a>)X`@k|$u}>%H06(ng1u zt9#V(GjpS>`_I2^{0@5}0y{&RAh@~>nf`zZ^+Q&7Zg%Fo7<%Y&B;lH{tR5d`QstfDg`wY#>+eeFdDM+v*xx@}ftPS_(xPDQznPP zXYOIRG(MCMv8x1v=BBDqH->+^+u^2NV4JABvE%r>q_bN)6!s#{_aeG%24Rm7JiJdF zx>Mlz03vvCJCte$xaa&4R*Z$mluv$@xc6PeP5?g+($#PToL=YT^aM{16 zIqnQBm-w2!dAlKsX2)s|KjC$Nsg*<5NKFSd3zDGhEE9v zxbhkkN|h>Sqb#9WsXYDswfO~t z!x%w!zJr(PFb+1!$cShynSrb~Nb1%T$W48AeC`*&16~yBSCEO0^lKJ}0L2q`invbf zr@wF;5rfnaE>kj0rWfzjO$O@>pzaC%9Ui@<>{tl%?c&nQ$K{sK`}^p`V5_UI{_)P( z)$Oh3d;jFRwKVl}B0+aC6*S-6Zu(Fayw-FG_1z+b_(T6DG}m`9aHaWNA5-i!ATI%D zkW7`d7}_gD1u^g|AId2bnDiy$J&gJCNZ=L>kHy~^u?>g}+w#PXwFQbhzAtH&GEftv zjquT3?CkqGJtHnM(Yk@+z)fOQGCrUV0`%5HF_10J@9X>CoVQ0H2XMDmlD@EoA4_Bi zKA3>St?4h)242Ql0EOmuqIrZdTJqI7=SOK5yP)tIy!7 zk)m(v5|Io|%BIt;Y}xwqQ~K#vB{Q{@>d2iOK+UBXntRboof`01%F-Gjs}^q0$sb4! z+G^!AGB}bQh8AQpr)vxO(u~POv@ExiEXv?FDYRo)MY(OmPLwDml4P2f!m%MlB(@Zp z8msCNM7GQ`!;xhM#C3EWnCvJeMSHDjVD#cRiM+)Ys)71T5j^12prI91AND3>NYRv! z%(ZX}Aj!;n%xfu5sf4|AE60!r1@A}pm1AVDs=18%7hb#E?Qub z)~x~#a>UEZojSvj6#9W1iB8r(CA1<>EBV$pu+IkYtMco6U24_bLDJR36h&uo(Ql9S zr2=S5;#6!X5zd;Hfqs%{juW`aYPhpYa07Krc?1n|BxMc@J|q{(TXfY{Nb9E0#=i)Z z@7QBv-f6|idMA#{OV|Rqy6KQcX`lMc3ih(0ICbLBlf*Y^Rfoe-65V13!zarMb&_cJ z!J+9dh{vPm$c6$Hs8EmS&qMqPAVm3lE#VU@{sf{5BJ$OVYXw56Jr2vpa)R26wjzm1 zArWZ(S>h}qg5K*qzohWSnj1+>O%g51V-k#9fSzxO+FJy-&mlsSTEesticF7x4hk8m zz`{gz)Sqh!41ghOCP74+I|xZqmH;k%))R>lc#t={@3h|093yy9q=qPv4o#LTyR^81 zj2Kjr?;w6oSb7KB_VG^RnZmMli#69#+Hi1IYmn^0GrY;B7mZszDwqK&1sQZhB4Ua z+>s^YNDk3MVTTAOLxQ4&Eh{uAVd)b6omSm{yD1be3Ec!Yd6*y84@MtC+l&v#kAa>n zFCa&xgobUDVnGy9F76_YWHD4OsZU0o+f2nao3zo7J6uxWtm9B0~|Dbs~LKUyZE7D`+@^zyTo|$C%K(2fv}; zG7E!5Ok@!aedkCo&y~}$@bL8c|nkfxt z*IH&6e;li|^c(W!*hz%!CX$$GOIs*ZAO?#nE?EX~ zFomBo3)b&Vi_lb9%?Ys0i-?CYri{Ptg8$59ReMprL#DV4{uMRq3Lv7G82Ml3HyC^^r+#RQKlWO8vW+VB0U zW-DknqelM=g-D_kN>P1c!d2NY*WEHD*kCeurru(4P7AsNd`{G6x4qVY7jAK{9wDYa zcAqv)98f>H6N|L|5|;TWI+(BNs$_OapC7;-3ONWeQ1EOIiiaUQD$~XZ0-1LS%_n&pD@-FfX?^ zGpa5qfipR7kg=Y*P2I67cPxX~lattNU4g$i`MwpPkgTb;vDF-PrfIP&V5>{Kk{Hw3 zIYklX9C?<(qKCw>v-V&pJ_i@_xG}k6W!z%vT9(R+eQ(w|LVbO7u}oj=0*bsE*Whep zTn_0#k+JGoH3(!-AokB(p}I#mk=i8N?YJdyD}t+fTyxNZ`=>gszidK}h?Rlf;w_B2w%Kx*2bIWLe4|53ce4RK)WY<)kopFQco*c;@cJJv zlraZ~)KjC=apwX6cke<;Ah2g}k4Cf+A zQFChY8z^MS_=H3cLHqE}hZhL#vG{~8m#lUXDVlw9=wNP{(4{l+Czjtm5c=wHjh(J~ zK(j9gpyOhkvT!;oT=rIFh1xPPFHXh-w4vP?Xn!CN-GMoahJ=!scN2COx9-Bt0!l4X zc*uEMvrN}6g5g@!d-DW0)t!mi>KrnZaP#uCn?}#deSChuenbBh@LlOSGyS|c zSnL~G|9V9H+M0P=E=@iD%={|*?&3TB{XU7v!fJ$vi2x4Z4y0(9O-L1$25N1$>;jS4J^FL zwE@G;;l{?~trXtp#oqV2=bEScJrP&>+s?<%%gOEd0M_sJ#fsPSIq+jY)Fm}Kwc z#LCCR<}DZNoP&#IYvPJ1(=%>5&<7rA?K)RLls+>_M~K(Ig? zHT>cFozFEXqEyLk{_4D4Xl!{q@KzSbuzp!T9X(wQu*r?a9OE`D7~d>te^tWiIDoH%scp$^P{! z`@`&Padv3+woiA$|Mg-Zf&(dHY--OAFn9c081jQYWHT~#Yuj4iJ z{BZZu+2g4)Ucc6NjxYF<&lZc18?^Ea(BNsLF%r7|LqzT+P-Qlt|NU#gW@%TuF@`XS z_55Z)+5F??GO*(}Mf3=Kt>ixRFhDYR&|CPSeM@2U`^L(x{$}K|^ZVs8{Ph>f#$fg2 z!tOlvGp8~YRJMG&(jn#p`?j*Bi<9}%scLe|(Hwkkx7*DWvOcq|F|ujX?@6)?S9Y5n zrzx=e5QxK?hI_Z~(?s&;pzQWdklNqk>_*3M3P{Lvs-FX2^51_*OOC~N_#z^iB0hOD znH{3NA+`2?>>kOH;n6;Ld;vXRY`YU~$j2_9Q?_Jd;x^Gpdol3I`|M!=O-EAE>k9ek zejhVu$4Tlx;hoUM@LE-1rV+lwf9ig2e{MJ4&u_AX=xwpERduB6&ab%keBA8JGMicX zT0+PymyTnfoo9Z%f29Veb_H{wI|o2n8u_}mc>l%9PkB^3{m>xuet9^~eGWdiMiq?6 z%{ce08$37`fXNIb_ zbjPz9WJYN-%)>-0j?-1u(_&t?^;z{DUW%rS z|6cS;Ht$H;ea_+WdHDop>XPwyS5^IF=Lp8B{6DE4#(!aY1Z-?XJ%oy-WB{&~57?ao=$7<0fLL+rYzep`WnW^JZ#Ic91(3F90yTw`QRfWrV_*#!VZ z00Fz(eqWrE0t}8u6PpvUDno8I>h^kVfa2TO^m46KKMb4KQgwYsMGnBQrmlwB6;yUj zJoD~K=aB^$>eK4NhEeCiuJhQ%C!5&Z+24%a-fZ|ncqvJ!Dmd*J6MUj!LDXOao?kNqXgkhXxL-VDYBnUsK?gN*^OsSN4FWR5q?UhC%H)eNuS=!u%!X(xR8@@7R z8O0e3#7^wPc8ksQxZl|vHRt(k!lKam4IZ($FZ042ZhO>NdTGV9{=xqCZr_qd`-Pjk zyk*snUF~@^@&00i!dLTAd3bNdtVuT)x$|u?TE|S?V~A_Ld@%sDfed!Y;x0yn+!8*p{NeD@ zc4b=s7^E6lYK(%}696_IDnON% zXwTl}p3(@1R3_mJ<`R6UWI}lQyFyjlWBX%8VY{7Yn1E}Y45n@tDy$g;`b`JwG%}K& z%5Dl7+^8*nvsKN-JS$clA~M~es15f=mzz`b(a)sSYD3v%V2lfsh&EcRKArC0@hZrj zABgdY(<&W$ZxF}^pFqcpd^TS`_kpEtUcd`TU?>(5-dAaIZD(f8{S%_`}Ka#x%X>NS^1L;l3MmD*pTpQ;7; zt>(`HLtR&(E=>BJ%V zB|L#(JR4plX#*W4DaSlBBBzZyu-_0VM0D6t8E!<^k;Q;MN=Ga*Dn6aCdhvG~2V^Ut zpsIuW-R;&UgS89iyn3oi$)k7&U9ao$5FZ*9U81}(qB2HKq;}6@&gx>*qwP*cpcWV4 zxDF{6BY1Ax=Gay*M(JaXj=+i9JnvX=Tums=iv6Po#8DK)vW>9?ldXyN<$h-9!kt}1 zBWqoxsXe2UT0Kz2JJBg zYX@O1KEkTjvnziV&dh1U$7Fc2p}JPPj>y<+yK3>41}nf4XDvl;HDk+1d8KslYb{`U z8#aUj=bN(9vs4r8gH_{?cwWKJKrFqFCa%osgGP0N!bZwjNJ;8>&+hT8a^Ps9J^}JR zGaVw*@1(I3Wqk?>7G==YByh}&-^{#=rl5>p6(L8RRy2r8lS5T9^o3}`E#R6iP%R(l zL9}8|ZGZD}{b-4$)0P7+n?N*m<9$sR8Y1;7>HMp?05x|e>UgcDUU{bxs)ap`nkaVB zKAY-2N2GF_bGP`u9F5b{o~wdxkxPYF!Q}dssPSyz_i-2I51j@1({rUbC`jI^UVi{^ zaf>gWM#czVI5m%5fCB+L-K}3+l0(gW@$xyX>Fky9W+qQ2CV#YbOY7CcI1i<`V6C?E zu})b1p;z~V%q|_?EtGtZw+GqDe9_s%R_03yEyJlJx3f6C^t<3v$AZb5D|{g!yR!v% z>;r85>|u;I?}0AL^RmEKx#Yl$yMK@*B;cnANCGEkwypZFLinT!gSOobFJ&SLM5;H$ zf*Qc-92%~|2$K5oAH|cVX&JH{>KRheTVu&gq|z6Vj1$0uG)gwWnY#7?9UxT?URklu zx-M{?bSlG|ki`yYb`pXu{KnG!`=Lh$hWl|_i&*Cq$E}6rAHKTN){-9V+ir_K@9?7? zQx@3wwdLd(cawbn%6A*+X)9y7SA@xd!F3p3Kqu1E5fX3<+uh%e%t_7D!>{&{7I} zGR!jjXIFIhVS{U+(U-p9WQ;!d+X@=E?4A4*$e$`A-4|JJxLM^T{ zB%CjgRo$2zhgFNOfGngBR9U5;gt3=*C8Ii&j$Pp!>s5{5>*ew2(f40nn7m^WXt$hq z^qX}G64py1XM6*QU`Z1QJwJLSv)&*hMv4S%Mso8GgkCCneHSeGC&@$P{2Hu%hZHb? zD&zhZ(qjQt3IW?ciuT)@Hw3~``6X=pV%MpZMed14KXl z!v6+@nEt^_KY)noKL8Tbe*h$=e+Nj6O#cpT{uLRyQKVS5} zZGZU>pv26;$nsx+(xs-9BX%2N_qpn1d_@|=RxAhah00R-1))9LnpH(7uiSxn293zL zkV3?_cRS!D3R49AqSvx__$*u7S2k4*`PswgYApTs%7ILESaV6iZnAE9!S>W~$GM^ndB>rZ zCcSK_!s^)XM_k^F=C9WDPR?e72Fb`}-F zX5NUyx%qais9K1I91jCwit=52wHZ^J7e`K1{P^DpyU1jdWR~BiuSDE;k+;^?%p)o7 zni5=~U_uP5)cZpElnLVI_*#(!RJu}G!&c20Q>Lq4E3Aw zj`fi6@|3Ru2}3C<2RIk9tp&MI)J($Wk2?`1f(k1HkO4{JW>A_=nyn15g!+jeBQ0$; z1Fan<&1&1ICPuXRg09SKXfTq<`JRb~?^kF{E21{wp@kPt z<4vbMr#IDkvJxA51hxH|rtgX%*o%Tr4%g67hj`Q{dU*XqG9uO<*q{(MSFvBM5U_1B z!n@Wl7cw0jw%37e`mr0au*g^K7vxHTyI}N1Nf6|Y^f034zY3c+k34~`C3B8?*KsRL zv=H>2P7aAi(+Am5qX2!=cWtYolN{O z@sRm}>!k%0W|bj5U@ZGFdLF|iMQq`)x%u!mGkB+8uu3GdELD@7=W~a zsa7KmBFnm$3>1^7tayDK>v(R`;NOo$O5i90DolkQ2+cquqEFnejJ5md@9Bv zrjfO3*q2)I;S%?iky4ZrisBb_~q>U<*;#qs=lGY=@RRe_L-&PT>-$ri& z$RlQMA5vPzCcq)UR%XD5vt>XJ@-c5w4GS{x8x)zjkR^Po(HX1@g{g)sK<_{+GW6@r z(4VlL+jw@W*P&Zpu|qfDYuaqGBw)RvxT}fzQ@mk=6*!xONhA|BYWo>kKyG!TJpoCN z$XD3ORERbGVMVeH&!_<6m%1V5K1O_e0uJCmR0Hc6x|B56JCif#w}K~8aq%M!xO!4xxKx$C%|!SpaNw& zj2MXr|7X%V%R(~(e7G*)9XE=S{oUKooB2o9ZzQmdP~x$mg~lE0nf07g+JGqLH5q_U zA_(x{#TT;6F7JMApN&ILJ1h2RPW57fKkMJ$CKlwQf5;r{Lpfc8tufAmP%Wye z8zl_}@L{T|8zH0Vfsq_mhD+k|J}T;b6hu4pQ;5#(N7;b#*PKAWHnn47f_LZR#-G21 zRv8P$D`7Pnm zc4(f^LJvBJ@F()!gL2uo{UncS6u@u}gn#Pzo>^Artl2(FuN{OV98!cBenk{B0L0&E zr8#lI>eoRSf+tW213xk!2dF$ealk*nsKD!DM*$;B<@RxUc@^OROtKsqO%iYb@|F2@ zOo(#4S|J(GW82m|8Z~WnjktBB*N*OfrtxCJ^40d6<9n^ML{jWQQaB;lE0rMN@3e^1 zL+)sVq=k-Vxhb6d;y-#>CU%Th{<&h_*oZuOtFPLNjN|lyNoN+b z&(*#ZOK8IphQ%8w4j2N7LSjXznYn6IK<--&)DrZ=C<@+&N`0{y2|FgG%fE>rX1vbq z=SW}xDBJ%tC}bKlGhDLs)(y6Q4A49Gln~qfX7Xq9EA*eLY>e2 z8Gc+OqNJ4pC?t(;n z7Hm0STb@;9rloW9*cHxrx%=6BNsu2UYXXi-X#&r(-^w8l&+~Y^0X-QYrL|_OtUV}by zcYFYyzqx1m+%&i|Z8J4Hf1j<0Sb*Y4@X@Q?^l_gb;SB&UYFOstoQjUn06@Dj&=nEm zTu;;V8Ws##D1pF2kPM*fA z8cTDa!)bF!l~{97oyMNNCztU3QFg$2JVlrx}+ zkE4Ks05+q0R>QMN+@;dc*$M`efrP3W+{BJXxwzNsET#j|_Y?VjCg{ogeG=@3J`Pn# zax~q!ho&y*+K%SLse5gcatlX@lN3Jo=B3!$S}OV5B>#)SGCCF6S<}{FXs#+6yU~iR z+ios*&3YL9GV@B1I~&^p7O!@`aMsRcha?{!wi}{RTQ?L*#<#{aU1s`Ghd;8=2acj% zYd<*>hJEa-v4gAc`g1Y-G-q;onZ2VMgaySo#Ph0#yQxiv>x8~?wvLhpENf7N^*uoH z3Se|(sQ9K1H$qD43aXpM$ZPw?8`eV8{aY*8`Ef1yT2D`^N2^waADADO4e&DLC~rdx z{p*>F4081on>i+}56+}A_Vxl}BPvsVQ&5Gm9=#M-8M!vI!x7{R|Z>e=B%U%{8Tmd6+RcE}kMPVvg86t8Adyn&y-?Hl=1 z*Ayjf$-nQ@2x#x~3)M@ZXM^zVBLo!ay>QQ4{96)t!wj{id&MZQ_pA`_tfelIY4VLy z`Dv!}iBdI$p;AvX3t=LFWKgO0p%xZ(Y+mule)=gjp4fki9v#eEzk+rS%7 zHI6o2%NaL6&ISSi5Usc%@rKI-8!8LD6owCJFzR~1?c4?Msr4gFAIdG+-s|pI*-D!x z0|TO{9jKU{t5xSS6rRNl2AbSkDoOr>o-Vmms?hC_el7!8< z4=i6?l#5zKmlJbxkv+fu<3>NQb%;!9^MuegoOwKDPM52&O2QtY#jY*fnY*%me>lHE z>}``l8#HzscK%ZI zvHlcM|4Q6mYDhV*k0N%ztKLAU3?d$ZPIBB5j;)oC>o+!6@(l6zl2GIe1EBzDxZEAj z^Y8!w+KJ1nuV!wJivWQ~r~CMP0(?2#pS@`tn53)NMo|wa)R=_JrpI}>G-iA< zd(gXaf7{(ZpSubvbnZ2#iEm9sM?E=vrY@`A2iH+iEj>V3xwwh;)zqKjz4a*$HU_OK zVHNpN>zhJPCn*ar;^AjA=vnh8BvbdG;*T4o)i?aQAhb&}kSw0zsWRi|FD&$K%YsJU zG(NQM?k^^(u-irc8nYxCKM~cma@2668BZqmbn=*!?{he!7w{Br8lSMxOj-qMOQ*G( zbc^tEFlla;(CmX$D3X`o^A&>M7yPQ5Su41k7^SW0j%|C(s;#+6jm{|0IwDLi52CC~ zTV9O?%r2HDKQqq;>_N^ZWN&p(UtTr24^C^Rmq5)~u79%w6%TJng=2LWvDlTER4^X) zaDVSTf-XjZs4}eCr4I!!j!41GAu@hIbjCUS5?e|@4L9ov%rtKr*I=Qnk#-9Z3q$=Q zB05wYD4*VnVI~Mk~LTK1wfiq)myzoh@032O#64FLlX_OgLxV5hHzl&_yzwOSlOACd^;T+p8@?mLZ8FAi8M0 z&)?|jx+mbGEL-Pwhx)o49PQg~0i-~}&6|X3O}JMZhry+__hKY7XUhA#6&E><<>eH$ z?TS1(JX?pP;cR2?et_X(H1_su-{A-8Y@ifyVJae#Yae?sNP#SR3g^Z43?^g@CGZSrb`YZ- zj1;6koDT`#17BYOC(iL{dF{3Sb9zdEU-Mh>?p=xD6q?m{i_Y1$+6)QcRVPc+${@;$ zSvSBn$P^xLz1zVnVQnW@?{~s?K|@T=uc#I^Ld9#zmZXaYo?JelUs7N&pU!~->)>+>q|sf!K1)3tGySL9PB;W^FDOFDm^K)`mG`V12AaVC7uE~QlKRs zv)`iQ&0d<9K7ZIAxtVx@!cTyT^OOP%8=xBC!xX$;;F;k|Dt2YktC7ei@EQJWe^-s|(!^L(9 zX#Ykj4J`Hac?iC1rf7YIR_NG3RT{84K-}Pr47tB0TZqGMCeEh4r#pYinzD zLXBB={KDd)~eSGPC`#u%rL-N<(GHt4mFjDYEYQX zslC2mLbNnuQ~RqeBeYRvDH<-4Y4#5IL1rnFP9{FdKIc%Xr=U}tKWoc2j8bx`aN!{8 z0Nd+DOoeMW5*2qrrTqJ+m!?9Gi>*0g)KtD{=lyPC(T|yl@hTHkIR7{R*8VT1_}?iu z00%fQ%C*U37t#1Hyh8YjH;ktMV0z<|ONzY06eeYR*#HRZS;wxV@9iJD>yLHlC}7^kxzYb}3YO;iOfX+BE${|P&ml)DS;~fB)vLo1z90#eyIv2@3aV`e#N>bvCtnL zt}0uIo{-qN5uHdoMl8FwJjrK-Q_W~K85B8hyK+p6K+k6w1-{|cj+h5_8pN!= zqXOFr^&lk%5k~zzm_ot8^{(_4a2WQQ}5yP@wg`v%&z%fT^beLnPu1W?M( zbTk;fGj(4Do#h}(Nfk&6Fl{U2gN&ZgLH_tKf#IoB2*4v4HSwbcV9->F(mqs!7XV~@M5tw0EnTFjlWXP4Nn5}u9#`8l3%Mxii7W2>2T>#~ z{GeV>M2IvsPbO6+c7lTM_gmf(dv}shK{i5WL1w`i6uXKmt0~*|CEQKc^gJS1!M-|5RPWpY-aVMth*Y-H^Qt z@aj%H+?`;R8vs4(o#tx{a8d+Olg@}m;>S^M(D0Q=U%|dEK2X%bTB6dho;hP?=g_dW zgmkL;TYtwv=1|Md58$bTL+Yb^O8Gv#qD4l1BNp`_U&qohVn&n4G?e3ToYAiumtP#ksY=Om@W;6CKa|yd2w|T}S`{qy zc0E)GH{nAAO6b7i^66Q(5>|6>&#$Jce}HECznK2}iTYo=od4H}%KCo<1epJIHUHOB z^*^Hn|9>(DZ2y^0_&+EsK6-N&@Qa+p_g zTbZ?MOL~T&60FcgL`kg%21b#)L(O9{8uN1<@y@%>4HM5I;@pQp5f#5kCefrONe0M~ z#*2%hdPgCHl<$jQ)2`|YokK_ui4CkTkg*J!j)?Tom_Bq6pjixR5hIG>5nyEQ!5=Qt zf`b39p+hRD&`9|#$3rVSZrLiUB&hVHqb8*Q&@g`!@VA^LyOa^gRLh^tyS0u#kAGG{^*z?lr4T?Jykz}3)Bkpa$`pc=+u8 zK$}6mmQ&lYZI)%G62@2@r6)#qp!;TRz(ev=ue_u&SmK((SHV#15v1Bmv0DoTDLjm( zA+!e|f%}O2V(}N-wfcs0`>EABKSe3^t3MDR?b&mD&FuZ7p~|@T($%$HbTj5Mt!ADU zktO0eN#v%)1%Octl2eOPT|=7Wg6CB91rHoM;|apABWqr?a$WPOhqv_g+gcBPvzd(7 zbJx;Q*-f%lvxM97FZLo@#8$tdKzQKGSlbG2o2_ZZV@yx$FF0BTb>5MD&&N|fBz!IU zYqOe3l2?CLfQ?2VkyJNUqARyoVJA~cDB{j{E^_Z*V7ia};dVI2aF0wgm=iDGN;iJN zJkzDf`S0)dKYl;|8;%Pz5i=Xp|6G(|A>v@+Wd1+v%Ku>(G5)79!^y(>fBy)@x`3;u z+&nYns-Tc?2b2uWZf$K5gTgUEu?_*L1i6%_L`Ve_(Z|jcQR64gHeu`5~tF$xA~NX2Mq!a;%E0tXiT zfDCR91Hlk6M&Ju2;}$>!2l3x#92wOLTq8kBa@}Y6_kgV0tO0iy6%FR}EdVz%7`jK$ zL&3~~4d4$j{6)1Do(A&Gpa+9{d6R_ZfR^OiREr58-Pp*+J=`CFcXm%OJ^}L(-Hij{ zuZLXSg0+EsWoHtCJp}n?#pWbn?e9n4zZ+E1_#2l0#6 z(&11305>pE#TFyc-!;&%Nl4E?qG=*rvR(HRqJX3t2A~kU+Zzvp)@vk|g-rGpI|hFUKw6r9*h6y5Y2%5} z_K%^})m~wRJ8!=aoPquT2MHk?`5_YlT|xi}Hn|?YscrXATZ2UANPPm8j zfo6avZXSRG`G0+XnManSo4^2Jip5Vwf5~BLVh-7V8D%OGX-1; zlC=TBfY>G?ZvWU<{V2TkF@I{L{$P&%bPk{OTq}D zhNS>M_7#ro3KlJaZ3y$}ee+hqKoW-%!MX}1WkzcR;8NX=BHk$l@quof3GKGV`BOcN z+P}(LO(RihLLLLZJ=qGI0|)+~i=IzBQ{R8=1s)#dBmD)X=6Jnf|85+R;{Iwv6tAG4 zyiUJ<1q%fta(7QaByf6?l117bjYg}$e_gXT2lZ$#Wa45056IyLGDLJ9{b(`Q*B1ba zzhK-k06_JF{@8vWVCg8jyPFdBtp#5089dwn4j!24Z}o6qVA8o$D$kl#7fYpU;anMs z06SKO7z~NGF6oDX+%D$&Hf7fm{CMhq=Pm89(K!0W!-5G=+^ox zlM=EtsNEvas*&2gTu^|_zW!4NY2SFpxr+2DJeKt^MNVu=zf3}-cY$8qIW#KUZF(cK zpV}Mv4W4AT9+!b>r9Xf>8b7#47PbGy1_QF1Dgo;m!pS|X?_GEOu|}0Ve!2FPLf=$Q zY}KrQzoPg;ht0Lwxx=R9c5sPlMMWv-pNcD(K*yS+`ouqG+{p*hDfS%WewfVW0u^jz z^QkSAV+ugM>ZnEZ8(q0ug%2!_j+36*d}z#E5N&Xmh)$N(R4y#MgCAHQZ?jEjRz^Ch_sT61=uDqGPzJ>$xX5{lKr^)hmwH3-03j{gOmK^x7_z zWnXATPr-tsQaJ1{f_LS_fyA#+U&)$aOY@P5XH?t zx}oe?`$Tr9p{{W=KrLgZ=#|yrzDgrJ*?6m6h z3Wb~%)b5@Z4-almbp8Py^4q#a=Wk*ks);(-QZXnP59#gap{yp(RuxrCCN7f&wW*)K z+GT0vET7Z>^fG2{{+D5y?!K$69Y|5P>o!;0JnVaMqEjc0h=+QO-%SmR^R zq4kjpWw_GkU$lhm;$)$KM(GNahrM_mJ9vMZ4Sa)x!4E^@=lscb0cK5g%mr)*fX|qt z2&tt33P|bDUS67l3OK%)Mul-`m=v&H_6Rh1b`k$>kE?E*0}D2{(9ZI_>VV!`n2M;n z`9E2XBg#5NLN*6z+y({Djto2wGd(CuUm@g9m-jva13oO*F+6d%d> zfic(l`bGNf&*XPyqoPkA#TB&^qwkvXhEm)%ZKNtuPfGAn;}XO7Uo(k~(y zsQ4bP43Dc;2fTdDD8MF9@gshTp&q#~fz0x>Xza+czpg-eNP+sxpu!Ph@+e|Hd`C+x zf^~rhs*An3jg$=@%1BRFr7Uuu2y$mN$MfjabQ##r`qtRYvjy_;K%8D-X}yI)kK;8| zUkwHNqQSh>m2H91?^4X7Aw{kx{6C;&PMOm?%ul$4P^8oLoYp-Gb`qKzS(yA~g6-~M z%_-BHj$3)U+LSFSq3?)H8i02|^3Ub?bo@S&c^s}Qx-ZVzm9Q;?wV_j~xE59K-}#?r zBoE3#g)U_^meIO+j8Y}4h-z()4e7QG+_oMJqotIWT~~K0gBzKABzA=Cm;jmvVm?I_ z*50(gR3I3`a|r`PsQ29Cy4-x&qi9Dq@D+a}MnB=p(%cDFfsV<`#pTA=n~@P}b*VUd zF|QE@TuXU{Y1wr>kWGCGLkIpP89iQnqR5lk_~(bhl&YJ!tNy?!uj4%OP!V^umbUsB zuDd1{E`&vXBn!K0{;ct*(zQ~fz0Ec4G3ydgAv~A4e!*@m8z)|Mglvmia_V;(1wi;k zKId}$AokTl^0?A0C-oW_T-~OqT(w-H!fjX}iNHyoXCT%~PZIt{JzFs~3*Y~H^-Qsp zOHO>5t_6R!>uSWt^d;`T1ZTES7bT!OH(Ml;3S^7CBCba`yf-AD8khDL|uD ztP|lnoVd=La82)s#|*>PR2uJA?~T+bn=?eY$Mp-kb7Ci%?8a4>w(A-3nxQH@8pfz~ z#ho_{4y*T3m8i0BubkKUE}uZ7SNlW(G~9(EI*rH%Y=8B4br0)eewn~aLJjVV7`sds zX|jD~+CLDA!i?+*VJ&p3Xg2~aL)uCFRNk*Mfki>Zt%8Ig6<;<58eZYb>0ecaMz3ze z0F4gUwLx;H9WM_Od#H!xTFq;YJr{*MgPB0=;Gj2VzY{aB-*Y+Zk@ZS9V(3y;-=hxN z%B!|LUHn%-Kp~#9>;btEM=hfOiciuwUaT%#HR;2n?htM*Q|_&4F*ouM5pdFhc?~iC zD0Jo@kEtwhCt=(}s8m?ACG^#My;E{a1+Tj6Xo^W9BmVKs3j23#-c)G4JqZ!Yo4b-u zBls|GN_z<-1R2Meif z791i`27-@RmS7_ZU_x4)^bsX86&zoS%hpP5oppC2mv&DxrqPlpB5YhsZ>tX0Pq3WB z*VzovG({J#9!&{?Mr2Gw z{)U}a>I=-N7xrqNo zAGNp$&i<4=_tfldl&+2vsm1)f10+v5AdJRV!##xAjsiR6@eXhrwG;I)hYAGOmWcmP1cSy$u!pYDw|O` zeu5i#EgGE~IfacpZRQMRz1_RD49O%gyKnIxsc!5+M_?G-_*>+>GmSUVeiZC3*uPbT zjiM+j?!*vvh;Admp$hJ!Y7ddBh_S``Is0uF>?$4d>=y80c_f0z*tzA0Z*eqypaM-N zNYLB>>>mj8172#;8zP6pyisb?%QQyrl2}dMJ1_OCo5;ENNGwVZ`@I)ppxrEdX7&%& zxxJ4y^2UfSu}>2Sf^=oIn2R4Wyd}dMyBzepN%i~=3LIiiQnc%P#*G=dudHHIp?4k( z(lKdvroS?(QQF=hA=#kgNn@0up!(WvWA+8ZP9Xq>p3K~fy39($+>}qA&OE@Ajhm-c z1MOWZ3QvP%YGAZ(`a-y;Wq??l^UJnPT=L=ByO;(<;7nLsJ=A0teVB%dRD|Qls3j3Y zf)&&*%MC$WK-Olhb2`Jf;R-vuDlid8-UC##@TA7a(`@9>x*dCJ>d5wT(M&_$ye3g) z5DjyGwv%&ME-A6LXhvQZPwITR?X^|r5*ZvYXmWHM*-gNfC6&&K6R~F2XW!l#<#9#d zTd))uI1o;E+}6|)8;mNEyYA*pSVPr$U6>RkxKIe`8FfO~94;xQkh@oY>TmRjtMx^d zg8gT3^*WRN%SBIEVU+CTX&~*(COPJ%=Y2%=5&u{lHf6wj5ELu~%f#iRUiY@vz|z`}=@Qir=mZRxW<< z&;hqaNj^reAlJXb4_}<4iG!8T-ZCSOlD(;k@F!C z_gUlXAjF$ zLceoulXJfo<#krZ2xTWq(-u_dp)q2I_&4cn@(s)2!ZLhGzGGeo8H=$BF}3ugv#Oy_IRIP?K%&;0ojGE zNW@yM*C{90;~{E;dFgDA0_VI#J@>>>$hpms5&dXVWnK;PoND7b=rErhgtLv?Q(fS%DDsP5=)rn+!OlKEpnyTBkrP82go;mF{klR(AcE9A{of9u zgt}h_&MMk)*5woZSSz~dz`3q6RI4s*8gi@e%cE5pl7`!%xB>14@3PbcTDt$q`dd$J z+&7#Pm6x-;UKV`4qjiew=HN9jxxl15(iERdz}IWY-%d5R0qf3X*6SiB0oA!Vq~=wHj#Q?@;Foc~D~Y*Qws?;%XC_A(LV{B#8;6}GBkCL$ z$Q`z}$X~s#Z%Aa6A-uSruMd*73Ao-kppJFdIWSWLE1Iz8b%Pp^ZoGiRna>6?0P&OC(&+Z1Dd-4 za0)44?A3s=rP0oU+Up_>EUWc6kEx>19NgR~=<(z&{!Xs;q^G&@rd1jH1tY-xVGi30 zqOt~W6t~^_`IZ6APP`96qULV4)3s)l^%Gh8(3t>bA@?V4F{@@WXOX)L$KMlSCWwV@ z)zNugw!uGuR&SUNul8`hdHn6Ty#Cd#NT#;miizAdGw23ofKW}Hy$KPDhmuwl*Qbm$ zQUW8ZsTrfZH>K^}7pwBKs%ir|Q}n*OB*V{3UwD-&3d4>mTLwD;@*aO=$pKxwp9oln z-RGqcVTw*-pB@iR9fw#ZIRlVGbXQ9or>Qf>@vFBie(zsX0^@ULrQSxd;%aJAe}g9k0~d}_mE@z>1~Vfo8ZL!E}9A1K<=9MVb;RF+J?t?%z`<@be# z<*P?a)Lv4y($fwwn}5F%FiCUzTqYPcMfo;Ig&uUXChf1`F3U-+c z$9jCAXk1QKjB!X(YKQ68jwkLhc(-WYJ*&<1*Q@b0_@QKO!oLLw^ieLA+xH++pg3W^ z67GB}Z3NJ*&X-)`$~7f~qm||zQHFouW+{VyAWngyzm?-x ziR5V(fx9SxyYj(TeHq_nqJr|(?_cEwOX{=wqqZ;=YDX6gmz=Vjt~C+qb4DX%7jmI> z`>6%LF9@E0jeM9kK{h6M_Ot&QT_e@-U;wys_iu71G$g|k^(;qMXyW#1MwVyQ>R2A}qa#(>CexspRC+@BcT6)XQ zc2}eWAG7OxD>)VN)$$VO#@y@^@h4CR#1$pa_C5QHxvBU;tG5rI(21P zSnw-3sHfdkX(i(Eo=P3(l&z!LV+c4sZO8en&xxPI|9-l6Bh1XIbY@APXiH6F;_pI2 z1>eyT`vnuFVkgI!DxHMDR;H$lEqs7;z;VUjFk3ZnL|lz+t-{zJqZfWL(@>R0vx)H0 z!(!u3XpTSxxFFB0Gk?22p?x-^Ek(<%T7a%;-M3R=;+)xQbl`@M_G^}g@Kzn(`{VO)D_pdjG;yl?E{sH^*&RC7LZ#8!<`M`$uCrQ8q(G+ zWw4hi{L<~bO2}MW(G@pu#}I~d4oHp2ENKW7?36UcEcsymq>C$7QQzAxgVES5*iQVy z3mrITz3LBXG}kY~;O zLdyA~$%__`@im_8ZiBrYi;Y0#tGub&usPvIRp#J(*#$hbKu+f~>N$=}?q2PMo-!W9 zRnW-W89(chQ`ArbVTUUC>Mz-H!2tDi2a%pc#6<5QG|SKcF|2O&M}zVn?Wdj&K7Jez ze$DQKT92pEFULyXP>s!^n%F!^;;T5)Futc1V@kbjPnXdWl(GdB@CQjy(Sya?-i_Z& zuBFoW?+d!E@cd(Jz4bmWxEx9U4TOJ@-Un1khGz2L)#19k--~3xV%nbe!i;ShZY?S6 zg0Ahv+fBwiP`sRPPR0-;_#nPh70@A8-jH$_YJ%x!tBA0cAjG4%Erc?`9Wb|@4 zj%vOee!Au=y(rnzs1n#p7}0Qo1U?ysr4N16wY2WCCYMwSuo9;4vIN#6>8FtsMZn^o z_^MRfGd?s$G(nWRsS}D`aJxfK`(*!O4~#83#kwIh$PwT&G3kQSFmw&bIl=d;VlQvA zS?Q^X&d%P}YWpmR&!j2f-@uD`MV8HcupBzdex3v|0Xx5FeC}yP2aMTL)1@5Q61Fkk zGjEon0jb6F>8CG;%)+F}_^3AbsL*UbM+d=6bfC;*p%G07ctRLafyBbio_jg|2(elV zL=&2S!`NF?SVg$ZG%MR%=e+-hEu~f7YP#B_o0l*K9sduKc9(t*5P7SM$g)aa- z9$D`DptEtBE6@*+F>Eva%T#dd3er`u&nDgH&3-IBO;4+w&%qw%xF%~w#)J0vcN^XnR|Pjewl zTpxo_kB+|z^eA$EZ>vP}Z71py6RkOgetK7yYU8)k47KerP13HX` zuJGUOO6LFQto?8Lm7M?6mi*^ea{Ryel^h)ZiyiI;u8L~&!AZ`{laeM))f0+aMiSM`1{IMKl2VdV0wYEJQ#td&_jB^q>)d;DnRC_aud%7| zS$iS38x`4+QAIlfUK=WGGEB5@=vmNNm`R5OmxcxzOb!GBf+1Cd`H2XF^sjsJPR#u4 z?T1|BB~-KlOb#@PyaL;JR){|b6Nv;m>sm2xY4lc^b$Y9`vjJE>K9R%C!1UJ!NY4r+_(ZGLl zGq{9+e(l9Qet>41AguybFycu8btf=!t;ZV%h;|M728Of+9(O_rnb>o^$2SfTf-CPD zlmd$k5&L(2OuVO)lD)Svqe1*B=q@}ZB3p-#5b_!b9MOi@UlppMLW*+xDusHw|ATZ{ z_^niexfoh-%j-a;B)fzLMSl3A;pWF=P{O&axQTf7L@PSW$QeRnU8J|fOofIQ`vm$K zr3iWk8;)E>0QSD6uE<6K6#L^WK{QtzVL;u!-z}W>s{|3Dw)!p|0vO~oxMQF}$dU<* zjusMP&^O>#D1-Mj-8q`b{?(rN5K}Hf5bY-R4uS-Vx?eOAifa!t;3fF|PoSm&9v|9I zANWr%FcDG#ElL=8Xa82huYSR8XePY76NS@mMiwLwR5>C7FsSdRw~s@i-85Q=EA+?s z_nYIO=1F*0d3JF>%Fi|_d3aQ)p=jy9Aj4!O142+@A|O<mb8fd%zHm-9} za7x#T^&vE0l!iZjos6$5hETviR})a8hIDvTuZROz1M`Mhd$9LE@((){Kb&qq_xC?U zul}ROp%3@(^yr`D--0DdX!EqEjNE~BTy%jSVOWD;1wT4VINuh!@O!mVc;|hkotjie z5UO)_`u>>6XXT-AAzfKS4NNbBs&BzM-#AQ+WH@#~ccS0gR6@*9Sf2(ggQ^33(6WEx z`$u<3xQu>%f0a<+ggJh(>!HlE2vyWEvOx*`V&0>G9}-~s-Ql^O#U4iSHv!G{C$L|q15hmGt14i@DnTSntk$~=Ax+_CWx zcPwXKYCdB-oTMJMF)f8=;`TY4nq81zI=8ch3N$ud168;5>ShGxDFTSCao zg=aR7&2us*iwqoMM=pc0e}zGIjUNx`UsIoOYi)93(PnZ$!Eflr>4aX_npZpe4s4*p zrNLw#PaBn-V@v8Zi;%5Zl%xhFQl{%)xGC#pwq$$vp-$`SE2yo?+v>#gb#{(8cYiBm zk8-xu!g?#LV9)gj!7r#Qrt+EG{$dTF^;E18&%iJ?Bz}6Qx2L4a*Zv$}G4pcWEEqq} z7XK{Z?RAujg+w1u{Tm~9ue#n249YbVz=i0k!Ib?1)7Z=pSwKiURU@{b=OA&EMN@U6 zsqdVfoGa&I|Ce~2nGmUaWPJQiKO_0vI##Nt-203wGTgD>>!D@_19~a%L~U+Sjq)f$ z^2YCZc#z?ttSA*R8e;Uf2_Uo)urPXa&(!7!=ah`0Oz!1YRyR`4ZBMz*U+p~$y{^b& zQB=Q_Ej5$kWf8x1*P}RXo5_Bab(AK8HJ&@ezU;k7U?maJ zb;WA?G)Li!0iAppD}Ga`@Y#h6H}mVm0jHLZIXUS?jvA45arJ5vS(uAD>*+G7KQ6Rr zWcVKs)g&~Z8#+OH`bE~0BRbErv8K2)6J7=+$Ks-}crRegnw1tKemYd<55xTh3|!s^ z-6rSUQ8fmusSLh$8_XkK$pzHqwo0ZqKS%Pg4QCzY0YSrujivUSo@=L--z|OzpD3*X z%ZS-vpJN<2oPER3K$BvAoBU?t$`ri9l}?`n5UXb`M$FCeUr8kDX~KUp^1h(|qMr}^ z4)oh>**;GNGKT5FMpBuwrA@kS(Hf;d3SV`5CJoiD<~&?dy;ZdZdX@d2$NihH`wZp4 zTaWFc9Vu^7V(vZ&YWf;KG*kA2u5NB9uoa=0&+AyqTi(D|o33*6zgLl zei4i>L;n{Uq3wzT37RS92~&-|k{?jv`7dN@<%S?CkJ0p%VtMeCaiXU7qu+2x-Z)DF z4*AcI2qTn{N4hCX#-1JIDS=rVyh7i>YvGaUNe`jq%ypQwgc56UkpXuk68n^bRwSLN zVa6tP)W;IbPp9X(POczG2shUi5AUAE#Z^w^MMSC|W2oX&O_uTF@+g(T%)G^IC_qIg zkncu=z=^Trf{`zb{CYckvj5Toq7)hESa)k-GOoCo#+$`rd1m1Q|}{y{?y>b<2szAXZ2Qo=Xt00qA`Eg*|Pqq zdzPS!LaTep375YQjml}l6yjBDhk4QUouPKN2s#5uLer6jJ2!px7ZX>`vqO5Ez{wwq z^y#V%$RTXs@(5#Wli6!eGPlwny)@CP!x6=E$+W^h84G-=U{&^J`w6Fok< zxKWP`Vb_41V}j7TUR!Vl)-E>yGY_|EeE-7j8-}Gq18amZ148*gPYOw9wJnD+URUpg zBO}B@T#7*I!h@7v>EgBeGkr5+;uu|__o6is7~(0Fv25m*PX)z3Z&@0gPWISzYWLPP z;@?Tl_WLRkf|$_;Tp$MbW5jCxvWz>Z;SVWo-YVo&eeZkaTS(SyTVmxpUK~E7Ewk1< z)7}cX5ECAXtm~pT;l@;>l_`K)Hb!=coN%8ufqymElCEIx#)Hx?R&;}d7hOkuGeUIi z)a59XN2f(M&hw*8G7au6U8KWtspn#NGHag1jtrjRr=ZEBp<9JRc8a~3l$I5#iKtF9 z^%TM1HbpvW&bYT)YijWxV%Y@3|J01E@CKcIRP#V8QtD@knKw0Ij3S`pNeD*i`aNb* zY)k9u$@8Kf3S~a;7RFtl+`}clqhin-!VS>XtAcn{yoU^1uTm2r=H6GzMd}03+&3c~ zZ|vQ&kz%L2NBqkOh67QKskvkPeZOJe32sWNuXYyy{DO#e2Q3FX_GJ8B9R z!!cj&4qo*W z*i$a=+_c{DTZClqkURxa1X2q&b1x?QuV68W(T*u7se^PIpw>dHa>MPY-KBMJZzPMZ8hx%XgP*lo%ZyB-UgX~0*~7Xc1g>zIv^`!{d+(NY1WJtJU4y1F1rm2MDetAWG#N6}2?c=> z(kxC!{%s^~$WBbGY5t4X?MqLxoNT?~xk=afS~a>|oy)4EWs?xJy%bAIIxk7**W5td znU5;l^*-*Ro@t$*wfM6ID&l(}5&WA6O*>}Vl(Y9y9b!f;fbP4Iw{(5KVgq~SJCs`) zm~Jtqht&lHTWYzs%pYh}!magqcW{TX2Wr1MLrcny>mZ`YV;n*F9g!A zaFWMM`F@VE47JeYw%e*MJT!|S-pJ@wgL5Y_g-~eH#>UEk;g-MEB%x!5f2fLMk~!R) zgWCT*E?vQ1WFPG@s^9CBW^4#h5%mGpHmXr`+g;Kp3Q+4=RQ$Q%*vTeSHul4GF`_>w zH`n}H8vXr?Kn;4Bqs8PXH)!Rm+q@x0Ex?VlTwtz#ec?u6KZ{t1?RZNmEOZjSq*1jWZ}dWLNuX%s=5-Q)(y1q1BH2chXs3>voz{PJo<)>8wL&v z6Tw--;Cv+mW~~KKyWLCfeUZm*8vlwN%k(=eXpE&~=g%IOT_BHUUFaJX{R`>a$%o9Q zfhHT5Q;K}fw0py!jP5}D_dClmh`SX-vpY!FO)*Gk)h68scc+`8Rn5tL48n`ntk(+ic|xMGPiD%4r7eY zVHCT{_3qT2ms@)BAAf5r#{r4bc59Dq3XAe(JJi9&Q=R+2!dDY;uv$K}qKG>>e)*|D zr$?*jX3{V7eRQ$YnR~bQjK=BwQ_4)qUybuxw%4kGz{VSE7Bj8&t&(bKq*$l(@U~lg zXzOA;k3|7fhPH}74_CvCw0ztGcVyxz$3TuSGYeA5LU%`5zg!%nLG?hRvGIb(7yUb50f)^U7U^B%fu(RnKt3JHE< z2ThKXxu7{Gz?CTgsu?*&4g+d<<-#Uq>r3d>iX4)t!ZB&zQezo;Bk6`sTfj~R0tina zhrwE}lLejHtXAF68l)Td9WTE*_!qe_5)5Kg5u^SoT=4nLG-bp=p)9hQvds*|AjG(X z{GAsg9|&96Dv^_S&wJc*BgDy25c`b|zw2_{hg*1)U1cx|!&3sU@;1W`mR9ee+=34+ z#QyTxF%;Q|R1tJy`y+etvgZe+|AR)`TDoMtVn!1J!e{vL2QM75ZBMyu1^C!ZxrG z(vMDL`zE}12K*X7?*gmID#O>I&&)vvCEdXy%(1dr6}y1^{Y}ZNjN#2uu{?b>Nr(vF zIra&}?kW~oI$K=A&Z~xw&0Pqmo@H?RgLPWm5!#u}=|;sDnvR(k;T^U9+}ij8pfftP z8Mxb>!Aflj%{b1Hde^QPXtEmFr6QWG5(00~z>ajZ@cFqQ*y+D7`Q>^9<&|m_3P0kU z;&f(r@_SSk|4C3n$JU)ibHj8LpMJpIs~3x>O>Qkh;R)YZDkz!&FgJ&9ysA2=Rrvz4B)eA|(18GmzAK6{UgU1C zYvQ2);WL_m;~;2mk-R@8o^ z>tpc&Aym4q{blmwKEnmAlM5aOIkx_p?FG<-G^xZMVV8L)No>|7(PrHlssw+uXnU9u z)Kpwpkhh=I+R!VI{xi@nhkdU&I(6NEMqa1I7izk~2kxi3{-hT#Fe$ear`TS|?xW>h z^g7W(NWXc{*d+_A%V?+9*ufftFz4&L%cP`&bPB3%60Ee%ZT%>UfqmEIQ7+m2QVXbe z;RbqmDor{6WqXaUVQ`U2-fAZAwarVXy_v5u>w0FZ8ZJK9av|@#ZK?Pb=w~@hR3z2G zAnvq8XzG+=vO=+_cPWJCBrbR`tMSI)H9_-}DUCA6BD3Y9x-J@kyc%X6Fw&4-B zr4xbs49PO-t0g6@UA^UDrDCL6#(uY%lXdGztb?b9su_&~fG5W6Dd^ix;=fL6i0$B} zm2>A}CFGU*j_<}y$j;PrwA2^YL>FkJwa+^&wDn~*@3*L%RCE^1*ld(sZIY9*lDjH< z$t+l+CK=J56tpH*C5BO$g=y&pAnqxF4euI1ukvPK$E*agtrgzAF-?OZl{k`vU%vl0 zsUqK;!+y;@q!MCopxgM7cdt@Ga@OgtIyc4Z0*w0vIv8}+Ezen(c5r|65h9)cDll>t z0k1SnD?nGd_oSvF`q2^VOt8H^f#ZP7k0a7YN524V$WNK>`Ce^-bx4weHy7MBLUSUD&^a7o>aXaFu>G~JkTtB+Nv3{Xvt*o#4+ z<}l2L=gOJ&bI(y>dR(R5*I9YA{*|FUfH*3o8AXP}s1oFV%JN7Lzo~WKj)Ie1G6DB? zsN8Jh9~l_A*b_MJG!$H=6yDxf&2|=8E1YsRq-C7fHS5(rw`({yS$f3cOK#-=-}=`w zQ+;)a=5euLdV_u38&F}!MfT^yL2CNy)e9;I#$+MF`-`wDWIoxn`K zHf$vKH(!3lzQ&}5(yhug!uIsB=Q;7P51M19t`*-UZqW?+;WPe`XI5&nb^v`Fb%%@& zTcqgm0IeG;^oz(W;O>+j0efL_-5Isl1nCFktB)`Qa%MB>#Xbm}18(R8eF zBvKYsB4){z0V|998V!GE_|DX+&zE^@i{fkVgZXQ2GySE6fzi$*Z%5wI7OgNj zUG?fYfG>Kp5Lo77vfGrdS+Iqrdv65qUc_@`m7IOVt`^ySeB*A8efA8;Ikq;Ua)Uhv zk*_E+sD}Hx%DL%r8+SVb;6vLVKCqm6Quri8-_O$GaU^}bh6g$qfM&Iv1D9E>1Y4%J z5mXmtBcc(p?h4n>MYCaHHK6*ZTOb2r{=AHi#?9wnwEJZ?GW4v}`Hy>zzWZPli z;B%#YMzxVS-%^i63V&mPjiHOd;s#=%5bj!G2xqaS8Q)kpki@OE@QfKah=^4syem;F z!p(Y}ooRnh&O0g$TMu7Z8QFM+M)K9sbP~6;w-}wo&;??JNAqbGR@6R!{5K+n4?80E{PNF=mJ8%gPYq<7GmcA%QRi9?z zMcQ%}Xn7=ZTs!;+sa27{kCQ`W-9#ab*v#j34#x=QQF#0OVO)}Ro^} zgFb!BUO%jCXdrT*FZN5;)4P*(CbFt_h4j;Me7Fn(QwprC2{x8ga*3|yI=SIIWqP$S zs@d}*Gz;|jL%*n7=W&(XMCRSb{wLu0W6o#tjHnu!gR_PGmny4cCw8fceA&pN*?E{I zIL}RsL#QK5+U7Z@7$?ll)BB;0Ts_Y&>!Qq685*C;bagCB z?oS`w(vmgQ$zdLPt#>TVToA%!x*XoVh5h1e155c4L=*p`KyPjE}sM z=22k$xz!{J`iq5wQq_m?X~hFunBB*BF9dW5QsWU@M$a^a0Q1<*>?k)WvO;XiYrm%} zD<8T;oj(D!?Hzlh-Un!}(R%7=?8n0Fqvcnwy>&MhlTL&o`6*t}JD<%aZ$UGpG4cA? zrnFRw=S<83j8pzBxT7n53kXN)+(8X3=&zCdcxya-_{!}|i<5W7+k`%lO!jQ}xZvvq zBp1JURVmGbJqGD@dEif#7+_I3{f(zhGSY~tXOi+#*nSWSgWQ9Z5H!Fr;v z5GbV0#tPV7HiA4pb!m_YO#Rmz8Ni7+ZjP(@vj{f!I7O6xmj$pz9p$;otZmce4tg(P z+T!>eG?y67T?yu|JnHgR(qrulDoz8|Up7n6vwJv7G0nHPmlfq@=829y9*eB?Ek2?p zW|>NFXENsY`^<>d>wP63B8 zhnbz*ho$G*+%_SWV^eTEUFui6g*a0VN#@1qRl~$ZCS?wBS(Z0G3y_HnfIK~$@n}%I z5i|V;ZAA~hd69ho{>qbeBu}03XSGE71g5v4ibZ9*4^Q9r7At3+g!fzTMKhgyo}4!x zhETCPt95{Hs~wrV;cck)#dx){bTDIHP7@RhZ2h`zza5oNtcN;}tN^22bJ*E3O3dS! zHv1b}w11}`xv_-IWUtMc7-ezMX|eBf3K=9x(-x7~ZxZ^qb!0#whD;~OQ*6W)M{=f3 z+USzwM8%87jemTPoE6>Ha96>RL%(>AKfzY^R9ETKb`*WzYEnI*U?nFQUS|Ud83djS^;7!%Z8%n&0x3jumPw4gr0cE zz*s<4)x(crwCSj3u8^~izh_!CK0Za^D5KxEs0}I6%hT4eDOXAwXm!HrE$}l>5rv@x z{WqQ7W5cgq(XbRmv*``9q2U=ie(CLg09}Y(=Gw{H^*pZn`75xym8G*ekXULTFc%B^ zk@{cho^Yv(bOrWWeZ)a>Gb?V#xNjuB1p&II0){dAiApr)vDc;`im=3!*UkuojXj*M zV?H|yQ_WtJ_ZR=sR7kNtBBbRlplPY4rA@gu1l<=R8?%k?c|{Kk!= zsZV(nbGbk5d_qz^ZQRy7P69^N($T5PUB>A9RkZ~D7Pn#{T=05e5c`4c)|USbUOmBn zXA$h9(<7CSiDd1I1KbXjaq&ipJ#6bN#|xc3EBT#GA8X{p4ARMee28RbPQ@}mWLU`v zc(}tD?Ahr8_m&mICYrjY*BEL-TTf1Qgyxc(L_5VPw-#`_%u3o{Qj&5&3 zB845?%G$f6{r7KC+}zy4fJ!+2TPa6&N=9B9PqKUF{=Q6abEZi=Qu(iRu6{_9jioB_ zMW?T2{S#kZ>F_l$GCTkcA1y6urU6V%*~Cmu|A9zJvBpQi-t#+xNWtbOF^})YzUiSE z$_W^yxn;CBOm!7>_uvYQu7LFqg6SU|n;aaPn1ai8fKrAu=Yzxw*0-)wI&riUbgS`ha2@I^G zy|c55fk^phl8%4Shg9}-M0GVFBiz%~17-l-Wbf%{-%R_<`M+HQs9JFP7Xr`U(i?U3 z!C(ORv4i&yjz8|%`+5B#LKwf5H8oUJ^wb13v1?Oa> z_tenN&yHXo#C;A6$_XsJ^?EV=__VLOzTUd-{t2EEa5F#go2PehF;r{?;OGP_9{O!{ zMK6b1Izpi*_+#gJO-RM@x|vy z19-x(`}1A$%VS{n;>MoyoBrc5B(s2}bueN4?4$fsqolID1HAtohkGBN90l9gKLWCU zvm&C+y?e%;sbp8UH?|J#cs(Xp}qU0(V&x&JF-Zw1|O|FwDGYpbQZ<0i2C z>xFdvTT?-PUpt%xo)M^R{Zpg9G5qd@CUQk%`?Db#*FZW3WKjm{NZ0)3#P*9=`CDhk zj>lD)*u{Jvn*n+sADsU7bH1B0vHbD%;^>Pz&ZFA@y8X5jgXC8BYT{3gP6Dlqh z`z!IQTm9{e|Jm92^;^Ch;rK4{g+IOb4cOcOnE4|do_%avzVLHz>|=Iw&vXCsdpZ62 z7&v~Xf1f?pf84M-u?@yzI*QZop|$o)fFh~>;5yNlGVxC{pkAkaOjS^_PfuU z10c(D9S`Ki{| zCeP7&otWCmDPLG3^QctG90DoISe|4#kOBXK29XjY5k^weeK?dTvBtgo0XN9VGi4oQ zzDX?GM}9N_cjFCB0hKpB$EP{(g8_g2?NV2cNd6{cWREaYaBOu;9PS)cN4w|9%e>48p)j5NE@x7o$1&DYA2jUfKy zVfw84*QhowL@L}`sLO9il&j|=M_FI;1j|?a<_BGc4K-hkv?iO*4K!6aXufTwwNHFTXbG?Q=yQJ~vwnV=#n`LSY{=rB5j~-Y z`6aU1ZrX-#Wbe&?j>pbKzQ-eeX0X-h-&CiQ6v|5H-WfT4-W>Kpx;wC)rO~|=rrdr> za7Pg)|Ce6Ty0mC!nfcHwBMM^ab6j=JQ*6^ZQ!_x7a$3o6ySy3CF6ne|5>;c&Kd>o^ z>L4eqiGDCCGzy{BU3_h3kv)$@XMn>>m!SGVE=rm#A=bOz@_sH~^qj9y)2Yq3XBY9- zq5ky`cvF)dNxD|GcrS`0bQ9NiG)l^keupYt1$3WB?bwNv!fm*oIV;d_GF?x<&v}Jc z)OGFlTzY1DXUgEG_KJy@n<=wX31ugq*4QHlal!66wiBa7F$tD*1Ng;%CSN+;Cj?FH0RV$VLo|HPv=n@LZi{`wmXM3wk|6>gh>yy)(F~^`+O* z#yE7yRKt1!mgbbGq}8yA7}0I^(lhfUkVZ5olz;*wn7Y-OTzrvaeJJkkZ@ZZ;6* z$(!GI{M0UyyaqoNcjIW|F^1jM8-2sOA>Z(YgUaIWz4EzYd;2iCajIZH0^eD*QbI`h zMhCI&-Ueo*=Tg;04>etMhW6K$l})%^XO4??qvuZAkzC`3zEi=LAAKp+KGXsL^}pFj zt#T%Kko)6N3>RrH7YeBMf|nQ*Z{eIfwX_q*{)KO3oDpr8`ouqD-*i4bBa3A#n`R2e zDU>i4n7Qy70a#E%`3cy7$o;FeoZKUN$WJ#aDvcCFQbPr>794sW{94i3*7J~15qS!@ ze_`fvA;^6XsSD;xcgzBz0X>m$5~@T8e$G-jYSa+28vP4kAHoG-QB3M*0;%{41s}5i zB;(CGbX)%BcfG3_IuS(j7#WBFt@0%+a*IM6X52}{l1s!=c5;PF(WZsxQrA_K^!HQv zpJP=_k_=S^5l@$=wopFZJM{gFP=#;)p6*BGk-`=hn0nwp<+2#=){ZEee(x^ z-d;(H+J+9HDAvs{dvuFrrGe9RNmyGrE~vWX5e2e#N`;=m-2Gpae6ihVmxKq$z3 zc#rYc1JxAjyOu7}K0#rx&bb5^c~sgc@?aJ`c8ngJS?oqZAO|3<{9ZF^`-oAEs%ns3 znxVr_?D<#2`yGF0*6>#J(5{ooUIw*-^*1$q!`3Ar{9}{1I8LMDPJc;;#tG`9|%-aT?Z(`kHfz1<{9y~9lNs?*c&z}Nb}cX zNmO<`rxOy4=UZW_i8S0+s@C)e6!a26h-uvtBwC{oeKw1K9^#IS+cPbV{|M-5ihP*z z)cP!qIx``gfL(^&DbzK^&@G6h$AU}N?2))k$Gyj#{#v>IGzWt8L9Yp2-T_+$7Z2KH z>6U%{@I=$dblCFJrQyg;$M?bf zX+VjkC%QctSR0ubXA#y9UTdN#lrfWO6f(n0v95tv=^9M=bz4*usTNbW56(Yz*W@=k6^MIC z6)a9a_u5($q=6H>xr!&MdBxZkty8~Zk$rhHu6U3>BGK-`BiXJ#pcCp`d9S0e(E)iD z-y&v0jNn5g${UvX_r>&Ex`k4Q=Y+kef|lz61#P`^utMy-7F3ziu4IVDYqIjrjNpqckB!da7o z>kTMWhdUZ!#XN9Ww}@x?uOXB}qLHjv0C=|iQ!eHwXcqN;Aig09r8ubGtIoC^#S)uyg%|l0VTmVAuk_d3wm> zUT|()2OQ{UQx1-!GJeC@E{j&)L508B_E`Ia)c#0nn{19jUACc!i<_lyDsx#GW1>+e z%HlN`0rlS`NCnF@ux>|B5+A+DsQ950RUEYYiuL4!p+pudkubwsor0R2a^H1KgvHL% z@!cb0%j~6WS>^U~GXzg>i<|_cYk(F*dG$U<6JDuC5~JE1jfrqq_L}y2b(xn1Ck>v& zCyPTUxrW(|5^W%%Qb$0iZklHwL_M5d-+3sJ?MCq%1#KA&B~#> zUJ}838GvWJXu#QiX8eL2EJgVZ5RobJ`GOHf499m{s;Yp1OB;YG>aw8{^O+T6H7hJP1{-kD_9Lk+5v@303d^tZX#IVQ7Z%p^4>MDn(bgqcGOOE)<8CaTh! zX!P77oMqAwe5`iTN)V@yJ`hY?7Y~Md7c2s~^ixh_EBlporXZ$<9dzhQPn(alq9(FO zh89o><)ak04fweOpQ4^eD^qmn<|I4*rw4SpE2~#Q0hr_t-21{dkOKd_P=NuD8eeBR z8``09xF5A!CTo*_{LWCkg<^Bc z+eJm67n=dKNo_N0?Py~=wp^Enr>_1q-}rdLK7_#}I}EfzBD`@%at!rbK7x*OYi1Uk z{M-pAtMf9^qt?22Y=?yO{(Nmp4ibdIPS+woqc8#-{VRL$iTe9-H|D!@QzWnZ^s`kL zt>w06kokLED-o_Ft!&|7Y)dv%Pty zt0IL#ZoBW+dT5Q6+&RfvQr#h9FGx|QWD(q_(AAlYvv8|K%wVX~w|6?2kZTI@BZp!3 zq1{r z@4;H_zoXMft|O(v&V>1dsi(N1_+l?SS{tng3W+PhGI+;fb-L;T-(~4Y@AVX7#*DFB zgYp)I=AzS4JP*9u>RQ4f()e`vl2c+|Sc3t;;G1C6xKG8SKekm&kaZk{lsTV{6HfyA zbe0FTEL1sCH8L4jxAf-8K{?I(Wy6lDv!Y(gyii*P3Kx-+yuyz6o455L!j%{dm}4>K zX!cwd0TL3{V0P)EwhATUH?sc}?ySyEiwfTn${0}Kcy@3}p7H4F7MRTj1IY&qy7#IE zr`GmzIjZMrA?uu}jsmEw;NT#7HWum{JN;n+_Mx*K+zHRns3i_c>ZDc(e>tUC@48A3 zJddXlitSUyhVF%n`lU1O+clZ&Ie1N2haiwA_2-kiy+VA8?1bj0$1LFAZB1$&Q=!H+ zp5c8#n^jz79^PpQg%y zqzJ=VPAl>?Ahw5V(;pUETNHoOdEQ7XEskS9pBs7Jm8waeeXAj?z@9_=57`@bgsMV7Zflmk>evmYLcNauPz;9v5EB~4Vq{9L= z0xF(H6sZ-M+QVdknb0~y9_i2`uf%xVKqN9 z^AuEXOGL_e{w0)l7B`xSiF@i7*@t%Fm<3v}BK->hJ=i_4qZ4i~N();Dpt{~m%My5DuIiB@7{!3)mB{%P!`D_J0Agew>b_ZF z-_;YCbh+f*h%r}KgWN2SpSHvvy{819+-=ZjoUNPnzGhKLQw-zzg?-7t=1GA&fbl+M zTQ_%f^lEL%Zy6RIN1CwLMxv|_nZfRqP+Vhd`(D^aW*Kv{i64qz&ugY^w^S7Z;L~o) zcjmGEB;iU%HyBL@s8p|wI7+{mB*<-_st>^fMR)!_96`tva8paL(=qXz7~?m=~HfL$Yuw1Oilblj2Y#rNwC&AOO<#)vSXiLmTxnh@3q zzc$-jz3{#}Nz{A`!Zb!#ubI`bPQbQijtavD(Ly603xbTFI7c2A@hx60zoY$5M$}6P z=z$4B>Zth?nGG&4W4??a)?KXpq=t(Cs{;#pLSnPOuC|S~u(*%Ht^`AAcl0Qh+p9EI zve8~7)La@-HGkEo%)Hm$YK%D1E-KD#Xwxr_p_V{!Z6{G`kA<#1w1Z%r6{H$MmhSRS z9ntrf$UfeZ=D)7lEg^Qg2F1<{Hc5o-jkjt2S{6nwe6fApmSX7=_0X(;ib!KcKyJWE z#k*7mCg+=AE2QKihL4!?&ni|o-R&#n0oZ+AT>z?X(e}nv_&^!9liS4Ax&2x|;T0gu zp>glyxg19~@8HzMC7u<*84~8tVFb@ig^vZUnxRA54!LqMzn1m2eV9z}vScf>KLDQ! z!0r!+w2z$3RR=>c$$N-L`ZiheJe#$G>R%H);XL;hXXJA+_aBR0zx-=Ma>yZdnD%2Q z4_D{2_<&k=i1CFJLn=cP{00US&zTD5qC-3({w07iFj@n)Y^n22;raga$;x_FVy3HU z!DFv7)n+XwnN<8tz=~}Kc&Sh*+T$t?*Xz%#m3o)RiN}jz)9FV+e4YdQY_TWkSza2p zJlP=T*$6np=3Ob&+|TC;6@5UUmjL2s0(XkY;4;kFn>o|rjy3O>dJM&zn(qI&8Kw=S-M zBXPn*48w0G7SVO#)m>sz-xrg!L%hjiiZ&H}RG#UzjUjy&X^$Oy5uWv)(0Q-E;CB>l zgBjr{xnRjsf;z-cW8`N8kPE){i^GDhr=oBj{%aYZx#El=2bI{Gy>QvW{W4W@dFeT8 zMp1ifwr0Q!N$S)j1K8LD@x$l&fx6aQa zgie+?YzOU-m8I&$KP>av$o%;A@hLJgw7Ifywo9?uyD(;LdZJqJY>zJ2! z3jS5R4QJ^S>NdNxOy$ckwZUIzd0{v2q}+!80!hd1*@GvoRJkYV4HIt04(7FE&Zix# zUTu+i{8Km2wk;;WX4_T|T+x4s4nWsbF7BP?u+e7QkfykGjQ%`ZB=aSdMl3mlPv)JD z4FX3f`E?nQYh4`N^yhXM`&o7_ zc~8h?r*|4PqwvGaG0=qg2Udf@3T9Y*(iUM^;5o0xN~J0lE?>5PxDPw^l z=ksGrPVhY+z%D<5m?&fMLD36LpRu9fify(nc~WZqc(O$2E)oU6I`i8+X4>x_XVe2T zQtyjb@hk`{9PaKO zj-(1}YTMdh?BF1DK64ln=0#>Pc7J|ma1dh25?+MbV*Ec*)qJ1X;?ttaUq>VR*{E@m zDiW&`I#DX2qiR-wtMcOY)*$VBwLo3)65{*}(fdr}54PC`v&`bj?smqA6IkY>S%pCu zXL*~*I*$hX3O^2tb(cQKd9(`c=r#L)&3-6B6Vfo@8YcKSwVyQ@fJU-3qZ;zIsJe1LIBv$J8Q>5|;D#kvfO->vf+6m*d7XIP?V+AxjP1 zvn?I<9~3l`nK#E9wbWkR*J{N$Dqi~upb`8E&9PKHdE!9Uwf>V~wN~W(An{|^9 z25z8Y3+Xgb9JIf^1a#$nXfsux5xNMf$hx#gl=C<4Y4$QE5yL+3nn7t|z@z9?OliDa|)xAhOX=C<_# zM+0*B%?aF)zAhpVR2_~FU6CC`JX3^mwa`Wo%_Cjo_@ClM`jex_Zf_qHT(KI;bsDaI z>c``z;oNNdmdWj7SuGM#ODKw#!wKr@k&QvtAQmJMhkMm6dK9T`U*=W)UvFQo?7*Tw zS9Ec`WUh*&ZqxNY&}nJ}Qu~`dMbJ-9S}}NTg~B0cHRz&$S|L(3PdsIHk^M=mu3oo2 zJ{-sUtpd0TWsxUScykotbL#;REfcY40?HtSw;dvnCo!muBfc~i8fR{zEK1kWzj*3K zN_lIliUL$Sp6@M-oul*$Yh+^IfdDw2=Yn`)mO%_F&(`mg<8=I)vw${FA+k1a+6Bks zX+^8-s=V=?u@Uoxb}5)KfLtZUYs?}VtH5k>Xb)F+UR&qrO;JP6Flv#8K~rv#WHdeb znhIM_qw;Ls(0^tnSZQnoQ}cY>_5Y@wCR#N7>MRoRW32>n|Km?9@Q3fETW7l)bXLxd z6QuSXJqlBSAa`s14@-(i*l%3Q`VG)jHh5+7%F>#zJ|`V?tGzATL)X={| zrBEQwE-xme%I@q!Aw~MuMr@Nktni7xR3&sy*wy=IQ9+@64vgc5ccTre=Z1_aM0WY*AFE(9#jMaEeq;uIJS3PRI{b$L62n zX_B^|wI(_hspnljIsZ62F(KD@xoeD!kO15$>rP4F$V(HXONIj6eP%Q)?p7!8#bxJ* zl2_^l)VW;EJP2i00y$XqU+LD%wD^3K0UlHuM4;qwxq@yg%`!As1vEY5RP8=m{fQbL zG~d_}5FUePk$`yLl2F~cc&pfBAePf|oG_F1J@#rVRNBqC(4Lj$K4@grO+)V}{gbbT zNk^F7hlT)z zPC6Y41y^(`8H)*@`c%@rqudgkujKd5I#Yq)_W46Uv_BT=m|CVE$rjEM+& zX~d3|PzlKXG~bD&b0mff^q7^BLHRG9-^$x2hhqCE4LLnoT7u88)?g(h6;^%Tub}p# z3aip-A*$IyX+eDkt}L+zVHz2W@HZ+EiILs+NRxG8380<^VvbdTl~p^(*g#g!!Z~0GIId zDlYJEM1*+5YpETRT3ZqZT%kul$cvS|57h~WvIzx7d_Bfcy~)#Mg^DR^^)|Jrr*)Q( z-?TKLXzJ;bL~Jl=FrT9O#&0e4mi&CZp8%f;*SCl6VNOQ^N|5b@pfT`RltJ%#{4IZvy`ScWWNW+}qE81x-u!s`R#~3G z`Rs3i9O@lHgX?Ose`01DB(>|wlQ(o$vR~($7rQGh!!Of=jW_5{SF+H~xw?Z|0CxHU z(QJxov!ayA^m%##U4NoCk6h}JyELTIdED=$pUbt7u%-BZz^)ddj+MutVP~{Q;PZh2 zBN7%hjw={`iqOT%UQz#pLzLHA5Fc|RqjC#H^?h#Y=7nJ#J$zIav1y=if%WyP=j}B((@8t6T<456Tl+0h(74!& z=QMtrw+uiVwIqAyf0yUqK-ijnd+XM|^c=m4te{-{HoABIYI{NmcpbShCk4#u>MjIa z-n%u>TQoKTwvy!sqx6zH`_MhUJ9weIe1xczeS8%R`C;sKRpBqcF)WvI zL<6W>vNQ_Q-~ZUk=~Wx5V0UuHKOxee!>{{@D+?#Y)L!1WCDy9OS-~`{kBcidhhLqH zp&gS;)J!_Li*1Vw@jj<$CD%AZFUws}84_l(Fo|q)maozclO6~_VGTYBb8nsZ^|gH; zYF(T}=0z9>sG@X~4F{U?Y`_lJvL5{fjyWxOg+^hjCx>uM_*AC-q_n9RJPd z_rZ-RkDdGTE*$nv#ANUJobCL_wh=C?nvY1~&79JLS^-c<| zMN%0FOEH?+?z2wSzfj)tGJjSK;b<3;fpA=`b||~??cC>PYHXM1J6CrkiBGqdms%F2NFT)d z2`me|ER~hZGlMcdH9hKnL;6%%Ws!BiiMl5*8$ zR~j{|B~}~kOBWz_h#_x4_3>3&os`kB_bjy6oYCLYhn=4c;%RGK(__fXziJRuWZt+) z6g_QiPg0QDVs$;pEcq|nt%R0~?B>;(fc9<>eFTV6$(Oy?`kt5tEN|yV&e26%ldFd7 zRZkTGw&psM2DPotKX~qHO{=iQv>%MXee|Q4BGPy8{oQf_nn6)dk_G7SuuK(SuYl0( zfG!uLSYga+4lPc)sQ&8@*{r_sW2{qeW_=Lkk1`R<&G{ZEsgzZr>j2*xs<}K*=?eKS z)lk>U725^e6N1Iq`|{;AXv6l_J^>$B1g+WJyeg^~uAg?(J`00`?|@~H2fjs~q%6{Y zx^lz!IJ4x~KzBB-=Tv zwXE|>b?+$Hm*-X2)O205hc1UdwMo=&Rxz1snCtpIDn}lq5>c`mlaR*JHFLZq4)vfn zniqMtSWjL@+s7Bz>Xz4qAVe?*7-kJ+NuRhs@L&Pqz>?kwxOFnc=hs#mR65t8M>%*-V4s zuiRXzRVKg&mAp0;@~=Ii=?Urrh>PVdN(PU8_SAV1cRj&;Kt5!sH~HQ}g`P87Q#$(> zFX=Y3^;+>xS95y8rr`RH?C>e?0Z7MdDD5R_)SK6gL2=UzXo@ z%d)gujB;H5uIAG9V(-RMcP+)a*WFaza>2P5o;PD*Ry0=Akq|AoM_%R(!k1OOHtHYe zq)M`H8N3T;-k?Y3VLbnBn?&|BR0*)^`bwJ2=V~~W{}hB5-akvo05deJ$Kk*R-QnYM z6X9Xi*SgZ~w0F-PES$Qhdz{|che(P%RVu~6DKQ~&rGm>nC~8ThxxqRCj{4%Z@E^e@ zm0v)?n9-m*sf>! zhrEWf4MMvwW_}Wr)-IoZ-j^MDSBtYnm+|WL)7r3py~8;w zK>09L93b{3A}o>JR_W;Hya0;}4{3eS0c*^vIg|a#abiVu;b)Q|i`gB4bi)*`5y*#vM8N)m*lC({R-6e##@mVxvLzm*4c}RTuLY>6R~r&d9WlJ(mzi=XRrNS z(uik^2^7xIa^>NQ@?{iL$v&P<1umKzfSRnr0%dk1shp^+Gb1S|PuGeW4X#5a6vGP} z#StiDU%dMe2l_7rq-*3oQTN(8-@L@Dd+vtM&x-cp--%8(&3+;@`XGt|5~Zp$#}hof z5tH5L5kc0=eG(wie)w(7w*#|ardzXftJW<4(8W%t1YKCvYR8e$-{a}9cg0!{eClvw zVSZIF{u1vAn{%jxUrfG!6wyv@?ZqDAY8{%28P(1&VCYt^%TCgNiM!XF?LlBgYnwaR zz<{;Bj*_x=zn%y7JF6sWl7}P3Qkz6-XqaaX0HDT2<56pbV$iAIW-p#VdEBPl`pBBT z;)p#t_{GM$&HUP$gl5D4v=#PJF7Foo=@=Mb3Vfk}=xQt0I6o-x7Mq!1YIwtm2d~dH z)>*jR5W@yl5J&am-n4H-IQh3agPLLC5Ly}0dsf;+O6#)eE}bignUZzRgZkcR#ik$c z`aiOxu*!*-)g4e(55p;<2`aq1s!{&57o;Z1;Om-aLD&}uxRkD^N*SjqIiz&s>ewwG zo(2Ftciah{w_bt+!SL?1-tvp^0138IOjf96xMR%S5t(jDUq=3UXP>)G!H)x3`5v3< zmOjFdN0C8)rkq}Z$8%@$-y=uL243)06zXV|=?FnnSt_5v`pjP|9 zkEnR-NFpZH-CU;oin`9WYQ1Ls`DPR?uj*ZnS<(hO_5VxXHY8P3!BkThV?Nj2>f|83 z}~?P5O^KZ`yt+6Wa)hS9qg(Lvawt$K;L8<}D1X9TQFbu7fZv zM%k$5Es38J1Jxo$WDQ0Ipn1D5n}k%K+6K*bQ`K8V16xF7aL@ojTm+O_w(LC zZ$?QgKDtI8X%IHjF1&UcNs{U`r>uy9$4~aOa>mh(uE`$<+&_bD7LM=69|6z3VZN1c zU*;cFGY}_dlO)Y+)4!M{Rv;8L=9d^%+WupKQWA`*q7}+(%AGxxA`b`7)F9$dm0^u5 zbtoBiRhRDZ7b0=L&C>-L7p+u?5Gt5)dX=;*v(4#2$PlX5W`GgWu?i(}q4kD~K7e8I ztlTZ^m3n}qGqyNsM;;&ZB3;B_oT(2Om0VEWmzx@xhD{i}7PvCAQ)Bq;3Ql}#5-ACt zR^lEte^FasetgQoD1dq9Ny3Nkl=-k_{?f(h8)bb#Rsgk{mSm-&mzZ@~crq5Q03c%= zL$dcS-)d`N0w{L(-9pR*2n$^e$D%lMC@iqLbz9ayT-RHWiI`P~|D)KIMZ?t_8OR-L z4I=;P8~eqTa__7K&xrd+zcKK5t|Ifvs&56;+x)CEY@`#_b&*yx>mc<FlBFx=GM_|<2k6{(H z^GIaxp7i+ONoMBNBjKt*a9Sksq~j~U5&6nlQ{u|b_upCUcRp#Hlm}xY7$kq6G1D3) zqJ}7n;y777_hFkaItx9|G%J>3U z=R|ZYgn)#$_0}*kyDER(mv`y{h_1+;s)8KppBAjZ1`U=6IUSBU`8X10ZW8GUjSGKF zpRnhz-Ky76&e&6)I@&uXd&4R*0n^Kbt2{Of5d)wP}o7Vhs zMuX#8n1m^1CkK{8M>)oCDUp+cETZp&A-o~u-F}P#DD1Z1MNN)!y_|sJ3rb9_L1*98 zZqIxXx@!uGY+{^)*}*GFv-ZN~6KW@xj^(*G5;sg6MiTn#!vtb%(KtaScZB2H}?Yq)!kfyYidW0!L&+jLobT*n~x#C-bHmwXW1RqM%prMO3(fbP z!>OG_8Bojy@Wp{POR5bTYZ~p+lDz#L;76n0;m88-X?Fl5WN17J}MeZ_n+jglDCI#NQyP*0bh_BK_Bm|i*?FQ zPBZbpX%K4@(m%I{_+FZbQ4DSAE37Xs~r0OOPk8h^#67pnFv_e*#AeQ zjg^Uw<^LesY#hy4a4eTy;t9AGieL(35Q;>W&q*=pibNwAnK7nen2{HX-sFfx$QL4z z5LpXF?s~+Y5qgky+24BJboMm&Jb$yB=J>9zoAQRHN@4|%2ybU0;u$1FRKWDhZS$d# zP*Fj{Bg2y(9xL?`6?l+>{)HSOG65ii;OK|jgZU2w7#0>1FzNb3jc(vZH8+g`gXjnP z3HUc4qr{33HUJn!Bafm&Hi3_Kbaqm89_B{r=TV1ivttq=0Ce*L=|?#W0jNAb&ouXA z0RY0*BMJZqi0K!|0sNe?$w^=cfI|xBJ3t8f(}F?Uf06_CGnjKc+R1Vx@B_`)LeTtb zrqiMY0i9P0CNIDABlu@d0*6BZM1}%8v(#-ZxMxqZVgn8p{_fuL0sQG5gZ$7pe$ao` zMY?>EBM|}z0N9hjz}E||6D}CT|GvsX+e88Ke1nJbyZyE~(?Yn_z!TWt6c7N!*7un5 zyEy_0D?<4DLxG)q=;1AGm@>AiMf9pSa@ zlLTZC7LYg#XQ682dG8!{#UV$=(}ZN?&@=Jno8x=;O$pgMz| zV*TsK`nb<-*6PORICPYN;$Np1QHK!in7aJ#1Ip${@@(!;ii;+mWsA#FIw&ac-ZtFU z2)VrM=M}IQ$!_T%jn82sxqKC1WbBK_UYQ^FH?o8~qgX*EJCTSqVZDZk-5kqT&(#yUx!(mG)wT!K@$N_@h#A-PLG$2AJJH0pCes*}TCJ!}*{0-kmqH^x(APu(p1Nn_1sLaGH4&z;*uq%4iGd_ zaJn(kBz)IN`;Tu=VyPFJg1d~wpn0rWm{2JrKTa1P+8nCf74FBCY3+y_dsCK$DzY)R zxw`)>Spl7I%y!tvKOx-X&p3pD{dWS8r!wOH5qs9{6I2s#RM1Vh?A@3cXm=!ow`ywk z7!TPRimYgJnF&d(#Mm`3XDxQoew+=oGxZ6eq7M8BPFE79@vt$xU*Q)@-Ml)OXb$M8 z6(&v6@Q?kkrP??zZq?@q2V5BV5qK1O7uE1N`ueT1Ph410Jn}aI&4uT| z3O9q;aey(r0^A?%UwDYV7;a5`W2GxX?aPg^ICVod=1PmWQ303@WsL&Zateiz!E0|( zi(7oJ01G*7nP;juq~wr{NX$bx2F^#R_+#N_!Ju!i&MfjDeVZ^ut9#=p3Gk1U4LmhV zvnYeVv)C?&ZNJ3=|LS*E>@);>A(%NbB*C9|#i8!<8(H*L`6=z-e6?Jf=ng`v?Q3Mv zjvsp5S|2h=Xq>B%oE59IpboX!6a)7Rmw|jJM`CZ;nWP1BK~@0n-D>z$N;!O4Y2?z6 zI|7X2Flbf2t@B-p0Z1grn0RRSOi`sKWi(N0U&_I1*H06g@T{{PU3Bx76>^Mu5V{UO zmQHxTYC@yvY_J$tWMxg^sjU(|;%q1iyN-FQ(6ow}6Y1F*L3@K6PH8A|OKe(w2t(7c z9<*oaa%aOflTCO7DOu8?%LL2Xh9G6dv7Df^D^D1xyoiu5o@Fn?cy{dy)vb zLPEI4(63!+_s4zhG_2yXQ!Bqut4H9c>g|jbaZV@tag&za9GMTM`77BbkhF%BiARtu z*2mVV$}`R|g7JeV!`|JOKVno;%1T0H@gzVV?LuC8C)uK{1?d=1R)M*>dIa8Hvvp&A=2+ju#+xXeQ71LL2w*?v>N6vpnNd>N^T}^W8g|{u%iQ zkB`b}YAio>Dnr!-6*9eJ?u@7N1|Zf=PjcTlfL@l4y*D1U1mvPZmmuej6Oxo`VnETO zNS%m$L(O|i(^|bt)BGWv*TOSOZp+x|a+#*R-|6oVYVI`)skCk=+a`Ul7aHj-sP^F- zOOGYya~cr1?1FNxVE%mGdC~TDxJ9#FhY7CDBkH42LM%6JiU{iYd&C@$T>f)c&TQ{X zW_4JjcE-V2wP}bUHefW(pjkUnz?I{aNDjtD+Az?ntaOXVS)M5h+ zbWL2q%wt(%SG6rd1s%A&kQ1QgHOo&OO(QkY@3+fz@04E(0n1X~PW1#E0P!ViWo6Md zZ1iq8;paSk*%A6Y^QBd{UVCX*og)X^hD3Vm4mqKLbLJe&mU=H42c*3%*GuHI) zXd7MPTS?BgFFGD|pVN2`YGOOt_0fwABhut^_4o-zZMfS~nU0-SeVw7{MS8dv&Td-PO%F#c zmG81gWSNNbVXRny3C~ZiTv!MT2;bd4a6FHL_gl0ijwdw%FP&oiZ?U@@{8&>SYCEud zY=G~Vz?%swf7sFvby^si+YsW&U15wc7b5yAw9{D0o?6PDGo7|ma1k3Y~>-yXQ>Rv_bMln!*!AK=a=SX-9p zd?5cFjvG|aha6#l`Q4KWyixun;iz+Pym9($$1H+Gv4~~7ZphFWMIpD-MIA}23}dy~ zlcWgs#-`^;Cf3a6RkW0k5HIJRznw;Hi;s=^m}9;ASUbPZe})d`Ebh&es7oKb8^zv( z{Th}Gte;x+NY7!V6nd+g6sUHzOPXlSpy^=5$7NTthem?CNOXUh_%+}4F`IpYjL!h; z6!-sad;4;@RLa|!levlc6M#|)0iDw!u*9L6te#J+*qz);MBaf$-#3n;eud_(cECQ)m}knf+w zgCKI=u4R^)XZq4!^XEy^<2mJj5OO|w6l=0lO`9t$QFBt=ecL+*@uNvWG6magS3Nc( z#1Qhfj&IB2w&hjs6l=qj65&auF8xEtApG99oQi8^Hz&E zD=%BnYp3SgaoQE6iw8$jSHJyxx(hS`XRj8JS1EJ)1K&*;Ryd(ZQ45Ren9O&di#{Lf zu%fAJUKTXg-~EmbU>6eb_@o+~i2fU(nGQ27FXkT19N29?eI7+)ptomHLwQ2=zSm&e zz%%7)NB;o<)5kf{(!;%f#r|8y09Phe|?~9(n*EgUTLh6r2)DM>+)tEZfW5ugT8ffHg|l9JtoeQW*Zb9hJD-j z&YGg~{eBX?s!YebHsL9)1vTAwC7+6Q;yAJ&pd(LOim#ezt9qDe9Jlwx}~IzU3tKC4J2( z+xI9KEv+{`v(#<5{_CxFdw+1xQSbD9#C)F5!cykG!P{o;S3J$vup$jD^b6*JXp}si zKkM}m!*NaABSynqBlJ_7egVEed&62q)4R^#vb1k`+>eo{T%`(2-&)zTlr4=D24%sl z&1tp2Dy1KtB!Ax>awx5N!(H6exxLhY%X&%_%S)b6Mx=#SRX59G248}RVPm3>%M6T`19pBpJdYAnp@@sS!6oC9AtS$J-#2I9LQ$CIXW7bC7L97*x<#ylOTS>ztN@S60tUA zxtKGfR5>==q|qzs*%6r)qd=VYhu89s%5aI8t;VAxKE0ZkSn&z~?Y??}VJMF;CUmA` zjDtBIN#q^iXzwmFG^du9 zTI^t)T%*iPZ-{oLU%-PTFVbRS&nRBdob4Ad{%X@0a#vpB*5VBP!l^=l!iQbWY*E0X2&066Lq`}zo+9MrbXq{hgqYFbrC z&ZB4uVSi#8w(ciEeXqDCmwQgavZilVx9$}}os+v=I&k-gRsiKMiCX8vAG}v=iUW2N z;4>kh(S2}yVOjV1mEeq8AM0e6B5uoxm9SV+7#mM-Ue^GW`#dx?{9kS#vJeAyhh{1t2T(JG`YK_ugV-RtrcAP zjf_iR_M>$wD(CuNO6}V8#D=fW=cZiCpUO|ZzSg4qf*gU)GFMhw8284HHMwV^Zhz$| zi+cJaHquZ0;ot0CwePDJ(tNuLT~J@q!9tt4j(%vJEw6J4n3%YvgfH&+MNpFV9{zdNuo$=fe@wO8x|CW~=5 zDgvmM{%}U!6_}Ed)DCn;5gbAiiVO=Y#QAbdG?9_z1x-H&nq}iTan-?PS2LlXApK}n zYJa8siiqnjx7vkcKOUDPS7LDVyyoqM)rrnIv+k?~{}myZkk!=VPu2-%JBxn^=??FG zx|SC?0&(VG3q0~Sdwt!yR=a4vF3L~C0?b{iucV+IY*%aVeOR3tYu8N+-lRGRbLve{ zUYqe^Hbo#C1-`M|PkcUh>9Umc` z@c*J~ipFEet0uoSb$4)cLm~h&nhqEb!d#z^OX(wvdY zYLVxlF?g~r8BGk?i0Viu9D*$M@7B=49qR#r!^wumVLY*}9suZXc1Q%;2~V~uIbWKJ z3P8pJU;_XHWXaD%GC{N-5&$NPX{!Tl;9z+6yhMOAm@m1 zh9DGG;N&g>ArDoAAQ6rbM>&v#BUC{S3IoX_k#a}}kfX}O|K_N6a-^UX(JaDla;0%` zafyc9kD~?o3rBrhrb}du1ti(ff83!?)cX!F_EJtjywIhp9&x fe{L Date: Fri, 29 Oct 2021 22:19:45 -0700 Subject: [PATCH 05/17] Conform only up to 100 rblocks when creating a mblock (#935) - Avoid confirming too many rblocks and thus xshard cursor will take a long time to iterate all rblocks' xshard txs. --- quarkchain/cluster/shard_state.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/quarkchain/cluster/shard_state.py b/quarkchain/cluster/shard_state.py index c384c40d9..b4cf49646 100644 --- a/quarkchain/cluster/shard_state.py +++ b/quarkchain/cluster/shard_state.py @@ -1320,6 +1320,15 @@ def create_block_to_mine( # Cross-shard receive must be handled before including tx from tx_queue # This is part of consensus. block.header.hash_prev_root_block = self.root_tip.get_hash() + + # Move up to 100 rblock to prevent xchain cursor running out + prev_block_rblock = self.db.get_root_block_header_by_hash(prev_block.header.hash_prev_root_block) + assert (self.root_tip.height >= prev_block_rblock.height) # may further assert they are chained? + if (self.root_tip.height - prev_block_rblock.height > 100): + block.header.hash_prev_root_block = self.db.get_root_block_header_by_height( + block.header.hash_prev_root_block, + prev_block_rblock.height + 100 + ).get_hash() ( xtx_list, evm_state.xshard_tx_cursor_info, From 07b43a2a164b2affd6162cbf133855ab9fbc935a Mon Sep 17 00:00:00 2001 From: ninjaahhh <38544039+ninjaahhh@users.noreply.github.com> Date: Tue, 16 Nov 2021 12:38:58 +0800 Subject: [PATCH 06/17] improve mnt transfer EVM test (#936) * improve mnt transfer EVM test 1. fixed test util's display of prev & current state 2. updated fixture's contract bytecode and made sure EVM behavior is expected * add test cases for long token ID * fix token ID * minor * fix root hash --- .../contractTransferMntFallback.json | 24 +++++++++++++------ quarkchain/evm/tests/new_statetest_utils.py | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/fixtures/QuarkChainStateTests/stContractCallMnt/contractTransferMntFallback.json b/fixtures/QuarkChainStateTests/stContractCallMnt/contractTransferMntFallback.json index 2ba1c671a..0337ad773 100644 --- a/fixtures/QuarkChainStateTests/stContractCallMnt/contractTransferMntFallback.json +++ b/fixtures/QuarkChainStateTests/stContractCallMnt/contractTransferMntFallback.json @@ -18,14 +18,22 @@ "post": { "ConstantinopleFix": [ { - "hash": "0x8c1cab0408d24a2eb99e95765c046878d2ff5fd6f221709a26845aca1add61d6", + "hash": "0x606816f0b9968977f7a593d6d17208b851ab868c6bc7a8034de434dbc4d2a344", "indexes": { "data": 0, "gas": 0, "value": 0, "transferTokenId": 0 - }, - "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + } + }, + { + "hash": "0x2a39e58d7a961d2979249a7dab088b89c95a9e328ea6d344b6ebb89031b4ac39", + "indexes": { + "data": 1, + "gas": 0, + "value": 0, + "transferTokenId": 0 + } } ] }, @@ -45,14 +53,14 @@ "0x8bb0": "0x0f7832d890000", "0x1234": "0x9" }, - "code": "608060405234801561001057600080fd5b5061010e806100206000396000f3fe608060405260043610603e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166390b4902781146043575b600080fd5b348015604e57600080fd5b50607560048036036060811015606357600080fd5b50803590602081013590604001356087565b60408051918252519081900360200190f35b6000608f60c3565b84815260208082018590526040820184905282606083600064514b430002600019f1151560bb57600080fd5b509392505050565b606060405190810160405280600390602082028038833950919291505056fea165627a7a72305820140e93e6d0727652332a820d62917a2091a3e807df1d9a454a1ebe542e25592a0029", + "code": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806390b4902714610030575b600080fd5b6100706004803603606081101561004657600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610086565b6040518082815260200191505060405180910390f35b60006100906100f8565b848160006003811061009e57fe5b60200201818152505083816001600381106100b557fe5b60200201818152505082816002600381106100cc57fe5b602002018181525050602082606083600064514b430002600019f16100f057600080fd5b509392505050565b604051806060016040528060039060208202803883398082019150509050509056fea265627a7a723158208279dcc675268973e1d770d00f53c1c4028ba89a3f47d630884e9dd77af9c25c64736f6c63430005110032", "nonce": "0x00", "storage": { } }, "0xbfd5b36fa6f5de48d807397e9b68d0a0d694e38e": { "balance": "0x00", - "code": "6080604052348015600f57600080fd5b50606f80601d6000396000f3fe6080604052600a6024565b6040816000808064514b430001600019f150506001600055005b602060405190810160405280600190602082028038833950919291505056fea165627a7a72305820b402355b87dfda3dd5a1faa36cb6f0ef8f317cac5d280661af787367d1f8b8dc0029", + "code": "0x6080604052600a6028565b604081600080600064514b430001600019f150600160008190555050005b604051806020016040528060019060208202803883398082019150509050509056fea265627a7a723158203c7281fa897cd5f97a5c8e50b85d8d4b5775c642d24f1f56813223533e629f3b64736f6c63430005110032", "nonce": "0x00", "storage": { } @@ -64,14 +72,16 @@ "_hex": "0xbfd5b36fa6f5de48d807397e9b68d0a0d694e38e" }, "uint256 token_id": { - "_hex": "0x1234" + "_hex": "0x1234", + "_hex2": "1046823949374975479359571919336054293237424652288" }, "uint256 value": { "_hex": "0x09" } }, "data": [ - "0x90b49027000000000000000000000000bfd5b36fa6f5de48d807397e9b68d0a0d694e38e00000000000000000000000000000000000000000000000000000000000012340000000000000000000000000000000000000000000000000000000000000009" + "0x90b49027000000000000000000000000bfd5b36fa6f5de48d807397e9b68d0a0d694e38e00000000000000000000000000000000000000000000000000000000000012340000000000000000000000000000000000000000000000000000000000000009", + "0x90b49027000000000000000000000000bfd5b36fa6f5de48d807397e9b68d0a0d694e38e000000000000000000000000b75d3598fd4950000000000043a3163a810700000000000000000000000000000000000000000000000000000000000000000009" ], "gasLimit": [ "0x2dc6c0" diff --git a/quarkchain/evm/tests/new_statetest_utils.py b/quarkchain/evm/tests/new_statetest_utils.py index 6adbc08e8..a45509dc2 100644 --- a/quarkchain/evm/tests/new_statetest_utils.py +++ b/quarkchain/evm/tests/new_statetest_utils.py @@ -120,7 +120,7 @@ def compute_state_test_unit(state, txdata, indices, konfig, is_qkc_state, qkc_en tx.v = parse_int_or_hex(txdata["v"]) tx._in_mutable_context = False # Run it - prev = state.to_dict() + prev = copy.deepcopy(state.to_dict()) success, output = apply_transaction(state, tx, tx_wrapper_hash=bytes(32)) except InvalidTransaction as e: print("Exception: %r" % e) From af1dd06a50d918aaf45569d9b0f54f5ecceb6afe Mon Sep 17 00:00:00 2001 From: Qi Zhou Date: Sat, 4 Dec 2021 23:17:42 -0800 Subject: [PATCH 07/17] add token_emission.py --- quarkchain/experimental/token_emission.py | 74 +++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 quarkchain/experimental/token_emission.py diff --git a/quarkchain/experimental/token_emission.py b/quarkchain/experimental/token_emission.py new file mode 100644 index 000000000..5257663ed --- /dev/null +++ b/quarkchain/experimental/token_emission.py @@ -0,0 +1,74 @@ +# Parameters +GENESIS_TIMESTAMP = 1556639999 +GENESIS_SUPPLY = 6 * (10 ** 9) * (10 ** 18) # 6B + +ROOT_BLOCK_TIME = 60 # actual ~ 57.79 +ROOT_EPOCH_INTERVAL = 525600 +ROOT_BLOCK_REWARD = 156000000000000000000 + +SHARD_BLOCK_TIME = 10 # actual ~ 9.76 +SHARD_EPOCH_INTERVAL = 3153600 +SHARD_GENESIS_NUMBER = 8 +SHARD_BLOCK_REWARD = 6500000000000000000 + + +def get_chain_reward(bn, epoch_interval, block_reward): + r = 0 + while bn != 0: + b = min(bn, epoch_interval) + bn -= b + r += block_reward * b + block_reward = block_reward * 88 // 100 + return r + + +def get_circulating_supply_by_bn(bns): + cs = GENESIS_SUPPLY + get_chain_reward(bns[0], ROOT_EPOCH_INTERVAL, ROOT_BLOCK_REWARD) + for i in range(1, 9): + cs += get_chain_reward(bns[i], SHARD_EPOCH_INTERVAL, SHARD_BLOCK_REWARD) + sbreward = SHARD_BLOCK_REWARD + for i in range(9, len(bns)): + sbreward = sbreward * 88 // 100 + cs += get_chain_reward(bns[i], SHARD_EPOCH_INTERVAL, sbreward) * 3 // 2 # 1 new shardds, and 0.5 will be root chains + return cs + + +def get_circulating_supply(ts, with_new_shards=False): + if ts < GENESIS_TIMESTAMP: + return 0 + + bns = [(ts - GENESIS_TIMESTAMP) // ROOT_BLOCK_TIME] + bns += [(ts - GENESIS_TIMESTAMP) // SHARD_BLOCK_TIME] * 8 + if with_new_shards: + # May add one shard per year, which will have the same emission as existin shard at the time of creation. + # This means the genesis reward for the shard is already reduced. + sbreward = SHARD_BLOCK_REWARD + for i in range((ts - GENESIS_TIMESTAMP) // SHARD_BLOCK_TIME // SHARD_EPOCH_INTERVAL): + bns.append((ts - GENESIS_TIMESTAMP) // SHARD_BLOCK_TIME - SHARD_EPOCH_INTERVAL * (i + 1)) + return get_circulating_supply_by_bn(bns) + + +def print_end_of_month_supply(): + import calendar + import datetime + + dt = datetime.datetime(2021, 12, 31, 0, 0) + print("{}: {}".format(dt, get_circulating_supply(int(dt.timestamp()), with_new_shards=True) / 1e18)) + + for year in range(2022, 2025): + for month in range(1, 13): + day = calendar.monthrange(year, month)[1] + dt = datetime.datetime(year, month, day, 0, 0) + print("{}: {}".format(dt, get_circulating_supply(int(dt.timestamp()), with_new_shards=True) / 1e18)) + + +print(get_circulating_supply_by_bn([222898, 1285646, 1278508, 1279479, 1277021, 1282227, 1278981, 1275374, 1277279]) / 1e18) # 6101296435.5 +print(get_circulating_supply_by_bn([1294545, 7600468, 7555507, 7562667, 7588454, 7595046, 7552602, 7584632, 7464263]) / 1e18) # 6542409279.3184 +print(get_circulating_supply_by_bn([1419566, 8375518, 8340637, 8352809, 8412933, 8388349, 8330705, 8348813, 8230480]) / 1e18) # 6589106535.1807995 + +print(get_circulating_supply(1638686770) / 1e18) # 6577057566.592 +print(get_circulating_supply(1638686770, with_new_shards=True) / 1e18) # 6632768875.2736 +print(get_circulating_supply(40000000000, with_new_shards=False) / 1e18) # 8049840000.0 (max cap without new shards) +print(get_circulating_supply(40000000000, with_new_shards=True) / 1e18) # 9928860000.0 (max cap) + +print_end_of_month_supply() From c8ae10ba001aa82e8e53dacbb2d82798f8b5aa6a Mon Sep 17 00:00:00 2001 From: Qi Zhou Date: Mon, 24 Jan 2022 20:34:15 -0800 Subject: [PATCH 08/17] increase rblock cache in root state (#938) Co-authored-by: Qi Zhou --- quarkchain/cluster/root_state.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkchain/cluster/root_state.py b/quarkchain/cluster/root_state.py index e5d999d86..84f217aac 100644 --- a/quarkchain/cluster/root_state.py +++ b/quarkchain/cluster/root_state.py @@ -59,7 +59,7 @@ def __init__(self, db, quark_chain_config, count_minor_blocks=False): self.tip_header = None self.__recover_from_db() - self.rblock_cache = LRUCache(maxsize=1024) + self.rblock_cache = LRUCache(maxsize=8192) # enough for 8192 * 60 / 3600 / 24 = 5.6 days def __recover_from_db(self): """ Recover the best chain from local database. From 82faa96eb74512d0d0a758bf788fadd1326efc11 Mon Sep 17 00:00:00 2001 From: ping-ke Date: Sat, 12 Mar 2022 22:48:05 +0800 Subject: [PATCH 09/17] PoSW diff adjustment (#939) * Add fields to POSW * Add function for PoSW diff adjustment * add ROOT_CHAIN_POSW_CONTRACT_BYTECODE_HASH to config --- devnet/singularity/cluster_config.json | 25 ++++++++--- .../singularity/cluster_config_template.json | 6 ++- quarkchain/cluster/master.py | 4 +- quarkchain/cluster/posw.py | 2 +- quarkchain/cluster/shard.py | 2 +- quarkchain/cluster/tests/test_cluster.py | 1 + quarkchain/config.py | 19 +++++++++ quarkchain/tests/test_config.py | 42 +++++++++++++++++-- 8 files changed, 87 insertions(+), 14 deletions(-) diff --git a/devnet/singularity/cluster_config.json b/devnet/singularity/cluster_config.json index 1c02c60a6..0f0cb0aec 100644 --- a/devnet/singularity/cluster_config.json +++ b/devnet/singularity/cluster_config.json @@ -33,10 +33,10 @@ "ENABLE_GENERAL_NATIVE_TOKEN_TIMESTAMP": 0, "ROOT": { "MAX_STALE_ROOT_BLOCK_HEIGHT_DIFF": 22500, - "CONSENSUS_TYPE": "POW_SIMULATE", + "CONSENSUS_TYPE": "POW_ETHASH", "CONSENSUS_CONFIG": { "TARGET_BLOCK_TIME": 60, - "REMOTE_MINE": false + "REMOTE_MINE": true }, "GENESIS": { "VERSION": 0, @@ -44,15 +44,24 @@ "HASH_PREV_BLOCK": "0000000000000000000000000000000000000000000000000000000000000000", "HASH_MERKLE_ROOT": "0000000000000000000000000000000000000000000000000000000000000000", "TIMESTAMP": 1556639999, - "DIFFICULTY": 10000000000000, + "DIFFICULTY": 100000, "NONCE": 0 }, - "COINBASE_ADDRESS": "000000000000000000000000000000000000000000000000", + "COINBASE_ADDRESS": "a92885095A33E45A3C018Df7Aa6242B62Acb971800000000", "COINBASE_AMOUNT": 156000000000000000000, "DIFFICULTY_ADJUSTMENT_CUTOFF_TIME": 40, "DIFFICULTY_ADJUSTMENT_FACTOR": 1024, "EPOCH_INTERVAL": 525600, "POSW_CONFIG": { + "ENABLED": true, + "ENABLE_TIMESTAMP": 1646668800, + "DIFF_DIVIDER": 100, + "WINDOW_SIZE": 512, + "TOTAL_STAKE_PER_BLOCK": 10000000000000000000000, + "BOOST_TIMESTAMP": 1646978400, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 10, + "BOOST_STEP_INTERVAL": 3600 } }, "CHAINS": [ @@ -81,6 +90,11 @@ "balances": { "QKC": 600000000000000000000000000 } + }, + "5C935469C5592Aeeac3372e922d9bCEabDF8830d00000000": { + "balances": { + "QKC": 600000000000000000000000000 + } } } }, @@ -351,7 +365,8 @@ } ], "REWARD_TAX_RATE": 0.5, - "BLOCK_REWARD_DECAY_FACTOR": 0.88 + "BLOCK_REWARD_DECAY_FACTOR": 0.88, + "ROOT_CHAIN_POSW_CONTRACT_BYTECODE_HASH": "ee90e568da573f251d63256e843add8bd7a27cec1f4c2a06ef20380be68df0a3" }, "MASTER": { "MASTER_TO_SLAVE_CONNECT_RETRY_DELAY": 1.0 diff --git a/mainnet/singularity/cluster_config_template.json b/mainnet/singularity/cluster_config_template.json index 4a93b7958..698938f31 100644 --- a/mainnet/singularity/cluster_config_template.json +++ b/mainnet/singularity/cluster_config_template.json @@ -89,7 +89,11 @@ "ENABLE_TIMESTAMP": 1569567600, "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, - "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000 + "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, + "BOOST_TIMESTAMP": 1646064000, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 10, + "BOOST_STEP_INTERVAL": 172800 } }, "CHAINS": [ diff --git a/quarkchain/cluster/master.py b/quarkchain/cluster/master.py index da26ac12d..e4ce6527b 100644 --- a/quarkchain/cluster/master.py +++ b/quarkchain/cluster/master.py @@ -1459,7 +1459,7 @@ async def get_stats(self): shard["poswEnabled"] = config.ENABLED shard["poswMinStake"] = config.TOTAL_STAKE_PER_BLOCK shard["poswWindowSize"] = config.WINDOW_SIZE - shard["difficultyDivider"] = config.DIFF_DIVIDER + shard["difficultyDivider"] = config.get_diff_divider(shard_stats.timestamp) shards.append(shard) shards.sort(key=lambda x: x["fullShardId"]) @@ -1685,7 +1685,7 @@ async def get_work( check(isinstance(block, RootBlock)) posw_mineable = await self.posw_mineable(block) config = self.env.quark_chain_config.ROOT.POSW_CONFIG - return work, config.DIFF_DIVIDER if posw_mineable else None + return work, config.get_diff_divider(block.header.create_time) if posw_mineable else None if branch.value not in self.branch_to_slaves: return None, None diff --git a/quarkchain/cluster/posw.py b/quarkchain/cluster/posw.py index f0d3edacf..109bac838 100644 --- a/quarkchain/cluster/posw.py +++ b/quarkchain/cluster/posw.py @@ -82,7 +82,7 @@ def get_posw_info( diff = header.difficulty ret = lambda success: PoSWInfo( - diff // config.DIFF_DIVIDER if success else diff, + diff // config.get_diff_divider(header.create_time) if success else diff, block_threshold, # mined blocks should include current one, assuming success posw_mined_blocks=cnt + 1, diff --git a/quarkchain/cluster/shard.py b/quarkchain/cluster/shard.py index c203cd201..feb85435b 100644 --- a/quarkchain/cluster/shard.py +++ b/quarkchain/cluster/shard.py @@ -406,7 +406,7 @@ def __validate_block_headers(self, block_header_list: List[MinorBlockHeader]): consensus_type = shard_config.CONSENSUS_TYPE diff = header.difficulty if shard_config.POSW_CONFIG.ENABLED: - diff //= shard_config.POSW_CONFIG.DIFF_DIVIDER + diff //= shard_config.POSW_CONFIG.get_diff_divider(header.create_time) validate_seal( header, consensus_type, diff --git a/quarkchain/cluster/tests/test_cluster.py b/quarkchain/cluster/tests/test_cluster.py index 2f23005f2..eb76458e0 100644 --- a/quarkchain/cluster/tests/test_cluster.py +++ b/quarkchain/cluster/tests/test_cluster.py @@ -2502,6 +2502,7 @@ def add_root_block(addr, sign=False): qkc_config.ROOT.POSW_CONFIG.WINDOW_SIZE = 2 # should always pass pow check if posw is applied qkc_config.ROOT.POSW_CONFIG.DIFF_DIVIDER = 1000000 + qkc_config.ROOT.POSW_CONFIG.BOOST_TIMESTAMP = 0 shard = next(iter(clusters[0].slave_list[0].shards.values())) # monkey patch staking results diff --git a/quarkchain/config.py b/quarkchain/config.py index 2e4054bed..c67ca71b6 100644 --- a/quarkchain/config.py +++ b/quarkchain/config.py @@ -118,6 +118,21 @@ class POSWConfig(BaseConfig): # TODO: needs better tuning / estimating # = total stakes / alpha TOTAL_STAKE_PER_BLOCK = (10 ** 9) * QUARKSH_TO_JIAOZI + BOOST_TIMESTAMP = 0 # 0 mean Disable + BOOST_MULTIPLIER_PER_STEP = 2 + BOOST_STEPS = 10 + BOOST_STEP_INTERVAL = 43200 + + def get_diff_divider(self, block_timestamp): + diff_divider = self.DIFF_DIVIDER + if 0 < self.BOOST_TIMESTAMP < block_timestamp: + steps = (block_timestamp - self.BOOST_TIMESTAMP) // self.BOOST_STEP_INTERVAL + 1 + if steps > self.BOOST_STEPS: + steps = self.BOOST_STEPS + + diff_divider = self.DIFF_DIVIDER * pow(self.BOOST_MULTIPLIER_PER_STEP, steps) + + return diff_divider class ChainConfig(BaseConfig): @@ -251,6 +266,10 @@ def __init__(self): self.POSW_CONFIG.WINDOW_SIZE = 4320 # 72 hours self.POSW_CONFIG.DIFF_DIVIDER = 1000 self.POSW_CONFIG.TOTAL_STAKE_PER_BLOCK = 240000 * QUARKSH_TO_JIAOZI + self.POSW_CONFIG.BOOST_TIMESTAMP = 0 + self.POSW_CONFIG.BOOST_MULTIPLIER_PER_STEP = 2 + self.POSW_CONFIG.BOOST_STEPS = 10 + self.POSW_CONFIG.BOOST_STEP_INTERVAL = 172800 def to_dict(self): ret = super().to_dict() diff --git a/quarkchain/tests/test_config.py b/quarkchain/tests/test_config.py index f82b7837e..4b195a614 100644 --- a/quarkchain/tests/test_config.py +++ b/quarkchain/tests/test_config.py @@ -77,7 +77,11 @@ def test_serialization(self): "ENABLE_TIMESTAMP": 0, "DIFF_DIVIDER": 1000, "WINDOW_SIZE": 4320, - "TOTAL_STAKE_PER_BLOCK": 240000000000000000000000 + "TOTAL_STAKE_PER_BLOCK": 240000000000000000000000, + "BOOST_TIMESTAMP": 0, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 10, + "BOOST_STEP_INTERVAL": 172800 } }, "CHAINS": [ @@ -115,7 +119,11 @@ def test_serialization(self): "ENABLE_TIMESTAMP": 0, "DIFF_DIVIDER": 20, "WINDOW_SIZE": 256, - "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000000 + "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000000, + "BOOST_TIMESTAMP": 0, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 10, + "BOOST_STEP_INTERVAL": 43200 }, "MAX_MINOR_BLOCKS_IN_MEMORY": 1536 }, @@ -153,7 +161,11 @@ def test_serialization(self): "ENABLE_TIMESTAMP": 0, "DIFF_DIVIDER": 20, "WINDOW_SIZE": 256, - "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000000 + "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000000, + "BOOST_TIMESTAMP": 0, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 10, + "BOOST_STEP_INTERVAL": 43200 }, "MAX_MINOR_BLOCKS_IN_MEMORY": 1536 }, @@ -191,7 +203,11 @@ def test_serialization(self): "ENABLE_TIMESTAMP": 0, "DIFF_DIVIDER": 20, "WINDOW_SIZE": 256, - "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000000 + "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000000, + "BOOST_TIMESTAMP": 0, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 10, + "BOOST_STEP_INTERVAL": 43200 }, "MAX_MINOR_BLOCKS_IN_MEMORY": 1536 } @@ -323,3 +339,21 @@ def test_special_contract_enable_ts(self): env.cluster_config = cluster_config for addr in PRECOMPILED_CONTRACTS_AFTER_EVM_ENABLED: self.assertEqual(specials[addr][1], 123) + + def test_get_diff_divider(self): + block_timestamp = 1646064000 + config = QuarkChainConfig().ROOT.POSW_CONFIG + config.BOOST_TIMESTAMP = 0 + self.assertEqual(config.DIFF_DIVIDER, config.get_diff_divider(block_timestamp)) + config.BOOST_TIMESTAMP = block_timestamp + 1 + self.assertEqual(config.DIFF_DIVIDER, config.get_diff_divider(block_timestamp)) + config.BOOST_TIMESTAMP = block_timestamp - 1 + self.assertEqual(config.DIFF_DIVIDER * config.BOOST_MULTIPLIER_PER_STEP, + config.get_diff_divider(block_timestamp)) + config.BOOST_TIMESTAMP = block_timestamp - config.BOOST_STEP_INTERVAL * config.BOOST_STEPS + 1 + self.assertEqual(config.DIFF_DIVIDER * pow(config.BOOST_MULTIPLIER_PER_STEP, config.BOOST_STEPS), + config.get_diff_divider(block_timestamp)) + config.BOOST_TIMESTAMP = block_timestamp - config.BOOST_STEP_INTERVAL * config.BOOST_STEPS - 1 + self.assertEqual(config.DIFF_DIVIDER * pow(config.BOOST_MULTIPLIER_PER_STEP, config.BOOST_STEPS), + config.get_diff_divider(block_timestamp)) + From e5e361a39818f3d81e869b719ba4c8bc3d9c612e Mon Sep 17 00:00:00 2001 From: ping-ke Date: Wed, 16 Mar 2022 15:31:54 +0800 Subject: [PATCH 10/17] Update Boost_Timestamp in devnet config (#941) * update Boost_Timestamp for devnet config --- devnet/singularity/cluster_config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devnet/singularity/cluster_config.json b/devnet/singularity/cluster_config.json index 0f0cb0aec..8cdab6d27 100644 --- a/devnet/singularity/cluster_config.json +++ b/devnet/singularity/cluster_config.json @@ -47,7 +47,7 @@ "DIFFICULTY": 100000, "NONCE": 0 }, - "COINBASE_ADDRESS": "a92885095A33E45A3C018Df7Aa6242B62Acb971800000000", + "COINBASE_ADDRESS": "5C935469C5592Aeeac3372e922d9bCEabDF8830d00000000", "COINBASE_AMOUNT": 156000000000000000000, "DIFFICULTY_ADJUSTMENT_CUTOFF_TIME": 40, "DIFFICULTY_ADJUSTMENT_FACTOR": 1024, @@ -58,7 +58,7 @@ "DIFF_DIVIDER": 100, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 10000000000000000000000, - "BOOST_TIMESTAMP": 1646978400, + "BOOST_TIMESTAMP": 1647424800, "BOOST_MULTIPLIER_PER_STEP": 2, "BOOST_STEPS": 10, "BOOST_STEP_INTERVAL": 3600 From ff11dfb36ec465d23ffab9ed93490cc4a2d2d120 Mon Sep 17 00:00:00 2001 From: pingke Date: Fri, 18 Mar 2022 16:10:57 +0800 Subject: [PATCH 11/17] Update mainnet config for root chain posw --- mainnet/singularity/cluster_config_bootnodes.json | 13 ++++++++++++- mainnet/singularity/cluster_config_template.json | 6 +++--- .../singularity/cluster_config_template_8nodes.json | 6 +++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/mainnet/singularity/cluster_config_bootnodes.json b/mainnet/singularity/cluster_config_bootnodes.json index 54cf938ac..55afa106f 100644 --- a/mainnet/singularity/cluster_config_bootnodes.json +++ b/mainnet/singularity/cluster_config_bootnodes.json @@ -85,7 +85,18 @@ "COINBASE_AMOUNT": 156000000000000000000, "DIFFICULTY_ADJUSTMENT_CUTOFF_TIME": 40, "DIFFICULTY_ADJUSTMENT_FACTOR": 1024, - "EPOCH_INTERVAL": 525600 + "EPOCH_INTERVAL": 525600, + "POSW_CONFIG": { + "ENABLED": true, + "ENABLE_TIMESTAMP": 1569567600, + "DIFF_DIVIDER": 10000, + "WINDOW_SIZE": 512, + "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, + "BOOST_TIMESTAMP": 1649001600, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 13, + "BOOST_STEP_INTERVAL": 86400 + } }, "CHAINS": [ { diff --git a/mainnet/singularity/cluster_config_template.json b/mainnet/singularity/cluster_config_template.json index 698938f31..8790758e6 100644 --- a/mainnet/singularity/cluster_config_template.json +++ b/mainnet/singularity/cluster_config_template.json @@ -90,10 +90,10 @@ "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, - "BOOST_TIMESTAMP": 1646064000, + "BOOST_TIMESTAMP": 1649001600, "BOOST_MULTIPLIER_PER_STEP": 2, - "BOOST_STEPS": 10, - "BOOST_STEP_INTERVAL": 172800 + "BOOST_STEPS": 13, + "BOOST_STEP_INTERVAL": 86400 } }, "CHAINS": [ diff --git a/mainnet/singularity/cluster_config_template_8nodes.json b/mainnet/singularity/cluster_config_template_8nodes.json index f493829da..bc71a4af8 100644 --- a/mainnet/singularity/cluster_config_template_8nodes.json +++ b/mainnet/singularity/cluster_config_template_8nodes.json @@ -89,7 +89,11 @@ "ENABLE_TIMESTAMP": 1569567600, "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, - "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000 + "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, + "BOOST_TIMESTAMP": 1649001600, + "BOOST_MULTIPLIER_PER_STEP": 2, + "BOOST_STEPS": 13, + "BOOST_STEP_INTERVAL": 86400 } }, "CHAINS": [ From 40384d5bf2702e940279fd33745385e68b9942fb Mon Sep 17 00:00:00 2001 From: pingke Date: Fri, 18 Mar 2022 16:51:14 +0800 Subject: [PATCH 12/17] update enable BOOST_TIMESTAMP --- mainnet/singularity/cluster_config_bootnodes.json | 2 +- mainnet/singularity/cluster_config_template.json | 2 +- mainnet/singularity/cluster_config_template_8nodes.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mainnet/singularity/cluster_config_bootnodes.json b/mainnet/singularity/cluster_config_bootnodes.json index 55afa106f..1dbf1e9b7 100644 --- a/mainnet/singularity/cluster_config_bootnodes.json +++ b/mainnet/singularity/cluster_config_bootnodes.json @@ -92,7 +92,7 @@ "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, - "BOOST_TIMESTAMP": 1649001600, + "BOOST_TIMESTAMP": 1649044800, "BOOST_MULTIPLIER_PER_STEP": 2, "BOOST_STEPS": 13, "BOOST_STEP_INTERVAL": 86400 diff --git a/mainnet/singularity/cluster_config_template.json b/mainnet/singularity/cluster_config_template.json index 8790758e6..361b4d2bb 100644 --- a/mainnet/singularity/cluster_config_template.json +++ b/mainnet/singularity/cluster_config_template.json @@ -90,7 +90,7 @@ "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, - "BOOST_TIMESTAMP": 1649001600, + "BOOST_TIMESTAMP": 1649044800, "BOOST_MULTIPLIER_PER_STEP": 2, "BOOST_STEPS": 13, "BOOST_STEP_INTERVAL": 86400 diff --git a/mainnet/singularity/cluster_config_template_8nodes.json b/mainnet/singularity/cluster_config_template_8nodes.json index bc71a4af8..232f946ab 100644 --- a/mainnet/singularity/cluster_config_template_8nodes.json +++ b/mainnet/singularity/cluster_config_template_8nodes.json @@ -90,7 +90,7 @@ "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, - "BOOST_TIMESTAMP": 1649001600, + "BOOST_TIMESTAMP": 1649044800, "BOOST_MULTIPLIER_PER_STEP": 2, "BOOST_STEPS": 13, "BOOST_STEP_INTERVAL": 86400 From 0612dd2fba5dec7164946b50b4f4ab99fa45ce78 Mon Sep 17 00:00:00 2001 From: pingke Date: Fri, 25 Mar 2022 09:23:30 +0800 Subject: [PATCH 13/17] performance improvement --- quarkchain/cluster/shard_state.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/quarkchain/cluster/shard_state.py b/quarkchain/cluster/shard_state.py index b4cf49646..4b8f4164f 100644 --- a/quarkchain/cluster/shard_state.py +++ b/quarkchain/cluster/shard_state.py @@ -1183,26 +1183,32 @@ def get_next_block_coinbase_amount(self): # TODO: add x-shard tx return coinbase - def __get_all_unconfirmed_header_list(self) -> List[MinorBlockHeader]: + def __get_unconfirmed_header_list(self, max_blocks) -> List[MinorBlockHeader]: """height in ascending order""" header_list = [] header = self.header_tip start_height = ( self.confirmed_header_tip.height if self.confirmed_header_tip else -1 ) - for i in range(header.height - start_height): - header_list.append(header) + steps = header.height - start_height + Logger.debug("{} blocks to be confirm".format(steps)) + max_height = start_height + max_blocks + st = time_ms() + for i in range(steps): + if header.height <= max_height: + header_list.append(header) header = self.db.get_minor_block_header_by_hash( header.hash_prev_minor_block ) + Logger.info("get_unconfirmed_header_list: unconfirmed header {}, max_blocks = {}, time use {} ms." + .format(steps, max_blocks, time_ms() - st)) check(header == self.confirmed_header_tip) header_list.reverse() return header_list def get_unconfirmed_header_list(self) -> List[MinorBlockHeader]: - headers = self.__get_all_unconfirmed_header_list() max_blocks = self.__get_max_blocks_in_one_root_block() - return headers[0:max_blocks] + return self.__get_unconfirmed_header_list(max_blocks) def get_unconfirmed_headers_coinbase_amount(self) -> int: """only returns genesis token coinbase amount From 07d122e8859e88edbd6485382f823742834d944c Mon Sep 17 00:00:00 2001 From: pingke Date: Fri, 25 Mar 2022 10:22:17 +0800 Subject: [PATCH 14/17] fix bug --- quarkchain/cluster/shard_state.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkchain/cluster/shard_state.py b/quarkchain/cluster/shard_state.py index 4b8f4164f..273218468 100644 --- a/quarkchain/cluster/shard_state.py +++ b/quarkchain/cluster/shard_state.py @@ -1200,7 +1200,7 @@ def __get_unconfirmed_header_list(self, max_blocks) -> List[MinorBlockHeader]: header = self.db.get_minor_block_header_by_hash( header.hash_prev_minor_block ) - Logger.info("get_unconfirmed_header_list: unconfirmed header {}, max_blocks = {}, time use {} ms." + Logger.info("get_unconfirmed_header_list: unconfirmed header {}, max_blocks = {}, time use {} ms." .format(steps, max_blocks, time_ms() - st)) check(header == self.confirmed_header_tip) header_list.reverse() From 8cf66345b24b167583d7ebd65623c8dfb2370fe1 Mon Sep 17 00:00:00 2001 From: pingke Date: Mon, 28 Mar 2022 23:50:51 +0800 Subject: [PATCH 15/17] update mainnet BOOST_TIMESTAMP --- mainnet/singularity/cluster_config_bootnodes.json | 2 +- mainnet/singularity/cluster_config_template.json | 2 +- mainnet/singularity/cluster_config_template_8nodes.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mainnet/singularity/cluster_config_bootnodes.json b/mainnet/singularity/cluster_config_bootnodes.json index 1dbf1e9b7..d57f1f882 100644 --- a/mainnet/singularity/cluster_config_bootnodes.json +++ b/mainnet/singularity/cluster_config_bootnodes.json @@ -92,7 +92,7 @@ "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, - "BOOST_TIMESTAMP": 1649044800, + "BOOST_TIMESTAMP": 1649736000, "BOOST_MULTIPLIER_PER_STEP": 2, "BOOST_STEPS": 13, "BOOST_STEP_INTERVAL": 86400 diff --git a/mainnet/singularity/cluster_config_template.json b/mainnet/singularity/cluster_config_template.json index 361b4d2bb..dc33a7831 100644 --- a/mainnet/singularity/cluster_config_template.json +++ b/mainnet/singularity/cluster_config_template.json @@ -90,7 +90,7 @@ "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, - "BOOST_TIMESTAMP": 1649044800, + "BOOST_TIMESTAMP": 1649736000, "BOOST_MULTIPLIER_PER_STEP": 2, "BOOST_STEPS": 13, "BOOST_STEP_INTERVAL": 86400 diff --git a/mainnet/singularity/cluster_config_template_8nodes.json b/mainnet/singularity/cluster_config_template_8nodes.json index 232f946ab..3dd4b51ec 100644 --- a/mainnet/singularity/cluster_config_template_8nodes.json +++ b/mainnet/singularity/cluster_config_template_8nodes.json @@ -90,7 +90,7 @@ "DIFF_DIVIDER": 10000, "WINDOW_SIZE": 512, "TOTAL_STAKE_PER_BLOCK": 1000000000000000000000000, - "BOOST_TIMESTAMP": 1649044800, + "BOOST_TIMESTAMP": 1649736000, "BOOST_MULTIPLIER_PER_STEP": 2, "BOOST_STEPS": 13, "BOOST_STEP_INTERVAL": 86400 From ce72b1a5fd08b3b16eff8bff23437450eb522aa0 Mon Sep 17 00:00:00 2001 From: pingke Date: Tue, 29 Mar 2022 09:55:09 +0800 Subject: [PATCH 16/17] update log level --- quarkchain/cluster/shard_state.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkchain/cluster/shard_state.py b/quarkchain/cluster/shard_state.py index 273218468..f62fb5ce7 100644 --- a/quarkchain/cluster/shard_state.py +++ b/quarkchain/cluster/shard_state.py @@ -1200,7 +1200,7 @@ def __get_unconfirmed_header_list(self, max_blocks) -> List[MinorBlockHeader]: header = self.db.get_minor_block_header_by_hash( header.hash_prev_minor_block ) - Logger.info("get_unconfirmed_header_list: unconfirmed header {}, max_blocks = {}, time use {} ms." + Logger.debug("get_unconfirmed_header_list: unconfirmed header {}, max_blocks = {}, time use {} ms." .format(steps, max_blocks, time_ms() - st)) check(header == self.confirmed_header_tip) header_list.reverse() From c94775c9a83ebe5cd6de3024352d56f73057cf27 Mon Sep 17 00:00:00 2001 From: pingke Date: Tue, 29 Mar 2022 15:45:02 +0800 Subject: [PATCH 17/17] fix bug --- quarkchain/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkchain/config.py b/quarkchain/config.py index c67ca71b6..24a1175a0 100644 --- a/quarkchain/config.py +++ b/quarkchain/config.py @@ -125,7 +125,7 @@ class POSWConfig(BaseConfig): def get_diff_divider(self, block_timestamp): diff_divider = self.DIFF_DIVIDER - if 0 < self.BOOST_TIMESTAMP < block_timestamp: + if 0 < self.BOOST_TIMESTAMP <= block_timestamp: steps = (block_timestamp - self.BOOST_TIMESTAMP) // self.BOOST_STEP_INTERVAL + 1 if steps > self.BOOST_STEPS: steps = self.BOOST_STEPS