From 6e570e2863fccb836dd29ec70340ddddfc758451 Mon Sep 17 00:00:00 2001
From: Yudong Jin
-
+
动画图解、一键运行的数据结构与算法教程
-
-
+
+
@@ -35,8 +33,20 @@
+
-
+
+ 简体中文 + | + + 繁體中文 + + | + + English +
## 关于本书 diff --git a/codes/ruby/chapter_computational_complexity/time_complexity.rb b/codes/ruby/chapter_computational_complexity/time_complexity.rb index 49bd8dc86..4af0759fc 100644 --- a/codes/ruby/chapter_computational_complexity/time_complexity.rb +++ b/codes/ruby/chapter_computational_complexity/time_complexity.rb @@ -106,7 +106,7 @@ def log_recur(n) log_recur(n / 2) + 1 end -### 线性对数阶 +### 线性对数阶 ### def linear_log_recur(n) return 1 unless n > 1 diff --git a/codes/ruby/chapter_computational_complexity/worst_best_time_complexity.rb b/codes/ruby/chapter_computational_complexity/worst_best_time_complexity.rb index 4610c4012..4c0cd4776 100644 --- a/codes/ruby/chapter_computational_complexity/worst_best_time_complexity.rb +++ b/codes/ruby/chapter_computational_complexity/worst_best_time_complexity.rb @@ -5,7 +5,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com) =end ### 生成一个数组,元素为: 1, 2, ..., n ,顺序被打乱 ### -def random_number(n) +def random_numbers(n) # 生成数组 nums =: 1, 2, 3, ..., n nums = Array.new(n) { |i| i + 1 } # 随机打乱数组元素 @@ -27,7 +27,7 @@ end for i in 0...10 n = 100 - nums = random_number(n) + nums = random_numbers(n) index = find_one(nums) puts "\n数组 [ 1, 2, ..., n ] 被打乱后 = #{nums}" puts "数字 1 的索引为 #{index}" diff --git a/docs/assets/covers/chapter_appendix.jpg b/docs/assets/covers/chapter_appendix.jpg index f455b97caaab4835c6ae4d98c4471547721263b7..f88d5ccc7df6a5698a859d24a994ca143ec64314 100644 GIT binary patch delta 94753 zcmZ^KWmFX27wymu(lvCa)Br;xIl$1}(ltYah&mwM-QC^HP=ZMJ4`~=W1p!4VLGk%t zZ@rK2%enW%S?AMT`|f?tJ`3@9IZ1e_Vi>6zvlzfMJp_xWgrt}>7%U|vCCDl!A}0P^ zMDn>9NJvav1|%gTD$#cS5`$G*R76x7B%!MILRw8!R83781Xfp(5*3%06j2tH7E#WC zVFLeOlFI)#sSeYTQ`$jFR7zY5EadX9rjUe)h=h=|h^T{*q@R0 zVMX?6O(#6P4hE&~o_sZ(p1w|xWT`pe{Bm|$n39t-eG@!MtN76N{RZ6No|3lwm{{Gq zE~8VNpV%rl;s=+K{E$OnSJg(TUObbz@+D}~2EAp5F8nXfbC07}du}zj5iujt2b5(^ z8XYeSB(nC9p4Mmh9yI#uFW`g|jjRxg6^_RY|RCmx^sQg*9HQHbm z%3LK8Rr*G(acZ^+DWtObGXeQwc&JeWMSK1&CGEuME?e6Aj^1vdRrE$dEW~Q?zJ*8N zc2&CKvASbXiTcK;3To=Xh NqiNUMs!`+{x3SIY&XM62?&H_Yt#CADqVX$bo%S`l zuHGOge-edyOlWXpSf%l<3YqeyAo|o%eeu?_xFcm+CG4T#H;>aNR051 o2sS{nl?Q;hpML$&h<&k=W2yP47E{a78nM=`UfMI|%vJ(V_J5E72Tl z0Yzo;&xZu*nH2S8-cFHM;$qrzbNWP!yky-d=`*>=XP-vZnKEqiXFJNIe64Zstas%& z+6ADx0T&{bMax?C0ug!Bs~i~~JsoDfU>I7*7y~U%G}ll`CushD22w+i)gwhSK%`Ak zPkjTm%uMvhDzw}UMR1*B8*3GqycHF5*>)04d6^~Xz{f*4xo8v99G1pUpI%t`&Z*PT zY~R}&;~$2_8RxHTraM`-?wWMG*(?({b&R2#(xzEz1vC59B?;KB@nBHka4q6nI#v3i z@L!9#bFmrP=1Ou_J`>?U|GP)q7#jokgQB?jr^EP!l$ym5r>t~ilOVSGC1=TXDin{P zwe$DVrB@lLiMG{oy9-tf#{Rj6lNJRM8<-dEa3qu} Z*--{DS0DdsHh>ryx`U z15KGf^E>;RboVMB=sD+&j<>Kq+e1sQ2Hi3GShO0YC2rVmn&Yl3W{csm1oVQ;p8I(f zn2W)26TTtbFiL^^{6hh#f};f?JNfWryW_&GsSbE ePvixAh(m#tNNskS$ z;cvB6TwaaYZ401z!|pq{-3kw*ONTjo_;^z z*0&Ao@0?c?73{E$+FS(vxvPmgHlU%H7<(P2`s%nCTNy>B#Tfb>a%RC;2mwDRVHWoO zIA48xk!Dh|rIo*rWv6a6n+CfMdP#C6sLOP@FY%n}b>%{MAD@ge%wm97@%c-51?pmQ zq~EvM+SSo;tOm^h|8E|u)P5di;bX7NJmXru5qMGbl@yJlX)dk$q}8xWhF@%wqze?u zaUboAKj+67@uz4q{w$l1kP7k=A2@KJyYPI`$UCtWaT<==kUz$W61tK*v7B;WDa9dN zGh)a8=b6x2qt2A3^mcdlXZTNYe2f2nxvR%3K9X%dXjUR2@KcN^`v$c}np6@DcIg+0 zhmIUn6Smc>`ftp8vB9n4)c3nM_2<8Uz*pZT#N2!DK&TnQmz-?83h}0Ht^kJoxU`8I z?sE5Rf6#9_W?UQ1*3qtL>0(3VM(o>99>hMwq@wR6CqS|lCZVlC+863ArfcuLH~s=T zF0JaZF#nx-c0)LbQI|NbX>(EdKOtK?@^5!S^b=>gwF>{g4J&{FAfDV{VurCf4}M{} z8ugTs`2`Y24aUz`fi@8{$*la?Ab*pk{GM&(ZUvS=x(dWFAi2>GkMS~TkHKp9FZ$$i zr+gz(M^Bj+-V#3ea}Os8D!&MZO-n>(;(4=ge;Ktb6lp{#v!b#jFg@BOnyc?7Ur$`C z@(*D#v1WwPjpJe)JBtR&9tpZLyAG=O=#aDuGF;7_w)|2zQd9FSWU8R*hIAVk`+(<~ zcl=r+fbR@_gt({ZwR!POZ5Hji0s1w{g#vf|R@Hlh88ZD=K4myjqdy&|+kMth9DGd@ z>GVa(U3G{P&4)BT6Ln6)!lMPZwRCJz&NGV4>^^-F%rJkESwKE&B`WfU?w!9w#VPP{ zkDcBfC*0^^M)Wt)^Z-GI!9iX^kb=oidJe8Yh7$ggP~|RI7j4^*M61j6y@fI}wkz?v zPBamXymqB 4wmlA%B0d=B1(#5nwsW{bRA8mr<-Zgxc<>CDi2J}BwaH{gYf4q+CXzQ}3H5BKEalAbX$n ztP5f3=@5#&vm^{_6u)R($7$GikS?iy+1JRc#Ov>9t#j6FJOYVo{r&z yXH*_E!Q z*L*c>ion(dEL0!vcZqdm;gd$OMi}34W;1 Y9i!^+9LHo$yaB@ZY$Ser5%Bp>_R=J+&KIH zlS~_OKeO8FXqO<|>4`$hDUugEb%@jY*X1tfUgc=PKlP`TZ{N;tVk~SXGA%HoY6m>t zb4ww;mKGt$9OtxMZVyQ@)3%sid(Lm-48ITl$$x9j_vFs?^y9y=yf;o6HxF6Y%u5JY zd}jd+E*GqS{q{+6tIBjJp-kG2+)K*M!0Y9O=TA&Rm*QiYzcb$jF3a@VEnbQCPV{M2 zpPiK&zEM4btT8c9H&=SB3i{m5={i1Wz`8<{I!xEUznSpMdZ%~cLmgG0VKbM#63dPz zA6Y4PrD?8+fJ#Wa54~o}zJ_A~cqb8B$-^U1!E6>hB|W!X1+<_!I(}`>>SLcyXP3zQ z=+`484&k^A1D33YH;NxOJcgX+k*Vj$lIDpWj>->TDQf?(7F^HKZ26ym#a}UX^f?CP zG+GTP_}Y2XMW0S+$~0(Z3UqFQVyHU&M`7JqBkCLN5HH>s?lA|5h`~B!${fKr7$4+F z>z=jVlvcfe{9*Ns9I)i9Jy5@!Bhsyqy}M{7#81Wy urq9=A859MW|SoQVPAADH#bEQa;C@$8;v>#dN zl{x$dxqZ>!rbONoT_so6<_lTC!wogZr47e0jjO65uXoe6>T<9T84&Liu?QM;TEi_$ zynd6sKG@gvw6ovC1R00_>+v7I#an*{(XY~t6X7?Qm(xp~qpGNRru&BTLs^qr|Mxe9 z)tz_vNbV@l)Vo=dnnj5!_wRY|&4qyQeGYJedOarV%j)u;LHl}AOu@|_%j{bv&+1HY zF@=4n_>!X*6RR^$f(N3>L$k_WnAL~k3vy%-W9q|1oMF|HO`T4Up~5bG{N5POAQUxB zw}?@YK+{yd*(ojo0%7Z_@JZ1D BPj{i$>4hXACqW^gA7Uo#dnDzLAFof)o%xEwO(V5p`@jO@y0jw3b@W|D61XYTD`6 zfZ8r~f93bF>+B&6V`^2cVLwG;qxcE1U~!%%39|kXq+qBz&e#Hh9A{?&H20EBYgcj( z{LD8+c#yvbP$ELFvvS3K;5cRAFl#-d-z8ua@-lVG_jO$Nou7;uPC?csF##1AtFSLd ztAiO(=we-ln5(*y)}$&@bq@QM()pmtX^cgchZ(9jV3kdzMhy-h`PAc5r=|*T{`%o! zW@dTJW~}bw01Mn}4&E*^)|xVa+uqCc*A%+pZb%MC_}GhLp};L=pnrR^(oLc>lNd?| zZ>5d9FbK%QgxA`}T$Gb5#)ZE;Li`SJjFbzcaL7dvngzj~UCZC@4c=%Z>0uCs^!N38 zgm@*IfNwjY`!wHbe4ZJ9w)#H+kw9+0fgItDrSo9!03M2p>aJt57{h-6^aj<|vf >DMyB~xPR_Qt zBcA^Nb0VVK8tw|W%CRobbdq>`gfnjA5?uC^DENf{qI^uUU{Dpx5voy#nMfnq3ju=2 zS65{tB>E=a=)JbJbbRO!wvx9u?QN_z`^JjD6Tk_B`1OD9Q>9y}{UXXq;07~|)w+l8 zcNDgN?d;)i@wXQHrymKkUKz4@GwydccQ=~-&ogAa6?h1!6=*E<6`Me$jN?^4QRbFI zUd8aXG92LAO8A>D3V*C)Jx&mM;A>2kr8y2>$sp882nk1|vHX*z-ND)Hll6*^c%3U( z_V>oC7gB%V{3KW1JR5E7GM2XH*&ij$y@nxD;+;uVZUh=1giorkM*`<%u1|T@l($RV zsn11y#(4LlZLFyr@b8)|buOqZHH(evT4AJ%n2^1OCvd)^qWN?RLbY|ndyZ!&LMVF< zQcJj@7Y5bY0Z1ZhNzv)slVbh1C&OJ2{jHSr?7V*tGsauSsr3vy##7Yv?ZDh^5sC4q zf&H0IUh4k 1p-pVrcpo#0xR}F zzqG9x2}_CkY eir|XG~{FWpInI+Ls&%=gK~lF^ORnaHv|9E;#{M=C( uLPJjZzcO;;(wWVspSl;S=fI` zDabXh66r3IQZ+k+Yht9AB%uf_S9prY^6n|pIXI8*kgAdi0Fja9E+`v%2)S =Sn38#f1rKCbiifYV5f>0|t(5X`7 zlp> O!is2&tC%S;bA2G|6W*c@ 5=CpmM;Ctq0-13T z12$xk!?IVaa1m2jW_Ao3cI+15IX7(F+q6r81sbBYtmTJhBomyqu ?PK`nL5vGDOSQnj47gGotaQ&s!qja8{Q z_ewi~e$S#`Mn<`Y>@l4>)w}zGSXFI`>ESw;b{kunpi+3Q5w?~fNt}N-MnFpeq;Urb z8>g_TZLQp^@dGh0s##sDt)z0=#Yj8^=9&y;R;lE6yNE50qE8cy0% T*P2LD51_7Y0PQ~&J2IEoTEqq$LlFuPI*wy z9->%j&X}3$dZKEw-Ks?MYNReAl@p_>{U%pmQ3+5vp58Go*wR^Q3Jh5BfB^>_4Am{! z7JDLPgfv3NoMRJjafrf$wrX1{nPPdy?vRyOl)t#KVeAJhX6f;P#wD(3IsgWork&se zYB`n@osM7`HA#QuZx|iw9xzSLCx%f>9+f7QfpK(@39E7JmXam5Id9d)PqsPQ=9*ik zqnSJe=g^s=-Tf;@#Egt?z67o0(di$o<^KSyoRdH9ALCgf;>zTP>rs#%+-3UA1_Tb_ z6hZElgitWr>k*3>tyMIyzBO;$L4gz>P^@*k{<+fjRfm5T$U GhMyC zyJDnjZfER_TXxV8gAC=GQnL$Py)cfNbt>iMfGyhu9XO0@H*~w}V{*vHO{>C{IR?&U z3(jfUT-hyc?vjL>t NW42T%l)nQnEKv6g3MrV)f%0_Tl% zu^tUs8K-Q)ZY6W_ebQdG6+JuNJ0C6HApSqTBA0)5_dI?iK33x!$`WU4(DCQlG>%g} zms3YvL7G7mB*Mg`xg`=giDDs@E}-OVD44(siqn(}*9EILE|G!))aMM)lT(CN@5Qsc z4rK@tfymo+8=HX4KvFUTk)Ddp#WpRuGz3o{uvbFL!kAB2(^x*yLB~lVIELVx=BiCt zaDspK(&FiL47t$D&_#4%QHLtaP})YK3vnVjGLHoWMe?X#>2l>t5mHN)#|%5+Aq0{G z-nN)#c?b)5mc$AiDG3fNbduzbL{yUGfE6UUAO%S-SQUhTtAX_R4Jn*KM1K(&%{M>` zfT=$Syq1N1vK~z;@Flz;uowYJor$G#tlEF7tSHzHLML#VZR$>RHG)_wa$$WzsZ&a0 zS!v(`qfk5yXmd&y#u~j>8WY_dpmJp|Q=|YQUd__NrlW}LnjP&DYBctNnVH)4^3 vLcXO(|`5^=Z&+nXxdQnw%JOnx%euQn_NwdI>a0WB^7 zDC8pV-P3Bh69)VOK{W`czGig*=Z86p=KFF8(MoZsiaWcPhK35v9#YJ(CkzZB*kft$cx@doA_do3RQRU(7hp-rs+$Z7)zU z(A=8|#Cv*89|IKDk-MPko^%m?O7Xk9xW_8dd1(_6sWGk T3IxiMO$>42 zD9}n2GM#`D*H9Rm4p0N>xU5E?rnKibHLGsEwVx6kO7U4Xa5||HrlSEv#%Z%_M~R1s z<=Fzwgm26bRp6XK?V1Zr+wgyD1rWgJNvmiGYLQZKQN)<5R>^A8q~s=>` PXpfExBpmt7Eek8l#{q9)q0Is$l@)|o^$CZ{tk?iMxpMHVwujGG9U zHG`$J>flWw1>-10tdj8OBtSm3H3!)$qaMjXRN;v;RjUDL?~8wM9HbTkS;JM#v!~i& z*}rML3xVW#!@7mgf!=#(J?-OBg9x2flrpPlS19U=!WhguZQV$>cLo_T<2PnIcp1%V zwBenUy0Vm1gd=B%BQCPAt~p3Fi40z6yKdFY5~IX0sGf{%QkAsDD@`O4N4U>2%+*!^ z1XEe+w)Yn8gmHhwVmo5H!ZNahHSNCStr>;fY8skea&O%>!O$@ovB`hNdO8|lYdp_e zTei1K0i}z$h5SP}b*Z#6U7AI0O_gs`apPwNXmJXsk9^;1{{W#xxZ3v3g}c8;C2q;V zB-F-QzjoC^9}8g0aZ)>`?y_ems|}~Z_@jGAwqxCG&9r~;_^faln@8@M`cCZL4Ys*T zsI9N<; 1M~}HG+hzn)eW4UDK~v u7m7)8MqAk*` zQHR?cyS9I=8F1{FO~v4I$}w0RIL(MRE!1p|GG9i$VXUDVn*dHzAf`qt?fuTx(d~~? z-xO{X L~tMR1Mj{X=iQwXVVOE)Ivzhqi2#WbE38 zbN9VY*3Rg($jrrcRAotv{{YCX1Nsf`m;8#>7B7De1flLT&z$2(X(o>U0RI4y*#7`w z{qn#3j?eoK?-PL}aDoxuKgjKW_V4e4f00@_?cd)xa-j$y?^^42E;wI7tDZESg$Z#3 zQksAxobhPHFf-R}uGeR6z|?6<4#=8@4Pe!rlOyhq6kRS4!<5#n9Yd~01T;!XNK}%L zkpq88Bw*CQ$hD`7I0O<&bdZ2^fC6%fElLX3G=>BTn&q}e6glziiI#%(eKf9Q@R?k_ z!->Oy;3ZsppbCYhXb%| nfGJZ^h~oe@lZnC^Q(RD(he!1=QWlvQ z*SJX0eR3n=0_D^wd>HUD)4+T}m5mMrPaA&>$Xoyo42^K2-9u(%*kn%IMbXTt@;jnu^;vKq$%xRs 6`mNodW9fLs+|aZtZ{HR)$}x z7!grD5UeWKJbUq!>pr5db4MsOr$Khlm9wV<2~e@{g2rmy1OzBbR98?Gtl6@AM%Yyv zSY{4qwsYF9r&W6upv`AxxHyxb9P6Cen+>wQwqH@}TDJ+OAyzaTNy=lp)b_|q+x*8I zyuSGvdJVF=rIfw3EXPT=ihY06hEvm}R+Y+X+-@&!H&)e(>0cQ^ l>+OBM31IP;2IJBDpUP_d~dYSp+tR5A-UocNe8I!7 RYDyh#ivu0A=f3BHh49G-{qbl3eLqx)7RM4hE5Z6POREm+x*ZZ0vvE*23k+BpUpq zDVgmYA9Hkzj4ML8W7{|GcFxx s)i?6l!bP!dhOWH|Q|}xhYU zw=w?!G@%N@Nq&vrpyjGaN(eSGXdtc;sKJMCD0dSzBeUBPZqwGS;i2KiPNN)66wK^_ zyZOxoR2oFdD9v)+a5ymI9k$&NMXR~wtq7 7YhH?YB_Wejz0u2IvMK}}D96Bgfb zplP^p1H#iqq-}rG2Y(HP$$q)a=+n-gPPN#h8u%M-)y>z5Pp4>kO)+!#PVY-=iDcWj zJcs`P24YUk0Gdta+n{nW7!WwAnc2<~_7+}SI;8Oilb6 OsAoo8a8aJyRuZ%98Y}o$B^edrIw}CJeW^bNW->g*{UfOa4U)&LC$3;mT) o1!!h{)$1>oyJsZ(jCGCeo1R0V_@iK8f>jWMikw6}-qUY+b-K~c zD{*i!+O>c29;g#ze a?W|>s-kZP%>8geHiFzl^f+wYYwIJmBaA^782y5ei5 zG$IiYrf?G@QPqctP>lG%+|jK8z#77`=FL 81 3d{Sv}H9` U?nQs_ zK^j~No=3W9q`|SY7Ue^OL4wYOA~Ui{l}RZIkX+GXY(+I`gpA<@1}A`-y;cT<(imf( z#!n*nc^z`*i){RbXApH;!wL$`o9p!2xF^L>xK0^r5zO$7m0Ig3SvtqpY#!rDp*pVB zywyY6C!e9!s2UC;5NL jnlz_ps6A*O#+k2?~5Da&?Q0)d**QatA0l$a;<-3ZnnM6 z*E~ssHJF79L8{7=ZqobSv|8Zt14@YI(aNSHY6{t?!lcIV$2kvHHKAdzCMn<@^IqNW zJ+RIwPDhyMF)$vbyJzM&&X5AM$OvpFs9{q!0Eor4W&EIl-xNV40&o$U>4b9DjE7Y9 zLf+XG3f2Daz9ZMPF8Vh=F7JN;*&gPa4Qtsk^&4vYe^3Bg);RHAB57X7zD(`YSEdau zX_<8UyXQLP@nrapmj;vv8G)|eE2ho&TW1ips2$Ti!RgSk)=v{O!y>eGoZ#qO-QV3c zShI!TFi{kJQVye}a0@Ut=H _gEi`lB9MQW{6vD1IFO`=^eawuB0 zG>#jq+QSyWa5&a-tzW)Q2T M}UVQzL4m{j!tbx#H!Q#vPHrw8Kl4TKJ810zI)hxkERZ z5shnvud7TlBEH8)=Tv{Wwo*u2gr5zwg%{Z~H&wHEfw|gSE0&;f0&=Rv(zOE;OruQs zV=Z;0y-c0lnr}A2-1=5t+Hj+NhAYvse78!TOe+?wPB~X9!lAA>%ZS~JU4k2D&0QPY zNIs3gYS<3?z~h7@)sQBqAs&2-9tYU7>)u;AA;rl0MAdhqlqG+*S4tE9o8rFs8%ABZ zYObwR)Oh -*DrKSwLMgO4bkl6^Vd^DmFI}=i_%D_$GUW`p;Fc^(BDB-Bzf1G z%%N^n6M*>6g=v3AEo4gB4k~#2 | z4W5{`i8p^Ux@ub}2+~TZ;TvwkCI}C-lMR3wni+$;Z&^20UI0<2D$JXvWO@cVPBT(I zw<-a`FL0sl&<_yAM_gMXvYOz-sE|iF-`QXF_Nd3so(Jy}&YUMhrC;>-2Ge;jihrDC zG`(iN*)e}lCrP{)>yW*H{`LFjUH-`49<8DI>M Jf#x6*eL#DOIjFwU !)l0S5Z^w8-vYk*1d*xb~|mQ?Y*tQN;3dXKQNfDD7k6v{Ypo+Kltkt zu+o2XS7D5*=tbrZ%$1Z4WGn_|k(ifLB}|~oax&lqsgkmqw8J?D103K4qMX3@NkNbl zmn2{%sclJP;T&SDUKc@qBvXm|CZYiZ96`)MTWG1FMHiF@I60e(&vmpYA$S3qoejD= zS^>>lk7r~LO4iv;%+E8Nw7A4;=fVSdSRa2gZf~1(RluGzNHrA@UfNs~aZwPIPEI>B zyU}XI^2Eay7Tq6m)a7Vqd*@j#q6#1YOv7twT(KJ5<5q+h&T*ld-P?^?E{jc&;5(t4 zIAVRVm+smFOJYVqaESGd2QC63uS^QKzMGW>y|6WQ!oFO+X+un+^#h)LkSMc42{V5X zOU;NUPYh<#pjM1A5i4YcplBc}+UZaq6I|sIq?{?r9-3fHOuQozj_$o)3e$iR)h-d^ zTFo@3UfE4r;A$g~fgvo=qp788Db6)L8*4-aS31GS;v@+8;oS)c80A@LE31TUuxJ{z zrwN6Y`kK~*l-Fs?Sf|XsVjwfGWr2UT7$6PV9;TvV*xg%+={6){JEqh{K|vNwt%l2s zxCz2GNSKp@8MX<=L`pDFY6+T|0q=sA^qP}iQh4OPcsX5UstZ (x@z1Q`Eu+t zv(;{E-nBA77ww#jyLV?S2sOr5=G{<|lC5r-QCw;q2+nIXrDi);7+e~L6JdYH0|DA6 z1qmt2Lx6)=5?C_ugZ*IE11*$Iy9TD-^ZPy%5z1?~`F%8#fw)YYX_(*BwWhFr$rt zFjMb?=-fC`RLd!08f>L4El&u|CZdK_0HEa}pA?ZJJ^Q*hR*A?ktn0tP&pE$vZV-6R zmrLq4?;zXWI&Q8C$LAk>(~E!NnVWx8M@pnArgDKUq#O)A7|3l%7zkSs*>H>9uuY}b zIccZ9Ika0Eoar3Q<8=++?msTx7L?SVsK%7AdKj!=n9AHR2rHdsYG5dto+f5{ZHqe| z`MQZSa|N(BE*%1(VO|m9%F`VA#U+(>sv1*-nl7eQKhiem69P&y)Qx}8{{Su{-6)q_ z)WwU}6wv#OZLP&v0x4W8C8y#_O=&Pb+Z0Smt72pTld71W5tLr@&Q8kXGLvZi1ePbl zJ+Ll{AOz<$Dgls#b3& B77W(YM>#xSGx< zl$T_bveIps*59hfN1Kdwy9}7HI;NMlmPpZ077~TV2N^u<^jIGX?(!oejuH-2N2m^B zR-0|WNBJ7otY3*eEQ_(ax|kEGc^Ry35r8BSF$-!B7<#bJx *6^&A`O z?rt+xNJ}`_&Dvg`=FJGpR62p@_Qk5`{@z@p*6qE*e&W#5* &kqJzGiC4m{?IN-rTUDW`t`!eb0L4(ZWKTCv&%OwFR( zF}}-9)wsYq6G{)ZHva%h^zM3sx)g`dGwu@~P1k#VXvaV!!(R<+J!t^vj9r$s8dEqS zLs}fWH`8zdwAz}LHs8YHa_<|P9mU2r+4k2?tqq2oo#J-4T{6x0^-!C4z@oauwY|-& zNB0*Ls^)*}DhTa`Y_{KKCXYCdw=NgBz!GbuO$m0=u&KZrnnzySY%bzQrdtr{l*e aWzbkl~kt$nkg zI&Q+1R3K&!qmh}~7m}2}2EZ{BnXuF@?vZm=)$D()c-UDVruQwL#;^5@UY~N!({|O; z80K4#d@E|hQ?H;j@q=k~t#UC#b8Im~P-}sv5oLEk0udbd&_?a=DY@xfwdmg%g*b*E zgu@TiSs0`umSS|)x~OEce%;%L(+o!zr4&sKbg4t~G19_jJA|{iZMDOpSO&7(D05R3 z4o!bnsLmF?>9cQY-rZSjjUmpa{^+X;p(#o@&zyL|Oopb54MJC*GF-IHbR9k(Em)Am z5Jw5L8i0Aqsg=|@@>1JH@`zGNEQ2op0DEs`w>O l2|mfschIG|OxJf;8pA31 zg(4pWbM7&??QrJgn6rR~P8_794M3#@PI6@mhYySsoB)L36x1HrXF5e(Ii6WS0$l6E zj3G*A0Rd#GFtnOb7{Io!nYVv*G;Qr$;Xzr=x=N!q6jdkPGTGm5cODzpsH!|9jxgZf zd<5kh-NFzL9s*E&a8hPeXSZEzten|p{_%za-8;-U_#ZDOqjCO^jH35=C=)T>-1-Eg zy}Ooy4llwENV}F<-&-iv7WN1js2#GdZ?CR2QC`Tu-rsKt(?gyT(zk!14b;-N_qN8A zy4rYG8AEx$Q;pUl1 tA!9_G}!6ey}%5^N_|g&_d(9? z1uJDCrTc8!RMn3mgkTusH4clmOGcL));?RD7uhmgwYW=-Zu*2o0JD$vKej|CqxqJs z_dwjd1`AHsC&DG!+a<??czE}CMfY#Git}?BFPP6RnjU48BZfKJ5XKk&PH7WK@DYLX}onuPV!Uh_D z6f0}3=yJ@(buGq~7F76~&DgSAwXCX`+Nw>ob3j3MrP-|laUNqBUfCx>sO`Ya jTL=Q`l#Y|?+Y)Ykzh) |M>$u_3Jn8BF$XoxRUd1ytbZa%4Or+TzxL6E2~JJ>pubN+6eJ z*{C<{?ylm&)wjEl?Bb`iO?NIS0nk+&949u*i+Zix@mPPk<{wG=gw*-3q${Y+{eh z87*hm_Zl1OFC*@fBlos@ebPc7flsO5ea(>I7Zjn!VZXc93Z@mno?>AQ!d+mx()9;+ z!yndM1w0`L+8SX=DoTpbktCv198LyA*Ig-Ejt3|X;YEGaj@sVV>?x#yTJwt9Nb9T` ztuCvI4m^M3dWG#4NElWI&}wFW8BBdr;UrrbpSEI@*?Jn;;!Xbm$8BTk9L-zbl=O3# z(Jg4O$GJzcbtgY-o3W({5>X1mi~$EQaT4T^Go62=*nDkx57F`&%e!NBw_+C9)6b8x zdRQ)s>!rm+(!GsqmFg()c|TFq)aq94{{R`++qi$bVO&& UxB;|j{lZ}CY97_A 4&>R1a+I?DuBEwU)-w zKs07QWa-#-HpLBToWKgx!%YV&Nw&Ie-0^u^2$lt9DC$-YxmAKet`dxrF8zx;i+-Ku z4u={UlyrWWKhR%{*tt{VIPcVN+P-aEJ|ur?8u1aS8c)f*biSHD`gHe89XqFw{+&J1 z=<4VlO;xc3OROYCTeWJ?(`gk4B@~A$XWwqd(`k2banL*<@nevHK>LWdEw#7uu%VeO zbn6x_EyOLUYnjfx; ^R5JxyMq5huZf_oxMI95g!A+m;d z7mv(hi6qpVPZ)-17Oa8dYV(NjBlu5*WMfom7@pe2v9d^FL@Pd926gt^fWRwz4+Aw$ zF42?K3K&t2Rh^j3tcy5`M4h^vu#7EAcF0M{W^#a&XvKeSSxTv^XENQ{-YS1W=6IRA zXzO#-b<0^={{U_g@8TM3?unxLGtNHV`gxF!(TIxUN!;8z+hJ` 1k50|KSAb^a z&Pi#U$T?$_8=IR&s*9v@tz=t@`EZP)=}3oGB7jHdD2`AWNGOA{P9%&a(-=ThVex<% zx6h|+$(uG4n_)dg3res!*Mfh}+u63v9feQAF#1OZKo2n~UKAuQGUc3>vwqO3nt}41 z;A<{%6f>x8X*!X$FVbRPZCBO+)x;Q;{EgSg$jhXh#2_h82 z4K}`t9N`yUac;WJYZ?d!=_Sq>aDog!O!JlLu;U&Dk*nkt$OwaQlY)PWaEu|eQ!~Z@ zR<2Znfm(2i8jf@w(h7{pmUDyK7>xUuZ9<13D#NWwaZ%0{`jw)OHU<^DI0QKiPbsE2 zndgzWVRaVZVt^qu1dMCWc9ffBk%}B$Ml}3FaBG1)0Gf8)NmjrOsNP=)97@dHThOV4 zvfG`mexUYFUiWgli=KZE(?RbuJ3i{^s#_MvJ~5jM9=fotE+c+uIf#{2a>8c_Exng3 z>mLsl_C|;G8;*?0r7@cBnh*vGFrecVN|~Fqn%1z21KkZ&lRz JjG_5yeJ1v4xGvZ*^#9NeLw)wFM{b8!x87XtlT>MCe zEHk&2Ya8iZWeb0G^xGdUaDcq$N`Rne*)}InE`i0$^Qhw`+A{D`tm%^%qqX{*m$#gg zcl>qkYoEeMx!3!O;cx9S>TN@^G%zB(B1Ky)dt(uFlT%vzrlui-${LE03uy;4$_&2P zn9;0S>B=b1*AHd_1>2il1ua^oesi42*R8Gq>L&mfoCkk2w7oHE9o9GbnBbwUxITw*ihJPNE~x2C#Yy7R9?Dc2v$mCvm>!7a7#t-V3!Z zFw`=fn>19_s*dN|Fs|?5ZEaHcp2Mf8U8>WKYc)<5$E=HX*3RL4D}cDa{6coEUAK8P z+F )C*dHqmi?(-ZyEK^l<_yN6Mt9H%jo_}sHya?~c6;YjO-*QRN? zYOWwxRx^@sUt?WFk%=5I=4I6}9d+AL)xgk dZ-M-=>r!#B-XO(5|H=Pr?gZ zG-{njm_W45?#Q6(G?`NF6au}m7XxZF%x8aC&Aq^ywMm3n)ws;Hr?w#C#F)=fjRK4g zP=e_cYE~cSH1m- )`|@E~ADrQMk(rM1*mJU`Fzu=!-r=IT-Rh zC%R%9&I)J_ajd2fQLk}S(=sC6i*^oDw9^P)n~{`w14(UGOK>7&c=b}2$S2q$TO5Cc zDhzJV{{VGvoadn|D^4@dY}-!e**xcdqx@pFq_Zzk+?!T{sqwM*2wOXwo10g-*t-HP zSB?>Ty_(&0D_u-z$A+1?R4RpB02C3*geRblg_p6jw{GC2z$*U$+)Yd+Vywr3%1zbv zvuLwsa09k-{{ZAJat2FoM^%GUoh*OXF8e1Fd3~ e|Yy6lmc_^)MHBbV D6u{Cju!v zw^iGE+jbg5T(nClJjP;a*J*iVwS&(a {7h=?dW(vSWmh^646(4k z!rL+COz8O;i3w #@Fk)Ir)|{?Su2sP<(PjLLsBam1XX1z6}_KhiqJ z*5&(!t*?PF2evhBike`<1_v=nn?p%}paG;{CatZ&D{P$cUip}eVG4o>&MPTUI=FIl zbq;b&{{Xl@PY;Zf4iCY 3X=PmIY*nx{)i1Qp$vEI?zJ5{fm2GeCZi`ld zxp45{2Q$huXR?34y>ADC$n)MgcP}$N4&QHMYj4u9x>Wg?`P}nk6Jtn5&!^ei0LGUu z@qP=~qwSh6Sh2Viy0zrrF!sjN*)D|TGi jRMB@!r2hc8xqC$FqpPTNA(Z4q@d>&sL40At;^pm|tZpw@KBb4CJh4;W zCq4RnWA=Y7SoL+1b2i;x&B`tD>A%!Gr|z8)K~TVgry?;Ep4D}EMM_~yf(Vxo$t03S zA$P3WyoD~Vr8AFzqcSyYc+ TV1H!N-)%tA0ydiXeYyOSoFgT5Q&8sRnblZRzhAWUq+s zZ0A|k0j^;3jqC0Ls(8oT+%Vdd3QI4M#|S DTD7M}=#^oU0Z?aJ z&D(dai eP Q=H%yMqYqiwY|9lTXiDcey979(7m1trNzags?T(ntuB zNhAQ0Nh+`ci8Y`V?Tfz56a>u1RwCoRnvtiJ2DLeNi)%IWafz!6&3BUxK-cO#rggTr z4H%W}h}KFj$|?^COLJJMILd2B%a|Nwwt#;F-y4Ai>E}b7g4rw o>7y1k09V@q zLpl9M_o=ulJht#1^BIwtvlcm%Q|*FrfoK+kLtHb2YG4%(v?Pig#s(%esd?v|O~>r) zQOv{i5E_!r*h~wG!GnWZ3 =A3CA|cQ zO>5gJfa8QO2^8ZN_UJ2|MFL%W;FcM|E~A7WQ3xiqrvogIy+CVBV6m=v4pAkE;q8{L zX^F2XSt9}A!UL&2l9|8&6ORZX*0j|~(qeI;dO6~GOV9=<0R-LyA*k?zPBnkHbsh*Z z_QN8^!vpHV*spI12~`;Qn~YOCwiz!WgsMc!L7Rm3NF0bXkOFeX0OV=BcnV4e g5|+fn-I-9Wx>V|EqW <5ioGukE#DB-F_dp`KoJc)n3jom+Z%0}OCd|xAT6Q;-?5t#VSN!zW^2o$DYhCgk* zYhRPOVXB@N=Q6U)*W_J&O_~iTMiN`I>K_gOW=!SvC%Jz5wVQ<6P&@$q!#UTpe_f?v zfTbzO#*>8SQf%`OJylRqMLF|5@r!dtSRQjWvPLEjsZc@CUBWgDXnB9a{o1LfW1QyJ zN{;xrp~=!a^%*QnZ`{{N0%GxHN_WLvxn|$$-1b-Oja3Rwhk0-l;>VDgu9jo1hnpFK z=Tk*Av;u?kwtncJ-8p@F%kVs@DONTVj=g^6w$Y?eWYysj>)m#tBAj5}-CDb(An^>$ zyLO$iJ`vmZNy=u6i&}pSqUOgAaklJg%u#+P?u4ms*NwC0b3MW;?dK{8t+YHoW8cbB zmS+hY28BQpnnplnGVV6w jhR^NXy%1BMT1Xsz0nF-Ry zhl6mP9hXSCbc>t1t*@5Y!Jog7n>Kwi-K{q-fpX}{b3~mIamN!jY{ep#Ra7DXsJJSO z0EL%qfD;^+zOQu7)`HR&5t|_xZ7>*P%ze?+q?DQRWkH&?!;da9rj|u<;vL6~OIu_W z^Do3oO))?i#NU6~ZTB8^qkTg-@k5H5_DM)U w8R&0x>ldvXyDa$IoRWoW z@dh=2_+Zj{18;DTgLqrFBQ|aKdyTQJwxHst6+X$%eY$_PDd9YhP*U~VCrb*BN9-}W zt1Nt&OIrNTSGMY#d(>N>m2mU&pKRz*jB_04j!TJfcuqW2=QeG6hU0C5omTjxVm+Lv zHM)Pd9)+tOmP*XKUH;#5f}IyQqkV^r)JHjkO<|5nB&tjAfXX;yD5|oMz%rb{%0pU6 zgyJC~vC4nlbb!n*ZCgXGBHMX=hA!6eLmj^9O`Da> Su)KCgJT}Ygclva4CBL7kzM4f-B6@Y1&%cqt@@1oK0a{z8y_G%4tcV8&K_lHse6# zl`b*~GM8p2943a<^2D2O%m@^VO45|65m(5l)M!TtWr_^|)Qnj1h`4n&7=g|qrIImI zY=nOq=UI>^WYz%EH5zh(b4V2c{gKH~EC2^=1_p$~@i@adeu+4oJ0cm&I*F+`!Y=fs zaGe8U-vtqEwztYT6brTvm8M*wvaulYf+`IGG!Tg#;u%FgGKIDc_QJMpmZKayBVF|X z0HTbbke!Zx?Ov*(yfm!D*3Mv5e_7SLZCrl>a|VR>$6K<93e#0Mn45x@QN#(UXhsG* zYqz|w>T1%XF4@%d?CT@}tBI7%4jB${a$|r)`n6Mm;3BS4(`oa2V-nW0TIoUaOxFQc zAoGP@(k79+YWnRIUzF5?+ZyVsg{}-cW CyxiN|6i3pu1X5K~f9_MllXy#qH3Qoy z=wCak`$Y5Ye*5{ZG4{orbH-`--t3Nk5!`*w(R|lI?v(c}n_;bS<2Zy(`*yD0oQzMc zB{DkRTm;3NGXks)L4--H0>MXY3JibUH1Ui%iDKc<8GK54=MYIa9F9Yr&@B*voCZ`G z#L^mU6QQ7bDeszW8*8}G1!^-q;BM1J!%P9h2|K}NCLo#*DEP|K2*hD6=%!L5UE`%W z^O~&;UZTA{ZgiYDm`!bvU@8RCEU*+-2eJzbi{=#VhcM!06;K;DY`X+BwCq Urnm^3DeDx@{QdKuD+YmLgGpC9_g6g7Keb6 z*&B_X9Hpm%8p!0eYi!!whjhZ;G@v}@P1WG;#WHU&9O5osXRQu-o^U{vmhU2+kTpEJ zB!?uS9;Y0Cp{26e2n1A8wC$FghO_#sTYpmUnOb%&8j%9!pEz`ajF%T(vKdb(Tq!YS zkV};%U M~nBdcY05paUAdCpe$#tJ`rf0oj?LLcx zOYj`~q8I`+u&ABIxnp>PZ@m>K$#7t6_skpapL=Ge<2S3fAL@MLu*pv_^(szVSRm@Q za^b{FP0<)#{{X0cqBIp@RRFX=OTRT8kXaS;&z#bBV&l3Tq%hQ`qk$8nwCcC)(JuaN zzTYzU8N$%^e~zR&d%UN-MyBa&OT$6>hm^^+6JOkcTh0$ G57F-zcok9Tw5m0jzoxitj3KdYb&X_=T)J2!{?kn)FJ=3p1 zXh*Vfe^FWdDy5HP>21y1XcF;J!D@V6(GJFt$K4@ts#&lDGb{>4Ulp|AV}Xo;FVt*< zMFqQZ60UF21`ASh6~=JcnzYJ4Zm#F_^>*V3FN!tTYuBBwi~+%`_Dw2>Nyia{v>HIu zg#?NkwGlCiWdP$18G_K_22hWQvdRuMhzPD}f0w!i%iwrG$B$$sVg)go*%_`HapM|5 zHEQCcIYk}{qpn7kk&%eSpaM4oO9~N|VrC%mGfsqM#{=0GZ4Ppi04 92^nfs9_XhcYXSYTJ6!bWd$7#O30NFB4l!A76nhF{wv<;hn2T3e@!TO)WUx0^ ze?zegLPirAsWs2ON=AmuyXDH*?k6dp)z-OvP25q44cuag0P`~OJ(0p%0q9c2ow#Cy z6U669hpON7_BRb^&NMH#IeTlngKWL?TWTo0=6m;6{R0Z9!~-LLU`XUxZvs%_v<3%P zT3klvCqm_bP=rbokpgDwmTnEIJ;f@@e{wTQzo{^{+RikXnQ{X+F)EW@&n83P5|%IA z@>^r |CAXTJY%Xp0gQ9L GI) z* Po`7-A2;Y2Mh@5w&Ti2AI?tpMQnWf84~} ztS;H1I1!v4m1A18a}LcIR-~Tzl8Q1X3DZj{{-Lj6z(%dTx{8Gz=2Elw6G-EQe8QS@ zhpo{(Sl0k2OL0MEkCaY3+$?LuAS2XM1f@nMH*WTZs~5la_poF1Kg!}FSf{g$qIEXd zdzP-Y&vE*e{Efkvgwrvtca}XdfByiuuq$Qwx(wIZ!Z&YuuOX w2 @?vpRf9FVe}b1Soi0Av zZ_^}oR;|T`T-@$2VD5DNBL#>zQ4XA0zLga+n6<{xo)pR4e?dB%eWj~bwI~A&4-+c1 zl{Wbf{mQ>h5;;e4bY)??$%k(EV09@ rhh(Q(#)fOVvUQ(< zk@rf%hzkRmI85%>N|G?_e-lm1Yi-R15xhf{c|{jMXgo)f;$X1hAh*<}%+F %2ad@`-0}xL+%g?SQs70D_`~9OF@(p=MSYf3N~qR$%8yvRRgh z!KuTHVr|rq%*6I!u=U$PKnHTn*0{-|ZZm^0^@#uq4ki;_x}el*1C%CmMmQu %k6JdJlZ1&@ujHvt{{ z3->nOs-Mj`i${umfAL*EYA)Q?!}8P3+IddPHxqyulgJJ-Eog9xN>sDW)`pC M!m8 z07&|_zJr+VjyE3Q#AsiqjE*Cbk9NKk_P5;tVU(fBO1W_@F1Pj$CQ?u$*^v~xnkbkr zUu&n5443bLcI(}3O_v4WAVvh2Do6|{NlKD(5p2qeS&bBNg|psl8PDzsQ(pyqo#sm! zyJ=@p7hHG;f0T2Z*#-MoEWRq>j_y*`QPeUxW#%%5tEY`?F|%#SM~A&?=HByLI5L`4 zLruUqKfi?Tb f8}m*N_zaz;jg#kZnb*lme*;D zH!=2!*V}b;YA)nyKkhG=+Bi=%w=UYj#aEotmlcIn`#8wIT6*WyY0shSfmTq;Ln+9N zM76=G?Ve|CySuh+NNB$@A1R)S#niuSUPD!3g(o$r>+Dg5Pp7%KG=Woz6F`-C0eJS% z!B-X2B3yY&rJ8W`D#}!^1=f?Pw7IUx6{{`=Vzah;rnxT@G=Imlz_mC70d2GSxc319 z{W+8Jx{v|-lY_fu0qUdayA6NFSrsq21o6UH>6=17T$!(MFWWk;+PAn)Dn^Tg+B293 zS=cKSyR~a 4lK`i$XGWoO`y7yM+m_A~?@Xo6Ucn%x&LO*i9!t zsovSWrchVa7^Z>8woPqmhM8?BIK*NA#g0OBHv4C%rk-}i-{}(ie!}I`tl&;$ 6W zTeiAwj6P$`_L-%v7+R8)>!HWHw6$o_PO4|lW_ALg3eLU#=F-S2#5;Wn_s%u#->7&Z zoRmmOy>e=r(I_&uqG*3lvJE2{gK_SIPIBdoiUyE@WysUAOgKxS?u3p4^#RWg*h@k% zHHkV$8lK2P(^jIRkr9yaGKV3FI1c&ftSZ{FmcYeD54L&xPjww!rmZHpc23e>xaq7Z z1+no+xFdD4glVl |I>G+G0bQ}QAZP?!4?v<*Fg>!#%fIi8atJHEj?Q{~j z8Hhd0r%I0$+Q^o*JDpB*{{RT9AY8s)*r25df^eA9$jzP08*A#@ikvW}Ax~`YS={Y! zuB&bvp94J3=^NCk6z!F?MmN=KKyV~MSgUm=r8qr9?i2#3YI3a4TydQCTb9ijfyv46 znW-2M6^gOoK@xw=A`MBYm<1$rnr>USadfz-oW?h8Fl1sqm`B;_0G&6NNy}LBz)d|+ zozG6XJXTJz#ZQ`YuhlITAgKnV9OrlUC)Q%8Qk;j~CDz&AM)lAg15vL4J7FkuWvY|U z?!O~vZplBJc>1>oAUv^qZmYW6_-pDX(%)g2_uHqxeeZt{n9)Zi83=^B7}F!lDBRUV zLp_GydbiO?U`uATqc5^(z~wx0u>=rkdCm4ZrTa#XeMKDn-uSX7Uk9LTgn5n dxT?JcJPQ$Y7`iprhB{Km|GZgneN}I1D0lHbtmSmrC%V%o7b !* x*r1H03i~ z>Ii%m$RzvW+Dk!$-f+%wP<)~se2PRp d`8u%3T zbq;1`<8Rc_C%@=ZSs`^j7voq9ZJC0M%&>n&aXO5BJv5;6v?ZWv0NO`@c}JM@GR=}y z8q&N7te~Q_`BxS^=4RboH#I4u JZ9lb$qYPcFe;gUgHkM-987)YP%EK`hYJ4{Z9B~;D%t57P44Sr_ zqg~#idf}y^q mv8_+GYqOvz(rU-%l_a!Xs|ucBsrhgdNFLJ# zO)wERw**x!oOrZp64=MOtKk^85zD@1y>PuN!<0K~Y19GXVVUC=_E|A(SL%XlV{y8; zolvhZ@r(x;uVxXX*DSd}IL#6vv1NpSgDKfZX_0Nak#t=uYCW3!4QBYy; zkl_@L3JMf*0$6d9f=@Xu+E;9Gre 8pjY+5FS(C|4--b+OEi!eDb#28Aq z6rWO;RO4KXW~#^}6(ZYhZPc mw9gO@35%^c~8_Pt)Eg$ zA%okgb5i3!baQU4-9Vd*VTCgph?|`|Z0oAc!l2`hQX5T0kxEmPZnoApHES @h1 Y#9ZuftqTikwqf-PP+hF{XT z-%O^Tk}-e&L~-7~BhP8BU{Z9pdr^hk-cg8N$cuJf*5lLNFQii)CnoI&l<6(vR5FY> z7_VqWQnJUL{r><@M$2khMjD^OvnAcPQrv&;cMEMkfN=K+#=UW~V*;}tPiSAMw*hO@ zwu$Gs*E Zp#bDaq}#LUt$c>O`V)mSGq~2# z*GniX$caYXFd1-% 8)2<2PaZxMkgJ@ZN1?paL^lfd$uWQpDS4iU?>)7r@mT~Ec%b9IKfZGi(n zH)xr X}n1M zSj`K+zmtEew`jr~eNa!MJJePbATZ=$rHcsuph_^}Cm3}B#4?`4SoG>k^`B^m5lcGP z62;qXYVJ1JP=ozvp1-kOz2k1A(-m-YS<+qdu=6SQ$#7Y}Mts1aAn=A(j1*2(m@Qx3 zSrkjeuhRY@Hru?{ZHBp|F(e&1MYhm npcPdbW>{Ofks?0z=-SHCBJB`+d mN$e>0TspghSt|CIDx_rHdC3 zQCAr{JnB6~+qAav7`HPOxVUu$TzSSdyXOF>w8S>sa>lDbdrYMhEraw%i+w`vq6L4$ zsW^k2t@l$Nn_9A@vy5w$PwmCEFL{Gp`9}dTyMo8XQ^%ZXRk`p>ZUyMBHx8rAgtH}i zzzK73O4>SYk30Q>Ywky|wqtShDe#XoL$_sFsxVG`OfhW{bPq4}mRNAg6W~$gBFYAp z6+Zz0=}}iTJOo?c3xI`fDs?s|gd%@3$1>pzU2eLYz_h>&{jqLuBI;5bu#96#;(Vjy z6LHD!H~}SUQ&<$2Z!=IGMB}EC-t(Uc8adWAHs}{0ImV-eB5C2=4Qavocgx1e%}iyN zwX_s^jh71l09fjhb$rJm$Vf`P6nS_Nk)$Q6tz6Z!GdAZYix?Gjrh{u%hGBo7-!VP6 zwdNRbVT#R+mhSk5XEXP}RJ@J?`CBk?S*2Wmxt)~%0F(u^w?)=QEthm{*3z^Ym~{br zrdMrESvj+oSK6TpU`8Vm76D^~d9FZ1MB;IdU`Zwoy-ENcA;`n3xuC(9fy_%9n9(pC zU+#t$-JnYQSmt8n&^jlTfIWXN6 rfg1dREaijKyoGtM-d)FoF4 zE0 ~YG$Wil4piwm9H40e0~1k9_(27Yx30JWMgZpAd!jo8 zXz?W&P?$=pqYU_%`Cy(o7A@VVAnE?ILR?{m!H+%$C9f#Jc#k3X#6ExEeC<*6uiq1^ zwy0{#x-(VXy1pslZeJ;w?&@C)4J2lM=<7S6*ieDM7~^qRX`y5hr@MYDZ;DDNYP_ z?TpIzRyHtO=4sd=0Hex1vqs2BShmMJ1dnA%tw^S3N4}uZd`IC0S*~Z0;leEH7}HU< zP%2@@GEmA5=k(B?Cjo!oGu4{tjQfVv!3IF$dt;8)*-=4Qp|iZo8mm)|lM=tUwh3D4 z28Ni4s)&TlT+FmNw!j<-QzH7d%|XO`!d<=g6uPw>#L%C&yX1W*lpO9Q0omRuYQKT_ zI{l(_R^Vl;095?zi1zZFr`tAk)%ce >F0l`nzI$RvU-*%-e3EcE}dDK)QcqE)2(f=m$n$QrQf=#LqRx ztMmq^(VCR(`i+e)z3AR_J(E4&oplH0c+_yosT5gtRZf@Z9-I59X>oN9avFPS;Az2x zs{=wPd2yBy&a!THn~|ZYTa#dYhF|U0-;hvo;$*uus)E&%IjgpF^7~^KX52^+-+5_G z7OhWYS>J#1QSC9sm~u2*+p1y?CRy|>RGI>F=4J-oUu*%=J0@~TH6)(+)f?54>~)iK zZsG7`FpivS4W{Vrz|Ojws4-fxppj$<1$jnEK_)^9LTN+8C}IscLJ(|befn$JT^xmd z)6S`?&rs{C+ov@mc~BWxs|pdqZPoU*>PyucEw_II4^Zb4io|N6)0KEbq^KN>);Y I2471nw(@vgHFj%5utaxloSu|#%tO21AgGQaR6on1|QOsmSx$wqVhQ4!VM;v zJVB!1OE(z_D?^4RHs0#ukIURJ?rAr{eRib{Kr ?Im&^xfhqJae_8W4@O~5LucnQ0Czqw-Ggdn-V5y XdaXHN3@p>o z5^F5axm_n$%4RmXT&GszEyXC=8OL-e Qv>Bc2&pEGN`^vk |^ zE5KwST0`e-_zqJwoj#z|mkw2%rcFi-IdUYDNlKbTGFi5$OAa{>0vT{Pit>Mzae^;) zQyC `P7%kZMmU?z9E&*8QYd=hU!Z7oJzzN%@NifiPIa^)#(HEPC@l(dHdR_(@GNf6s& zLS4Csm3_i7ETW&N{3Lso^BQ&x pnWQNEKhhhZ=Synt63@CpD%rw*LJj|5C z#Bk*kDGYn)xDOHR%4d7GAIxaHgt2b8i~)oZK^Rn-Ng+1an$saPBd|fFYBN=>hOZUe z2LvB%+P3YWqJSyNMXbHbtzWUvv@W-ZsT_qR+}rLQ)P(S^ARcq0SR|7(<(Wv*F$P0# zbi#!|=4%l2vV`&bX5D|q jwd-0Xfr*SR_q1 zZ5C>ZDuF;H4Y5Bo)jSz8THV}EC;Ex0cWH1^;)B~WdI-3)VeX1;4dJw;w=pH8_9;r- z=oPT}nxMp +wlWiex7l93dfm2aYhZsgj$CK3qNoU?!k_>< z1n2H>xTmSNUR=aMP*~yH3JK4;b0c7AB$ccB$tXu9uG&o6r;x@KyO%Ehnox5vtaSBJ zs_(jOMAe0{rAN&>8(!x!k#_C9Mm{ddwM!M#a*Y55L0ZspCSu+1-8?o_l7H0TJETK; z4+tIdZLKf}Xy<=583~THz!;SearCWT;~qR_#M;@m0KDF%-1IMydt-Ht@;cwpA4cfO zebS1$<`24Vw$~dIfZ#_7y)PO7ZR;Ob6YQATwc(p4wm22%gp<)57A|LLPr$^tPud(! zrcdoPnesMQTcd@9yL#<5yGKoPUzMj>x@OeimzW+*B42-{Tpmk^{h1im(A}wRKv8dS zH7|wuspkZnw(w!8c}2e3{j5q6P9q=bC~mGOqm4tE&Nb Er}?{ {>WEpY~4p=Xps 8*gFS*~LkzJY`hU zgvWnbuzfPFDO`^!hV_@Xb4}}{1B%djgq01nifyEv4qKP3-PDvgP=mxxi`1~ATV*`_ z%P^(gg(!vfaj2<|&_NnW70XbiVA9 JFoyDHqh;k#hDH$B{nSF!gT(#*j6b z0|4EAQNr2`gtjW6lR-`~^7I!UQk8`&Nd`x60S6FfSKX+=d_?h!^;$HToC?0G8^S0# zL`Gb4?O3_0(8=maB$UR2Fa_#P6Gf3knTf_}Mev9{0=kS1%NZS(lx%w?6G0YgaWa2W zEwby#QZ+1m*DxFxiGgL+TM#uInDClOEgMtRlMVo=Q021pvrMFsSGKWRhhj%_g7= z*KTMg($<3#e#y&XSn6X^b2F@FJ;j0nx`V^>ui7U4cT){Soc*0{B{_p6b(=c8P37U+ zC5u7)XBFT%&2vj%WMx|J%F?u@1v!67 Y=(0=HG;q=EMXuxk|=mqO`4Ht zlan6^ @DWo}1!0aOgiBg0h{R3nWe{U(y-Gn-4bBwe zWvbC?c;aHsNv}Mh+_0)3QpTSdYiWaLgkq>sNK}(0G%SK7#<7ui5sIHo(8hlwJ@+JO zLxA%bwa8W;k}x8age`(RSsa9|iOUpogF<5(-kd@9N(gf}2!jP6IcFJGQB33%0|`vj z7y?Xi6B-quv8x<72}RKc9^nOr#u#{Di)3R;pM;`FZaZW!fm6ik>=C7I9Oxq13X10# ziVPRXG3I2_%yEOL!Kvb75v6}tfN__n8o;z0PB|Q-Dh^phGGKDR&3ksRi(H&}iTfr7 zG&mZL$V+n~Pjd*Glr-U;Ki%!P-CvBq-fai^fcI3)1(k=2fw(m)BP?zAcN(A~p!w;a zbj{T*O% 5c=C@MYo~=f=IJBm_C)aV%!6ilv_IM?`Ha)wlv`Z3yldSKRt_~3cD7HL zYVUwmHI=lXQGCZL!@0O41r+a??mmUoc;q?8rRpaOL#fg&>brArazUX#xaT^-r$44# zwl?WwD}t=R{MF(n^4x#K=IxhfCjEbE3M|&0yk*x6B&^J^X(TBl0c&ir)pX;*2M9O! zc5I3<@qDT?GmmqqTs|X!828Mk@2c9#)K3#S)nw&(H{QQ?@vC5?B@hF!;}VxEfzC3s zRR(NmyG+y`> 6HDrZ4`9j&_E zG-L1fOgj})gtE=L-J6%9HmkLDT&ph{W; 7W+0wdHT(Y4I65=62}OG)$boIn`68aIhuqL{G~eetx!_Em-}bj z>khAY4-#9a8sUF4zW&DYs)=km=0}^@CpnFCF>3bNg{#BUygyFr_;n8XJZSV$>}vY& zNNvpgjW4tg2-Zbn*I=TRbB8P=h1OpU?%{A`f4Vo~BIR|2@KRlE%UKXM B!TCDnSY?c(hImd`-ELRsCRpF@26R2*0m8>f%)9Nf zZnp1Y<^jB|^tj2QKYqhC5Qh0qVhU4D2M6HiY_HzjTe+~^8t*o>D0sRr37NP1Flb4y z95~HgMHt?<)V89RtW(rpE|7PdUAee72!O5et!sbv9K_vmZhY*#?nl(I` EsXXq9|^qHf-QLrsm%{nFKK=ta$&k96tU z+HD;J++R_-Hbb~h9j)!rZ^nPO3A1UuxRtqd>9 6pGek9aZk#^mg{cwJLex61^v?bqmJpDYl0ud?-5vYPtH{5bcZ^ z->87qMADpzogI~%yWw9+kv^vK`zK3f{C8!xqu%`cql o;^*TOViYkAsC$uc0BJ!oxD(V?dYH<@ac-QJJHhBL4 z-rUTLI9CHRUA?%w=2EuD3A?FuhudBCmFcx6wK)1`>6p#7xG1+n0m5py;iwzWkrj+L z1u)J7+H}RS9K;PmUKyK` 0pi#EtDX!JcLrFd% z@rcrR9C<-3O6yG2<=YjPBs#t>O|p)37?~|FyKFk1#vF_;#lUeqOvWQqqm--^Xu0^C zmnaRXvp&I;GAV!(6+B=jW?Kf`!cc!!+j*DiJj61jM^MQxn=|6J5Ls6 lHP0- zWW4+4vIj3{ifaLlLu1Istc2>p8;7L^0x>P>@jg6+mh5RYY)=kCRm;I}Tw96YBS~x~ z-sExV_<-=7#1V4e6G*LWO$jEkY%UC_WkTKLpQ}`)ZOehMT)D|?SHyjhA&7q=SP@*N zp-OmTc+gAKzx-BQp-RJ&3>YR^F*ojLS}&cjQ7H&c;^}74xi6T?7ml2&dm}9E^nhOz zoj&<5BC6GJb~FHSm5l`tQApa3UFI^fDrpoR_!k@?6_40n;V@D$ifd;zayty7b@-6u z%2u;lHXX6#SO^N|h~W-U!!v(bMDxl_l#z8YOuD;=#xkRZP+6l=Cj!|A3^~F}YndMS zO118m+=sNvC)A>KR~jhJP;gX{kb>SZMaV<9ZAjGla8U__5Ze$57>+rKdWK^@B5FP? zG>UK&R@-B352 i|aL3I<%5t^*29Ul6XHTe2xXpO^E~n6g45JoipM+ znE?}XYzV4gc}|+!;Ad(IOM!>=5$OEpCbr1c7!ez8 ?S+iOcK|P}gH6#va?$yOho~{~+XKHCaBoCluNY?P_DSrV z $+lqe$t8a4Q;!c(JNBG+CFUdYl zwQe*J8sI@za0JT#0KP{8^|Fb?psDxHot~YubPhu{p<0rEq)sZcpJArnlD*D*@3yA~ zt=>YE_{VKJt@3> _J?Owja z^KGd7R@;A2kD@+QuOo!>{{XPu*frZ;E7(pD*Qs?Y7;Y?!%06H*_(j5&`z*b*{mGun z{ndW!CuOab#}O9!VT{RZu5DWeEoky1P>pV Hx)s!Ke zgk-otU}!;{{ma`F7RWTuwskk#dpoONxMlK>7#WG@?^xNDEo$l1G6y3%y5Z+1HQQLg z#@yPq!&?qK1j%=GcIl-}ISDOop6LLC+@d^fu3EWEY`W>?2gNt~SGk1Q`wZ!(^_|tb zfM|cm{L|hh=_oZE=mDM%%P}PCC4un<^DOndN7rR5odKA4YMG@LAnFq(U{sk{&RH~o z&M-|z22~^n8XTb`0_CK*jI0AI3NoG|c;2JapJji-e Dr^#Wv#YPL+Qecwvnu&DT#mYo^uK(ogBX%Hy-PB<)`? zLwqMfwRH|JZ_q$%&*mX}1Z9zMJ`G-V89`y8w1HRTF^oiI9j7@`Onh0PLl8+dCpbD7 zur$I555h4E){T^rlhYif`fCO5FeE_rUKs(tn#gSf7wW$%#;&p|Mv>bLh79+@+gyJ< z$0)6?-*ES9Yz+s@TPe_60^tOTfyDijQm{qRqJkXZLKhiwF2>5;n$o44GxrH?XoH3$ zlp^eSz|_hpIP;L@<+9c^1gj1P20US#j(ET<(14PSB}j3VLmUK`Dw4#oDG 7p#=sl%4QF!YB;uamsx*VA*Ap{T6f6IsJffjIGGv33Y 62X5|vtR~s z02Xgi^FC4Zh)#92K1KMMa2Zo2`*$6xqN~D_Mb@CFJo}(4DB~K&MDv3YS5t@}!&}5) z!lG>rSR^6L4|Kj>Q5<|TF}M$sr1F$f^=d_Ck#5*EQ9}aYbyC5F2M#e$kJNGJ^cEbP z2&EyZ1XO#X&AZN_u%X71dUp>71x-68V3` Y_Pz!!`dGh>(yH9lV;i%2m0Kl&dwtEl$`)S>k3GI!qp~!C75@MTvo`o|2LbN0 zrvKmrfAC;En-Awed%%J>mJSVv_X AvLD572L~0%j_I>!);AUiwYgJz*E9NyG o_J&IJK)fAKr6!8A*)YUH1-?Eqiuy+?8Sm)I}Tz7g=4$f>ImPcw|% z-79oC7^dm_vGUCosk2CzTW*^(Qb^;q+>Fq`Hg62j%9Z3${4fqv*KANfMX_8o u{OHmZ94s?VxeIgSFe_t@F^AI%G6_bc4 zGN{TyP*mrHP}*%r`eG0?h8vtRv zQwXcOAi|1p >nD{exZnntn}3Oj#DM>owvJ+{!{Z`FS=;EJp9oP zo<2twNuvJ8abprSf3MWDHD#urnIWdN!E#A1P>CTVfGg$l_DLiJdrpUT-TkWG0+$qM ze(^dNZ|T5$O!Gg+HyU>rcIW*?)T8k%?p_2D#-^V6#d^isIx6O=j u?ThNmsW*(}7Xq!%rDn=p!AKUY*patxdk?5Dx|?DcmBHkJPryxwZ*y7c6*` z_HmsZp5b>JbhxIq6eqMtY^81Vf8->g!7tghc?#W7%6J)xI(>^Fg_Q8IsRzVF-+J|{ zL&kCBF*BWee|2)<(!Leo2ipqr+d;S&b7i)FHL>0>nQnBeXY|~!VZ=?=Us6;W(9$qX z1t%H0Zsl^) D!PsEvBy_h@PHNjajE4+^A=fTYKa`ro+5eDXv`CRvH_P2AS*{ zoMLV*i-aqvVog9am-#%^5yRD |f~{Tcoo7Q*$0)bi_Jc z^}C=QMCGLa09c*s^l)8Ox5$)DCaP)JAr|AAo38Y`_N|6f>K~m(W4oNfRMvnR npz Jf*Y87&rmL*%X1>7O!M8f2DIc@)5?`ig$2cpm<6r{{SdDi8L4w zj5W5@uaq7q%wur1Vp8-)stoQL52R-_p}OLh#*0gv92egdo|0nA>OTcOUu O3Z9y2KE*HN#VVk~w%qq}c7f z$E8M)xe5uaZX67?cT6_#fT3>+Q|4TzfHf^`y?dr^%zP1}_f|>L=Sl4n8&+;&r`in9 z KL|mt4E*=@I*md%nfA$zPxVeM&L@wy40WMViEH#gWG1O>jdebN$ zI2x8$9|SpCsT=C>VNu(R5;l+KwkyV-7^dnyFx0)!wCo_vm#;14t)~3Df~s o1MkVF>ALDH0AeBn)JbWYQsRTLlS0{*e$iue`=~Z z9zNNsb+4-kXBm2VINoZW2)TPqdTm)esX#dirR_43K5kGGb9UJ)!-|=5->9Jz(PK)A zHx6=Kvef+4J&%;tYkq`{ONisfZ%g}oz$tNwpi`NU+glF@p8dLgQcp|!EwB4yI>`^q z?k*_u6@tb{4~0ADVa_LTKQRw1e`dL!@T)IzkG5){_C!{}NhFelNE$_IJT1&&87cxD zXMel1fj**-`lm|ASGRM*+45`*<4R=*G3}D;SE?Fq9;GkaZz-YVWVvR|(Wc^pPdw+D zw|f1rD{5b*rrRA;<$OC2*)q3I^<}I19lPna?IE}ignQ>E=8(fpduk~ 3`^X9jI4qdg7( z0P>e`3;{6#bC;qF0eOG_0D0c>Sr*4L{xh%$QQ-i02)Dkgnf452EB^p(K6xdly}npE zfAPDP#{J3@%6BcNr_+@MPL%?)op*BNcttx*=v*Z>hZ4b55(Z?)XJ;I|i6ya|H)IC3 z4l99~2Jdxn($?AA*$jWnHd|6V%&2R0z9e#9zafMXg9!i~&@_K_fBx8e#DdRNt~+7e zOs|UhihUo*Xwo>#s_-HRvDA3&6aJ{hwbaL#YiN67$CdL#pHI-L%c<{-3Dx*nvOTc9 z9 EZBK2uIJ zkH573qkdRHT8e)U5uSm1TdAqsx%NeGwih12^w`|Gr^AIITcv4~Hk+&-T3mkPZ+^>> zxI=97K2tM-4n}n+DpAhV7bKEKA=_K;w%jH3^C7Qz;wP%vU2VnNm&x!N6&xyOkQvWg z(oHsD51CDUhGF0K&iWel%)!1v1h7$4l+O2Aju I^QggPy zYj~iR@*00~nAOW``@eHrC`tGX)Z@dP&3kkd6}5|TZUR>3>)jxs{H7IE5eCDsz*1 9_kfCQIlE~-ox z_8XRAuHhE@bM^_o-K4a-QD``xCNN_xii%8~n=Du(gv+_vTfPe~hUe5c_syC?7>XDq z5% v@$G4Ys )xMEC!)ep^7+GLH3Y|X)i@iGakV+tB{5i_z zv`Pf4Ic`p7o6UkRro7BGvQ$#F=4Q3qZkcuZY^lwM*#}FH{8AG3f}w7}OJPPh_8g($ zdrTm!Oyn-9fW|0ogrte4naiojU?3aA=`w$s@8S5%RWh~baIoV9vWO+>FvH^pi^f`B zNOtfYYbd&o`D%>VAg^x-!DR=W>O6)}cCB^!6I$NSA2B+vIilCNMlFx5)39gnjjj{| zgOHVg%*?IZXNvtNMS5zpXUYDA8du0DdGV9P#)7QehB3)xpA-ICcKMHRnrzxMrJ;Z6 zuNOG6k?v_JVF E$rlzq^Izr*M@SocBQ`!`-eBI`?Y23MSI$eDH-9O}-EMDQ zI`=I^`7EviQc^=^o127Y(Y6HC)6_pP?46CbPu$u-+SOTxJX_y5TV1=}D{{~z@B@V> zWgDyN!qsWafff8Fz9L>nzRPmLjd6ciW&whB`-B*Q-Z7Rx=4<4(z3nyHJGy>mijStV zHkR;OwU&oIjy&Je1{J6@J(y0pd!ImVX1Ks>mcXOhryNEf2{4NMmhf`_0CTxa1J}N1 zxa`hLVorK-6S}Fla44upBPs1$(pNxLIe;ngjWn|aw>Z$juv?bcy(pwm6Q6&&ZS|ih zv$s_PML->~Hwr1E8;SUUsD!4)16*2TS3pVPK#&V7l7SE#=-k(_gk>+B!dxAMRsjW; zu+5|?uO%7G`<=$#$A+bxd61tke68;AZEb*yr*Pv1&p_uq^~ &fAtS9)g+l-gM*()yMRz0Mlvq(qI+f4zDRdVixmE4J@K}@f-QftuPAoEOiqKF zVCBk}7>O=ak%)##43P||E&*6lo67( FPZ1Q^-Pk>#LB9ze5XLxY?6Wbfrco!ljR7>n7I1 PzI0S8WIldY+90FFb9fkeGCH`?B?R|K>M!j6by}y&^rLrDX!P!Jr?A9;L_b>K zQ$eWH0C<>lpF)3KMhi{Eh+da$;NR-qNl8$NZ1#%MV?Af9ugtCNn=Y$8>+>^qOUdf} zFU26XIJELdt#y6{N3t!tuUTPFT9xHNEAU^