From ba95042fff378213f5029b2b164d79e768482a47 Mon Sep 17 00:00:00 2001 From: Casper Storm Date: Mon, 12 Dec 2022 15:27:00 +0100 Subject: [PATCH 1/3] Vertical orientation added to Slider. --- Cargo.toml | 1 + examples/slider/Cargo.toml | 9 ++ examples/slider/README.md | 14 +++ examples/slider/sliders.gif | Bin 0 -> 87275 bytes examples/slider/src/main.rs | 69 +++++++++++++ native/src/widget/slider.rs | 197 ++++++++++++++++++++++++++++-------- 6 files changed, 250 insertions(+), 40 deletions(-) create mode 100644 examples/slider/Cargo.toml create mode 100644 examples/slider/README.md create mode 100644 examples/slider/sliders.gif create mode 100644 examples/slider/src/main.rs diff --git a/Cargo.toml b/Cargo.toml index 9c6a435a..e0eec17f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -90,6 +90,7 @@ members = [ "examples/tour", "examples/url_handler", "examples/websocket", + "examples/slider", ] [dependencies] diff --git a/examples/slider/Cargo.toml b/examples/slider/Cargo.toml new file mode 100644 index 00000000..112d7cff --- /dev/null +++ b/examples/slider/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "slider" +version = "0.1.0" +authors = ["Casper Rogild Storm"] +edition = "2021" +publish = false + +[dependencies] +iced = { path = "../.." } diff --git a/examples/slider/README.md b/examples/slider/README.md new file mode 100644 index 00000000..0d409dc6 --- /dev/null +++ b/examples/slider/README.md @@ -0,0 +1,14 @@ +## Slider + +A bar and a handle that selects a single value from a range of values. +Can be oriented both vertical and horizontal. + +
+ +
+ +You can run it with `cargo run`: + +``` +cargo run --package slider +``` diff --git a/examples/slider/sliders.gif b/examples/slider/sliders.gif new file mode 100644 index 0000000000000000000000000000000000000000..f906d05ab1a6a43705e4a6911804fdbea3e0ca8a GIT binary patch literal 87275 zcmZ?wbhEHb{Ka^bv7CWH@jthpYe=xOV}PrXo&hr>0|SHNPZkCt1_lNl1_lNOkg_&L zMn-lH9v&VZE^a|VK|xtrIXQV%DLE}!MLiW26=IN z1Z#(ICnqNdCtq)GZy&$lprD}e@QCQ>Xup62|A^|4h`h+Cgp`z&^o-2x?CiY!qT=G> zs;VmAw4FgYM?>;Xh83QVtGpgt{V=KiQAXqKX1t+I0c{zRMs~Ia_uig51!}e!e z_r5)H(|d-e0}})*XPfl|NZ+1^7SCY?Ef45nwnc$ z+uA!iySjUN`}!wLoHTjL)M?Xa%$zlQ&fIzP7c5+~c*)Xb%U7&iwR+9kb?Y~5+_ZVi z)@|E&?A*0`&)$9e4;(yn_{h;?$4{I*b^6TNbLTHyyma}>)oa&p+`M)B&fR`*cke%Z{Pg+D*Kgl{{QUL%&)=fuXv$NLqWyJS2!Ejc+^BY0KJ$xTa7Pd7+DHOF)Fva_=-ieKG1 zxq12d`3}uovR+$OTwLriSu6I`mX(*62Q2oQ>$P>&)zuN3v+kbSy88P1gu`93-rLsP z+?;WFRqW|)Yj1Ba`2YCST<`7c?(VMm{Oa!M?d$LFZ(!z@^VzZC;o%Np?YJ{LHa+jR=?cdI$U#I%> zljixw_ABdZPkwvneyCr*$nJ0dxA)~|*4Hcl|0nsE{edeJUqoOdn_o*plc4U22hMzU zHv(FO^js2KIb%B>I!fh51hmWXu_Sdc_IfE&56g>cK>epO>kQ0oHFsHOy`sTmR@?1ev|$Bm{X@b^znRZ9u{}gcUn~5;ne9j zYdD{oCiO-7&P?-bPMdXc&B@7PUmyOs&|n-^XvGSGZq}=@p_@( zCU?twQP;ae8H;z?aJ|%>3XHPYF(7q z>UDig*=rV_@p`Sk?cOcVb-VHoWv`$4hwF{%A-?F7oPr?*EgPR1Ft%{5np)t%pw45! z%*Wxvz`&`w;sdkrnXloOO*@})9X!bH_u|01|GPac0vUEO@GNvXeA9-fP{77u zfr~JM#=~`|7!EvOVRqcWU}W}d)@^21DI14oVJ4kwLk3ToiwF34&gY!n@s!Eo2rq-q zgcH0%YYNt1ylTaTGc7C1oeGaL5S+ zH42w+f9t|@`q*4wLE%5zC+=2SJ36zz{nhI$Y-ACz;noD}02XFTm32Q%-Fp}u1Y1ld zy0Ge()LNRkH!w6PXl&+oxW70(nT0{D#NZ%{D8q)T*SAarnOOvSCN%RYwe;;a^O_Oh zB;;G6_v^zAk<)vG&l$`A{c!nlTR;(pw!}OFsn2tAubcn>yJ~E$~-A63q2_i<9Nn55D>-!915uoQY|07?k+(>-CJA~O+UK(KM52mHgS~>Ep!WS2^5Ro z;woDD(Is9bP{P^7jelyPbNZ10DeWz8oLfIS=BEV62%ESwUoCVfX9Aa?G+E$$-x`it>qd!d&+b!c_P|v9qFSI%M z*p>xZ(@vgAv-&*qLeDaj<(_A=qCU^sdvKZA_LFDxs)}bd{9I;n-1A&f+T}Sfe3o0y z*F2aacUkms%RTEv!Sfa8j6>h;S+4bJ<@vy;o98c|@l+v&Eg*EoB!RU$E3}+;da2y- zUdUZ5#=VdAVpr6cMG|LMxS5~2*jM#su>$W(4|lIilV*KcqT##JEBw@@X}i8GHRxUG zlP<-nbmGA>^Q|$$8465N5q`@QJPy3cFy~MfIl!n;;J_rOewpjQSpgn_g9;7@7-oGt zBOvxnc&-qGg2fEA##nV_77n!ljwPq2a4-opyw$s~ohN01K;G0$;hus`${Jf^#aBox z+7vL(;(N4uPPeuq%j@uYZ*$h9vN|TtUBJR9urP^9;BNTtUqMPKJ^~@KEs?Ab8TTF) zVPQGZz%H?X;hL-?qerPjW@Z(ObcAQKlHAzdG3Ax*RAjSewEzJD}6&V z6B82~8yiJUS2g1pO_N9)J6BzsTssF>6PFriXJ;=jFCV|)z~HFxh^UB&2uK4YGc&WK zq@=X8qP(J}rl!WqyVc64+c9*uOVkq2gmvD@TYS@Y2In3R$vYWdd?~W@T1@3#NUJ2d z;c<2=s7cb&($d}CJ$drv*|TRaS+Zp1%9WcpZ{D?QSNrr!kk$vh(Q)U_ox^87KY8-x z&6_uaxy1o*0I~mX@NQ~uF*0iD=g{gt^Y(N!ZkyJotz%?h&}Qu5ImvW-n}o0$ z2dfAlqn3V~si(sdBOysy1{aT=E(|Q}hDKAC81g!MGq|4cI^oK%Wn?^cx;lfhw@1e* zaSbDr&C@iwrA~I-^p?>ybo5+oWXNfCqsiP`)myMhRD0v3DTZPm0+%+lBo%{AHn>el-5!_Q=QZ_l~EIg|bB)nC_h6L+*fRa>_EMqa|! z{^>l&epM7LJl3KdE!H!$=)u_u+U5J!RGK`$w8C}yzZ@%**H?3*y{GY3ndR)+{`J|j z-M91e53Fk5FDCbUd*b7ciP~Z3X6#IUv}57xY3HmreSLjnbN2mndv||-|KM=9y#KyE zKR<`7dooWo?c`N%>bVgyLxkgxqgzwV+=(6ak!zC~f81AM6tYNAWK}wGL$&4Nql7sA zD%QlNrobChTPG#nxX}{w)18Ai{HD7{-OIh=@%AqRKk?SS*!tp8x4|)u$2}(3G9LF@ zJex6<&q*OEgww^PiJ9TM##BaT#R>(6cD`PYg$``4dV)?YV!RViyK-?nbezI`!kA-9 zXG*~NX@+kdJlK>Jik#V+CU6QmHt{Gn%xwOVa6mBEEs}*AF3{ozu8X37V1XL6i4p?>wxs=>m$)+G6c*&*wR!PPj<_{CDtn@HoUV?BZeV0- zXJ@CZ?P_D|qG6h#Ym=*ITVUu=>gww1o;%Sykp0X=__9!J$m%anKPFzUAlAU&Z9?<-n@D9;`R48?|wsi8f-fb%rDr%^{~$F zet~99sueS1n&5`FGxm2LVLI@3mqo*Y4PQL->>c#hhN$NpmT36ATkpEi&HS&LK39Co zL{)6GSPV;@^z2Kxop=>>wfLpIg(L0z?3vZHwG`O1ou*IkGvLwG*47Z@%IMj^ZO$&I zwMt7>fMLCpot3bl`l{`!d<=UT80;97x9J|%QeqGh=jGrzsj6dYo2t*xFJo*XrB@bV zt)^<_Y4tp!TKmK2Ri8h6{pR!Ir^~0$j)=(k#ITV;jNupqsE^3X2I?dV3kyREY8e?B zw1OHOJ*M!o+R)I@*49>8+YPgMs?yTZva_>GK>$=-S65df7uO!~ z>mVgIytu|JtDBpf`}+DOO`0@)`ph|V<}6&eaLt-En>TOXxpQa#f_sqS`taeyr%#{0 zbmwbJAB%+sJgwL?cd{6HOMr>b^ovVtR)b-4j=9k@o%c!k5Ef)53lu9o{`npI(^W zG*sl!$hJ^XHg43#q>41}?&!n6Kg}#rD2r?KjF&tPj%iU?MMazW+jk8Wp zmMD(dQSgXeKu9K0D2VB?tB|Xw)hiK^OpP;(+-#M6Pi1IccJ!NX*7<9SR`6=ijZ#;w zrmXf`@1E|Vt5T+OaZ}pCc_FJs-bQQ_`v1_ZR6A5Ja&!7ezopSr--qsxWXu=6GxbCG z;l!`ETDvN8A8+fDKR(sQd{gS4?$1ffYRW%9-7-hAzD_#I_{GIi@As~Er+-XA}eZG1AtJi$Ly}Qr~>iJhLZua+| ze#b$H<798MTk8h-mK2U)DWQ+)z136y|6BH#@khKOqtK3UT@Jst2Te7eo2J(Db4e_0 z6m|+-(8`>YF{Q5M%7H00Emw|Dsrsxq@q9;r0keFi&NkG7TF9w|&*qavppyNZ1rPEg#6t=K%EztDf=bBI%BqV0|shLUqpo)Vs~?s&Z$mDg=gpf3DVwLQcy;8+5lGp5`}S=}+5Gz5FG#@* zZ~ZVZFtDvSFt=ca)YUSpy9Js#sWzZOdd9;UyE~6Ct$4W0wBdk)&(Z*nTYL%8+BZ2v z&;4P{DZ8F3%@noNiB&kqr&3f=LxV-X!b!(k)|%UiS2>+e##=aYq7$=fx)OV?)2vyO z^mx?M)C9S*`ZsW!uq$ZPX{histaq|97Zy}EvUE0+1eMZO%@K(r;zB}AXML=6`S@fF z45f4`BP>)^%stH?L|CW2eDnGZq)_Gn)sUYU)-s4QoB|ihJUl#tf`Zc0($Gp0++x<# z(^JkCi-n~6N2Sf%;LYXc=H}ks zUPuu|v4b2_gOJVszrn4kxkX3K-p$pu zrKi_eMv;YCnwQbmxwltTM3TYYd7eE3Ge?h$jjoQ4HkX|ngTwmn4cvMzO)dtjRw*&a zxy@+VD5Pw#-Fml<3cKiro`Vu9+BR-0S821F9cVIgQ*h&L;#bqry}DalK)yxP?d?N1 z77ZPJw-eV@IX5=FeeY(<7qVf&wCwOMPM(;`=o<&zn*_Cc9y)D(<-)?i#VRTol-SfI zyWL2V@epH!8v{d^g|Mf`6jojl4U_1TL63Pj1RS1RxajD%VOCSy0t-c#i4*2Ku&(qv zRit^@$8Ww-msY93)m3im!mesfeI2~s=b)M>_mmvp&AyQdx=YH|UfP!T|6eu$pC{MoM-{>x8C%N_GjpMPx$M?h( zf4X_r+Wr5ZKV@IFdi8;OM7h-{U}nktznZDuj8J+-l7T8HmMjZ2Nq zS3X~-t@)nIVg zuD2k;!N-U<$c33Lr+|^cBqhj^Z)U@V1Cz{HHmE2vI(TxhTk$Bl%|5o3u^?!xTG-3k>X{JO$2b4i^-hXZMH{GILl& zNFg<=KQXLgkYqRu?s9W;g9iF#Wo3~I4RGtt#Kgn|xzL8UtnI<&Hn`9L^|3=jLIQ)M zA|oRsqY@y6Msaa5q>qg#y2Iwei|&BT{TU?-1G5ifHnEfH9)XLFM|mBOk&BKwbLOmG zy?V=*ExUH@g0$O?9z6uPJDudl=)=RUJ#osfoWi>uKNeHC`m zwLSYJRE!Qc*&Nqnwbgp%)EGp|c+QPbehi1wL<%1mJkJ&_5Pg7!QXld%GQbe-?dP{yBa564vEvF+a8> zUS4f`oQ=1_EbGRO=-YK`t;;j+Z*5c-TQ|cZ`ElPw=P-+%wUzrTNcetrM^3bCGP`o5t@c$_$tj_@#= z9d&MO=5Xu_{bC@rFgko?sA9Bu(2JR^(n%V(4HeoXlERgyaU``BEYz6ZRkAT-dUxQ# z6VrQU`B-!~gz0*8G)MBDSRkPAHN%@n?_>Iti5_YzpDdi@WA^gN|YkeR{yh-U}?w4wzK%5$nT9oVEb8XDF#KY8ULV0K{xvybH)O%J4Y-Y13?3~~(T z!A%WrZf;2D57OF@kkOV_wo_42QC8K`(b0i4IP?w8jEq2S4m&$LB`sG-vk%nfb1ZXq zhW7a&4G#DaU21A7a-R=*h|V=~9;5{EOjz%oyam?nLv+uR>LF#vV@TQ2-Q5kIH3aqi z7A;z|ZrwV_K;7h}Pa!1;q~(D&J2;dE>I}7AyuG|ydV2fJ8h&urN#qGsqgYu+Xe zPVpT*C#5tDj4o_4V7EHaWah2xEzl&SZD>5}&}Lz!7IE({FT7cG&&}GfS(AGw%f-#x zRoq*|_s0}|da~#cbM#XsCy7lDShT}?yLuQH0w+vT7SB;RJmVuXLq7w9#zwawVJ#k6 zoro33Hl-@7nydLpTs+LqG11IaG4tS~jz!AK&1S!rTv5BcOl7`PscPw}#jC<36VF;@ zXkS;2+u3&3>RQ&#mFWwYJwfVyEj&{zI09KrijxihO@8sOxqlFKF4vlDDU(wF(;~hzlZ)6H;uT~oG4!A zE2*D*v$Ift-&yI>w0{`Zr$+3@c8zW#8%x`>@`pPZ4lX6M_x>%+?hdbI+bWLY=Bu$i96sEi=A}RIomKTq@OZRFh_h`+F z@aQsMH)C;c?86(2`|Q(LA1S;oXjN2{u47F+(&nbJBt_lWWX6LjAz_(Mr$(f$d^#9F3!jg~{38Y|wjQv9zC92x? z`i5qPhK7))39f<#(kKa!h>DJmj*Lo3PEO9s%7V8`kUBH7NiA4Yd>U++18vj(U5&Yn}CqUGXcLj!iJlTBux z%ASz2<>KKjpt8mD`)f~D-SZbWZVA%4p!yjf0e+TFy;8YaSAE0QTb)`pRq*<{=6y}RN@6)T*QIY=ws+UGtlKL<1&gj# zc>3KL<$=$pN+rL!yswU%kxwTh-}!JTyRh4zF2k^+jk5NW_K0qZKUL4!zSTx-bNIP5 z$Hk&+r#osyp2@_Ig?3o5i1P&6U44SHe8rQx3`f7g%2lB47WQc zQ~vSnSyTJ-vb7sOojJF@ew|$8?vHQo=vTM%?c4L^_@-4(GLNh2=^-vEebAIHY^OY ztFhn^ywLEJS6O?}*N}AmS)z-(;|@kF?wK#R_;H`jxliH!4&N*mM>%f_T@vknXzG&9 zG2WN1F7ealW8#lc6>54EAv?>1#W|wNsJTt7P4n4|lxdmIW@ao~`D|9swwKRl&t_;m zJf~RCh-GfYrv;bUIc}6pR&f0Bayf&-i;{zUyu5-8jvBhR1lZ+XgtU0O>3ljNU|GoG z!oav?3ghCIlmm`|9y6Mb2nZ-7yi{1(@aoDEMb1M9SH!Y9@U8C4N@Y=7cqvLmz?J7y zBXbK&pjU`I2g6Ecu7)Z{w(z@|>9mHaZ7uureVAqCPP!W>99h0xm}&4HR(+8Tgz5 zq;;aJtBck;fsTmSy69SirVZ>6of~h+h%~$e$HZj``F5curjU>=S}?$AKk&~A;II;dCE-P7A`B5TUZ zEW;1#*39Y^7n5Rea9QBMz`{AZ&(&66PnR3ix7paWiAT-Gbw#tQq27Ka26^|HEt^G@ z^$d6Iw%M3RfuAc2~_cd$T%#Sn~yDPf$Hwmik*S~X5S4g2n-2KZ7cUH~) z26xV_RpmhLhD7ZT)9Pr89YQ%QckpT zX~jLcbwa~~ok4|>!N93^salYPnac))wad=Bxn;CWP;flX$8X&AH^(J~gG;2dO(XWz z3-PPHVe8+WT2(51eO+j5!&j}coQTco7ma?c3KO`!E&u=3W3JZMbM9^|KltqJuJG*p ztLs;?#aaDGPn_Kzsdg-C+uH?4?$_;s($@`w5mhF<-r3+zGl6v2N}goy!sU!1Qs}QNXam;go?ko(82nQ}*z#bg9RZGWB=0T&9Tg3#O2*#Gh%nV+gi&loY%=-WB}e8a7DfiX z<~t8AyUB7aU}Wc2G05U&NVverb~i}Wh1dAaffE9jEeo7?o1vCQ3m7yQu7d|zczAdq z-6cqY1fMH|lu5`vCP>4^*47r(umP7zpaRLU%+b-w%L`f{g-1YVGn12(v$L~NS~W;z z5~QO9UD1$#3VA9sq2>;3sO2$aon>!t@6@SNr%#_bZ{EDst5u(QYsGCH{R&+c}&H!?5~5|?Iha$5#! z))?8j&*^hFS!kfo3u@Qw>e|hxVPLXhW4GN_0~K(~W{;@qLi?lL3l^$zN$l=EC#9xu zV05+Rx;}^1S#Z-vut`{Rq4AUEbmFeA7LJSNlcM|e~rY=0(!hO5w zRY}W}V;o!}6<-)07QIkYb`4wO5%Of|W%q^aCY@fjRpR=(Is2N9awX^7*pzm1S?KO< z6K`y5{(tX~uabD)-EHO9pZV^-o^yX={Xw>ORuS0`SGUhqliL-Mo;;)9(@oFfX57=Y z8PAWMT{BZJ{p|GBt>1oCzIzd|{CwHHJy8L#eAnMx*Y~z#+wDtbg^#bUoo*g~zpjy4 zOmBuo;^Vf7%3Cl1>uDR4^WM(fo$GdAyj9&~Ug_&k>$Y}>`QNgx zzVbeFen0>0eQ(aa*nPhIeEt6aH@{sKdyxB=F+!n^xoP@>3hqhQ7gVzSYk$zVz;=dQ z>$1od@hvib8i}nEMe2__RHkJ->eN`a;!zj!blHkUuImD}ToW`EP~;FaeUUMZ-;U3T z#Wc4!x%YqU14GSulb<+BPM@+a@TH^?xVuzT`10xW6DFP0XH-o*Ieli`Le3epnl|2? zI;rK#WwD7ZGMwW5u0n=qV#LlGOzLf5(|WO>MJ(&Z!Va}nFBbKfy?U`YnYXby)Z+z1 z6JJ+D>JcUd0VNkk!5RTaCZ~p}2U%xweR5ddRP(_h+(IRQMbVbwgOHYOjA#pkgU+Xe ztlcfIM1=SYJ~*-|oSDVKE~9g3O|Uu32S)*if&hn=k`)^|*d;B#Hf(E-S@3pq%LHy= zA;u?GCpbR*k$S`Kr@Dbz@wnPWX9j&y#)e&1jSZ_5oJA&_v;M%9bTZT_CCWMpJ=a&k^i4tjeDHVo{Uu-+?a z6K0bss{96IHZQUE9&*D8G8hamq1LQfvvuoMv=R#5YI^kO(NHX*njJL^JUm)JB~-V$ ztOYx>AV0W-n$si!E}a%RF|csXUDf1nZ=}x+Dw;NTZQ)TfvU6YE=Wb$Ppu`~WIjd!> zsPZ9`z5BZD4ykZRZ0SBBrJ{ex{zA8rfj*nn@g_4*MNj@FA@xHBM)zAD>I*BhNO=Bw z!gbl_!uIX7#f~Lo%LO2R4`$~fm!G0_f5FNA((WiLryM7!THq* zkBLf}F<(tyv7y91L(7o-N_y0a$m$o@)?9TH0&r)}r=f-cY zKhDNxy(2quRr^G>e>-=iB~R*CcayWIjC-0tePJpe_u{0WLlTU2`T zx@P+JJ+j5+XYX6i*Rzegkmvr~e!BZ!J6q-Ni*C24+uq;$=l9cx!k7H*>T7TQzu0!a z;?GQRg*@hYVG7m%R9D<;++)ch-SQ%EMO?FlP{zY*>0{FuHp#vdPpX&l%DCOZHfx1+ z7tgdG51U^fMXbC+ojVfy>7i}(=9AC=SXig+Nwl4fC5NEUNmYJ}ZF{e)#>Br9e-@KG zD_kw>!xBipYufCBV<(qQ-*vHb`rN9AC#TP=`^Y(CesZp7heK(oC&#pTrkSdO%BrtU z`2gDnUZCZ~7EDBUl2)tU7>cS*vAjHCGvvle~)-Hif z%?t~#a9vYz)w$HnV8bA&9pT8qz@n_H%ILzdOR3d`S-NCGBl}*xO*xzG?+Q4uJ2Gr! zWORx+trNjp;BbQVnNU$~xChGxW<|v>#wT{g%5Gp*ywug5>nnGmN{jL73TwUH;xY#g zvN0~H>f3U=h+9m+?9PM>3N~*NHnJWS_7_2!pqkB~%Wwx)GKq+YAeT&#;UGv)4!LB4 z^yKiDOi@u$G%cCni;Q;f-VJF!;aXudBxbnT|2KFwH8(qH7iwXKYLCK zsAO_>U*rrfnOZy?jP$vkyck>{C6m3!>e(KUlF18RGWFUcl}rv7dSNA#m!cP}WaJ(QZG9^*cr4L89a)5)6|0{Ej%I;)-FHq>zUWWVVKy$&u=zC z_HN0Mj)@|A5ngj|c}iT*kK6x?OFK;T=B7F47S%2(%U!%J@4xuLUh53KSkKfLae%#jI-uQ06c`a@3@6Ycp?Y;l+o6MarA9f#oDtCSNoc!Yb=Na9_ zZRQq~9=O8VfpdF<`q?*er~w@`kr~kZ?3&{J}&=v-@BSC-$SoYpZou7 z-JZV}zr`1Q;FVCwV}F(Qpy{_@hJ5o^%M#vbTDPgbkZ#+PsUg#TpfW?I<4ETU zna&e4BNCdm>`o|kojLeoPS1tE>7X^CXeCo7c!Fxle}}avHk>w|rx@rg*d!9jJf-BX z!&3!Umy+o=-3^^{G7n7joHH}|ROqr<>00dPAw9W#Dfj1dD^7JTi>v;0b$NU}lh}%c zW}&bZ5lMVP6VjuEE~RD$~6gV=gm^W;QaJ*4)c(cog z2cJ&c?5PexnIoIdV8rkMR&WUm3qyK*kR}y!cMno<853puuxdRzyWo4qt!^Q%9L`(U`91kKbRX3! z-|&*)=H^RVdHV-LN0Z>)1e?V#PJ}|5R3$BtCe;hqO_L!_ssfhiv+>J8O{xd8&d*=n z2X0bv$jRlXIPY4;AqZ(weZ9V6oyh*CrRrrlTQ;RdF7$n!sT=K=_y4|Km-cqSySuvI zJ(68gu0LsCHREH^nCTm04(AJQ4xKY?W90E<#pbDZrW%Ew_AvZ^C1$d*=lR6MAFV92 z5;8X}a<{hP?fZK3$|}j7-?*&J7T(OtzAe^L9r}LTuJZryOl0y3ZXflO@1I-quITF7 zaC>>#yYEW&UrmkY-&0%g{m^~>c7L0?!k@>U%P;TWQ&;r+)O-Eo=WXhX|DOA9|D1oX z_4~TZ{}*1npUVguf@1zus*ub1XC2dR#jtDc;zmcS8B1CNt7a_CKWllyVdGlQj@jFKPd*b+ZvA!2C$nhft5s{Z zy?V8J!!fPbYqng=dcAhXvsJ6JoE{vws^Icqfk&*X$^%DbcM}E%!HU#^gB!XlCLG*U z8hA)Y*;>YdWotg8;sO3%4o3$8+t}G*o4^gOXKLNdLQnUVIy1;Jd_2tdm`iD`-?Ld) z8Q5E57z(zXJW`#;lv$=QiM%rFlBfGF2ZiADDe41Zf~0+$+2rTm2Ai&2U31P)(62`U1+oW@Ik8~G>{G}!qnkK zSdW>UIXkleA0xO3>lYW3W`GxA^W4QiDKT51${9 zQZ}@8J2ubFSf9;uf0L=lKE5VFH3I|VD_1Aj8h{EeagUD=Jy^A#8rZ#@VE9IrYctEy z+3hUHo5g-4y{W#!&(_Vwn@~IZ1w#jup#F!G5ic@icZ-NHc!-p=oM`3J{_ynijTccn z#WhtJ6gU|U2r_6GO|w3}X=#6*z8}MZ1B!>5*iD0{Og3DbzFgVNsbz*j)A4qx19LWM zIkk9jiK}kTx*D4IX5Xf?)eC*2b98UVtm1cDD1;e-b};Ueph}KjUxm_lXbvr^V0wm->6=$NX#eXZ}zBzmU;lR>M-kidl^- z6?aG#AJpWS-MqT*Wl*+)S43uep zj2wi8Dbc&!ddIvy5i;&Ei2v*oM9a|P!Y%yXQ&8Ft-`zbsfacVRPI_=-jCW-Bf& zp5UhSa>;~69xs>9Na}h~KD+Pw%f$I=Vy}`Gn}un`HSui{ET|H?lwMf$&XUD{!@naU z^Rl0|4?Y6!;zw$MGoxJECPmtJa2kF9IgHv(9Fxoo3w?O>$)gPw{il54a0MA(S|uB z4{4)8hP|}3wA8gsAZ;|{A$dp{r)!-98I=c*d3iym2_b6@i0oW~mM`U>iYmQ~DB6&g zFF~dWA){S$=FC~Vc=4JwYc_4#gsXw}`0-=NLW7}Fx8KR{d^ibjW=&S*_u7Sc~Sacf2H2@VD& zRz=N83y+yhd(~FMpdie^pz^3dFJcq-Bz=C-)8%Dvw{6S&KlNa5bhh4I|FZXGr&fy#-QU;uk10*1!eHT{ zHdaNyJvRy-AM9sze`g(;|8)2CmuY>wZ{|MVI{#vuo^@2t%k|6GE|cR{HoSLj-SY3wpr|gJ)xVLw6$UL!~dCwB&-fue>W|jNu)rS3B<)U|+ zy)W9in{9qiP3*^>i`HTMGxw%^pYkwzTK~*_X}{-utiHxSYk$W7C5#!f8deCdnANz3 z@p?z)7K0zNnsz(x=xCl7pfS5;U!p}v>%@YH*=+|KXSB5UPw1H4p{Cc7P^c}}p45H% z;Eg-oCQUPvTFg#K#P&+vvsl=7^<&4ve#vJVOIlp=I8y$XdFPd@w0O2$QvGBTZII-|n-h1Xezgb`+Z^28QNf|{g zxi?=F^cz_%Ts+z7SF$mDz$&A_AmB>@L^U8+!EU}LIyFg1?9!hwTLOL-y#N0$Pl6Vv;9 zOY`|#dJ_2g8SX6M;%^3x`}3$L9`bm`HgWE}`OvZdrJ%9@1#8ze zd5D8X{z1J|hxL0vr6g$Be-5aNYG~)a_nfD@u>rV~dQ3`1-@y3n`So@N`fQd*n@l|w zJ;BYrkM<}NL)PZ%$w{xUs5wjrIlO7bwk=x@qExuKJP`o(FMBE1$qDPTXkzs7r(n} z-MdGuOUu_U-&d#1$oD71;GtU^zrNR+3W3MRJmt)%t(oyD@pOwJ`?WXIKgXS~aJ(+6 zJN--a<($Cfp}Et(MqH0fG@n{4#`eU2OXjn%?B8X}?}|2VfBRN?Qo*Jp-PTro<~xhr z&dhh6|N4*R!k2qD++Ld(JKfTw)(|eQ~*CTKJPPXSXty z{}tX{)1NeG+1*@H8N5jS=~QPYPUUH~S((byEvr^4&oJ$JsXSAEmZ!=r%~dN?CV|UA zq=gdSUOt}>?WIOt)Hl@m>|5@B0krz-!iE>cb~aWVf}cy=FDT7k#U49*{v`2L%exz+ zR;@7OS_12(a)`(R=?eLr|k9H?GM_t-|cuZE&JWh7so7*@FuAShH^NGq`NT52_zk1A2DN{u@b}&5SDLQD?#j1EfujR)Q=5j^xE7cN0JUJH}+2k~2 zPT4iF2p%}veiJsk@KMdsg^91?z(GcK79R;_nS?vWIyQG0SeSW*+guoI1%#UHTM8UD zC9%J8IB~rDi9^GQu1bat3eExnB|<{pypcNW1sn8_G@bdqIp5(*!eOUoj)TqT+EJHj zbTGIuya$(sJUl!iA|mh^P{=$3WZ9{bCg{`&Q&UsOaGkO?xVvlT3Mvc1+s)x+p{J); zSXdZjM@&*uQcg||d?#adb+wHjc*HIew2jd#X;VPv{(!85SPMe58PL|&)~>ED$kMTS z^X4sDv}nzmHCwi9*|%>Wa#?uk(xtn1?;bw$8M@E$?XORtJ`LKP%#Z~d5E9ZRY;ttc z*MUre_D`5-CTq^dEWphODGPf+V|I|mryL8`uIoi93m3TC!;3;tYjN+n9(Q9Ec8RUs zN2OHs^!1I;o_}Dc$7*>5UKHNBWB=fRp&qy>{Po6@Mf1ayv(;hiU6`VqzI^mHZD`{6}frqkn6-6N=3nvLv8Ykes?kqAG`L+^LOdo zeA9hut%motKQoMz&v!aXi`mXFNw{1a_&T(9x@qk7!o=NE_f9j5x}91$`Ks)+@>{28 z*#8vcwy9YDFsEC(y`?7Y^Y&BIt*i7V?z;2hl4Ruk?R)jUy=mEHFWmp#y29~E_0s#< z|Ni_6fB$zIyS)A9KX1M=-=97&{>Q(ke+9qIFJzQ6PbgrOD^p10G}@k!%B%J5L7H$` z*u!-3wrLMDq^Dhbm?^(Z>`|8Twy;Op>c^%%%F(`d?NP4&GqJ~c#^1so=Rfx?S1z

8poArHhv9pu7N{VaP^e6vI-P^XSl>1j*f07c|7oJ)fyr_I>RrIFmOHor8DeSS*p%<+I3T9j>oA=mAQVmBvt0cBb9|H%QPmqNxc9UjeXFfu|TuJ zF2{;PP-(6>v-0w19d~D*$-Mq})%snlR;_u*DR}`jVh8H(W@UrByX&@G3fHMS{%N{S z!)c)#I!))3rfDe(K9$f?T=H$k$`vjrmb~RRWcj*s38XAsw))+!H``vn+x_8~_WM0w zu4S(`Hh;1@e_uDxLcfAVF$y18*(4l11eiaR%wsm=+0@LiL}QXHKeNZ3=0FA;hJ^)X zJSKaB1U(r98;+cQ8(^rcG&v{cc<&OOxhJ*wAAKs)*>3Zx$ZAeb@tH}A4SmYS$^5gm0;u42$Vs+76wm-&#+QXR8$nLl!I&&MlR(LgL*hh zImq6f=;-K_loYg`!jzP9-QC@gQf|(iIgnCr^XAR)QVxF12K>ARNY8gDmvY^RVs6sB z`3w3W#T;lc8ppzQ>-!t$8PDF?K-`Oj~naBC)xjttfyAIna4T*EdyG6yME<_!_ z=s1BzdB@4c?jL8Gh-+vt+|c0g6yy;L;rSCLBxN9>p~8>>T6E8#?s6(4Z1aLuJTiJ3 z6&HdNFV6DFX_;Zw)Y2|>Y~D4Kpe5Pd;;x&ruHMRB6X}?GzR!2{H_hAIO#k0Mv{a)! zZ||*+uV9?3ZPaw~;CQc<4B*`v2W? z@;~o6|JH53wQSzkZP%}++3&ua^L^`-f)0OGS#-9rnb1OQ@wPC<9BI8tiW>5h zu070A<`Y_^u0AhpQLgqfiO%j-YiF?Z>@Zz1yLZpS7qj~geAJlJe}pk}&V&p|4A1NHRn#g;+Q#i%8kI4bEn=(d^va8gOeW0t-3{?^QI>)a(^~6aZ%)>>0;AP z&YS&irKQqrnPr*JXBC{9u3lSI=CQoJ`jPmGIwLW(QceqLsYly^BL{dagykHW1)BsM znOAK6>F`RyWkN|bPtO6Xhgr=|5s|H19#y?wv-_UgYX{h%Ue1OMvY?)?)a}(3=Vytp zt-5?Dd~NOZPt)IKY!WiM*s@CKQdaAtbzUsKPyPuU4p@=*3Q@|v-}~d)>i7Hpe0%+V zKZAJL;R7uEJ|6svHy(tfFOGQtD)cT)VrDCtz*xy(e&tyMZ&S;I1|`oY0t_csel%b> zA^XL^Ly%F&Mv7U+T=U?ILNpD;GGj}%qb6w(#ELDSxH|Lv1c?bB zGpz3DcnC^MVhqdd?gJB8LVc2N<)Q(&K%ZL-lCR< z^$dOtKVYSyu&^+4X{e&Ag|9S3Jz~h&+1b+*vya= zTK!+tHs1u)(r_MVyMPmTX)dTVobMq9>HtGa!+kB53<{oeTegc???1K9U7cNgTlY~( zB|QT>_tUrf+zlbky~BJ>f-3s2jBnn4*JP(BEZ-vT`R$n}i{`6W_V3>(?2wrFV46bp zk4X|{&)z~<}=`O3VPziD#{oCM|kI( z6FrkOR2U+_rJqw+;L7?BCD$#fEM9zWo_HhQ-*2oh;}-ibSKDh=Ar9d*T5_%{l)k9Wl(DGx>z$$~jZc1iqXz^+KYiY}4D! zO4;diDo@JJ_|hpkZ|38PKP6|q*tl}utlv9-&YSb`pr+K^Zx1`?&t-abbN>AQA0uZi z;AHYzu#in?7E8}e#a#;)^J<;Sm_Er#DskxyA*;+8Gr4wU&g^Q_f-NsuwhGq&h0fBh zUgdtUz}GqjR$#7=`Ni-?!Q~8#noG9<_p_>LQQPLvx)5ZoJM(Iibh;0$|Em}O7}WoL z8uxq6u9&pl>oTq#TD^A9d#)ABHaEApEZf+kvU=J2<3f&C_Im`nzFEtmzUIRr9`iRJ z4hy*Jd^{o&p7XKis6_gjkE_i~-V`2he)GYQ|7ma1!INSV2?rFIEE+!X##kjZE4cnx zqQ=jxF^NUs=Y*37&NSUPz$ldYa=Y`n<`RJemzaBmADnNIFk}((_>geG;Ir)7Vr6rl z1@c$=Sp*#}E`QnZMLG6-d&A|HFAItVITGH+@-d0TvM{q1EI7y@bLM)pKp#V3GjBt+ zI0y1hsw#$1hQHtflAD`bL_|bJMh1Cw5VH6V(p-cb6G5=K2$>~`iHU(v07K4*ps-Vn z++2iDlZ&(j$FK+AF&f~Cg z-~Jv*gK=KV4oHLXz{N%22IF?n+F($>_`;>f6G08e{$c$m?~ z|KDqkh1la`>*bvJR4YF%KQ&D?@f=U4ak~3Fdt)x$SpqLF<;E}gRw`Bc`qFyW(*kL?#_x3`&7@bSR$ziRh)%jAFFb^fVaz4hGOuUoG_TouQw{X6n~ z@%CbI)_GZ#yB{5Iwwgbs_THCQ>O1`{=j;FZG4Yl9mH*%E{<;5oD7+xy-{0#e8lEUb zL^QJLEm~m0uXHS-x!HxIr?uPHBQZ)Us6#PZ*6hc^WJM{9q;l1NK^;9 zlxn!j{Bf0OU-{!y%cAXzYi!qjTb$;&D@-NF{nRv-|GD0`uBqhtzYbh!Cyq36Hak5poT1mRsbhXm#sOxHF`B~c&(+lgu(<_RZDwbDPFPg5NQM*n2 zMRmQLg+^`rt?(Bao$sz^)OTC`SkW+9NMdE?RJ9o|o2G~D&}^CSbt5xtaZ$vp2|rt_ z7Os+@&^$wfOK<0Y-&=Jv zqqQwsZ|8$Wv(tC5ZH0G=cb(3FG#9Hnwde0Do;7=2^K&7a4VkRUf1Yn|iTUz;YfDD- zi_JHL8ZRF?Vt=F{Wb28tHy@8HwCj92p)x(^(@BlxYd)RQ+5YC!X#?}3!)Hv++jIz8 zRV-*$`Z2NS;CXS0ga!pCo(+y1(h>?s=J4H6IKldk|IS)tcBU8w2KKb0;+TS0*yAp574l&v4IabLJqftj5azsIeB_P zr=KAUo3oL&gCW)jf=3%6TP{NLFsEJ6cd0_AU8YT&Hhucc*|TRaTefWN+O?2o=d|U| zAqDH9Lx(WW)*o`4!q5uV38u1UY|Mh7@kUU=x(K|y88QRSv3SGA#qRccT%gwH&aPcN zYWfCt?wgJtYj!u%2Ms*VYuPQTtbf($$nl$t?etaHC3baRkW$gRs&9Ym)dB-OR*UmZ zCeYm%&kw%-JMpcs!vwFUgYy)aG`}7FaD2l=esNWyH$ovB9_*DChYa9(u*6d~R9A#*N4NQXTtvvW-#$r|CDJT2m?X{Mg~_(?Q>@4_p7q_c==fWYQJ@RN{c;L$GfN7 z+Lo4HzV4pRzIQKZ%Y}aXavQs%%Hz+)m%H!TS5STM{r_Xnt?lz`cYlBWtbOK>`|WT zugQxN)gNtpWTmfmEh*P9D_A+%_*B_rL+eA|<`mdFT}n1|J|~t^=x!C1@?XdM)-;tO zf1^uJG=iUrJuM0s3QE<8{xofAalG2ar|QZ7#FovlL@HRt)ys>k!qqFvyQZsGR?oVw zURA$JT%)>qSGYz^`>E*~wcWR_Yt;3>64$Js{3~3uA$=O>-K8vPr!<@9wMi{o=Fs;` zvw69d#;fT|xMr?uSszsK3_SA!8*M}>SWl>B^XM9IT)s5X{S0V2=gfyU{dPXq9D*{k zoXpDi)ow} zzj$xiZP_1bE)1#shZyhKuzUy=WGLBpo4J)c=m_@FJztv(xio#ypYXqwzjso zN?tE7Z{#^|$eKoYlNNMbW!PL75=-8emX@BL9!SYMYu2nKOO`+;dG_qtgI4mwH@m_6 z{6lN)4_e7Pxd~D9PFb*U(PC)PyAsr>U9xf0Mp)6it7|u;=-qtmcsI1@o!_!YR9XL; z(a{sPHi3)Y-Q5?ZRP?Ut+uwe@7*zCLfET?l4!!v|<(*oC##ENWwvH@8AG$xTS5%SL z^HO=BdSZcNjk&^x2g}bbJf30{7Ev%^^}LhpjzT>a<+`_zPxtKm;^4^W;OXemm9SyK zp(vgtgJwRdON4a|`U6=c!bcEV;Byexcvp4Aa-H>*D#lba%h)zBM)f@v$}4-=E#v zXUohlS7lLn=~(}KzjZODpP#Lr@7%6i`|HiCYq{z1`(%Z3Z{Ck@Pq(!zt-So)eL4Hy zeZ|#h-|HV=Zew3md;GijbN4;_3+fO4|0}8x&-^TOK`i^ZsR}XN`>ra)-iZAEAWHb2 z=))4xxTy={#GSS)2FriDnpmvJ7OIq>tX2NVTbpm%qe9&(k;RGnLgvZN=4xTd1(v@q zD<@n3`u5n$*-q?9o@>_RCI3_0A8mVL=>P26+~Qy>p{F|GpTbg0qKzh{>cs!MrdpaT zB=k%poh$rVY4)+JDY=<#Lg|IMS=XP{sEb`OE(`axGZFG|6khO14E^3s!M$I<;Um-ytr= z`I~|wR<~|>CbeQ+_P>{R*OnqJYXpseBCY+&Ub|`Q0fQdzU^zq3V5%YW_S-)h-YK}0 zn5gpfY=~Z3c!2NO(`g?rS-;=?-H%h>9x?*TuJhpl%i_nW2f=;*|Icp6?)`BnZT%6! z*_InW9~C{nZRze7gOH^=TbArzy8XFOqwn;a|6JZ}g*0i8>wG?Aay{qsS&QduKA*Gs z{^s-f3!em>c*7oUapo`+VU!h;un}ltXTD+JA;mIEoM1~eZ*OMcSGaJ% zx8+HK!`&mT4GlM}IUblPT1zlg7I?5sU{=g3&O7kzl%!z8wdR5e6+&|t-@C&s>0{gQ za6|gsxv(;LL5Bd7M1dpo3G)Tc#U2cf%zREfOAmj!@>-y_pb@g^7<{DrCx!xsBnEb* zau|7eIix6tG=h~h?cqZU@EymX`F8N~a!3mpyu#cIG7}XQ6$P1z!nNrbJOaBDyu2K< z5quYIc{!vghOEJyHEY)5#f#UjUAt}DHu%`GIWQi@{5f zPQ!;641U-@|GmKQm9PRwqKDChxJgV}9}adLT%V{?ukWRCLp3Aepo)dumH>^z3y-_K zOxUpD0z>$o$$U*35{i2Fk56x2x6<2@u>n#JZ*WqyoZ--Yv|^$Y6T=+P7(;{89G*;v z#X?zA8=YHN@9grt>&4O8E1;;>^Wxz`Hsf^}y&{^E4!NG&obms$+Cla0?-X{Gy?%67 zx?DegUEO~#UL6UIhllj}mA|d1C_H?u@4I7PPM%R})--+Y(`#mmJwLa}u31gBYRigC z%N!T_*=Cx)_E;Bh-=(`-@a?VcyvO^vlL?i>$>--)TbJLvzqoz+lH27!?>;YFzJ709 z+3)M`Bai#r-Y@xk@w?;m_j}@t|DXOJD3*}IY!&t(iCt-0LLxWUwFmM1pF|Vmgl~l| zjJwxbzA#4m+ti2UvWrBO66A}_ABCy&g(a0~x?NqAs2%lP$;Vht>~V={-4x|ybEoZ# zo$c+eB^Nt>3SN@ptX2NxzomEBv?qnWVZy3u{zB$Y4Z{DK$(2SsO-eP0=eqv1G}%h% znNGS`__DHWqe*Ex`AXN*%8P}Bo@nm&LKN4S6xA;@|s`}+jGgdXM7P_&jalMkn>ZZ*` z5v!ZGJIz?#vODO;>el^96&V|3gkC?~aKb2SO~>g;5id4F*I;J9#aw$7Jw4#!l;CHA zCIX5af+j0&FXey7=hR}CYP6+eU$W8lHGO&OUamjDINfr?!91-c$YZZusy-k8gT`JB zkFb8fT{xY+dXDr#W#yPnC(72He6Juo)l*;b`?`~PdtLshY&P^inf(q@4m+^xe!1Wx zp8MsZhx*ztmwe3Me%Wr@lECcR;$mxB?ve1ofkRH9z*(11=71v`Lrv~nUQTeaETZVa z!M9?rGeed$q>=0+1ex**xEsUErfS#{*3IJRaQE!ZO^*ClDhbTW;K{E$PZb)NISmRf zD@Y4WXnb(Cbwa~!&kqU*?oE|pxL)YNvVd8!+`6dY=2=O>hWpJ08ytmPa}NAqob3PH zfvsLRpoU3~$H@HUan3>pX4wLTh7V0Fg$>NI2@VI|+*D+A;p4UB*vKJd)w1F6>*LU- zGIWq4iy@tX7gj_=HZekG$YfMNr+i|T&(KCPWNr*xJ{vle8ar1*%4Z+H;IObT$o3!j z@=(YP9MJ7Q(CINq;f&b(6H$5y{zzHU@rtHl8yo~m);39ewXok$ub)_Q%3kRr(?t|> z+kVTzLyOEA6g=j)>=v^;eC~X&HHY}F?vqm17jB(%vtcto(PZp#oVQ6pMc>x#_S+?H zhPp!XE#e;Eo_Vlp=;;~0dB^1U>fxfJ9W1+9ZXRww($*~cH|B?chv22|IxP)@1Fq|m znH4ylwsibhw8+ymsjJT5T4t>F3JyUf_5TqEe2#5< zx2Ue{v(cf|+x3O^)qQ5-izzpFxV4R6+jotG`r~72^3KaNDvJ)Bnsz(!+?rhD=jrq8 z`MGtiBwk+H?6{C@Z$^Yr_(_vQWG z{_*lP`Puuk|F3530PO(MnAJF6@x;ugnT8oNnFu?R zE2eie^|sGbP`NcVDN$|S4y9;)rE5x6hFPJHlZ|@to*37>q{;GEIv+!4S%fC&3Rll0;#;b<)ViK<#H>*XwZrW}(<8||Hw;Qip z_J>KlX+4}4@uux~*^D>sr`vA4={P@4V&#&{|3uezUEdUuyYy!6Y~7ywr(Wc4#jzv` zvREKJX72(%he|2M!vak_ip&QJzd3wRa8@x*_w07CNiTV*wDbD^c_PU*h4UnfWnz4h zMt`UODTIvvYUbN)JX2U^^Ep=P@tck3%!PL?Khk_>%JM@kCVQ42;O3ur^E1&Gn%+#g8$im>l;dCS*GYj0LZa%{Qv&Yi;iBm{33$KifqxhZWZyK1HOn5Fi zGAt1`;Hxr!(tChOPgK!G$x5bxr&2*7z(UB1$EIM%HLoy?4H6(^N*wK&6fZW~+-+J!oJ{5F(>l9F<+Sz>-=-7;KIh zgCCr+w`(7dnvuQ7))ObEz>dyX(6V1t`JBn|Q+Mt*+n-b6kl5FKMM_2goWs4hr@(vA zFE^P%PtQ1KV04Fb3G4f#ECMYC8i70fJsCy+r}513;JVW-#8t-`bRqz>5B=Z9#U4eG z#$sYJ9}XS=)F{BJeC6PUuuaRBL>mSLFl-145K@-VS<_&6c*fbqlRHWn9tblus63tE zwe*P=Gdm~u3D>!&z6MSLuke3(xS2OA_Og*x(h(0Xar^%lSIymhLh|nJ-Zzi#YJ2F% z@2UHLiB~5=_u-*fe&u&tcOizzZn?V6^~e`d{1+2`l(*)=~?t18)aX<7C{ zKih26*Fo#z`@3|lMc&?;lJ|Jpl4|oM_x8y$@}JAFD0Dj3|GjnL9Fxz_md|$%*R8F3 z{pwm`@_D;z>+;+8_CM#-pJ)E_)Bf{|#n;uoCOFEll$ zPVP61l$+uns5x`WqsYj~)21f=l%1~9*g13holeV%GiOhnDLad46zpy}1U%y#68mpVyR|%~R6M9{{Dr?vLwSOP}n!k?mlhuOttW4Dl zHgF2Gy(7f=1R0H;Xz|FWe#-w0q%J*`(hKw<#7`FWRo!RJ~}2=A_+=cIqzr zy=a%=rr)pNqsov18@jp+Jhmae=8Ue9$Y$Qf9#;Zd6kM-tFj#1BW8?8(P+3yyf|9iK zuDQEC#h$-7uH1b_%MsS9XY)Zaj!oU{BBeb~9u7+HbdVw!i&$yMX(dGlzMG$q7O0iVe+5 zA63Dl)D8@M%{-0=*c5XL4hVd_JAvW86GK9ag7_2V4tB1c;0Cxri;!o9Q3pTck#uKg zF9E?&X7h+9t18b0j}G&3Zqf4);JhKw!pr$(%RD|Nn+Xogwz3Bs8N@jbG{!t_op9iZ z*B6BY&pkmWM|xHiFx-FIx{q0LwmUzASJav>8}11*{&3)6m)0me9Ng^SdcKN3#h^ow zWy`u>-|BLhkBMlTqi$Y>Z`ztQYu3`G zOCgtJg4*V=*~7z!51%@93f?v!Dr4B}{~LU~oQ#c(Bt_J~m#t~(wHZ5l`5<4;-DKKk zBrGMz;Oe=`6?7$Lo9Wa=pv$@EIW9HibMawtJLrATO+ag@)2=gT&&_RZQ)f{2@tk>B zLSw1%`FrXkF4e`(3)f*Y*%Ubp2QI?VI~+ z+vnTKRsDSSeCl%hee)`QKX_kz{JyPx`QKaLQ=ixGonQL@%Kw>S4>FjW!V=Qiv!*>r zlhLycVoxJJhvc4cDbp3)b>I;##;)=#$sN^F!oUrT;z45 zpheaFhQWq;jxseT1y5Vt_Ei&B&YJUoXW%)Hw@0P3-{>5dKOb=lWi^J)rW1OQ;{DCW zqvp(9M(1vq-6=j{|G7qdt7!bAzRkSJOom%ot!r3xZ!zgyI`l6LOM4tvysO(!X=rwv zQ4s1Rn4!0^kwvv5!GUkO%0fnF#To?$zO+XN7<^n98d_8pJsNgsCDbu6sWI>*o@DqI zv*@6m&7zV{!Dli@nbo8^7@i49)qG&)=MmU9(P^51;(-?l?+hAPcw7o53-Wjr-w&O{#^s{?n;KDNV`HmxRW_YaQX5FRvrNNUE{Tu9MJiCwhJquEAWsX&X(pvg(kM$U%ENkB#0L`P88Mbu{592-`3V<%Ida;If0 zYz#yzovieDN@nic!)>_3$wH1{uamWo=_RhTcmq?d#6pC2ASlAbb;V! z*PzvoL-Y`M$gVy#lKp>!LsN5$hDJ+AXBX(C)BXt)``ac>oi=^OG&?iRwt4dxXqwv1 zT)J#|r=9kKHEXq(tk}3|lIhxQ3(Pj}+TAsG`+m(mhxY7StE8-X#3UIkZJ%2*u&}FZtbg!n#_YN3+!hWDR=@0jS@F8`%yKsn z=3$U;_~LNnd{a-8fbPYBf<*a6tqvv^I!*{qVwK=x-O4cOL!$!sPpefSUmiOjaujbk zV#2Ay*gw@m@NUHc|9~?y9TH+bOy8W*FUB9Frqg-&AkQM#;#WTy6qYWKx6#{jKw|5P zK0bzZObj0mCtY9n+8}2}!oo#2H@p6?-|@qt@eq%c+_pn+Z#A=X3fXTcx+^_ZDDhAm z|6$)XJG37kbCq{Krdhe^)TwEfN#}S9jnkXv*`Mat{U!bK(mB7yV#}(&uDiA_{a~ML zw%Oa@ZTZtrt(6vje{WhH^K_LOizSba$twDv%djkVJvU#uORrYo>nn$K;n(%%{w{uh z=AgQG{+vGrpATI89=3k=-`ww89v+|ee%8ON-zz>&zotLyfBOG9j5B67OcS)2**HP* z#*C&e!-^Tr9kNYxbAS*>TI+7abn7{> zC-+=F>#?}h?B0ynK69rX)BC$WdMHmw7koKmf}vET#Q#ZpT9T5JwXJ4Oo-)O;Q)#Mp zV&%-Ks#!NDPM=k%sWd}y;?0>e>DGev{7ljd`zC6v>fR_KG<(se z$sE5IZ+0{~y=Y6Xf_C>-@u1&}wsj|TcWsv{(q6oyvmv`{r|hKY#k*P^qL=J`1Ks2Y zuR%fEUmzW%oDT;tT~p@Lx%2D5A-<+J2bd0DxyJDEzk+qe;#`A{f;DT~Kh#C8+o3So z#%R0h;+ju=`?rABGalFZtpD^Jc=Gp7(b*ST+l{tr*8kbO#gW<8WV5UH>yHX&3$hIr zCA(jLIBI=F*;HMNr{x3kh!(5{g>;azFMnv{w&lI#%p-S%A+*On=EDJYIf)O46f7kc z9AuYLnQ*vQPs2fkkKqnW3#&fkLq{JI@F>?Eh9mq;6?z=JOm{l2C|J#S+Q8ks!$J7I zScXV5(;DugW+vS`7n+#Dj&dAk;MaK25Ncas(7?)EU~r>LUPIw04|ByoXC}EHpPSh^ z-^41tFces1DPYWSAk@Rk_{fcB25H_yjcg7(9Ih#(Hi|rEmf$(m%(!Oxy}b(TSNA6I zaTYkR_bg{zw1Ux#vo2pPo+g=YRU4n=xgEa1iJ(C$$dLmmS!V=Ds# z11lQ`FE20rtbJ)|X>n<7Na3!dqobi?Wol|_V`GCNg51pwUCzceQ%(0q(LF2N< z+Nkw6-b`5awrYQvUWJcd_vsg3zOKpJUT!?O&~N?h6zlE#b~|7F-=I-h-4bfl&{1mK z+7nRJIYF&=vQPhn4)rOsJlZ=H6jfDJ>bqwzt1T7gm*Zd+;AWIpE^b=3t)QPzM4Z9Q zYOfgs3wwF*2)3ON92rC8;8i5lXE;fk9Ym&6H+(_6OT67&$b9YY^zCu?%Ns9?%1z%9{WyE#;?THh zJ0qUQFD#xqZ|bhl*TEZ|uhvbm_J41DaJk6+i8U^t*)Bd0zTdak;`{Xn(Ubdo{u%z> z_F?uV|Err{X#V@VoTWaHRYO6DB`)xHKkr`t_WE6Mh|o>rP4 zC!StboEM&6US2mny`sABdU|F3Jn@XG=5^s2)$RMHXVi3`yPi?oe@{HKZt}bE%z9g^ zjgKW}Cr#6AnBOFYa~BPCk$CunAfJ`iOB$L5ES4mkS#HE*&BC{|MT=ADd|TIzr3z|} zx)IkVS*_i6vv1eht+N{9Z1taayWTK0<;m*TY3FYLtaM`S-g}pRuiP`= z&Duq6v6?r_<|S;ab@;Z5$QC`k%?PpGsEF# zn~)0*>@pGum;{+k91fl{H{Q|2Byg3%!O`{!LvX)Dh64-3)h`VJ%S3n!n|-u14jc~V z(c0X{&9%nh2pdyN?g1OkZ4)*#@pLRX%PMb*{SE|H6Uz~xm)-pR<)Yta?AK;;$EI1PN2H)M(Tx^?R|ZQ6v^ z2EB~5vk-EmK3b0et$ByWW&7_iv%up@2E0I9aRFSQX_=mWTebN1`ieiilh0>-Fg%;5 zefC|2l-~O8m)~l{*1uOz)R1;-ZfTWPH>j&KkZtYjm+kDTRPUeGsxi5;Y5H90S!HwP zPLo+sI(6~1nac`$R`yL?Q`E3XR7^@jqEDt{Q>B8SA}fmkJENxlzRA2i{0!Rq=d~GF z*iO|N@@N?`=-e^9qr;(jy;6xm*yyCoJsy>(rD|-vcRgP7t9>ZqQF`ShZ*)mjV3F_q z*%HE+crz86A38{~#z>S*R%$d?A~|J8!sb;n zc5%2-DC85--Xjb=ezc5eqZn)dy;+UKBeDvAHH8)-(D~Gzl`Do#&hi;QB)jr5cg*be-teNe zC-#EJ^sc!#cd+-(dU-;kXC7l`OMkck=d1~?A1Y=|T4}g**5tL0KW9zZ7-%_r>ej@{ z+0%9w?wmb+Z{yF|GY(F)oHO(2!pb?bPHx;eXZG2HKj+N3c+qn1+^Y{O=gzzNap&Cm zcNu@pUGPxQYTm-9idFL#y)@i4Z?OmH~$aj#v0*d+~bCW6-p@|f>g$tm2h zAjC(>L!rrQ?$HYlOu`-x4jj&F92}SgRRRuhEo@9^aMxl`n8?H7Vc^2T(ejOf#f8D4 zkCWksh_Bt;P7@aHuPz4|gjDLM@!Ba%FfDrh@75V$BT73wk$S^l-m$lbeY_mxU#0wnBri9z(+SRL&aR7H$?BUFS>X_E&Cl zu__2KvM}2`5aec?(DU`ktfLbSu`4a`ap6&^nQ$rHkpWzMf!ky68LAj!8UBKYJ9v0_ zL`6k~ge4&@F&Q}(Wo2c^@)3PQGe|k6qT^;`=ZZY{2pN+`K3Sp~bWrTvfXw|tImf{F zt6hq%z8_cf5c!Uf*49?!&47@*<~MKN3@_8rR)j!?I9}sEA&2e%fjI>pGEELgq3y9} zhF)u<)}PZXJN;H~>%9#(xa4M^KV?)^8@Bm=oOw;%)XVP!tn2=}e)=C-*U;=))l$>e zo^GzM=-xkJqN1L8SDLx<#96bIr%p@Mo4shF{`|zg#VZw;#jRMmNNG*%!u5-mZi=3< zb=KS+F+J}ac~;`_|uqQb3H8fIPwFMjAJ_xxv(%DLBKq|DsV z=TvZI0>i??7qpD^7(BQb82A{Z?QGUA%4=%n5ENm0z>v3ESVqk$E#V@Qb7y|q${Q;j z#iMwo)$SVy>8Dkr3mmzHro5&?UGzqeCw3frb4aRI-6syq@S;H zK62^#3YQtLo-bQ+>B8x4y*$EMOJU147QI6~%I5vvACsyN?fdi2+l5)=WJExROyw*l7y|$*T`)<|#vw9UiVw2Cus8p>r-F)BAyk_2%%jdUGe{tgd zZ&y9@@_2KVy7ms0rsgQUj{Z9Ro~Y^x)08GhPMy}TJTt6sPXDC&A+3wryOxGl%1A59 z%TH5oTpgk=qQS;2%*AM6R<12c=l;b;p!P|0%5;+ipsZYe+gOmz46?D*C7Q`y+8W~4ow+-|N`w<99qaaI3S*MDY~QBM=6 z=cdMO-5K)Sf4*_+Jd;_0FCCY^U$Sg-m0z~S`uj)HjH`WfO}3wZqPN&AZ{pqLhGxNk ztvkdYXV%y|-dnc4Nb$^Om;I0a{QRPIePxP#bnMSEjr-HfzsuUaE#C0_W?z4_Ty53n z_YaT%-#ag_cK7#>&#v#DpI^WKKcm=!1ZJVI1&QoR(-tIg8(mwF%rY+91{$wU! zYcF*%xxkq(Jf+ZGZhA_Qqto`3VqYssRc)Ht&e5Rr=^n4@1qBvf)g6`d zxQqB4nKfS~2DQw8+4}WKQRxx&6$@MUm9JRTxvcfn;t7j_+?Rk_O-mO2xcZ{9n{C(1 z()m^5T9u2BvAz(Px2IiQu=*H#`aF{rk5tq5r3y7eRN zFr%n|;$a4%2!%#QqaSRI%vZS{HaJ>_G|ZV0z3Ykt3*Ua8i%txAM->=&JXHz~38?FY zi1BfHI54t^?$Bo8VV}X!%*nn%2oLLzkVdY&aCm#w-dMcLI0Q-Y`sJaAJ50E^r{-H1u&N z1?Z%LhK?1aPdxgJJvcFuTA*=a!Z1V(_@rag`FUwPF*mt=ZOjw`%|0^*5yC zX3u}RIcjFy?$)>8t@O5EijZ4UcmDgDjM4xTg__njg@#67?Y7<;oi5+XzA17OeI`%o zm7ngdEg>l@Ej_Dx!dw?+5fu(rK5j;Fsihq&oCWxW81#*I>oc&h%gnCd=48sRXU1S~ z+Vr#mk8a5^Cp88!Gh^4Y{2Et|X>kdhalLIOq;>eJH^15~Cnd9+yiO+{tS}Y3x!p{_ z>}!t7ghu|*Znm>6e}0FbXK9gQwLU9w(c$KvZc)i44H~U;1tr87B5c%{n>um@0}n1> zcp$;RV0y~+=qRS1(8fXLsvrZJ+xfZjyB8I;Gu>AFf^0ZhtSmKab(O z<*KWl38wAmRm?V5_#_+l9~96#qq0f-bhJVCMVnHiRI_>Z@tnH1v|e6{43vK8^Q#JyLyX50!WSiJFXqYNR`xE`S@Z$N<`00ORzgIqdKlT3ffAPN?Kk}E|oAW>8|9{Xa&dfqH zq#7=L>Wv^B&S;y$i8Nj))iB(y}q3&WHTku3Z+ z#x1P8KeCz__9cZLa&Qe;a7e(2+`Izgre3XH6RAqt1x)hiZXH9?T`MN}x0hQPtKyha`cxlGCl zp^odF4kR3~HalWz*UvH`NO=M7 z7rkPb!(hR18(d!SfG>oVk&#hVRn^hafs_uAq5*j*r?|Mdy1F{9<`Hr~2Ywgg+_`ht ztXZ>h<3_X|4(6y0!6E={;08aJ?f-$v1s*zliUQ#BqW|Rb5-ZoB^%09rPw&m!o$%cJ zj&7;ai7i#K52u_se<{Uxz5l%ewdLpH%Rl*K)HVw?csDiI2(@`tch=PRxEA%7luvR? z>*y59n-P*c-&@2aFLrBuQ&@c4?Clrip#>)>YN8%Zd-J(XNXQHCEqzQERY3G0DzHQI27U`jI0YETY>y zQ_NLdm>EH;y&LVX z$<6$o@_y>Uc(M62|D=7Md$B%DepYGrx21Qrr^biby;b`@^NByVz3Jbn|KDzxs%1(N zO{ic0mtCQeG;R09;61e5{{ zlp|&CShR3VoDu3F=-jugHOo7-%Dh(LfQgGqgM;8)w$uYm zyc!Q0R&(nFxNJ0!6mVdcuh?*aVd;wy7G|zHDGbam3JtoOTnegtI2kW!9bx|Z;#4-X zx!?!OvjPX_ZE$4J>SbuyaooaTm4G782S0}wT#DSGCj|~1U}F4I?8L!ZQsuzN75LPV zRm>zNh)uMl#S^K!@{(Z@gCWCJaA^QJgI!iuRz*ccS6A1>#KhLt7Ba94X(&MUHR34^ zCQX_&d-m)#Yt|soIYCZ`gRioK&pFYgG!TN623ix(t+>KDH){QIt+Lx!iuSweSLn#q zpMIumRU5l``MYuxJ^QIvf=lYo_ZN7TstVV%v}4uZ=cJQX63x%`iNWl`3eq+hfbpE57?b9ekxMqKfvo*(DY!RFpJxd$&Vj8m@2aH z&O0zcVVXc*ghz;lg6@3xJ~oqxGfjHF9qbHNT!w~9j;w{^-m`KT5>y!&)NYwZtE$Xo z`p?E8u;KDffvKF_jPe;b9z1xeKhMddX9ia`%b7(1D^HxsVo?rXA9>J8^z`I6TANo~ zxE840{#JT>&VywWv)lA$u8k>wc6HbE{CKspgDiH<+utYXwOy*YKA9IRU6_A# zdn)VuU$+YjPaK}FcHF9F`~9aX3y)8ci{14(==lAdb|DSzGGygaZZ$A^T{#uZ%%pRmfss|mx@C(^Yk?!{M}vt6mxQq} zA_hHQFsx%xW;n?JnzMmy!H|}ghD_L)nVH$x*tod3c!AIAiHro@jSOk`*VNRYRqm~= zt&kHSX3w6zc=2MiSsBa`%r|e|yng%Z%afi+X=8mo(D3J6u^YUD49%867^)KFK?TOJ6@%JQmiOT0l@SyA<% zA_Ft4`+6UB4h0PcrSoequ*tjZag$)+*VyH9kwfbGDK8mT&I_*hxMd!Pa!A~D64kiF z?sWEDpgR8@XHE@JP;h8i_w3+*Ep?qQ)f*a{nWyg7Fw%5fq^T{W zT|aG-m1s)n?C_OgN3XT5mRg^FV49$I+Z*xCF&EMTyIbGRSQE8;m+Rs!*>~5MAATmg zdwb6P&Gnbr;;eV%KHOfgR&8Fk+Q$`#OJwb*ossZ*sy2OQN|~!<(c`1@blZ>FL=|VA z>oZ^f@{HBjmsi(CH&5dYFAcgCnVURUcDMQa`&;Ahf0LE@9(uRXTQOa8=g!a1FD&++ z@3(i?*Vi{TXWu`!clY=AcOSbPP|jGz$)()VvmhWYr2UJtTZGot6&|%ucW-+(eYgC7 z!N31MiYvtSt335oV^hkAtY5U})2wEOIN^oD!dZb=Yn@$;u2#F82)}l<@2lkG(f zm*griu367`-0PK)a8^Jy<$(j6{M5vQX3i}J2blPE92&GzYaAGu{w-j5D!|8};>O8R z)3C&I2hTxAhExTI^V6Ip5)KN8@f>kw<=}8sJul|Su30|N)g z0f&%~2?ht)oF`N=G4gFGYGP(#k!)pVP)W#SViuU-z#+}B;gUf|QlS&al1Z}|m=#$} zFAJC)EoPgk#4zEYz%8ASW3$B>7C10-u{?MsDQ}?3!YL)NHC+%oKLPHyKWEs*pvbTn zT=RnFC&Z+rrKKfgw3U^WwY9a)&CTJtH8eCdGBOfU`IeTJ*3{Glr>_q$#xnN++1505 z>eSh@XD?c`2)>}Nf5AQY`VXp~m&Nw~z_bDn9Vtx_P&-_4_JwE0Ub=p(Z)i_jb=PTk zoSMZNnaOKU7H6BTQn>%2!gWj6I=zp3{srZCeQ79E4#;b46K!d06Z2A4)74SzYHW6v z;*(}&=H*}%6q;OE?#?7G7JK`TCTe| zZP&eY1dcAz<X)2mkxWVrUY zq&aIza^zJ?OME!cUhDje*OHO3!9h_cNaKV-Z@iR-x(q`D2LnTQhP$3q;?@O@O)M82 z4kaIQYPRH%cd%Iy;ie)Ys#&zDBcgDr)c`$|J0XNa=f!PzqmC2XWO>b zS52}vtoyx4ZLL*V;L#n$ukW4Rz5V_D1I^s>etUL&e0*ZE_WIMy4$ZN12~TiPWMO4{ zVec9s-?S(wz{T}Iwrx>~M*8QcC$&TE@143kVWHZ=e*P1j)f>Lgd{(|oKC6D^|4PMs z0zCptWd-lbs@^Tr=vkB?y(wY)ofeU>jEAifX^?jKGEh5wha&p{0Y)YksSD0+Y)39M zIWY3-FdSe@nGoQ>^t__^fSn9WLx8B3hyxR|rBy<&fF{d=BvH;1=O;p{JRg!pBvllS zOg>Sv;Eb38&j&tJOTL2#7`SyfUAdTR6w+q6WCS?)``R!xFqLQ-I52YAB)Kq}1RZSR zY+zdDz^vwS<$vkwxx{2&4-P&Uz0R zjxcC2Y=+g6$n%1bx)MGq2$>OtY#$E_3W8jxk&==EIpD6Qrp7UJHhh3SIDLIc{wYYt zgpZo#w1Reux3si$cXv;lHf_$FIcqV-%g&rRgWOqu_39OoN7%9bKQIfF_4?(`7oN-! zntX0W2*=#0=~q{m&A6Mj`(D)P(8U+iR{Iy7&8rXDtdSXH#G}&H(02LVcjrPMK3+iv zJ)<@~1|}BSx_&ur9}`|(QwII%Ce!sfBqr3!`=~L9ni{#z zns(&f8%~X9F)yO@MH${YnHcgZZ+m`d&kTkHc?JfP3`xdf*Ne=Yyi#X^B3c%TN~z2X zb(q+6$X?~^o)aC8mwb2{M4j7aCKaYmo~E~PMbFP7HQ$-$OAnm!>|Z|l|6IGqPa?A> zzwljbGVxf*t4S}tmM1Q#nz*a=mH2GC>a?RfMN`7p#|O8GT8CxdlnPtFWb3ABs@K-$ zmhL+%W$tx%esS|N*(`TmE``Rv~I_BKY=Tc2UKhx1Bl8;68bLPx^9 zP}VPs235JDp)J;TTI18tEo0iZ`p1W-`@>!42hIF##(n>Ex`kYB)voW&&*XRQ&-g$4 z9`8r5@N0q-WsAW9Z0aelmf9ThL)L69a?dBqm>8p5P?{!X^POJ%+sssl5J4 zl8%CcIXi>6n2#v9Oyd_-Jjkql)PRA@IpwD6^tdWVMh3nsFAp%VSv+u>6707@h*ytA zY6Y{<4hLs0Mg|dP2JdH6Qh7tT8r%K*_Z2wwaLIh|_0zes<2TLwHWudS`EZ)j#@WMpe=tELN`lZW&|AyZ^AF)@%G zVkIRdpb2@T92k;+DiU?j8lL@ndU~c#oeH_WYt^b%kO}$Txwjzo;?`{k&<@gpUtEK$ zQ45(L(~;^wbe{cW%CQtnnZA`dQLRh6UOFt$VbT}#@YI{_xc0Uwd!-M9k#r23gow?v zn#d)2kK{meSxv#soKjU?@_J$F4C0n%t}T2L-Bk*{+8hGSu9Gc=Br9g5D*E!PPjXVR zoXG9OE4?hO*TX`5qO(Ab+Gro!F0{?-jHtzehX zY;zd)W-g4}le8SNENZ$v$rWoa-B~vGDiB2(_eB{i_ zzUMyw=L?iG9i2IO1t{;G3i&lj(|ft*!dX+SCTV%Bmfcu%MQh?}$MwGtw28b5USqM@ zwDFnpY2mlN+gu;YO`SdEUC?gdk9Jq3r@jx_AIcanI%n#Ku*0!}^`SD;K1OWKR?MDq zXYwY$)6)%iw|3rK{CM;H%Tf34w0t>#apC>4xU;*qzP`R8`Sd(rq`a4}Z64F$aGCu@ zub@fG1&P2p>D^D9Gwys^xzgk7rk_`i`S=?A4tRfKcfGj$J=u+)tFA4I_h+k#{_grv ze(L-w|AKz&ujhAU{bDKjGE0_SmiHKo#vPNhf0sc!oTz!v!&qg@(k4OPScaqCsvHiE ztn4lZ7nwOi3>+C$H;6Pd+`Qu8z~vOO;eff}fr*zm*YOA*)MHv>bcA{Li56xi4Hrg- z$?j1KlX(qX6rLLG&e7H+(T4I^; z`66{5bJMv;(TF_sJf(s$>9Z2o)T-yxD!9QJ$z%q>9X{A)V8&1 zZTYvux5m!v&-WCoWfWm#;1uHE5^hY0@a%{d6c#PcaF^uZ^k@^SNO0#86cphMl;}|t z6&4W{6`U<;r@q`GarzpA1|cqPp%puqubsD3$wEaD+))NM0X{RFWe{OtV`$26f0Ebn zxM%L|-A7&?KJyvge`OYt2)XmGRm0={DvQ@fW-3n44Ou2YmKT8yc+GH*fuF$u7MhU$ zb6&?2wE>(zK~B7G%T0sY~8kkbFxt3xkXEOob(?Y zSOBj3q06+_a;7THb#$4imHlV|i^k0i@ejPq)p)rYc&_zbcvX7S)_48WT%kXG=GPzB z6f0HN)CRRM=BNnPr|@;M@vyS<_7ucV%Hie}Xpa?PWs75A6HJQ{Vdv)NV@nb4Q5N9k z6A<8DEE1j{8L~xbtAQX7I|t9kXu)lDfhCYY1y3zJWq8FP!r;Tu3`t?gL4h0ykPtvl zJuGuJob+71*W&fr-TxCbKxrpq)w-P5`wDc{o@`sPNB|RhxQkb0<0KPm#w%Zu;AjkDXg6dn|-D({KOjU%W9OcH>}P7Wl?pd z+|ipA<$H_!(>$dLvKYk}8MuYHctjgBQoK4Ng+wK)Sv_RAxIGy-`I*_+*cUHhXY=3@ z5)$JG6ko7(DVv0-n1qDT99bs~HW?Qg8Bso^ZJO+=QcOI&!oBJzRAiX9=c`>**;ftC zSKuUYhrxtVfI$pgy_=hxgYHz1U+b5?$3Js_K<577+~c8zXTysxMU~%(1qWDi{iD3L z2gqU8H0{=mMTh6Fxjl9H^J&Xp>^}Mu5^TtY&#SjTzff(8Dhf$T z$_U0Q%y5=vk&%^^T%+h$&*_yGqIl4)*k4MBNoub%kMkZ`_GXtG^%vZDAGsmzD!j~K z#3;ca1->N#GNGre3>v>z(zMq%G}AYS{%#Vyph)b$YO-;?p%1TJBD=sdns;Y7dpYIa2#5ZkMMCsM&iraBD zkCN*j)ip24Xt)yAA4jnps_AI0W1j-MO-@ShQ`t`eC)SVx| z8p+fZWdGmb*3|6gEGgj7($($ez{2Rvq^-vx$zb2p&7iN%&*19DAY#Y4U}lpmzk!1RbkPJ=+2&Cns-jNU{wG z4i1iph=@z7h766t6RdmG{KDFGpv#T&PR3N-i>m>p)?9EpZEx@B>+8czs=IgZhNRO; zi=Kj$>MKYhUAy%$)0jyaY=PqEUR-P)GHI=PQQ*^b><-_AlvlwZw` z(XXDt%96v_G}%mpf!$L>V5u#;pVmUxK065!Q&U?>zP@crc9M3SPJ-&Yri+QX@Y|g` zYR9U3(#|~F`P>CNHLj)0>}*vzqYpjf>{Kw>B`+^0!^>dqVr#`OVz|rn?K>H6hDwGO z#sg0BI}|M#Qi>itXmrT>b!oy0hrpv;Y~m>rCYzkwkIUIwJu#Mm44;6@_=^lCXwfDq zB`+th3Xe7;aI|UYI#^jdTG@CSIaPpfsK*{{B_*ZR)zxP1jXo*c^QzW{6`qeOyB-ay z96-wr>YA6NH{5D!YJ$Yv?Afy$T9+XgGVqw2yyOL_y|wc7@^!aXZoG>x=H5cf7PglM zpwXss{?i53Rx9TQb%T|BVh-!XnHv+F51e|!@T0DQQ%|w#W{&>C^9O&0GNr%G->5j} zUXi$%y-r$&wLNnZLxa7Y1-p$MgH6U%1{HgD6Ek~DQ0&<=`n54wTXD?EFxO;Y_tX@a zW5@2Ny~1^>y|_reodn<1J<9eH_MA?F8V#19xU;`}%AQp(UtUg%tJLZ8ReLp_IcD+`S)eI9_76=i|)Z|cYHI4~>6tuv^7QF5 z=gph9bm`JHYu0SoumQf%4edSVP4F;vo$6}3a#gSWx*4txn|lrC?%CC`Z>I77j;%9y z9BE&(ZL+J$rjxA;7A?KnZM@>*)H%0S-MKsW{)3s19^an+?8%Fl&)>XyH{2crWGDB`w=^Ob3NTvM1;`ZRWaY6!Ln4uFH0z{||$vtlqlr?(T}u zukN1SzW)CH24-$KpB)<>9_|n>pH;>+%U8w3!}hc0W0oELp~}5#Y$GJRyLQO=rc5Q-W?wCNy#Duh?*?(eCMUVbdi%hcEMA&G{CwC1tVC zv&$woESBAv5)zjAbZSJ}%BLtZ&oem%b%WG71TD6_RO8FqReYF1zG1=vwkD2=2j|uB z2{73>@i5F2WYb9J5M(-XypQh|?-!6!apFE+r3i6qy9+Mtl5 zET&JNId|?{cnJYNNdz*Uhqc$hw%TEC!HUIKQ-{)$lqA zC}vs8)HsV-&7Wq)s*c*+MpjNxBO$|7?#5d za>%M*w2@SGEfYxj4H-`b^#SZ$b*!?`0v|H43SSD0xHS^I{lFuB9kwU{uMe)c7K3rD z2xLnqyx3m6c=4JwYc_4#1V3Ey(4j-fQyz~VJp#3-sJecDW~DY3gW3N#xHL6`3-Zop zZSAhU{t5j(6Q@jVakA3snLTH&j-}JIMbq`|r`qc;T)fC~*))5r)r)jiZ`m|;+alfV zQ`auquxENHMa4r8w*EQyWaYxI= zZ>IWezZm0QB!9T|i&;^$XO8-2Nt+H0RnzH@BE+U-=BxTh-WGf5YpTx|B>5}6lq?1I8$hDIJPrWT8XFB4d~ zBpAMMEZW81z{nbsA?wu0F34b)$G`J!vLnY@6NVB6p(O$DIOH}watL57U--yHuV#Ym z1SZ}`O$h>$_Z%)T3x4Gmr-a7EHG6-5e;?Z5F(G00 zrY>m5P{8afHKYA-TZ_Sjmv&NTyj<3~e0ZR!xboL!M&=7Y3l1!Bv9a#pVRC3cFCZ#2 zfst)K@1ettqEEaItYvx2(7fvW)eDZi*MtNiB|NyPc#Po^gA>D2SP27ZC&ITgNh{ky z)+(rLnLsu*+1lDdHZ@_CFwon<;ODp&7Z;aT)PM?ka0!D_yyTw>D?A@jcoMP$0diav z+QMVVWDdMlxO(;K&6_vx*|P_7fYjl`hvCKk;WMA%2Nw;w0R?zj!~Va)8CJq{YH5K= zn29Ytlcr9aI%WE-*=;lD%slbhJ%eG|gtm z#)RXI@{Db7%!A@jR;#~U+Oz#q?CDbdi$`_LgJaI-o9}$eqF$i1XzuBTzSl1|3twC` zxlc({#UvuQ*lW7oTQSj>AvNBjv8-E56HW zXPFN)Fll-@iZ~@67htfh?@QVSs%2{;otc|vHW(v zCf}J1y%$FXp7FBSax|{p`}_L`|D_EF8UtDtzhCAzbWqy&|NjTxh0e?eIg8@!oKHMB zke+Y)-HCbMTy@13u8IeD%O8EYz{nuTrF4W})FYrtQ~2uwMg}=1h6VwKjsnHDr&rP( z*+c>gWEqqf2vSq%+-v; z5=qz=Dduc@`D}LPw+oMXJN^h9E)Y1V;J_xOkkF{;WWaEMU*N5RLyNsYfU}}>gn@>O z@eK10)-$|8%uMz+T~h=&FBo|6vwS$9w9xHU!a=rX7AfcSS$-nUOq@De9*Z?6MNL^a zFK*S{6_J?*^2{tD3OcL|H*QQ|E8%7c^hL`2;efLEROQ@XSvi267S8)vBr44LUQr zr*HDK>C<~>%%0OVYwm(cjuu+I%a*UuGIw0Kw#iY~cCxMRnsp1zH%+s(*uFq(_JMtK z4o%lSJZIf!nK9y&jGboI&86VG4ld-ZzV+jk2; ze4P9F%j|F8XHNaK_UGS8{}@|T3LY$KViQ*MsmM@t_TvBevD@OL;?Y83eW5ceJ}MmV z7AbVQ@^gZ^^L)-mDG{p)8V-y9PIwhu z)vsy0{NsXMlXvxLS*?D$q3g0#-)i&q&%8FV-0sP-+NgE5&bd2i?OB|Sn23v}p;uzq z5(~3tosqs-b?`{psv8lxMq4+Uu1G#Epy*`MTr-jJ7$cK}6bnP5QuJ|7AsvPrj49vv z7?`;hSS$_fV3BoZ_`sp3V$sj4Q1Ra9BIAKJMF%e4_6Lre!3!sUHzYKDaJtwY@?%5v z?w_A;wtGxqjGfS}DAQ&l@I|5JQ@fMJ5qXnDkN-cNB^(ab@;|+BprGl?_xl2d76nX= zJd6*Wm=7FGS8U~~2$&b${ow#3gD9w+5q1e+(vtl+fssK8QqF8pZ12D0#>gh*@j#YA zc|nnnyVITp^6aKJ793<^oV)Yu+ik47E3!`D|teXdQIU zwwKEkY&bHV6`igeVC1py`O?H7ky60G+WcpN1GA)$!+|+cFBKeG?FAf~6+|KoIM~@s zR1Q}+2MEj;5K*u=!pHa|bCLk(nF0?!MiF))0n2~|j7nl2Rzf_SDj!xT8p|lG^6Z-B z<-yC|(h;<9zubhw9+C=L92=V$s^56X7zoJmv+ud^W}ybB;Xy`;h=y4T)*J;5EIdt-Ukn%$+cM-oi!A3l=Y%vvm2Yc4sS{-VGZ!=~z0iUgoTCKiOV?+xCT)yQkS( z9ayL{^W^clr>EebzPZ}rOOXI{QK@aFA{sUMEN z|Gez$w?#jG&inmm#ixIFxitdh4>tYfQ)1asFlB$+L^-D#mBK}fy2Jz%&tzmMyF1C* zb8%@-dg4A=CNM1|bK+B%=>mynQ+7^JbDGUs$aUpszq}TP6|Nh&G~IOdv2}6QO}yMiIyWb#ozJs9y>0F7?KnD1HC!@l^YYtw zbR5;q<10M&psoAqnYTN(s2@MN_s%r;ekGTn3_fY+W*!z+BMS}%rq(qZL^To^E;w_% zm1E$L2w;4jr7X%_A;S0|*<#{DJBf}RXZC;=XouG@Tv*sK!Re@SLkDPqwvvTVh(g?p zs)^i+70LhH8{0}94Z12c9ytiK2<~+i`e;xe(5m$RYWNXGwI}MA`1nNBPt-Gt86IX{ zv{toKz`#ObPK`v=3I>i>YrpsN%P|xzRB&MlY-CYCA~cO(iorpNfkA+gfm7B=SS(L0 z#etFaF=K#}&csSr7oI<3RDuX+z`N*)RKxe>V;I!q{Z1B zU^v{-{NO+%`~23W2N@(26d2f>IUF6Cq<%;?hnpw}v?y3}Y-m=HvM7iVw7D=Xl;<69 zkV8FliWUd!-?^p^ybBl|UMYw$R88Y$oe_SpzUhO)ft87@fedTyR30#}ODZ%RSQ5wC zcwk|RKw&eFwaJ6bFeeiMc_qmMQaMZurJS4@yZxeb6>WGDm?JqE3^JIWtjdaIl3bH@ zc-I>{Ef0Qk25S#UIRhRP+syEQA(UY{tek<&YC(>8g%mZiaw_nm20k=ngM2nR><}6g zml|hh7cVbpffEis8y$XYJ*aKt-3n^kAeA=Z`NtsVLtty$fYzZlH#c{6bxoW&5i(2$ zY1?etv}xC_UDH>-nz8aVTHk5t7B!H`SjeDES9iOvZV&jxM{PVwac0vZZ3w7lN}AW?_6QMcZ#FUp%r>FPoG?JcDnw# zB}b+ozr1+&(TR=*2XD+@w_)>>KK*SEPOf@+wXo~T&xz{p^CcUjM64!ixGd(Ks1;H*LDO+L^hQq;-w-MT14=H@VGLaZgHY z`Nixg?3HspgoWj+qeRb>`g|6~uAj5Md~hggda`}KpsB-!o5}LLiieqxZBW&Po0HLbjbsbB*`j<0|g8W0W1t^U)*Ly?o7RKkX5{f{Q&3lKdxbd#y8lV z_^fIank%w+6^~4G6;Wh4HnH0D<&(()ZkpJRp-79hJE7p*-uj}TIZ}=XbbW74f(IYN zi-2jooE(ZC{7hdQIt19xBwXWp$(wYbw#nvzV>I&`O%4t&o$X?LY#rB`8RQElF!D~C z#kyj#n}q=bul<7w4E3qJ6B`yZJxN=x;J`4!c@^IV^A0|Bp+^mKl6e<0ENc3(KuK}& zw_mRnSMxa?X7Jgzgn>a^Lt!n`o?jCf*yIut4y;Lj_~7k!iyxXN1k4)>m?tC8mak!W z#t_3W5vgbq5fOnDEs!x8%%a8E*x1(A7IEzYO3~u%<>dvLvI~!hii?Yb47@{jcUqwq zEs#Pbs_+1wa;3Yw8#3fOckbLJ;2VRH`%FiU96595%()A<;oT-0?E|GlZwa+%>1oo@ z>76)f@{~#aQ)kSa)iZtey!kWdE?B(8&Ba=`f7R+Wx>hbrH%@dhaGdODuwm2g4y$cb z9If{pZq=Q6?8wOzQ}s@s+&A^$xg%TlPjuAZb$QS7m22+z>#e{2q-D|57j4g9zHxi~ z_Qm@TPdgg`M_#{wQNv+#V_UM_F9O-`Z%^EL>Xia|My;x`B zvXHDvFFlqkEG(O{YT_%`)gl`|-8r>&_4V}$IEt3=VDs=>r-UjuYTb^Mz27qP>$WV( z$O7w~N_M+%K z@Q<kDQ$->X{A>ahNlOt#2ItuFPJlL;gY4jia-xI&kvr=) zZr=8yUvKA=w=3R$So87or!Sx1f4lSJ=cV6&j{W=hkxS!)=)tDdd`dn`3ldkh@i{y8 z{K!-~>MN$7c51~&q2qm%?V8?P$wDhkdNhlb&(4y|f5fx0Slx5}qAI3Xm7xN!fR8sCa=103b==-6fi`Ywh93e- zx7it(*h4Pd@_ORbuf$Ntpw9Hiy;*Sg)=LZ@K;582nk^oEqU}sP2f1za7df`PJEWt3 zp+HZ=ZQ?V27GDL&yBZVu&&G-$3{a^RWKp{%{q&>54uxM|mYOrOOk11a8|HN6!-4$g zraK-mDb_p>53{dfU}$a<5M*H!o%5k1F8c2UMg~bH1_nWfCkGB$m1d?!v&qC1FqYkH zb#3AKP+P#vCwF8+Y=jewqKcr@KZ)xTJ=9h{S%|$b>ALF7W0>IK(Hd83z`!oe@xW2h zR-!;D+(bp7MZt#Sz+nY59s%jX=#vKb6xfcmA7(KB@F6XN`O1Wcb4ow`oXX245$Uox zfia6W9PoX_=OMVOO@K>W((NmE~~T2r(X)Cfsf&6GXux+5D? z$%V!lZZ{R)Y%sf{d4l)Itq1Xt-VJ#3&QgXC49N`buql5oE-pbqK}ZusLP7#kYA7iw zX=`h1XhSES4Gj%#Y-}`5B8@FPAw>pcFAwB!&6t>&l$4Z=j10(1A^7Q2Rn<+90wNA} zxF+&O9!NW5_Uze9mMmGabRA?-(9WGZA*I97qelrY3SxttaW2&lT0HO5=XQ2QiPu`8 z`PbHzX&)`x|6skjkDhqB@ulLkd6QGDH{aQ1{czci;F@#!r{0BF7}vIVsYJH7cDZ(j zs&-Fsst;|NIH9y5&_b(9b=$lhJ16em z)4gwh>%l{{M~)UBKaqCobjsOt2^TKLT)q-@?RwbFTOoJu#s)k%_UQ4+r_av3czOQy zn@jKBU;X&$#+R?RzyG-R>-WQdNxv9VKIJC#H!%w`g=B14c(`3a*=vr+#zjZFC5*G~ zoY=Vdc)x;kmyGA8B_~T3+$%Y?<1mY~pLA-6)DlCH*=`c=hK3K z#q15zWtBJfUTko46=SgYav_lAeT%qAvc`&n?Hmu~#FGM+97x(AAY#j6FQBw=or|0d z3;)Us&0n6$aTEnC`N*(d;L@_{H607e7x9Vk+i+itNp9@EC7fTt@F0?-Uq;lyW?h9d zGs9yBh7TD%7uUA(h-errtDETFbwMWK$c=`ipRTf&mp)tM{af<;`-jJ;=lk#9_xJaY z&##eAiwIqj&@A}4ut34pDu983$Hint1DgcLghMWtI^ProrECI;P0 zU=A^3VO`|-1@rKO?36({u^QccyXI1f0;LP!vF=K)ZPhPncXJ+5p)f{pw zs)QKU_^7GyNVWJX3ovYFU{GtSR8QjN=jLuaTB#;IMMzFwaQ87ERh8RnJN6(glUc@K z&nU|v1TM2c8xDmfAzhI;Ou_X85p$t0(G>c+@-Xfv-t#hczPc`(o&X? zRC?j8Ewe;KK~ebfBPKg1#|xZXSxmxOF()=GJgn%5w37o+Xgw0YjvZL@aloVI&U&%XW5;7Xs{V-jY$$@P;V;Sl#amuGq$6Hl*rcsNi)B0*t0M*_Quj>0^jotvH> z7UQV-q1|$rdp~E3#)^WSTb}B9w(gkmpq!&we7*C2jSWirDoScXXGA|)ee34unJ0DS zbdxjFj`@@2-4&cHoc8Jm`7kuZeC1-3Vc_2%tK!PSu!@nP;9`aDccpY`hlmXgg_Whw zOWzniTEzUCQ_0Qa1mAo0sSDgTY&g{5w|2o?E31z!!k&FTn-qLecZ9adl)cypItW4I zQHKiXKr-dI2N>C}iW)L;D7Y#xu<)}eGzuy)7#wn!zo6E_86~*!5QA*Pm4j){JQrpO zaM~11Vldz`Jji&iSL6^w!%T(-7Jiclj#K4$C7*J0a6Dk-QWR0R?XDvdutXsJt%eI1 zL&pI%rg^-EOcgE)1i%sQ0+H%xvJQYMJd^p>Uw_rwqdZCial31M}5I4mhyz z@Fb+WE4FB5aa3>~Wa1ERD1hGf0IrkvGF)TuW>^R>CWVA#WMm*qd>~Ws$hi=5gb-x0 zH)O&ce=clkX@M-+nKNh3(xppRuU@?gX*nQdYzR_ILDuU)mIG3n3sW|Q9*UWFAw$GD zOLP4VolRQf3XqDjeGsyB_=aUODegc!N)JC z$6qqEW1^@3q^VI;rp=rzK5MSqjCl(eES$S|$;@TTr>^&6@-Z7$imEpNxp zwB37B_U)fO=TQB@qv6L-%syRt>g@a@7jn;EcD{N||Hif3m+xMgV#`Oa3mpw5j&z^Uj2o4NRLQu51wyJ=Ahi&MCz#aN&`z ziv~%V8J&+;bxW;p}-qTS9eZsUVi@ne1~Q( zS+6ZCE-v<%EEMYU^uif2sYMd2JevfiXLT>TlA|&?T3JOsU{ArrL)wd#WR)s33>ci6 z7}O#fep|I1Y+`2!*l?no=|BVXqZfU#1&>%8MA}Zvxg|8sdBD%0wr7Gj%f}`G`JGw! zY8smu+1k4U${Y?dJ-@snxOl6>gTpC`GI1V$3NDVUS67wRmKr)1-4*AFyHFRH(E50@ zzK@E7j!H$rEqRG4rtZ^O+gVyuvyb;V94RSj3ie@`5Zlo$%3~3*tS`o+i-X||Gs6R= zk_X?Mewj6FNMOwPeL97eRnBF{1;>2h4ud9^SB}9`MZyIS9^w+2wDnNcX$RG*!77@c z_Hwj)wQ4|fA;!r;9?4wneGNyr*aT(iIdmE;K)R|p07_`1KKc z0SqksTS{9N2+usw$eyGqc&Hq?UcAU~g29|&Jvc`~=8+)vqKb-&vZ|K8zP`GaDZKe& zU}R}$XQ!y?s%w+0XIlW8vUV&3ua5Bw3k!>gh)79ELB6T6rl!UUv@~Y6YxFYk`rh?H zIfufFFJi9dg&$oqd-m+LYu7?f_M5WoDWtOnY3N+Od>Jx34POX@oOj`!tz&o3gk)LG z_n(~8z9y=Fx5&GwBTHA@`4G5Gl)un;b5uqY|Lr`(JGEWiC-b)0&e82I)JUif_wos7 z_f-#WZuafzck7!l*>=*D{%O;DRcFnZGk5lag^S8&F3DQ9JZa^sm^Ev|)^G6Gw0YwE zZR>XI+_-zsmVNuTAKH5)bnBrL`%mpTv-8}x3!5)(xU%-zsvFC1ExEJk-hu~nAI*9) z{n?ZklV44EGw;}e5AN@JzAXOa@~!&U(u1G=6f*1*+|j0>RsVr!R^Se`675emNm*a%FFt+3ec|U6?r%)Y)2j zdHDh^Pr;NN_Ad3tCnqhYu+3Yj@n4|T)YhHZ=q2O1kYgw)k0E^y;#Fqhlix<;Yp(dik6bfw=(l<7d&{tZIHrnU#C@rsg2JvE4yNI3_TR=$H zXGc2BkWkAC*vfhrCrcge?w;OW9Sf(n$<0ps_EVra~5YB6KpWP8g+Ejr7ltXS!? zdQFS&`UUHom#m+*aE-m*+%+9teFwXBCvKV7eeC3klUq)oS#$3EvWu6FYhPV?<;LV& zw_EStYku(1t7b>q#|cb7h#|8(Zdsq0Vf{P=nQ_n$}q{!Qinaekg*^I48h z&Of>oONfZm{g~j=p5;{`U^Ygf071Y$tzb5!$5DwbXPfLn2qv%uY4c z*}qcwu5?}wIA3QIC?_(@U`60e`*5M$9bX;>&hSiD%C-8q^3)3Bm2q3N1YVz88N;2G zYxzy}#^!+2*Fvf%=lX52!m;l4hxn4XCoMZNj&#fSB`p2KSiL16;%UNk+0?u(GXvAp zt*ZnijZ)TbxZI=XBT?AEz{<|(x5U9WdIk%RG-$2;ZuSO7wvY_9+a9jXvMvliJmR8$ zGRrzkPh?PN@|fUs+VD!pz7;J^Jg2y0)ek*nD;MQRix6jN_V~)tWT4=`!^5>zpv6ew zBL933CWYrS4;(0JdU0G{&^RSPN_X3eSJ}5FU@CeEo?-x++%$KTYU}Sr+_r+NO!;S}wdCeOPlI$EA5>+xCCV1S~ zj5#A@mX(d<}VDx`FX zNy3YnnXT!IW(OZb!+}ONBNngIysQi!^XBq%C^++*s$7_Fn0L#dW8uEJo-O)OdJ!1O)}fC1hk|K%+hILPSqb4_=5E z8yg!KSt8%Q45`o|<%qMhv$wZ*aBy&V1Zbb7gGUPdEV9zlit>t@s;Vk0)S?7(`x>Nj zk1V|wQ+X%0`e9=2J>(VjO-)UGeSH%rPMkAm4&7|)*2+TOjd!>Dh2Q^(cvaf&)+$21><%V&`E2WwD{qE>rvTuUg--R(V1D70|rpdZ#&GSi*ed-L| z@3GAIta^5yS>ihtiz^9%E$*UfsXMMD26yxX88p!~}g0g~WyfEo_Vd z8-6U)U~1!KXb|w^WpQ9+6^q}I@Zm8>gTl7n8+?xru!ph=K1>QQST6RP6=QxSti1Cm`j%7g8~DC#KSp;Ycn4( zvPqbHe`w%#!{AVt)f_O0m}WzS--itxwp3$av%cy#L!*4c1>IU9JzrH z@0??8;G<<+w*L-u&a(cJ==V@rk$Tv2e!%ivlkTX+n*%@p$_d^1U?%q)mWe0RzDUYg zRbLPLSoy2cLmt!-r;o!Q+zDSiDd@{`ghP7Rzs!++Lni@CEG z%vdya$)sidD|%LSu4$h#FKk`&=B^DJ1GX0I>fOG>Z_l)S`wvbyyyIxX$;tb79^ZI6 z{Nkqb^DfW4y71=W+e_~*zrXU~>c?xJu0K2H`Igt)ULJV6`{UmC^FJT@di~tb@5lc9 zfB$7A^9(-)o2Iiox12rJ%r|O3!{ju@Y@(ENis;7JmT86akMv%%;``&VX~BtRRpEIt zGd3xDvE4Gayo3=HNm$yquJnOHd1z6?LftD2FpfJ-}uVZOTQg$D~_O^$58f_f_9%0yND z848O!o;}>q#HJdM-oeWHhy8)DxlVuss}Mtilakt)}oN^}y)pddmT>%javxQA~ zEID|8Top(WG2r>2BB9SBaG+L5;AIPs#+>CSHP|U9qAH@0sKj`u z%$3pHF335-;(~)?C+if06Wr%46C0WQWeN@o+h=*Uu`&e&G%~TT;BaQ-ju1G=pfM+% ziPPPwkeN$r$pOQUJ8J64E|L&Pud6t$^+Sf#8+GjS~GHDJ{WPmh&&HFo{~!vFyg=j!S2%7SDMd zuJx+t{KU^DYrk!}?ayf=JumxgS!U=OG2dO4AugUR?m|9|1#X=^e%-yD{SzuDO)j1~ zEqBJu^x1Rb=gp5?xF~qZ(!k{_{8z13U%Pt4icL$mEZR1I$DCa=_e|S2`M`ujy+?YE zO%zzS;MD2GXU{FWaB=13D{HP@Uw`xZiN0KJyFj^mqrkbKi0+5F?K>6TO}f$jNWc4_0pI0_p2vp$CwcOO zH3hsqGgTbxf+h8qdN->tJ@STqa;oL*=W#-Fe)2!J`akzyh1eR-Df2HhyKa@0_1yB( zZ~ps9WzAOoS+*-5uX%QP*ZItVbxN4ann1f)&EHJm@Mdt;He@_GKU;?5VP}}i$=PMC z%Y=gFv=|B!_L1Hs?W3eWjKXj!Ec6v;Kj|YY~ma|2?Yub z>_RiSlqXJRILO4H;K9JonBc(Z-8i|#pz*pY#zn!D z4JF?LI(b=z9Qr@i9%KvQFsLXGdg$_<*>Bc#qmK)IPi9eP=(x|x($mnz&hGM@rGaT) zgCo=x<-hr3#eCJYT73=9c}s?G^4XJF<~ zSRmJPdPag{J%7fAMrO4j=R+JW>&y;yma49Ng51{jdw7sFBI#rlM`YR0d+NLb0gHS6 zY7CyuV6sr~Vv_0+bYkEtVtOvYZJ=<9LvPZ7g(8X%W^}SMvRqiiROqzu0Ml>QbSDmW zfep_&kBD}0%~Q16$gt=li^6?jg)=XCIJZf5WopVvyl`P=o5OZTiRzbL!~mK-L$i=(s`J#*m9Dl9Q9+ z3y^|i8<946LFa^edwZvXPXk@Ja3N&B#jahuCM|gasq-MmiXdlHN(Q8nYe%;K2ST+> zCQ9^sJYks<1nh zZhgqcO+j0>25jFkb@!@id)Mwiu;I|*%}0-IJ8^R7=`(xIpSpPI^4Y7`u3xyhYxkWU z_qIOR^l1H)HP2SQSoUi1n+5OYewg)X`j;8!&VQTyYr>z|KhFFy6nep#VARwk&}Nk3 zlPKH1M1rsRN82OK&I3BjF22y7y)9ejWDC!;!lNhj)jOy9%xrzSajHc1&K{A?(P#6` z4?mUJzB%Un|6=>gtg+@>VlS4vKUST)eM{WsYJY zIh+X!abVJr;&4u%CmM9=dqAf1^2tlwHvRH=9nqcyJ2W)+v&-D`CHeOlYuVZB0xC9L zbbql%!ZE3pOLVWDdglWL=0-+dJ{EySrs-)a96|;R4os|-LJVvoAN*PlwX-OPF=!~t z|EghDYRF_@NOUdN_@a8iQD07E!GW5Kx^A4v=P#R))*0b3K`+}U< zQdeDIWRdLQ;NfDmVK~akD)XR$iP_-BX(rAmI}S1N*f26O?u}Ufyq|l{4kk`UpI@gq zn4UauSfJsB%Z7Q6oDMYj&-ul&`GC!Y6~d}KA0BYYidgkRkgLXA&Z$6HC+u% z9PL~az}q80-Qkds5XfZ~xw*NJX{gxhhY2-z(3-iBlZ0?xS%;ui~E&3!ZL-MkZLc7ERW>FfUQKMwtl`Y`Rk)63W8JqdQrAxvID9$5-b zZG8&!iZTL}6uVbx2pu`$oowH?*5)0vr;m!=qzyjToNu;0)tUM^MyvUx&obMVKLuh} zc1~U{{C{?0!==wZCqFY@d~t$ba8&P0)8#i8v9EOM0f>I7lcCrixj@*A7 z75^(T%U=<8V&rv^aBb&r3E*dzEqKwwrkhjIAk1TPf`?l;=Z6ck?gxuxZk8nh{G99_ zFIf8Rwq0;!et&jx6C3-D9SeI@B^aD0f1YE&$Y5r5(20vT;LvW^5GAdaYT-f+E%k*Ofz5If7Cj2=b-hl38=*z0Z`;$&z@;NfPh zkbc~wIET}@m2tL|vqOjfi(5{dSx$nvMnWC0j&L$>;drvruRwue>Fx~&7#Ia?1RDB2 z3tezv;pI_yXQPs_p>d-BiU$W-EdC%LT|iRnpSZ@~ZYKDk^H~ zTJX{Vtq}k@roX7Tvbwt3*1yL!dKu)HR?MOSa+~FnB}*V@Ng%fda5dYJr?`;oc>HX( z{|CZXmuv*J09vn9LCS@-QPEOULswlg+5TX|56??|b5~ueJX;rcYrT05-?Yt!Uuw3V z@q7J0Fd{8UOESKp!`aod$4$bgV`7-wq^ZfE>1nZ9bAxBhTd2Qa(cC3VXD(kcb=B&L zYu7bw*jTlBOUbtF1v_`;?Ae>X|3K2A!wE-^%|5wx&gmUz&+Wc&ao^=D2d`Z}a`V>l zJ9ke#n127!{3lNXPds>a_sy+$*FRkObn(l%Z>N8p{B`Wl;eQ7hz6q`9exTdDMc`P_ zi>`-S?JE?fP15K}(&(ONFw3g_U8kF`d~o3#i>#F66Q%`hGV1hOsxp0j#I)wlj%7MC zALabJc(Uh-*#CKz4R)U;`&L*k4rw_TsKxs-aQVxEb(3%Py|P~Yal^UGQT?xN*Z(~5 zPWX2J8~e?S7x_Y>C%kps&iPPp%Iyj7oOcU;^t%#0@xAMQNyhvZsi_7c%W?(6jo$?!dn^NF1g(~sQgxLUf@raRl8TmpWg>M0s^%1ux|Cw zkB@q{k=A=7J$j*X1mEfPn&c{>VxOWZ>o8rb!$HXh{G zReR9VeoLe2Acx?VA4iz<16DraW?j?J$I038f@Nyhz6S@H7^fXR#Ku|E@nlw}l7Q39 zr%MzV8M3S%9^&H8`HX=wHmz4HmQ2ffwQ|L>Rj*bBExEwBT;E5lv0ip#0Rv0Gh6M*0`Aq~E z*kuhDFwD`nncy%}-6x{2G0I7iVWPi=LaMnsM}d+^a~(q~(~h#oOia8s2N+n+hIy*i zGiKaQ;ALmDDQM#4<#EX7Vpm~kWM&m{&@tt(*sykgS=)t1P7a6Fz1)mHezdTJJ3TzG z^MQ!LW8p_`4-YatEn_~o!EcE{!$JKJ>x~wA8UYQ=`}|%%Vq_>!Im9MY@sousf0{6) zF##1x``mtlj4jnlU+2?Tk z_HD?*7|4LZr%#{YCq?5gZ3c-fXvdU`wXRNEdq;<^m5W;+=x~Y2Q>IRv>SEwHeWIg5 z@0^8;7EiI7y~NGYdc~TxQ+3yEShsoerZsw7cCJ~rX4S6!i)JogvFchQY|52rkM^tAuUv!^d!K79S=?z{IlKYqIUOF1EW%s)g?Ok`UbF&+PWqyfi+v zCj52k)a_qm!^`3?x0;%V$)1}2_}rqYAz?AM%d-Ao-`1lou6B1<{@$mp<>Bw*a_gUe zjg`I;^{}nfUyZLcA}YC~JCx7uw?*XB&WZZ5Y};-orFqXSZ9Vs6=cSBEOD`{*S2F8y z*0#y1$Cg>%PRpIMz4Y0$oww8T7wm6kQ@6U4QMlyzRJHV7cQT7toL}m;-0E&t>6+_X z)1L3Tn_a%){?Rsd>w9lrd#sIJ`oE$s?|1RjyT{sp-^;62ejWK#{AZoL=KsYED{yYm0?rxc2DM5XOq%&Do2AjRIT2+!xr=N8> z5ox^otAxsgm7I|(6YTyZxcnD%J#+Q(Z1t1socg85b;Inwrq2xonD1 z#sx+Od!EK;{0uw^2e?{fH#sreNiZ@9l$ljNXSO+#>A}g+l5j*|;)9iqymhk{9AGPV zb6O!N_dwt|7smyI70QMZhE0Nk7Kh82AxibvQCZMwvI+SW{PVr4MlW?*nN ziMrmU_v8XIgG|kWMz)@+*^z=qJrCaTS~LjcW;t^t>Q8p^nEhzqpKq_=R)p@&YK%PDa)PT@Z@yoQJ&6|w;t(CKX-K7pBHDlIscwuX3bI9 z%EquDI-J+qUg-#b%>M(-3>HUrU1ORVc4$kC3CDu&tu%z(eWa{q580P)Vq#)rW230)0x1M-Y@PLObDW()+eUr;f+3TT zv9YmU!9|f#2}wywxw*MHxy2qYw!H>JX~_P+!P(JLM;lZW>R32B!;8Y{P5O2-CfMnN zi^9nkvzOReE?K>1hR)jcYd3A~+qha6R1~gWxoiI-$61T*^cEaAF|E0^^K6@L&&f-x z+b&<*a`pPHE84g3ExLLC(bR{JpG|oB{Q1jQkKeq#|Ng`6PoJ-U{dW1s&y&CZ9QgO| zC6|Uk^!BD(97;J$3lz=UuSq$vlou!&b&44#p2^5mcK4FA_u|qNiak1MlgA>NMM9~k zC+WK$`(rUV`D~B5?z1^Ngp>T+?Zw$#Ew&^CHoE^;eY)KwKDgTdxofNW*4WU}@auD9 zeooLnyf#j=Ep_VEn8@;k<5@ndw<+J=rtts%Az97xb)LKDoa?$Qy;7Y9yJz3YoxVSjZMx;0w8GiP3)QagoReNW|9qpHxYgW@(#6*&riJgC zn_0g6{=&BDR`aqdS3lpl?D{S1yx*QXPp&h!mVaBl>$~#N_p|O_tPA?zE3_cu@6Yi2 zaqQnh7c_D+U3<{5&|yY+Q%hjRjb<^ewuf!pUOU9vS*tXn+jv21eUa8QAzxOW9DQ1+ z$S2=%M?;6<`-c~LwB8ynKJmZ$+=Px<#y(Cr<0c2rDmcWYx#U5Lo}r5Y6BDb)0S5+E zhQx%)kaKpHaXPX}G8|wQDEh>}z{tMh!n1ib-*ztJ;(lYm!eGmzb!369NdQxvF@wS( zfi$O}3|7+{rOixY0#cq!r0yhyvl=_R;^1+%`PHB-%E2{VK*{D;2dndes#gM>e-fti z@r%6TShI=Gu$i^}94iYC|B7ELR$5ymIBzKas=&ms%1Y@7zt{l*%{bc%hK4N+3<@pF zcHgXIWEa+9aNNG@n3@ZZVvYkNr$$XeZneXog!KZK<90vBUKE2h;mWprfHHDZxwu@>dCb<|B(+s#!@=;*7ra;KU^HlC4@Y7ut( z$IZg)QF6$ogKY)NPv(pxtj$8|O4EKUcra;V)mO0}1`LOebUHfNFnkE~I?*Efii5H7 z!D(3re+HpMA;yM7tekvud#3DMaioJs(qK=6Amh{R!j=UZS2s4hoN`sK@RkQ+WA>CiWAS3u_e)T~y>g$ZFr=Oaq5 z#(+1{K$0J1aR74igDl?1ljp}L>x$LVRzD+u~cF#?zyalW$QrXPR8O$PE8I&!OEsO<3`Bg0# zJu4VYO}ZHjH5gbUoHPW@&DlJ)rg^nmh$~r`OYpU>S}W1zBv9A`I%MBsAG;H?r;|~- z^S%QXs{ASIRM^8Uwr*u_(27@7RFL6eFiJJ$=aswl><(AmI)*p~DTP~Jk_-Yud>ou_ zj(E#Ui--vO%!yENx;jZfH$tQ2Z?JfnRR0K49zYsP zvuDqSlmweLZQ8wiH@GAKO);b8eqvT@5Ns5&f$n#`5o9Z-v8d=|&LR%RsSS@cZ5Wm> zE93rAAi@yFeZfHT$n7r^mNIOWVKm%!Rjy{s>Wfd6qD&(N_;nQ$lQngjV;Ow4B@|Uu z6ea4sb<|k3bQrXf=P*d=ru!)MPnf9etr6U4l9SUu%8d(F`mkn}x%;*^VyAlIBrR|OY3@s#^q-+9wTouAKzTlYPi6SL>D z6DluV)N-BQf7F!`6EQB+zdwtYZPOMG@pA{3@-uhNF;2bE)XF6+z+kXY_h=J~h)$P` zrJ!4*82f4%q66f&= zpf!AuXs@oW_DR|9pRq3}=NKpxf)9&>tiOk3LgYAyT$=-#q=dvXp8Q5Il93g#{XYP@ zdmFMjI>&1M1<>Z`D1Sk>lc(N_dAA<$yzo;(iD6Q?FKdGpH-i>yK@VT?wtbyZEkOc| z#hIFQEDF_~9vVV|nuE*PdUEI?Kv83(F&Vg7itPg9jew4=3aQ}tne}?-i~uQ5~5uEEB&GGVKFmRg8 z$tE?$@lG%kuOmYdL(a_=9V`u@++qd{mXn@r<`qtA;yCED*xOd!=Y>n-p_a2OvqPI8 z8x+BPr&A2(jCv?Jd8kJ0s{>OCW>~pOsDg5`86ql+Plqx&%w=Vm%4FfjUQ~Y8Mb}Bw zqhXHkUQUH=aUGLff)tZe)ihb+8LF$G5t%xXL0U7jGZq?=o=psDs?%pggCo*UjxTF@ zE}N&qVy}ssLQ1t4PUB-d53U@n$8KWwLFjBsR6vXOUCdS6b$gMc!dYz2 z+{YlLp5ErI#LLektae>z&nvxcj#6 z5}NG9TfW;#Nr2ylNBta!6SL!`r*SIimW2y z&%Zu(Ru*DVbWu~`k<3$6HhOeQiXo99KzfA>3xf~0n1REN35xo>LPk|TCU`G6s;KJG zVe;_&}#(Y3AmhE)-C^*Kh-?%9z%pRe>YZo}WZr()1 z*7{O)guSn>!2Gi!B?w6Np!fDZ?o$zD9&OP;RbkkGde2*cx#)VeXzS z66(Seop>uIgY(sC4kwmCSH(Q%(`VJCd9q#9q&VUZKICYZyX~SZ%%FHjg-2qGyK;;LPbG$_+}u12->1zuVX$yPJHOC9Lrup;3ps^V9td(GRanay>KGOx#%j61r|gJ> zuji5jwmhUF#e>2Up0+AwGV=fx%Ib^Zg>D5(1)XQc_Yf zGczF*R`88yj$v~{;+kC|mw3U3YlCx-$CZID(+1zo1zt5?_b9pHF=WsdazYm*(wBhG z`rEK!1M;2`bjyl=va)oa#HU%YPPrp?V8wrtN4oa@`t*5=XlZ>LukI%U3q@hlGm=^A=kqM;e|^%NB7AYt!zLxsl_i;;%Y|n< z#cGzW@?L$YFR6EXX~xxc<_AAr(h`fmxjg;ivZ=0RZ|%0{{NI1*>=m)R*zM)lpZV_o zo^yXw{ZTeH>mAt-*S2p|+qSDBD|to#T(>wY$;_vVrnjd3+c`7+`JDN=ZSyRp(q2wm z9=gnK=d6_16V}@vyJsPt{I+Ym>a)5XvlHL9?B`{Zw~$HrSaiO+|;)<)!|2;YP zclWQ**Q*zuzs%QfyUK@oxbI;?NSAsXU0{9o%`!t z|AjIguJ5`M&RNHzc4%JhL>9s38csQ;c@k)^0&3W$v66UG1hC^KaLGFi{6(t-PSh!gdm;|%K z92nUc{y4a-vS$czV9JzoY~*)mU~pOMc7=;NMJPwAM0+y96cdQO_^r@|Wv+0c4 z>o=P(xM{zwP*n(MT-z#8?Z~O?^ZM=f2W{HxHa7(%9Ny4$rhtXR-6TM7ZK@O_)9&Vw zf|kAS%cC_;m|zOS*1YtPIJkH0|)Jvcr6oTuLv-@-^5e!PC?{?wc3Gv{-961 zEddW0XHC4GyW%KGZ+>bknRs#;cB+6ItwgEWmpOw1juY&;Ad%izOp;o%XkzPTO&g@GX{v2jV^ z(M17KHIXqTkfAq7Ra#Y56%yC%o3;~j=_RC2O(;JF8SH6pZtm!SU8{>U_zM|*Yo2(n zf8N8{i%!p9ei1(Wvt-T9wOgNTLAq1-&Ye4u@)tA&47>M|TIC~s%whisIx*f^-OSqB zOx?M;x7obCqtl|VPt8)4*Q7&js;fO4qau^GK8GlS!aN28ZFUA1R|X+l_Km$R{D!V# zj2jv3TzL#x4VqnKrCkj-Y;tsEUc+$Qmea|F!D-Vi22EG4jdp@k0@|*O_M7%Q+CNZX zu+d}SnAfDot*pfI(tzQ7@2#$a0*9uKcJ^CLi!>fRoV|eKSl5pm3l<8tD2a=5Xie}7 z;E!$AOVioJbZD)TONa)?u?@PN`LM|ph6KhJ5hvLjIK<=( zG6bfqP*#%HNZD~<(NPv2Yi&kN#l>xXlBx|RT#zL!;IRi#drgQz3^o_R#Um&wB`+(l z3Q2_;ng)7?){q@xs=BU_(Irz*TJ$t_u6A$$UGW?k7!(ekh;Z{s4vox*q{YaXlK6y_ z)YQ~$@Fks9RaKCIr{J8!kXt$7!%xZe4?)#_+hhF6amtdH(^k9!&qZ8Do`^Vj_$=gd zXXLqv=dZp|ejFBk5+B?aNL#?&QH)#3%%!EpfsN6TNzaH~jKQ|2iNRQpgTc+6LBx(@ zL5rK9iMs^j0tS0`J`+~sW;Z!mca!-Go!pscGip;ijG~0SvD@>}t6>&Kjt4oM30L^W&Vj;Zf{jzC+I#f3Psz z-XYJRmeBFw!9kzdGkY8^EKoemEg`P3yblQqrD zu?=!*4d0;E)uUR??8+sb#mvcy(njTG)MapFXklPrFgG`cZ-UBif0Ebnc_!;vU~3qa^|?L4t&rs*`#v*CdLk# zhZZVwrDfSZwzYn|{6d*!&SLBwHVhoXVNG7voV>gO9Im2`(^Q4{1%!lnCyE&_%r@0o zqO^34zAzsr7vF--YV(&(-My##z~LiDj~zd8^3>@wXV0C#aPiXRD_5^wzj5=F2oEze zx5x<*HbEspwui^KpDGLT9A{Shc#KKy>z8lGzpMN{@>l7911ryt>;y+f4&htgpwrOW z1*G+QJT@ln6Jkl1JklO`|7eo5W1WgwKTBisYY*-n)@FUNEle*XS|MYS;5o{p3=i%9%dohlVe$J4HEqEx zQ>KCx-5M5!iuUj-em-5r{6bA#mTZQOX_=xrs%)SchQb95(z>P7m%E7ya`SS@>M{oP zGia(WTd_k|gh2&7-po_BbGZ<6kir%}Cw{4;JA^qn7c9^{FR;{!yY0eq5kWp)7cSkW z>`p8}_oj=AsMa_?eXc9Zb>vNZl?;2T?#-KgIZTcE_vh-UD==s{wzzV!O0AK+a^2;$ zgyOt=3=!rN9|;IEM5uZ!U^sBBuVYif9fpOf9RlZ67P%}A>gW=&h_sku`Pt{}|9MC2 zn2xHJyjZ!&O;^$P)kMuzOZ_s#dRCQaU0oKwG0irkboKdlal(zf(X3iGRnpGOd9L2Z zaeJHdy+gT*;(2$sm0x{kyL)=h{SEbd+3s0cWItTpzEZ7k*Nx2NW&M-g%&aOiQWs3G zPMfz=GWB`ieDyXn3#<6dvgLc1wr#U|abxGoxWj6ftip2_ZAwo*x%T(B;Cq{EEtTyXI}=nAN@LpvSD9WfwbU^{#q&VpiWe!*;R$ zZH%3>`#lz{5S>`a`BQq*M#GoWCLOl)l%8_jbLNt%yAwUdr=CvCOp%LOw&LmZm|n>= ze@CP&^M|2;L50DXp&4FeEk!D(kP9eC=>$J2ljTtWhx_WiJ9aKJoEq1mD{?t;!3wi3 zVT)zcS1G<`$geqDGVPAVjhDtRE2ZokjLe@%YI{5giYT-*_k0?XUhB3sYT4rKKTX?t zi_Xh%L`h`bGGCA(EYR%46t~BzUcbVTos&DWwoY1?kC{b}frZDgP+OOkot=xtf|tjo zQ;eIFi<_IhpHC&ZqjRo|NB5HX3*>k>SlKw{t={6!vovPS-T>c2hmDRMw?26)^vu~k z7Zj(Qx^n#5;TwBzZMn1HUgv|lN8wNWpSiuTeP!}S>z&ev%jeI2I&taqkMF-u|M~mx z90Qw(gl__*#Q`o^gc#Ep1R3OD!9-*jF)%Q&G;BC|EMu;P_RhRxK9^X0zc(s5%u;VP zX^5(l{CvzP`u-0uZ!-zK@7#RJb^`BbuzX@NI+K*dqq3m6xuIc(l{@d+GYtV1PC^G0 zSR`~xL{*69j!v$L?WSLs&P7xc9E%$g1Ehc8^T zc!?n5cynRK6b1nXF)}<+vcb@D_TC+uyR-HoJkbpD#0>7^+POCk?b7$m>)Be(S$pJx zVfY@_lo_tUQ!DuRn3$ZjDkp9*Vs;ATjAUsROxWPj#lhyBv>>TKpUcH*p}`7M2U#9H zCEjXvaj*xuO``tZSVE zSvUik7Db+ZaSERwn0+{^{04jB03m0!{m4gaq}KGP1Pw zSyCA4^fcIY^cZxqCNs$B=Otf&-c?~U!=&;?lM_l zNIFSRm}l~?y}~n`_-bbf3b^pjIr!g{Hv;1_t~3LJOZ68ycE8;=TxMirBcQiM2vdP|R{s zq37g2FT19cLxn1W6V+N5`0Tuta(be^unDH65*b*CSbG6MXAv4DQkn4Nk3dw z@;f9ic$ep#XGgs+t-H6c=>NPY);IJY?r7vcZ+ga}FnLFlpmSKwcf-pkx@EKHf#y4w6MvJaj zg2ACZJBxW#qAV^N9BKhwt2bL>q2sPeuWlVqmJdwo{PFp^;SBeByTd{s-fW&6?_~S$ z$2)K6G!rliFuxj zLZS1?(`r)Oc{?T964eeIVC#~->8vEgpx~ma%q_mvQ%Rshtv8+Fyssj|3@$EqhVQE` z99CGE(9X$mhttF{spYVcsKy>?=-yCpBz<5gVGu@{$d#0mhjfJ1v@Ib~Wn%6CiYliH z%yl)8cmiEOk#{nz@O&(I`T}_*8*_C9jiQR}oWqm?50NB;qbjFFGA9IxFPRj=F@r_s zydu*Ajlc%}c1DXvd8Ou^6-f;N6B;B9oKziJ_&=(2E^tUqP}N{gWT;kRS5s$DOXy>e z(%{He<`dwR(O~p%WKdO^;>4gR%fKG5AccHzlRd{s`$ zpmIdxB!?4=zq3-F^U2d1GQ8P4q&Z48_V4HDl)veuBFvyvt;#F8#Z@I{2SX~uc`s## z={!8VpTBvkoA^llU~Fk(eK%!>#=#FqI=RHUSdcdAe_$wO5Mtm3cMDnBIAmmGAZMCG z2Ff6F5|G|VMn*n&gBzB9vqV z*n-QZPh}O2P(-vW)-aSZEM{P0gboXWHz>;piz~~@t12og>gedGX|R3WQfqt&cVn!M#n1C&@R)^vCPP+!r9r`&BGsZcS>YrWNchYa&k&aYG!tJc3yrF z_@si4dk@Mv76MMd;6B`qm`d;sD&RB8A(JyLEiG+r9lgE1Q>ILr zHEY(gWy>HZ9PHV%XX2uVke(dmgoDeMFGF?~K^nY|pMHEjbcP7o|2KFdE|TnYm6vq# z)Ya>mI&J!lnX_ik>2P9abY(KP3$E|A7_{ zL2FML#%&Cao&u^Y%6b>|ZQT!EyMCj?O+?Pqdh2!iY=8pJ5+dB5)~AU?^@0FxXJqSLSsOi zihr}3W&@KfPnPHAP0U3LXDnDAIQh&XsFouG|nTdOAF-u~;n`u}u(eu_H3*nd^s-m~A{`5x-`FS7gF{p~&fnf3Mx z|Np)H!=7Nq#8=_l$i~*3(6nFY#DeT8HW_g(Ld)C}Ti?WXJgk<=(}-`EyT+c>@uSz{ zQJvbn7x7(MY$uYsS@v-}ZZtZ#BB9sJtRuNk;8VwQe`+=Bzn#F)C(CP+XFB!EUAY>~&MW zoSMDi^k1$wN=F_|TT^^Y&U?vbE2r0|H*E=&j@^7oEJ-)#c2Ilnw&s%4vvyps<<1j& z(lu>e*|VnI>r&sBUC-P0Q7cTp;H1s#UK0J#@_d`ohDi44hz&Xat!5X5 z@u%0D$J|0(S*ZFipWqQu1lN!s{d^)AG{mrM-2FG^ zb3xE=QHVB6ADp~-8XxWFf8 zZlp}l{dO}szxUg%ob7MF-7cuE{d&20{v6Z0x1#25zgGQNcg`t4exsmMZo-qcoU)U* zZL!jR{O3@p%Wa*XPo{+D{d_tjecjJzbIRZSe7>Mv@7IeZ)AN44T(NxJuZ`9n0nSOS zcTA0hBn=dtIGAq)a0om(^R$qc{R0z=cheJv18fgk_BaMNGkj=Pu;y5BnEzz6O>>AR zN8nA*M}Hc6PI$y@IGD|6ArsK7c<=YSkGxC<1qYa_L?`V#p(LZ=CuGI(!A9|ObB_yy zg~E|fPrlnu5LIM|6LeuWb8z@t*uy9#!6L|3VE0c{AjQ$3LDQ;W&!#gEn58%lu-ggj z?^k@tZoGprnr&gT%#I7K8@hcJAfpI^pp8_Y87dh>7}&r)8eU#rSy_2~eFH-yGh-8L zdwY9JYj-2NEH}>xAKw7qfcW_2nzZ!H!os4;%F2q?y*X`^Z4=OH*en1VTUK1mxBv)3uBE#1D^-O4hFLezG_U06?P2# zLEJMMIA*OVDO}LNB=f}Zq-M)eu>%Y)>#yr}mWw9!3}1HhWW1l#~X9v9AOLm3o?&sc5U`xbNLh3IkNB^n&5tJdYbj(Vg;OL=q>1(;5uot#nfpgGiDmio})K!zRto$T1%Fy zE?;5RzuI`!x(%y0t=O`3+oB!wcj<|WiSBdTqbsB&e9-c+wy2;OquB8&Yg^8UF`U0R z{c@wIz_sfaPOQIOargd%n~!^+F}!{8Xu*?$H}BrR>iY8a#s}?FT0egs+WTR8QyfEq ziW<+9WMm)>88b68YinyKCnrx&&#DSnw+3OZ(o1E zkZeoG)M?WLLHFLz^_Vqp;i8TOizb)H$ZQr?j--f;W z4=q1<_}ILo$4^Z^dHP)2+4GlbE?&M?eD(URoSV1rrQW^&DEi^!XJJpDznUrV`d!M) z_n%xoet!S;+v^`cpa1^z_}{-;ZjA!zgH6}@l;$iec(}QZZ@OboMUK+ZL^1t;r&bh- zAMe|9tMSbD!X;}asWo=`ROYLC*XqT8>(&%jI6I3u|B=ax;`BrR=h;az@%}2%2<&w0 z5A#_iqI`Lo^n9nU8l_nttFHwlsfLzj>#U9AZsdKPt`nIRdw!A8YO~N=+ZNwA)T&&* zZuYLSoqNxo=G2c5ul{eut+Qj&{X@xo%6y9}HcmU%moC^BQ)ZO9WqPFJIh$1D^s@P# zk$k@8CNFm{^M4&Gd&)Rld0qTvZ(V7bx3@a;AE&LU{{HyhK2>&eo|=lOH#SY&A9ilm z&aCIl7fzlgH|tmW>p2_Kuhq@8PJKV|ptack88%6uTQ72l{hw|d|Go0z?Wy+D?P7lC zeq4REewuyc|3t@LO&DZ&;AL21U!QZ zkD(oV7MA&RYD60Pebh^p1YHa|X9mp>@DTFe!0F0fsj{(sj_-=XmU$I*kJ9JYA7aZ` z;HvOa#kb9@^Th&p9VMx;Q%AQg~0(<_XYz72K5J-j*LGSF)%Txh%9Vm z;C|5koQX$*@c_F^fx-bcc?q3#R(26ZCWe=b3Y-qevs}=ht*)?vfn8E0fl)}d{)`$M zlT1JZqr!qWhV%GE1Pr*OISyewxU3S12d1npF&n%4FLyc-XlDp*hLcr4hc$UJlJ+yaHZC^^e#YwGP*yjpYooz?Tz(i0+g3aT!t+sUYOV;v)hWR8H-yDi3iHP7T* z9GG4tJM}rSNiBF#&AH++r{xj(js=ZR)CKG{I2Ah_m^gWE_Z>RBUf!Pti@-c`oH2nYnpMimaiNB?P<>|Nli|1^))xG)N I3I+yi04T4YO#lD@ literal 0 HcmV?d00001 diff --git a/examples/slider/src/main.rs b/examples/slider/src/main.rs new file mode 100644 index 00000000..44770382 --- /dev/null +++ b/examples/slider/src/main.rs @@ -0,0 +1,69 @@ +use iced::widget::{column, container, slider, text}; +use iced::{Element, Length, Sandbox, Settings}; + +pub fn main() -> iced::Result { + Slider::run(Settings::default()) +} + +#[derive(Debug, Clone)] +pub enum Message { + SliderChanged(u8), +} + +pub struct Slider { + slider_value: u8, +} + +impl Sandbox for Slider { + type Message = Message; + + fn new() -> Slider { + Slider { slider_value: 50 } + } + + fn title(&self) -> String { + String::from("Slider - Iced") + } + + fn update(&mut self, message: Message) { + match message { + Message::SliderChanged(value) => { + self.slider_value = value; + } + } + } + + fn view(&self) -> Element { + use slider::Orientation::{Horizontal, Vertical}; + + let value = self.slider_value; + + let h_slider = container( + slider(0..=100, value, Message::SliderChanged) + .orientation(Horizontal), + ) + .width(Length::Units(250)); + + let v_slider = container( + slider(0..=100, value, Message::SliderChanged) + .orientation(Vertical), + ) + .height(Length::Units(200)); + + let text = text(format!("{value}")); + + container( + column![ + container(v_slider).width(Length::Fill).center_x(), + container(h_slider).width(Length::Fill).center_x(), + container(text).width(Length::Fill).center_x(), + ] + .spacing(25), + ) + .height(Length::Fill) + .width(Length::Fill) + .center_x() + .center_y() + .into() + } +} diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index 585d9c35..33d87014 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -16,10 +16,9 @@ use std::ops::RangeInclusive; pub use iced_style::slider::{Appearance, Handle, HandleShape, StyleSheet}; -/// An horizontal bar and a handle that selects a single value from a range of -/// values. +/// A bar and a handle that selects a single value from a range of values. /// -/// A [`Slider`] will try to fill the horizontal space of its container. +/// A [`Slider`] will try to fill the space of its container, based on its orientation. /// /// The [`Slider`] range of numeric values is generic and its step size defaults /// to 1 unit. @@ -53,8 +52,9 @@ where value: T, on_change: Box Message + 'a>, on_release: Option, - width: Length, - height: u16, + width: Option, + height: Option, + orientation: Orientation, style: ::Style, } @@ -65,9 +65,6 @@ where Renderer: crate::Renderer, Renderer::Theme: StyleSheet, { - /// The default height of a [`Slider`]. - pub const DEFAULT_HEIGHT: u16 = 22; - /// Creates a new [`Slider`]. /// /// It expects: @@ -98,8 +95,9 @@ where step: T::from(1), on_change: Box::new(on_change), on_release: None, - width: Length::Fill, - height: Self::DEFAULT_HEIGHT, + width: None, + height: None, + orientation: Default::default(), style: Default::default(), } } @@ -117,13 +115,13 @@ where /// Sets the width of the [`Slider`]. pub fn width(mut self, width: Length) -> Self { - self.width = width; + self.width = Some(width); self } /// Sets the height of the [`Slider`]. - pub fn height(mut self, height: u16) -> Self { - self.height = height; + pub fn height(mut self, height: Length) -> Self { + self.height = Some(height); self } @@ -141,6 +139,12 @@ where self.step = step; self } + + /// Sets the orientation of the [`Slider`]. + pub fn orientation(mut self, orientation: Orientation) -> Self { + self.orientation = orientation; + self + } } impl<'a, T, Message, Renderer> Widget @@ -160,11 +164,17 @@ where } fn width(&self) -> Length { - self.width + match self.orientation { + Orientation::Horizontal => self.width.unwrap_or(Length::Fill), + Orientation::Vertical => Length::Shrink, + } } fn height(&self) -> Length { - Length::Shrink + match self.orientation { + Orientation::Horizontal => Length::Shrink, + Orientation::Vertical => self.height.unwrap_or(Length::Fill), + } } fn layout( @@ -172,9 +182,14 @@ where _renderer: &Renderer, limits: &layout::Limits, ) -> layout::Node { - let limits = - limits.width(self.width).height(Length::Units(self.height)); + let width = self + .width + .unwrap_or_else(|| self.orientation.default_width()); + let height = self + .height + .unwrap_or_else(|| self.orientation.default_height()); + let limits = limits.width(width).height(height); let size = limits.resolve(Size::ZERO); layout::Node::new(size) @@ -201,6 +216,7 @@ where self.step, self.on_change.as_ref(), &self.on_release, + self.orientation, ) } @@ -223,6 +239,7 @@ where &self.range, theme, self.style, + self.orientation, ) } @@ -270,6 +287,7 @@ pub fn update( step: T, on_change: &dyn Fn(T) -> Message, on_release: &Option, + orientation: Orientation, ) -> event::Status where T: Copy + Into + num_traits::FromPrimitive, @@ -279,17 +297,40 @@ where let mut change = || { let bounds = layout.bounds(); - let new_value = if cursor_position.x <= bounds.x { + + let cursor_below_bounds = match orientation { + Orientation::Horizontal => cursor_position.x <= bounds.x, + Orientation::Vertical => { + cursor_position.y >= bounds.y + bounds.height + } + }; + + let cursor_above_bounds = match orientation { + Orientation::Horizontal => { + cursor_position.x >= bounds.x + bounds.width + } + Orientation::Vertical => cursor_position.y <= bounds.y, + }; + + let new_value = if cursor_below_bounds { *range.start() - } else if cursor_position.x >= bounds.x + bounds.width { + } else if cursor_above_bounds { *range.end() } else { let step = step.into(); let start = (*range.start()).into(); let end = (*range.end()).into(); - let percent = f64::from(cursor_position.x - bounds.x) - / f64::from(bounds.width); + let percent = match orientation { + Orientation::Horizontal => { + f64::from(cursor_position.x - bounds.x) + / f64::from(bounds.width) + } + Orientation::Vertical => { + 1.00 - (f64::from(cursor_position.y - bounds.y) + / f64::from(bounds.height)) + } + }; let steps = (percent * (end - start) / step).round(); let value = steps * step + start; @@ -354,6 +395,7 @@ pub fn draw( range: &RangeInclusive, style_sheet: &dyn StyleSheet