From 410429cd52b165118eebd14a8b39f48dfd80902c Mon Sep 17 00:00:00 2001 From: oopsguy <474608426@qq.com> Date: Sun, 20 Aug 2017 20:14:23 +0800 Subject: [PATCH] update chapter --- 1-introduction-to-microservices.md | 26 ++++++++++++++++++++++++++ README.md | 8 +++++--- resources/cover.png | Bin 0 -> 46688 bytes 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 resources/cover.png diff --git a/1-introduction-to-microservices.md b/1-introduction-to-microservices.md index 102292f..70d42eb 100644 --- a/1-introduction-to-microservices.md +++ b/1-introduction-to-microservices.md @@ -12,3 +12,29 @@ ![图 1-1、一个简单的打车应用](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/resources/1-1.png) +应用程序的核心是由模块实现的业务逻辑,它定义了服务、领域对象和事件。围绕核心的是与外部世界接口对接的适配器。适配器示例包括了数据库访问组件、生产和消费消息的消息组件和 web 组件,它们暴露了 API 或者实现了一个 UI。 + +尽管有一个逻辑模块化的架构,但应用程序被作为一个整体进行打包和部署。实际格式取决于应用程序的语言和框架。例如,许多 Java 应用程序被打包成 WAR 文件并部署在如 Tomcat 或者 Jetty 之类的应用服务器上。其他 Java 应用程序是打包成自包含(self-contained)的可执行 JAR。类似地,Rails 和 Node.js 应用程序被打包为目录层次结构。 + +以这种风格编写的应用是很常见的。他们很容易开发,因为我们的 IDE 和其他工具专注于构建单个应用程序。这些应用程序也很容易测试。您可以通过简单地启动并使用如 Selenium 测试包来测试 UI 以轻松地实现端到端(end-to-end)测试。单体应用同样易于部署。你只需拷贝打包好的应用程序到服务器。您还可以通过运行多个副本和结合负载均衡器来扩展应用。在项目的早期阶段,它运作良好。 + +## 走向单体地狱 +不幸的是,这种简单的方法有很大的局限性。成功的应用有一个趋势,随着时间推移而变得越来越臃肿。在每个冲刺时期,您的开发团队实现了更多的用户需求,这意味着添加了许多行代码。几年之后,您的小而简单的应用将会逐渐成长为[庞然大物似的单体](http://microservices.io/patterns/monolithic.html)。为了给出一个极端的示例,我最近和一位开发者做了交谈,他正在编写一个工具用于从他们的数百万行代码(lines of code,LOC)应用中分析数千个 JAR 之间的依赖。我相信这是大量开发者在多年齐心协力下创造了这样的野兽。 + +一旦您的应用程序成为了一个庞大、复杂的单体,您的开发组织可能陷入了一个令人痛苦的世界。敏捷开发和交付的任何一次尝试都将原地徘徊。一个主要问题是应用程序实在是非常复杂。对于任何一个开发人员来说,这是在太大了,这是可以理解的。最终,正确地修复 bug 和实现新功能变得非常困难且耗时。此外,这个趋势就像是往下的螺旋。如果基本代码难以理解,那么改变将不会变得正确。您最终得到的是一个巨大且不可思议的[大泥球](http://www.laputan.org/mud/)。 + +应用程序的规模也将减缓发展。应用程序越大,启动的时间越长。我[调查](https://plainoldobjects.com/2015/05/13/monstrous-monoliths-how-bad-can-it-get/)过开发者们的单体应用的大小和性能,一些报告的启动时间为 12 分钟。我也听说过应用程序启动需要 40 分钟以上的怪事。如果开发人员经常要重启应用服务器,那么很大一部分时间都是在等待中度过,他们的生产力将受到限制。 + +另一个大问题是,复杂的单体应用本身就是持续部署的障碍。如今,SaaS 应用发展到了每天可将变更推送到生产中多次。这对于复杂的单体非常困难,因为您必须重新部署整个应用程序才能更新其中任何一部分。这对我之前提到的漫长的启动时间也不会有什么帮助。此外,因为变化的影响通常不是很清楚,您很可能需要做大量的手工测试。因此,持续部署是不可能做到的。 + +当不同模块存在资源需求冲突时,单体应用也可能难以扩展。例如,一个模块可能会执行 CPU 密集型图像处理逻辑,理想情况下是部署在 Amazon EC2 Compute Optimized 实例中。另一个模块可能是内存数据库,最适合 EC2 Memory-optimized 实例。然而,因为这些模块被部署在一起,您必须在硬件选择上做出妥协。 + +单体应用的另一个问题是可靠性。因为所有模块运行在同一进程。任何模块的一个 bug,比如内存泄漏,可能会拖垮整个进程。此外,由于应用程序的所有的实例都是相同的,该错误将影响到整个应用的可用性。 + +最后但并非是最不重要的,单体应用使得采用新的框架和语言变得非常困难。例如,我们假设您有 200 万行代码使用了 XYZ 框架编写。使用较新的 ABC 框架来重写整个应用,这将是非常昂贵的(在时间和成本方面),即使那个框架非常好。因此,这对于采用新技术是一个非常大的障碍。您在项目开始时无论选择何种新技术都将会感到困扰。 + +总结一下:您有一个成功的关键业务应用程序,它已经发展成为一个只有少数开发人员(如果有的话)能够理解的巨大单体。它使用了过时、非生产性技术编写的,这使得招聘优秀开发人员变得困难。应用程序难以扩展,不可靠。因此敏捷开发和应用交付是不可能的。 + +那么您能做些什么呢? + +**待续……** \ No newline at end of file diff --git a/README.md b/README.md index 5fa8a54..38884de 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,15 @@ # 《微服务:从设计到部署》中文版 本仓库为电子书 [Designing and Deploying Microservices](https://www.nginx.com/resources/library/designing-deploying-microservices/) 的中文翻译版本,不涉及任何商业利益,纯属个人爱好。 +![Cover](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/resources/cover.png) + ## 目录 ### 1、[前言](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/0-foreword.md) -### 1、微服务简介 -- 1.1、构建单体应用 -- 1.2、走向单体地狱 +### [1、微服务简介](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#1微服务简介) +- [1.1、构建单体应用](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#1.1构建单体应用) +- [1.2、走向单体地狱](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#1.2走向单体地狱) - 1.3、微服务——解决复杂问题 - 1.4、微服务的优点 - 1.5、微服务的缺点 diff --git a/resources/cover.png b/resources/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..7688c5895bbcb4720ce97577624a2078bbd17a53 GIT binary patch literal 46688 zcmeFYXH=6>*DV@EMWtB~q@y&Yi*yK}sPrzqiF875p@X8J(m_Ca2dR+`2}MC^p|=Pj z6saN9KoUwIH@@$8?yvLrj&a7g=TCN?WIVgCwdY!U&QE$esU0KgBa_xj|AKha|UMuoije_#5)6Y+oe zj$rx|1^{$J)`!$*!AFq?do#o4>c%l1Qk?qxH{hKq3GQ-g&=tYkgH;KGwtXf%oRozP z%`Rz^ZHe)!D_wt!c@4tKqVZP(pWb^hG5LKZ7NWdy`V##KCSAfeYPEY9u(4~leF#2M zU}Oq^AbK~9%O*!|Vsm40M_j}4DDUButJ>+t!{)&qqE8C02uwv5B%bZ2mtqGlMAt-1 zK`iIQzl_X2VTspM5TM4mREDIDk^Op^U*u^ z$=c8lgQK0N&y2UNg+2Gqr*<%6N%$)~v3whB+ltqI=v=gWZ?X0xTh7NghSpVx4zlUrTiByOd8TmKZyKv)$oy5~+~bbvP6K!DnS-^w>Y5 zHg6N0J1=4XQrWXHn9j30!esXpI~u;&n}7Iyf(yT2Zv&&1%u|@M`%KK&+&j3ZNDSH~ z+J=SWWX?vrq`#ew)3YrO<~~|Ev)smS6qE3@EffPK8}d%QB=56^7^aIvg(h&OO$)8+ zy)bmFG^H#3uC;}6VWUd~hbrkRkx(9S<69USwD$H>L)59>6`s!rD}9DfZXByDzLpRR z!cHf5=qqF$9(@fzS|H)%KMK%tPnsy)k2pU1{gEw|BR0CiM&zs*0dkz+kOsymzl*uC zs?gY?k@zU7pgY$epZx=^3m#ttsFuJ9i>uVW`@tv%(NVT3b$ zMl&<;LKzu#RhxF`qOr|u5?{*slG5Gg)O@_zv+prw-FvYc$1WjgokXQGVkAL&OHC~5 z8*JGvg6MU)7{5@icCZm|9D$E|(RJ;V?Mq%vi*h9}o@MM^X(8d@ZWsM2K41(J)boy0 z`bNpc@kH?peHw;*ii9wZfU3CiK{_JXdkC39bzuQ5NTp zyA+O{IYZZ|J~Hq#mH%?Hypiz8(m!!`^T6f$TmDl%HfPTic@{PQuT$*oS@danG0_Qu zMa%k8ow%MzrMKRY>|mn^SJNJS(l-@!VP|@K(+96f(Akf^uIne^M>*Ula+lw*+cNB@ zmM`eaM|(991jcN&bT8`hxbO3c{BtT>yYa?dOd~f*9rO|7->NB6ZKp%4Tl-KGUuHaB_VCM_oNPbFBeJs@qu0VC z1E1f!LR@_$#AoJobIQM791*#kcicuA<5K=D>xQ zN$2QdkoPY_oM^7shBlY~qH>X~3qKcNE_-7R*0}zo>>EcEo(rv4BD!9UA0>pM8<_mf z#+`gNeoLQ((ZpiI`8p;NO&Pn=A>%p`>wLohS{_b%o4T9H? z56{lM_?5tEO<56Ly(rraZF`jf`7YMHal!$l%?w7hTk+FA?P<7rrVxiTFqk#jXK zF>D*%v+H*O+y2QHJ*3Q@pr@P@+}Vjz#<`4QS}%Qy`!|@7r!^RJS9+UP*W2etdiB#A zd-L*+#!;ls!y?x9Xdz#8b)f}UrCTHAwu_@T!hXa_g$IEH@HI~ePXR3n=yh1ZVz zthqS@&hC%jpEEnxy;zXU{sygV(oH4-a>u}qHp}>UGq4rb!EgY7dboc#$$!%(#D5r5 z+7b7bW~Y}MXhNH`aA|$H5_>AO0!nY$;XH($O5ID5w8qq96kLxm7_Bjt_~{|knB51p`Gri5m!R4+%j$>j}e2gehD6uvhtrh`z0vo-u2caV++%h zaCNOqW-j9*ul8V$zgSh-fkU~Ti#$OS3wjL%ErMR6l+BZb;bkQg1TNn-)L)|}dzy8` zS}*JlVMfIvw_Mb2w5@?_kI7A6Awc#0Px zVOEq`5P(ar{+|0as}Qc@$256!?eWMxq?JM8lU3f2xbXOCF*X|(j|d68h=u0$NK@ti zHZONLpKs;TJ)GZ1gJ_Oh*v#91+Zw*VW*g#Wr>UvLui+y5L1d9(`znRpmyXvL9r2EM zWQ9ooG3iXsr8g~_lQt#qS+)Pm4p?cPRwo{+>le&Unc2Fb;aP5zuM^UZe@*-6(~CU{ z(WCg@v`&2xeW}hD@4E@P&bQ;~f{?R^zK8o&D&f|C*YBe$#TPb%LbAkG1l6+E7#4y_ z=d&2aabWoDxgt{|;RT^Nv1P~ct=EINOV)wG4bvPNVCuIqcKlg-zbDK;utalwm65L| zFmKwkvlm^Uj7V$b^N~v;sdti2izSHzepc9*e|959?hXoZ^0JsoamMBBbZK4b1M#gY zp_RUrhU%l!d;K5Ox}ME*f?FQOAu<6)2fh9eKFfFV~*o} zii=sF3^kT&`L-iwI#!z(bTY1dF423JOZOxMS;sf;pZp|P*Ds`wE3~f`eIi4QC6Den*wSB*nR@n6 zVJ;3~D54c6Z5$DRsS~l>8{A;b51)DLYC0)eQ!y1!)99!hqtWrfAmUP0TG!Ku^Af~O z5zB?zre-70*j@}{0n{*we_2TVK=OJ&)G{M2y2ERni)Ca(6A1}-Ih!!JyMsGAx<6Bb zc%ATP(h(p}jwLyXHLdGab}nC11J=0XOzfIj1mc%HJ1%M^L!A?61S@opo20(w4oM1->hb=Noh6j8X1oz+ z`?wV5QQX#{T{U{^>0(^o1^ai-PsPcYhW#-dEMJ7i2*W#bA>UWSh zX*$O-_3C>}B4E~+s$h;)$++OH*^rRKH~D=t4JzpeBo;tu?jflHTK?1SmkMo(higG! z1$AeLypq+mMU#8DyAL~1q#q&+G1Zihxq7@&9iD@{|3Jy>6Ylfxg${QXN}8S76M7E& zL1#Y1A>3(0=$$2wJ6{1x$A)K2=wSU+r9#58LsxD7^%~E)(c0kY4R>ND+uES%5t5oV zZP(GBRi67~zdxm%Wk_Vk*3T|pTePun+FTF~8em6h!v*pj;h^sa0pW9YJD|3L*OaB! zP7#B`L`i6$SAJJ9FT+gUL0gsep_$aJ1XQ8Ifm53}JM%t%v9?-1jbh+^p8gN|&S36h zGtn*GO-X_!;$}@#L?`|oJ^mO+J8OX|^pUpQ9vx8&&S$;2a4$|D&G*%lKFXb6>cTbK z1O_cgENzap<0Ve-%u(hxPOi$57|-YfuzzxAP5POvFP*;I(d@wYx)dB4i7zMM-C|Ok zxo!Fie;)orAuw%NxY)sO)5r_*TM#Ai=-<=6{Qx%7IXZv!11Q|q(#hQ>!gA%j=T$32 z@TTY{^A+M!m9%&kCf3z?3i>o+leJpu>54_$lPEcll?{x zjokMaI~|oU=b-q_&8{#N^DeKNQM1wH;Jhey9eh(mnzg)*fAi1FToJ*|l>Qq(s?JY= z5y+@60@Do}#0XK(xmnZ(Nu~N1dg*`+m5zU!c-l8^z0htDfl9d%N;~8Wr|Px0<$E!s zKw72<@T%}rr80SzF{_w_KKzlW!l}IGg5-8|?99^Do^Ac3UXxsRF^Y$`dltzNBV70nXi_8x?vfI?ni+0{Iw|NDkQ9=DR$Z)>V zM}rmgqWwZ4 z3Bx(iB%ikHb=Qq+df~TnK>v+s%n1ld@9^b;0doD)!N2fpU{Wu%5%Z$vh*qnGW9s|b zo>$}5#ITn3d-w%zE8i(rUC^_vvtBA6I+jpL0CA<)=4`s5e4}!MO>I-0Qzhz|5Z$Q7 zNu|})Cy50<@hi8*D9sY3Oj#ZxtZ-V&?!jk6PGPlGERWxJ4gM}ph*Jvus~2@R<~#O#{LKEy3zpQ` za%=enRy-L+QmnEQP^zDl^n;Z zl=q*cREYCEhp!y}-=*$+-=e4hf3_@>+xNH5#bMaSL>sM)7=Ds^-jI6YpzR9{_gRp* z-G!yuHk!#?H?6IW3I5&sj=eo>eOy6eN}l&a6-W97rX~0|$TxFpB^%pQ{ZrgSt=128 zdpgQjU-0gSu5=1c;ali~uWs3ottYk>*Z|(2^7H{4Mxtr6`J}|S(~U4}fAoWj#+7?V zl--MvbiPp(Um`;~()+T9OH%&D{My9o9z=avRz7jHQE2hZq|JLRYT`Vte6^exd9G75$*wW9;M6$ z<;+W|%_*tAH41?}dk!v; zyoAx4f@@Tq!fEHt_?b(}``3zcPmQf{MxU1_Z zX{$}#40gbY?T5>;frC&8xb7e|D|JbUzL!^PI=Jlws7Bb^4g)m-Z+lT$3Y!cvtk% znKC20&y#tKb3S~AWVRc;fROZ@ug#E@iQz(i?Si~LwZ(+2p*!w!?82KuxeXx9V0WBj z8|dVjS;#ytDl^;8*{d@cb~nAxyLm?`V$rO;)5vkOtM>#}XOw>F`5jw^YZGWJ{VG3% zq$aZ1X{~X@S`(sXthu4NH6<0aTythWHP|(n;|gc}I%8iOs`s)JSLSwj)N5_X}46ni&yTcq1UfP#Kz8O=tnJi zjRny}B*oBiDv{3TaM-bp-I3vg^-coBXPDTx>Ud}_o5mJy=wTU{Ki^UKC$S*F9PfEt z8fPh^>bQrR+*EXgpak;Hyx^s;r|mpE&ax~!mk?NE)8Gj94YSj-&@&v>+9@u5W5jGF zsAJ_`SBI-bAjZpr_6yo7x zKS9QstZoBi*XE@?)7WxnLu*aRae;p3&NWw*+=4)?(@3iC>0!u18s(GSv=|F%@a1=1 z16^&ji3$5H=Vm9?L7peWejDfEd!^82)14PVXCdPLE&V;*>-}%{WcMcT8GzYF6L{;P ze3oIJWFzd1p_z^_-b?$Nx_&Nq$@XW1&)F_eWTV-1WI;;xVy3v<+k@13QFZupbKV4d z%75q(H0Tv1uxBQ_Og#4`45jV_wUBd@=5+h?X1gnYK=5@qSkVT3?HW*cWAFHMrlGzy z!qcoCT*|A^_AN(L+Vf$G%XtJJvJ3b2Fd!l&2$<6|e`3>0s~l~-vNix?-;nlgwyY)P z%2_mLCx#JJaQ-b#eT)NLU58Gp`yhU>Ip;xtl^hGKqZQ;dH z(5$I-a3@f9ZV3qw=kKcYnBF(tLcWe)F}*Oc_LK;EiComg-T}cnHz;KvA5s*fG;kq4 zXBwi2LG1C{j;rQs0ehNp7z=}TgBb}|>hcn2goc^W@ESIU-1QH*8o^LV=A518nvzL7 zqO~S#)ON=_^L+WtgYSE;QuJYqd<05k(E7{b&Y1P6U#9pX7y{%i>#c@OoDc zBD$V|N3{Fl>xUV#oTz~ChvPUnie~GJru~8>eZLh@PCD@ZG{>n{o}j$Q#HsNKVtO&% zB^N0dF<}YCwLT5^9}dIjGW4-7 z)y7I;zO5v2Me)pv7re=uy%O&;-f3qGd+^A;!M>G4*}ZOC(YtInyS%wy>BfwjdakJ6Dy2pI+ zagE4sew6GIq?DrM=drPdPl%KuZeaV=gHr6SW-`wDocBX9<_6Y6R4Q9-KJQC+IQyxa zh8V@@x0%~BxUS-;^V$&iEXwM$j6@3AMgvG{z8D!Wa7o~B$r zahbSt1l3NSm7QC$c!Wtzk7?1ORO5QD&!vW{FB@=(cN7c3{H#cw2#*V$>=|=Kom&e_ z`@10br5weyn1vUI&(^8Bzz3XG#H70K7k_WpOv>|B-MA3(tt9m4 zjOM57u&?(=0sm-;iy0YMS_|xkto!*4vF)wVKkk!Fb~&Gc8nL}}(rj+%tG7tBSS@qT ziPh1|UdxHQ#wBo^bp5?ym~d9hb!x{*wG8=Fy13zv_R%n2&+xiu8h+Tmq=S*daj&Va zY2oUKp6|>F5YPTpaJvA=&)_2iJmvN%#tWLOH66*Tfc!x?kj)WF+kvj?4yt8_+lCOj z?i9?`^I}&QeEPx?QbJA%UOEepkp+-B9dJ9a#Sw;+B8uGay1K8+KQ@y+IX>?=WyIBBDE+)THM0^O1P$rz3O}j8z zztQS`^vL=FC)6VQa4I;+oQYU#L(^$2a3kN!$3X9YaRE|x*Nc|oJzneFIJo82QC;pL z16Ed?Z=Vb6aQ-?KbC8JN-!{qyL++?eS!YYc_EwRXW~$Q2o3% z1CHTmH{-kHZoTFhrfEg+udR~_C49)2%+lUNx8b@_(Wfk8o_m3{UFIT!ejgQCAa@UC ztF441L=~3GYK;5m)(Fu~-lq?BltF2`2LsB&hI3Uont=KzQO zOO*(ZcjyBy$O&!nbA|EjZTrT1p~YS1twz>9=Ovw0!*=hFqzn+R!jKJ4%u63h!$e;{KZd;^xP;vaN!H=;oU=rwsO01f0K+( zwr4O}oaAelC#)A-i<9?Hy{-g8hNJ>4t&fS`8O>XP?rwoP9P<}xXD-d7aKI4(xDCLNDw6#u6xn)H1cD;Ip>pTcF)$svPD5@zW}RB zKJAwYFq?Ib@hijrF|2(i#Yk)3L~DsnVp|i`baxb{VH|OkH*|s}UrMjUOkxh)A)fnW z9J9iBvbg+0{P(Rdtc$w3L9HYnvyQN~jSqV&(^^&P)!mvL0y|U;LnG-Zq=GOR5Fv7ZUWY4e>&DK=Y&&7eRGF?AdiSc1VOTT5`&bp+GZl7HOju7Ot zz*BTZ_^pJS$nTcUES@=n+;UWR8*O44}d`2Qrx+EIxghScy>IlzC^m9tl-6=^y(l z!vRPZ4<`m%F9QBPZ4l9$%Z_7v1%hVe=Y1;iWRy+ourkgdw| zl<^+?%5`MXri!7q3;1y9c(3sbL#L1ug11V+jdY!>PVDVS7xplR3e*QgFzP$vIiaZ`8BeTp4)>*|9D(tJi zfOO7Ho-$83@=0Ej&3gx*>u%+D%CH=C&TABagV^g@NzW z5gN@w-IBjklt|h^;o*isf35{e8Z<7+2Jz$g+9F)j_wJX!9_4;mzWSr~w)&3v!mUCI zF1(l)J(pP1U7yX@zUY)&dCrC*_VGg@pnQ8&Xw1BnWJ_oHW8Sa=%OJzNMjJw5^?U?$ z7c6iOrHA@(Ajv!Fd70p!zV*70?hIV;TH3KlC^tb_50hbrBwa9V1IgNS< z%qDzW_h#D75$=a+2^)ehPVqxa^oo&RpN~F_{J|!eUi6s(4aHCf?VdClRNGd&l*MKG zr&?yFifnvdNakN~;cnQ=7s$k+H$bu}B=E^f*@e&Ic3p}->0IDsYf{o@yGU>iKi_Nn zs8l8WNd4@&Mq&=bfSW)cemCv24sdm>61<9f;h%_-0ObrpPs9h*5lT)mJfyZRc|8PDcCo5fo!%A@ZV1 zF|BlD#Wgf+L?h@z6B`pnxt3n*P~W|CKp9CouA<-qG#Oa6t7?qwW~2;f`kbQ@`+=Fm znCMv>s|P@dIR8D~*}EWzy}E{!Olw5$w~l;IVL6c=4^G$XMRe2h4mc#J73asSxK5Og|+ z5fuytc|ax3!`IO>u#suGPf)J~M0B~NDL&90$3q|)Q#*T_! z4KnqmUzoxldbUH=K2M6IDeQcx5l&Bo2xrv8ca!>@T#mu%YVGyU#gE!RL9cFDhnOu? zZf=BnSja<0Lo*Rrqy5!slr0Rx-zv)tGdS zk)!)|_P=6CN!l;cQsjB8pe5`X_1MV-PUl||Axe-WWCK#7RobrAT-;ubO6h`ud5yw} z$9>9u1Ej{@vZGW|CG@Ca!G^O9D=$6RO0yBh^0wX>N~d#oXS%9F;n4)N>FZ&F!9)yP znuBHc;&D@RL(%hQ#k2Q95R#*zI&0u3OSwajwm+NNewXKgzaLmpsmrT!S>k4#9!%~f zA$v0^q^x|(;?lOuTLv#ui+PJn_YTzt?g@fP2vhjm#+2O-*vD0q*pvZ{?d8_-LBHZKO#v-^Q>!ymKCtXcl2vDf5Uyw z=pEGp!rGqKT1tn(h6YF)39=)PP>CB9fJ;yBUAY+v9nh4uyDGW8tmSgQ201nOsnRg3 zq{PW48H{I3p4;B_sdR1|vO%bqDdnKP5e_Z2(_WP|rpyQvzd1_qogby5C#wl7*D|Kd zc_f=kB_3nseMM4inVDMWM{g1_K;VikA-!z=BSY?<$kl;@&f2C$BFcYx;fXQo}5dCd+k_ z9{09whB0WiTnEokjmtfnDDoFnuc%DPGLOik0$ii9Wr!q=qz}{3p=F&PL+U8BkQ*%8AVS@*;9^ng1h4kC$ zMNJ;S&J_(IX-1h|q;76#dq;HS=P(NrHz9%x{*d3nBi)r`2SaAJXzMh(3K&jbXp zn<1*4oo#b0UWC`Nk+USw1Hj02s~}-aG$!mlD1SrW@FDeum<`=}T!wc8#}~7g6;D4f zw4b)Gf<5@PQMu&@?K#O(#o3afV#Ow{ZT5+-8^qo#DS5g44IG2MM3_0AoL^lCTgx{H zBY+)TrGbfM6aIdc@LT!mQ6Zm8n=zMHwv$ZkfKAWU=J7GkdoH9pkKZ3Yw0E`dajIkSs60bT8*qoYqIz4k)4btF2TRP7X7g8 zH0ydwHac{53sqn7-N@<>7@VhVuHouh^U5f{ZoY!sEu!gZryqxfT@A1AvGc%Az_ZVI z4siHh96U^BYCB!h##ntM$@=AR&FDX4AoJOl_%~><4M>M^WR*kLW5=ovQ0(gPi@voY zP~XgGo-TUM@Koci(3HAnY7CTFF2HqKl}~3h-7a<^J)&lD?^^DNs(@$;@e1in3!XkD zGXvxGo$dpo^|DF^Z%R(j0WD>+q~6w>^U*;=lBwug)A|a-;NUwSbTU$PPFl{&sm7%| z8u+2Nt&{;?OIaRAYSyvVK+o7jm+mCJpuUllxZJ9ELhX>eqEOpW0$ZW4g&cZC6Umm} zd#!OU1g68-PRw&li-YQ+cNGlf;E}fOC1MdZ3a|i6W6c*?ho_s*&bm%=iN#AF zpBzUBuYCZO7Bp6^uKSJMNnKu%(_Aj%HPE}jo%DsfbTT+JK?zZ>iU6xLd7Y&aUJO{0&``ZMC=HAj?cbc5uEpUXmW_a1OPiBC z;#vlry=AhGU67mYenX?SF4~po3T|7S`BZ<5Qi9ug%0L=KFcKIR=9OyT@IBx7`EZ}) zp@{VjZ1jnOR+qkGwq#Sd0zKg7xBt?40iQ~YT|YApa$3s@-3dP)K5Uqy0C+tn2Mf_? ziuY#2ie_zo*^T*%#hrb$0Dx{_Ip8Lroc>0{T6|48kNa4YII^dN7XYZfS4Kq^0SN!M zsQKS%0fx$`Zsz-`7A|%^N<%DgBOF?=D_7UuNL#&1u5xM~;m0or=JxA}g>FT}ZK#_I z3!XBdQY6VFe?dTnqn(V2U`JF_>6+t}x(?`~CWFwKAZKXBkLgra4}qK4DQt8B*XX++ zMt=2c-eeE@n=2)Lc2SX%X~6x0IxiJ$;F)q(?l?`04xGC`aL0~Nz`z`M7|~xnFCpEv zbgc?DSgN@fkW5`f=k(7bzLbAhA@JxFQ6=8x`fZ3fUYwF!8r%#z^7!$1v9cw%uaD$gfipXXYmmPTd;h-ol?5!xGQYxKkx_ zioKXx+p41CqY>r0#v>o_H+h#){fp%a5LgY)S6VSVGF^lF}WZb>+N zjHyL^#A*>tN1dO3u1R_@nxT^vqQB-IE3Es3d7sUR)P=zlKNTHQ}w|p z!8`Oj|1Y?;+V~zYS?w*3S%>rRcO2wP6|0KZ#H==G~fZTPFGT1$xHA?A}{!U(kQw9{-s0cF|)R>I79{O@r;X~?p&=sb=I&+o_ER`$igldg2 z?xyl;A8tiAAv5IPE&T_qdbld;!hZsP8zBAP`R$J#IK7`10j}MsA)DEQE07K$Potw$ z%wG8O-2u0q{xZy3Q`@0~HQZDFouevx0hax0l?nb>^`5r$?lMTW-nCFjPDbHO@c zouraSYHV8_Ccd3d-#L!Q)?hDKJ>h4+ckB(U;k{I2ikkJ4#%dS!J1PEa%BoBL5wumY z1hs)oVT1baTMSO5SB|oyXKglNB4)+4NmZO}=HjJlj6~bFq3w3|R_fieD(ZiKYtO$oPw&{eQG%2 zy9Pxg9ds^CeB3OZT=K{DCp6$C#A-DthvTpb7G2K2T9hfRj&F0vZrx5s6HuX@BTvE# zhQ2~oIzvle%K3X8mP_+$@{oYj1l`ucWvvD!Wce|nVLxolSzji%^ zI9Z^l+S(-CpJ?y4ikNJb$@-@)WD47-2DQXzYzktCs_>_$$={xlTAa(hgeayxu=jy*IU=3DkqKqP+iw#Rlk! zkk3=2{L;}=X9Gtrvp(Sq1ha|?Mc#@E;otrRFcG(=Bz^FCe~;F|4OQi{IoVL_M=!EJ zmm=TGW1^gM8C;fSV!l)gR8;ue!)t-15TSG+m9A#MI`boQ;@fI?4iCNjZWr`*6@!Bf z4+56$HARki+D3|`Iqw5i`9^(0(f2c$2AGh|{ih~*8M)HLY~P7#^%WW4-gv*O`bKCO zY41=7;sj%thV zIYVjJ!{%f!xl;GFxR#t&(bgAYc*RG)&en89sPZ;xLhnV*_O6z$)ABK9KAB+EX_gfU ziPe$*y83F*w2r~ZFLfc$@pJaFaB=D3qIM~${8fgHc+9E%G;U04N2sHrD}92Szchff zfgOPch=-kWsd7#2TMGS^S!9g&h)_0YXejC6G!fzjTJ&1_e6R%8)i8L>3HQEx^)jiw zU{^-_Ur5Q*vHVNO=^SK5@79BHIZ7$RCvl|D%|=4_0q<``*a4nDwSpAo$UJ0KLfvQ1 zpi84!f#}w}GEN_8o^}uy@{DY7(pAw*-eUL_gGS$|>d=Ue##}{}-h048^OP|SSN5N0 zuZofRG7;7ri8_OaB!R>W$BJ#jW2=P~p<@Z@<@(rJN>E3h<3JQ{?n*e2f-8r7h!z#8 zS4pJ=yA_8*t6*_k#T|j#rB>xMF6OPz(v4}qETeKLs>18z8_IQ^GNrG%$i1@SMg@cK zV8r+HGWaT~Ej%&|eZ;#fWkd5OjG_}ULLXw&)t;Up-V6~JyU6fM!sbRp*}z?uAxVvF zO+=pA1DkMXE%Pje_Toc&S6{SLL08G$@cSpfr_+(6sgifyS@5nbSsG_KZzqc1G_{{y z7(aq2AzWwkm29l7E}ASQpb-7ef~WOGnj27-X()GwogDRocI%f~_EM{2OpuO_+%un^ zA=b@*zNg5MLHSjQOt*9PAf$9BE;jecUrbJoGoS2};k=2%p8n#YyiR-=kMtpT(27YS zoE1tluB$p#LzU%ZML$L3z>OM8hfrJOF*QiXjH=4SjEW}3Jx28J@G}h%ox(*tH(RnC z2fv}E2e%*3(mJ+DYwrnJ@u)yYa;6G8C3t;v=7Z1Gg9xI!gFaT%kK7}*SjIIcG>{UT z)77N&xN)B|RE@*h=NBUbn!O#Gb3YEm&lf;!8;f%?I_w_0a1KxAbx6uzt2L3Q*pkwV zrUTs6Qg+)nj|Ul#gD_d?6#u*i};&M*oWxzE?GMfFD2>owy z_y1oa%m1WTl@%&0Dw45SpNiVr^td=0bxqAwYLO*f0l?+YT{(c80NMgpX^$_1g97OJ zwuVNRN%LlRq=C!N%14~{EPrk7q%!RS1azfdD8{iT(j7M>Ii9ZTWJ4%Z;(^m z{(GbAw7@&n8)ViOnSAGwBjf!{%443#$jB%qJ6q5S>PNQ~-e_VJgKr{#?1m6_wSkWS zreyu>k7qqA>%-X?%(I@m98GzCC@9Y7Xj7kAF_bLYb&Otirr^3D^QnKh^d+$4{0rr{ z6>s-!nd?FWb}}Z~gPt(U`8~vy08%)}iQ@@DVd2zw?=BUK`2C2y(7*n1{8}gACOz5d zq@<%%Hj)Ld10n;T-Mf05t}(-t+pvw(ZpYAX;BJJ0M5My_Hf`CcwKFw=7Eziu09P({uypnY7-`_LQw5+Rt>g>ed{Q6j8ojPeLKb>Gz0^oYZ@-nrY zl|s3DY+)=V<#wi+?Yok)vbivs<_X*28vb)E+<&4}GoxgS{c6%ZgKb3s;My1b)vY1y zT|q^u=q<@OUhW!Bt2S|)W>3*C_#LFCw|5;X<}!d{gHbdel_oD(V3gzc$51}BKYXHfw{Rr2!7k)*`3J$^t`3f_$WoQSN5H0CIbV*JzJr1 zg1mnF(6@pUg=r;N|BT|wYFg38p@vPG6vxk7& zFaHutuO>}N1a7euo0*yQ-o%r4@trp){h7O0k~YaRa{Du#2|cTnmPq^lvtoXIjQWbV z4H&_m;ismU92`vX@H`;np7&)>w*Akw zcN`>QcJ2Iaz%|sUW_Q>tBcp+D`o(ePrT{g+Is)PzpnJ$%w-T4ZqG4BYVSstoG}6=> z*mW!2{{sM^#z-E9x=IX8v@`J4dFL*99_q+7HHf@IP*2|le51aS6n9)j#f5f0&XL*? zw;R@};h&b2kD*~^o1WA1b)S-QpX)Ep(9zm#(x>=AmYheHl=d9Wlot4Hc7pd7Ztdhs zfa52iWA<~BHvkG`NUP?`qCiDkNnMDUsgaHzilOIZ#3y}I!DdT))F}wB=SKjyA_X(wtB#KOlD{lFEG2#Y4C< zb{sQP)YjIgCdus$k`qKST8Z`|({VfTbup2nbl=G3g@GH`U^~c&b+kER^FJ zWy}NIlp(isJOFLlY<9QcRZ?0!4sUQAj%(7WpuQ6MfESK&7#RVWI@7HIFPD^{R zd!1)_mj2Ue0i2A0Uo{LcdH~?>U0ea+rriJT0_}>fa>^v{rvx_H2QhT)=~C|In&iod zXI>W4e(xpk{r5eaLSRz!)dGs{he;(8@3)@q{_|6rvnW&PhO#nqI<|+8XW&!pF@97J z_|RlqdnWBMKlQDKT`|?iuvn~{e1g|wmC`(2E_dyS(WV*~$Rk{d^50kzm;u0n&O^&x4kj;qQna#vOJQ}j zkX^t3c+v0P{myVvYxMrXcyV7`gpJqJC)tTF7+vnx@;V*R>!zb0C5XQhn*1zP*X-^8$g@?4 zpfJ8)l9R_bWqp9VrX}v~h+3=Or1qiMsC03BXN6P)3<&0^)5~z)_4h1A7@J7w)wS<+1m(^sX{PcVFLA3%)tWJhnQCu>)5{59LWsZ zCH!8{cL$M=WeHc0;_;bALKt>c{iVeuJ>#cWFdDKD;uo-H8rkU5@Fgvcxu*jvVc7V! zBbe+;`U(mq=K7X2qEaN;T#~Zo{6E+I2^Knff2xvb2(cp%lJ$x{;xLxa9b|rCD?-gU z47CMWXnvV<0Qi$vImf4FdeYVa7W}!9fA4Rs>NMf&&L4dq@?rfk*m(lvzOE64Zy85cmpv1VGcr0H(W+rGse4#_VT7#`f5^S9|`J7Kf$zSmB6TA2EA z2pcEl3g%Z?R+g*XgKS*S=d1ONjS^jo?WQfU>|zBG-S4F_S+MbHtE)?0WN0+`W1Y^Xdcs*JdSu zsfPHNG{&IM(Zf>(m8qH4rR>4EjWH)v6{)>ck@oD+=5!t&gA?kT5WlZv(Zru2nxeY) zSB4T_3w`z$!hG=CW-B3Y-z(6*hF%M9gtHdieQ6c)gp%E3X5|$b3i=Zdx_By(S>m9K z74IU(BsGb+GBSxnS$xu3#HziM4Dx#IQ|-%sYJjI*CQ3dXEYA5dUGu$l^fc-!3(!W; zWSzC6;*)YnLeu)epSqP^9^RdET0hec!*ZQoQi}&l0FBI=z?oY#I@=zJ|37SfXH=6- z)UApXL7Jj;P>O=|5~_fRGy&-lLYJPZ{YNE{vtg|dxkQMLGN+1J+rbi;krv5SKQ)YY92;Lu-Vw{9ft5UBzA z<`T0LW#O@&6OURShIZJ;0Hdkco!Bg{tF9hJ%M{8gA9tcWhF*MV)*pDhjh|=_kX&xz zTJG4*#%*I|2#&5*j<9lT=tm7!T8SP_4AhdXBq8}^3`HLN<9iy z@4?WbF-Tu5U&bO|N@$09#ig{R_QFqDwy-*SwX1D1Aq=;p0_O?@U`nHZqu=N5F{K^) zH|V#$7k}}5&Nam@^VKORgI#(>66!Q57}Lrc`MlX^bR?I3Fof3vk&2F)xql9B)&_#Q z2Ul9)+zyR425CQ*pmG{r(n%+T8T`AgMtrBC7iW3vl6>=5yg5BGAzX6tMI~0O+n6h~ z1M;DNz-uJ|%IoCb@1t7&0*<)EwDg{$hnMvy&f31N(PcEdy#}&R(zkc_wMFk;3;g}#z6t|~%$l^{(Ezyw;^$px>Y51RH%I$RJ<+L6;+u!>?g}fn`byuB)w}$L6&w)aNd2Bl zY|A&HH^+Y;VOI6sW{SZ`ggh^qSO~PR%{f`9uw!?Lg2^ zU03=MLSE!M~+@`wwDWy7VRH|FgeO_tkq`u@e)b(l4r?3=B{)wl=OODQC&}B+s`8)Vbd6dWwh7 zHM+68P|}vTXr-FUdau8&SwYRzp9$?9-DhWWQH4nuJ?IBRT9k3X)bxc)5;j7T;iV^^y1 zynHKO36&FNbxKGaa7LUdswuoim@c`Pq=7>{l1Dg>Tsj=5+BG+ji=!{XKN-+Ka0C+{x( z{{0fblnI<5ASJUW z`s7E=TXIYZZXJ|^MJKbtFEBoyU4gB!%5ukPzRkamj($&4zS>dSp?avnK4`kwml0GR zMyIV-fM_Q(RUUjgoQ=!R=dcNVgrfFv(kU;My35G8afG*?uC`XGGUaCwdH&kN443B| zNQF5us&e5^RXHsOXfM0&c)r(kr?vqiXTP%usS0C!aR{5y(r`&em`=`rt*>tonZqR? z+h(}93?zTCmbPf8{uA(MM|277;w8fO7S?X%bZ6|YAX*W7S8&ILQPkFbs3Y+fJw5ZM zHj_GgPpqLaE?B`R9&aA^wRNw<;rGYmNB!_Bt2-Fvr|3q4-JeT&RSI^jNeSvB}RSvYTY*N9E6l(hTse zepRKG_(v(ZG4(Id<|>|dV!MpSOTn1UX%rh6Vkr@T2ns$(px4Th_4B;C^Pr$Z2$ru4 zKx8W-b$CrNC-uo>nf`sw*o>+YM>0FmJ~4nRik`832@xhYg>IER4{UG{Ptg>K{EqG} zB-j)$On!M9r4kuz9@Z}H&AuzCEPK(uID(y@i&o_KqhD`UBf}iWw@NH`2cC4z;kqza z&BfDP1aOGdL>5P%HxKZzc1OH6G2etn@p^Uo@%(ybDpipQyCiM1tWe-hJkq+I#o;4EdJXQiyL4*4BXFo`QXo)9rJ?N*NmSf z4rB4$>m0)<^9J0Ptp&`B>(g(9Kyx%7Vzr4mr@8gLyHb4a{aPO{$f_IsD2y~&wtgXW zV@MfyL^*anTV|+|k9__3-F#Q+++e731_n*6*NS4lflHOjaUP<>zWQ%bIaS21;%K=UMS&&+3u)2B~cqPnXI+D=M}W9`wiVtc^`^p&~PIoLS^I_l~;Iay_UddTq=gk0vl(Kv3ivLxsgFE4K*fk1e5 zV%K=AsfwUIbd1p5>iP00Amk{lC?ZhVw4%~3oFwvxr*&Bys14T3^OrNH}$H=0Gu8@Qw?^FHC zoab5uoVH@jBIO}zTTBt3I%@6@bWP!4?K*e|2oXRF(b2y5zF(ELG{bLWtBbbYkjTDf z86c;v;rfutvW}U;R~=u0%WB{P=gikGd+!jGLDojS1<%59zvJ(~9ebzgv3c1Y!>Dio zkcTI~lkCWiDG>66>5Fmdd_N=-J26H=ACv;@O*H`WpF__eNdD?T9d@?VA|t9^Tsuo7 z=qM3&G+=D!@N;t+?MT)`w}&)>V3NO{J8w~a=d=C`q%0)X(fo~8z)kaRZ7qFmtUj?FkUf+KloO#5pRRQ(AUG7$Q@^2l2k4^r2 zW2Tu?PdFcQ|YZuS+XZ5L?QEQ8xkJ1(g7jkn-L%uv9UJm4drfu6^I?_eWu7jcrKi>41P!zWPm)|(D|v%&I!tcC5kX08+R8GjF?QLg z9@fJhoT{nb2S|l6ARbejcj<6RBrb>xJ~EBFVRudD(T~d5rqveP=)cyxQ)LCq)LsZ_ z&+paS3&D4s5Jxl?m6$=;G9E}mDlTz9sb2$JZNK9Qhcm01ZV5U$?QDL9OYwxdy~7 z$$ClEg*!q`x#=|>mKhSRX>aGzX?5QbH5|K5Xd-v?9#eyc}ZLb)mj0_#j(2yHs z>n}$lyyzKN;gCpuAJY66RX--P-i>^aw)v2dMG-|0P_P_!I0F)ME(}k3;dsG_tUA{U zJ}wk#&@UeWE*G$OGtbvV;p!%2{D4v1@$FnBQ4fp#B$2DFt+)7J%WlWE3ARR%>1B`u zP4^Lh>{H#|#zb={ejh=&c2I$q=&fvEzSVTbX&#<-bQx zm}v}jc=*ZR`q9wv&Ko@0fh+f<8f`eXyc>!ZdpDc8tLd=fqUGskUz_ADla-zQJ{^_b z!S`i&r_Fnz@V-c6>pNGimajbIaSh4jqR#Pk^1_-*z_;Y_R97e znP2;`=OA#EqI|Qg#5e08;P~&}zo7LzQXyn!*W6-vq?Vsw<4GNJ7*b%ZAyWDJ zGfqWumn>;jLS%SZ9G#3`Qj+O{g;5WR*Q|J4Wp8l{8R#-vU?NNGHEy5&kUu=KKci}J zN`fn%LF6H}CIwIwS=>}q=qtm3l7tr)IO@n6$c5xU80tX-ixVoGq zQr^JGs*3&+$=ay4$hT(LU>V_6K0#u*#ct;}Y9ZcALWS8QMWB`UAhS+>VW~G}c&bc4 zEKaZ0Z!Zd?`+#=~-EBEKDh$L-?weB^-&XlegjgdGM+Wqp$YP_qc=EuETeU@3 zDCh+l>cb6^#FbEtI)7S@aHd%b_tht$bs8t-lfys#u_p#OrkSXh3Hjdv zA!85Lu6`El;u(9jx>^yM@{s(s$rlhTE8W3n(K#0H`~%opHDSqrt5g0U50C7Q%n0^} z4x`5}q;Y0=!QgtXJ^aCy?|@%AzH&uUKXm`6>{d6J4tv(Vnt=$d&bVrfL3&IdKZJEm z)f70foRqHp>ZO;wihk|9lPfn~QaV`pUgKo3M#5oayGLGo#iORft*6Fj__#}}z}IAj zeX*u5>ET@SCmejz9BE;vuW^LsP^)g zenXP^NlFb3Y)j&=hD;emi*A{P-sL~vJ}G^=;bYbT=JoqSkA#d{^2kHA{d17N@jP!6 ze`{XmA**wKqgOHSTKt{*)O}oFo0CHuR);K=rj3GRq~+MjVGLP_hNO2m zeE6G_wBe|_TnUwvO;Wb(`5wl^d7 zsyRaXa)t;lDU<2w&dg{I(;<#WYX{3(e&Ji*uAz;Dr~>Ls;d=%|72J!T;8wD-vgax4 zkb}yEytkD#zTY|(t1@#-cwc^2d|@;d50P`jgcgOSAblT9Rs803+o{^5Edk4CjxWk7 z7H;NL3{}m7J@jrzhgZCO%Fc*h->#Y?JL!l-{31I{v1MIb443;(;f&V-9LDo<31+Bgt1EvmjaU^*_N4^wwZ;p&I0nQkN@2BX^P4lUc;t8ecroeePM zPn;;)XnoQGFM&PGU0M0^M&<=B{lvNGP&B1T2_5g)%i&kYl1 zkB*b}JyIKP!8pEfwEK?dd>?FL@DstKs_%5Od!xH~SI|IE4uNvIXECa7=9>Z;#SGd_ zOI`c8vQ|PIPUEVHHvZOf_a64DoEG+qev%~f#f9&-u`pO5asReRWrikKSJXDe zbS6(hCrM=fyR*@##UE6eK{0KE(v$hnpcT;P;Gzm5o8O*HXpK!8@Cg@vI%?iEQHO6d zv-y*sncy~?OgaeFu6o#9>KR%Hp078L!({a2%gXUnlKg`_L{3RYGz6EPFHGwNpaRO zwOQm-*-9aQw0%_O+gwX*J|p{}6C?{>bo&e@izAMh5=)XI;4jUnyjc$e(bz$KbtMRL zRt8r;E=aHbGmqw*LD2v80{BYL-X2P=A$cvrvB*jhjM4mE-{JZLrhZoMHLLs%&^9lPwr8QX<$!f1Z6u_E^}pU{Z|(uhZ)Ve5wzm>iy) z5+jb}c(36^{HOlnSnFgC`XqSz5&~^u*74!WvJLoGo#YP(cJr5Bt65>u8dq3Qiop7- z!j+SOH+t|wyQggMqorDI%0=^5lc{&BE*sL(DxpD%SM<4!F@wq$NLQ})R=6T5SCnwH zS@eWx(Pz-cT|yQFVYFG&`5owml|0}$Dotw>oZvZOg@aNzv_lBofQ#SpM|(;JPW10Vt>4gsDOaLC+Go0*iH_|B<;b|cKG4A@8Lo}OzI`9;d(#5 zhUCdO4%aut6Rk98z%1e1w(g=Vg{#($V>|imX%+n7hzH)R%31z?^ohU7XXuvpT@!)a zE^#k%x-U9->Pu=9O4M@eXLnzGVLK_Mq*6^_6RR**xHYs(`2>Uf+UQ1o#aUyp$tpeB z{ne-GpNu|+V^Gu9<4Ah6kwHOCv58?Ernp!n7DH}^*YO^T&3A8d$KRGGwg-?L;GB|ZZIOor?(jK5IWimdt?Ib zBVF&;x^z!pT#H%ZzoguWxvs1_%tIbYA^9qQ5nO~bHeUx6YD|?)wtw^^?O!u&NW7es zKcAMB<#rO^`0f+bMp9~`3#v3utD;LrpsYOD@bT2p*4EyaU>!dlku^`$4!KN{Kle>0 z$HFCQD$-Dk0AyH#?D4Y~!N2)`_GYWu^=Aa(eZX>vhp;veK$U2PqZ1J=(5z~rCkg=y9M)MSg=dAfTT36GU2S|8IfWc|$7 zw^E5?GCZPVu(~5tJ`s-r5Ly?*oj7mgzcdCgcWq&`T6tEGQFG>eJOoYFemF5$Tu@MO z($es@CSsN&mcws**y5Aknq_2IQS|Q$NIP|oRN?9_`7JaW&F{gjnWwduNYB0hHS^CK z+U_lRZne5SzlA{KeY5&T1@>5oK*{aAl41c}M<+&l@oH61ah$=f$FZ~a#~P!pmf~PA z$u3oZ*P!B+&z!qGpD6=4w>LLM57sP=y`0K%mHGkXL%{kI$}KG5;ne&-6YePA)3p#mXSR{oxgkTqF=`ixaI)a*g_bl&wwg6-zsjU*xFvTO-zW4jrfsh$~ z1pkHlFrRh*nl+sT1zsClj;%1*n>i%U8B7(T-c-l*Kzz5MUVn}>piA&qt`YAW+!kEp z+2r7>!>uD*G+;L;|AQ1OmT6dfp(APq4UnyHRr|5cq01!1`+3?h(KNBM^ zaza=O+dDE}L!T*7YorRI&)4pb_@F;y26@>2RlefE0PSLl4F7IIl-oqiUQ=>zPUf}M zhpkA@L?q%U={6hU>~}+-P{pXFP~b=Vk!=xRtnvP%<5^WpoMkUqrw4=*I%@FXYUM^% zxXMZ7xG1+j*7YT<1s}WdLAp+i+FBjI*;`cOJE^5{Zg20myX|h&it=O#{QKqI{iESf zxczW{`gYs3M&cM*98-JcEwnFVuM$JJ7dVaEBSK6-f5K;}=ZjUDo=a}+^#Ufu*T#QR zr883@Wb#wa!0&|G3+rG%>$tBVp4;aZL|&nJ!iALtDWeSi4F}U3s3} z)1Qa4hVsF%ktwf=qNVKYx~P|IAmDr0>b5#-a2X6DGko=N%mxG3V(aQ}-JE_Z~@4$YoaZRW2W|&Os?VTO%e2O(KsBb1+%OM@U2dr~a)4g-+ zn$3L~63%b>VA&Eb(*!#-gCh!U+E}?*Q#_vwi)fsqWbj+7Qb+2}I$D~&KUi-mHe|!( zPC_*}-x&RszSiJtVgqaia`s1?B{!NYFY5}6MQffyE9i}r1oXxE@-nAUCUu^FK5%^! zoXL^#k#R(^8Bbu4g4`ypsG4FeQ@llhiyK4W{kj|1a-48xbt4{OHnX?A<$vb+GOj?j zsgcb=G(3XlD9r4OZ=E4lDnDAbR?{_v+Ql)Wl5X>Dxe_`_u#xg2kVuhyGIE`%#ck$i zG^6PE-(T~`oUzr`-9v*yZlcDPaw6C@dtv1K;qPY8i-3V_B_gFdo}YGu0O(11h1%Rz|bV?>Jgi z-MS{gT_LZtHrTp^L`7Zc@NHgrc~JZL{?oGGN~35Q8b_kHGOmTvxZ1W#rxd7-R^6IV zN7LOVd8`=jRa3{`qbf16Xm10Yww*~u>T$0Oe^d&u@2{pI=4)Mb>5U6PUzIICx<)&U z;wtZIwHl4m1D0~TeV$+^pt$wIXz=e>QAtJWQF}N_`PbPyz%8OtRfzI;czZ3ad+S?8 zd!iHK-@7d;*{?=(&l*=bOSZa8Kb}hAeV^%4Tj_y1u}$To^!*(2*FrW3`>Gw*NzG1g z+JG}%ykrSD$-+7pcX;%^mpyjnkc5eiyR#8IgDJ))37Gx6q#hu&oQzgjk-wWa0U zw^@~vlw2D)RbAbrnrfyL4Gw?vTD2cMGv04|VlDf`5#^L(Xrpx*!*kfBY@?<12ZF0V zWbr}m%$*zU53Z1KvsWVWXKdSF7_j;!R;s%v2uJrgesP;BQ(#Artf{1&)9=F$&}#=GwGb6L>k(S!go9F)|hrQWmyr(z+4Z}8p68FcFmxqVmP_MN(1b(7&a~T@u9&V9YvS zR=r1|u#*Q#hxgJ&k5y3EI%7+(7i%xg&ZHWYUc*x{hy^>etz4H60eLwM2lWc948Y+r zFu8z8>iaTxOk#Noi?6S>L`pK->FTd4ja8|l-Lr3}f*XPn6>_d6I47s(TF%_&-*JaV zc+GV)f0a68FyR@|rfxHs@|t6IxjD&W85SfZ3^d=tgONHZ{9O1zilxc%_ASe>j=|20 zg9az+=>J+L-@WOJugvP5u5+kLm)wI@rT#7d@_eJ&LLO4=%bM1;-MrgSm{(BHeV!Bn z>yisFPk>ll32zy>N5&M0|MiG>PdT8 zR|+x-Lfn+tsdB8>u+NUC)Q5Arw4ZttI$BM6?b0Z8JhRp8|BMMgqfxjCtw-w}Yig=Gbi*nat#LzAp>W38p+OG(ihPdV`) zu5M$CEBa}GK+6lrsV4f4joMiKZ1-*cd05vL3!!7?q#5}&CR&sv1VYYCt^!B_cI;yv z$3_uW%Q{+e`15Lxuw3;IUQs(#W zdHNN7%+GXji{EEcp;V=$1vf1;>g=A5rx0x!3apQ&iO8L{USw1x9}TUyCtlF1s*CeY z5J%-MdMF9p!0ogNl=(4+m{s_#=kM>FCrQrfdWS`8$eG+K=H~$c0SjMmQ4P?gJqYh7 zfEB>$1?rYRm;e&%TfcPD-xwa(q}c9wTENCGV`)?pnd2HXc_$~l=&-IZJ4#Zc0+3UH zA>;F53_|D7cPj8yK0t7bh*@bQrjCd%<=29EIa#<;>a&F-uDgN(37>RQ^Y57%eOJXq zu8zmZ9gc+={xkD!CDKE9F64|P2IWo=tMnXU?g(q1%q>kVaf>YD{ZC?@6SME4}Lv)z%Gn~ zR~WUjRNhCkAnXMHJ@NpL5wMuTJF4(6R65`owXv~r?eDY8?_(fI&$rYuA7Cyh-HOP< z*N9ZZWeaIs^mHiIiZX-p-D&gIe59O!xybpAIA2MM(XXA`QA%gM(3r>?BX-kPl%+2U z4Lf?|)Iyc}u#{1Gv6_xOi<0zxa9<|_Vq65bRAUo&Cz=CP{(ztNV+7>{zEYfGv5-se z)AmSd?l9cp1OK;vt(*J(S&qDmjI3L6qvAKg!*9I0G@M*%e%`I9&2mLY zv+X+Z(gF+*-F$^iR}1vtjI`AhO$nPiVX1Qow4f1u4mp5scKdkRdax5!;& z{e07ki;KTG|7@GwUd5qJhiB^K3_)WflHhTlyGuG9eKiKlyw*nSq;El-Q0>Qrt>TJ` zL4Na=`h_TiqgaeXw!Z{)#LdM;pa=T3+PXj*)KY+qqp$mOmRB(=|4LZYqFjs5-meKW zRbmk?Sqk6cs&P~ffc(arVf*!XShsERUW((qH8+7xJB(f+V+U0P^05hamX}uAeP?i= zuaw3MlN;nQG7(pT8iAnT5*eul2gD%*1nkJ*KR1NYB&^%uL@Pp@?K`}Uj)B55)D=!~ zK3tn`whjGSW8)y4nGOeZz-QKczT3(oSNjQTT47u^f6#S{?C_`}S@Ec_T*16L_dRmr#zX|C=~`K* zp<9+i@_!f^Di3MfkcIW+CIDRtO zZ18Y##bB6gGP{IjO2~T)XB<`|5&YLDFt38mqYrlB{4yW&;z%_Uo&8a8`Db@kj%}yS zV$u1)o$}1Oin))v@S~(+Vd3Dvzi7&{i(uuHqhxu|`m60==sRkF1w|{J_%T=;`GR+S z%&Rqi%1B*#6bKrVwLL66Bp5YFL_M3cv8-MTs0-B^a^oI~#yQpHWP1hys98$Umn*s- zb!2h7ZC=XT??bryGK4UL+6wJ`*V*MiaQo*ff|-B0KsA9XWk*@EALaVk193!>)Z@SS zfKo@UEHnoGo6fBM!=|Y^(WZma0-(zk4a6~=Q8lYAzB6njc{#!6q?dYBfohXW~;(2L?8ZDwX!3r98Oi$(PBt4`&3+Z!rc*Id} zU`KH>SnRoB5u&Tr3bD!WoSqUdUK~wSMq6-dlwj9?l*x?(*dKZcef$t49HQ%M$d9%* z{1p-t01>w;0b)oih%#8g95-U0AQbnn=USi46ee3n!i_ngNu)`iW)9U}3y#1Yx};av z5QOcC_O9hLk+^W(fQH6WBke^=w7bp)uUTfhMP&f14hjsQnP$%Wd9{zwOT{YVcu%XP zB`+b5+bs?QvO>8e(p3NmARFBNc?jc}Snu2POAwdTL!I)uq zx=hh$W@8m?r-iL@QsJImml=rD{pSmq%}@vtX(&u?Sk&HwQxo1$o@8HUglg)puaBj$ zPY1(&W2mcF#HR1i3e_9D3&(sYAm2&v!N+YQP-cATIPVwa;`(8xzNDrtEvF%b$5*!2JA4@HQ169ZN^d*JN zJ0TQ>G!oD|Sg(>b9ZB8cd*vH`1dR}hSH-uU2z*U^B-RE*u&Z_M8F4XB*=nInOuX4-z$w->-0ki7iolZLl?!mtgByl%~_oD&E8W3jq^Kx^|K%oj5bjSh! zeVSrr^pOzdY?ohCymoI-$mm;+=f@tUd~Z%?1cDFf5-`~W%*#@wn81Nkw-Saq=r#sP zq%ONd|_=}#(pR1L3tJ9YaP0Pg$%^Kv&%GlBq1IJqF8yCSh$Hq z@yKSrxpX(3kMD@<1x}#$HY~EOzLBbnUe}>CL zb_d^)h@jLu(~ek3_<-cXEY{eMWu@kI!u)Wp(vuWx@t2=3w}&R)Gv6y?R4#Y6*;Idb zua}_qO>Ax&^W^2>dW}`OKH4rnB22_)L~_t*(%F*9;eLB}vjuXuJ{j&1RWJe758MG+ z4xqTeK6AujFo~MFqMS++*fwofgjn|s|;gXr3hX}4qV-yq%Ubp{uINO((W9TzD7V9$)tV5|r zd9y!HZida4A!wZq$?!hJY9X~&bm$WL;PGeeYTHOsTs0?+39#sVQlP2dBe4q z$EB{-XQ%!xpNc&`EBg8Q3Gl{heeo1eqR!H%q zMWy7kD_w7tRzXJsp~Rn48QqyIjt2~Ym8y%`sjGzWWRMxOigTUdgvZ$docI)t^OZts@e^bV^3B5uf zN`PjV499-mUwN>O=VTd~B-eZ&Z2;7Wm?8($*6oWoW8A5p=*IFERky!S_EP$!|`k8#BSMCjKy7{NAc2Bdf=tG+d6(yMk#LjCG_(p(< zi&zg2=+e6K!E+To6p|}3Y27~itam5=y^&J zu%K)raG{rdkw7Gg#Q;UR4#+BnA&JqmYWa527m`S`JaO@x!4UNeeo_3i5|P^N&;|UK zQ!$JL6>iodnPAD1=kay^-P}&g>mvQdz|MPa0P_fts?s~ zLQx?4a6@n)aD_2_reH&^e~JOJNJRc!AW?MD?+j49n3*we&6t_eYqftZzHAa>KQTq5 zODDK){6eG;<^nQ(nZytrfT)t+p!(8Lp%p0wK4O~OIqF-`Gfc+57kDZ9>l--3CzMgQ8@YfB52V50vN; zgYx3^^Wc;^5(mWZLygf)_+#CV`+Yb1zIHz7CjgYScXoG$+=fzF1!ywdFF#ezhLCeb z{Rl@1<8&@$8*(v{&){PdYg8VnWanY=&Ef#u!Zy6-KjG$WlNIOx{+a)r=q9;R;C0}c zvb{*5&-<6~IdT@P&JcPvMjvxU)kL5S;vuY!t@LCdj(%l_{GK9+gMUZI)C!KsaI0y}cISV%LNxWf9|kDQz<){Zu$l&kQMNkd zk$x!2xIA(vtO+sJpQosp2<_VlaYz@coi5T;vntQxV+1tw(|P3qz4mFrDpKu<7=UX16+^=l&R;a7#}Fw zyaYC)=YDJ0-RU?_E$<8I!oR=NLt>*35i+s|>`*}LSZBXMaJL0ubg>w|sd2vRf~UI*q8CRsH>ubyA3Ll`rslbF7 zOqmn^rji)amtnt+8MmD*9{!|<0Fmt|@K#{XxKtd(94{_mfSCOZorLHzuLJ0$^K?h_ zC-^b1s*UI91C&njIA^QC0#R%rmh3?UU zj>rsMglosZ`P|2hPxUrh807o9U5|Aeke@XASCncY!OF_oZsTJ8F--C}1-qw!prF zqlU9&B@=0qB0!g>4`()B4W)L@R-hDWD2|~v7TR*wVW7sCD}b|RY(B+(*kq%X!}-#Da_z_ibvah;1t%PB0m%?~ z6R?Owg>0&qJj;Sx1neB;W{blaRD$uAAGuED9`f0wzEX{EoBg6`It6QoGch8t@Kp17 zNc*MjU3stZq&Bu3d)ILWQ#c^C=J=&#CWs6!+Nd>l$y!pbO=refyH3@^vRx8+p$jDy z(ZHG?mKv$=?Ce|+h=Jcf95?iA&=nQ3WF&$hmjco-`suIwGD59!hk;`!N(-sg@CDha zDkF*(DJE7#gRlR_M3LgJcYRDQE#D~YRTd3q&&ob=c|_FNQ{B@{qZxuv7X=K{)%0MS zek_|JbMTdSXzaO#Y=)J0YX8WupNIB2p45B`@NqG-lV~!64}iLMkr}d|Sg$bV zbxjOz-}XpQ$7nK2d)n%JTsgS@)W|zDwrf4=X8-UTT23Y=c5+j=hPdzc^lSnoPynnm zuzE)RUHruC?5uI|9c0JgGa*4BJAECy*U}`gp05^gF+O?(+%f!TDg)I#d2y#IdR-JZ8o7) zcc*E(&=vx061%#inb`_|0>VwhV=t04%NxH0#pLd1_~Xd6SdLieGn4uIGtLANs4`!F zuo(}FK(yxnm^4D34*+X-0TVhHtEELBgpVtOoF`$ms+eRm%j}*ButvK^09S{^1r@D( zjrm??R7I;BTztr((_aU?znm|g9sN}}8~0M=aj{Lo=vMY;$bEmr+^`L;Ft(#;$;X+b ztejDv04M=1R{dF9iam$|AXOgbJ>Q1ds{AqO9GzWI>&i9eTzuA2?yFswzKFzlEcX#x z*QfBqk6zw5X;PI-IQ|1UFvQ(kUnGKvpR*l>+W>NQ7A@m%82e0 zM?kz*V{@yl=;G%2nG=t^jHJ5_TqN}Wsbso#Evt!1v?y-+5gX!tqDX7|l|X1uExO5ye)mZ|f|>(}oCp{v{w!BM22G;Vt!+{oSAMQD(Mp-@|_ z;I%GSABip=oiQ=(!}Q)YXjJaxgOig}6pI@7OCw~m2~Nerqae08Y7Ud5>bq7GS~@^2UU37|GA(GcD{1}od0mu3Q@7d;og6{NQDn`F2OL8b zo0VqQu)c3}Ug+<5&Qj4EiNnTbA`f0z zn6s?JEDfB9Q?%t7ej!alT_evk}VRzgxq2DbWvBdWegRAmWNz;UT?$G%8R0gCZ!H{gRE}^@k z>#B*pcS-e%z28QnNcw)p5S0Hf4nFs*N6?s9q%99U)G0+xsXePuCPYt}TsVs#zPcZM#*sNIy z0^9B*w|PjqctlG~V)ywq*q(*_Xb&1N96J#ZHXN|o`T6L+-mg1mtshqIDK8M|zd-$h z0v+e{ZQR4rO^$!R|L`j2ZCpXy?~~`1w@ztBZrT6Bo>sFkC>tp*oVc^C+5lSi9)s+V zyfyk@eT`T6zq40190Z@ny%JVo{{TNUJE=cyIy9>i2b@Y$vPTXt=OQmChvys4%~|XG z?zQ8Ix$XT5@$2-9%Hppn(cY8)R1CLnV^vkv?fv&_fSZ-vjO=px^b&LqkmLuIuW8C- z1@C*DF}_WCIj^My6*MhAwfIlX@d)bxijPM#%A86_Zmp>7r5qDbXW&+zfbx|C0fQKj z#4jy&Pv?Q7Bbw>(zyQeqILx5G1(0^&V?uy)rHZd3um?%UP_H?l%g}S){Et*7retp! zj(Q}#Uu?TBS;G%cjj06>gbWR0B+^e>5yPAUHpZY?6TGQQ=2WlA`xLnN7MIy919tlD z0s8#(l|ArKMC|41{sbV3PE&%dQi%ii7x#;h6Z_D2AP1f-DqN)7`k_RS{t<&UUGrOm z!Q^}#@PzCaSxPXd0h5(*0L&gRwN&6TBsbM&VngTw1?LHHhXMuXJ)oHHn*{U+K=gba z$%Y&|Qrdq!OIQ&Vl%8sUpfB0BwD3nunZxpCm!YTruyiW&{Yk?;_PbZg=uS+pl z7oJ*%WoEHKH@N>AvH~6Kq)18z+F>*!s{BvEX#%^Nq!E!hGGfzCzfAAc!hZ=9Mf6pg@pqK8^w6)(R-w*$v-PH|z}l*7?Z_ z_ei6#;{!7Ec_|A5Y^+3KUsC@BHg#<5-j5Sxmw$PhUnAi*?*pVga$thXvwJXXv60&4 zm>pm4Eznl>+N9zWP_#h#M;KCJDzfHwoW&(T=)9H86)s&0Dx2N8UKn0O@(AqpCD`SB ztF{YDbO&&~J9KycN0ebCrWp&lv}sCKsHH_8NUz6o0wFy@_nH%z>sb~ zQK0N`p==93p zW1i(aHst&uUAMZDmXq3Ff^X=vFn&%H3T%eUXoE=T}|5A>SHGp#E+JJ>rYY2n$jXz-`p3$#%>s;aM^93tX~)! zG$dhJs+MeEd11_9UHd(&rn+;_(8nr4$cutT5rLwf zT{=Uq*SYT1&m%V4D8h939A~f&fD|~x3r!0|DgkZ5QdDyI4Z<@3KWV_uCg~3dRwaf<5^L#giZbrdiF+*3(-okw(fBC{58VA$GJCBI*0AutQVMsk^|MO7JqOKNIrl3n$3 z3#rC3u09->XT74ZN4vQS5kJcTEmP>kO;VKN$T5|)FEGEtJPym`Q@`KJM@b9ao`{rB z1!ea0GC*?##30NruIs^10U*T2`=#un*uWajK^&_@L=i7~*;andK|Fagkdi|JzgW0f za2({`pT?`ncbgwp`XK=&wvqB>txvkur*I}bH>7I%hee8_#XjJX@q**&U9I^pYrc7| zKLA8zTle(&Q9f1jDXlEF;m`u|=M})#ZeBdh8O#vqiTvcIqTs(cL~6nYE&A5x)p0{! zy{uvDfDEr*b3~RU<&lrvq6(*W>~fMv*_xE69m}te z#oo%N`k&bCJZ)AC7$SmBR1^KKJ)unC8r3aOIyh$WdHPLDw~Vf-&Z#H&MecD6CA@pp znW=qH_JI1*GxATshYXqYmOQsOxMAig;(uW^$(ay=4b~;vpAtGXa__+sJ_hwm$WO3Y z?MAN@-b>NBrzHYvK%98oeJJB2#{I*;QZ2>9z8~*BE}Z%C2M7bVe?ATvtep-?3C*&7 z!gl-go%23~t{77XmDn3yrBzZrfCgQsSfYuqs#0EW?mFtZFd)i7Csz&1h-Pr+a z-WOa#f**oTWUVQLP0$ciyV8g zZH%r(rt`<#H2Nn-=;Bq3vBYwmyIuYf6MJX!Wl#v9J>x4jTK|4JoQ*ngAMA^xMQCD3 zzVA6$4FF7?I6^;Pe2X@b>5D1c|Dg%HUsJ^KuVA*rbi6G}`OrZ(H@EjAimelmGeN|C z2MmaJe$0iM>-Q&g3QklPol)}qTz2OCeAE5cH+zE{KS*CaYg*kR{sCY0{)_o|a`VS= z9mV1jdmO3deWvqBi=4MTS_!N-(~7lsqtRt5d8bC?+ptY|DY(PJ}&XE{?(O*gXlzXm-n6*=3-r?#u zd|G?dG*?8AM%D&qv1%#=Ds5f)`GdXw{1GTsM%>jYKA=we2?we(u^d1Nn;KCP4-x6s za^3AMx1Hzj?sxmzd3Qg5R9-h<%Aj>Ab63a9`hM_4b?B%?#z663$fX=V$E zN%q$6GF(dh<|6(@VYy1O(Ea_6jXdq^=Z6LP4~J~1!&RqTAl8zd0s7YKd+Hon$M#n{ z*X6d0xR0Zx)*ja!@?DWKKW*qfkJr9DPl`wQ7$hkPggvNZvs1S11lPvqBnvWNyQeAN=@mbB-IUuu%lCN1U9RBM!V+n82aS%+OGB|Ud z*IAyB%Y7V~XbF1e={+k1eAn5rFt?B*0r7C@a31(W{6(Vz#dph59a6IVOzVv-5aEsk zQkpq{q$1A8QA}bdySzcU=9}bn*RH?;4&%ZC?q}NaF*oP>o0mU2*l~)lR4rO@_iPOK ziL{iucTS}(0o7vxxSHJgXYVIDZlwZf&5sS@?8S~U)p2#)|*^m;jBF79eQh?UE;&eggo!o;{8s`hf5kb0gM zc`=esEt*?;@*s!UKDH|422dF?Gnp@U48Stc;BADZTxNVc06yAY)VtF>jcVrY?ehP4 zgKtEo-22GRe+!z&=c6&OQ(FpYT9x$b7kVrxAAy`Ji2q)-=+rjxEbS=ViGx`S6gXxe z51M>!f)sQCFQ|qA$^25P)dyQEARx-4zA5PR9`61<0T^RloD3wF-Xkz%CMRuC2AOSl zu;3-9@-()t?^o_fUF^Sci2^R{_SQeA{0}Im0U}Iq|5X{J1xRONK=Q$@_c0*PMyjjJ zJLVR20bCn)FQUI|h3CC01Ny-);4Q&*ypLxS0v~z+eoDSyf4mgG)6@S}`V74uxN*q? zBt8yEPQ4L;k-a*x`bN0@TmDBm!081@V7*V(JD< ze2Oa?fYh~4v2-|`NAHo7=!ON59idE*Fi?-|9n2l?k)RWmw14mZ zpxN5MZj!j35cTt|Jky<=r2K7ew;1dWLNS7Qdx=}laBTNR34SG`4!yB%)5p8n9PM%V zYyRBPHyS5EEh$0Zj@Q%sWw~t`UYEQ$x!PVZosxju_isjplR^P0CfCLfXaw_nB>4%+Ovp%an@jLoqF+zZr*D^2qGYH@Prn0r9+daI_QusVDSm=r7kic z)HB_%Fir-7gX3B+R_qYGSKgyw!qI%AmTS50^2n73pnC3*jD*N3v zV(ex88^goHG_XxHHdt2sTx|<|YEgLxcg7`u(u|pT#s#Uwsy>of#bkZ=f-GUA9 zK=z&G*bjV(LxIWK_0MuVkk&K=FXZw0cl$LaK>l+q6lI@s)A!mYb!bSBc>(erbVmw4 zlc7kA;$A1=qPm%%#L=rQ|x(e?i6mNvXgi(wc`Nl5hP?dLR(-P93vFb!0 za49}0`)&3lC**z$i+Vg*5hNKR!t~tFF;g=6)g9*WVLpj(73J;40=3Qy_zE%ZnHJMP zVaWxaRj-u{0zo!m3#9KG#q7b*J;!HRho67!_`E=lS|q9?k$;35Nqc)nCA9dC?n)Ht zsk1T*kBeI;e_kBwf3(N;dV{c_YmJ(dcYq{*XiamUA!zIkc@1iJUJVrsz(?Ii#~+| zMFkF~j_HZdPg;MU&1Gnf7PrRMgpP4Roc3JGO^KJ6XZw)ADqS{^;UgyWNbZ8u-0dYm z<0_n7v8tJw%ckT(3KRQ5;MDKq?s2`A3(1=IUrsq+Iw8@@=J|SfHP{|Z*doyoeuEU%1|Q7k^7z=s-T01E z?nL`K0G0e|EE=H7g#dY7Y})V+-~%lNEv)ppW2kWokHKeeA;Us)Q{ZZ&4mtedv!~zn z)mLf&Z3(ARmV+hxWpdc$*7uByzbzqAI3|dn(pt;fqfQ#!eV~>X_xB*@ zN2`!tZzW*fI>vH~ng)RBV26ZDN`Gv2S>mUW*m6i#fwlR$FUFi%R;3t_gx$JAbAi_tz&wu>)Qc`HG~zzgR0&?_X^Gk+rSo5k%mVUn&xm{n7o zdT8-FB^3pt^>VY(lTpMM2uu1Ez^>9=32r!)8Jq*cyKt_WB&_Ml)xDrNgEV6LAov09 zJkzRTQNR(%2BO(~?+}8VV~VpK*;@e4e7<)cp8}N}cHt;F1cC^qKaellE6D79I=3Hb zIEK4)>sSHdcAU?rl-uzNld8*KnC%qbiWfaU3UmE>2D2R(%KE&$Kt1jk0qYlMDjf`L z<%Po@nBRgHc`8v*vO>X|n^)PNeNnho(e@S?`N-30HgkbIWKX*;j?Apk7d)4aS|03N z?((jT&ObU6)z#c-;eBQ`v+K0s(bA^iuSg@Eqro?TZM^b>Plv1Hj00=__Hybuc_E9? zW~H{M^>fpGnfG1_LmW(##N`doTN#-C;(RGRSln|7NXIOb<`zTZQcP)S0-#BmW8Lb! z%R=c-sEL6mFclg4coI?xili-9h3YfFD7=9Iiqc*{S-U!48l4X#wiSI-4*v7^B-bD7 z%EQ$*f_=wdS`thC0?)2iATX!RbrI&$;7yv`!8ev!`CMsIp^-L-4}vHuDO ztJn{6-gvWm2A>@$s{^>wasfm3$DP-#VpD}UKQph|D}?pq zSC=u}6DcGq@!F#5nd^f(gjMT*OAT&B%R~4l#6+)LMGs{jWiRz#vhD7XYbppzx71zv zp1%Cr#K9I-ehaGFI|9H~K;9`b85h>@4Fk+}-gm3IV)LMu`1{@MTphu(GLh`4k1zl! zgq3il2^PJD7-|w@BEa&(Z2`-_yId|+Mv^5#_B0X@uCH-&VK8AVFo?O+);3<M)> z36=w)O`5^LxgtREZG^IRjx-LM@LU53Wa1XRxb4Sl6UZ1)ctW(&24Klb7YEX^Y_SDq zY8v`iAm8Qo^a;VWrERMRj3BR~|7Abx2*Lme#53aG2kMU}k3b-&=I(3VGWkE=_+L9< z@93u2&%J~|NN5}vd^_THL|uL)9u z91{SWs1%V%Oa#(&+H0{CInX#mZm9uYgl+B4fgOCb1FE0bfv!~^cqRKW-$BmC=~{zw z`KyT-U8(EzDT*RUo8@o{ZVD=X^IV97Z$y6bR)fWzPoj;ItkNt2YPQSP5Di-|cD8pe zR@mKN&F)9z3gm%6h+-@2F+!x}7Zg2XcAUr&unS)VT?ueNP~BLn8hjf}|0`jKPd4Fz z8LIdp*Zg!7JDiHY`?>u%g)4iqYQ*N7PJT4!Sj*bpSOQvOsssiQY#RpyiRcY?g4>{g% z4HkUf3=#yw0Xn=GKDQb%)7%6E=fpk9LarDn9IZK*8~LU?|G})g^7y7hbbh3YUx#Gf zYcvLX9$xQo+!t!9$y!$Vi+b_=BYPD^5dL3ijM<44kWEq-fwTyM5z2eo|L{L|NW^(l z7-}L)@rnA$ylO*okMn)obPL@Tb#l*s4YSIXeOE4pQviGE;98b5`@eqQ#m6|`klvA5;B*ZAL>N|8o`jfAQ2(UQ7t&LtA2sKbhcBYd3-{9wa%Z zAc~SbqpAWn9ZH~0AqB9WR5bI~4Pu16cd0>w&`L5S3;B|3i_{bU>(fXmc z8roirVeydRq9eaHSU8c*pTSG4BdirPtt3|E0(3-lnCZ~1Fo&-eX%59rC15sJS<^?d zI5Sc=*QGZCKPkF7E3g>d7+e2@9`Cguz8F+zpHoW1=JlD;omM(#aHCH@-qtB-qMV|| zxk0I`YE)fkbO*9nV?^rVmi15`NZh#t-&VX8oyO@?BcE=%P*c~+VUqP8 z9h3rrzMxyHA<&?|9*nP#{V4+UW^|wR>PC&hf+A++%TnK|d#ALZ^$dS$)SzT69}go4 z^6nx?>z^Q&Wi-xz~7+nv|O40@Ey<~Q!YdW$z0 z1|~#p`mr@4e|=(0^Ml}>O#RX6jdig&R?*h7H>`JOZBm(M9i0kA(WFlx^+JvA?GW8C z@QnuZ`(IMacL(z^=Hl$8SD%vK2} zMrZOXH7vwh}uT{gg2~y3i9Y~E^<{UwlrUxiPV%W#CDp%J3r^yi{0UD2Pbne zGi!X%crzcxws#)sy-{2CR%CwY_h)!EBx;ZarGmzBf#+Ogs9%Tkx5T9xEY|9#=nwbQ ztjS$g(5T13TdM<0yIprM8w^+waq&U0mCBT;u&mgj(WnmZ?35z5z$lDAEBq*jA` z1>!M%rR}Gc{_E0jwvS3;)I@FN27lcXrNA4q>kU=kf$z#c+;ZI5wax0MI`jG*+!ka# zXTo#J&mDne>^*xCw-XTT;t$2|*Qv}y(G!$aG>#E9(6kois`}uJV+d>knttO~= zJR0tyxs8H3?+-598}U0YOo)-x{du>07b`{umzf3fA?6EtjJN-MO>w?A@qCk!`f4qx zSH-c$c`?accK4F8l@Mdo2xbOqTFd+7!A;5hviWfkLva3_PtCZZmtImTV$5P0&Z#vv zn+49oq%El)Y%yzp-a2mAVTk&MMyBo^r6I}mP`L?FlHJh-QSAEPd=+|V^3HL^*ZVYL zKvF$+Y2h;~=V8!=-tB90X6R8Ua@S*fw{R@mvgap!;5aMlEv9ao$xGw4?M@TyLn%5^ zA5dC#8oZ~9wbXC&LP|l8jImE(87M{s3q}g|nXB}AfA+f%M~~x}ah<;BjRgr21BGip zYIf~4MKAn3o@(@#n?1PjvmVbEm(;4Q(FDn6+v0)KL1#ImS(9<_*^0tqvZlYDg*Bad z%|E?>8WZBy#mn39d8bd1vuc3r)Y>b`3&y)y<$90pfw4Of$dhm|8(sWfGUFOpqXq6e z0n z779-*jol{SpcSE`*gG-ct0eyj7S8J9|STM@%2jEUgOCB&IbPP9Q@bLTUDV#IzlPB4s#vy zP(L(squ1KMIT^9l%$Lv_Z(ge&w2h?m!!2DRMpy#$#D~q8)!D63Zu&3GsJj)b8nPSS}D7&x9!jB+!=l^4&6)MIqAY3KuD zO-oDFh$^vnhnlL2uvLE69$9_c>uEyOV^@N}GrOp*0*^x3?e?UCm7pbT9Zc2Tb~>P; zsX1`eryMi5Lp`ZYqC&R{Xm8+*jIAzysG}Lzpk4jCzcjYpS+un8Ai58`RO|WOWP2{% zT=E7F^Sdcc8;<$vb09izqr|^ZeiY^XcFTl%7F+7At+zeOB=pPEb4W|mbKA*q8Bs-P ztVa>_nCh^0)@S}&Zn6TX3SxLHqJ|Jug|=?BYaOH-9Sf<94Y z5zS)a7giC3t+D=VOL7B4o};BBJXYd=xaH$1_1|{>4B60XV15a*jyFlMtex_zHDg^( z**vxm(t>CZRke4w4EZOT)e*2uhs&h0CNMXOYu%vc75xoc+cfFju_OGui#U8B#(yDa zam>A2d0UG98kdulI#V0)k7c=Q1Tx1yRryhSf}*0kJgpo}{>SbvVWR}*BwOHK^W7Eo z_h`3TS-%9MAFh!4kSdh%G7LIv>Ag&>L;SAu$K5fvc{a{;S14G-KH&nfV}u3%;Jc`k z9$0e&%Jl*)47-$Q21Hi`fdQd;KIXi1;+;B7V39+f6U)}4(n|SzK5}}T)vc=9pAZORg>Eq#+!YC;wssLd zh4RsbLCpa>{4B!O(4XV91#=Nu_%@;@ab46L+iLoCv7@z(l;1jDktDn1+u(SYlJXc! zQlYJBYLex}ahjC2L$Y2BUfHtD!P>!X43&QvhOIj@MapeUT{!wfdR=m9bY~fsxLy3a z7jjl*Z+?8QlC{CR^jz`YdiPI7!|)>opISH4WF~3?epIswhl5hh94^z@yjPy)TtC^I zczsyz$81_OhY$4V#3#^jXw4#I5$#!^%(v<>9q(nkH&w{Lm9O|ohiT=e z{(U!X0_!UL9!{kw#fYx`UWZjuV8AL3K(*I5|W4UPK;AQwR)=Ilw$QwlZJ zq{QpSBv%4imG1250hzzypNavq8+4#au1wms z!LiyvNY?q!a!11%r^}-#a}T96*Ee5M@8ZSaijt|7tgkB!$mK{y^P`oq&RL1*xn|N( zy#qst{D}a=+OU1#f@pMsK&-S=u1%u)Sx$eYOXSusiiBKFJzb1;B$Xvfs~K)1iCK-x zOYhhbs-AU9bequG!Vou7p}!Pkm0i2IWVe^+Xln@sq-gjMKl#1qFI7TwA+wo`*nth% ztC#byq^sVoJxLL87_HmN(s^IdR`8eP|G>FuHU!gIqBzz?os55C@ig zA@ohn=!HV%GRIV9|H*samY;YOTq6abFD9Qu7Qqhp#C}?d@TcB|oZhgF-CAsKrR88) zJM)t)ucdp0NnCV-So^Tu;=>y)4=R&e17@$%OUchJIN}BeM-*WJ%t3@(^C18Jeju7+ zDG;3cS_ec6qK{TdW1HdXf#YsA_=(nL{pR^?k{UsqJ$0iOvvFUxp85Jf+~;B$?>HO# zb?D#CaDCm`8_O|HP`TkUgZi?j?ddsW=S~|##CuN6+%}=L3>2XrP9^Z91b!_Xc7%?2 z)6kT9kD?`}DiJ3aCGX82C3|LJj{Mfnp1KVtmKjdWPfz9u0^T{+cL=gJ;cz`T@~Ob{ zs;w%xtHN9#^Gm?w5e#ORJo_5Cbd5fzNGU3CcpwvtT$-c7%m*tX<&4dC3%7p6fgQ63 zgQ)kMz5V{rG?Mmq&^!@dcVA6DntSEesb}U1=B!m^Z}ksqPPNxv1hcidFeH9K)E_)UTrKG)=i*Hz(Kk1<=NG zNEIwbL!#*VngDZk>#R-e?M*TAwZ#*rYRalaC|f)xROw1Wa92z$Wd`v3944omRLwX*$+v|Ml# OAouSWXcgVI3;7RRwV$v6 literal 0 HcmV?d00001