From 08810efc1a1868261fb042355f75ab049438b6e3 Mon Sep 17 00:00:00 2001
From: Scott Main Web Applications
-
diff --git a/docs/html/guide/webapps/best-practices.jd b/docs/html/guide/webapps/best-practices.jd
index 1bde5bfee1497..4e9ae81acb3b0 100644
--- a/docs/html/guide/webapps/best-practices.jd
+++ b/docs/html/guide/webapps/best-practices.jd
@@ -58,7 +58,7 @@ target screen density.
For more information about how to use viewport meta data for Android-powered devices, read Targetting Android Devices.
+href="{@docRoot}guide/webapps/targeting.html">Targeting Screens from Web Apps. diff --git a/docs/html/guide/webapps/debugging.jd b/docs/html/guide/webapps/debugging.jd index 098e17c0ebc09..ee4b723c246b1 100644 --- a/docs/html/guide/webapps/debugging.jd +++ b/docs/html/guide/webapps/debugging.jd @@ -86,7 +86,7 @@ expect from other web browsers.If you've implemented a custom {@link android.webkit.WebView} in your application, all the same console APIs are supported when debugging your web page in WebView. On Android 1.6 and lower, console messages are automatically sent to logcat with the -"WebCore" logging tag. If you're targetting Android 2.1 (API Level 7) or higher, then you must +"WebCore" logging tag. If you're targeting Android 2.1 (API Level 7) or higher, then you must provide a {@link android.webkit.WebChromeClient} that implements the {@link android.webkit.WebChromeClient#onConsoleMessage(String,int,String) onConsoleMessage()} callback method, in order for console messages to appear in logcat.
diff --git a/docs/html/guide/webapps/index.jd b/docs/html/guide/webapps/index.jd new file mode 100644 index 0000000000000..280380fe193ad --- /dev/null +++ b/docs/html/guide/webapps/index.jd @@ -0,0 +1,71 @@ +page.title=Web Apps Overview +@jd:body + +
+ Figure 1. You can make your web content available to +users in two ways: in a traditional web browser and in an Android application, by +including a WebView in the layout.
+There are essentially two ways to deliver an application on Android: as a +client-side application (developed using the Android SDK and installed on user devices as an {@code +.apk}) or as a web application (developed using web standards and accessed through a web +browser—there's nothing to install on user devices).
+ +The approach you choose for your application could depend on several factors, but Android makes +the decision to develop a web application easier by providing:
+Thus, your decision to develop a web application for Android can exclude consideration for +screen support, because it's already easy to make your web pages look good on all types of screens +powered by Android.
+ +Another great feature of Android is that you don't have to build your application purely on +the client or purely on the web. You can mix the two together by developing a client-side Android +application that embeds some web pages (using a {@link android.webkit.WebView} in your Android +application layout). Figure 1 visualizes how you can provide access to your web pages from either +a web browser or your Android application. However, you shouldn't develop an Android +application simply as a means to launch your web site. Rather, the web pages you embed in your +Android application should be designed especially for that environment. You can even define an +interface between your Android application and your web pages that allows JavaScript in the web +pages to call upon APIs in your Android application—providing Android APIs to your web-based +application.
+ +Since Android 1.0, {@link android.webkit.WebView} has been available for Android +applications to embed web content in their layout and bind JavaScript to Android APIs. After +Android added support for more screen densities (adding support for high and low-density +screens), Android 2.0 added features to the WebKit framework to allow web pages to specify +viewport properties and query the screen density in order to modify styles +and image assets, as mentioned above. Because these features are a part of Android's WebKit +framework, both the Android Browser (the default web browser provided with the platform) and +{@link android.webkit.WebView} support the same viewport and screen density features.
+ +To develop a web application for Android-powered devices, you should read the +following documents:
+ +If you're developing a web application for Android or redesigning one for mobile devices, you -should account for some factors that affect the way the Android Browser renders your web page by -default. There are two fundamental factors that you should account for:
+should carefully consider how your web pages appear on different kinds of screens. Because +Android is available on devices with different types of screens, you should account for some factors +that affect the way your web pages appear on Android devices. + +Note: The features described in this document are supported +by the Android Browser application (provided with the default Android platform) and {@link +android.webkit.WebView} (the framework view widget for displaying web pages), on Android 2.0 and +greater. Third-party web browsers running on Android might not support these features for +controlling the viewport size and screen densities.
+ +When targeting your web pages for Android devices, there are two fundamental factors that you +should account for:
However, the user can also disable overview mode in the -Browser settings, so you should not assume that your page will load in overview mode. You -should instead customize the viewport size and/or scale as appropriate for your page.
+page, if at all. The user can also disable overview mode in the +Browser settings, so you should never assume that your page will load in overview mode. You +should instead customize the viewport size and/or scale as appropriate for your page. +However, when your page is rendered in a {@link android.webkit.WebView}, the page loads at +full zoom (not in "overview mode"). That is, it appears at the default size for the page, +instead of zoomed out. (This is also how the page appears if the user disables overview +mode.)
To provide the best visual representation on all screen densities, you should control how scaling occurs by providing viewport metadata about your web page's target screen density and providing alternative graphics for different screen densities, which you can apply to different screens using CSS or JavaScript.
The rest of this document describes how you can account for these effects, and how to target -your web page for specific screen configurations.
- -Note: The features described in this document are supported -by the Android Browser application on Android 2.0 and greater. Third-party web browsers running on -Android might not support these techniques for controlling the viewport size and targetting -screen densities.
+The rest of this document describes how you can account for these effects and provide a good +design on multiple types of screens.
The viewport is the area in which the Android Browser -draws a web page. Although the viewport's visible area matches the size of the screen, +
The viewport is the area in which your web page is drawn. Although the viewport's visible area +matches the size of the screen, the viewport has its own dimensions that determine the number of pixels available to a web page. That is, the number of pixels available to a web page before it exceeds the screen area is defined by the dimensions of the viewport, @@ -116,34 +126,34 @@ accepted values are.
- Figure 1. A web page with no viewport metadata and an -image that's 320 pixels wide (the viewport is 800 pixels wide, by default).
+Figure 1. A web page with an image that's 320 pixels +wide, in the Android Browser when there is no viewport metadata set (with "overview mode" +enabled, the viewport is 800 pixels wide, by default).
- Figure 2. A web page with viewport {@code width=400} -(the image in the web page is 320 pixels wide).
+Figure 2. A web page with viewport {@code width=400} and +"overview mode" enabled (the image in the web page is 320 pixels wide).
Viewport's {@code height} and {@code width} properties allow you to specify the size of the -viewport (the number of pixels available to the web page before it goes off screen). By default, the -Android Browser's minimum viewport width is 800 pixels, so if your web -page specifies its size to be 320 pixels wide, then your page renders smaller than the visible -screen (even if the physical screen is 320 pixels wide, because the viewport simulates a -drawable area that's 800 pixels wide), as shown in figure 1. So, you should explicitly define the -viewport {@code width} to match the width for which you have designed your web page.
+viewport (the number of pixels available to the web page before it goes off screen). -Note: Width values that are greater than 10,000 are ignored and -values less than (or equal to) 320 result in a value equal to the device-width. Height values that -are greater then 10,000 or less than 200 are also ignored.
+As mentioned in the introduction above, the Android Browser loads pages in "overview mode" by +default (unless disable by the user), which sets the minimum viewport width to 800 pixels. So, if +your web page specifies its size to be 320 pixels wide, then your page appears smaller than the +visible screen (even if the physical screen is 320 pixels wide, because the viewport simulates a +drawable area that's 800 pixels wide), as shown in figure 1. To avoid this effect, you should +explicitly define the viewport {@code width} to match the width for which you have designed your web +page.
For example, if your web page is designed to be exactly 320 pixels wide, then you might -want to specify that for the viewport width:
+want to specify that size for the viewport width:<meta name="viewport" content="width=320" /> @@ -152,18 +162,22 @@ want to specify that for the viewport width:In this case, your web page exactly fits the screen width, because the web page width and viewport width are the same.
+Note: Width values that are greater than 10,000 are ignored and +values less than (or equal to) 320 result in a value equal to the device-width (discussed below). +Height values that are greater then 10,000 or less than 200 are also ignored.
+To demonstrate how this property affects the size of -your web page, figure 2 shows a web page that contains an image that's 320 pixels wide, but with the -viewport width set to 400.
+your web page, figure 2 shows a web page that contains an image that's 320 pixels +wide, but with the viewport width set to 400.Note: If you set the viewport width to match your web page width -and the device screen width does not match those dimensions, then the web page +and the device's screen width does not match those dimensions, then the web page still fits the screen even if the device has a high or low-density screen, because the -Android Browser scales web pages to match the perceived size on a medium-density -screen, by default (as you can see in figure 2, when comparing the hdpi device to the mdpi device). -Screen densities are discussed more in Defining the viewport target -density.
+Android Browser and {@link android.webkit.WebView} scale web pages to match the perceived size on a +medium-density screen, by default (as you can see in figure 2, when comparing the hdpi device to the +mdpi device). Screen densities are discussed more in Defining the +viewport target density.Automatic sizing
@@ -254,11 +268,12 @@ density.Defining the viewport target density
-The density of a device's screen is based on the screen resolution. There are three screen +
The density of a device's screen is based on the screen resolution, as defined by the number of +dots per inch (dpi). There are three screen density categories supported by Android: low (ldpi), medium (mdpi), and high (mdpi). A screen with low density has fewer available pixels per inch, whereas a screen with high density has more -pixels per inch (compared to a medium density screen). The Android Browser targets a medium density -screen by default.
+pixels per inch (compared to a medium density screen). The Android Browser and {@link +android.webkit.WebView} target a medium density screen by default.@@ -269,11 +284,12 @@ width=device-width} and {@code target-densitydpi=device-dpi}.Because the default target density is medium, when users have a device with a low or high density -screen, the Android Browser scales web pages (effectively zooms the pages) so they display at a -size that matches the perceived appearance on a medium density screen. Specifically, the Android -Browser applies approximately 1.5x scaling to web pages on a high density screen -(because its screen pixels are smaller) and approximately 0.75x scaling to pages on a low density -screen (because its screen pixels are bigger).
+screen, the Android Browser and {@link android.webkit.WebView} scale web pages (effectively zoom +the pages) so they display at a +size that matches the perceived appearance on a medium density screen. More specifically, the +Android Browser and {@link android.webkit.WebView} apply approximately 1.5x scaling to web pages +on a high density screen (because its screen pixels are smaller) and approximately 0.75x scaling to +pages on a low density screen (because its screen pixels are bigger).Due to this default scaling, figures 1, 2, and 3 show the example web page at the same physical size on both the high and medium density device (the high-density device shows the @@ -299,10 +315,10 @@ as appropriate. be within the range 70–400.
-For example, to prevent the Android Browser from scaling of your web page for different screen -densities, set -the {@code target-densitydpi} viewport property to {@code device-dpi}. When you do, the Android -Browser does not scale the page and, instead, displays your web page to match the current screen +
For example, to prevent the Android Browser and {@link android.webkit.WebView} from scaling +your web page for different screen densities, set +the {@code target-densitydpi} viewport property to {@code device-dpi}. When you do, the page is +not scaled. Instead, the page is displayed at a size that matches the current screen's density. In this case, you should also define the viewport width to match the device width, so your web page naturally fits the screen size. For example:
@@ -319,9 +335,10 @@ different densities, with CSS or with JavaScript.) -Targetting Device Density with CSS
+Targeting Device Density with CSS
-The Android Browser supports a CSS media feature that allows you to create styles for specific +
The Android Browser and {@link android.webkit.WebView} support a CSS media feature that allows +you to create styles for specific screen densities—the
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width" /> --webkit-device-pixel-ratioCSS media feature. The value you apply to this feature should be either "0.75", "1", or "1.5", to indicate that the styles are for devices with low density, medium density, @@ -378,8 +395,9 @@ density match the device. That is:This way, the Android Browser does not perform scaling on your web page and the viewport width -matches the screen width exactly. On its own, these viewport properties create results shown in +
This way, the Android Browser and {@link android.webkit.WebView} do not perform scaling on your +web page and the viewport width +matches the screen width exactly. On their own, these viewport properties create results shown in figure 4. However, by adding some custom CSS using the {@code -webkit-device-pixel-ratio} media feature, you can apply different styles. For example, figure 5 shows a web page with these viewport properties and also some CSS added that applies a high-resolution image for high-density @@ -387,16 +405,18 @@ screens.
-Targetting Device Density with JavaScript
+Targeting Device Density with JavaScript
-The Android Browser supports a DOM property that allows you to query the density of the current +
The Android Browser and {@link android.webkit.WebView} support a DOM property that allows you to +query the density of the current device—the
diff --git a/docs/html/images/webapps/compare-default.png b/docs/html/images/webapps/compare-default.png index 9495a0526f56662ba0f0c4b8cb8dcad0076f5aab..129cb3397dd1c85c59655bdeea2110268ebcab95 100644 GIT binary patch literal 44013 zcmV*%KsdjNP)window.devicePixelRatioDOM property. The value of this property specifies the scaling factor used for the current device. For example, if the value ofwindow.devicePixelRatiois "1.0", then the device is considered a medium density device and no scaling is applied by default; if the value is "1.5", then the device is considered a high density device and the page is scaled 1.5x by default; if the value is "0.75", then the device is considered a low density device and the page is scaled -0.75x by default. Of course, the scaling that the Android Browser applies is based on the web page's +0.75x by default. Of course, the scaling that the Android Browser and {@link android.webkit.WebView} +apply is based on the web page's target density—as described in the section about Defining the viewport target density, the default target is medium-density, but you can change the target to affect how your web page is scaled for different screen densities.7|w|ScfGjH=YZ}VX0ZQka=%-g)pgPFH^o40u|^EPkuVCHS!=4~F#yv^Gd ze$y__Wh}8NiZazl{K7DdbUK}g#}mo)@W^mBo5|;M!$TvZc%927#g<8@4bzN|jI3L~ z{ Z2NR9Ug;rK!l+CF8HG&>tM*)3iV^ z7z_kdO;aRA^U>RAB b-$SSdvJR=oGvNJPLPdrJoZfaU2pSXwh)`Z zRVI~A0bQANCY#F+4-XCW_m9Mr{e1)3Y}zpN;o*@)d?cI6W^%w?CYQ@$nr2d|d?CMY z?_PjsBp%lbI$)N~XY;u{Pi4~t%1oN;GNv{Dr(kMZH1AEq9o{PhGWtxie3~yLHdWPR zS@rp}P&iZ(jRis>z!3lp1w%j}HUgvHkJo;`A8#jt3%;+au6Hu8BObIa=S{wtF^#!g zzN@P fhaQ-A>DMt z!0*OKI%Ho#mjonL6$eQ=J~J#_97u%-lQk8`Xqqn&2*|RgC Ye_;>gJBxoiga@6%L&AV4^iA=`*0 zLg4uPey}$oPVgHAXJhs#M42S8MG~-J;3MD)B(snQV0FBPOvEevXXtt=l}Tqac!M<} z33;1N u p1`2$(@8nshS) zPDBwU1{Y`}!3-a%L> eOt2~gi;Dl?i$jEsze2WN4pB^L}s^ZBc*YGTzDEzQj oGkg4?zcPbAKsIo;lV;?SYP=exU;@gyd(-)GfSR&L&~aoxK06#!H? z7!8F3&~AKwK!w?zZH|!SLLr~a6)?jM(}1`EK=2o;8H9)UTrKE%$Qw&YB+PXa;*lha zEmQE;{!t{yOiSPlY!Vj`OcLlLILgAxDi_5Y_7KP*4pkMZ8sQC^tD*%%e)@Hm 3oS !Qp}7!BjGn({+5g zrmkk?s@3b)Z(P^5wsplyoZ0;_OKdIP=D}>-cJjoDH{W_|&z`+K-Cc@o)>MR=>Kj^G zmak}SZLF_rXs8SMgP6^hL<&%W2%5n!lBpE<8x*EYHjfv1+H}x3U Hf=kk_76-1mRL@7j$Nw}kprJA6I#1}1z4 Qs$(kux9vK@Ivik#;sw@S3K2`HU z2nJNe?^6ZJ!VuNLP_U|^A{@kVY9tf`^;LW_?jbRn=o=jD=;%Dre)`y{Q^WB@edDs5 zZrXj{efQPZ*Yk*YF!Nw0u_p@K$jHc#fBfiUkNv_d= mP3zhk8tO5zAb)cC zY#~>G$`Vhe(z$#B+DjV$hgt(w%FL1A$`N?T96@4@c_3g0lmKR6d5|H6T#kSvNsw;1 ztRaz-1~v#uC|DK*njt^|2+AhyB(In_6&Va=OJT>HEdDDhU6v{|IhE}E3J``@_>bNc zk*3iOItsgqO4@EVnK-Ip_=M$C77j9Ytl>kU+~KuGDyEOPXE+cDL-6?nu}BPJFB}U+ zBf*H@9}a~L!%C&oJp%*BPM+Gc|KOR @Fs!COn0GL!N37Qm7r&EbkDwCmqX((KI;10YHq))&E zqN~78t^zP*SVE#O?K5#}n5TU`{mE1knv^bBCZ;r?rZXUg8b*-AD_NXI*a=nQa)cZb zUcy5L*ck?p31J0&Og4c$>>)Kt^+9XYiAR#R%QjTXn!>OGbSwcIvC$DKPTNplUsG9) z-$(kMD&!*RmH3V<4wi)o)ChY*i}MG>f54sJ7YPR|Bavu06pNAJF-R6s^3)BEj2=9E z?3GtvJKNQD@2}ner+@mt)z;Pu*Po>nedykHIg-Y``}Ta{FaL6MXy8L1yzSbnudJ)C z#;nmTJ( x?G8BL_J*%W!5vxRIflg*JbW kqk3JK51lH1ho{>2#_Nq zzJY6661kG`)=~^pCkdu%EKwyPKyh;fJy|tqj|>r&N@r?nYIonT%gpBo2M5X2$(kOW zN)SxR6gnV@P}0>1n}8blChh{LR>PrCfJ9obA{MKNhNB^1F9IQ$%@sP%_rCttJFma_ z=IwXf^~Ep#*ZPKrB_quyPBZ>p7o2`9(x>_KlKA;^i~>1v;`kT;%YPXe82HHDckaCM zii*mLf}SrVv&m#~Xfzp5XGY^>-xmBZC)`m5{Eyfj0ZKPTBowBzB=99DpD7e4Vryh! z#55;^gd7S4Aqg}|6}AVWW SF^P1r{;C3CtA1 zDGP2%Mi?RU2y%2~i(VLluv(_fYXD>>Stw1D3^HVZF$DaGZD!JGSp-$FxD*&8*McF~ zEE_O{R#{*^2|bkLng-=fO=ohdFB9_lhDL^=xK>7^WO)rh=mlykW7qH684US<`Kw=O z{=k3z;uou`s#vjHoUm~KAWTXo|75ahC6ic#y1To(y1L?GgK|OS1xf xNmh2Qs*9 zfhLh?lXPJ|#B`Q&hP-T9^V-#IP>rDG2x~iu4vho_$em=6w9-iMnI Flw^cMNuO%eg%FDeg+0Soyrc6 zj9B6z%MK_h2;^I|5~wuiBoRtxhkb$W7W9Iq8Td4x*R&j7XR}%=6-Xqr(Qq&p4aXwE zfX|2Dwtj6}{JO*=|N8Li)vG@H2cLyv_rBtZt+ce^r{(Dh7^9=3hYue +VJh~eEX|k`TO11Uw7**H#axdL5u)Y zBk@#k|G)@lO*V_ioy%qOx&d9Rz>yUu>rDnr1hQV3Yyl)wp-L_*MH2i9lT^qt8Wref zShVm+NvQ+ZgxJHd5!*9yUY3lROa`aMd>0?sLsMYmhs1_@Suj8`66681?IC3S5Mjl# zaH0Wq8ikRlfE;9GfRw3#UjZ<|{eW}7EX<0*KoD2QFBFCvUJ@Yp^2CPeesqHgC)rA6 zo>lCfqc01AE6gcEdn0Ad$E$BR9E#vyD1?h*X~L9!>e=U$x$L*U``w*aU32jzl}XXh z1gf*A&zwAY@{Kp%Xm4*nd-g0q1w`SQ<0D=uaTxBOtU+SqMFBsPg0PF5JKmb#y8q6c z0XnO*SsZD8VZSy^3f&PBk{7s~*qqbiJ}WCL8|oWw_`r= Jwr~dtsA2&BPT(NCSeQga?_+&CMIvVdAhA>N{Qz-x}mB|>y63L4!$d>Kh z@~IkDY)h ^@Gfff5FT|s6i$u#RF1uqk zn#mUx_eaGy&VwzQB4y?$!VM-|1{8Thh81#~aU7S38^#{+mT-t@t=}J{a4$0N3qOG* ziKxs1{=@A7hj^!F3j{Dl#S_sqdYp!E1{y-l<0oSF27@6;Zc|pS*mlLwe)+3^`_aFx zZ`)8&QE_pgg Co3r9LJqvMU=I(r;A zIe2q+I{O`fO*+NL1XmHIHoJFiJRKYy@|x}(W)&xlPN8$Dlkt;>jvT@~<7tC+{K_k@ zy#N0D!9}mQ;tI$>94UrLd4EVFU-*}g{pxJT**k98-O}6~4g>cq-X9G&r0{CsU~` z=u|ET`T%^8(Llyh=U2(qYu|KEuyRPhBmpu<5&Egr@aPDHpCzQ6q1#$g31JwMx-P8P zv|i@DvK CEN zA#(P}lWiq18yh?Eil+fX#hDcj#vGbDjye^0I@5_`AuzI7Coz_|8Jr5_>#eumdgYZ@ z_-YLe4Ilc@hd%bPkKKIp%}g}Pg14E&j2=OMe?P_}8V mQ8-K-Of3*DMb2e&WC=+Qj*KP+{BTT?f2#0(StX)>DpQhel@e@(8KC{!S%3*= z7JZ@=r%rJKm8!xn+*z{fjI4-%r05WVJV|I1MW2;b RTZlUM~D_yRaOFr(O3xcR7?UaFOdF)fF2;@3SA6zmxNv+ms`1V<-wyzUVi!I zZQHgv(xbdKj8mshedQ}(dG^_7J3BiuF1Si87F)J#8Ov(iVL &!6jvP6B=Jcr* zD_WN?Zw&_nxk5IPN<%B7fc12SqHleEJe$!(qOX5&U|?W)a4 }8 zG%w4+iG3qrFN)#>aM%t!%W*v0_sIfpnvh%}@+>=IpQV`Ph&nr@-(>=j?D$8HCYdxr zQ?_ZRGez*WK(YL^zpt-fXn^2dzECI(K~djW-_+PxTU}KbiD3Nkh| I;ur>l<95gM!A^&{IINFFAI|Kke>@Y$ zX@H81dkD#4{uZOljVOwD&1Q4tMk2i NwX0Mfv>so-`Q=Ot-;zni!&KEI;l6lWhnT!-8G+W))FpIsS7O7+gc{I`P>5SpG?4 zdx}>nUdukL^nToTYmEulseTA10%g) ((|kHDLxO<4G%< z_mQcS BeJ gwp?PF^i>*ZxzfunNFoMX}o3NF%jiFU`PGK77PV>|JT3%^>2Rjn-Fn# z-+gy&ZSBJ9W~p@g@S(%N`ij<;ifGs(0~^`6A*irKoM=CF`0$bL?ry`y0L!aKUcx~D zE>oK=v}ukSL&HP(cjVYH@WY)uuUg)+EHN^g&Ss+(Q7~Xgkw`3d@>Ki2efzd<-R5%z z^3QF<)H!+L!~^#~aP-*Gy4pIPmo%S5Y!|B{JY}&dLW`1@e53vac)8Lc?N9lw^xm z$E3k>hB4+a6owi8;UgS?^_Ojc{4^McCB}U>uVFdE%d}jKE`Vra3qC%L$Kw-y*$xY3 znM@X{V30*IBQq2VvHr>2lEIeCWT7)tJqw{gvYa3VRjU9jKmF-X-+S-9pp@0s)e8u- z!GXcfj!q~UP4yHIoXMs#WVScY_w>E=+AF6|pJhH!{E?PrjnOKv?@Z~cEaVjjqhO3r zoH)_Z(Q)IA*Ij?@HDGjkqFAJ+V`hN<;8QHa^Mn~D4amrCAG{S~Q4y=)35T8Ga2V)v zrVcUKOlD+cq@Wi>#DL Kt!ReN77#H} 218-RIcK^P=)a^Z9d|MHi=+_h`h z^Upuu($ca}Fzcfd9r60QnwrX}-=}3VQdT$i9z6WSlTQo{4Y`>i>qLrh7?)(DU7lOX zT;y3oPlh~pww{2YeeSszF$eGa(B0W&Dv?V1G&PI~p!v?6KI1U1IXiaFoH_H!Pks`@ zq`tnM0fuuz`v)Dx>*3K6w>;7OK7TMEZc=iTE@`aDiZwCDg8v#KyhbV}&K2RIr&5XG zVSsnUIS*rI(z)S;(Uinwu^oahf!C~nG4eT@q=Y!I(&b*BoKKn1;%NZ(j)DM^83~1B z6%`P7(8O?BeA?gFXP5?ujYEmWlJ~KXee8)Ro}d7og@759uED{9O>0+FMx&8%XkcXc zz5NHCc x89=o)WX0J^db!T z>C |=22_YOT1o^;KDmKy^lUKVGp z*{{tYWK=+s0AStS=QtpXmt$bVF}RngvTowXSarfs-3BxMA|4KFTpZgmQMx*^x5PPA z;yQQyYtW1m$s~nF_ D|?8V7xpNDTZV%E+)FQS+|bsxW_3J~G%Pa^ z^pA{=#7E %v^0l8VK%X_|CiD07|NY1IxLZ86mvpQIHrrt`tTM6YG7c1amaQ~ zH_YsXOoXjE3Lb^b3iA?CcGFJpaD{;3JOPR0=fp 6=we&;*i!P1NQk eci_MQfX#97Irr=cJx-OHG|B`wrYb&npot|MFd_v?Wlqae z8duDp%`a }Pc%=e?XTOQ$oqgHR+=QCWH7)Y*66eb49D zL>Ql5BJRCy&iY$H*JBm2gNKfG_w?0OR{B-V9}4vL_YV#Z&e>`9mB0J@)2B`?Yg%UN zlpt4ASG#ics>a4fHojL2B_}eo+ndR+;Az0KKOP_H>+6B~2dxZK8Nvb66xe3dKf}qf zg1RHB+~&%nw4t3?>v1Ze4oJgSG!eAssBI-1r3}uXuJ)LUSUd@3Pf50=MD>wEbne_a zED(5TJv}{mixq?;W^TIargFjz3u<3qKkg_Ji3Y>rBgc>T^!EpX!BjG3myw!w7)sXQ zNgZWVxuhobXwQ7?r&|6OVnvwky^UAdNuXgCR#jCGrH0y1ooc!E8VXgzTAs@!6Un*V zFuwKNbI*lCVV=qrRh2t->{z>YZHc*J4u+hm?3r$<(%;_?06-wT_uhLz6oh~yD4gTn zij#w`v9e#Tpk4=TB$g=zG&3>&cp)~HmH>85O${U}aLxkl(MKP>=9+6}5}-3vm}N2` z*@Ms@s;jEOd5<1DmMi2nU(j?3`Z Lr9v4%<&f!{aTLRCaLLu+-`_7&@Yh8P7 zfXsbVCJ5{I+ gwuvJkF-==}%jNzzg1kqj51d*j~qT z6w{Gm=17leQo<%`gO26UPKgrxSr{(#5HpX!Vo_OH85LR*-|#oT`OUxjtG{Y$YAPGd zL_kmu8e}XQ$z`&go!yqC7DRB^`!b=Ip6$_L1bOKFK5b}t2+y37W&FNEK_46%oT1Dq znIGT%&UZ1nu?*wup-^b^=FPEKj4ECVLkPP%9UI`xX~^_5k{!pSVuV6Y+%R91tsorH z%I1wpb2>{%qk}YF8aPVBiKCy&eOJcOVf_$`1@u__sAMt;>I-pt_Uu_O$qS0pnZiuO zY33AF3I}|NRPua(KUEVD^*DrojBe%3=`* n3YI5cQX^mM&bl&T%3A)_#qetzzozNolf%=_wL=hb?ep(TJ~ow&GLl| zS?w*q=1T+CsT4h }^YQd6b$IaW-w55r!B`3Ci2Ct|3I`5o#71@>UQgSDy z2U}Ee cm&wKB__qoq~uC}%|lg%iq z!XX!#bY_q;3^IyODdZ@~V0r6uJkV^G!0^z&{OCyLe>H6x%w?>+k@BV5K6%|gZ{2ux zN5|RMUVClJ<}KT<*oN~w_uO+m=X Wy_X{#My$-01K4jO*NhiPKf$U1lI*^ zT}}cETP$$hq;UB19!ENrFapO!$+XjPtWEy|9p1Rm9EwA$c@c3dhmSx0_&2`sjk4)x z9HFR*G@>je7ZgNllwG-(Ll}86zO-QG^ZP&-D`FLfZa}rIs;OGNa`j`6KbA-(HgDRT zOeOpK`$tDcL55pbw1S;u52nC#PrdTOi%+lq$hrOwe^vg2+cvCz{H5nl)U FqQ2 zn~5h(^+u`ehH!Ck{a&%xA(o=5)EILsVSptcO;7)(XNGQyIPtH;7$@#`p9epMGzZ=2 z>+Ad8KYy>|T*sO 2@x4@7A2sQxGUQGXTQDl(o25P04kHqEo*5GM#Gs@ z)^Ra&?Mi+*+cQrkJ%q@jn-z?JiX%m%m6p{*@fcKCMdEPEsj3pV_e`k(PbSkA+Cas) zVm+2?pJ0613ew%(4Vq9Um{Bg5#UejTg|$tQ$jnVwMCvk`$nwe}XzEo0r;?9K_Qw GZFk>&H*{RcqIchYHxLR84p9RCuIsP+ z#p6F29ZL9Xx*mP{zpq-|Jdk}imA=QM60yf(6|omyc;WWjZf|aBzUQ8MzV+>I{peqR z^pX2MQqT*~m@BCdQx(qq(#tOm^bg#8^UdI;mNaHtGeznuKUY=O
igt3U;U@PQWl?eBa$9*<+Ws;sYs zHU$7cWdgu9ZQ9h?*$LE*jEsbGA&8e`GIiT+xBU3WSG6BIw01`_9e?IPzqD$5tfgfc z?xLfk x(XFxu0y6L9po`3GzUDsZB-E~j}AN JJ!xc8o7stAP1b7Jr~m0+uQ4;9Dd#?aMw;9*#AyvB!oi-Mf*=%%8n9ICP&3=f0n*48 z2v*#un%r}k^wWp1xr +$^qC>yL)E)P-#{nOjEShK zsbiFQ2EV? x|w?-I?2w3LS8iZ zRyq2_sWauSWw7{lGiU8^n{YTUyKJP<1#6k6fvHQj71+)Zs;sIc(r8`6y}6t_r$+8l zXySDAiN-Edtwe6MbB2r8r1onOe<+FCYZ~|VRn%D%Eq0Ev&xbrwvdR_CXGPoQAaI<_ zPWGDxgF&v^h&kfqL^Jl7Dwo7nT?EL@O?tZ@nzMM}HG2ii3p2Y%y6iGAk7fE9lof*~ zIy5|V^5jXp6%F{TY3vy@|2wIHe$u~F`2)&w@<}d7jW6`(mS!kj }-2}IE92~V$ztEG;`-!7cWiqVyX9l z3hvFpADkPeIKLeS=px~byZIDt42mc w$d-uxvNfHw=#qgFWK6 zm&mIUX9J$n$mmE_WtF>N>sVMi@l!&Vz)7)y(d TRUbh|Ff2D4&IBT@Ta;ZEu{%r%jw>a1ks6pvN3wzfKz z^h$n-Q#EACZ1|0XgM$TXs6i#xV$m4)m%&5xX+CG^WCe_-KDif_L^8pVyY5Z^?umeb zrrs7JK%-pN0-OgVhnqGy#z3c>s5GIYlH1SbuBGA3EvF=- Fq%o6UTixusE5=A*Py(Ycx1 zsSD!)|KBNbPA-~g#I_?#7CZ0!0YBbQx{+jsL*a2Xux78)EJ7PpC=${{nyo1dqpVoe zje;>SIN)AlqR}Xe7d}SR&NoYlmOYRh+Dkl7mdaG|l4E%(xwE1IF#Cf)_`SJV`R5>4 z=ln&Mflod0)ag^FDMd&nW$(U^P?PSXM~^=7 !)lfs&5P31 zq}GO`e$6KvTuO{9aG9d6mY@ud;=nsg*@r9*4-a3t<4ULY!5n&~%@k&-R5FuF1^gQG zMgY!qY>$c^4q^&7KdEFYwLkZ3{^KW(4-5=o?L2(sFz&ByZJXcc$3wa5>Z`a6C5Zw> zWg0n=y+He?TtGd~lLLz10)o*Z^M*TYeCBgE7zlF18Vck$g#?f#JOPNfC!c)MDQAt} za_g
L#q>jnv_xZrCySuxW zw=TzD=)hEAZD?@WvSp`Eo!ax>o=7+%QI9)%yddp;eSOQCmL1r?_tjTl^oOy#V43O- z*WbE*+YZ^%rD8oiS%jkiW|&meyqMvqPrf2>k$v~GnzRso8DOT1KG8wH>Z3B_L|Zip zGsG@0&uz*?l7}eNs*2u3K0mk<2m^lk&Z~D~+KrBkHZ)RIz_T4^M}|jkyzxdVRhi9z zS+UMQ)o%SFmEE*B5B$iHBhAgtI0L3K9x)yezCvZgg!7lDFTTVHR6L>ibtn|#a?{Rp z;bLPPlO|f95%JAtv)oKbFX%75{8C+g-Bnj!g=08d1osdQhq*)<*ILWva}?56ykYFY z8IGSk9t+39!7z8tqdG6L$%_s >gEUzPYsvXJf@gYjlq766 zSe5o4*njW6_kQTZAHv`cjSO|2>sr5V{ScLG9;TLZ NP#Du)*rkj5Hlb^0# zxAvY7-xCN1u 794p*}Z%B^5x5)f8qJ#$B&;lapLCP6vg-06OVBQ)HBaMLxtT_sg{ }dey2`P{;9+(;Ir@#*L@XoIZd4JQjkEa~(iM zcULzC_4@0t2f+i_a08)W2#3A!!V9&vwd>ZcJ8 Qfm- zwARRw@d~aBwtU65D*!Wm7q?BlrcC=7UIj`DwiR2{D41wIQMz6gjJzzQk(EQfF0Ep@ zykw4djgF7%E_Iwr+;?$GhCk^Sr#k;sS8;0)Y{H?)OyO-ieE9IHm8)v1YQFl_uO?GT z9MwP6pU$T7a4--By^u&H(h2>|_nzyKe!gP0)c3-b*De36&iMZJlkM^3z%r>8^I (7{7HuiA-49lx`pssdAR&)z+l z;s6*)9)sMzkNxT~JiGQ2?W@ ByvAr@89Uc` zuCcKZixvR+_B(H5A?)hvs;a0;CX;~2HBc%SZj~1rky1u0MQ=~9wUrWHPn|y1bH2yiF1#M5 z&Y9ZG8z&)+G{wmMEjn`B=IyeuFn7-vz|1liwJnOLR=^(sqxsIazY|ZyW6@YTlg992 zZq(G)#7E;-Y`J31+BHLiL!cGI!z1|Al=V!qknE9qJ4TKsPWB9R^!E0rQ)&EOC~q~@ zH9ff=`~}1O(qDh+kw+i7@unN2;pnbwcVW*DfB3__d-rbNzP Z+Nx!abT}5TZGfzKr%gwiRbaeFf z_7O!4l7e*T&>;vwJWA|rUe 4{u6o3(M x&m5{?}!oH{SPfoQ{8lTKQLto{@d%#VC zIQ;JK{Vt|KWkn^}0mc+;XlQh(x~BSneCdB+Oq-gUe(=x_FdxJcmf5yt=cB*8{^01- zTIk@5r~YhYNZQ=;Ayo_FRD1UA85kTG9vN;w(~cp4FvP6GjC%M74}a=6KQ$a5#(3R+ z`|XvLl?M(Sz_Y5Vse*h2YjoT3=djJ#pfA=_MU;DHw3*`rfJEs`ga7$tJ5B FN35!#~8l#|-|DpZy2K4g|>4&peGq z1-~DV_~gew`OR;Ab8XvNh!l_noT|6C_o}O|dhfmWc3razGAETxz5DLFZEM@WDw~!y zojH4E$BrGi0mvdetY|DsX|NLa9LF3MwVL046KKIjp?v|&Sjhk(NXuuReYUQ)4ssYD zfo(qf+_P8?wr$;}iX{Z|0Gt-5#U!8#C>A7?ZUc#}SSFbYv4Xzy_B+&-(=e;6sx4ul zrKe;O0_jLoo~WA%;N0CM<+SSNrb(c*q3eg^OWfZ-S@Lj42%czo+x*4=&A-FPCPZ6Mru vl52dNGiF2Q!AA P?b@}N0i?xc(mWE5&xcr9J`X%Y&D*qj699Sa=rNp}6 Deb|yP#dqQ`FM)4S;PO|zJpZ^Q66+D%oKZqgT zxpODx&nvIJg2faIAD9t_8_VdfYp;W94C-;q&9_nKQ_^!KgSw)Ub@$5cS6+YJ^%w y|9bf!)QjEw1 zC!( vx9{YF5AYE9?!+;Ia>0g&L> zyftgqVE^h>tMM1Io^=~2RKWJ~*5$Yyo-zmZ;&FiN35G=fQ3qjJffmPxP&_!yFfO-L zTU!fu3OwT^RDB6DDiUdEY#^hhFr#B>;I9C>3=G_u6X*Z}W19*Eqozlq+mRMjpeho* z>qB?p{sFn`uDcE*5qH8hs?4#5ujXV;Oljpb#T2oMCXo5_Mr*uhcA#&-3H4s&8*Ug1 z7<30oRKMpX3_I_;_dXtOk~4y_gFc)+duC$EgZW&YtLx0?RN5?mt=%Ql?k6i3R~#YS zs2!#7x7zugmc^x@N}|iDlv1X&I8R=ph5z>3ZWrw&$F*|I8TOCNhz_$Eo&Fm7I1 2M|MZc(VSez|4?=)Unm-AG(!C>7C zsy4+~3DfHsJHoFs^ 8>X=k?RXmF59(~R9R9b(<+Z2dD56b+zgm=DxE4x;$AWv zr`v(yb8Q@`UKE@pPx**~fuOt1Rk5bj+$YJ*bu*czGX;4N%0xVYhy-%fcdXMKV}*r3 zo`~CtpO?o*!qX&tXexQt@dT`?Q^Yuu#%YQtO;SUfyt$IeCIq=yJ*=D@%spxL?%lh8 z|Nd|!Jh7aFbcx5oIX@whO7xuXx%uXsvG$FQjs_z^3M{oIH$#BtU_k5Y>)azE&7+Ou z%qv@2g0--HN#;;HqKf3Fx0U#lr%rC(w3(|lk*ndNj}B`*7k^ret1lwUe${{Bm5&t( z5pKro>$v92b~ZZk1B*h57I4AhZbR4Yx-JwBadY=^#lK9GVj$QmC|`&glvq<1l7r0F z=$gytMutZ~I`B*(sbaC%G{ m$n-Iv5BQk%yumTV#u1}6?SFOQjV-0PyDm_ofZ>hC^0 zJbeEAc~w(6Fbd2CAGNl&V(AnCM;3P&EylGLvFFq+7qNvL^3S$@=XXkWK8GD2=gx<6 za%aZO{qAGN8~sUH(P$knF-wj+UM@{G=ae6I=a9)!vAIKMN9WPwN6CUBD+Rr o?eopkld~(Rog)*|?`INoZpt)XLTN)@gKr@xUxUc;Mj0PbXs`2AzKE)~%OfmdzxI z?xN5v+d?eKoExazl{wg6>dq+94c%u_a3&R#4)`F=UVH5|ZsmOH)TxI0hGol^wYRrN zqfspX!BCK6ZJBF1b%oijWEc4`bVXCx1aCXdSoJmSnik};*9|^iL`Pff#w4S8@g!6R zOT?quwNvQ{kl&dS$rU-5$;IPws90DO$TcFO$#FT&r`c5xWQF6T#8ee-5!1k`VMqpt zC9&U<16KR``rdx)?QkfJConKLfJ=}`+^|D)$T}sSBCb-BJ2Tsm>lqvLDLT^>_2XpI z9z|V}E%$1KTYvcBhrjWSZ_L4$S{7yFGoSg)*T4StOEG7(H2;E(OrmXyX|j8IA$}8w zL{q}MqC)A%B&({ds;a5N^ulV@(a`};yK3dC_-Gt+are!;TUuK7?Ab%cElIAaslloW zu1luWLLT$}=+UFSy}fO1ZEwHx_6KhI0QOMuq)4EmoVua|gWzEqOh q |QQCU%G zcaRmKNO=3&>#yPMx^?ShQOq1tx1dqeO@MO6$`#wTZ1V^Fd-v_dU$#z>&Qq}KM>(|~ zE}AqG7HFf$87xblAX2#3@cT7cvCb_GgNh|$tvKw)Dk}vqNzJtV5DLZX&?K|Wg9i^j z@W2D7Pn~}Ey>~I7D_U1<*|O#I+0z{lcU-gcn$B~b*kaLGb#?WdZ@t;w)BVAlKM1gG z*}UcW$>WU;js1iDy?woV_U+*m2cQUpg8ALq)mag%fNb3Tf!#Rsj_o^|8k-<3A9?f< zXiZzUY)y #pCwe?OqLZtc1w$By6z0J*lcZC74-<>268b8|CR z1lzzXqTqPKfDE^-Yl}o8`}Xfk#1nS(yUxY6?Nm{Ax?BvH+2UJdZmY$vCzdM;gySA? zyIi;EeVLup>$R7ZOao&uHC4s4=6V{ISx$q#opmY#y)m&=nPXarXpIbyw4ZE;lmHUI z08gDfg`>7?+S0VF3G!`a>&lJmH)4oEu|TvoZ`^#g^DJanZB1=5k=%97u9shZ`HtJ} z00O(Zx*#q%=LoZ(ou!bOufP5}#8mr<_Um_DkC}a7-+}Ghx7SwJ9zJ+Dol4(&^R1AI z-QC@o*&Ehvz+V9G?Af#Jr`va2u>%SuKv-8-_sYw!01}XLkba B@Vd5jXFAW| z#mMN$s@1F3tzQR*2`N-jRq^v*{`|<%Ba}v P}ss5m!as>-I;8$H$UEfeoy|&FU8BXAlCH$fv z{pd&E{ip8^^bd$KM>_wb^xT37@20oLJbOFMqJ}
jK_5R!9zcYL?bI#tQ;8`X<6Q~eED*Gy1bP# zuK>cD>Kc%=gNG?Ih(p8iDOee1!ku^A36R`*=beg3^QE?ofgl7?G#15SkSYK$zP@9} z4jc?f;|zc+?&_lte3Z)pfXK1Y1sH3nZvZF6ZM?hZT@b$;Z@dw*w70*vWmyXdDlp>< z_()Q%TmRmk_tvgmTUlKRk$CrAcjJdpny<+H#d@)7)hb?4h>_{^bPFm~d&Y8r!|uB4 zE?fmb&15oqp0qNKn6q^=$tuaIox>!bRpTYdK5qCz^*UvF(RrWW7cWA2h0Iu;33;s9 z`JBC?(<6;qE~%8I&jFeEw{g=(Fh(#vvKENk@W#eQsAmvLlu#^8Gk6PG5e!qD#QOE? zE33!{1u|)p*V5wdaI03Xa>8q{6QT@YUfxV`rxbB!7|WWLF=vB@20G^y;Q)R(oQPeZ zb+vWW^)ujKGrXp?xpm9dE!f`{YXf4SiLpTvC&U-;y5laK91DUZf^VuS?TA^tg_=i6 z(4r2Fz?u#zp&1&W*x1x~|NZyl_P}oeY3u p z7j?>HGi0@wT{$dStGcqf?y5Sf!JMKDjDl3K*Icpg=kmF6-AD>#$e} WUx5@VU7)ihNcc0c-=1FW_ouzFMU_LP)^oX0VzE2vfHJRc$WzV{ar?Ow9Cy^!7e5>UCx$X-`v_pZ <3vwf2^@vWr4-DG418jBkclbMZqYI6cc(dQ z=8edwI(~* J3ZTsXcz zvFp~_!*7rFbY@(?jauG;v4a#lI|Cu*#t+p!^=MBfr7wMSO(>(QP%5n|b82U~H>zb~ zmyQ;RHgajJR4zv)O_4w?O 7HqhcbDHPT~n~C=*6n0 zO0h-86n$QatO>@*JJXr;MIwzN(a;vD;@Jskamk(8TPlvcJKDHBxNTR}=%Bvo>WU3J zqICeiKtaFF!HP H~q6Qlol*clPALeGL|>aI^TRX6x6sx--Iej$QovDT%N z`uWbR-={wG)iYEZ<}$N~6n!X)#ML_qW@YnGJI&f3d+f1qed}A49elB1hW}QsT>15{ ze|^J-4VT1FP-n?#)B)IpikfAInH`JCWnkzjD%O|*WLCkHH{4x+|L?Y}*%(p%vYxlZ z6dGHs*{B(gX&bl4blv*Q=U4vx`@R=`-g_Cr%#!SqE8O9`v`R*Kz-Aa!-tW+%Ll@cG zNkLe}44}(on?+?S5?jO@WnDNlOFD(laP#? E6f<)VHdcJCiaJf(RC`$*$0`}T}cWX^W?wi&9;bMFm5 z(@8*wGP*3P>@P|#$*u+Rf|CGuxa;=XPy9)%N(H^7*Pa~si%;!)`q3VrUsin+(#0() z5>;P)eCWUZ{(;w?7@&sohIRk%wA}u&rX@U(F8hR7ybM#AqOJL8W$rjQr;3(+t%Xi= zUZRX+4olvwWH+bg;X5i@!`RAL(l2zXt*JHqz-L>-F(s2Rah}u1(x(n5j=Yxy D zSb#$HD~I1r9DZlC{ZNYPf$El`%D?{E *8MB_sR!;t){^nrWoY8w1&w?-A!%ID09AkC$Xdw#Q_ zb!}+dby1!Z*|gELB6!;a4G%3{>R5c(BzqLq?iS63@5@esW@1$lhsm=+Bxh M?tTkS7@cz&oqw )b{0)}+mN+*p% z-kfSdg{0IAbPWDFr!VBphGl^@o1#mVH@e?(UtDJuD^s_M@rv|?PMOac`Ha48S5 >xut|L*BZF+F^!^H9D5{11rk%VQ7CpFpFZA7)s)tC(P)Kl zbT}{1Gx5@r{2>J*?wywgmoUamOOZvxX-V;mR2a4FsSia;a^WLSA4{!VAGv0C&9nc} zqbPDD=BsZGMysgw4*36YUt!=pwFbbccHLR~_KU+K154H?w%{-meK zy|0bj`at8|pKM;fCbVT|WksDo7__TYWRk{UU;dpJhV{H@7OdlY;)by#?J5@~beKC8 zi7Yo+)ihBB-jF6U i(0mCso(Kh}SAPeRwrpc!KV#s~APHel47 zT0^+XnPYU7r9~QT7?_qU`dO8sNP%O}FZwxWlvxo7sw>*U*L<*M-S%icV;VX|4oF3J zK&0ANRqtDWMbsBiUVUPqX;t{l;RGG9)a2O3$u|=iGeylnZo?}J*62(QJD16nRK>dc z!RFuiqt jT@3Y*B@8q>+YyszoX*eubqAI=e^mqv9w@jIm(f{`enIwvtnE? zM>6s&x8bqaINWGi7x={IRzxaPu*9kc?c;ykdgR?i%j)n)es?*<&iqx3U`WlRt;6re zAN;cwbxppZ-a=)q5A)#IzR~395=oX3q1l{0D=I^fJzp+k;Nc8&m#P~ApZVWcefYPQ zB}epJ(oi&6nwTdb)&kMVL{5z8RW;h@zO*(J(H?uaE1z9bNSn_#<9sud#F$XcWYxy8 zERV0$hyf^M&6d@{KuAf9;1OG?QPbyBmaPhn4iyH^=Y|Ig^M{!~V8llXwT;25djCj& z0Sh!#K1G#U)`SWL^O9aK-A|Hxc3F0YuWXtN^V6orS}3gD|9i_n^y%j0NTK_5_Lax` zYn%KxeYjqstekOQ!w_S6ec?a){6Y1)+iR+7eV_UK3Q&v}f6=?dVo>KC(>POuK9whs zOi8xenmIuPMIYz5)e+QERyco7BCDh!u~D)-|3rF#MWr2VLq8RIFvUfeO6ZU^76U@o z5UYF`D>Y0{?M>NnL-j{~n=poByU%3*?HgyG{BdtSYx;wV+xd)7gArw@FZb`?>3rlL z&!tjEP6Qh~_-89yRz;Q=X $2!!N`Av@WOS=$i2 z?{`{45j9q!Vge*bL23eb{zl_NUrm?A?zMPrROQyqg!iV{gj(z}C!rrxO$fQ1;d65F z-}oo6q^fFBMI%*KHPuF0`F@{kRkkJ_EL>>K=Gexa(L|ie%|klXF7topFIMS>nTnGE z%zYzx4H4%H$e;StR-6y&F`3CIGS0l_gEhbSL05lwc4 SNGdn7u>T}3a85=T|KBLK=nBOmN-dP!rXnH|VbP 8+@iP56^+pn3itY_7sCEt>T|3cwkz2 zi`{{AT2+}4pe0YT5MT1rOfE?v=PK&_gpIlA-)@f?zi_*!C+cQSJPiPN@<0+7PsI%Z zGkL5Hp#9n^s^yYBg3_3`TQ2tF3PrX4o~*m}gf-Fac8SO_@np;ehnZ}fI>xbicXrh5 z*9Il%tETSdmZ2zq!z|>CQA;vtzg8v7KGQN(C7_!r-N;;a>4!4qF{qYGoxm*7QLv(9ja-IFWw+iT-@feB+ssL+>PXJ265o(iF?G>$HuLmSXkJF=Loigqh}( z2hNjXR@)S~>F&D9I^VH<$v2-KfRL0fvu!qsFzhz9T&6^)8>+L`&P+FB#iKH~+ONfQ zJrfNsPh>lCMqE+UTp`{N+wM~%)P>3_B=enpiT%>J+Lw|wX~o-1zp}V1rqSVFvZ5-Q zrj%V$^9eEIeLm^qf4t(J-)i;;l;o&U)8PNr4|{I;NW Y!l`_T>FR oVngy1R| zQr@RV16q}CWOXy=SHm2jZ1PerPis$+?Ui=vXxr>J5s`=7erZ7zdQ-}0joK#l)(0AJ z4S*^bQttTm#@C-5Ua>B`^8?jG{rUO8tfIzu;Emzc>!Y{a*H9=J`K(!8@4Nfs4L@i% z@!FGSQ;dpXNlsk?o2Dy8x==JX&&&kE0qCQd)0sj)b=)v>x|O4FblF!hlF8h8z|XRD zMGojjk|RzgDrTi7Gx?IYG>(a5VZpVE{DCS0m$f4dt7l{>Hmq=r)VFk!lAF?op=oj? zrY1)8(V;?ocwW*BqmfA(m34l+NsHu+bkYol<%&w>l8Y^#a}|(TN;6Sl$5JRGhTAUT zjcJ!kR@^dlvMBRO1P}%~ua9Q+A*S>)x6Gr;%$jND3r319AgVBpOh#W_7vg9M>C)zm z?nD@+SlL;Tbiozm1<8Ubs##Qy#m|AuY;GABb~BGvgUueIaJU_>BO6qG+qwi-z>A}s z$+BhRL3S#1$`eM;vZF{Pr;Y)s^6KP_j@oP5)q7;Oq>|-g;ftw%n@Y|Z*=@yAHQBn9 z^9jclkQ06~{5nmtR0<=N%T?UF6l|rzH0(ntV=bNu5znUhXI=6O;;g k|);<%V^7-MD4ufHZl>+W0{+A?`cxSi)-IRp KDP!WDak?A+L%2wlRKMH-! GnoYa*$y0nPPphL%WRmhF=%BGmc*la| zn-yyZ+O4<5)lA7%3xqGJs&XzXJ@h|MAKRZ;zB+vFRO*dq2Mc-A=PR4yBokwl3pw-O zzuVbyBE4!;r2BOC^{4w%3DfVtgr%8W5-C_zdQEF=VCP0er~aZfNi@wAuraLyRdlCy z*%F}FB)j^w&XwLd2J?alv@Y@9#S5#OaY0T+6e|#KO zWZ0FS%Lq?SmEuG`Yc z#y){BVF3|owPoo&J^petr4Od5hk|vLp;ZMv6$`c`bKRN3P+pJwwOB*N)tVC2jcl$k zcs}t)u8 +vmih^n zWmzePK1}=-B9)UUO0+`Frp>os7+89PH_p-JqO_XNVBqVP_b5Mmkq$@J0 zznayD3wk=BRf$L)U9}Y5$mnLyFm>+1HN9>|6+Y$5E_iO{F^%--x!t&(LT}eNyKsyX zj&DDl{N`Vu{Pdr%tY79gL_W2 y#_nt2d+mShvVR73*Ge4Sbr%v?b z@Kg*lXZKf_RyJOS?J;H^1wu w+a*Akbcavj6bA@urr5Ua&Uo zh<^M}R)oT8He-SW2E*#JKk0k+-+KYBT-LbbV~w|dtO4i5k)&(;lpp;+=Z@_e!QAWb z&JFfwmt-ZtNixAK(S1o#=Bdg|w+ zKAFAJ@?bXQSP9RWJh27tjA9gkjiKJ`a35tx_``G-$IYesl-};_k$t0ln%=HT*>wdR z)^RL#Y+rmSC2men8Zn6t( R`|@I&5UJ;%|lL(@47^J&{*I`2du=f5sGT6PYy-2 zk^aJPe?jvrWq8^a4fOerOls7K#5Bz(2ZC5n^CJV6Kd4;lW3(VJ6Kf&(H#Gs0852~V zZ>&|ttdkBWL$UJ)v_&3YPwlee7`D;dHaAI(xAHE@JYK<&I^3uK+c!FTJ93sGojIER z;n&V)Qw2bxEYI8@P&-d1|Mlx @ECJ! zAm&iNZZa=sF^r$WlE($*%a?)LJU*t8f3wAMOf(8n7Q!(oi_p*)f8KZWy=24kU{`x` zs6QXA^p|8s%;)^3Vg2fd-Fsdgt*+NPPozeN3L7`7o~3bW=_5>xL|#OY{sL4*wA_oi z+d_6ZsLZ8)5qn+Z_QPg*wNiKJFmJu*()j1*5AzkD7MJU>-GE)El3k~y%XXWwL0_@Q zggQq;Q<@NyGpl(Zvs&yFhfv0{CRjI @xnP{uOEbaxn2DRipXRbuuk^+iY6AbLtmam`OR4RS|`1PBcBu zWE&kWjP&b)FtvRRM#$sb*PV05vbQU%7fgSE3~cx`88`ZS(o3vN^o2;HA}oGFE0rzI z#an z_6tL=JW+k~y> Fde9@>pLwse2fkrEVrnUZTspS @4Php*u$NCSbfW;wk=`Zp!SZTsM3BY@uUCMz9c1> zJiZV30wuz5>@|C|tYXNWERAo>HLKy@``R%6P5NmeZ@l=6zRPXR8!J-a1OssAPO;6G zG+L6|`8M;WxS^;@_I+dQ@L `?P6j1@lrA;~(N;i{=b#^Sv&Y^bd zd0UbtFSQEx@3S;>Stl$>zHo5%Ty?XV8tuoMdS};D*V|?RGmdFAWv&aXit=xUsKH}D zY|B%1%ZD-U>^)Y4w5$QQmb;blTn0_{;I&XN lNS?VM=C;`o!&zT)cZzr3LbxOMM)^Q^BkAHolZF4LYH%=Ug8!pz+*PZ>| z-?qQ>i+;n9j_(^S @scbdlvyKkt-+g)VIDu5c*#E}x |+6CFGJftlim~o*1+Z)O9tk|oyB&5>Y=5GSwN6D2yEW0^K*_ n@#luk)QIeFnBZm 5vDxbgD z?W$6#R4$jhtOj%zwLnCBNAlrlA|Awa)uQrXR_4V|M2!mHzs!}6%AVFKQnQuX+S;{i z*B0&j7h(CJWSq9PHmLC)%%-L^G~`r7P?XVEq+$z3YaR(v-sa|VW3-AR+iaioy!e9C zvWMyy7hPxAABjXi{_&6R-o3lL;s4X$3AS)JylT~|OLvUsK;LF=&^PVk`I24STR=|o zNaI52W?V;9Q7qd_IVU+bQTn;{XAG#{?`v#qTvE=)OJACazoO->WoKw8*7*5x@x9VZ zShCTwX4(bB)VWq2o*sUFzu#LN7nccy;;d9v62(_k(dJA ~RI3f0y#HkO4nQs)O* z^eo`&%W|0wx!y1>QkZeCB$4P|EW&Q;mdIRJWIKQUeGD32Vx&>T8_I&F(_=S84Ue)& zo<))w=)r8NSs+orB(Al@nu8NFE>Egmc-uUrnOMsLexEJPBw10E^7_rZZ85^k6!s4m zTvQL0`lH(TGG`yK>}}HnfNN{xnTu}16oOM)#?(XFl7yKhx>u2dTBI4Wg}7K1#`5G? zSxDp9W27Dhs%hy0S*6uTJ%C+u+boKEE3z%R3K)IUC>eUs%ve^)DZ=alrA(J8N!gfl zfYMm)M_0bt`&dh23DAuN?LF 2?#JI_4h#{!T>>dkEmp{A;&nhD*kyb<~y$QC1MB-^sd z1we$QndZS*^9T=SWnLy_s)$MXW@Oy8yULae7#_eDFU+V>E!&xeLM|E<+ty}YAH7F8 ze`z-MS~QcB6-8tpktkb; #0tMm(31mTVfp3|(nmI+JPn-onG zCF$k)l(ljj@j2g2lAI1q-r_hHzAeq(<~Q?_JF2RQ?x >e=|JAb8lOT)s 5qb5FxmAl7i(jd!^GlIkNH2t1=G!JMA=OwMQEcF3S>&2$Fs~sNG~)-n1~@Q zSE~wdm=?Eg##t{yRC4(jp`UpskaA*dj5L~(X^;^F1YML;FSGpdz_wUnCUF*LdU0 zVr4T)va?}4u$4 )1T*_UaT ;a4f?96N+3j gK=Zamr<>VvaTeG9ursE;5nDi<*%-5IcV$_-Rd`@qywc1W87>?*RuM#0ZS+QN z{-n{J)(Ng4+b!g<-}EY5T{gOzWf$0SSAcQ4ynB;i{z9gtdy8%uOc&*HyQi(OiZ0%^ zm|(`MsbGu6)@G(1qVMHRmtC4s(zM8kpg!-W!Liz&dbadoCeqDl9uQSjREN*VUQ?I_ znEfIFf(jK_T%|yoqmjv89E%c6*LCN$VHn;spTjyhx92vCm`0iV0LgYeGcq#^bF*jG zFFR?p>+;EzY({1DJ-fwaBF#)uKu$QqO-trVa ?w~jqO zykRS=IFmshMD-P!B8UxBRn>CA%p0sl3^OJ$qSUlv8<}NyaDpez%B!cb@+;alTB@d$ z_vD^5TfC&vsTZdR+m~cY9{pG_1}O?W8>FD&VXNg*eJu}Tiymf*Z40qO#+_12UIDo> zs%Op%3al|j^suBj85rIpx djXCWF3X()S+tVw7gGC^^iPKq#z{e5P1v$K;qN&B_QfQxwn#Ra7PM zoXgeX-SQU1#VyTbsaP$L xmI*r$KoAB+QT2jeF1v*%%@(gT zD;Dx5StiO^6}@L3%`emDwqIf8QWe#r92isfih*24x|!t2Ea5h@TrDI$zF2kwY1%a) zMCdROXi%}E`JdJ!9gAI>Nkz*&lgDBYL63x#aT{}*3A3)MD4M2n@fFCrxvge)D<6eY z*9^m8w-5H{y6$C9&vs~-aX4c!^JzZ|69`#6z+p^FF}Vn;oz&^Y@05S>lkH~Tc7)A5 z7=tq*ENiTyg!hCOsWcN+a7D1NteT2ga5>%3 ?P9!TRG6>RJP)_AVN(uO+}OiDbp1^>am!0GmGo(kd2wdn5;;K;$*^j z!&YWZfJ>=UD?wrnqL|#Qqd+FCed9vCB`@%5F~Y1^k(2YxtYR>THDM+8wsPQ1ku1>; zRnf?%YnCmoQ}V`ZaZ59f9~ZG8vNXmQ$Cpp?wlaa>|7Y*ZgY3G>JMaGXe!aK4)vaB! zWm}evWg8n~#uz6sBovEnz?nc5ge93t@*hb-k) d)=+>R$ItSALQn}`|fh?Ip4l|9H!0a z;I59CC(2$ldpea$u8I1W#}LEFWHMKH6Kgpq>s;HLBpM@#whIMH-3V(}tc_J*FFIGW z@~Kaf&sm+uoAJ2UUmwQ(>-Ab|d`SyZ`zv^hr4QG2qgL{Hk$>?!ui%m;p@(Hbj(GLe zSFaYDg?$qOX-2GInlk9GRUN)!Ik9;GIib(@B)e|~?&+qoAGnS9%^b(6)oMUw{H<22 z_~UuLLZnE2@g*VNa*xl838aQzlXWA3W5Bd>xr}+*w(as*funeN+)N9C5@_c|zxK5? zZ_Jxv0@1mHpka_^<_38Xt1*Oc$Yy=GENK1MImpYT6FUsU%-(N$U*gb9TO;(N=A^Se{HGy zihQU>r^}VymVstm|Aq7f!y>DfN6pRzxz{|@t1L7!`ER&VdzO&SGgn9T)uSXi3ik`C z)(bWGROdIHFz@k2zH(m%4QN&<6pF=S*sb^4(m`Z0V8|Sywvr-z%h1gTpCCgwu>D>r zDb7QQ*T#zZ%&dMwc3na(&Y`A6m{p?gB)rWVk0$^$FT&4@cnh&Ig(t0$I^V4*UK1}) z?Qa?l=!(KuR~*3k=55X5L}%5|%+Msk%-5ldbC3eJH`CP$u2pfl!XYYCfCKE0=InHG zp-^9#RT82orX-Xbn?%RUa t+)%i(Uw<-AHjwsih$y(M&t=kGD+ohtJY%?k4 zfs{DwH}h93w|8wsfYQ_rl2Ph)@tf(ZdUFLLD)W7z?OO $$|cEk)&t>SJOEc~gW&o%`B(TnN_>#7C9XyH=!Nbr4{V zQp7btID(X96l VR5uc@XjUo}nZ~@r*kzHH lJ*>LgxrU$fJ_?jj;m+_ z!G3FA!)I5fDV5{GRajl2=Ko)A7S+u-vWD1Mm@BrLD=b)nzvXfn5VmvY&i?*>e87VM zTLNU$)6?VQ ud$$dbox@8#$mg$sTKC1*|Mewz+~BfgPEd*dVuB?O sy34?=!AN=44L1NCGJI8aN7iG3)^!E1d-MbfWF+4n6uU8kRS*xs@>Adfp z&p8`SqZBiU3TqnL$_AD$YH5_hVTP2Sr8QqU2~+lWrB?tA06jnzfpq}c#fuk#7$OS+ z5QSOcGawJphQC2vLP$(;ZF_tB8*jV;E`&3MoCA(=CVm1;<0|kpfU+3q@sl17W$nOw zfonpj6P%19;nJZ !J14Rm {b zQjn~Qx4=(89?{%n5o8)57I+Z|ld=Wzcw%NIC+FiPm@p2eQmJye6b)r;a)Ge4xoX^u zTayT}VWClzh+&O$&wOH?$BrGl)*Op(36-p^tqsadv`W4Nj8Y^3WSd|wtt(tuNp=VE z7RZpD0xW{Sizo>25~@ElGXuy24v2D(Get2IYlnc>rAwCtQgJeV#f9Qr7Gs8-rc^Qk zZh=&x{Wzyg1N^TfGiiFe#lH$#hJQT~2Y@hm7fc(I$9u89*GMGrzB-NzGK*m*dRshQ zlrg-8gaOF2 #a!yi@>{Nk)%S!tpU z9JzL(n6W4cQDue{zizr=Q-ogYWYiILlUegaxP<~J(RZ06)M;94?#8?iYJJV72MGkv zIf3H=AS8fOKzzjftR?K_5*V7VA}y5J4a^4+2_O@*p%^n{BXF{ORsLCx9n&h(Uo4h# zT+DY8ohV_7f}FxV)H2F#@lb$1TNgbQh8x|lR!OWiHYI{-zOZOK2n |^Z6WP zMesVAp|UZ`RX86f3q#K3W^lf3I|>M8s*HX{YXU(NFsz!;$ks2-GEK|0D6QAF>Qz&< zgHaY+HI#j3-sqkvLaKFC#;7KAjYcg*u`U_{H`ny!$>mY*+VsRo$tS-R4Hk)8Yr3!r z$>&rK=C4htrR>O2k}Rsi?EI;?H;~*4n!@09me0!OL3kEAFhm-ZL>Np4Uqu@sn1e!P z7+?-!ITUWA*pWzv0<8E6j}ShF3q{$Jcfn6Gfv9>W`+}beg?zbOQ5EchnuH-;YgK+) z;W$c;1zwny<>kE~3JN2N$H|=_ax#9xIf|poMhFiV%@C9aLL(*%RSh?UR)&M12I6VB zN+uAlm(M-z3`iO=or=jZgJX$N;7KX*3YeO71NBoYOt(_{h3wr%Xzg6YCf<7g)|*Gs zPg~f*-+FD+Pm8nb%lb*1rW8Vtg`>$t+>VpF3y#+CmYt3zflHX8Fr#X@60_{GUlCKG zC?1l50#IvIiTT(L{f}0-;no|qI$Oh4ewxC!>FMcp>(+rIiL@!OE2t$HH9kHLu}v%= z{A=Kc13=>{v8e MZX!@@HH1)%kOA! zPsQWaQdP u)qIpe!Vh5|(}PS^$mM`kwR$bet8oOXmzYW9 zKH_Kwbc##}gb}SKI(Y!MvbBVWL0#&FZ7PEY;VmDGC*p(a2Rk}DxK%(M=w*<+m&c>= z7nlRIQ4`j}R;JqA$P7#gDj60W53SXFurA?^m>#YYD`>4&Q_`SJRSYolA}VB2c`q UpJAB|C{BwMq8V<~D=9tbGXs z8-MGqxAye(KoOVQj*gBF4-YGH+jQrJp3;O-y}iA+-FDmYsv2$TQD(~IxXn~{p;ek1uR=J?GRIklHUZuMAJ}m!PwXs zpwnl;1c;_=6#{KwWw=T-G%akrhOg((p9gXZKUBh`#FPl@i@L~U6nLlr6bUgI8rnEG zH0U;5T!jhPG4f~&==b&YL9LpY7_U|<^D6vNp#})^#v5;7&Ds7=+M|ezV$Z}R!OfZw z1_N9dA|m8NaRA7{IuCpW?g>GOst?Kzq$YzWt{$4P)5WwcD$m)L*|BxYzMuahmPnS$ zrD_ 3>#uH!3T*5!4iSYDT{)f(`3qu z7@2giJzzrAdX!3~usB^^J=IDTH^1(>>i{7@Je&aPdFITSk&zLc+0oHit3lK($?J$R zDV~F97Bh~VJb4me02os*&Ve8_gp1 %e`Oq Kc!l$$8Wv2a3#OL)g a+01)Lj-Z%qhDUlCK{}&uno;rbkya+H8q)pULH6NiG ziuEbesBm?>JMdHPuMDu!(PU~CG>d8zpcktd1!8E_4T$_X`QqS)jo06B{qz66zpJyO zT&hSk&Ad3K1aZtpc5Cn6y&&*UKm9Z$y_NZb#9l07x40Uc952gdLBIrT&$G`yi* j-dv{02#Y^K5 z(^ecZD#0Aes%{cX)CE?QHCT)UA~LC$jhb-9w<~Zd7D%~J5J`mOD1a)lLVaMXM@d{; z!a}>dyFrQYRp>AH7#0nDRisn#kKcXw-H>K~_OqY9{`xP)m0xvPz9}Jf!mhC;&|yCM(T`%PKl;&+q8TVr`;7u?tO*2|;iJR% z+;!LPUAr9Hb}Y#0D_kGpt4&T0kaBsn#59U^9^fuSLgiZep?O)ViwiTv>xgVAa~8G` zwato?K*Uic mWEIFD0y7JiuP)mlCMtcQmEAn6kPxLB;Bt zK*-(B27QVeFBJ-jSnR(0-t{j(-Zwcp6^q9!Y(Z+ZyvdxfR1g3lDgYm#s!mKy7+2i0 z9QVY1l%Xja#j{*N6e0~tFWa|c`@zS+i*V=5TJ7gm%oMbNn#lg)#lh3$-J?4sdnr;0 zj&It$xu>`9*s-J6ZQJtBJ8y5#wqef=-!&x)U`1;+YXV_#=k1_o@q%U|F#^ j= 7Hq9-)9h)xRhNkQuTP>V(A!jw$*ps70|aF$#KQ zk3Ym 1BCc@fXbSsi&S2G>{;G6 Q9-^#y0t!z&@dN}U* DU8&w+vUIP=`uH*UQCx_jSw*SfwQ zKyuxyyS}SS9kCS|^g;dw)-6bMl!)yrZl*+Hz&*tHbpt(qL#x-khTG6By`+_MwOqrk z_juh6kMIzL?D+BHGcz;Lpyo9xM}=Ya2;dAZVd#edsYwPvGMU7qGnve;T{oB6{VkJJ z_`@l!wpVL_lO>YL&6~F#Ja~9wa +_ke^ZiSC-{ zJ}Qb@IOl5m%|L9@>5N~mc)T~jIVa}iM@Jpoy6@h5jvPI9@bGJ;V#)L7F?qKFYm?Hy zvZ2Ds7x4isi#J9E^efEkiN;~coudvzK{h~PDwWK%WkI3G$H(yN-S4>j=9_k=<4!Uj zgT&Y%`N3jL)UnztldBc<3jjjy0PHH;0Oon`z4t;jI)DBgK-8odAFEg^7Au8XqYi?Z zY)@)>U>Iy~Z-3^QXF$;~;f3}tKoX`h;l4|IHlVksBs6^I%u7?EOhlDZwRbqUUN~VO z`r_%N`?(%&15m`ZKzpSr;ZZ>9R?D!8q!aYUCE$$@KKNj!vwQmdnB{v_y%w)k?V4M6 zJls9uS-zdn91D_krft3N7!AumbM|zj?peB_1Y?EF@^>|LGu$hcPFH5CfE17^CmsWP za~ykeauSqh=k?bO4y`|Z=Ip7HryxVBNkmoZ)e0$Yaw4x{2=D3!1h+ &BfBS=&21@P08Hs~f{ #7|DK*6uqn;e>tG*-SM{p3dew==+EZCWC% N1WM-x+xq{yaR9SHw zs(6%DHt17?SS(hkyR}+fihhBUGlc@^ zO}#bL@=e5tYpE`4G$=$FLd674(t&Mf+q3J}4{qJGY5l;ubUIG6hrVQBNo}?V21)`5 zyJb?hgcYpbz`#Ht#qn1_b3C09h!m0xSf8Gr9yvRbw9`i1bgf#+t$4J*W^TGvuhbG` zT{cB(P=;&?fLvrgQ9Ei_NH}O#F0z*BgqRN`K(Q5x2{H5qYvMcr%HcwBc|)2NfWwbc zRzQNbm`@riJhC;uTofu*WZ}Z-#r)_*#WCudm#ylRq*1kF*@~G<>AC4*tl}HCUTwJL z8DJJ9NiS_CT)kY^J#mmoM5rp&EcrF7shh g%MCt+urqs(7%IYurGS@)!jQCA#1`-*seMaS z+Kk%qNlZ#4+S)Rm9qqk6ef ;pP;E&^=h$1T(9YFz3kN>R)JBNVsr)E zU$}4qa+i3_77y=IDGoA}I43Mivb-*hUfR4RBaQ(8l8Vp5`?9sAA@Uvw0lBt44Qe43 zK4{b>g-6UPT(pN|tY|c!T7TsLl=}}44|n(UIH}m^#Ko9qPu6s;Y~XepSow?r0IfN7 zzg#SPTCG$r=8E-v$*H?0MP``dEtGXo;waerQgokX2#syoEOwhJ!BA)>J B j 0F+Ms PDR;BfnZMLz1&8`yysqF_PmP z8{90Ba5(4R0i7XBAW+a*iEg%W;|661lVmW1+QtWFZjq_ZpFiKx(cXYgREAtuWBTD2 z8~JLbPQ42`9zx7(z|w4%G)X8qi%76)H&tyPE OjM~60SR4LUe^t?f_ zR}HbG=W^tP93LMyn5A0~db#Yr G374^m>Rp;c_%YT&)yn(2}HtXrN7p%KtnEqhhX)J)xM zLNmEDc>7YipDn{ZZCWO1PSB = z170H1;cGyrdZAE-j_tEpi#q`NOp62$OZP06H*L1=`G7xDiOR>@Tp&JHT0#VI z34}Mva4`*YfuKBJ bH^`r1VO2&cy z=j)*9ESXt`ZD`O7>ySfhZp{TT)hMAzbUcsCXsNw`_PfeaAb^Q7V82=+kR<8GCdvyK z0c14j@l?4pRKEnxW?ShH$tJ>y{q!I~YQ(B$@&)dE!T)hdV}fMzTv|!T&cu?I?QrHe zIR~jKLpo&}7QH`ZBe}ppKnX4-83UMHuhuFRlPp?hfx~;aL6pZ0vZ+uMNl6y_GF^&+ zw&~UuRu~(L=>j4h%b_(U?nFE*?l_=+5c>lw83>5UJ>DqyjtF&waS4i**YK+qqW5~x zCn;!3N{tXMmv-F{#zCED~z8Tr(1$ zw{D<+_?NE}2LKs{lu^j15=o)%6k8ZeVfHu?>r~hLnp RkFZF- z=K6ukug6S>h&L^fp9V#Z#X)GOe@M8uH{5W;YFZj)iNRcQ`5Ay_Di$M69RX-6m(>E1 zL*$s=oYJCvAcX7r(ZH4_)3zP5I0{e*Odj0K22kZu?F%yP7TF>!4M7bq)-Q42x{*kN zi^Oq^ke15wni7_lNZ9RqTEuZos8Xv{YgMwIYlgUlDPxO%wKO)dm{gcva#gvCkjHj* zGWF5y34wT4W!A{udf8xOjSCc#m*Vc*x@ry_Xm&(Q^e`AF+G5k={z)K~B+q)p$K*^p zMtvDgDuoCPcP!G(DA&v&?Dc&}jAgbEL?g47<^1Sh*Z Q<+2v0z)*mq7gQ{q z)8@D(f@~gfV1C`qS3Y-9{KRY^43N1&a1g&j{>05MUc3lNXLNKFXtr+MI`LdXE`{bc zGBN^8tJiBgc3gkcO*dh7Kv&!f*Fqgq8Y9oA(NZ|MDQ9<{=u^2Bo(_=;Oi79eg*KQ- ztyNks8`DUpQsM=bSQBwVKr3720&;C_8Hf|Pd`Tnui1-dET?VHhS|m_%!7Hv!9El&* zBE3$c8CgNBXBaavZ?t~Y8i94Ayu+EAHj@i$zPh3#MPu72UWRzBNTHe`!h=avfa +@{0!%#C(2Z6 `9hvV( $D!#-lopT*dfJH-Cjej| z+Y%WJbrAp!Q5o!loL#Y)6sr?QnK;c UVe?`s4BDwc6m%Sb6geP4dwkGu2b>UMC+G!m z2T-lC;arTSVoVXE{A|h=AVb^;RJ&6X^QAW14LICUQ{xt7`n=oBwhV4u6=12)?S+Zm z>X7`IyOKeLpipPVV>dkLw3H|{H95KC`Wsi)WgJhs=bn4M`rp1H8zH(oV6;DzR@LBC z`pasdSrGA|hQx3H&BU;*@~ O*7HBAGdA6{49JTBM0gw5U##ojqzSnm1=z(3KZO zxD%T&L<4M)-Kj0xj<07i&Yy#}hO^qzsrBmzAtC5&n88Wp29&&Tan%u$8bMelXUhjp zJVQchwM9DLNW5uSn_ibL13~F?;(j{c)#u`-8tagh7wr*4H673`Ml<}=CAp7#kwM0r zn$Gq2_b(->Y2LAC&mI7fDguWAu (_JgW!2;0U2rWh7QC{!m8I~bRP%?72i7O0xWo|BBu+0ewO0bB!Jxz^4s6FI zn4t<5o0Ug^%x*oK$zZCOiORUay50Al`<9q)y9_kz?C5Y}@fTluWpr{n0rqV`K_sJr z&C$+gwGIGrAp&8g*fQP}(- wWd4cOq8En6Uxfu+d80#-nkCE%4T2MpP|w!HY#1xz5M zYU cl@7!qrt(S`3KCk#ajHxP zQj!%itrR9uI5wMHL!q8_DxH?vl0qruKJS13` G^hT^h;fq0u6O-vFIMOB!HrY9_we9jdKqBY)(Ad}zcbPsw6h*K_~ z+xO&?9UYyY`t UAO_p;DXmh3wG^ z@S?>hfkoI9vMO I0;{MwEmlbtF{zc`Cn1^QAM0pUHOkhW*U5&$qR;|Cc}f zqxFWc58AwOUXANj}w|LNi1nH(E`>ENMwDh*=g)+%Id)cmMLSgI+DX)%BmO>as& zi00(V?#ynn9t0(_C~C3j=n+BoMHXcZjeOGv8~I5haBQmI#tTK3p>#5F?&75*!^iM~ zJ9g}dra3Lw*m%d=-|mH#p?J-;d_Gs<3fMxmBl(Jkgb0ccLpr3){?m=wfAbHWyDS7Z zF%47M-*Gv)@7uC$!w@4G`A{Xmsu~W3JSyr^c;KZ=mjLC^Dme_&6n3Zf!dT{zY&YSM zfd L6D!+QN`R;G9+t-yP`KBJ7f4wV6|1#==t8wb7YfEzP#&c{O6CMCw58LpA3I*E zR6qQ{Lqmgu=gyzw<5q*bTs7OYZomDu)2B~A{mgUQw{1%$6S }>M9(>@-fA(cp^hWah8jV`*jW W2yL9vK@^UMNhSs+w6OI$#_w#3tpFBM<(4U|HPD)iUgc3mUFf6tr%&Aopt z>tiwd;`#Hjc+w#Ax=X#=IA2(wqf%1al8`;=QE1Ye3#y8_U)+6c=Ae)r3U?u3^*x6h z>EJCba);O+`Mc>DMLZki_qMGV*j}SvZEu5+lHT{zrw$)JQmxeRA`&vU;{1keHoJ4@ z&S-8wRRS#($HvCQkWKoMV{2hrKKmp!$v~OI1tN@Xp}}E3M!?8Igb^MowvhIYcE}VR zl=4GfZxtUXwmZqqgJcNSAq|;Sxz(uMOBhb@xbR5RScIEJ6|m@6(e^D41`r)Al}h0= zbPZ7yr6QO}j1NBakhA1K)8&;V+rE9f6OS35)}GCN?}tCQ|DL-y4Q;wKo|pVw32Bh3 z=sve}<(`AhYK+R8ZY|%v6iq`U`>6Xnz(afmZG%kW`Q>t{y{nhI+D*pelo80x$t#tL zxtST(kNk8hoy+IBDS$}^E{JcTk%Mfw!ga_N7@}MlP(VQdA@+wpwlLC2(_OJE8e&B; zROlV}mm7Q*36m=EQP2tgaT_jzPhab4@96DW_w%QoesTXx)B~?pz2o-VAZuM=R?f#i z{_*FZf1dfRu9|d?j*fyJ_xJacDbm$d)Q-qY5+)+%iYsjU6iq^txDenr B}LiBY+A^*VEm7!wox^X#ZFSH <_NsOxBa?8!hWL&$lw!;rT_@Gph3W%#jgp^8W&z=QOQ#y%gEJDk~ z-n|g7n0LrcnvO(=h}qH}4d~s!Ze1#!lE^7Zg;p(^qI<2ztOglQNj_M!rU9ergeCGf zb%`=RVjX&Wdoi&yXU^2Bfh%0ho{$*7@P#jAm*z2B2{*%oZ@J}`M<4sn@bP1ByLtDk z2M<26@25B4aQ*therRH&qZi!<$A3`P0C#FK4GQh`eBGFXORZtlOH@3RCKjz97Ojo$ zQkgUeCr$wv<+=&osaMNBw=cp)jXHiM`L E-LIUA2VkoO!Xc7@ywa^w5o|NifM=R5JP82i~hA$&74GhB64-?VY7 zWQ!>MNBM9sn_|0o>Aog8MJYuP#;8U^COI>cla` ((j~@r~ip66dCj?QFUbzHL^T2}-E~`N8GAdiihrN6E{?k7_cIwp0n|5Bmb<3ui zeEzu?Uf!~Kup^x^dV5DMjFk&{Qcx^gtCN`y0ueKf<~B=OOAh~K(~!0Ks_-|}V*`c8 z0`>LwzI5pDg|X4@>#i>qa+OM%G6yu1f-oQ&HT=`3&s3|G!FByuJXV+-->?kEBae`W zVlS0`<|#9xc+5P>x;FxOQk(VWaR8 m3;$hSacU&z|e9yM7Vd^wNcqFMa7t-}~P8RJgtP zucR9o)xkGo;t>`SCLzMYVde#c#ml+3qM3NWw6K?anDJ?((n*NKP{TwSQ(bwR>TN`G z*cQjPg+45TkWs5F)&wL8Vy(n~0h~y8WkZV;T`rbNU;N@12L=X~wf@U48GZZhw+{^t zoji5&(!_W&7T>aIlVMt?PoF&pnWwL}ufIQ2Opi@YP&MWTxiE!ayI}>i)|M+vL~<3b zHLrB89M(0q|8Cp1< {z7+m@78TQs z@WbEyhkxkm?24M&uwwZ_{_x?$8#Zj*v}u$0h*i&n*3Fu?sX#O|r XRWi=J$f@FsRoV=;2H3@7vjeRaI3`v8DVm&C zgG5S-Q|s^l-A{bNS!R~4`4@lj7fbiRVCs;nkG%f+v(G*UA*Zvmo2`ogNN;><5};A8 zmSau~Ts7`cAgrs>&dFJ1L>iPB${D54r@d+|o7AKbx5_GkWku7VigmQNXWOy|4;?)7 z#@Tcxol2&3PFSAF<$rnPmp^;*NwA!|@46G$l}i;X7B^Iawiw?H@gDoLN*L!1%C2w# zy##9bx;|Tf1biDpp)WONbT({AsFvpf$6_XV6hL^KL>vg#p3TOSiE^oQ>eT6D$4^e= zb6q{XP^@usu~@ip{^GyA@B$tL!g>Am*K4aZuDkBKN5AuErBacqrh#{X|3QZ> Z4&UqTT3*e72(c&*Dmvs87mgWrstQcl;=|tJ*Scu~=NHF3Jh&d{OP> zNYg``K13&@M{1AHao$SorC5x)WgjITJ9aun)x}SoIDYQjh|L+_0AER^z!rlZRch5o z9(m;LZ-4u;%O9 +woW&QrXn>%=p;E#LV;*n1k +SDYe9rbR6sGxqi^r+!M1*kYB>*ggIM!s{u-R3!=_|YQ1JV zvHq^!Q)kaUN5z91pg`FSRZ5(ho|&AQ0_D7Avx{wo<<6K|g|&qJ`o28U<=_LsAZA zV{XNqiv_|Us7j6F#6O-dJ zxoKtjROPs%T80RpfkMuhsaTVeONC!WOW_Bs5861zzYv9?G`}F1&$~2w>Fmf^04lJZ za|!E~G{xmir 9`YO&~naWp*OQ#ze$YfGjQ$(SQyY(9HJDqQ-Z9yp&kcEINpOew-+ieAJ?+9r!w z(bz~;oLN~xl)%6{=es0BH{wn#)7Cbf&mB8{>eBd_PYE(qPpYq{cjKlZa1=^aq)Z}* zL!G#3y+ ep*L4vwZ#oBJLd=WNLUE8gJeyq+v~bEFxNIM{6LltljHT`rD`4c zUn&)*bNNE4M7{@bwpgsQvy0Xz9>b;8N|h{0V`D$w_tUAV>Bk;>449^^>cG4F{^vgb zjlX+jU|qj9w ju_~6+Rl7!H}wj>Z+#AmZvu)W?GvYr?0j2rkXwI zYev| wxEdPX(tiq=I}l4K;U)0h1c6!L;h3g3^MFvl67vtyijtQ3Tu znwlCPAD5nqT3CW#6^a9#PESwYamO7`Jn;k q|;ul z4rVr$pBcY2?vuH^j+JUOaJXtwEoCQ}NLsd;PG|6D2{Ia69Qf>d4KkCsYy+%P7PI)J zJSi;b2fcWGI}9}vIvJvzp@(6re%O0H?5-Mg7KbYDx_+t5rA~D}9*-sCF@uY`_+(tR zshu{(!5W+f <+du+2jzN`4R3e#*fJ;Fz$%5JTbaiz>ZKJvk7AdAGT*r^F4iQ295c!ON ztp&ECkY@3Zb500~QgdwrG0>aUT4iM9oCNi&ppYn2QaILxY;#yyM9YZ2n$FZv)OaX_ zQdw2?RTMOn4);`>NYg;9ckkZ)-S2*P$BrE<)Qwl{jR6pR`OAN{ckkQoy7P`qJXI){ zCTFIK)A_nvFOt8i>=P1sRVtrTC)5G^;x2@g{~U`!%) uA{(9SNhWloA)$sOQnK*o`LhQ1FeWJEa#XcKu!X-6Tk|D-4ZCN%I>+=H z8s{u)7UR&|5{m>pq!~*boq`%2vm%QleP~D@bhqwm M$lv|lEqnH?+yu2UXF0LjO7#!_=nwz#AOF|8-uaFj zufH*!$rP%^{Paw%2I%teE4A*W8a-ege!X7y8Efi|8dU_~rU3v*@Bs-J;h 9;e<2<`^ty-zo$j)I~AjhS0 z$)U(pOA2aOoH6WB!99m60#GKl4FJW9SIVU%)u~Qn#W44Bt#S6;h3B68MLN^=_kaKQ zzx`XkwZtUFm5uY~&VBmRpZ@uiKgY@gc?7)7P>zzI2f`vTv4w)AFm_BnO}cji{4kTD z&@i#l@lSTtqS#~!oY!a>b%I &At8XDC}!ZnT);~G7>)YrovYJ~Z9 zz#<^BR;^=J@nixwu{ahK_y#bzG(P^q3ol|#{`#-~`uBeC(<^JwxvVjAcI4}S`?ufx z<~Jdm0bx{(g)lTR3&*&@r?Tt?@fINeVZ|4T>WGH}_Yqw#Mphq|r!6XBr0RAw4TV># z-b83<3D9YBa&mNZRJ99jwLklTn&AomsY@;m1tNPutZKPJDhacx2tV|xoL|`KSA`>s zG8T57E<%+5^rt@kXMg_Z5`lTO(M(g7Np*@`{=yf&@aUtD?!1obqI7k2xKyG8+^kkD zRk&WYTgAs(U9^{at?m)nsU9w5&lS`nqm!m%ftU|?b*dBUK$@rvtcN-n<@|(!!c-M3 ztn3Lm_DGAfMJuC17f@uuFip0;1gS1Q)*C`AfTdooS=4UFC2h=NlcB-=b+n*tr!?aM zk_ew8u~s)g9H~I1X>+Z2LjE{OfRwU{@0d2YVmy(=O-iM5Cf&x(e%yH60n0Kt4xfS< z4RTC@|3kQL(0(^gojL_&3H;%&{_4Me_OqXn;)+*c5LW+>uRZqIV-O(mPzg0u3#iHl zi# 1wx+n%W$$mwt9Aif9@X7-xM?!%uKn&RePg=%s zoTVI8-D?RwYV{hoYjvd w2@TY*^?GFP}l&RdvCk# zcOHKDbHD$2XGMi*SBIOa+FUx-W|;o^|NJ^=FqrJkyLWBbyoHMM)M_Rx)l>zo(Wq2w zqC)}nJq~@M)(1p)>Z}WKl~tdUdB|sCRhf~KwnoJmj5)S@3Zsw`Ae^}2a#;k)rIb{+ zxoM+N5NGXLMqoB1g-ufQdAA@9iZKB5F@h>_QpiNA2>DVsm!HK+fn2eSS~-UmZMi)c z*XOF&sOEV*0ny*FV%*gM5a8J{$Y2m$@lqBfUx+GzxS5$8B% n_!U2vOxP)`gqNFCxnYbvwAi5>@-twP@2?PNE nub? zPrfP~lg2pA+(>MRa5LhQ;C@gD`v(Rde)!{``~2s(Y}v9}E4)%Po16WGH+bfmXa4(F zzWTGDKZ)htv3>i%x`Avq4Z=@(T!s!hS*nyP#S$=ti6x+%@*rFysIF+-4X$wNanezP z>?J{qy*Z(Ae$dm+XZvJO%8b-B+8&Et;Hqp^&>GL>*eHGk)&Jn)fep@OuvvoT{I4KW z(PiO;!XO$Hi%jwJI_-f(@spN?Yr!^Mszry}LgaUt^H4>!RL1pd5(H_nGYv8bnOV49 zov(3~PqxQ^&Olq3n4Eb1_17<5x&*oZGoSg)$3FJ4!NEagG{5pTi_0BPJn_VV0|y>| z{Ba6^@LZ}CO`eFjCS;4e?Lk~P>0s=&ReoY|ZxZ9;=AwEeS4AvFQS9O)L6o-gZs}q8 zNYr)`H5;mA8MQ=GnN;L?=_3=`MLgB0-t&A_JY30#9w&`^RQ 7-39 zOQ>h81L2mp*9v=ti;My3Dw#~-6%1-H&`8B&r3%@{N$?9gcT(Lk>cm%~{QTTZZglkG zxpNnA+g-bMJ^b*)ANj~fHg4Rw$l6}Dfk%T}LW2GN_rL$jE3b@?j|)GM)Roy-3NDr` zNo8s&q84)_k^!W?Dl0{6^N@Mtk5!me)TpRR?MFvgt9XvNKPogTd%aTZsN8zJ4ni-s z`)%8{{l;(n#(nqQ_uluucZqceu9882p?!kx`0A^#?%TKT$N&1T$4;Cm6$*g+bSl-J z&31Kna{*nzWrFIdI*uVtaq9JQwUSIE9X9WnB$#m;SP;ERk|1D}Ea-fY!noWz>tlq6 zfj(gAp^?gVnOzXSqCgt6T5m|?6c=ta%2b@#P^k^lv5L%Vz^izi>hIPm&x&M85OoT} zp)MpG8A6r)08NRw!{J#viTDlAcH)w3>-i1U-CXr0EEWpWGx=PhFf%< tfN zh {PKXafhU@5lC+5I$MhRD*NNGp c+ci|xX){eq2@ nqA=VBC;v@OO;sq{jgo)cdGz=9@7=o>`-;DtH*b!X_gF#U?yECSo;-Q*;6Vsf z&p-eCv(G*&(GsO%(I)#L$-`n`6!)=2{j0>}rqHUWwi)Vdev|on-thUTCt6{VvQkDX zT&Ql>Ds))HMKRe+Y)3p6>s{CPj=S&1Mr_)&>CQXv1hT!^%eb0owg|)kB1cBf9UUHq zKyr5E?6Kn~&YwS5C=_!Lp>m+{Wwt$8;;XSZVJt=s)e>Ycj#0&Hi=*NlCqdTpM$H1k zS&npd#JS*iwR(laOD*DC>?vh3*RZ*wE;+y*lRd_Mx-Cr&b&F*ozz|;PDqaegWF&0A z-XKFLuva5g=glpbtN2*2k#)x9;%CgR%F
L zKq~AgB tsi&n94lppf=~A*gTDvBST1`>li{z(8 zZTC%?ovnfSN|F?e5=*^8KTHFNw0R3{!S?OjH*DCjd(R&1$jS;iUlZJH>2_pn5_WES zdiu 3QR8(t5|ClJk~f28C{^Z q<9KR9JxrSS%W>I8S1bRpdwK{826wyVhV2u<&&IOg;^&A04=$a-@ zoD?1f<%-HXn|fQOt)so8qrH7#{dyo+TU%R-$8uHNx5U6Iy>|Guu}haIpybS%6UUDO z@dV`{!eCED7m6ZPB%jrcRxxW@ggM@@xkC#ps0uo%&rK;BxcT7V;Ly+zc4z(I`k}$0 zO`A7$b#?cx>)S9iM5y(vSnyvBnq78C*)ZVV#fulA7~r#*5V4m~8>S{E@EeI_wOT%x z11g4@MLLIK1#T8EG(+iO{{*QBqI3NZmF2 QjoptPxd3C>JS05mdQbv`n99 z7oj??+l~#slujg|xl>pBOd41h=l*6=te=934E?Rhg0AwmVV!|p o~F3 z4j* 4~N(!%`L>0%8mX+91e1I?k(UgilwzWYzkF(c7 zqE)Wh^|;p2Y;F9y T(~kHkLb pbv zRmkL9ci?sKnrb63n%1Os^<-smPV`80xti)&iO6@^2So=q7YmC^00yo5D;pu8(sbK- z_Yr5}oL|8{`oHQSG-m(){a^XYSMd47i4$`08{hZ_KH#VKyyrdm^(R01iPUDmLHvXd zfAS}Pf|K9Fqv@WwRYyk$F2M<({p@Ge-Eby|84luF+)dpI=g2{s04~G_{N2wZIv+L3 z$;nBf+44j@4nO&C<$?FYn&5q9O +=_>EzHGyWbcJdi3s19Oj@Ie+xElqT>qMuKM0}F@cmZitQ z*XZ43Bjq4ApcND_0ofir4yQFuGJ3w8rnXa^{MJRY=teYc%Dk%=UFYb^To%n1c@S={ zwo VCZypPwMZWh&X4;(lk)K0#F(kyb})^I=ofTW?y5~-_1 zw!{e#5~OJMywWBn0J4p}ftZ1l7cp(&G(1Jb9#F)^r}tJjZ_K-T(RE&}2VpVQR?0(L z9|6F??nrhF#Jp>NAFpY@nXK=;i@1pN3p$6DQdc$Era+Yyu@pIE-hrElII*~*j5}ce zpq4Cht6!(lw0c !n*@ zu~;}6tA?x8`eLoIZJ=$kVT)idh^1WH%0lHUewCZxK{yQuG1Xst<6-OS;q`F@t0C;A z)vSlVB3!J@tS5X10DwE-Z`1xN^jip%ubq9oCeSRp1nRSVfP{_3f|Rm%@7`89a3M(& zq5{C;p@$xlt1#p=2;W%Ny*vbITQ3(14X}Wufk%rFug=76u@m>-f4{mMH~+O^WeY9r zLaQh1jMczWi=jMv304NHC$1{_+O)Y#*-bnYyMVnA=|)b#bFt=lD30T=C>O1_YTZY5 z!qwi#w}f^sN-!2zl-+A*U}G?)x4Q9TZM@n0XkFv<6%w;h8t`|}#cPUhfEI#Gig9_( zCH>YNS79Ho_3UYJCW=K1j9$ze*T~#}`A|RBaO|x `0K+qUiG#I`lT#Kwsyww;M>Cli|!+nU&XlAHHO+z(yd)!kpZYGd`< zYe%Xm$sobw!vg>SBsp10H2?rC;eP`b{Cfvwt1$a}!gG_-aZ~?k<>qPXVhIql_-STI zD(7HoZK-ByYT@lXZYc-=;|Y+H6w~lpzwn34A<|3@*sAn-Klhj8&rM~d3<`ym1(E6l zp!&r$R8$Cwo-HwlGffE%tONMjIcCPjK4iqCa`96A(ZryF>LaM&D9J1?mHy^#ckT3Q zZGG{bZ0oxldtxMAaijV}ab7P~RchB&UU~j$@{e$yiT$T$SgGL7hmYOl1NXhCVAkxb zWL_%i)JUf{(M C;ww6gu)H?0))Y7LeS+*WLHE?RW6WnH>hp&IS?K zt8I`3sgwID2I&OFg9q)*xoF+a9d^GKI219q2c^TunXKS?h^_j3KIRG*+87yd5ut4w zfYJTWY&zEKL87#n@DbvzL?BI!9{U&V0Hz$KlZT~;Ws}a}gaEeTlG?bSe`-+GkuiKf zZ+@+Sz|B?R0JN#{VB| +ky$>nqh>py zZRVvyS(V51!=KILnzX`uO&;RSAUqq8zZ z%P?*vtVfR608A~39(C^F`58@99s-x>^h$VcfrC8<7hfrcGF&EHx)a5XCb`0Z8e$9` z9>!rod|;5z3A+!Hlu;FTv)_plKXN44bd?nF0c{jYUg$)L8729fy9f&cbJEhKLK6H1 zvmnMcv%L_h-Bdqq+Qw<{%Tz`H7kr3)$eSET{0g!lj3!1D8eq{OIgKc(Z}O{KhY?f3 zve>#-UwlBj6o*O&;aq-fFRC7llwwq(-mF50ITb8&_ht&@3OA4#TxjCp!1O`>5-v+g z7(YsWlf6G5{ubUD4($~w!i|lz>cNR!Rab{HC|x*ru2x3hQ~7Q0Sy@oPhWyV9YtL