From 6970b905e6c6a3924058955da8540e9f12cddec7 Mon Sep 17 00:00:00 2001 From: Tina Odaka <46813815+tinaok@users.noreply.github.com> Date: Mon, 30 Oct 2023 22:54:14 +0100 Subject: [PATCH 1/3] update env --- .binder/environment.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.binder/environment.yml b/.binder/environment.yml index 7db834d..d9e8d7b 100644 --- a/.binder/environment.yml +++ b/.binder/environment.yml @@ -5,7 +5,7 @@ channels: dependencies: - python=3.11 - jupyter-book - - jupyterlab + - jupyterlab=3.* - matplotlib - numpy - ghp-import @@ -29,9 +29,11 @@ dependencies: - kerchunk - stackstac - pystac-client + - git - jupyterlab-git - dask-labextension - - pip + - leafmap + - openeo - pip: - wget - sphinx-exercise From 5986dc41db04d0fd6f971ca4fd6bce4d10bd1413 Mon Sep 17 00:00:00 2001 From: Tina Odaka <46813815+tinaok@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:14:06 +0100 Subject: [PATCH 2/3] Add files via upload --- tutorial/part3/chunking_introduction.ipynb | 10884 ++++++++++++++++++- 1 file changed, 10694 insertions(+), 190 deletions(-) diff --git a/tutorial/part3/chunking_introduction.ipynb b/tutorial/part3/chunking_introduction.ipynb index 13d561a..d429582 100755 --- a/tutorial/part3/chunking_introduction.ipynb +++ b/tutorial/part3/chunking_introduction.ipynb @@ -95,90 +95,1611 @@ }, { "cell_type": "markdown", - "id": "d1f4818f-2b6b-44c1-af77-97daf8a1c2a1", + "id": "97eb32e7-cb5f-47cd-be1b-ec668266bec5", "metadata": {}, "source": [ - "## Global LTS\n", + "## title here\n", "\n", - "In the previous episode, we used Long Term statistics time-series for the region of Lombardy e.g. a very small area. Now we would like to use the original dataset that has a global coverage. Let us first open a single file (for January 1999-2019) to understand how much larger the global dataset is." + "we are ..." ] }, { "cell_type": "code", - "execution_count": null, - "id": "b4a418ed-c764-4577-803c-a6947db16966", - "metadata": {}, - "outputs": [], - "source": [ - "import fsspec\n", - "import s3fs\n", - "import xarray as xr" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "32bdead9-5f24-442e-93bf-715068fd330b", - "metadata": {}, - "outputs": [], - "source": [ - "fs = s3fs.S3FileSystem(anon=True,\n", - " client_kwargs={\n", - " 'endpoint_url': 'https://object-store.cloud.muni.cz'\n", - " })" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f9a41ca7-ccd2-4223-ae15-d4119d7657cd", - "metadata": {}, + "execution_count": 1, + "id": "2ab40279-d857-437d-9405-3a0dfc9aa5ca", + "metadata": { + "tags": [] + }, "outputs": [], "source": [ - "s3path = 's3://foss4g-data/CGLS_LTS_1999_2019/c_gls_NDVI-LTS_1999-2019-1221_GLOBE_VGT-PROBAV_V3.0.1.nc'" - ] - }, - { - "cell_type": "markdown", - "id": "7d25782c-c132-4e2d-8e72-f560c97693d2", - "metadata": {}, - "source": [ - "As shown in the [Data discovery](./data_discovery.ipynb) chapter, when we have several files to read at once, we need to use Xarray `open_mfdataset` instead of `open_dataset`. It takes a list in input, and not a single element. We can also use `open_mfdataset` with one file as done below, just as an introduction." + "import pystac_client\n", + "import geopandas as gpd\n", + "from shapely.geometry import mapping\n", + "import stackstac\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", - "execution_count": null, - "id": "af670e00-fbad-4f70-a24f-1b6dc7320a8f", + "execution_count": 2, + "id": "85914868-6215-43ae-88d2-fbec027f9e0a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 470 ms, sys: 75.8 ms, total: 546 ms\n", + "Wall time: 16.4 s\n" + ] + } + ], "source": [ "%%time\n", - "LTS = xr.open_mfdataset([fs.open(s3path)])\n", - "LTS" + "aoi = gpd.read_file('data/catchment_outline.geojson', crs=\"EPGS:4326\")\n", + "aoi_geojson = mapping(aoi.iloc[0].geometry)\n", + "URL = \"https://earth-search.aws.element84.com/v1\"\n", + "catalog = pystac_client.Client.open(URL)\n", + "items = catalog.search(\n", + " intersects=aoi_geojson,\n", + " collections=[\"sentinel-2-l2a\"],\n", + " datetime=\"2019-02-01/2019-06-10\"\n", + ").item_collection()\n", + "sentinel2_l2a = stackstac.stack(items)\n" ] }, { - "cell_type": "markdown", - "id": "9e1c5fa8-f144-4330-b927-ea946fb19fce", - "metadata": {}, - "source": [ - "Using `open_mfdataset` automatically switch from Numpy Arrays to Dask Arrays as the data structure used by Xarray. " - ] - }, - { - "cell_type": "markdown", - "id": "5e82268f-d173-4baf-9239-94678d5de1b9", - "metadata": {}, + "cell_type": "code", + "execution_count": 3, + "id": "8fc5711c-669d-418c-a0e4-f8e0beb8b6b7", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
<xarray.DataArray 'stackstac-11af5f195622eb6b3eedfd63dbdeb4ab' (time: 101,\n", + " band: 32,\n", + " y: 20982,\n", + " x: 10980)>\n", + "dask.array<fetch_raster_window, shape=(101, 32, 20982, 10980), dtype=float64, chunksize=(1, 1, 1024, 1024), chunktype=numpy.ndarray>\n", + "Coordinates: (12/52)\n", + " * time (time) datetime64[ns] 2019-02-01...\n", + " id (time) <U24 'S2B_32TPT_20190201_...\n", + " * band (band) <U12 'aot' ... 'wvp-jp2'\n", + " * x (x) float64 6e+05 ... 7.098e+05\n", + " * y (y) float64 5.3e+06 ... 5.09e+06\n", + " platform (time) <U11 'sentinel-2b' ... 's...\n", + " ... ...\n", + " raster:bands (band) object [{'nodata': 0, 'da...\n", + " gsd (band) object None 10 ... None None\n", + " common_name (band) object None 'blue' ... None\n", + " center_wavelength (band) object None 0.49 ... None\n", + " full_width_half_max (band) object None 0.098 ... None\n", + " epsg int64 32632\n", + "Attributes:\n", + " spec: RasterSpec(epsg=32632, bounds=(600000.0, 5090220.0, 709800.0...\n", + " crs: epsg:32632\n", + " transform: | 10.00, 0.00, 600000.00|\\n| 0.00,-10.00, 5300040.00|\\n| 0.0...\n", + " resolution: 10.0
<xarray.DataArray 'stackstac-11af5f195622eb6b3eedfd63dbdeb4ab' (time: 101,\n", + " band: 3,\n", + " y: 20982,\n", + " x: 10980)>\n", + "dask.array<rechunk-merge, shape=(101, 3, 20982, 10980), dtype=float64, chunksize=(1, 3, 2048, 2048), chunktype=numpy.ndarray>\n", + "Coordinates: (12/52)\n", + " * time (time) datetime64[ns] 2019-02-01...\n", + " id (time) <U24 dask.array<chunksize=(1,), meta=np.ndarray>\n", + " * band (band) <U12 'green' 'swir16' 'scl'\n", + " * x (x) float64 6e+05 ... 7.098e+05\n", + " * y (y) float64 5.3e+06 ... 5.09e+06\n", + " platform (time) <U11 dask.array<chunksize=(1,), meta=np.ndarray>\n", + " ... ...\n", + " raster:bands (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " gsd (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " common_name (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " center_wavelength (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " full_width_half_max (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " epsg int64 32632\n", + "Attributes:\n", + " spec: RasterSpec(epsg=32632, bounds=(600000.0, 5090220.0, 709800.0...\n", + " crs: epsg:32632\n", + " transform: | 10.00, 0.00, 600000.00|\\n| 0.00,-10.00, 5300040.00|\\n| 0.0...\n", + " resolution: 10.0
<xarray.DataArray 'stackstac-07fe3268308dbfff27d0ba203bb724b8' (time: 101,\n", + " band: 3,\n", + " y: 20982,\n", + " x: 10980)>\n", + "dask.array<rechunk-merge, shape=(101, 3, 20982, 10980), dtype=float64, chunksize=(1, 3, 12048, 2048), chunktype=numpy.ndarray>\n", + "Coordinates: (12/52)\n", + " * time (time) datetime64[ns] 2019-02-01...\n", + " id (time) <U24 dask.array<chunksize=(1,), meta=np.ndarray>\n", + " * band (band) <U12 'green' 'swir16' 'scl'\n", + " * x (x) float64 6e+05 ... 7.098e+05\n", + " * y (y) float64 5.3e+06 ... 5.09e+06\n", + " s2:nodata_pixel_percentage (time) object dask.array<chunksize=(1,), meta=np.ndarray>\n", + " ... ...\n", + " title (band) <U31 dask.array<chunksize=(3,), meta=np.ndarray>\n", + " gsd (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " common_name (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " center_wavelength (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " full_width_half_max (band) object dask.array<chunksize=(3,), meta=np.ndarray>\n", + " epsg int64 32632\n", + "Attributes:\n", + " spec: RasterSpec(epsg=32632, bounds=(600000.0, 5090220.0, 709800.0...\n", + " crs: epsg:32632\n", + " transform: | 10.00, 0.00, 600000.00|\\n| 0.00,-10.00, 5300040.00|\\n| 0.0...\n", + " resolution: 10.0
<xarray.DataArray 'stackstac-8fd99f2c272add0e606093bd986b0ad9' (time: 101,\n", + " band: 3,\n", + " y: 20982,\n", + " x: 10980)>\n", + "dask.array<fetch_raster_window, shape=(101, 3, 20982, 10980), dtype=float64, chunksize=(1, 3, 2048, 2048), chunktype=numpy.ndarray>\n", + "Coordinates: (12/52)\n", + " * time (time) datetime64[ns] 2019-02-01...\n", + " id (time) <U24 'S2B_32TPT_20190201_...\n", + " * band (band) <U6 'green' 'swir16' 'scl'\n", + " * x (x) float64 6e+05 ... 7.098e+05\n", + " * y (y) float64 5.3e+06 ... 5.09e+06\n", + " platform (time) <U11 'sentinel-2b' ... 's...\n", + " ... ...\n", + " gsd (band) object 10 20 None\n", + " raster:bands (band) object {'nodata': 0, 'dat...\n", + " common_name (band) object 'green' 'swir16' None\n", + " center_wavelength (band) object 0.56 1.61 None\n", + " full_width_half_max (band) object 0.045 0.143 None\n", + " epsg int64 32632\n", + "Attributes:\n", + " spec: RasterSpec(epsg=32632, bounds=(600000.0, 5090220.0, 709800.0...\n", + " crs: epsg:32632\n", + " transform: | 10.00, 0.00, 600000.00|\\n| 0.00,-10.00, 5300040.00|\\n| 0.0...\n", + " resolution: 10.0
<xarray.DataArray 'stackstac-a03d4c1ff25f0c5533c0f18a3a8c4de0' (time: 2,\n", + " band: 3,\n", + " y: 20982,\n", + " x: 10980)>\n", + "dask.array<fetch_raster_window, shape=(2, 3, 20982, 10980), dtype=float64, chunksize=(1, 3, 2048, 2048), chunktype=numpy.ndarray>\n", + "Coordinates: (12/52)\n", + " * time (time) datetime64[ns] 2019-02-01...\n", + " id (time) <U24 'S2B_32TPT_20190201_...\n", + " * band (band) <U6 'green' 'swir16' 'scl'\n", + " * x (x) float64 6e+05 ... 7.098e+05\n", + " * y (y) float64 5.3e+06 ... 5.09e+06\n", + " platform <U11 'sentinel-2b'\n", + " ... ...\n", + " gsd (band) object 10 20 None\n", + " raster:bands (band) object {'nodata': 0, 'dat...\n", + " common_name (band) object 'green' 'swir16' None\n", + " center_wavelength (band) object 0.56 1.61 None\n", + " full_width_half_max (band) object 0.045 0.143 None\n", + " epsg int64 32632\n", + "Attributes:\n", + " spec: RasterSpec(epsg=32632, bounds=(600000.0, 5090220.0, 709800.0...\n", + " crs: epsg:32632\n", + " transform: | 10.00, 0.00, 600000.00|\\n| 0.00,-10.00, 5300040.00|\\n| 0.0...\n", + " resolution: 10.0" + ], + "text/plain": [ + "
X?xv@Fj_db21YbMD}->J8BN|Al7-&*|M^_m@s9iusdwTWOk4v)7r zbd^7+5qW8E;UItVUl>kOq{Mpe4Wqtd`w11H*@E^a7Ut40+wy)8#$WH+(r<9zxLFW* zFRMh>fxv8L6_VuW`jhAH);%~XM&ISE*4eoe07W=#vx79@y)Kf`QqD=$-Pwa!L(EQS;fU# z%PcQADQ1}4RHo7U#h48@PdWD?;DW)#8?B-@&xIRaE*E$Y`yReB+xOmdYjyVZ;-=rz z=Fj`t?!L}1Q!bpY4tpf!7oT~vqR;6mv+~QHwwvUBv~FpWjRFt)8^Sprlx@pm`7$0y zySK77Bf~BhmeLG2QR%w0Q=Y}KB!`H^9P68#Bk+z)yH8VchBY}l;%gfjy_hIeBSjQ~ zZUvW}$)|Pg{l%d(p?9$CYsln!P*gi#6kGH&b(X!$uT`br!A8Ah` jj;qe)!^X+Ea$B|a?g6zW4ZZ@V_6TKr zau9j1*WS*W%)6`Th#9kBV16YM)KO6nNQC9z-6+bYG}Ko(M+=g(-FjW`2GgyB1{K>I zU*ihan=nw8V&&zs`O5s{3TCg3F-qO5`gg;R95fc&^lIkVO8I7AEfW1jeYK0MVz+;P zIa9c_pI#n(o$wRY1(y9?cqNwo7oyMKi{RwGZoIiXmBr9pU8m^-((;c5B9%YodxgkQ z*y-1#6nKf39Nap!U~GqlJvOIO%NFbYUI-z?^6|6+EZIXxCLX#UF}$9Ab5>y$0J89n zrHTHAIL9t+v@}M@{mb&U-Kee<(84WRGT7UU9PnHle4TFby~7(=xJ0R7mQpmYm3FHC?qKN(y}{sGAGZ!$ z^vsD9Cm#2GMuV3=;yCQ*eM*+w6fLm>kEy;CP&g@Qb?&Te;1gD_LC5a;kB^8fzc`wY zf3I-wUz7)#SR{Zf=;=eNcL@n}uibR~OIxR&1_WI8KGv(AYsD~|gubi9BB9HcTYk)3 z6*#QL;Ri=cn^ROxm#3P%_qGiBa|OS e`c~FZuWpEmhtBU@9*pZ>#9 h8 4nEs8`^86bIDy@aLicU_20(aDgu2tQ6{U>%1EqZhxZ3^FV zt4(1ChCHL@mo0Uk=R!Q0qD^~>a+c^l*+?$^rc~}OQLs*QuDE^g@6At*U%BGchl&~) zxDXOPHp|B0cuRLGCeje=&4++)uhwS8@lwTzbId-!m-l$k7HaA&=?+I3;oa0`*ZP*0 zNJzkI9Ur~2uGIeSK7R?`%5&tMoYB7o?5Hn0fngXI2Zy4=^G4~Tml#14JT$(l#0uB1 z|Nc1!G90AC)h0P{EmmH-ouQNEUmh| `;#-hX#zD_|EO zs4Hg8F>E4EzwjwK!)x7^C+Uxzx z20#T9DHPUw0C|nG(Pu{^JNv#=Vi8}Xmo#sbepuyzzDUq%B5`YSYO(6Uw U!t(xIn<`o!zU_4%&wu>AH%t%d=|X zMK$j|nbit %mJ^i=)0*eqRnc%y}Sj2kU+UFpOi)Bt?%Ugz*dR zv<_V32Wf=VIL$&uMMV!W^*dXv5b)~hS!|kNl3MAmT&IwdEE0N-bLXCR;yg#^1W7L- zpg-xztSm`KjS<4a145`7T55!IEVoUF`vaEj14@YABUSf>kYI_L9zo0GZ~IOf^d{Rk zn*ZBp$6%@c%_w{wj%$I9%+N3E>MBS~WSDA84&X$G9mCF$jZ}G~?ua8>12E(%L8~zF z-Stly*&L_~7Ck&a>}RX?cJ1ou{d%T@XfM6Qs%4f!j2fvCK6N|_v+X0KJtg+3fmFOw zDnet&g%+w0jpckI;rAxFw5*1N)28vBt1lpo`eG~l6fIRXXC<)6gHD*DH`;@90ermT z()d@?^@SgcQ>pQ#=f+#&x#6*89qBhzX eE}t=hWF zl=_U~+Y8c7T@euxSN3*y#^U$3Q^Uf-YR;*`L_x&nLHxdFvic)#VfdOa7%+t@ubmOA z9YyX6lXKdG&00_0BnKSdqVGz2(?? 2Yh@cdzZ2LCLp zm7;K?aC_m$|K?ZbmCLU`C?olFm%?~ynR6uGE6vwcek3#}SGS!9Z2cxjw TJ5(`OdVlU9--r{I{$wEnvP9)$=G~`lT%vpH;N1 z%22rc{!FR=CEj(M`o==yBL~eq+n=@mc(gwXy|;g!IX36 isH!K&r zN{Eef?D%ARYEkM-;h T)$kau*F+yE2RIZQFNGWtEJdym7NQuw6w&8Nx=Isn$1s+uKVmg$&*L&aou}i{N&R z8(GjbH&R`gdm$MUsYC)X3eW`dcbOlE94lH~a~qllwyO2leBVmv*M#c9Xu6qoJMZ zKR!O*0Kp2!V5ws$WMsW_BVD@I;WQ#nQTApQhvm^0REDBwi(99|__Pc z`VnBkhmvUf1EElYM6u= +A!21BsxxrR9b=%~!+ z+VE43tYApwd-EK%N1={ZAAaK|+uDGA5M;-DFTf!VTxY&+JW}It*Qt5qGUtW69cgJ_ zgb)aD{i=^?*iO$(0X3r6bX>lN&v>W_JI|d 9K?NC2|*Twz!yCp^>bRkW< zs40)g{0pdyG4$KupzVlnutZDTrLj;|u@{h>JzQ+KH&MAY7y9C?TtxTO#iMXbh@Oe* z6)^yGg@i)AimKpMbz|?M$NV(2jLmt?0*;@lHVas461Hw`UFLvvXRvHmx>V{}Mgomz zP-6&_;wU8Ik%B`W?b`$-98hx9jn3+;^7f_{c1W8&ZF(tn)`Srx!dHN-j^{hyY5CB? zZ^SqrY{4&H7!{Uj?hu=sZ)=QQaGd%s9 XBcGD@XL3gB2jGVQvTsrA0OMPQw zdRWB#K*_a2t3h_%LW>vY?{(F&rN)FTIPR_gJX*5UEHVa3I6>^KPmhnZL1{+qB?by6 zi>qFMvH^PKC4FC>zxQ r)Okm%CO{yluIM^1D>Mu`4{@rB zZ6uu+De!LM{Za?TGfuD^1Y;Ov@~?eSQ$cxdF0VQ;#}@Hf_7$jU$MVF6k6CK6Kv=ME z9a5|@)`39#OCK2I#t6>HvBt >6|&>1I+B-NTPczfYEH znVQY%JE$M966}8JkWKK#hiDzLoG_>4(qr9x!(G}TF^VV|;JHEpmz7$gct2%qLHMVb zsq>y8;wN(d;oIPv#n;3v(LmwCIU4{z8UYdb@pk)G&?V-ooz++6Pz{S~&?TBW9qqll z6u$_CIi37o^!4l44Cimy1^ h&ZbSyr94^L?%a8#kc4l;FZ?`C2rp#%UQC!>rG{L0u zXo_4AZ5CfwAQH%qd=4;O82->!>FK^S@$z2Qiy*O0d8?`&r+ZiJ_rM+5jlDpdxc&7* z DNfd9rK$9{) zuuO0i9Xa{v`_P*>9aYD?>O&krOj(2 4TY{YXu2Qhc0|O8>yXz~UJ-Y~*IuWk6nV=0KP1@Yj{-USKi55Ei?Y zjQCZFXdIUprqSzZfCT5_K!{SyZcNL~)@#Z!q0~ IUHho;+}vRDYbVVbm6hpjer>X>7;=~cYk >5gUlOt-L(bt%`t@UypejnHJaY z6iUgC0OH7FU_;$hH5#Ibs0JbP23pMw@p&Ew{xR5OIC=T``s52M$r0Y$zvX&PUcP*p z&uZXecdm_Vvs8A~ZYifr>(4JV&N2B^=Ew@JLFiYxhmVB`?UWO4x5O2G+SD)`uJ$b~ zH#7!1N#5 S7bG) zGgr0e)qWS?rp1p$+;sqQndIj)uL3wHwDl|Bv>}YG%YuJ+!+URjujFxTtZgkdpZltX zt~Me(SSW@jmC @%Gvn 5*EhvZa3c1a!p_3)XuCE56W8Xp9%$Re2kMpf}06Ok Oo6CL4+>Zg<$9hgow-COnZTVe9~E0qc=)RO*bEND zPGJP(%r)$_w#fPyA$vIMb`o7;BMp*xcJh1^MJ=;x+_}^^x4S*>0D%}Xg?J&)_%q?s zI(SfS@cxl!pI>CKaJ`)(<{B+zpThr20CD*~mqE!-5IbQ)qbE$?07!0)UzzD{1RvBi zQX2JG%u#4M?Tub%cIh;GYqgBuYj8!LdG@J0V_7 ae5bUyxbpROWn zf(=v{Br07Te`VdEYhA%);Jx$yUWsXDh9aw=)qob15bo{@n77HOh;5AKd{F5Kutfug z5EN|?V+=iMwh!0q?Y?{22*N(P)FQs7p+BP~7)uFI*~yJx`7NWxKcDB*8l!Oqx~GsM zCJx)+qjv;5)hA0fWl6K46gTpQ6-a*xYxUV6Q3eoCjv4c}Nbr `B=!f!@N! zV|9&<9FfDHUBv;<%Pp`T`o5B Yav`P`lpr4s!5;+^pZz(b< ze-ZMh=OcwlkWN{0{QA$on&lNZsIuz*sY^m0^|(*-g$Ss<-v&uk Hcfk+I;xtI{vs^m 4fBsT62;L}Ak4hggq~?uW2faRgji>1s uN3e>YG@Eb}aev4VfBZM1sW%Hw;q({eaoeRV;j!V}^vu=QS6ugNL z;qp{_e|xXPzFBi${lx~!kJQv15di7K >IV`5H2k(K;ehtoMIuIm=+0Vr=( zHnga6F}_kG{kk$C5m7R*WO%t(5cL;>tUR|lw)KZ;yw~R24O*&8l4fQplMQAf&U3&= zN_p74(a2p@2jOBekeyzOVo0D-H7)44N(&uV-T3x5uJRnt+WOtYY(F^N$zMUwq;+K? z*8_-vg?$h)=ZkJmzClddhX;rIQB<4&g!QOlk!Pf<>SbUDj^9&L#UejGA_zucLEN`u zFOmK}5@Uh=yx==n=G@=*@`+%=ovw`NdvT3W@6(&G94O9>aUG8?+=lR_E`k}u$87Tb zA&qt=J`#++!|dK&KfxH~F<+WJ $0)AhDxy#e`Ji0e16u_&h<4GvlW?st zuXc^I@x5An>bDM;p8g_Y1s#B9pwJzctdE|G>4|RytId`G2sCFznR^NbI`-#(*= F7%o?eW jILZ0Q%RH2QjpXt`515 zEX$g%Ac`s-Zwnq&y$7h>I^({@kW7G(D68{hZO|EOu4kuTKjm--7$&RSW n(*M@M~(iMr| z0Tucfk@}%sS#Z##@ho~3tJzIF@X+>-^a(o;)K1NTSC!cW-kTjP|M4SyA1xtBM<|x{ z5C)D5i-G|K=3YA5HbRJt#&{l|va$(pU;FwCQtvDev|3aVX{?E0&7#9!3A%`CB#D5% zEu!Gy;=0i8IMWqQLL*$~dzki43MKc=bDQK=BH(9}RpZ6Re_ycdd&prtJ~e_Z>giwi z3E99B2) {WeK0U$8);l$IjESktVl2kIUsCR)c2~61@gk;J(^zv|qyPM?U?>2U zH!9lD;T066A-wwWQg_Z3a034LlmWMy%q;tv_An&d3!iVgGgMho4w!wj#SLK*5nbSd z(m{5cGeZSs0N8N`>RLh;Y&wu6N8I}yjQ?XGh@x$=^^IHr$?Q|-b|G%?0wGX|smpk$ zdgtRM->Htbp@F9aRh|n^r@3%Tx+2b25T!J-rhKDa4Q=A{2q$y0xU06+OPyw?r!?N* z?F>P3?(wg$C<$+V)a)n`I7v12(EEO*jnpVoE^>#ee_{9iOUPhs9Am;!z($ZFrgha$ zp$C*`#zPuTb|8jg88=**MV4iKM!jCxIt3`lS@zQ+21u4*-klYD+P;Z5ks}mSfpQ@? z#E%waxk3+A@_Mm{7M<>@?s@I5rvb+&3ZL!GPc<>^9lAm*JlTWr#Q+ypS5q@=7#kgx zx3U@~7$v#+H|g`UDoOMUe#CX$Xab7IFQDY!P&DK!VB zPVFo5WLR`bU#PATbawo;MKrvSul-|-G}YdM3%rWNB>ZMgJcnwaC|gq=;x)C k6w2f%79MqqcT_)p>uH=~{{s z!HtKa=nV+~iN<}PkJ%gs0uM<1>;QafXjgTA)lD%a`eG3tC+1%={Vx5X;At6k1|&>4 z2=p4`PYy&t0Q8c4`7A{RP!f^>07N+JOLCF2T^n2{11GI%_*TCP4n>KVx %~{5`05aLHIy`vuvGs` zCN=N~3Ykqm+{ax+q8g}~O}LFDa*tT_<|R+w^}v)hoUk7U_g<36)GH0iqab@#iWeJ< zNc9I&V%_$}($`_LpS91je&+HCtRq3Nj9&`kFEzITsdL1=kR^qNT*Y8kzl~DcP0$N8 zkJ=2YDY*nQAG=Vac!=7Q*X-4WRp+IQn-w}hF`p?H_zww&f*}-+vr@ScEU@3Y>XLf+ z!^O4U+h<&VJfhTdyxkl#)o>PpI2Vx2Zb%%v027EM`iNoMX5puVu5cKOfFB!M{~1&i zyScMARFsUNGvp9b$HTZZLth}j#AT_e=QUn$jxMBeV2lA1BxkGJ1{SH1!s$Q%%CD_c z$`Y3O7j;sUo_+U(=JrBjciq>onNJj>Cpze4Cu(xgODJ=qj%WAh=_ejhX93dsg(?+I zx5}KpEwA`9mA&Y#;@a+ujJ2!TR-DwWMbetzk9Ds`OSF#DFgz3X&l=IB?MEV4=rMR7 zdv~lM92kDL8ac9S5CDgqSqVQ@#lWfrHt!!)>2dJyKd91ui3K9m%nxv-A6}m8-T`2$ zr#V&eB8J-B1Fq*6Z4$<9;1f)iX~p!XXID-)u}3aL@y@g>L%Y!aJrsKPU3K+oDzQTl zety8 (A7L`$(X=hmaue-$#XB^%EZ(?~DBPZ2T1(KBoQsY_+v- zbft$(?le7(utN^#?QMwtqdql2Ml-h}5ZCZXw>P6a`^S_l>qCem7)vBp7^}psjslHE z4;{8}{ FYybsr|6YIkr T$P4c%f=e-e15P;rV`8{YiZv%kOMG1NIO92afxQ1Lc4Dw1n z0DM^wpSF=mGPa$F_gJh)@VgQqHAk- k5!Js#YlLq75RuOahQ` zkj|DRmR2H!%P@Y|43Y|d)!f@Hv DTa&3vq*$me4_(VN8qKSP_BneR{m7*!E5N z-tN{S#A8w9D=RviNn@~`;ks5Oml-&NPS3 i+14fv4u`khgcqkH@D*v&!a-qqMY`_~2!I^9W3+ zhNyO|ZLE5mr7d9&48Fs!N_9J1f+K2GHLb2i&h4Dlo_}+5P=_zk+V5RCQ`RiMZ{pY5 zvg;=uL(0p`?W{Loi_cBOdsj{-xpVi^`<-ThgkLbe!G$ebx(+F0aR|FD-zoWBd&<(4 z5wRFmL^*`ff6Z-5HLOPxKtXX2C@=j0>yZrj9v{>hq9#(&S%D8y6`j8xhOX8uysbXp zt#_7)lFQ-!F4U_+hJ$8? ol3URwFKyOUQ-d5FKD4?410N~%{5I1c&-dkw-stIZ?eEj^DU*yqYeGLl~SmP;^ zf!m;hgf6yS>jt(*Zl=vVYYxyf8~=WIuJlZhC0{p?m_{BTWt4B7WaKO=VbIUg6X6Yv zqdMRfUcN!n&J^xE|J_n#7l9 G6s2u~ ~2f<+gVx{B@ygo0SW3C CH8h)q0b1Pc=<<8yGdvCup>AGG&YTFOVVSib`xJx=zQbja7SUIal@j&>NpYI} zDg=#qyarwy$$vubf7O1lBPAH-y(?F`bWMNt @Q+tz+uS$-2Wro|DiMeJ{{j2 z;uFOmvCiLZ$6V{bIoBh-CRvF9y9+#sLJ~^HKn%KG1aUzB!_yecuH-BG?4 wF!m{4l0Gm~a}ytb-buyT#b@n19z=P!Hh0 z7;4>S@XI;(S;|ZxnL%$CIQ_I(0H+#|V!^j5N8`P;t8bc|D ?s+(Pb3pR0tGW^ zgvE97uKICgQzdZu0&~l;Suu$R`O^bx+V>#X&GBCSlS&$-v8b>G=jnxcQu7Xl#l^*j z%rRlrv4u}Zonx~t`wJ6QZ-J7r_?Jg5{tObo@PLX&>V$bay#*9$gB+qf;4#&aNTu1d zsQnIlC9+Z8J2M7jV9p#U42o@Dg9TPt9dtH$d$Xbx0I(WOW}RB3usvV7l{L9>){@e| z!!}8J6iJOMDIi<0E{l77R!s=gYCunem(tjPSM(3XeC?_*aYk`*&*)bS3-9pTTe~Xz z-3F{?ry6vI5t=IG&vj5Lp }t81+D~L zH&AOv0a&)?Q2RgOCv!0QT=fGFOC4XIk<&;&^IN6}p<}8VJE$mmd3hzKzNQ7|KYR*d zcWgZNeZ24D^d cLM#8eM8=TeTQ9ZI@NQ@0T#+a~Vv@GYx ziHPlZXeL5|288xFduZKrE}R5u7H-Jw-)g2uxDwL5#8iU~0glXd4@P&VNmPgW;GNpM zcC#PSJ=3{?67{OewGD+aN6Th} G z@FheGpl5{vA?Qz@qWhM3* (nvO|o>gw5aY dIuf$(o;UJS&^$iRp&Nn)c>dZ>Y z|91= KKv4h`YQoq@+x?6E^qolO9L}ocMa_ytJP$#qr}0 z8^%XRYtBCmEN!g{0&ei<&!1DQF%(8|6PkN0`@JrSTFS#05uuhiiS!a(z1?;kdLhxh zE>`LP^IjJ{zK527&H{jm{r`P0|9kbl&~4suni{a{`&Ta>8-#}cU-TpaQry3WG$sA< z0={8L4|56E&&TML2lMelHUvQ4TX7Kw+`@m;ke4<$l!El*r4eH~*_6zuXmv~e*YH4H z{p9~U8YuK?EsHz>qL)G~ws+_(6Pxqa-_AkONXTPHMiO~Y^(<-{8jOH7WqB-pU0d{w zkcXal1 F*~{cXetbM%n4N0RP6F7!N??G?N4|6zd{ zy4Ak=tK%m WN`oS}?{Y?=qbLPN3DQuR z*bkY10)rAral<%RSfuG(p}9IFl^b)s0Ssgnho;HJ{81%*##ne#n Rd2lmyiHNvZG$w^feJ z{n*DE)w$DU*cadvk1Oz`)e<2JRLG1zm|sKh<7~#$Yubpf361=J lECXBarxi>vl#c(gNvHkS@#rJDvwt{a@b3 zhppO%PYi!Q@C&{IA Da$()!Ie`Esc=_vyWLiEt#0y6P(r&b?h8iwH* z2&$@;i?f%ZZY`;F{4@y$@AZ*T2M~zyvY-t)K4TF4WpNqT`A>1r3dR%>2;r~ag!2a0 z&R}C #|I%4Bxy_4l|(8XKDzah(*t#-4o4+}siA~I;?L{xQ*4XrA{ZV0Jeslv(j3m~MD zC}Ng$IxQ6p_J)Ou!=aKI_xG0qt|Y}1ftV&8=Hj8m%S*#n9Ygyzi~0Yd&7xC_M*X-S zWz*f#@RV0!yyXhQ+nk0nb08LTdjut$B)oRlh78h(-XR)2 6dC$?yTxg4V2`^*nA`iCo!f`>4Iv;RNLDJqUW8Yl7|jc zE*DiprzThD-L4m&Iu0v>IGG6W*ro?&_^U|Ncyekrv eBO6yLv^@;W9z9# zI(_Gwc$4?D)X$(}K0%Odd35v&oL|9(vsCz8q0;m7?h`S8YJM{%JxA7mGAqV(tkCt) z_qU6=aZaO#JlA4JCniMfZn1oMPQ%fyXRrM0{(deA@2oBXrx&q(Qy5@CN&3S2X+lkq z9pMY*L!HSKj|I}pFsN7<0NdMaSIc0UD#INpxpl)I9z0M$SFO>?zkl>Zt@4((#DggQ z7SZ;Yj6LtYHE;D)6&gyvW_JQX3#IsB;8xXY#{JWsb)eDY9IDj94wQpaXl~F(QfX~& z&=ja-b02}lu 0>GpI>rka#W+^c*eqyZ=$?u*|jb*^Vy zc^k|Ee@V16ne *RklPW?=SK zyel&&=i5sYbQuWNm{gt(ITB!+%j$wYu2toRS;=Ap#~5(CN&0ILLdW;9#Se$iL^ZN~ zAvC_8p+ye_-rQJz5t07=st2+J|0L!wBTy}(OM!v3mvm6RK1d5M-@UGLH$-4brW@Mn zn7cxwY*ZbeUs~1bF8SNs2Jfm_hxGKc6dY&e ?nv7hpNlgf|6{cH1_CEIQfvnn_hC*o^@#4(W@2xnxqg zx9gr?zT%Da%H5~rz(;rt$aX`lDC&z2D%%wjfCYrqCmy{F3lC>P@I*9CJ4WP1T+PKs zq4tuJlJWO K0}Fp}2w?()Hp*9SXI$^l@kXisAQi*TPlkD!p_Ux*S#% z0`Yi%TOg!Vq{%JgLqK!I6jYs|eM%nT>Ool-k^1F9UheXR`!4$LgyOam&i#=Dwd-)s zQJ7}%CO#u;j@OQx`L_h$OeY|%B2C+cW0$WuOtoExv#DsNY*?$HYQ|?ju7ofIqt_ZZ zvg@GSd7Ffvh=MTxjqg_o^O69JHF_TMXkXCrHJ$+m(^+h zCcEPp=m t6xTIfMD zt*NDTr!gSnPFs@y>;l-)k9gcVY1TuPuZ>JTTmi1YgHVJo _&3d$6vc;{mli# za(-sR?H8xs{~} !W-ZfUOukG`29ub30JyWEM@E+7&j`5tZ$EWgr znQDLUHM{^$pwUy_7HiSZL@w`FJ!}avQ(j2*@k*~lrp&qkRnNye4|sG)Z+RS|<%y7W z>g11*4>mgI3?Hd&em$BWKPxY?)MTFDeehwN8UYc(}Q{X}eGq`_x55S&p+b-JN~L zWhS%8_`)Zb-Zbiqcr&g$mKk`I-?pB FHJA8{At}OllC;Q<|Xkgu3aAr!q}~_bI!1q;DJ1*tzVibc^I)N~S!g zMJIgxsvo6nA2?8Eu&5D0nqyOck+T78IRWKJZUfrYi%6jrl%J8I`gD{`N7@4kT>Qy1 z#hZEc^8HukXqdo*>nD9m#BO;)c9wxwb<~HqMmffwTK4&AHs~!<7 &1+kN^QMFL`0&^ rGdW*2SDOAYE4 =Iz55tOh1aId2*H_%tus#8utMzL}MW99oth(^Up$>yWI?FniUVRtEdsfTe+# z&5e!r;ez*xx;JzS?ii8qI#68TgJ#AspWGy;YW%x;D+pKn2F1?`nJhau?jPe5z+qsr z0U3PE=?(2yrOnFwjn4k~JcpUd&QH^+`Jy)E?iP#RJUcdZrkCRVqgP8jHpA6VOZ5gO zIxpiglu)Tkp#YbBPji&A+G4Qu{I4@h(0e4)v9$s0k54Mgf)O9V UC8O#Z&~C|=F__ Z4 5>!mj?yMD|(*K zn7Dej8J4HY1+Jy^Jb!B``YMaW?A#lRbYo&ga?g6RB+lX {F_#Ie_4BE>piwXpL`pu*4b#md@I zd;T>0@Aer5m2bb72>EFW1&OpH9Ws-_Y%?i} gr)ZB-L8zNtsm#k_ST3}<6`39b?Dc4 z9E3u#F(-Ub1QHPYO4iCC{bpXRNq@t!@;kaQ 6IrYBfyRTU-3Dm}%;n&I)Q)o?48sdDT+Ew5Qez!nhU0mek6A+)Sh-`uxBF$Lt z_>K#;Wzc`83NbHdtzMRz=KKA_OdvkR;W2G}!-Wbzm*6X7ipyR4F|u;~H*{+el%2fJ zBv>KEHQ|A3FSh;pFzaUqoEKA7aue$vOPq*v*1clw3?f;#-zGWVfg|uWQbFfX>~MSN z=E_VX#NIUL?(SYVftQo~fIwe61Hv~mb%RoK{bx%2 Jb;&b^?tjO)4Oczs7JXX`^(@PJ`|3 }D5qm+dYE3AQ|Uald|Jj10||dHjRh zvv(hbmGlQF@^*0-cRG^)j*O2Z &7~m=NhAeu X$ zd#qe7#|L8Rs#XAm`R)vRC($#ILYcic$pXFsY%Y;iB^2Ta16RT9ncXuX2QAA61e zuTuUFFkug_Ju4i3)eu@kL9^h(`66pXaOmxj52_c NGr&KH`-CmE~8V^P}Bu%~B1-!IO z>In6Ovnd*u_M0v S^WHx7`P( m{G)TFm0&I!zt!>`27WtEav&DMB0F3nx4SDf>VuS0F@-Qy8D`6 z;N13auI=A8pr&O%Wlt@3vU#hvA5?xHasc_N>Qg_X58wTZxPR}C0U(nSpCd@(Xdruu z2R*ubi9@)Vy-eGj_l>%&OzmP){R*^aYHzM%J;67C^I~NbsG+j=h|YU+04rOM+7+YU zeI%e`i31AD{N$;@SsqNI9uUS`DSsB6w2{n?%$d8U#w|;_oQO~F3IuqyNQYXLm&Z}` zwb}=)UIOtkHq^cUjukxzFo}LUaU|%3HyzsxYd=Ew?=cXQ^f9Y?({v`+cwDvLIpN`r z&r-7kycEZ5xO8+nEtAPu^tp_k&bGaebDYb(oZuN;@VWi|TWOeFNgKBxDR)i4K2F60 zAmYrSO$#)ll6#32fZVbea|5JNAN;Mf`nO@jU#J6^l+GiR2m>%s!!Y}o0ly#hbVNkA z+;je7D-u4J;#;vj>RJegh)oRmg6np)CyM(zGnW8d=5X{whA)s%J-T7~H|SwJ^(|;? z^usN=2>7q{d`+(w#X*<+Cg}E;M)P mHfvi2LCrp;MM7xpbF)3i~z*c`tMfF%eP<(Wd8c(sr4No?JrI& z5>vCj@8qpm&5QiN)x17KHr5Tq3Y!37CbgfYs5l;~QYABxLwR4HF2@EwRG0$EaXUc% zcfDEdKZ>=#kP+lyzY<_blXMCIm{3-OCoEC}Xhw@wWv|Pq4QaFX#^VR$rwtp%GjmIT zR%>$Xy%==-4Y9Qo17Vy7v~EgkPiahs!aa9ng4P~npY5~O+!N56Dr#}ng+}no6M}t# z2i%Sjp!@VCb3#&rTBBj0e ke0YQJ_JalciDNe$E{l8+M-rT;}3TAJ5ku$JN_hxjJsJu(y zF*yc?9|B&-UK-ooTq|?9^@BWKV2bE=$v^8eKt=xUEixKltau@^xa<&7(X&Q2UD^R? z)D%D!9p?>0#VVA64DdH3TZ8IOg3g-T01+zj>B-w-t}KZH)M y_ru;o>1{#&I|Gy~X>q_j9-H5@2Z_cC@X zd&A`C{Qw=nc(tmF)*SFt Vj+S916dZsS2j_!sM? zrZH976t|N%RmpMDqPR8YUwI?`LYlzB*B=^5A7H#%K^R}O0%1XFR}@h^rcAW7BRX>B z0GeoOdHV)8zd@27G3%|YtgK==VF0UMEDQeo2XG8BPgI|lP5qRd0gBEPz(p5P%k?E~ zq8bwy5mx_usSVfO&mhsznSbZXDaHeH%BRwi)_>Cg>#y~01oq14y54)8w|a$GNqVA+ zWyBvKrO~M)=I>Ng`U5}HxPB2!e@`PRQASMsKG0veK>D=vy=3*;qeQ(dW#Y<_u4B8~ zEn&AYYhv2)wqT;kYRBMvCdjCFWb4$BC!ad`JLx$8{Xx&aKL6*3(A|3`D0Bfcogh>L zXlw{^|Nr_y`u!a%6Dnjj q1UQNB z{@@Xox2ycm!vMSe|BL$PyZgU*r_lRM8FgFZux%4h vVe$kj8HNP%+KWm+Xva#a) t$g K5-R??{^ZO#3SVjiI zN(-c_!k?zH*W8@j@4h` cModr2SGbj!nRpPDi)Awmuu}!yo+y*;GR<+emNhR~p^U$fKlQgF zyoOm^ohX({m$r@el>D^k8Gk#&>eV_8IxXInX)15?w18TnU-06@;&1;sWb xN{=JpXAFOI_RCbL=%a(!* J>hCmLd=}i*6DH_E)C;&Jql*sOoV4lz@W_d ztj%SnOw_tz|40vtF5ki!R$gRCVv+5zLF%suvXO@q3&YIaHkMbmhmVajNj+%5AHuI> zrwfMrQDnO6Y&=!yRbz2dMR}+;w`{2Xg0phg?zptk&2rKLq*Avm+soNXr^BQ6>%x8v ze~mP0@aOW_E#Y!{v6E>vF(KMYW=QlI@iO+ZOiS@zhzygaI1Jmo{}Zko$`Q%F f@-l?XhCld<%BrCTNoSq)lF3jbn4X&osFsrro`ALlqo?BO{5J zu8qI^V?;CqOX5|)fI6MS#ZzWc)*xuJN!v1GxW~@3Zr|7lnl#uy1Kjy>!MDt*S+Po+ zbk2053UB=Ka6zn F?pYAfc@?6!@oMHt*dfqrY}*! cGRiEeI`jsS$tPYRq1p#hv-_*S9yz-BC$3$oW_BT_XVe9eT`tQMAR@0 zNZagNOgHCGcQW5F#xFA_PqI#_JU`lZ8%1XeI4O7w6K7su#f}UudMdHm;Y_tZn?vjl z(D{oUIN1mgPnbyb>wAGx7Y0xB8d>piuw{CQ!|fjk3UJhm*DGyarwBIZOM^(E7VJz$ zerRw1Nmx_WZ4R!|?WRefl)|*b#+RIt4VgRU9~9%>vpf~-O59yhiYIfjRaW>zWmMh- z2U;(lc&4wL&f`(OwI1)S$C8hP zifQx6f$yjP4J`n~+ob}L;r*ywP@QX38=wO4U z*bBax*oSCoGucP$zkTiOnbB?E+*ilCwm{`}P;8%L5{oBkK@2nP%+=?7zd`UW6<)4J z7f<3Bt?yl8y#*dn4PYrBhCUy7x^JI8U*#@X9IDsj65!AEo=ttzIVQn_s=r*Pgy1a2 znHH^PzP*<*A4v6pLQ-w%qq?0IUT@o3-N3wz`EVQdXi )nYO#~Gi9vPBAvy16CXPp(KSV)sv-cq9VU^~^Z+b7)2 z8ig$8sAEX$mf1lP7y#|$d-X%r2k{w?Y1bl*VxZAVeV{e+b+W@Reb&wr=Q>2*4?&D> zwsxvM&tTkd&LMDRDOd*Fe^r>jw^E;+UESSZT0aDzUoiNq61kPxZ+(0Sx?>})A#?ZU z)Q_HR_eNl`;vITWu;0cqg~e(kr9uSKXx 0+`=b z$(1#7`tCT%59y5xHrlLzICb=k%kbkXcN9E-fy!4USD-#$*HyrdYSUViRnX)UwqC7Y zl*R47`>R5uG~~|N3q_@av*qJ*)^EFY|2wPD-@R$ `Mv2tGUGY>d6G6q=3|nkB4p* z?=?YmM4)bsQN)a?wHh49HVz{{1BX_FYn7?`x%R4+T}o7`sNfs(M14#N46k?I%eC{r zh*VD7*bj~Ae(VSk7olKk(ZD!a+NZfD&hgY}CQz&XnQdaR_lg!k%308Vx_T51a7cuo zW`F8!-225o(~n>y=wOn!?b&9`)NtzeTEXRP6npI4M`MGJQy}O@hn}P0kyKzDYJEK# zMc)t>e2i&y)*){x)yp^E3v>5#*avZUpu+BD^Mxch<7vd6MUseGYj%G(orGn{{xULn zs3k{`Qzy>Yu$oNLh~rq#^ojn(Da5^QKs!%kwXP{I9$!6bI7FA$#wUTbCN61zbH_;> zO*WRt++j1Gk`X$hxac-k3%1N$qowP41-%K3mGMzR{)97Idlbak?n_@+FhL@K|C*^G zR%NFe*hc%JW~VEB(1H?CCHDxO^wFIkYwm@s@Ri$7+ME4QH{(#Rm2Y?U&lo~ A z;E|zuCN7B#vU%b(k@JeP&QiTy%6!5MuzHt#K{i4wig%{{#~N`qS+3gww@orgcj|JL zCVSHnh9XZwizCP6yq;hhLvuD=b*yvnbWvW|?3> vsC~h08F01*ySf z^|19@6W#$9?@}tG<#N2iwQrGJN-R~!PoJXBY(F!>nx7~96 poBNx)Ryu!o) z3xhY)_C1lqQN^DECz%S?svn1Y<5Zv)cQu#HT-SPsTO!A=Ut(*+elb{aeTM;O z;TFC&wa|1n&)gP|iOnIDsma3y1t_V)&wYFofwpek9rO%CMiFnhdZb~eoSmw zv}?%SEw!NQnb7AuJa9C4YC6#dm(hI~)48eiZxEpn+|BbuD!$@$5@eZ$p1b6(-$rj7 z;bflW%{?hYBgap~TFN57V}6ZEn7ue8T5B%dFha)qtvR|!w%at`hhG3?V4^bJN~2$A z>pJPiR7H}gKhZuOBau~XiTkY8dJop{!J7=pHR1zR86hTZv^8^ZswAH44eaJGDtM
sq@dYl@BBaOq^B-W219TeupYDC)a zF`8adTNxFugP5b3@k$$qsbx^;YB(`YBlY;u8s-q?+QYX0{$bz6wiBcwDnf7;+l{%P zLab=FGX4p6>!+2-7}O=C#q2J>8WqZCQ0_*3-lqj>uBn>+XB(nNud-&WEL=eann=z$ z_L}_nya@B`sSQRmkRpDBvZYe*o65c>(&;zg!Wj67Y>%nUfBrC6S%|kAq0~U!XS5 zdC3{dcU1~ajd3EwA-dY+$6va9-EhRwmu=8L>LywpD$vA+3fi*N>#&HvF@d`MxiLr( zsp|ga`-c=+Mz_1=n%Gv?=MT(q#bUWS6p+O(&+=97a^G#D(McXWI+spZH%BXe4&)vL zC{=~tuQZ5DDAl?n85=f#8*_$`3YNt_mGe>yw={7hPXswB+49aa7tF_5|Ax*avc2P5 z*mZ$7(eHLxsR0Aie~l0!a-6O7M3lwyDd-80r!$8{DVZ_GZ8g#c?t`S5Y+&t!WWr|I z))mykXwSHOHl93(zL~bcg&|qUSbetz8SFvwr$`Ws0)k+Un@h}Q-T|+cI^`rc&+o*_ zpXWCIa+8>jf%PWO)*`y<4Eerz_Q 87bpi={++>H+&33~s2p~x~3qYrA3U-sL5lG2?D+o>!LzCEby)~bp{@p`pgn|FoX zn0YO94MLnls)tPd&flQDm#mfW42`*8WQpM%d)oHwdwyh2Pj@36cY;rL&CjaEZT(G! zWl8aJtYP>mb>GkL_;_zoToe1Sd(k1xP{*oiDvTVz=93bZ2VCqaM =*! z!6eAm#A@ ClOf>Nrb`;o(g8(zo+FiD){+p;-zt$ubTuMLnvq zQk}A@y_syx`GyvD`1bx5w| fkOXlY|J8mS4J z?FbYxG(3qBGyW&W1M?t1&Sj|#aL{w0hezt>c1aYR>-|Qhcp+IrfdoI;4L5si)yFw1 z*n_!Rv)tSGlIiTQsG5n;Cy1Pp<}z?)tN7bFYLrKBFtLv!d@7Gpk@LcD!|yK4oiUk` zsne8wVilW)C_WzFF;Q7ANt;nZ&>|75-$#ZJz;SA&LqQ>tnNbC*e1u(~+25_x8jN*N ztwt?n!w+pJf0Y%ow7ALF!YSYGAN4C3j>Oy@7*!8KC4Frn4ZrbZNC&xIwg>U43_}mT zL##$$k;uNQ;R^X~dxwC~59-8%OU3Hm%|XsFBi|3KhoQ36y>-Ya`zb%5QW J(AI)6C-@ zi>oI*Sk|2?yZb6O^HaX@O3TnL0YSdJeIa!CI~fDC?V1O#uQd>gNKfOLPE=x3-0yzN zw?9mY*6l4HfsPwQK1K1cfAE8d%yL@DDq8eyimIuvIoQ#6ITJ1XdrgLPJ6iXU>5Y_? z0WL3qMT_XlUr|}0&C(?7m0M{sPM+%>ZOh;FHZXoa=5!a_Op^Aq3pOOzBtRPp3~?aO zad8R$OsQT=kYBAo<_l^Z3$BEq-uk`vNY`G@rCMZ9QCVB965RniSG;0bP8QJFaETl7 zgbh*zMMYl5wK#vf6Fe@g;jKo)=BBz`=8=F@uhvqf>&%X{e9fG;w~FPao1wq|1DD09 znD%21c=4L=nBa;|e uPtSyIf_Y$+gy*Gxk1M_ZWTpj>DN8 zJ_3Eir^gw+qRh1 `M1hru@fTA=JCZY<-LQ#**y@d-ajvL~%saVqKqxd|b7VnI;gh(krjfo_39& zF}E {S=+q%KjnKhU?*_)1q!5SUY(IgIxF>P$FQ z;j&KPEO}@K%oxgSxC>p3@iT6d^e+`a6Uz%n@-VZHqCXAhdVdK-B&mi(O=RsQKYhxQ z*SyHz@Mw14>;9gy20Jg&OVUT__-m6YKd&8S8>q+Z4^Y5V_|O``bQ@8onJZF7SDH2; z9+$suGT_&2g=4O z*SIKBTZLp=CUay(2NHOGY4e(vLY%egJxrHwdsG^+U&MoU-oi{w9&6oeVjyRt8QAqH zY)4_-%~@oKTFBDz8oABS01dHEl mAZLnDA`jG8nV6c`D6`%DPt2LNkMsG>> zSDs`sk!`lygPhd4lMoMQeH(YV6}YE%rR}KZvSzDd8a{eknLfX4aD$Hzn|S~UQg1@6 zx%2NhmZ$!}kA`Cprq|h98pMlS $GW8{etCPo&LD^>*daBTUXx zdVmR0fOlkKI!TvBoXW58zSMiD=$`7P54EFVvrecZwocdX{=kaCxj|fBWn>wO&lSqx ze3-Is bEI r0P#org7Lu-W_uHVH&Joyg|a*1Q2{BYv(ry@+cX@9>58>BwR zAZs&ZgIo5EhQM*7;|u$y7#_^94B^*h;`M7C=OwEZ?*IZBSs=L(>vCeh6E`A&yJ8u^ zI^!ejAVNe4cqQ^taml~ky1z*Yeq4=*(?hB}otIhCUac|9emdTh;nzM{N_5Wqnh%;! z_|0KAxFJbxSu3sG+FKt>vic!aDfW&t9N1@_;-$&V{H107jw#pE?c %iTRxN`0er)jJx7M%xOKdeL^eY#P@e5n~_F;Hc 5 zKu R6R&yR%|sL{;-{N^weQ25V5^0azGF6YW^HxlImn9J;eTZ8cO!*Xu)CyE{Cc zoNh#`WgJ^lJjxTnR9Rs0JX{DfgFH|7yk;jJJN~nC!9d8_{r95?kc4HkKb2|OX*c%) z`F7#Kzb8SS_vkE))nVf!bM%SB NBd(yX-NZPu=N3-pCTK2mCBdt*1^b{(#|gRz(Fhv q%hh*wL8_OnYx#9rs`9HD%gcDAD zm`*g6L43xgje(G8T|AqH4$o~#7FObV%NHiJCe()`Em~FU4DrhGOu3jG+{C7Vxa5I^ zCxT66lc|e#nTk0mjZxh40pbNvE8H#&(gOoXFxr`4t7B8~fVr?0r8fpuMp`#B@XNim zG*P53&SL7-2ouDXZQ4i99r*}*y9A=kYMpo*;plECc-ri8!6rHuMw=(2uitu7iwEkE zoapb*(#@S1D}1Uoa$sc0q|HD{^aWrbdr8LX&z)HNEaC4xWKySRG$$?u*EZ%}F!= zsYg$;xfnNydpMZj&FT8u(6b_DK0TziP#h%-%C+xwc3B&1W0M&*;x=m8V72#k5
CuXM0c*zDqqJ)^lJzMrp zvD`VybuK7=yt;c4`6zyN?{C 5lQSyf zslX?+x?bm~)%)P6FNx`x^tfxea7SZvIO1neot$FX2UTS7raF}>FL$JB4W=1V?W&^Z zOIG^Tn|cyD@34FP$IYABsaiUvy50IpKM?ogvJyLJhR&h#k$3wjcqW-ea+XS}r2}UZ z^dv%l=faz;?fPhlweXrjct!u)09vcx$rDh1EBot>`^?4E29|Pcmz__^mgHVjHo%uB zMRtoUwND%dbTh@n-}*h6Pw_w=Px-Lo-uV6T0ba(E-74@YnuOhLVCee|fo|YoF{xhk zJ@T#4J(-8?WX-B|D}iZTG(c6>7Ai3CI4@3~D(vlWw)#6X&kxE%Nd}8`2Q}Jd2kFLq z-FBj@AVHdUGAWPt=#}3EmT5kgQRUErjz<6Nd?YHR#SQYlHVzf5D!VXQ4LWH)sT{Le zu*{fu`HJQDd8+|06n5oGHMCb1iD7=lt6_n*$yd18YjRtl$=h3&sO^zjTR>nGn=C2` z{c<`YZwW*LnpeX@ppS%>qk(``8tT}Kig!V5o>iF?Vd^#bq56x9*mt04rMzKOCS7G8 zQME&by22IJH@bXLkaHgmMtEqS$t|*XyX+Db6bFtuS#`b~JIb)tnFaUIMd~;207|{1 zU?73u^qttno+-*?xQ0xebk)KQklhoIZU`#sw2|}Tf3**=#<(oko)N%MAL?@ZAi;z; z{1<^Hzs(J4Q<1&OGG*SX8$KP0Yzavk$Cv-Kt*i7>SuS5&&l}HPf#!>JWGYXbHA#;N z(=LpQONRDu6!5*+y`%tEi@?`kqCkZV^mrtv2Sjx+ic-y=zmAmb7tJk2#^$8UGP0GA zcWI5w_CW{%9e)_*++v!h;j`zQ9VeE}*Hie5nCnuTp|w&5mCbCc%iI#BrrgRf 6EYg{@ORAj$hbWj}EqR858wBv| w$p4e zF_LERo8-8qU0H^EiR j^!(%=Z>#JF`rnXz$rNes)B>W z^w`^p9`m9|o&=gyEpa)K={wKjT=L;MmiEu!>nGOgXz+F)Av%mT%koEZc!g$f?T%@O z8aX-S>qg`JcovxUWI)5Kva`(QiyadvGadE5R9BZ6>*M?OwOZmglDIb>ac~HR0!3B> zvgt1m-!Ts0A(sjQuYC{o_rW9ISRq@BhYc_?DajU)GaE_6PrKBZwnc{-o|*DLSwp~% zup^!$IPx^c8e3)$US-M46dB0%OoQcMRIsfMa@4z78gsEqwldjk6fwuYL3@lnZa5wk z*3r+mhJt7(rXzL!At<4=^b69Xw?w6P$(jSPjX+KE7pwsP*rc&uyASno#WA_rR)Ieu zTa;I=VoM@06>;;(2Z+wW#L!syKLl&RKC=yd1(_c`l)I>8c{6ERrs4O0=2Ciu<+q_> z{@k9TLgai-#?)*}uO}0gKM!Xm6^&~7S))JwM+6`HC*o0B mVTquE8$Tc$_!MuIvo%F_J2kd)e1h#z@MR0`F+WAp^x;Nn=8J&8MVX z7TBeamtFqM1wO%!DIXjEaH6`}v0QB pBald$Md~3Pj^Zi%vHtgq^;i?d z)!00xe5L@}=fGR|-FK_Hl_%bGdz8w)p2%~x-`#5MhhxFIAWoOnyL%gd45YP{QkgC^ zuUKnN>(P(o*fd3P5eE3_b4TBxF$SDMq6yLxtjJBdh{i8zo3Tp4!Y5EfK$n*=Idmuf ztCgTD@!OYo2iO{P<^?F0iz@s1h1#_zaI=~QcVWTS4{T}Bc^u}$ab$mwJy+f>8*P#$ zrovZq^!IVO9>mrD9vad#E&DY9caq7dBOo#QQ&*L0xyeXtH8ZHjr*~7rRLFSIw%||~ zSmsNu=LsR3_K7^c2Iel?N9bad*D?fM_CWDX?l7c5pq0NuFN;?knDtP1_UhJ4js&`f zk;n7;%2dAYcyETM{=lUeJV0m+$IHB@`QO+kfaijM P9b)#a5jz9{zk`#z=QzMoTA+RYeZ0 z?NcOB!pDMFn*2I7nzuM>Z+~;t-tM{9zRt@B1q`P%7ynM8=ss7k*D+QqR9R76iTZv2 z)jT$`R7QNUYNgHAEnYy5QrlN}OrvENuJ-XvZR9wK+PS?%t*DEFQGgOTXPMSlhk1PZ zx t_W}9NSf9(|?UGV9l5h*YRDd!Ww`qb<=4az~g`>ynp3J|v9bo()6q9tM? z)vxFQf~nX^1&sB5W-l;+YbAh3@4PX#oi^9QEd;amp!Q}gefPK14S*~%I_z>8T+3^m z834GHFhJ^-`$4UvsjWBO;dotlcT=p;A7z?90KA23`|BWcD*2PmVy85n4yzo-@K@=E zQjo~(=cP$CjszU3ZzQ~O_4Za?w_oFr)H3zGM!EzC@J-`$cuW_edwT#HZHi+MXU5bJ zRy^I*J!B3{EOzlD&nXeBP}#dg#2=i3oOG86HhUV^y&JmmUPrEF9zv9T!m&EB_z!6< z``Y#76utkq=IMuy%oQ}(^+&|h&%{38*4F)E=3EILWW4z{U}|H@8EoNQR`Hg;Is?nd zJyog=iU5>iqbrp}+Ss$n&kV@CuJ|lPW0}OnlPlVQ=8M+f>EVKIu&44TPH0fSld*b+ zue(E>&2~v vIyy3MR(t?+uU5U?GT6>2K@$SLSDbucUl?WG1|NG-2`B9 z=7Zq^{g7~NyHbijm{msQejC%==YKg@28LNBY{1JVQK{E4za=cKK1Iyge_g(1iR&Sk zN!HP6cV)M){L$Y-&LJI7S9qL^9&rFX*=Y)8 XDy;!>HvDH@el;bRbVhz`wp`g z+1(dLgz8~}V)uN>!@eH-^%5)jOPQ=Pg_!|eoIUBk8Bj78P3$Q@fgM%)OGvMj5Y@#v z9(Aes?=J*=wL^+{i$3m=h3$$|_hu(Uo1G_X+86QItfyarZA--}FXTi49uUUW359Tt ze)pMK6Q9>*avByp7?m6c_iEHx#+Mv@I8h5H)&AI@biu8<3W-vlLN{BBQlP*kDwTmz zU^z0!2bz)vD)C1)Leb>=z1;)`MrRovQndGbgVJMtx5oh8wbX{Sc1-S)u;*Mly>ybu ziX9+H+@t?f@+V=hRn=mhM$e5H0D9 ULHuh)%#VMH_H{ zC}0VXRzb9Xg%6IGNheRU;WF%>FcA~Vf`T`Fs&w1;i2$eErVg4$+76 {+$ULt$Qw#N*YfNMLgmeZm@`*n@0gFHcOX!Ix>$qG|9Ho?`Ocb zgX=QD%S2xiSj|?2`sCP_4a-~w&ptXy1bg*A1C$&9uiCGj`BAvxFMkH$O)6KyMLJjf zdGd8vZtWr+QoozLJoy2$%@b+*Mw?$*S9{z* zddZG0s=V^+tEoRcK-6kDrgUZM*w`_1z{bH{rwO;(GM`k7W!aKy59-LvL0|OFj_I>& z(rNIE;q!a+V8(u!_`IsxxSwXDSDq-DwrpGeJ$P?&-wt-MAL8J-`r1pJkb~KGNpynl zS$K#j@*C$wMd24|(Y~jPhv(fnZ`ImgyoQ^3xr0xNYkjFyFixMafD5Ki2YG9d7lMT) zatE((yD`I&+SR7L+{rp)Im0ipCUBi<#1~*UhcWFI(ytt!VsZpToyL8mW1_P^!8olN z>F}z&cK$P9ni86&+$qQ6I3f)n!%x$sM>s~=e~}vGLxcM6zIcg9=ylJyfYv+uBLM|E z-0diucL=gYu?p>r(!3-QOcHUY64n#JZ&pnot(q+{pQl-pEl!s|Y$4wzD(#9m6Uapi z3#1Yw5@769>-*#xi^cxb;5;{SaGMzesv)aD1%jHwCw}ctE5nmfmYX&5!AP&W(dOY8 z^E|l-!?v)OL|5z$(ud%tocYv*ZIiDTkNOBUa>fqFqAArnHFLu$oneJsuCjBkv?(2l z0!Q7E6O`Sukuv2E#F%s%>sxmF58Qd$^#W`mC>o21R1ok(k86T5)2;kXmT}wr*gQw` zv6=irZ`_tP0V`BwJRqdtAj-Qr?o=jzNH;xyygVT4KTCUt!FEns_jtpa2lWFo2j~!g zYH@H_(7_7iJfxr3f*PT`&{%J#9TPqX*n^EjLIqX330=tetJ+?QC9{9+fvC{+*f3)( z(*Rf#fp6_D2=B&rOb^w?&ZY_zp#WTk&o~(0YhR=5!ITRQlY-1=3!PPE)-O-7`1lP9 zu2i|Gi61I$#+-9g!BE~HyEH)p7#rU4-%|DUy4N}~t0~nq)?*&;oybDsj@}RO#p;iu zx6BN!Z3>!WkBZlJnC_4cGOtD-w9^B8^Pomd`enf1Xy!%v@`cn3&!_cyv10&?luX2e zyxq9%xZ1pLmECI0!tOEn?$-X~%P5(FL34jDuU_42Ar6EAxg$f1t%I)X8(rzgtX%8n z`jBb)5?3_O^^BQeQ-1dbLI?+2vH7^G{EAVvKGrXyC!m0h@}T^DNve;<`(o$!_&v9d z9L!5_``m^=|DAFkQ`pku=)Euh<64&fedag}ea8y4(?sT%tv?*bJms{;y6pf-#9 iA0*lAdSD3DFps9h44dsyE7U7AZEl zPV`_IM3cS)`+C-fEjpSW0{~E|-H$ORAFE@J(0&YajD%c94v3x_9^ 9MuCml0y^>1Mx%vmhdfPFM&xhxn;`}=HG($6ajp(z+QOeBf`#&8TG>VXT z6hzUdrWw^Z(;7MO^?Lfa;8t4Wm(ld&fB*Yld&8)?zhpmm1g8QJUnG_Uy2J`2xe=r9 z{Z9>1JVBZb9K~al>gmVzzViu-G^~1Gv4Q+TqOFv8a!j6t9Bn~xVai18iNLSn%dITJ z@#|LW%`ZSD*w6Ym#_fZyVGHAnZ!cJUU8 Y$gnmQ5_yPNT5#vwlOFA`%9peygbL#8(Ja zGHs|=Q=y8O72)RZE9OVG|8P}bL*w7LD)nW&L)TMv+n0sLP8iH-{dlYvd-&0b|D>vH z#2kX!mM;_NiEs=IT%uI>g`088%;uz?$=b!oK3@M!&O^f%r; %Gh=`*T-h`SHrYmzMj3CxjTuI*4ipK>R+ cEz1+&f~B zuoFKQo9@=x{mwSc&=JEv_~CSX@FNac#0Y9md^EQXLrC4lB9g#2i>4?7D_b+G0W^(D zo$F=hz(cc}GIYu*xJz5}hH*vL4%Et~-lo2~O*_47lya#OVhKNum-mq(@RQUa=5{6h z!Kl4$wr(moq>$ybmzZ8$1WcU1e1h`sZNs+@Stq;cI+PBiz}u|CotEj{kU)P}Q+%w3 zoup?e)qmH_DC+mi@637YSWV}VG)UrE8%HTNeJY)Tu1`~1nkfvG^%K!)^X_#lvp+%0 z1E4BWDwquxc!W~7ZZBn_=+T0&<_d9T)8CAzOm<-&gK0NBn^z {In+&%026D5;y`j_(7%pMdbNI6P9*ZxQ;LyN6EzR@3DL; z*0U?}tx?{HyD+QU9H+IOWg= spo%kx8Pj z;jZv2V!?TR3VHA0p1gfXIzi4<_ivai>kOqXYqIpUWWu^(l(Blv&UaMZdVW-sd;B}! z8G@8`@!*7Z2k@H1?(A84uLPNAkpRcI`3=pJ>&c-2KKwntz%-cYM7Ih+ra^_${lS4! zg)`y)p)URxE6Rn}le3e&kFAU8=*y6^p6C73_IP@Z%H1kCUh3%Jtr TtjCMtAB$TKZiAEy~&W=ctXzS<>4 zvV}IgtR@~vlg4r)-hBi<^~%+U@ Fk0iQ?+e1D4Wb4=<6r@>5#$%+*Jd-^2CKNv(Lp!`8sStVa=O zno4h>nPIS?3xX)0TYb_D!;s*hf39)7n9Pf(g3lv;uMRI7KT|BIK$tVZ**Oy$O8OTi zJS3vLwN?{dR*U;<;6__yqDT1$0=3fz z;>=mHcPJuZa8T89C^N|Ei2~JKO-x5(U8Id{sw{yQ8YZ~BPSM$JorkB+S;ufkG_nAI z-^k2p=5qwlCo`%&znjUWBx_2hOD)rO#`N7kc-_`AYsG2+KC1?1CJA!t*adN&m!_Ws z1>=O&g2!q`%(1$PX_IS;h=_<~YsAANn2s)V=qke59k2A2y `lwScK*EdAl zq Bjh-r>0=UnIKkxq{Vbn15L=^Rn#}VyKesw0<@&DUGyAm2>6E17;2Y UN9_^fI4^Xow3Vd{`?RQW 52r q`us$#Tz5be7g_F;`R=4ISExMzMmygD4>UD?;l zoOu5ZSoC!##C~r=4&}f^F^Mw>iSclJ21|b0)1&q-0mj|_VCAGfjtG-2Y5;~D?QF1+ z%$?P%ZHE_Qpe6aldESG^C1J?|#DNXG6rOh8;+VT-$Jvp)!U@SIX*QTtY<^>QV2SxL z=ur`irB2IVQ~vomrT|*8S7~3*@$Ba%2W3hSt?E4EZ|DgQMr04g@j3!y+jL74uGaXD z@-N39p=0%E*ooDLd*7pRwxs>#)_SitvA?XBKwJWN{aBYF`>JG EU0%N-S!lZJIslR-LN7I_!$0Vh$HLV1QhFW8Ebh4Q4O_5P zaM!^aT(}T(e+arXZaV!xzRtF)wJS|C5lEf~0LUofqRG*^O3W=soM6nk&Ma*lVZsxR z3iRDhl3vN>oG><=34;6vt6h+0y7E#6`>O=p@XcYVNDG-+>f=OzxJo-lv7 |9nA}EY;25q2?x(VaT{&u06`@Wn%NOSV#U}Qw juxR!ls8V`izf%t kf!?`?)E5E?d`#s$OCWfeYB<~1(+#x)#H*z^9 p zzcXT(j$pLOmT-(-9{BWr1C8N_e#n;|V!zE#4mZKQHN!oI`(NC>bx>W+zO5bHAwaMY z+=5$h3-0djkl^m_uEE{i-Q6v?ySuyH$-DP=?%DU$_xG*3RTHXK0lj+mTC3^b=rNu? z7G~GORbY3#H2Nu>>bqa39N U;R-jO~ z1G05rR&E$c4YM~NC&OJO&ICOQ26DOQMLD4>!AUQ}?8DB#w3IgNP+HpZhinANU`!$F z*>?`Ak+|h*9kQzYeC CaT{hJJ3c@E#nM}hfym!gVYX&>(&ca(bS5XKaQ z<> a0+P1YBMpY3(>>=5`r_rpF z;W2_z0P aLr*i@CBq()F`vuH4@dVPq=aOEpUx4G3 z{YF^?(r8`QbOmDtwI3F|XI+=^347qmldkxDWrxIk85P5w93#AD`&YU)z5B=AA} TbKVd(y?RWt#2#)Z7|bU(DZhk zXq3SU?Dg7&qsBZP>0X)T-A=Y|*P#lzQv5O#vV~d%J3B3(_Lcn?#wB-R#p38-# 0^6c~}fV5MpQ`>o;4dqR?=Gyg@b5Be^i0&N&;sb8#Y z`%gr`rR|Zr#C6W$$9n` t|;>sN}c%wD0FAp@dHF-p}eu`7-!yy {x#x->NmyaM^nw*KoTpz{=E=MS{izWDV!ME7tkf>WpO{_ zte5M;2^6*{nO#-(l-tr&s`Qw3T`zz5vBq}Yiqy+)R=pD$M1!$>S#aXWefKjej5 z}q)f(nT&v4>z6wGP|7F~i2i-*l-#!(~Uc z{7j=Os)5vLVpb`XEgf+ak?GITM6t99*W0XL_Y&s+shRrE08c3uzn5fI6&!cX&Jc_U zFGfWQxiQvxOpM$M>BtZ!F)+>O{XNZ8B)oh%P~e*s ^Lb@_-42ms8@m$UMj zZij(~##Zj?P)ydMh6nu-LLvsPR&d=-79g^^RiX-JW*;Tn{!3AuJ3Epnq%C3t_j*YB z-1>$8bIlpv9ERpvi+t^w`eYR1;Sx-oa+V4Lzqu$)U>^aobjlwb52s2O=U=YYd#(0R zm@yE}_s;>11S}X+{4wK7f(Zrs2kptX5g&d%(3U$!&u66@+@*0Vegs!AF4bqDv>LRQ z@}XF`ReUB~4)W7qOETv$#d`O%XJ)1*XTvahyL%btk2p-$o`AeDj2;OF&yuUZ{_Zv{ z1zL|`s}#}D3-%Ewn5(;g-jUElq37A-`x-;gc;LQ$Yys*%E&F}c&OS;xLT^#$ZP4$y z?MH3drP $1TN1u2q6xHs*y5LXY^Fj1ca1J3F_6)6rKXwA4*4Qn(j-{ z>Cu#OdBEASBFS3FQbfwz(Nl#wC#T(fEGTlVE+_5uzPvUX*tK*GxSii05ZR2~1thDn zu)>2JkC#rXNSDnkwyHEAvtkt3T1{3*7}<^~Fz*pBUeB#|k1c-!bE@qSX59>59&mRs zqMVkDpZs=Kl32Dt>QrAKT6jabupr6L^zJ=B5SjejHPZFvM(}FAKg)0rqR4G}{&5As zS-+bYt0+e@YGb49hk5aS>{dAhoy(>&J5^hCX3Qi=baIM`$*XT1-^OFY-+r~p6^a)= z$ys2J(mCAoa&~v(`XhQ;k{my>wJ^r`nfiL<_+tf!mVzZ|YFBCgi9BUBI zyYAomJ=0Xaj*2+dIS|gTQY;l+9bsOGAn~0CGNPT%QB |8C+HM_TmHIuHcH)0G^t=8C6v?P=kJ%98Ct zOkkjoED%S*I8zX)kb}DFRfRsF9M#QUF%X^aGh!oLkBr=7TixilXKR{)AI{X%aR&{7 z#>wIUdvT(LIr(C`b x7_lDwk3ddT47%Ig zpKg${*UXiEr)vmtL*`6o+EBt~v-9udLf^3;xky`H(iIgHNrBoK>MlGh&C4 K_P)e67f+OHMlFN>&QZ0|#~N1vKWN31js6pn%8S z+2^s|(c{Muhbq;($=KL1%Yfn9 o{zPms6 zui*znTJAp^dmdJ;*LOoQghKFWoi@kVg%|SrTxp5SKotxMLiM(G@K0hrnHU95B+Z2E zG~|?6vEmhE2;4!!HVRhQBE$&MF{RQH8vPn%zxt0kz8tam@8wBE2nvOt_=lZRj5DIu z#^b2PVuROABTNh@x}SGUU&qlv;p3mGe4*PRZy(>5G{F-w DTp!#5VO^U z8@>yExPC&trKK6|o(ZfM9PP;Hg~=f7QbMQLPB6RM=w_&a%^Cw!<@#A(SCy!e`8nrx zUe#DJwAQhF)AF-s?;*M6z7?zNI|P>)%G09yX;)Dkk?_zMdUJFj$Now7{O-B$kG4=y z+l~W96}7=I?=?ukI+Bb=lFsCzEEJyRg6a&-x`2en4}lZ*mxQWqxHuYCtU<{t64)5W z9N50%P#|ZEogjNY_Pce5+n+r^x&FhTWMx)mw2aatw9|W-;{8Y`4ZBOB8%Ce1@w06# z_~ol|!Ew=J^ZqA&(Egp*fdOobS{6Bt?;^}&RXxw2w91FkiYSujU5LN?`m8>+{CX*% zc@#V0s$Nz3yvg;66vo83vs!g5BH$E0m!9p*9#a$X>C`RS{Wh@W2~2#U_bHs?TI0$! znr2g8i+tJzRByvFSj(PfP|l<;%3|UB@F?eexrl0^>B{nGL#4FudMmU0U-oIW+kV9! z4c*S@^Yl*?S<0w04o!S0HTrk+FMaoyKrgWz{Faf-J{O3-qTPp9^>DzM=u`L}-Eyp+ zz`ZkoGJuK(xhj>~?@qg=E`06;eaFYTD8Qd@RN-t4xA}%=<&%il-?>07mO&ajm`q^& zS5QCq45nP~GFoyJ{Jy2qy%Y3Ps6m`;C=9cV{ioQkLu?3OMuijjH1O#aej<$nfGGrq z?pJUyAy>zX)5kJ?%!AJzKCB62q8{U#YHEAGkE>S@8 !R=0|4D>l9_M??|;y(tN<%0rtq%^@c+>Z0qhTJ#d469CjdeEZxAiuQ71B> z$$ZP&ME%dF0Umue|DgAn6Lr7p{vYfuOb}sU)oAS(ApL*#?*HwZ5`llVeeJimzFmsL zoI}(?IMwR#pmxf_Ouwx;g-aL@9#N+4t2FK^c?@>Epd=fuNhsI2IPIs=ZaPq3Ua4e( zzQA<$C2HvYcujxm@!~t{HBI_CWGvrRU>rNVklx`g0$-~%cX-Rc>F87$_r5e$@36d? z#G6tT|0%}4E6d<^