From aac69b38ddecbf4024a227395d6fd09a28496fa2 Mon Sep 17 00:00:00 2001 From: CarstenArend Date: Wed, 3 Sep 2025 12:23:27 +0200 Subject: [PATCH] initial commit --- README.md | 1 + dtoverlay/mcp23017_0x20_zeroplc.dtbo | Bin 0 -> 3412 bytes dtoverlay/mcp23017_0x20_zeroplc.dts | 156 +++++++++++ dtoverlay/mcp23017_0x21_zeroplc.dtbo | Bin 0 -> 3308 bytes dtoverlay/mcp23017_0x21_zeroplc.dts | 156 +++++++++++ install.sh | 139 ++++++++++ zeroPLCgui/gui.py | 388 +++++++++++++++++++++++++++ zeroPLCgui/static/zeroplc.jpg | Bin 0 -> 99284 bytes 8 files changed, 840 insertions(+) create mode 100644 README.md create mode 100644 dtoverlay/mcp23017_0x20_zeroplc.dtbo create mode 100644 dtoverlay/mcp23017_0x20_zeroplc.dts create mode 100644 dtoverlay/mcp23017_0x21_zeroplc.dtbo create mode 100644 dtoverlay/mcp23017_0x21_zeroplc.dts create mode 100644 install.sh create mode 100644 zeroPLCgui/gui.py create mode 100644 zeroPLCgui/static/zeroplc.jpg diff --git a/README.md b/README.md new file mode 100644 index 0000000..dfe97db --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +#zeroPLC installer \ No newline at end of file diff --git a/dtoverlay/mcp23017_0x20_zeroplc.dtbo b/dtoverlay/mcp23017_0x20_zeroplc.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..1ec5d221e858392ca5720ab2fe31df359bd224e1 GIT binary patch literal 3412 zcmbtWzi%T&6dvae!4U-=2NG}v5Jj9g-C6Ojoy1s*lG7y!OUQRRJK>tsYO`J^EB1%k zU84jcQP9vJ(NR#)P*PA+)6vk-^AAwc0^heY!9WT(9moC7RIz$bDZRJKMmb8#{pZ+zkvRB@~L}90h+19xg|xWKZ`&#jn)2O zf0(3^8|UZSUu4gg=B{Q>=9UISKa<{Ne6+m^s^xBa?B|`vwot31B=xbIpX_YQHN0mv zERYI_`EhvXiu$y175_WWtzSp{AR~U}wO8t^M9ti{1KX1drZ#h@Zue5%CJ;g_((PTU z+d5abf2poK35)zby;OH|q2GIuKD$tNPOaFp++QQmQgKelL7a7p?Q|`Ob3aWd<6H@V z;kv#Kib2;?|5zfIrX$Y32+BZWTmBcyZh*d|Y}HzoD=yEbaV|N#=nPfPd@b_EcC%q^ zIgE4HmixZc`x-V_L+F$Jw;(pn-@;g*VcnN8l<^jI2w3)u>cVS~izx8Y#5)Pb_hnQK zR7$jYyE0=P!!j_+ZY4K8|AVqY{w2`QLx1E>!W_eC9=~EtKU(KEqh?a)PY``*42I$_ z5bV&l-+e>!kJd~opbKr{P2@uc5sZ#b6Scw#6#J{a_ok<1HS?E^LD`mt8& z|8>#5rvK~oe>qNe79Ay_x;eOJufX2H`uru!x!ag~R+(F$xmjg=cYzxkI1{yg!8v>r zdTFWGH1*)V_^0mx^HqsynHbvE`-M4Tzm0;^$yi^E%;61)zbWVodz(rI+8@_f7vpLgalj+X__FbgzP=PvB?u@$?>LF~+9Ep3o% zv5P!^G;%02D20`u(3uu?ydF|K!c-N9Ev$8zcy3r-@j}j8HTOPYt>OK_rt1i0d~>jw zGFe@#GQJJiOx&InaSs>kMSDCOY^JOyMHQJmT~!?KQ#MnV_avJs;~mI$6U23;-x$Qk z+E(nv>5-Dz5XbY#+Q?SL%-4Nl&Z(b*HJyz%s&>kKHtS1cZ+Jsqr+p-iO{OO#R#Ce*8p^pfr7jTe% zR*!--O;WMO;QTDBOJ{3Y@P)6&c%~F7)Wab5m3yXCH*Bs+K@sTDB;)^P{uru+)!U=w W;Cspt>bPmdz7dRyE}EPcUd8``@r6_X literal 0 HcmV?d00001 diff --git a/dtoverlay/mcp23017_0x20_zeroplc.dts b/dtoverlay/mcp23017_0x20_zeroplc.dts new file mode 100644 index 0000000..c881779 --- /dev/null +++ b/dtoverlay/mcp23017_0x20_zeroplc.dts @@ -0,0 +1,156 @@ +/dts-v1/; + +/ { + compatible = "brcm,bcm2835"; + + fragment@100 { + target = <0xffffffff>; + phandle = <0x01>; + + __overlay__ { + status = "okay"; + phandle = <0x05>; + }; + }; + + fragment@101 { + target = <0xffffffff>; + + __dormant__ { + status = "okay"; + }; + }; + + fragment@102 { + target = <0xffffffff>; + + __dormant__ { + status = "okay"; + }; + }; + + __overrides__ { + i2c0 = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2b 31 30 31 2b 31 30 32 00]; + i2c_csi_dsi = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2b 31 30 31 2b 31 30 32 00]; + i2c_csi_dsi0 = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2b 31 30 31 2b 31 30 32 00]; + i2c1 = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2d 31 30 31 2d 31 30 32 00]; + i2c2 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63320000 0x2d 0x3130312d 0x31303200>; + i2c3 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63330000 0x2d 0x3130312d 0x31303200>; + i2c4 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63340000 0x2d 0x3130312d 0x31303200>; + i2c5 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63350000 0x2d 0x3130312d 0x31303200>; + i2c6 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63360000 0x2d 0x3130312d 0x31303200>; + i2c-path = [00 00 00 01 74 61 72 67 65 74 3f 3d 30 00 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 00 00 00 00 00 2d 31 30 31 2d 31 30 32 00]; + gpiopin = [00 00 00 02 62 72 63 6d 2c 70 69 6e 73 3a 30 00 00 00 00 03 69 6e 74 65 72 72 75 70 74 73 3a 30 00]; + addr = <0x04 0x7265673a 0x30000000 0x27265 0x673a3000>; + mcp23008 = [00 00 00 00 3d 32 00]; + noints = [00 00 00 00 21 31 21 33 00]; + }; + + fragment@1 { + target = <0xffffffff>; + + __overlay__ { + + mcp23017_pins@20 { + brcm,pins = <0x04>; + brcm,function = <0x00>; + phandle = <0x02>; + }; + }; + }; + + fragment@2 { + target = <0x04>; + + __dormant__ { + compatible = "microchip,mcp23008"; + }; + }; + + fragment@3 { + target = <0x04>; + + __overlay__ { + #interrupt-cells = <0x02>; + pinctrl-names = "default"; + pinctrl-0 = <0x02>; + interrupt-parent = <0xffffffff>; + interrupts = <0x04 0x02>; + interrupt-controller; + microchip,irq-mirror; + phandle = <0x03>; + }; + }; + + fragment@4 { + target = <0x05>; + + __overlay__ { + #address-cells = <0x01>; + #size-cells = <0x00>; + + mcp@20 { + compatible = "microchip,mcp23017"; + reg = <0x20>; + gpio-line-names = "AIN1_SWITCH_I/V","AIN2_SWITCH_I/V","AIN3_SWITCH_I/V","AIN4_SWITCH_I/V","AIN5_SWITCH_I/V","AIN6_SWITCH_I/V","AIN7_SWITCH_I/V","AIN8_SWITCH_I/V","NC","IN7","IN8","DIS_24VOUT_POE","5V_EXT_FAULT","5V_EXT_EN","RS485_120R","DIS_24VOUTPUTS"; + gpio-controller; + #gpio-cells = <0x02>; + status = "okay"; + phandle = <0x04>; + }; + }; + }; + + __symbols__ { + busfrag = "/fragment@100"; + i2cbus = "/fragment@100/__overlay__"; + mcp23017_pins = "/fragment@1/__overlay__/mcp23017_pins@20"; + mcp23017_irq = "/fragment@3/__overlay__"; + mcp23017 = "/fragment@4/__overlay__/mcp@20"; + }; + + __fixups__ { + i2c_arm = "/fragment@100:target:0"; + i2c0if = "/fragment@101:target:0"; + i2c0mux = "/fragment@102:target:0"; + i2c0 = "/__overrides__:i2c0:14"; + i2c_csi_dsi = "/__overrides__:i2c_csi_dsi:14"; + i2c_csi_dsi0 = "/__overrides__:i2c_csi_dsi0:14"; + i2c1 = "/__overrides__:i2c1:14"; + gpio = "/fragment@1:target:0\0/fragment@3/__overlay__:interrupt-parent:0"; + }; + + __local_fixups__ { + + __overrides__ { + i2c0 = <0x00 0x12>; + i2c_csi_dsi = <0x00 0x12>; + i2c_csi_dsi0 = <0x00 0x12>; + i2c1 = <0x00 0x12>; + i2c2 = <0x00 0x0e>; + i2c3 = <0x00 0x0e>; + i2c4 = <0x00 0x0e>; + i2c5 = <0x00 0x0e>; + i2c6 = <0x00 0x0e>; + i2c-path = <0x00 0x0e>; + gpiopin = <0x00 0x10>; + addr = <0x00 0x0a>; + }; + + fragment@2 { + target = <0x00>; + }; + + fragment@3 { + target = <0x00>; + + __overlay__ { + pinctrl-0 = <0x00>; + }; + }; + + fragment@4 { + target = <0x00>; + }; + }; +}; diff --git a/dtoverlay/mcp23017_0x21_zeroplc.dtbo b/dtoverlay/mcp23017_0x21_zeroplc.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..dcb6195fc48751efc6a1f22912cf9bbc9767dfb1 GIT binary patch literal 3308 zcmbtWO>Y}T7#^oZP(o2DNI(yuD59cjt$5ez2bQ8FP1MGsN+e=ST&mT2y-rr_hnZcY z1|f0a!Uc&N2M$~~@(Vcg1GsSK2f&dl@H{&+-r0JSRLU#AJ2US*@7H+do%#Lhzkdty z+FwG52SP0Gq5Tm22KX8n)cP56-B%L*ZRz$B+N^{nY)-hm79#lVXnNZ_-K0t+$wx|6c)YChR~~{CGDwS9B*!@HN5R~ z9Iy_E`LTQRg8H;^5&xSntlvibU@Ly+wOi@yMD5%+A~#S9wl;I8ZvR}}E)YUA>F%Ga zyMC(f;kml%BsBT`^jzJ0jec)K`t(fQ1+{X|a(_+0OXWG8MrqzFx6`F4EkY@0(?Sb? z;kv#BPQjODc%+a^^B(742IpY0q5c=ju7JOyY{gkoE3VF_buKyEbcSkYzLf-1x7%^< zdyI3-Rr|iu`vx{xL+F$3cVLnkUq|1ZVbfMIRPmN|2w1jFb>U6OMG^%v3y!1d9Timv zl@hdQS7mHsSO!Mht>tFsf7CWOeg*u?IGp&ixIlNF$FJzqkJ0(fs+rXJ156(VgRb}! zOg!lyu+in3u)i3$+TRApxLH%1>M(q@UgaEE<6G~dPvU=O{wdBiuAOtg#2VcXFyg-C zcmxx-`upCa?ctMwcsM-t`Uj3~T`_nx@E&gOeEg*UcyA!~cbb0(!-2Qk-+o-eKRF!e zRtye?J9`6P8?)Z?b@aUaBpGF~uIRM)I&2Tu7B4@}-N4+_ z+T7Z6H=c^=7I0$=XQS56I3MpoPgZ(eTMzEbeBTG=>k6}OV`$s_kIWJKU=lr>P0fYH z9Nvcb+e#mod(YflbW!>s=6f6CG-H0SF>WJ9tmpvs#o5DU(CInVzI_iqZ!TiIAdkFp z9vP^~UAU)XYj%-?*j&Uq#vs>X3wi!zGxLhyVsnp;7=5?uhlUW)RQI?9;YP$tt9OnXp~Aqevh(A%;S zApH4Ukfnvp;y6SE^NTT(pSP1p%1nw?1{daeTRB_Jqc20<$Mc~~p&dtQsNFNAwq; + phandle = <0x01>; + + __overlay__ { + status = "okay"; + phandle = <0x05>; + }; + }; + + fragment@101 { + target = <0xffffffff>; + + __dormant__ { + status = "okay"; + }; + }; + + fragment@102 { + target = <0xffffffff>; + + __dormant__ { + status = "okay"; + }; + }; + + __overrides__ { + i2c0 = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2b 31 30 31 2b 31 30 32 00]; + i2c_csi_dsi = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2b 31 30 31 2b 31 30 32 00]; + i2c_csi_dsi0 = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2b 31 30 31 2b 31 30 32 00]; + i2c1 = [00 00 00 01 74 61 72 67 65 74 3a 30 3d 00 ff ff ff ff 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 3f 3d 30 00 00 00 00 00 2d 31 30 31 2d 31 30 32 00]; + i2c2 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63320000 0x2d 0x3130312d 0x31303200>; + i2c3 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63330000 0x2d 0x3130312d 0x31303200>; + i2c4 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63340000 0x2d 0x3130312d 0x31303200>; + i2c5 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63350000 0x2d 0x3130312d 0x31303200>; + i2c6 = <0x01 0x74617267 0x65743f3d 0x30000000 0x17461 0x72676574 0x2d706174 0x683d6932 0x63360000 0x2d 0x3130312d 0x31303200>; + i2c-path = [00 00 00 01 74 61 72 67 65 74 3f 3d 30 00 00 00 00 01 74 61 72 67 65 74 2d 70 61 74 68 00 00 00 00 00 2d 31 30 31 2d 31 30 32 00]; + gpiopin = [00 00 00 02 62 72 63 6d 2c 70 69 6e 73 3a 30 00 00 00 00 03 69 6e 74 65 72 72 75 70 74 73 3a 30 00]; + addr = <0x04 0x7265673a 0x30000000 0x27265 0x673a3000>; + mcp23008 = [00 00 00 00 3d 32 00]; + noints = [00 00 00 00 21 31 21 33 00]; + }; + + fragment@1 { + target = <0xffffffff>; + + __overlay__ { + + mcp23017_pins@20 { + brcm,pins = <0x04>; + brcm,function = <0x00>; + phandle = <0x02>; + }; + }; + }; + + fragment@2 { + target = <0x04>; + + __dormant__ { + compatible = "microchip,mcp23008"; + }; + }; + + fragment@3 { + target = <0x04>; + + __overlay__ { + #interrupt-cells = <0x02>; + pinctrl-names = "default"; + pinctrl-0 = <0x02>; + interrupt-parent = <0xffffffff>; + interrupts = <0x04 0x02>; + interrupt-controller; + microchip,irq-mirror; + phandle = <0x03>; + }; + }; + + fragment@4 { + target = <0x05>; + + __overlay__ { + #address-cells = <0x01>; + #size-cells = <0x00>; + + mcp@20 { + compatible = "microchip,mcp23017"; + reg = <0x21>; + gpio-line-names = "IN_FAULT","BUS_IO1","BUS_IO2","TFT_BACKLIGHT","NC","NC","NC","NC","NC","NC","NC","NC","OUT_DIAG","TFT_RST","TFT_RS","TOUCHT_RST"; + gpio-controller; + #gpio-cells = <0x02>; + status = "okay"; + phandle = <0x04>; + }; + }; + }; + + __symbols__ { + busfrag = "/fragment@100"; + i2cbus = "/fragment@100/__overlay__"; + mcp23017_pins = "/fragment@1/__overlay__/mcp23017_pins@20"; + mcp23017_irq = "/fragment@3/__overlay__"; + mcp23017 = "/fragment@4/__overlay__/mcp@20"; + }; + + __fixups__ { + i2c_arm = "/fragment@100:target:0"; + i2c0if = "/fragment@101:target:0"; + i2c0mux = "/fragment@102:target:0"; + i2c0 = "/__overrides__:i2c0:14"; + i2c_csi_dsi = "/__overrides__:i2c_csi_dsi:14"; + i2c_csi_dsi0 = "/__overrides__:i2c_csi_dsi0:14"; + i2c1 = "/__overrides__:i2c1:14"; + gpio = "/fragment@1:target:0\0/fragment@3/__overlay__:interrupt-parent:0"; + }; + + __local_fixups__ { + + __overrides__ { + i2c0 = <0x00 0x12>; + i2c_csi_dsi = <0x00 0x12>; + i2c_csi_dsi0 = <0x00 0x12>; + i2c1 = <0x00 0x12>; + i2c2 = <0x00 0x0e>; + i2c3 = <0x00 0x0e>; + i2c4 = <0x00 0x0e>; + i2c5 = <0x00 0x0e>; + i2c6 = <0x00 0x0e>; + i2c-path = <0x00 0x0e>; + gpiopin = <0x00 0x10>; + addr = <0x00 0x0a>; + }; + + fragment@2 { + target = <0x00>; + }; + + fragment@3 { + target = <0x00>; + + __overlay__ { + pinctrl-0 = <0x00>; + }; + }; + + fragment@4 { + target = <0x00>; + }; + }; +}; diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..d816adb --- /dev/null +++ b/install.sh @@ -0,0 +1,139 @@ +#/bin/bash + +#test for root privilege +if [ $(id -u) -ne 0 ] + then echo "Please run this script using sudo!" + exit +fi + +echo +echo "#################################################################" +echo "#### Welcome! ####" +echo "#### zeroPLC Installer v1.0 ####" +echo "#################################################################" +echo +echo +sleep 1 + +echo "#################################################################" +echo "#### Downloading files ####" +echo "#################################################################" +sleep 1 + +cd /home/$SUDO_USER +wget https://git.sqegmbh.de/zeroPLC/zeroPLC-installer/archive/master.zip +#check wget exit code +if [ $? -ne 0 ] + then echo "Error downloading files, exiting" + exit +fi +unzip -q master.zip +cd zeroplc-installer +sleep 1 + +echo +echo +echo "#################################################################" +echo "#### Activating device tree overlays ####" +echo "#################################################################" +sleep 1 + +echo "Copying overlay files" +cp ./dtoverlay/mcp23017_0x20_zeroplc.dtbo /boot/overlays/ +cp ./dtoverlay/mcp23017_0x21_zeroplc.dtbo /boot/overlays/ + +echo "Activating overlays in /boot/firmware/config.txt" +cat <> /boot/firmware/config.txt +dtparam=i2c_arm=on +dtoverlay=i2c-gpio,bus=3,i2c_gpio_sda=23,i2c_gpio_scl=24 + +dtoverlay=w1-gpio + +enable_uart=1 + +dtparam=spi=on +dtoverlay=spi0-0cs + +dtoverlay=mcp23017_0x20_zeroplc,noints=1 +dtoverlay=mcp23017_0x21_zeroplc,addr=0x21,noints=1 + +dtoverlay=i2c-rtc,pcf8523 + +dtoverlay=ads1015,addr=0x4b +dtparam=cha_enable=true,cha_cfg=4,cha_gain=0 +dtparam=chb_enable=true,chb_cfg=5,chb_gain=0 +dtparam=chc_enable=true,chc_cfg=6,chc_gain=0 +dtparam=chd_enable=true,chd_cfg=7,chd_gain=0 + +dtoverlay=ads1015,addr=0x49 +dtparam=cha_enable=true,cha_cfg=4,cha_gain=0 +dtparam=chb_enable=true,chb_cfg=5,chb_gain=0 +dtparam=chc_enable=true,chc_cfg=6,chc_gain=0 +dtparam=chd_enable=true,chd_cfg=7,chd_gain=0 +EOF + +#load i2c-dev module, done by raspi-config when enabling i2c there +echo i2c-dev >> /etc/modules +#disable console on serial (will change /boot/firmware/cmdline.txt) +echo "Disabling console on serial" +raspi-config nonint do_serial_cons 1 + +echo "Done!" +sleep 1 + +echo +echo +echo "#################################################################" +echo "#### Activating RTC ####" +echo "#################################################################" +sleep 1 + +apt -y remove fake-hwclock +update-rc.d -f fake-hwclock remove +systemctl disable fake-hwclock + +#GUI +echo +echo +echo "#################################################################" +echo "#### zeroPLC testing gui ####" +echo "#################################################################" +sleep 1 + +while true; do +read -p "Do you want to intall the zeroPLCgui for simple testing of hardware functions? (yes/no) " yn +case $yn in + yes ) echo Starting zeroPLCgui installation to zeroPLCgui folder in home directory; + break;; + no ) cd ..; + rm -r /home/$SUDO_USER/zeroplc-installer; + echo Exiting installer, please reboot the system; + exit;; + * ) echo invalid response;; +esac +done + +apt update +apt -y install python3-pip python3-picamera2 + +mv /home/$SUDO_USER/zeroplc-installer/zeroPLCgui /home/$SUDO_USER/ +cd /home/$SUDO_USER/zeroPLCgui + +chmod +x gui.py + +echo "Creating python venv" +sleep 1 +python3 -m venv --system-site-packages .venv +. /home/$SUDO_USER/zeroPLCgui/.venv/bin/activate + +echo "Installing python packages" +sleep 1 +pip3 install nicegui adafruit-circuitpython-tmp117 adafruit-circuitpython-sht4x adafruit-extended-bus +deactivate + +chown -R $SUDO_USER:$SUDO_USER /home/$SUDO_USER/zeroPLCgui +rm -r /home/$SUDO_USER/zeroplc-installer +echo +echo "Installation finished, start gui with ./gui.py" +sleep 1 +echo "Exiting installer" diff --git a/zeroPLCgui/gui.py b/zeroPLCgui/gui.py new file mode 100644 index 0000000..7303d24 --- /dev/null +++ b/zeroPLCgui/gui.py @@ -0,0 +1,388 @@ +#!/usr/bin/env bash +'''exec' "$HOME/zeroPLCgui/.venv/bin/python3" "$0" "$@" +' ''' + +from nicegui import ui,app +import os,sys +import gpiod +import atexit +import board +import adafruit_tmp117 +import adafruit_sht4x +from adafruit_extended_bus import ExtendedI2C as I2C + +from picamera2 import Picamera2 +from fastapi.responses import StreamingResponse +import io +from PIL import Image +import time + +picam2 = None +camera_connected = 0 + +def init_camera(): + global picam2 + picam2 = Picamera2() + picam2.configure(picam2.create_preview_configuration(main={"format": 'XRGB8888', "size": (640, 480)})) + picam2.start() + + +def generate_mjpeg(): + while True: + img = picam2.capture_array() + pil_img = Image.fromarray(img) + if pil_img.mode == 'RGBA': + pil_img = pil_img.convert('RGB') + buf = io.BytesIO() + pil_img.save(buf, format='JPEG') + frame = buf.getvalue() + + yield ( + b'--frame\r\n' + b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n' + ) + time.sleep(0.1) + +@app.get('/video_feed') +def video_feed(): + return StreamingResponse(generate_mjpeg(), media_type='multipart/x-mixed-replace; boundary=frame') + +i2c = board.I2C() # uses board.SCL and board.SDA +tmp117 = adafruit_tmp117.TMP117(i2c) + +i2c3=I2C(3) +try: + sht = adafruit_sht4x.SHT4x(i2c3,0x46) +except: + sht = 0 + +# Do not request the line upfront; request and release on demand +chip = gpiod.Chip('gpiochip0') +chip2 = gpiod.Chip('gpiochip2') +output1 = chip.get_line(12) +output2 = chip.get_line(13) +output3 = chip.get_line(18) +output4 = chip.get_line(19) +output5 = chip.get_line(20) +output6 = chip.get_line(21) +output7 = chip.get_line(22) +output8 = chip.get_line(26) +input1 = chip.get_line(5) +input2 = chip.get_line(6) +input3 = chip.get_line(7) +input4 = chip.get_line(8) +input5 = chip.get_line(27) +input6 = chip.get_line(25) +input7 = chip2.get_line(9) +input8 = chip2.get_line(10) + +def set_output1(): + try: + output1.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output1.set_value(switch_1.value) + output1.release() + except OSError as e: + print(f"Output1 error: {e}") + +def set_output2(): + try: + output2.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output2.set_value(switch_2.value) + output2.release() + except OSError as e: + print(f"Output2 error: {e}") + +def set_output3(): + try: + output3.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output3.set_value(switch_3.value) + output3.release() + except OSError as e: + print(f"Output3 error: {e}") + +def set_output4(): + try: + output4.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output4.set_value(switch_4.value) + output4.release() + except OSError as e: + print(f"Output4 error: {e}") + +def set_output5(): + try: + output5.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output5.set_value(switch_5.value) + output5.release() + except OSError as e: + print(f"Output5 error: {e}") + +def set_output6(): + try: + output6.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output6.set_value(switch_6.value) + output6.release() + except OSError as e: + print(f"Output6 error: {e}") + +def set_output7(): + try: + output7.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output7.set_value(switch_7.value) + output7.release() + except OSError as e: + print(f"Output7 error: {e}") + +def set_output8(): + try: + output8.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_OUT) + output8.set_value(switch_8.value) + output8.release() + except OSError as e: + print(f"Output8 error: {e}") + +def get_input1(): + try: + input1.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input1.get_value(): + input1_indicator.classes('text-green', remove='text-red') + else: + input1_indicator.classes('text-red', remove='text-green') + input1.release() + except OSError as e: + print(f"Input1 error: {e}") + +def get_input2(): + try: + input2.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input2.get_value(): + input2_indicator.classes('text-green', remove='text-red') + else: + input2_indicator.classes('text-red', remove='text-green') + input2.release() + except OSError as e: + print(f"Input2 error: {e}") + +def get_input3(): + try: + input3.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input3.get_value(): + input3_indicator.classes('text-green', remove='text-red') + else: + input3_indicator.classes('text-red', remove='text-green') + input3.release() + except OSError as e: + print(f"Input3 error: {e}") + +def get_input4(): + try: + input4.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input4.get_value(): + input4_indicator.classes('text-green', remove='text-red') + else: + input4_indicator.classes('text-red', remove='text-green') + input4.release() + except OSError as e: + print(f"Input4 error: {e}") + +def get_input5(): + try: + input5.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input5.get_value(): + input5_indicator.classes('text-green', remove='text-red') + else: + input5_indicator.classes('text-red', remove='text-green') + input5.release() + except OSError as e: + print(f"Input5 error: {e}") + +def get_input6(): + try: + input6.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input6.get_value(): + input6_indicator.classes('text-green', remove='text-red') + else: + input6_indicator.classes('text-red', remove='text-green') + input6.release() + except OSError as e: + print(f"Input6 error: {e}") + +def get_input7(): + try: + input7.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input7.get_value(): + input7_indicator.classes('text-green', remove='text-red') + else: + input7_indicator.classes('text-red', remove='text-green') + input7.release() + except OSError as e: + print(f"Input7 error: {e}") + +def get_input8(): + try: + input8.request(consumer='nicegui', type=gpiod.LINE_REQ_DIR_IN) + if input8.get_value(): + input8_indicator.classes('text-green', remove='text-red') + else: + input8_indicator.classes('text-red', remove='text-green') + input8.release() + except OSError as e: + print(f"Input8 error: {e}") + +atexit.register(lambda: output1.release()) +atexit.register(lambda: output2.release()) +atexit.register(lambda: output3.release()) +atexit.register(lambda: output4.release()) +atexit.register(lambda: output5.release()) +atexit.register(lambda: output6.release()) +atexit.register(lambda: output7.release()) +atexit.register(lambda: output8.release()) +atexit.register(lambda: input1.release()) +atexit.register(lambda: input2.release()) +atexit.register(lambda: input3.release()) +atexit.register(lambda: input4.release()) +atexit.register(lambda: input5.release()) +atexit.register(lambda: input6.release()) +atexit.register(lambda: input7.release()) +atexit.register(lambda: input8.release()) + +ui.markdown('#zeroPLC') +ui.markdown('##24V Outputs') +with ui.row(): + switch_1 = ui.switch('Output 1', on_change=set_output1) + switch_2 = ui.switch('Output 2', on_change=set_output2) + switch_3 = ui.switch('Output 3', on_change=set_output3) + switch_4 = ui.switch('Output 4', on_change=set_output4) + switch_5 = ui.switch('Output 5', on_change=set_output5) + switch_6 = ui.switch('Output 6', on_change=set_output6) + switch_7 = ui.switch('Output 7', on_change=set_output7) + switch_8 = ui.switch('Output 8', on_change=set_output8) + +ui.markdown('##24V Digital Inputs') +with ui.row(): + input1_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 1') + input2_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 2') + input3_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 3') + input4_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 4') + input5_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 5') + input6_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 6') + input7_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 7') + input8_indicator = ui.icon('fiber_manual_record', size='2em').classes('drop-shadow text-red') + ui.label('Input 8') + ui.timer(0.5, get_input1) + ui.timer(0.5, get_input2) + ui.timer(0.5, get_input3) + ui.timer(0.5, get_input4) + ui.timer(0.5, get_input5) + ui.timer(0.5, get_input6) + ui.timer(0.5, get_input7) + ui.timer(0.5, get_input8) + +table_rows = [ + {'Input': str(i + 1), 'Voltage': 0.0} for i in range(8) +] + +# Example function to update voltages +def get_analog_inputs(): + value = [0] * 8 + with open('/sys/bus/iio/devices/iio:device1/in_voltage0_raw', 'r') as f: + value[0]=int(f.read())*3/500 + with open('/sys/bus/iio/devices/iio:device1/in_voltage1_raw', 'r') as f: + value[1]=int(f.read())*3/500 + with open('/sys/bus/iio/devices/iio:device1/in_voltage2_raw', 'r') as f: + value[2]=int(f.read())*3/500 + with open('/sys/bus/iio/devices/iio:device1/in_voltage3_raw', 'r') as f: + value[3]=int(f.read())*3/500 + with open('/sys/bus/iio/devices/iio:device0/in_voltage0_raw', 'r') as f: + value[4]=int(f.read())*3/500 + with open('/sys/bus/iio/devices/iio:device0/in_voltage1_raw', 'r') as f: + value[5]=int(f.read())*3/500 + with open('/sys/bus/iio/devices/iio:device0/in_voltage2_raw', 'r') as f: + value[6]=int(f.read())*3/500 + with open('/sys/bus/iio/devices/iio:device0/in_voltage3_raw', 'r') as f: + value[7]=int(f.read())*3/500 + for i in range(8): + table_rows[i]['Voltage'] = value[i] + table.rows = table_rows + table.update() + +ui.markdown('##10V Analog Inputs') +with ui.row(): + # Create the table + table = ui.table( + columns=[ + {'name': 'Input', 'label': 'Input', 'field': 'Input'}, + {'name': 'Voltage', 'label': 'Voltage', 'field': 'Voltage'}, + ], + rows=table_rows, +) + ui.timer(0.5, get_analog_inputs) + +ui.markdown('##Communication') +ui.markdown('####Onewire') +def get_onewire(): + try: + with open('/sys/bus/w1/devices/28-ca795e1e64ff/temperature', 'r') as f: + value=int(f.read())/1000 + onewirelabel.set_text("DS18B20 onewire sensor: %.2f °C"%value) + except: + onewirelabel.set_text("not connected") + +with ui.row(): + onewirelabel = ui.label() + ui.timer(1, get_onewire) + +ui.markdown('####I2C') +with ui.row(): + tmp117label = ui.label() + ui.timer(1, lambda: tmp117label.set_text("Onboard TMP117 temperature: %.2f °C"%tmp117.temperature)) + +ui.markdown('####Differential I2C') +def get_diffi2c(): + if sht == 0: + sht40label.set_text("not connected") + else: + temperature, relative_humidity = sht.measurements + sht40label.set_text("SHT40 sensor: %.2f °C %0.1f %%"%(temperature, relative_humidity)) + + +with ui.row(): + sht40label = ui.label() + ui.timer(1, get_diffi2c) + +app.add_static_files('/static', 'static') + +ui.query("body").style( + "background-image: url('/static/zeroplc.jpg');" + "background-size: contain;" + "background-position: center;" + "background-repeat: no-repeat;" +) + +def main(): + try: + init_camera() + camera_connected = 1 + except: + camera_connected = 0 + ui.markdown('####Camera') + with ui.row().classes('w-full justify-left'): + if camera_connected != 0: + ui.html(''' +
+ +
+ ''') + else: + ui.html('

No camera connected

') + ui.run(reload=False) + +if __name__ == '__main__': + main() + diff --git a/zeroPLCgui/static/zeroplc.jpg b/zeroPLCgui/static/zeroplc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e08856530fe4cbf01fdd1c8edc56a9d0631906eb GIT binary patch literal 99284 zcmeFZcU)81)-Ze$LkFcxQv(9hAwYm2U_z77#89LQgwT5c1$8DyV2~!#1Bi48O+bnu zI${Co9Yn;25Q=4_=!i4pw}U!!pZA%2pXa^bKi}{7-K9BapMBO|d+oJX+j}Q`dGzHu z#A|MfH-%s@7-R-dXsM=- z)>YHiRYM_B8oC=mFH9O=UT_cjMMj3{s;Y*NRXn{zy+|s=&|uZmo?)se z6*W~z@5t#ePhub`66rKRCPjK8PX`BukabV%OYIQX1!ZQnsuXeuB{EQ7$`P<_6dFN7YN}|e zs3`;SMXO5z8WG+;x&&j>Zxq0jzSK8XPn|lYa!NxbG{RREg~4D{)znqh)s+E;GC3wB z((|-(2>IZ53dSTdF~UDA(myl=$)xD%6&e+(F9rJl%2;rimDQhw|5gUU!Ax#mM1ODHogzuy z$6L)y3$3iLY#sjlv=?4_xurmRgQp|rF$wbj(MJipVyhma#ZLx?0M9Y9&d9}w~M z#;6lfXp}Nh4ehC{>8Y-z?1k1rE30Xt)zsB|yu7?MQQzAii|_|(2TG`FwstbkT~dq#R1dq$E# zvp=oR?z{CVs;TR$0nWf^b*)0Z{e5EoCsd{#?M$ATKN)lz^UWq~N#Wm0LH@`cjnwrd zGWAz{6_-+k-&c>@E-~M z|4#ycElo%vAj>%g79L+-!W;2MMkj3u$4v2-CSY9#LGa=rVlWwjg`nV&$OytwL!_gV zGm>outju5#7jys;^(2zRtZYr~m1E|c*1O32+)y#7kFa|uA*o?jFAf2oNfQPY;}{I z0JFBe>O(x4k#pKS_rjiNUHms`OKh&QB{GHzqoZyqZ!PZAyyv?327g{roK9)+u8T9C za|t1pw_OiD#d9x0TQTg32Ib%Ahh6XYk<6hN42hJ5iu&!NCj(Ps=6$cajDPywXRRSW z>Y+vfL$*CL09`&JlVMSpBbBq*E|pUGqAf(+2V6w|uX|)o3JZGwDT17;#2}tKqa0mU z5L%q}H1yK+Iftl@{cPkXJ}>lSHy#i5R$aaBIOw7CQ&1LTpWV!GL|=;!-m$GMe%i~d z-5Ut@IuLB?UF`oA1IXu241rv+8^b>vIO%@ac>K&AU3VwM!YEo-wjwrY{?Yo@yY~U7 z&yAc*^?&k-N8iBJ4THZNh1Sc?zGz|jrf+6AwwdLInZ3jK^wdnn1YdVf56~U)gcmnL z#1WML9Vfd?6oOSeAl8hqkh6s?n(tF2KKX6EvkEPbuqq3CxlaRgPgj;$7~0ck)SlH~ zG)@|v@X}|ETHLyt9g6b4tV|r6>IfV3ovxRiYNtJNMUm+f=k(XkOFVp#qTCzo(6*?g zDD_r$<)(Pf+k%7_S^pcJMAF=P3-a&MtR6ho&Mo%Q;r=v{ESPDeQyE?{bK9bRA}Ml^ z0lg934V!0Uf19Pl@ViSUmYWdMXo(wW?nFoZmOPC#_wcHywXIvuQ$3Q}ygywOZei~LU_(|@G*6vtxKk}l_F{_dIm&$j8Wljinw%#h-{^QoEsB79e)PMy& z+7KU_{F+>YtmJ{x$#c3{;zC7N7Yc+{3|AJTgK*xq@p?$z{1>t!91i5bKPs6ze(bG3iwXLo=l{t^)cO;lEOT5IV z60!+c4RO|vP7=nyyp_h%cc^snu0=&(GA+2*$@#;T?e(%8GG=3HSU#$x-o<&XeR(4~ zjsHy7>dK3jkB=J9ekMQlTAqFJQFs0MG5tz-MXjO6bibG7Y*4AMmj=A;L90_cisaz^ zM0;--5b(XQ8~==H^e|~8DM>DP!lUog9CXN{Q)SO+bJZBn0Uu+r7+e@RDp->rC zEvpQDQG|*Zwe9Zo<2kXJnmXTtoTWZs{FN&=LJEv2e>ad_IGyR3Sr58lg}D%_g41aQ|IFdrRn79%f-=k8+|F+ z!kH6Q0lwx|LH(9bT5?^tUVn}rb?0+jTz`>o`Tk5y!OHz-Zrk+YNb|ylQrw8vU_!^( zKxE1C;(X??|0cKF1xD;u!=AdcwUuXkuKStnPPuY+qfaB(?U2r+cFo*2>CC3NhTpsJ zr{ggjNo965^WG}g9kdTd&T9vrexhyp{J)P%B3bXZh(tLXI-!Ew--wSg(WAB?5*s}f zHHz`+Yjp<7i(G+vJ_fT73Nu}ytE$;B56}Ab0r}!-&>ayKEG1R zfZkq+i-wJ84^}#^_S9^PtSo(U8)2)XPU-qSQHePu<}B!(jihtLl?U`y4WtphntKjM zYEL-K>jzjR_J$nvyW^$JZQ9gnGohWR$@2?&=|g$y(lt6fba}o|Kt_%s=?YQ zV;_1;f16C&7++?HJz`vPS+!hQbJkrc33=>;!Z(QrJ;n2pB`pGj%{n_`voiyT8<_r0aXeiCq6pFJL)WiBXZM<;L!rJXXcm%m*gHhp(vH!XdGarQ#OsT4M~ z*ZB!0Q<^ELG0j2QMb9+*J`1}KRTCj+U#?gf#+xbF^<<&?$_k(N>Q#2AdMmilM9ICv$Qu9Gr)h9g+94v**TlgTa-76m@< zfl(#A=nVQkF3pKc-h0(mG)#2H*JL|Vs0r#7oK&eQ?W>B$InB!1t<#EObB%4TLgT4K z>&~W;YTZLhgCP=SL9>{ZVPyOP`|DGOvQQR;I3c-gd6Dtt{$8!{42@}%?ujw4%J_)k zR1)U>bt4CsfN~)f5~6^`iWro~xb8?*lrH)ySJa|@oN&Tx4SVZM(JlYbqBM8R3PX3T zDr&-w=iRdC?d!UCPNyC#ep$;9FWT6P*E40fyD4I_OZ~)IYR$E5^<|?E`dDV*y!)H% z9ovMb7nS`63ld(wm3{f1sq{QG{Hp0*FF%vtH7{%#o}f zBXz51C)|E-P-%_XH{zB&bPZMauBW4C!g$z^JiL<4Jur73;HYJe;jpOo)6m|-=zvCI%xwpW(9Xi@)q>)e^pHFpB)s79_tU%o~C z?gQ?fx+{hBx*+~QT5@{iLYWv_U0PPx<45|YDz{E6A1n2`R1jHoPx;{BYD{3k;QhSZ zG0UL7=2ne9nbr03?#kiz)y{VgC?UPg=@-k#EWvWKN_UB1Cnqfj$+7bhDgrL2^mw6d z&C$|RnO9Eb=xz24cY4!a;pe9}-;ZFI1D$_mBs>}5zT=$j8a@43wSHoGYiV&pfoPtM z%96tw&kQm)mQ=jarzVcNX(u_*+J#a3c44mXdp+e}G_u!u*PG(J>a< zspOHB5h*jJf?pZ0YaeZ{Jj|qt(T2P7HVUWS#BMQE;cEDjfi&kw>Uh%n?`IaKn?(kF zx>-wF@HM{4B0q&VCx(`vl{+=~JoAK(YII}ZiQ$lf zbbU7Kg1KoLEB#LXzJtrpAt*(Q+^PW*sGU_LJCa(#DTETSBAQ~Bghq!kinE;y#G=;Q zS6w!4EF`<>_6;#ooTtZ$wEI8f)+WYW7NwF2@!bA~6<*o4E;?h3^F%5C$Tycn^@heDdtGhCoKcIjm1wk`Ir#vr7eWC8P8P4&4x3n#91=7^?BvXU^1imvt|@(NWvc$Q zSo~0?O{U+pT(AhY>8#mg{aqfjSrxlg(-(^^cjC}?s~e0DA^G(&^zbZaUYqi~TETow z9%?|cN%TQy>{AW*d5fsGrH`bC@ijrhXr7EEde%cCiq>5nl%tThk)K`=bH#O|r)6rc zCnC@peND)HIOgMaBXLrcqx&-kES*NI)9?Ql6la4D5mR*L)h86skIz4$OXldbv?i!V6!ra1RKTcZRldN`C z;pfcYVD(zsg(9+R?6P?*T|T6d&$&$0SK4SEYR~BNyJnrA*JJ*1-_1~$8eII@$yVex z>?u&P%Dh%Mwgvf}a|nl|DrM*KVcCV$7!^ck>edtDXESppL)n%4+iP! zeWD6h;`QQn4)yUa8BMgkD9Qzo8RR3iywpZ=2Au~NV{jhxdH&tVQJtDeda4{TCE6?P zq(QjM;JS}yXXKX39AUj7Cdz*1y774Z1^GBpZc}x31boSmlh%hCe38MfdxLSa@bNX7 z?$ZU~w5@aRLLLoy$1|?+J0iEkM*-UE|2T{K9&C7x0XBXm7WY02#ctPNf=k^hB zok-QlrB!Lv(i*ZYn_UM)72X?}&z}jvB5Uo&&F8coMvl}bV)n`+_NK7N}J9x z_&OPo%2cW+VAKk4yCxV9b^ynEjx}m+@!kY%g&Y=ex?cYWl`BQ6*4>qbNz+#Lk8ARK z29;*GSYRw(KHe9urMX}p)DOty5C+2CFPzgqY zozTiU9R4BLHG6T9ZYyTfLzFv?Zf0z}N}eW4_N~mZfZJFa?X=5U*yEFI^i2tu1Bah{ z?6@%^PH#Jo$sVjn5&UT>J#oelAJLWT~0ZQbOR#Fau9u9U6l$DV3$IBQ4cELS#D2wNO;zA(4H5Q121JSNRJ1tIJ=#<0bb zP<9;LfluLX@wY1G4X%^{Lz*M0@#YRXC2>=!#`EnS&&9?XyyR?pY|3#JBSl*Lj~>#v zlP$vM1Lvr#Z3}HngoJ}SXsc2yTMXH?Bddh+DA|DnC9O;(>wVZr`Dx~JR9|fwaGB-2 z_6oOsTmumYOb#O4N z61QmwT`YlK9bnot#CVvgRIw&avdnmeZ-}U62@fTZ zl#*cjM+}3utU7Zha>~t+9Z6>~Lsx9nvf#Fi{D5%chx{e&r1+R81UrCjlo7DukdnH? zw1V#d^X6ygk_S(`h&gryrL>6!xRWdp1>*9LSICy8~gQu_LG~ zhImDUl+E|5Qp8bP|@rCz@u! z_@^H$+09+7(^S~qZlHDP$B7@VonZ({l`=b)z|`~Ftz5MLHg0tEANz$t8Krk*@NgTZ z)R|qeFt0FSgdDiSut=zwsX}y$qoiVxi8;uN4mxWJm}{0#W)iHNcS8 z5dFef89Wmc3(0|#1SAAez=JG>g(}5ap^&j4cO%omO2gbrZ^+i!7mN8-?&g%6 zof5CTq({kcZc-zT?Up{6O&%9udMw|Z0SsPFv1G5t0{_aS_YGj)hH?E+G8i{h91l^7 zDT1IVCke(2r$9(6cp?&HMpE%Sw%qyQ>2Cuj@8g*H2mO9NLypciu{#fRqFCthof?uK z7&apPyGQ(5&ECW*AP0JYcTt z@^FN<`v4hW8CZa}12|-|6p$7K?MQ8>3gHB5_&oU8p>!A=0@6S?jP0IE0XybGnz_;FK9_-xd}yL~ii@N*r9_ZD1A}A(`XfYfLC+SwJ16 zsSZqCG(&>4l1UvL#6kZ+9O6Ch7kHoFhRUvx-ijR8`)!oEyL;0E9B>UOf)RWJDM}m| zCCDMFzq=P0hXRm9BMg`x5C~ut=okVjkp>rtlWB<}}# zfnmWV*)QM$RxX~YsbKf#mCCNO`zM)lK~Mats=Q{vDO2E7^ZS6r4ggKxu@No=kVCOF zg*laQpezu)+(H;6PH=d7F%yv;f(ez$Q908&v(4PX_mdi85|`7@3BCcCQ0Ng2? z(qIg&UfsH5)F1)uVzXusOJSKfOfXhZ;x9$+6n8H0J6Y_FmZeH?Geix-F&>z=GzH=n zVhUa`9$k&+UH*P$WL*XY9}d7dZR4hasZ) z`y&Ja?#~NzWSLMPX>+Ojav*q=@?O{gxV|}+#tA|6c%}0_BgzRzm6aK zUyeN38-ZUF_Lg&ED&~$45Cq)A)4_)Z7y<5%dBww7Ge&utDGG}v>eb^(rE_^qmJd1) zodGu{By*mZc7i*7O>Vzdfh%y?SwK|>?w|q`b`I(hmwEk_ znVtst8(VX|d(J-@Z!d%PtQEsx%v3Bg9fHmq0{1Lvj{O=FcDj&Dhhz~pN~Jbt#nK%1 z?1=tqER$D2b(ahaLLPV;U}nJC7E>S_L#iO3$pkV}1W7FyLcSVc%-C)IG=2xr0eJ@n zLcnoQI>cf^C1tcBN(1=hb~<2Qz?=$NvczNK?E0nd@D|J3Q$ZyHDJREj4zVERB(Xd5 zKu;`(;8a20;uOU?tQ@<7Jr`l`1qu5Z{ie5AfR8z)4vYZF4-U-vU>^L9=j9x~PlK=w zm}1LfmUQNaDJ~=n40)at#>u`jv&=y-)e~qFg&Ffwqwd%VA%qmt8;|QvK2y7UPGpPu z_5zLUg$4R1&1)uPXD)1h7m{@Zl)nPYMJ&u)K#ti@i8q|Y=fMuc0x?0}#XwP+AZgCL zB7yVYF*EdDK6Ym+C)lhtUMI&IA0QmYg4aETZ!Ez)Ku8+_$ixt)$P4|WYlGk6e~^K< zv8;&`fbR&8QY;D;7sJ2x@Lf(!`kECbP&G)n%=6bjnM|pii+lp8vLZ$&`+$5Pb~+qk zXV?uqCo}y13CW0yUft6CGETg}ciN=`hhW2QgS7z}2!e?t$XgC3dIwn8H7lwWu*edG z5N2(uVp?mYk?9(^IR+;C9ff&;ZwAiNu}Ps@K?>dt7Lm|bIk8ZHxIk>7z|<3)0GII` zNRaCQ4}<`N2F8p4;TOj2Ku!_|I^}G*$f0NmV<8BaOT?U3Uz-WqW(o(c`T7nKHA{HV zr-VnQn`BrvnoyuDrR+EkEO4XD=E>4Z(igE1sAi@Wyv1-qX+9Xi81w`j-k&`Ij1&d86<=0xRi~I z^%>E3d%Sjf+C^Yw`l>r;BXU$o>a@X%)dv^(r0(PdDM|e~LrMxjjKF+=nKUCHdX^H^ zjJF)OHb{DaH9yA9mVn7(EJqH4e00u$^Qw?me00%^H zkgS0xrgmt~@FB91!27aTvSsB@DV?)hWxjx*@s3wBx^g%I3?Z|ZFUi&Cs)6%wpQazx zwYxaqY?L_d~ zP?#Z%Yw(h8Cj-0ve5W4a7pO-z2J0LowFz_^ct|^!6Q8g){Ndd#mPxG?Sx!9VvP|l$ zm3^G6`wqw2H+m~MW|&Y7?{e@{AfT>0@spYH?*t)s817rApnqT+I{-5oV|Px+A;5^; zmBMm4mXB3{rT~r}c6ucy%?s9`;9S9ybnwc+2wzqGFP$Hsq4Jkr#PtM=u&V@SD|lsa zWJ-lz5nH*UyK>F+dajal1+aK71lERT>@o`>4JP0 zBgZ)a0|XEUH`doraJ;@0y@Lvqc;lPqpAB3BFG0>z&NK7qC3a2iiHj3$D~a@$fLx7y z)9&Epe=w7fNyyE^i-`N(0BgkX}Su3!fjN=NQ%VU zE4S*_D%?W}mmB<7WKU1jmo8nrfiDlfU^$1J))3Mh-4jv7uq8Mmn<5?zwq{u5D4Ab2 zGy^_xXCe$K%rp#qxd{S}n*{>jAp*G!1cDz(J!@4ER0j$Ob_&@i#Hy6GhBLi7j zE9W;cSKo@tmVt3}`bbfO&fVq6cbgKMPfzaYc!zls_2QI1tLr(v-?P;mE;l+(Xmg72 zl<_4#LNXGLj@HgPRe)3tm1iBWc`#_I?)^<4qGW7Vh8Gr059pq^n3?J`Ju{Hk&U68G zA*c__f@jUTFuE%Dn-^)1NRy=*V|+=U)F|h{#Z?*!!2LSKvusBf9Rab$O&HqB%Ir4SEg!g z8!T~BA*3Reh-o9K3)h;&XMis7aKH-i=pe>Xm@b^@ix7242(ZYR-t}vZVK;&|-Egvm zuA1k{N_=eskiG(J==xA!pYx$3xe_r$M2jk`Gj+OC!FO(sB{d#3p3l7|hF)2J?epsp zW18WDdfu)tL9QK`wY6@ob&NY;dkycag{0t8W-weUgZG7y)fAN2eew7d2OllV2dfXt zGyFij10n*m2LOhKgJ2_x1zrrW1(HVhvvxwjT!rMwiyO6+)vNY9XginDV~2e?UGam9 zcgbpNuGUvRDBllE_mb|&yCB)@C*D-JIxwAvE?Ur?yTsPD3U=thQnY091_Ew$S5N!y~ zOUgwLk}Sc-3z<7Ow;?jhvX`hlaW}*RpJ;Ha%5{mtDUvEPlQ}wv7_i}Yu=RLILR*?% z?sp>|*R(bb&lG8r4~))#+7N&1aIC|dX~LG51qU;^W@beI2+Xw^oC-b^tb@>GQbkU= zkfdY)&Nf+9D6DAm!yP8l4v6g0C%-DQ#f&iq0@i5tLMw| zf^zAW_z$kj{qI|>$XX$K5rekBKDw0^>^eNDot8|7Pm5xw0&(`ajrm;<>rSCAv zyudM?MFN;tWQMxSwGgsfU+h?~!G(gFq7%nLncv&Xb>Un3sA`7sNpK506Og_5AsaWrSTG11Biwf;Qq z3*=su-0zdl4726K0UrbWbTMx^j1A+#54h!G2{dIZ z%AaQQ+Xhzu4d7^{1*caX5w}Uf&qJ#e=4<@|1|HQ{zx7&~DNFkh^-}w)eL>sVFA%vy z;@;q@M~Z#Dt!N#+8icrm6YpPSt2Aq=IVzB424fyfD@7kGE%?ql1eqSzp}!#2SY}H3@+IDjN@#gJ zJvFN-vuqmsc3^g3c=en>(e(p*D+cjH*Q!P~-}K6MWe-Tl8*z%f*nf zTT!F!RlY}0l;31EobtMh7qS;yYJstUd_EmFm^-AZw@N#PJ@d<7@@AGwMle5VE=er7 z)?HN9h{?+o8=rUakE-$vq`7G9b7(~k%f`Aaw_h%Fu$UQb`0VmTjsiAoaNU}zelymk zTXG;E;q4adWH!Pt(;deb@A`xny=y<0>JDR9Fq}sA5L1H|Tyo`_Gsd6zXr#`yaWx_K zD&RakWz7_v)EVjrHBccheh&Hlmh;L!E;5aimTC(_q}u^+SApxx%_=S5-}T|YvJ0O4 z3m+{VLdEo?I+#~nR~cOLruFBXzgF)#99sWsx&!@_PU3RkJKgBz)w_2fiWxFvk7i*0 z`}o5aH|>?!A-FByfQwAUeFvgNu6Unw$>yG;G45dBvaZptBn^!kVKazoZeBpyD?i_Q zx7Wt5$*aOL-kiqIIS_C`l+P!iktW?D+GW0}SbBvguqxCWXA%9cDmHhdhh z|Cdede`6TBPqy|S#8hcMkTD*{E6Z#YfG=(tHqD>Z`MB?#=#~YD;E)*Os#>0{=u_9q zk{cfCLhA7H{FUO;v6Ophjxp;(sJYE!M}rjanX!d)PLs@ zxR}a|Lzt$a22Z+-dBv+Xa)vMJU1xNw;duzcN;4$LFyjlIWv;Vmo-(^RwRB&rgGC(( zB8r%%6hR9hUJISO)p~jb!KWmoKuqzuWDwP>>ts@5bkgPZ+Sr@xk&1WM^b;3mgd3-D zDgAcztP7&)g3?W_nk~)8IWWn(BE8L1TW-4CG6Z38=;Hj`XSJHTr%sgecYHE!tygVH zVgmbAe{|>13`Fb>aZCzueJwYw#dGlVq*f|XK7DDio}kclZDho9$vm%2xV2=aZNTk` zYlx%9h}iZY^C(qOe~CX_4`QeZ`p$h-x3BDr-W0uARd9WtNI1JuzRjuVv*6fw08%e@_G-zDYy+?e!1W8Wj>jQVBs} zsb(b>8vA4}IA&DN*7<4<-HB-KHH2054spm>9;ZG#GB-9g{JViOdE_UZnlpQj2FMDaHN{C zoYzoV!XI{Iyon9Hb!$!JA=u8hqc$x)?!mEnY^(hrt?pCkLZldKQt%LM^ev32LhdZ0@)%jKqxY*uxT3%c{kuzBrU?1Sa=Z#;+ zY<#%Y`2k%obrBYTBPh^fDr<0TRr+5SM}NmJH9>{2Aqg`;)JQBy25SkE}#v!kaF0+1H0{M^8_e zmrl}CGAwAErsn;Dw1Z)*z0R&H)n{D&t{z$5-mP-5`<;Q0M@CNO7;!)2=itwgoaMZY zcGOnOt_d3)TdTg=-|_dYj#WdnfhdQo3-6~^46@SWhJ$DW;!vg=CgYAIiXnpeMb0F! z;CA8dE1i0b@>Ku3&A2Bk6ZI4BCv+K%qACNEp?dEgFS@&LRdlPY`h!GdQ%Vnx#bU2I zHK7|pnnrFmZ_2DYj|fNb`)1xu`{84I@Rh*A^hO+^xZZ1MBM`A`**EB4a0fEX`+*`{ z!YV#mxI|!0h5llTgOwT*Lm^|OB ze|@ zRq^~{ujpyL8;?~Y>lY%|`ZJfwRaHYTXBRe?@qIdnZRiM5b`&iUC3-&bA-jSrRW?}G zn08o%F_F3aL)!L-TM?F~9$xAfM7^F5p9HDUhvN0Kc;JY9cL4jpVuOhUs{sLS7}JYG74lDL54PmeTEb7= zHrV#kN@*HP%b3znLysAp>(~s5W(qUlsLQOz|6AbqrshGr)*9$LakQK)^Qvyw%Ar5ER{yT2zo}ytC?uzO4q+(EJ zcegVsTU`qK8@m6x3OR=P35BUrj^gYyq^I-*RAcildWfQnv(5ueahFfi| zF~ti5L&sl_fD@{J7f^)@Ku(^+YH{U7!=3hn$c2I7s3egnB z^tr<_l>axxn1{UoAAuji&qL8*TMhiE70wDn>;gXrh3^7efZ%tkEPTBD0+J|JL8O!# zSgv3_!h~=((wc_CGH9c8@Y_*#@M}{T3;d7%{POmZs2nNrSBase2^-dCA)5CSY>uo3 z&`#gQi>b-GGG4hp&zs%iNYm5?%dwbhLG20Lxzy38@)udoVM?@ASDyCQ6rXaK(oEXh zFMKNG#7KVPM0n?NXI=i2z-*f4`wXv%W=fqsm{gdunIFQN)R-EfE0toa7xMEnS09sGGisGt zZoa061ku-%#BZ6E+%|t0T9>e8y&Ph9KjHMqwzdx8s^l|;dwr7*-7>=VdqekR)rmyK z`fwg53CUP-Ij*p{$%`fWG#*p(^rpx8cvZztD@`PG$uFUD_8#&%<-Ij$RpGyP!Rq?4 z*uDl!6%X&8;p@fy9tpRLB|?Ry61M$9Da)aP_o*+e{k#SKh_BHvL%lz$XQiHz9H?j7 z&zCN=Z<#K2>AuqHoA7|nScMuLNwK`4lSej3EOy=7Ei`^2?X~hlHauT@Zh}Qu(Z0&; z;k&O#ZLMrkvo$@wRI{89$F){i8t;ELRmeOf%C*PUF!%(AP8REp6QXtI1K|x0-V?hj z&l#4QjXtTt@vKH0or~1I;l}egD}5RZ#5rUdy+Akl?+lv&A54`rZ=MU>; z-EhHMDVmmcPI?`lHsj6$nZPGzHBgvK2G%3I-O z$pq>IgU)u3V7evzX~lTpS$5V0Z}AOth5U}nbExcYvGtcX+`{_@_|>0Uc8KE4CF}*? zo9usGc~-J6k9WStgy(|~?gww}8~b?1v(oKM4z1s-g;e$VMJc~W9cqy=(CJ%W^TZq2S(>?c-Ydia&M5 z()_(6i-}+P`s5?hIa!ed6Gu(HKo=_`r;PiZm!5N`n2u|S%+83v=Rm2KhI-W*5ZAp9 z-o@WFJ$X4-cCVVOY}6H20z#YfyiqLOTYJIi2R5VF%1CW7qLJKzb<6?y%SY-@%mSnl z+V}@7FIdKR;neWu;}QEJJI+b}7+cGRs$Ay0R`>p#-R)J%cFD)#`Kx8PX_JF*IDPu$ zEz)$I9VE0Tbk4-*@~#d6Q5^sfbkSyqTjzp^)ez=1{d3`vJa1+oQdL>*2l9 zzlEUBOc>bJ-`O`go@ur<$5EALl9$^W<#^e9Hllfv&B@8h$W~6WbCN2)XoUPZgX^_5 z^}V^7qKD@2$ZsLO_A+gPe_TTy+=FR8G+h2k`c2NlDPs-JLlH(cA`Dhn%;lSM;_LLQ ze1!H6yW5iG!3xjb6WUE2|LFJmP;<4aQs-jtp0fMv`kHSn@G_C{)^96Ra@K#)#V%fU zz~89!IWJJB-mPTT zY}sL=NnKNvPi7DFL1@QbHu`~<{%rIaGE&=_U}Vqn1rofx9`)e8Zsgl$+L*yuTB(uj zQI+ncBzqY-ffyrFbJ#KIfg#<1o?{Nur3-4#F`GP=&r;}eG!1MACHT2&N=S+0o zVt1WYBn z?mU_=PFoPYktF`WLh^Qh!f$e+c5kVRmVTsNe+a)zus_s!GJb-7;Bi4s+vvoUEe{nL z+kdb$Wm$nyl|=OueHKt>kTv+LJ^yPYl&vq}M_=$=PwVO`{Zx1&U(1~|&tk?IkbbnS zgw3?S=EomP4XRf6KHm7j-~YuTt$?#}n~qC6TG1cCVWp|sPn5L4kriY2@Nt#ix*I-Q zUg>XGBSmLTZDQP#u?^icw*?CpD+2RG{ME>wkXQAyPDj*EImfvs!HPES2TMA*0ik z(n6CF(xTfRplS0=B$Ik`HrPfzm;l#=~95Eq&jUDaLtBA7<^4}j`h z(#FR%W`a5~+zD zD{Kk(J$6j|nu_B28Npiq`r(1gS(@h`=xZMDdC+k^4o!x0wVFxZ9)5ThoA7y8$xT9r zSoN_#7L7jF?g=`=Rb^dqPCJO*G8NUY;E(T7d{syN!@5Qxq4c(5y}H;V9!>WjR>!m? z)TUQb8}gLwaN@neRh4w@#__k+tzk!5giO3qj}=M}!BZ^`3aag1oK0PK-gFo^ZYR~E ztH2?u$G@i%^$NAG%te+(*SoK!;p|b?gkRY;58b)@_=vH=`lAA+gdpA%)*KB}A|)N! zU1jgZb-zG|Ie2Q!Pt|f(Uku$F;Gui-<{nGk+k5}$s;gVU?vZX_aG))kGg`z%YP5~V zuU|Jf{s(G2-R1lV;g9Q5Ja>X_EPDTz(y`+dbDfM1QpG-X^DLFyJX`qI9DFD_x>SBb*U|s{@0x-`$Bx=kk_~+# zZ7x(*xk~p_M3c`bT*OEdjx=S;j=z{H-lji$-#u%!9j28L$sVb4LAV4cMxIlyBt|1& zbWupilkiac(*w4P98*DE&9O=)pTuC*zEP63KC_e8ewvTl5KMF<9Y2qdbuq>NLUic4 zp7o~X%*s;l;guoHFx}^_>dKkwea)|YtmJh2`};))d0kg=EbGNKrzxW+7b3Ou3AnJz z%iPo-*ZV%C+2h{kTGj#B-luz{^J?qiGeWjYeg%)p&rQL$tlrWJ$~OJx&K7!IKLcG-h5-`R#4~*8JBr;n8QX-IpFK8_};T$^Y!BIDfkYk1m zc#i3}m8WdQsE4;FD3>;BK z^IiLG_(rKKSAv6Mb`Ha}H1EN*gRL;H{eT$Id*tm&&ON-k;+rZ7@662tk($E~KL26k z`>r1ErJ-EBP5KJHqbI!$dr+BNp(M?a^`EBpIJq?4hF@t8@V#$W|JGhLk?vyNem`=k z0{>csrLRr5`Yc=7-Cy3)?T>bzJil4k;@x*e;B(i+#dv&YO#7jLh@;jwhOVa1qH!u` zOR_{YOA`}JM08eE$M^T2_+T`Dfu*MKh6!J2#|p0+>Y?;)j|GuXF~9 zMY@g9DT40x&$-zVNxdw3@3RvUi;nFv?9WIrpMCYq8+S(Ql<~#F{Xe{%w~KF0AQ+*p zX$IxL%x}Fy#s&uK`kBn+qI(rp9}fHgj37EHJFDkqLT9+qDY~HcERE;)^rz36Hehs| z?~kV?&scV!Oy(%UxqJB#tRv*xB|?uKJd`qf#N?{AgF|HG(=^FLerj#z--h+k_AHY4o|rHP4>yI%99UeO7zVKA7;>p@H9y=3Z9!by_hoQYL?a zD0Be@ju$S?uV=Hw#mEAgTCd*ksuH<==YCOMt|0X~vVkyQnIC>kErVO@r%7T^z`NW@ z@o>f@e~^os<>4ZcUtiMoFUuFi+)^y1n!27T7fnm|%4&1s%vW&8vf3mcFW*lCuXR0x zTmvtLABxu#H8E33db&I5@x%J^B&vgnmEs|IuzLAf);gM2TKRHgTl3=rvMkwmQP!Qv zu_Wp&#pk0}bN-dhCd={dvES`2K5xCPE`456tK9gTYT3_reV30kKd=nB@kl7mS6=0m z>zbl&_x8nG(Z8M=u9Y54#%LYSnaMe%n_5!_-IMGTEf-o^j4to!Gamaj!_?@dscf6w zy?q{T{#SThO{W$ZZ^w={YBj%?^iuS{Jk}L+Lf6kUXDqa`mePf`e*1&Cq@O>Do*!u9 zcr`ogfP(MxW9|m_Kz#ZPrzmAJoZsD9W-&fYKn3IUgQ?4Wu3Dv5)V$FF2_I^uCj~tsVJF3d{U2Dy+E^qXm_|srBxkvi!frNIs7SN>$A(-20I57iHD+?Y|=`1Q)+)yHOkJXGPgO?>7fgnqS(Y<*H% zPEpky-ui!-`s%o-y5Mg_P(qLp5CQ4#ZjgngYhjlT=?3YLP^6n>>26p;SUOcgX<51v z1f)wq+V}eW-nxJ7=kC4t%*>hj&YW{*&S}BPgZC?QQ#_Zbd7Y5;`Sj-_q?KI+8e3{- z-^=xM?i~mo;rNY{#()a_on&b~81=zQKJ`yCt}^Cm8TnGhgZ_Ec5pK-EZegr7%MDhn zXFJ7^^@4?dJK;dPkP|*W&&Fcfx=F_qo^y=IJ~GTIS8QXhV7h36-OQB}_XJf*CVDbj zCEXtusJ5%-{r%kzs};O?B~G%?q|~vcXWVTzu9}WnzUwdYKJdY}TunU-!IT^ve7_X0 zB^U<5=0Y6sqhZ$1ch9>&)h#sh2=}$7^yEGA^5W0pG|`NiV5?CmYKH0zYm-WOfSjKR zybCvu7D|jLDX~Z>;t^-!V%t%Bu4t?sE#?s6U7yl79R8-3!HlXrLuo zfi$1Tw|8r_av65qM?;AUKIRGe;+Dlk97EqkMm?A|T^DDs25V4rb6Hp6VCMBdscn`> ze+#xvlKKMC9Vls9QSP%d+YU|7CJ6 z_B|#P)erHEsU@-HXI`hIO16=#J#wY>KU`9%jBojtVk~A_=A$9XlxYZc-;cg=&^ET5 zn4?Zz#rmY>dB2M9IM+H$;`dKtN(xvdO&~Ys1Obc291ZT;!XYEPcRo3pB|*O)^24Mo z>Zka+OyHC5eeYLP2&EHR1nR$`GKZgNrJvc@O$y!wk%1@3x67~POIDS=l8=dF<_7QL zSTw^%^raGnT2$CEq~sa0u12-&YeKW=+I2~?YI%9BOZ`jNts!ewYJvgu*YgbPg~4%d zaIfozeIF!?j`FEQMab7o0T+%nAC?L83LmBO#O4oEjj|mMyi<~_+aHh%!>**+n{ne) zLwJU&<_cDsn1z+;8KPk~y7-8*RflHxB;u?J49N5Kd})uSq4I6D9eEvFA|qQgv#sPL+C4c-bQ-|V;esAUZ}AJF#0k)AGvN$ z!Ou!8=14&Mz@AR901PWEKU-DqV3)vBughQPIaDLeTt;{^58cpyruTwC|%52yVhlh&-tuvfc*(&Dk&>OBwnbiI2mb6?)GW5J># zOeLo%M6!0llFdoV?cUQioSC*3M-KQ3<`0VyKhWtj@`2%Xf(&l54p-P z*6aV8$K2Pd`#C1blnjHRg`wpI2fLvZiGYufq2YM`>W=k74nqw2_m>o1>8*OVEU76; z1CeDZB8oCYA=N>MRpq9TS0ZY?Xj>bDx25M2UfcOhnIfq+`z@0?qe}NLZhr3!s)5WyFOaj|>bu}7A%HZPJ|Xv^6ri-I%9;<8my zdnzy$Y8N5vk2)BTdG?YQW}-Hb&e!!BziGH0CCn;1a`0EQ4zHE7N@Bla{{heV6{=`U zZLjs7glXBZ&oo%75w!Q-o#YE@MP+d2;PuW+y&#{8_Tt@ZSellib1UKJ`^W!Vxp|n5 z1vuCS$&eIa`)3zL))!ZX(n3W!rpYLu%ahdlbSfTlW8AlB@t^3&3kfnW9EP3Es<(H| z%i=O;U~)g^2ZbVdJaax^uiInF5)BL${n=vQKS!L^g^%S-PJLZ-39I7#%JS_+drH#? zP6Krms5#NIB)oLejW)Tw`sPKtuRjLQ^8X_SN6SSe_z zRFy9ac)k}`;=AuCO77lcUjN0w>{)0Q_zAc>DU}~~N{Uzsv&4)I4~tRloa!Ta5f)m+ ziNh_Njz4WSrwL>nVGcJ!zJ}-Omo$cgmHF-fQYvXx5vq8rD-21%!$MEA*`(w+Vme%U zB+m##k2F>P=uGSCOokDi#B?4cB=qR`y9FSEng{5!Dykc8H`gwg^(Ldg zD_i4!4OunAk?$iW$@`5vIro(-`T-BWw+}x@uEovH+BVAmW-sidq0Ct%HT+zDtGw>1TDuAj$ZqHxJjtlCPOUq+9$U-%8CoB_y4wb5j~@a98#shyUx zWpfAD+EPY}eUO4Mfq7*!yl}j`u=39g0aewcQok0f+k15P`pkr+eK4-fUyN_fHUC&q z``7Q*(09r;C+(cCi<(I|14m-AAeu}vWg6Q_5CI=!N+1@(YA+YHo*UEClU`7{pkca> zD7~2BEh=KPOnkTD6q|HOdN7#z#uioTP&XV$o8k@?TM;gq&@C)XyleIfKhNaoeEKu!r zKLm6}@IRgT3V7RpXd>}^l%@z1Y>lM{0z2eDv`27?=?%`UCgVi}>>qRD%~FuzUW7y_ zEd|W=dYgaYoxNI_{uc?xy8~t|SX>;JY*gr_rwz7c(yPoQd)5;pK&wekE*vLHZPmye z5@ESWTlAUsN!O=>H+9W5vGMM;LMN>6b7`L0#!TZEH+(2+NMUGJXWwCdc9P=ck_fK{ zWJh4}TAEz0pBCus?KpvjW^UlM@@RK6 z3Hpmse4OFQ^kH%%qebnb_w)V4AG|GRVL>GaRkx3Bl+db@yCG%fMTrF}r!aDcGb4HL zkk29JJGe42ntw59+_{I7o9ZGQWpIN(O<*l%J232ChkOjJYhagHt_kC(_#%3iauIwj zTk9b9PR&osC?UPa7xyVCpS~GfAsXu+4e>@@KRrwS zgTAMXb%(z!btRPGjWPdtmIBbYz6<@bX-Mpn0kroR~UtY)-N2TxMcjH^PF)lQ*lHeSp7^ijdA+u!FqLX=fj zl`d(NuYBb$8X^{Gqpop%?vr`0Wxog>#G%Q~o`6&sD2qJ*_x=o6sl9=S5bZ<&Zhcu+qX+{TD-21|Xhu zT|l$=$eE^5wl3vJ|3o5)`KauV^>hj*RdrFsY3KodL2cZm>exRz?XHr2(f4@eeJr^O zL&WnG`%E{}cij|PCHdBO&vz-qFaClDz68kVhPc)S|8HFYq zYQexKtS&+ln(o4KA&;3>>t(z2SJ%9*W#BGUt2R z4aUvvuxX)AhoLW_W%f4C?gjoKDN;#(j1?G`{ zkaQsrX3-*TcwIm3<|Wu#&^CrAxxZi2!cfcWv8lnaVLY>$|5Io0z8f!nq&BiP2dQtv{QXvcpfb+vWk>YQ^ z=(AX&_Y_LFhZH39ag&l#AJ3 zjlUTAGs?qwsX4{I^t94V1U;-ixw%4B$*#s}A(6B}v_F!MnQ|Wo(ETjA%ll%&UyC!F z9`A3Eo)Yf={8^)OKc9OV{H`&$N*2MIj3CpQ7^LQ|yr`nB|dM^b1){~&=Z z9ZA>z3$>u`EM$V(6YE;?zZgt;-^JQ=RdFH?%OY&-4*V-zza&ygJuF8 ztQ2(L-cW0qovjDGn`{$ypu&Nm#HR7g7GOO@cV{8GJG$2jxuC`9Y=WE0?(@;3@zv$R zlOiI!4RSDB2gVvO8;672FBM@ywo()$7AW6U>%FG;%yWW|U$Sa4Csk-m4!@P8wb6WI z=)0y1Yveq7JQ+rY^h=hfW0xT8ehExZn3#4cEofF4V=h>@oFQJRY!{gs^b>B`36TGG z&Z;AY;+G}68K>!my!&K_?tby@Rw38;A-v&_H_hJS!XBsig#Kp_$uxlk7M6AF&B^Gm zw`J_*8ae|5Hjrka-0N@j0$V9bfnYHr^I{gHEX-J;NCWZ~E7UXBB~1rc;UUB31C69wrNZkYH1iV%Qso+X;`Tl=nEk zH^qrW+5HJSwalwE5{T@x-9F-1d-feZGcwnra(339s@v=sjMMS!)N3UE&>J$B%m|}O zppScBxA(#$iLOnZjaL_s>Nj2IXH|*q5)HxsXvx2x_-C^#*M5Ey_lLG4p3PRwyp!zf z?x7`_YmunzJyI{-g8i~x`FY~*!`eK4?;ftscD4a3f7F(S_Hc$u*qcn+MPn@>_E5VH zj?^rLYFq_laDVJ-lde7e1CzB>h}J$&$NljbtU%cLfuR5l8r;G57v79cCq`|gvEt{f zhyG!t>&C-x#0o_TYVhctcext=#VF+YwD+U>&TgXTdFkD}h(V^wQh}ieSNmhQ_MJW_ zbeuJ+e~ZE={&>i(b=%a&b+|LW;GB7$zfDFUf!w=~ra!KL zQE>zudMv4>{xdazs&v+ngwo%fJB|P_cc#|CB4jsQrFeCll(}h8VNAasULamO;`uRm zsJsqCtkC++u~}Dxm4ws?V;LDq9ccBz=dmg>^*%a5RtNEX!!OX1{wnu*kqYsUX8N;D zyN?yCJj!Se;=ZTz-JcFzZSEUczlNWm0b{3$nblOaKSL`!z-lZml2T~DO`l<@h3hXy zpXly_Y|SdZxPv*@xbfTwu0exet;8a|k zYTbpdpKp@k1-!HWImDQ|@m$Em&&yPQQT1I&|H#Pk08anKH?)oF{lE=-$75@AEpYcW z-{)DjvX`$-3fkm6LN~B<2%k1`H}fX7KfPg6Mm%h$*zMrSvT$)xYfsr7&2`Ux>9PQ< z-K8Auj#2OnIHIhl*T;klwjC*FIsUo0`|}$L9rT^ITa@L+XO;0kEx*QsPYb)62r@R3 z{0-3&7aR_h{vMBACxYmb-mf4n@r?T}E?=LpDbG6Pz=USLmBl=1KcPH?Dw>)8e5h~F z==9#8fIp?zx~wQ=MEXfxP1umF*VA04>j0%p|OjH&sd>p`P8U-t9+L&YT$(WdLP8B;@75tG;xiBt58fJa(tjO>-83w-Vq zzP(>yYz&ndn@>rVpVHjt%x#9Y?-3I&wc`>T1>u&Ige`<7yl9`7k{~RrQz6wlIQurE zUR@SstopLuYMe{`FUFmD5pPRT`Sx})+oIPh^(W^BrLv&%d6~4dTil!LWr+~^^69v6 z0_UF41Ga)L6x9@-#AUqD$lgE13$c`SkhEXLsyj_pQdW^jY;RIsGrXB+bJ$R_DQEHl zjzFr!W|pewD!28H889-AsQ6XpOaU1 z5+sQf?9yQ<_ergbGu``gx>`kbtz1gMP2+&Uy)oVM5U_5MLbQ&EW3af){fC3%D&3Hc z;MIpk2isoT(V715wX{1Yd4&ecthAXoY8n88F$*xt2>KV6kQ-n5FYleF~(-35cyNvr|GFFU;PP8c7sV} z`eCqET*tLYJ;V0SbX&a=tMZ*&Nxr!nvRtE<(jtwoz1^j!je?UUIbZIgpb`OOU_1Z^ z3sKDFVz1;R!5);QrvDeV?P|S$^jYmx?~aMoH^3pM=rM-gt7QN%sNZQMENU>odvV#h zNCe=MuorMjhRG*;xKZ;S@C{6pHzXYNECG+nK0Dv*=$mPRH#W?4U^GlQsbxR4!2_32 z{sv;*w$J&++CvIH^?hb>fr2s`XjbUM{mcAf`@a~b)N|nW?cMNt715o5Rh1yZeAV(l zjuL-@L~3HKY6s)e88&Q&7DSt{tlC*4Nl=n7ZN|8t-c2bYq?D*F<`MQ%l1V4-xN<^8ZNj-=mGAZvUOV#&bMfFQ zL}^oY^O0|nTWvt`ja_wKB*ZJG>MY2u@K?G%`daW6j1YRN*qp+!59A?Tpn*|_!{qL@ zg^RHsP1?HgvQVriJr~<(d`)~7B80$v_nNyH6?xy$3`IOUt>p6hT5|lm7zGW5!~Gh+ z>V36=YtWaaDp-1my1^?a%O`1!8!jSI`Bi0m9O*k0XsxB-yOcj}jk)LE*vdKH*zLSw z-Phf4na91q8uP?P)m+PjH9*3`r+)5JY3%RSG$FLOF}n-+d-rF-*AlJ^qNXOgUNb2N z4sJtOdTSFw2lSHMc`>fSLM4-_;}=h%D0!(Om$nDLhho0fO3IW=S)_A8ts#M z*9_UsjZ}gHp+j16HBau-*-4$)29|x2XR1`wCiYVDB5YNdF9r@9Jy;L~wN%Jjcge5R z)t#@LkF|BaK$Mu%9>SWn%OkR;nXPq<%HzqT-bIVkL8OA2SoQHvYT$T78byZs(Pk2AFSi~1v8VQ_ zePaBOjwN+Hs#=8X_5&P*%R&xo{DHD%B8xONpH7R8_Pp-S>muy#ahKg=Yss}9mPci} zuxieo4_wA|?DF)qum%=LSC&y2YTjWP^zV#EzJz-{mAeZfL`o>JiF0~|3Vq%0xtv+~ zixHt&ufv`WtxwwE`opm z8E<&*Bx)$cGdl01epLKH;-^hdGbsCpjhNWyHht`x!(? zm#pGYnoJwH?xjcBFHPXgzRMCX?8#c=?B5N&wnuAKive(H_Nu$m{$?>HGyjQG}yNSQ(F^xz= zwS}9ANnhK%P{H+hVjJ`kkazi|IZbR(iAo&bn>10Z*UxWt=oy`3^Qz{!(ZL6^2|tIa zG>#}V=+MMgg2Ey=>(QsXMqYV`xbpBP>cdVvLn&wLdkpD&$FShE#s}RkR}g$E71y$4 z70Y+Ymx0OiyYFeF>K($HG6hpO0y3?HwdJW&p*sD=k7%UXT`Qx1Lc8hk{200+s8k zC9jN?c_8f^6$55S5iLWK-)OcyOhXX~`maqPr8S6uF#sPtjS`yXXr=VphB=`CGCrm7 z)6*RWdoQJlxkotcU#o92lBMl!dW{m%75M;RmXr^!il@0ZENqzlqKr1#Vb)-z(tR+q zoRPNW9n?D;5?`7o&cz3BTj-1u&hm`fW{JNXfe1Dnj!)W4tE|@Q>3cnWZ+ET}a*9}P zth$qSelUAgsVKnMtgD>RPg-0zFmT{am%x~)I#2-CU!gm}|<>1%o+XXh&+ARnC!f%1DpQ+B*x&{?T^q`~Bb zH6VGYsm3OeB4GtG?h;zP4HunN{a)M5-_QHIp*R%AoRu+^hRvK-@(khGU;9;yiuJv; zz?zRSjk_ehvjFR#UYL*@w|axJ3=1FRGA0e|+uF;`ob@Oog$G%(h#jg9lX~T-W+Pq| zCjaER|Iccgoi~N5}sN1<_RHRVP#+cfvbA+ zA3KswI1ik?J4-Kso=_~L&=gftP@b$}RW8gLnM(sNfg(J?wKFEpz|tE-Bxkr4PIq-= zL$h(TvoVa(CCqfWu5!Dc6JH`v`jO>}h#P_Qol@JzwL!?;^EXNy@b792DZMA{l34pC z&Cst=I6}P=Z)|$x}QE(PZvVx4cy+~;Npg2~-cA96Slam)5-%|@HUOU^!0VBDYhNIF95p)QI<{1e)7Xk<|uFDG2@^~0+ zHko~$0&5dSPLt+}tVIGWKwJcWF)rDG9CcRUu%ic953v8God56CdEy6{L?m>4^!z|( zx;BH{yQG4;|FY77V~}JY+^x0n$I~np5TFk9$sWX9 z*S55zSDCVvr|sK9|12~Ho*Edix-?mk%1Z;W2w71kC*9-2Dt}w+zc)1Fm3|Tz7Z>?a z%NL2>8WahoC$0AB9G;--1Em1(4LyFjC-Q+^fSN`sGrLhlBbiAtg~9}<50tEtlldfg z`31c{+=r6JWvNUkv(dRxf5#h>pPzWj!&;F3Mp(xAaD4s+jFGVdO*+szUI1|gNECQ} z=i#E2t^dRUR-`?z#kjTOT}6q=q@)aJT*#LsCB|2t@hb1LTFYP&(o;RV=mh?u4DedW z?@?r7Qfw%d30$Ge7WF#_XaaRBDr(!jj2B59%(cj*e0AI6BVdchN-pXDSshzj(bw0f z1R3~hZ7oK7I9jB1MOyu;;42op#8v7OYj4)l%6JwumXdMJwRu6@YY%ZS%lE#+4IZ_u(?syUlw0N;&~^f)H&gR;@0UQ9t;HJyiVPD{nU`4i`c=Ko?? z`X?uDdYi@#SX~L59z0_CcS*=5eSfRl7si`3`J>P@5qyH%B_l!6hwPH&K%U(qfqj9I z=-Vt_k@5=`rGt|i*?JKp{=|i{f$~2919&60dcogBqs|lnBdJ7W67$Y(O#+DAvsg>FV-G$#>GF}UkZ<~yD?OB@Cm7 znPp6Nmm@ z6+Zu64~U8AFiGh7{(&by0G|JYotXcy6WC6KUG20bI-y**azy7g)rTHO(Yv30@@Ivg zyiGsP9gauRt~a}?d30wFE&-AJC=a{4Z`dfis?II9bPaaw(n>!1|uz_{p<%ya^-O|M-&B7a^_xo0pU?qm*53`+Hv)9U7~X70IrdXUdZZ zE}n22j|yXv04SLJlSg`+UQLgq_2r&+GSVhZXFXSVCqn^b3$S{ilhc2zRMgL#_UHa- zMR*#-en4(VEyl#O5C=pGG<=}5l|B+czh;RjJ;}F=R0=z73hQHu@{?y*g?cTx033gc z2cCpRMt8BRZE~siJjw7gC_U=bxbzCBU1FifitJ)*4C~qF9g1Wht|EWQ0yN70_Pg23 zzCQZL>7_jEK9(cm${?TgNPgTXIj7ztmQLAX9FR>cn_t+_VVC{~93jxty8a&@#bXtu z)OqK^=!JtHPWz3A9p`Q*%Mh$xR) zJjR^;Ru5n=P&E8F3PhBv7xk4PN|Ds^$rAE@#&hrDTjQL&)`yOZ!h| zdoLUAg$+uNfgh-*4?Qo5)nb>-8Y8b0)#k(c$a&b`;;$Xye-7(oUDwSh{lmPj4hqI+ zL2R)Hq456{;;8Fp06*ierRe#mw#37ZK6cV0T1(HA5@^lr13>o25yNW}04pKnzarZ- z-5^$@6aQHVTa4M>aVOP+%e?4uGBdf+h?r_P>&SRXXcUpMHFta zC#^vsqD^s?%RnRG)d3qG_Q13^H=oEWqk`~sQ1$i~YXF)5`o1A@d1b)Q-$=UE`=2V8 z@&@I|T!zUWcFKMyCk5B=xb9sY<%oqW`-Nn_{rHIJ!vw;Z_g9B>8tor5>dx;1r2659 z-(9Jt{XD+bhv3Gp(BlmJR+=@VNxoNR{)K+KPmfzpXz1~&Rh}(BqyLyq&Srh>i2_~H zS!q9S#EB{t>PhiKJB)=qDXeb+V9oomn;ADc9HEo`*_=EKFqbr)SfzC2J3!{gh(k4WM)Ct7!@z#fY$;E62YWnX&+ON&?l9m=CcZKX`-b}Z847<^k6!z~HIk2HF|Sj@2C!aC z;GW|@6QNJz&b>Ih09iM+0*On$Od)d;?f%7;lZ$!pp0O$d1uuaGei9+)TnG26d@ z5z?eTH=IXXM4jBLt$f!elc$-t{IE7m`f_D>MNPY|-{R=ZXnQN4crs(~;Q*2?>4RJ+ zM*!=MnC6>j8H#73ghPg`%C&;lGhjU>Sack%jY>Rq*Iq~X*NIjmFOOc|0Fqh+gpkYLk2{Qqhp<_XQ1XDq zXEDyzbHv*X5|O?BQEx?8Sdp|*J+1PM9FXU7+Yuy>qP$TWoW!UDeH@AKFWh9*Yb%b) zQsLQ8=ijz%!wlBup~FTTRBzfw$B~M@0o4l!M)e?v@j=V5wNjW`b`^|Kunpex!|NKK zry|c0nQ)5I!XkeR#8lbTRPd_DmbFbK-g4DJqc8@c3O#eL=OFC%vP^h9fOufF; z@*PFJ500f5o=enLYAD}f-oPt~EgSV7COhF6sz_^vJqJ$sDA6mAenKU%l3HgfgXI0} z^FwkC>1m6+p~7C&I@NPaDf`VMEq7t#g#CIsnw)z6wYP(gWQ>A$-NDSJ8(icMy+lCJ z2D&;lY|~v!J4^lONlC@8k9UB!C2d9OW>pK$+k#?AxKzZO@S|%rJy8$9QR6|$!iE*8 zl(xnE2{>S?9{0I zk(h+N)zdB*9Mje=4SiqGkyBE!IjvHp1^Po#R6}mxcU!1V^)kr0?aBlC_M7*SRJdCC ze$~@2Fsn$LzDLN2B_8hakAe4FPSLf%&Xgj#c>TD&^1?b>yVJ^}ht_qilJdXVMJ(P% zdh5_s7!+P|Mzv_yb=8i~Io2i^)5Q#-9UAvgKON{bZQP%^!7O?UO*DTCi$%QEHXhyN z>+yH@v7D>NIn%xEa^~)IJp+w8MsJm8rG&3s2!E%0Xn|4rqV`eVaCk4MYws&E*?5U} z08n%RB(*Spl(R+D#rEb=VgPcZsR9b3d$I^iV!!PWyB zy$LDU{zOhyKE?I@O>1cPq)2v?od1|4Blv2=Jb56;<7O~pX=+RMbGM}+I}A5u^~oqzMN zIMt$+V^X_ftzP*f?MBzexnq?@YRuC}j;4eCuI(4q{01Szo1m=aD-Ng#i3)t}B{{Jd zlI$wg7CEl}bXoa>H{@Q=f@mQxrm?=c(MaUoT!kswlj*rou+IC3BSp^EL<9s-k#>V1 zF8DnhSAa6Joczs(>Ig@DDVR9(Z3^^|JRelo$E_7ku&%xZJtjt0GkED++f7=&LRJqY z!>m+)q=iF{97`;gxaQt|^!SSi7y|^LDHjp+)s$U2wEyS3u)d&J4_G z3a^A0dmTJi_BJvrQKG4VZMBYAa>B^$H8GA!=scaRbL#j3%;J5~*0ZjXnBw=ke=$n0 z(i!Swzj)#c`^Lc1NRsfIpetV zG~U~>Hw&s3%Qv$1wyH&V{4A&FQr=rCyQ4O*Q<*hEfuUw;cWPnCTKVaq0LR%ey* zWa&YnBIMkI5V4)l)^NuvbIG)lau#bUHj3UV`^M%<4hu}J&xO8bOCH{2wQghI$lDGS zCusos%F|NBxrU;h{4K;wdx)70(#z`A4TE6n%12NIdL#VM^FtLU73xM=_7E z|9ov4rblzLEBRKvMWCkZ!O>3(v;=hS`N3FG#2@P~5YR za4qPzBY4&MrmNy9lL|jPC<7@vEt#Sp5(Zrq3Kl3V!Vswh>B|c}&OW2uBH0?{uTxVI z0{FuHKZ*?2amUnT>EAR~Eo%EI{l!q@`-t~p(mLDJp~d(W z^|Z=qYr>Rrexqt{hy6UWGLI9f(E%uRv7PMQcUba)t!hzhhKcI_Zk0vjf)C+OH8vR5 z41H?&U3ge!>wt<9_WS-rCb0!AFvT@e^$H?g%q!#Qi?3Oc)=$R`DBi0I-6%7zLU2+uu z!|cPlK8NvJY4q3-1afHjT|4YExQe+)&-gZ#8dUsc+WOfre*o7|yQUN0nnh}{u@N^W zx*;TcSxEDECRfCgysfaN6ndPuTbF1J5*f67@TO9|n#Zs)Y%M31=62V+U> zT<{f33y?eBBTa_4#tLRgZ1|nz`R#$k*FE+(OV~!(sXu;7Xj@-fx!tB``(|WbUYZmUb8+Cmg2@X>{L;xf% zRqYOzZk!L!I`+1mCTgs539seV;*W* z|K2Zo1);udVY0@|X1r2}t$jExu_5qdC2A$?)rzD0_?lUd=J zrdo}y;9GC+)d2S_A`NzWqK_THi`agX?bjlFsDl4YlyFgqqX|X=^-i_t3^js4#%QJ) zuJBJK_q$d@k>3c1%8Zc2R>n58vK#d%vqF`RSZ6Eo_o_Ackv+vZ)5`fa1IS*E>Nf|d zR{|gnOv8CP$?9L$;Tmm*pw==J^6SF6$&7t&6xaRUi`DmS1c&gkyh3s{8GHWm_(NBn zOx!=z)HciqYGKPm-{96vMXGTuo+dFt+uQ(<_WUj@;}vb^aduEchBP3ur?uus0?1-W z5pDY_utIfQX9$#oqw(N-rox#n>aD=yc5BR-SSOKy*t(@N) z-Y5R&bhRqqA~Gv#?L`T2@uRKr?4y=Qt6;AObzBZJy*DT49||&SH^8}W4q)-psXv%~ zXRTAiw@mSz#o{qKGL{g*w9I`4RR=z$O5||nilRt$cN0JZ^-OVj=u7IhmOUQN5+Vk)S z%5*EuV%PM?It>CL6bl!cN*mqOh zAfS?6v#Pf5dY{T7K;N7FsVoh=3NzDjB%GyRKmk1P;_>RSzll`%)T&dt=;y!2K|g1U8@pJiK9uK(Z|at#$4Vz%N9?9?>*lo`7v(VcJf0h|@jwYj0?_MDc0i-C zd)mVL8u0&OP)KsZ2g0+`)`NVxTu0jX6ZL7);X4md~MP?hq*F=Z;K zy_Sp>I~Pv5;PWx~r-kG(o|8p)F0P3jrL8v4nzu2t66?Wyv^S!P9i0^%ZjKZO!2y>CNM3{flaP~CSc>Wqx%{?o%U_`5E$gyBw$akJ) zj`1d9<2Du0&NaiNx=#ZpF@J1eKXebCR%VG%<RRO`E|_Oa`~6PrKzWT08!&e-2Je2meLJ%7md`l ziFN`p0zDPVP>&7$2QUZP2f3MC)nkJTqIKDKi!IK*Zi?}P zS1rtXm_VNu=a5s>g7qk24m2(EhQNcMc~|W4)kfFPb5;SFfp>s(2O)ht%&N7R$O&Pp z{d91@tFcyyZpWl0dBakEKEMQLgb|1M7sx#bXl);fGaHoFC!#0`bN2n$MijxepfMFRw9sln0*fjIp7hS-d zRRvnp?;ATb6|s1#a`(cwRCG*|+f9yp@R~tOw~N)5Xm{<*rDL+;=|o4$nZi+)h^1t4 zaJ-7UKh?5`Wk+S&Mi5P&J#|Wa=*;)u`a6P3IvviYw!xK!`zdz1LKp+CTId-&JzjNKes&c3mHHDRCqJ6iWTHu;GVRh2oX09@B^=%3E~)4e;|V zvmM1YokIEOU&h4Cre_rk-wku;ucZ#6Rq<8)Xt*Z)xl@m?^`8CH15oQw zbq?}7J`f$AoZ;;AcVTs76&};zjj&e^09$pJfFwWqOT&z2xisj3X_$)R;6Thdm))aK zHiu7=loKNxZPimXJ4GcRisus5>W{%u;#DgTkj3w>=8NWnQ!g1h+z8Q&V}o}!zg#^y zfQ81#+Vu@R{r+944B_&>v%f3e5?{WkzQ8Va)Eg?bZQpKNR3a`a(W&wt?Adlf|8}a0 zIV>~B3Vu*HudabP_|C(?bTi}|=9LK#ULiy;`$OwaJ>>#H&b_@z%T3%p-fML?aP>v` z@h>Qr*w1kuFhx)4(zKoiB$G)0w3>%oGm4t+V^azZXy6j2n@axn(PYcBzZgEdHvJ?( zWcX%fWm2d6!M0uqFAX5!VA3$2N0(*?-4q>e;fFmx@IM^JAzGeAtu0G1(&*+)<>Qu5 zi@g? z148=^(5*5f%HBy$VK-|I@*$)N@@41=AOAH=RLUm~(h9tAHbsO1uEeDd=CU}n-z78Mr zLHF6~TAGV4ChK?tbxf%K$335@o`^$&so&@`V5oWG!HJ}+Na?^6*HkP2+PH) zG?dLX;#*U|ddN&+O4!1qP)wBJp!Nrgx%an_C9%V@^5&ygC=+@w^Xt|?9$M62jNOsy z88uN6wS)jvnDX>+0EtuE-**7rbK#6P{xv8JR=P z2m3`yPk;spWGIYm(iY=>JYntItktBK4+E_+;f$IytZyBeTLn>!C)nEg6vBFq6?N<5!P*klJoFU8pWj3G;&=#3 zf3yaM!}FPQBYGW{d(sc6l8=q%xWC&UnwCa7$xf7acvln94R~BGL${vHSg42)jd_E( z1fy`FoFBueCBpT@OTp3P%ya2=qZV&XiYV|@q>|Y*WxWT=Tlut*P9LdmXDB{Y=z5iW zj1VIrGq!PP{a-YFcRZVY)P8HP5J3>5MC_Q2J=#Q!*n3xnP!vVg>=F{OC06adRjsy^ zs@SuoMNt$*RZ&&N)8TpZyubJN{WqV_ojc#0d7X2vqoa_>E3DhULD^s@DT;OCH`rCY z!&kG~W`f-;mN8|g;6Zhf;Rwf+q#M8de;RlRzxd-Pk6w?q;p?vnlvxRd@H%^Gb{xs5 zX87$A&Q$f2_q5_)`&aP#{+bJu<5gAxs@c`tJ!) z7Nc>^W<%P?Zi?fH2X&5i)8&{zTltajQNoW{4yuegOsd;3DLsHm;-G)i0>}~T&d+vx zoi(mtGj*M=Qe}Iu^Q!apEq+#@p0$v|`%tB8PYfI8L?)PJOSx!=wqET)_l-IE&~+!QC+dv^&wdSGL34kyl?);B#|_7PYjW#gd1 zh?eQL8DT*s_gO!$1*i)Y*Y>3~jequa*@HhlG2y<>`BUTB>Q@h&i zi?7Gd=g-N~7uI(hSt2U>KWiMcp#A4lR#wmDg@jiO^W{J~&9b}v9LLW2Ck2~2O>;0O zwl(>O&9n$J@Pjx)cv?iPHe6%ch5MXhl@{T7`{~qHLFjJeh-XP{M34~A*FZg!p2-sm0{K%wHDDl~3#$X;-fCo6+pabdz=Q#%h7w ze^QW0tLiiee$dUmiTDmfkAmM;{jm6XCf<{SUtHl?NUVtLd%srKzVLdiV`aux+=1*& z!!GJw@^?D>v#wq47J{9BzF(UZw?sI2c#d%P*#0}u|8!|4wj#V?@a;Pvgbjv;M$p%2H0-k}v5X&0nGYPSr$3-BIU#sb|y8^MGUVFIVQ} zT9LP~l4g_BP26`0S4GO5%QYjOWzU3`?6%20maTmM=p#UVDh(_IDA#@;q~7x!cd{fW zCc(Ph#wge#-CsOUK(VbKI*f2!Tur zZFB%$Q(^q5Kg?Yo3JibZ;P9}S)$h^peIJZwGtZ(IbN?eAc8NoVy2Ob62yu>8!P-hFaP99A!-dt{cAB{9!J}a z44$zyC_Wix^|G+m7j?H2$IWCVKqscZ4W-ig&%v}SfG+l8O>~0OWL$ecP~Urdr7=dzb=96YT(O$&$_JnD`4L6m$9*^>!W!{x`FT5^i zp|vd*=+dC671Fr3=|qcP9|?TurW+1UpESM`-fKPW&NMh64&dg==$Zpp`+kPd$!{?MlP-PaR}3 zQ^M_&BJG0JpUf;GXI&WIu14Tq zz)#I-Pp8GV`+_3$}se9gLp0qmyM z-pVdKEY#^+QdUl!YV<^b!r!j(iGA+?xaUQ9q_BO z&SnKIhP2Xw(gRSd!RR*JJ*UXI1_`yqIjFiLL*ehQuqa!0=bz79 zDGD{X*{ukAv*E~6+vyzq3f0KE(ol64fV%A>rv7i&b##~WJLcWhH2s9(U1RM9)*==>G z8!hVvf=?Hc_nBWW6o}M0Brs(=dz>_JL+(_Z-lp|YJaVgB`1isGt$KLsGbvUG^z4>` zv>Him-8+7*rdK>$@W=H;!Coh6nUF0~jk=_Wd_#Io=py zv?1Cpag7#+{_}%Zs$@LwKg0E4L5}GasudNoAM6;mj7|Q&qW101XN?9rnArMGtJh0-=g@?&RyR0Z?-M;n}wrnGQxL)$;>la8H5<$+wAGvjT{jr zUk-L7L}JAVdC`1oGjva+ZnmuuHOlg)1DdSe7BIFy5b_K*%W@a~{#V$1+T}7n{7LFG z|BiNJ$(h2}&qsPvv?piTI#N_0${{1elS*+zpm;#?u)i359g zac?}QU*7(qQJ@)1+6w+co9cDLD3UND_7xsIROLGq_#e=_FfbGZ-(9i39aa@DdyNWc}}%aQQd-~6L{=?^AP@M;I}2^wwV-(`Nu61)=0bk)vH3e_(i z=EmKEe>9eGhnIo@`Vs96gz9)N=JneeN6MrW94KtjB-(A;ucgEn8BNP6k02!Bz?LhC z;(uTdT+*?dqZ<*#$Cl)NDKPM9MBIlf_=z80B8}kDsZb7=IHqBemJlER! z9t%&<-8xp1iL-dUj;aJzx%ByKGkgxqV#|h6LJ--Dnr{ONQhbt<+$NY?K6ZAuw~qfg zk?4Uu&d}`so9OxPg~0Kp>l~Xln>~p<<9RrOL&t)pLq+|nGn@fWjZ z79M8HBN=@HlcF8tpbqj9s=4 zk5S5NL7DnLex(~E5j>zf~&F z8<$yzTSlMNcr$b`w)j&$t~MiRrslGIl$3!P1tUaN6x;@O2MoLNGZ13RC!dCeA8|-@ zWhwZ{vuov8qmu(=OVe3`mKgrM(8Lm?$g`S)-4zZDI#OzVvdKuks~VG~fhlQorKKa& zlee$YXo}PK#DDVGbJ@AAofEb6K4*+>N0z0iUvU>w*lBAy&(h>69rMUn3X5mxsIy0V z*V}Cd2Iime)IAAsfXa@oBh*o-wUxunBCPc+OziDTU`|3{h1`NQA_?(&^KEUR#3Glh zZ1Ou<>zbrA{0Byi&Gay$_w%MhSW|_vsP2v+=i?W0_@&y;Uf-Kg8m_}R$?ap});+gt zZut1Jf-#RtLD*A6Ucd0t%+4PE(NH_f!NGRXJ{mhm7V(USJjXA<*B z!}1>MlsxQ-KGZs=CTXq1fux$7Zh13yWe;LhaFj zbr*w{lF>)xH@m!26x`J+=);>6`=C@Uje3;(9ZTj~OVW^+sZ_4;Hqn>cz!6Clv6E5u zOK(cg!!Ao+hI|pvAN7W1q)Nh4o-vZ_)m!4+GT3xI>_Y+N|6DacDs<=SslEDEj9BO1 zicK=uD&OfB_pjS@skG?=O%L{_zFCT$wTn@nG0PG!7A#kHlX$MjkOQ|nA?Ob}>4zyw z5Up(8^atRz%r8UEc5gg2Lt)(!qQ}5!wBIoqsr7v0{zJL3&V_}ARX|!=TB^#0XGTK? z*C-V9T~dLWbgS9b*1%ipu3ds58asOLr0hmFUFzY14)p=Pf+32>-Q?v@x64{C6D_Lp z)Bv?XFQmg_ZQ)WpL4;IrWmNZi3#}Y#0eFExrj3!7Si(OS;b6_P3e50|zz6EL7uVwKfIxYPSt#%uI^38o>9z zK)UTNy7JhJc7msc?nHyHXlC&&;9XJ?zPfeU5n82TQt6_3d64uoL0HL_fZJ-kW&C>9 zY_aV<;`wbT=ZMSiJP*A?$uA0tP|jA`C@!V$TrtL<>#*y24NuTo;4Sd*e@FNTYG__d z$>Ii^+{N}vce98ajYo^xGo*Ytlro40DF3ZVNVX3*i`z{WcRqL*E9FjyE3 zbHWs{1(=0#qfD>7M-P$;u85nE9aC7TNj&y2vKO(uu_1YR%N}w&Viagu-QX=1FSjc% zbt)+j^)eLY8>-})tX6Lm^G!Co9sJoNs<^BTb-_$Vt!^XDJR=!ZoqkJTH zt(8s4Eg)0V)zbv}xPV*#A0$c2bV)8m+@=(kQ*&K06i=r=0;gkEPmzFi?Rwqb$40_RFUq!#`DP39% zpR!1{HBo6@qshoX6o(f50Y>?+U=qB*(g>a(rdpHPpm43+^>{RCh9@jtnt{Du5(5)A zTTG!2jbj&|bzG?U4m9WJwqBmai6bs$@e*Bsp!rb?*{EjKX})&HV~qW z;i)3d;M!_L!n0+`wxIVt+2Nb`fmY6KBa88b#_yyy3mU0cok`Gh7IsG=SYv)$E48~3fBx1JV@3#bK zTm#eh!2dm1qKqUgeTE>uYxBj0qu#B~Hk_hiLxaw4i%L>kCDP6NUKBo^wsSRXITgHK zFZY&#ZEmbBK?-J%;}+{;u@@|_(L`7nBO-a}aqrB3)ESJE9JFo{B_EkQAI4i5Z;Rio z$V5IMxft)sRZv+1_>B368fjLX4m_k9!nJnekc5UQym@G(s(vGdD-yqTgxDAiV;l( zh5kFj*x#&T^Xz~0aK^t6T!5_HU%Bw8c}~vh;a*ej9hL zwT)I>*7uw#>J)+|4J50q!_;{(U!lzihHTI2a0cCCLJ`EMf7YNv4j&lrDg&FnN_l!B zLvc@xeTm*F7BH28x7g=LqRTe-Z9+2tNAW> zcBsY_QZ7vZjuEw#Q;xa^LkS`hzwLvz!$k)^f9`aSE!n)WbVB8{v^0rpZ6yj|iNj-q zjT6+mqfupR1cnJCRFX4(#mO zUC6gxFkGG?8_nB375RnOstg}S8k#1~BSHWkPP(>=Hz%;YizD?j-;QYwEojmupjjn* z68XUhXlHUeV-~%~diN;^Z<@q?GtyDPP$OJV?BV5}I_YLkj)SfwAXm1QLAI7f0A^m& zmGTpRS9fg8Y#Ak~oZ}*K1omD0X{wj>;N@~wa--LcFTPU$#G_1BaEr`kl|1l8m0X*> zm?iv+5OLfORWZki3=A&+$?u(vf@qW>WlZh5$0qB{MMU=PG-=167^7Tu%W&N#Vt6SQ?a^={-WFbqXRuu1al$rKEkO1)pdtcv0ilxvb$qG1 zUm13|uuHqAsAuZx$_raef##v3nviW@>E!SjQgF_sUEOQsAo;1J=`Cl#&3X-?^PMRP zsn^m~9fus7V6{4#RJLWqA~6JupKt$43R6k)mb}SAXZ;pcw*vni^&q<-@YvhQbBLXf z6YGss1(Wl`{w~nJqpNpmUXU^+nMP{-d*KOk%GGb9BVU6-oLyl?jh94U@KHs)AP6ZV zA+YEwD2hYc%!uAJs7DX}1j?MEoSdR7Pl65*3+K_0;NQl3o)0cF{6Zgx!_)LxcO#KZBD|9dV6k#Q*RHQP5Z1Y}y;??k>>ZU*X_ zP*L`iTUXMi4(f2CZzK7z-Tm=&4mq6~$$U@LI?FY}$F(xw}--xkyPDytT zV1WAcs@}@#dz3K7BV|(jJJ%T29b$M$3k>NUAq*PYP&@RDRC9Hjlrc9Ud6y6sE#ZV`hVpv!0bDIc zq}H%;)BP18^GRdeH+15m67^+NI9!_f)BNAT{GN|zND-#g0EFNIUwF!kXoyCF%>APT#%w*y#)R%Vrvb4kxc?$4`%GK0~cG1IiV`!4L z-r(o3;FknKzn@=A1XUIVdM<098bUL))YjHEqhTR|?YX2>6+tC$qNYVYDuHs#*X-!Z zTakW7n;w5TK-+ZOC~_};1F6{GLJ{K1VIb1XPEOrA0HkLpJ~XC}sWqm<_70^zyT9Xg zKMrDBLhlj={P#k|q~}LT0sGd!XFLMt6!hRIrE2b5;!hVL-HtPXbRQkwdU)o9Nph+r z(ogl@3*1-Bk3_-c{Z@Eu<*L`~Wzu)e+4gi;y+7fmX5J5;$!1mGF}0G#!wA=P+o(~r9vG5-;TBTH92U2;qvJ6h{(P1>Y7_9D|-fY zt@sCySC-DVJ3pPNd3dJ0{q{TU`u*R)-wga}13VPWT=F|UBZ8?ONlrwL|3;+5s=L9_ zccI*mw`Z)3uE_ws9T5Txz@hIEss&pNu@7(Tp(Z|i#{GK8q5Nn*5Xx zg-OmgVejH_vC0xq2y1|3Vbzg&hC>LfD3XP*yDX&POJ;>_5&7~7h_WJRUiPPvV7a!i z3R3^?sL(a04Ixz$Ml-EVo5#gcN)B}}E#v#d9o2?wo5iPeQcv}w?Oj;c(`=BO{WJB$ zPQJ0y^pJu}V-+?Ofhy4r1zZ6v{`FZPrP+6` zw8h+#Sj%^Xq#NRaq-S%W`7w!t_je!(caxs|HR>DoWH;i2V^G{KJf^M+OlHye^p+3} zTRlMov9eQ&IvL4~Zpy!y2rU=A_vkRb2ev711G(sxLDj2CDiTR_N`J`L%|(7{UGbd^ z9bE=FEGIH-ZMs7T?8@R1TlH#L3qB58$j6Y5Drsn#l-SpBwYxnWj&U}X~n@Qc{ALHSX_WpCGI*f^}vq#i6ai#s@%+|uD z2C#(7ZzgkA4Fs6fRvA174iO@*4Sn!j+b!QY;_1qP_%06S!G&-$3i zi>L@2(JPkn+Sw_R zn87AT5(=F>D)6MfBDo0OD?qn{Uxq12z4f9CG?V+_$Xc%_!(BlvKhX4hdfWSK?T&M+ zt~~a@R?fbxOW*}BuDZ2xg?PukfagHx#OQCUtvpN0wR`bCCZrpZ!t|VQN$}aKKv_R+ z8yT8Uz26!yU_Q7bvnVpGZ+?w?DPD_DA0>9fgz?ZGdaPPRt=vK-9GJ04&{?86D(Pf^ z*62&CsL@)Tys*rTnh750MxHp>wZ%@-9^+ur(!f5i%e0mHQ88hiZBBocqm~=dxoiP$ ztiOU}U`q8HuI#Tweyx{=`eSLZ{G&g49E)XE7EIy?qZ=M<8139HWm}I zv16P}1@DvSM6`lb);*%pQh2@r`ap4^B>PI>(vXDv&;Q~#0WVr8H~P*IBqe3i;9Jea zCA^SLU8CU9hj!?Hpnzzu?eqaz;|AU+MN1P$Y>l*(Dlt0nQb!C8kv;VBU8voF|qfP-l8p+&CRg zkx~r>23*0Vf|^S5QlfG(_d>6%UJ_^3Xr$ty_0bR0f($+_=Rhn`ATW^J+GdKGHpC*Q z2t>azp#;;A>R@Etrz{#A5Gq4$r33hLe4wmd?~tn5m$5X|AC80#lDr0gMiXI3MCrrzfy^($HwYTu@1~lp|Qta-y@P{=06E z!9Y@a8BC2JfUwX54%w$*o=-v#G9`H(9s_rC{nMLsyX4RfKbd8N#pPT}Hl#)r#y!co zf0uOm%b&@!{5nC2As_&zcpb*?f-$O>*#k#ACo7!p5$5d0=JP_-anocXEmVhLdw53B za3C>-bHK5&a5ilQFm63qrKxrK_B63cP0)t5B9<;<-4q-L4CA4vN-76Wx`3HWu;~lF zcCxlQSgshF_N91ps2Ee)?vPay`_kr{8gHU{Mm90N8g*GFog+jw-~ML4*vy4B4cy{I zt9p^?@V6Z14YK8Am1%QFLzyCWXM{Q<5lJ!0i=eVhgvh}X#$?LDvjOlBidix*XX=<> z>!`oLn+;H@DEnMnMw?Ffm?rJF;hd*UPSRaKIQPW`?B;sX7#-J&A&LL+Rb$J0hODrp zH5yyM0LvW*+vMRK%lNhip=;&vhmB^$4WB38bZ&qt-yw`Q@TZ|?hxmH5g6H&yBtt@S zA@u_bcr(48Cl>=6k8ADuPYtk1;u4%vhNCzoeU+7Mo!~>0!EBuL3nQRg&xZ$}-@a~5ZnaR4Cs_CNU$coaWe-awm&f9SI-bHlkA|gmLhK}Sfnt}ezw1X z)VS27>7f+GWfntRl+-5W{=^ky7C&T~Q9LrS1ZiPY9Ob9{I0%wm3H=wIH><&7C_>WnsEVbrQBQs!`>h zWyjP%|JF>MB$f)IZM+x5Ge63Lww24pkaSq6Z(4W=D1|8RD31RP7xY+ldSK>(Y~65b znF2RGQ4>-b-2YL_H(N9g_7EqV~&JwS$9(d@=GkgO*MO^KX^d& z(tEm$Ql|5NFWh*5EobmRGgZ?5o<&|q@%}<6tXDjeDFi448sBeV}I-vc=dD%c+5HQesNqcDKn@30O{zvS1ohI-nV^ zp1*iZ|6SSN44+v1hO3MO79cw}p+>uF7*kt^51yvsB7XQ{dm+L}Be?>cUl_D3;TwLb4rW^%EvUMjJv%erusj254 zdh?I+wZx}tFcTp!x%d;_j){2>ke*1MpDCGnUExesNX<%+Qky2tV$UuyN%Gkn;s(aZjYB`X@)ul{-6c;Lx1Rlm-RnBz zNmysi#L*OosBWYrvB6!_>D@2kbCen%m*@3!+Tc#lv6ON@7$n z=Hw|>OCBIgjonfvj5G@*jVT`9+M*K8qwjtIndZ__lh%;K=5lo7@OH@ z;2xL)`kz(R_QuPfLP-G$FUSwSN`RgZRreCob*0^`J~HJEWiaVN=enq=0gNgGo!K(i zZ#nhfAGw0=2>_DXBy4g87nMNzVi0M(+Zw}OMz*A~yGzu5$;i405Xr!ufE6H>D`{~0 zTO5LTV*y8OgCQPufo)WGYip#6fAbKB(`?jqhY=S`b4en8X6PjEL2W7L{RtSwI*yLx z;RGC^#PY^#{dI2LB}om7G8fs9wgC5Mn1Ou;5=|kg3_v3W;$LAtHZqAN3!jIs`xIeSIY<*6Ehqe}tllL&`k8%ZOR*~C#v2c7R9-8R z29Zz}^&J%WE#s`Ni`2qBLC(+kV~yW`*!w)_cS<|PU|C7^ba3pxDCjUF+g-_f!`C!6 zUr%VU61L_QATevh3Pd0E*?;k-7LI;-{_RQz;}^GkKKI`XT!*?+thD2e$9?FR>mhi$qEtM6AVfs_(cyNg zC@V(6qM(P*z0@w3)&PbprMq8ofBA8mYgM32p4a!NKvi@#cmE#_*r`iD)9vO_EQoc&>&1_uhTh&~%FI#AfQrQ?u>`bQ%4zU!z5dG>0)o=T} z{1_wg%I(#<*`AYuJJ8khb@lg%@YYmZ#f$*3kZl6cdbjkH8X)~%=Wo&nDqerQcjW3V zCZFzbp5#V}5P`u9MG$-S`+$14d*SzD51rQ2xTd38k2#_};&z-ddd$viHFeUgRGD@5 z0B+VOg)8n>3(^DESfieNk7g%|YiMY+H@%NN|yp~22SqOz)z5Ovd6F8&?EmH^$V zKM7p9c>luOh+<-jpx8{`PmuM-?Xd^FLMF$em*T|1tDvEKC<*=O-Py^$k*s;!6omYHL#crcIJ3*{WEsb`vo&9Ka(I;&(90Yny_Zp;?X=Ff?(>%;N>{**ATR!6VyAj# zK_!DZUT83C&mrjAgtyiu83|F?a(N0}y9O);>)X=glVLan!1>LcJ$Dn-P2 zeu{eFr=4G5rlZ3sT^ETRh-;^AYFfju_z96R9EDJXQAml$nT6FKDdzgAD^;?`m0Hzb zGR_pwaZ_Qafq6Mfz|O2{bPYdQx&EGmt2qALR@qS5>Y{#9 zjUScg1m3zA|MZAZb(G70^_`@Qed}}ks}|E}y%!-~t`chAi~WY-M;8MRQw=6f2b;`j z-ZX|kxi|mbm$DvkRO{MEVlXD;z(HP`!K*No$|W=Gk5*8=%gm0o z2~D=$Vha_cm7|mJoXRQ6W(X|=_B|s&gT0XX0~PNQ2>*p(iraN zMkpKinWVrl+a_cCcBX8cHuPDPZmL(3y-}|FoC9CT!HCl@-23jvXTdaY^iMTjLnfxhkFf^8&?y_Nt>gES z<%>65^tCYClMgXDEsEO~@4vf>UcE38)+qJ7tNyc zwEE7Kh=?m&R{ykJe<$?7WWoMbNQSX--EhmWMi!HH#F6)r3-~PVsu0jTbG#{?^+yAb zgS3ctURk!jwI-iw8HTh{))KnHV327bD zDjc59=IjlJ<-IT!Uv;oaLgs4uWwlvrbN97tdJDz8JMkm9`Y!L=Q2y*JH12s7`^sd6 zfvX$b1ofU*OgJ_hTu396xVMo={Qy>ZZPW}P8OX@e_h9Ry1~;8=hZ{V34bnXnmoKzs zwS}PU8jw@ExjA=L;3ij7cHJMi{&D#ww6)-_@_{*Cl-t0GxM4f}r}1YBWQd`V1OX0V zW{WP`Vbx_E!k{EsnbMY91-yKA5yXJvc)Nyn?NN6;K4HO-^bAbz+v!Svutb%^ot9U> zwkvUE3;AX09RWFkdO0Cje`y&MhHc3_OUQnlfSnkrw_@U4(D72^ST8A>Nd9zg=-DP} z7dK`)`kAQde*deCaLlALTDCqnZ7*=13e7_Jz0|9ETDfLA${Jex&5Cio5Ug|j_Icld z^|z*k$CY5G$|6=ULm^AsH-OAwIZORen6zkIglEwQgkh;3KrNU_YAL`3Zk4V0O>Afj zfNt7R`olT-#7oCCJ(V1u2?0xRdjgD)Y=5dpJYGSGlU)*#EHB7x-Cv0i8n0 z9?S`+gI@keV|Ki>Z}NH(=*3E2`CVbA~Y$VBMdfaI3RGUO1C5u7R$j z&pDMM20Y5kCvJH1TCb_gPfBaZz+p~P)8v6K8Qi;=3Y(N+mB(m`6v{ToCKy4jck>J# z%m!SW$!lw`fdl~pW!#o;@97oZ)?=b~sbm#_KIw+T~cUSHr*j&I(WArlBEgMF&TEwVGG1;&I4 zJ8}+~@)6T7Dh^>QAyNN9WR*F}X$eR-2;u5!OfHvWSim}rBE9YG>zv;xvcKSOk5?wg z9~q4fyNJ4?bS`R(d>wh)Fzv*7&8~0n1pD$qZa0oSlU(gZ;E&S^a^W zvQbD6sc0w>jh5`2ePYX;9vJwEsgjN5b*QZ~8Cc1B#u7hE(Z%8Rg4jJ2*-X&G*WGi~ z?hWD{VNqH0f27x^2j2b|KJUeuV1!KGDbbCS#(djDq~*U#O>4?Ql9lr(U*8hPs3~O2 zh9zkW*U4I#I!9Y$qe-e3z%UT+RG7zJIcqG$IyzxWBsri#Xc+>Dp zv)|p9A@BPHm&06UPC@G9#K zA4+Dg^B(#lfz@QXiB^GzLL_0**R|%r1*z3OKuY=;(;?pd>Yl2}q9z>hh&zjQ2j+=q z0V*nt#!z)9J>%9LpVV-qlO*bg*6msj{e=e%HoR*m*eAkO)(#N>g|*@DqN1eKXRUq{ zlKO_Ql+5i|AKg*N3BC_+{D_<>W;N}&O7GnT*ceG(ROMRoj9G^i&VH=oeg588$wf3i zLqWQ;B4jUq_PP42o>p)(o^ehJ{+V8)qZ4?Yv=*P$Lv*lvy2J~FbKyC{G+5@6*7lO)Z18RcP0Pysoj{jTgfqRB(+47*|hW81p5wule&#&-p5 z$HU-yyqPqNMb>b5vdUldrCMHa+yG#mfjbpw#A@&VRT>W%_R;mA@0&>&)-{tICEll# zjSL-yk610^v@7_Mm1kWw?XSJhTno?cRzVb}jrV#K%>h0oK)! zN$`L4Se+9iwJxImTO_*V1N`7u%kdXlzjj+K#|@Vkf0$c_R{&CebsNN#?JBE{_?Vx> zM=Np8Ng@_7dFdCBSxe-cn&m)9ljBp=bKZ#`D`G3JmBn&~tWVHO(@4R8Tuns8$HWp| z#;|>@agkbOkpR(9FP45~^0OV)O)tiT@L`$yf4)TbGvtWpdh(N#)`oRC`~n4rb-A^Z z$u{*L@Tm@2pk_suxf%5VF@1TJg?n&so4JfTjumi|=bXN`v7;m3PtvMTnBZH#S|zV+LNu>6U3H$T@)w~{ zS0&UA2hI#elfR52S`Lh(Whh^5+!;aShm#*uTQJ8@e>zNydM42rbrE@V1S2F2xcng_6PFnj3&fqvx5fBU3l5+t^^uz9yN+`!M>wgL{ zD+Vlsa>FiDey=&_McRCB7XdCjw9ZzZM4NW;@JE;sQQzVPzI%&0JvT3DzS8weVbWWn zcrxbS3s+0iH-~eJ@~nMpPxSxops47JWr(t}}3 z!tC-AAZd+A8E3}@=o3{^aUL=JKi<&pJf9PNLsii?({#?gbP?cqZ_Mtscx+Oj?U!AU zAGtA^dz%N}<0$Cq*#ACtoMOZaq-1|$;j@&EAV7~>qI%PrK?@0D6y(0v*g~I1Qr;+{f1s(7!l^34S%j?(&Z;)(S?{(@uYmZ ztfkLXZ*3XU=zIhUa9God=`fQ6bd=3!Y{__AjLybMhO@#UKr41yPiQ+onGOy9xiYTn zXL_u}9}fw!V%->vIcIH$U@p~5iDl6JXCojMyAV-E(FNVq7X)~|?J3pH+Eg}FVTElF zi$l;5L`19Wtb?Sj^j-BJ&Po(0u#UgA?^tAkM)*%njnb)wOZvOA`{gOe5EbV!usdQu zMkikDdLHs+8!Fk410u)OsM9)F3t>3&tT+x!EPGKA)MKb@P?OY+T zzvvlgcPQ(KTgJ0!_9eT%GWBlx-V(h%lnu@ie)Z$fkz!!`T-0FUR=WXA-ztHT)_Fxk z0P~-6NK+p5k>`IU-}GRdxmr9y#$fIKQkOhB^)GHrucC%Xj=|awgV!}I zw_uXx+d95o{j9})VA08*ID2z;I<`s(HF(V|>^k%nlJfAKl9tT`R?-4*l!|(lX|?c> zHz!^aaFn*M5QV0KGDyj9xqy6OCt zFt6e;RGHb`t1D;FC4)F7(%uBr&-8Gpw;$)HK*7j#eDU+^3vuxQFuV{u;d{q(nv|l< z8#{7Z!kWaRsSt0_@@E^&3FcuE=DhYPvwWG?fs{*|m?%!7YphhqmRnZA2wt9{YN-jk zoH@Kwz)j3RVLf||?{Lb6DhiS%?odrEabGsLHoo(4pQwv_@sR|~!5rOxC}mU^27jYz zGS%hf;d#Di^fzf_2I|G`=7=}F8O4`=-zLXmJyngin|IX6HikirP=HyzsHB#5sX-_? zs_gbIV9?n@5^V=f6F}0RP;f@Y1AG{UhNxoUrwuT- zRO*S>8ECF3W!BI(7G;TYJwFJyw5BPzHChTbGZoBU=%nnnUMEFZY5p- z#Fn4`(6}ym);CVp)F>u4$wl1t%3w)IMNWnBxA9PLU}~Oo{gRBuj%U+DlkP6|b*&QtNtewPLtD0=vgP^<4nGYu zLjAAiu;6)K+2}Z;chLe3>G}Ety`8CkTa1I7!xWr!b{hJzh`ae>Rk{$vEx+7m{Mqxk z9`i0|9~8Bd@>JEyW*g=pY}kCBJ0h23 zgsSOGOsBXjVy#7ZgUyooKD4@62v&&ZRO{lk&pFPd$w|zh#&~Jzaq=eMIp6PK*_T={ zeaU-_!GhV^ZxhzA(LdFZqr^{PjxM~&8+!;7nK6W{XdIvSfg;JmYT)w^LDqfOG4FFD z?-P-YjeV}!EW7PedUbYF?lcV!$;OzzUZmb=@ngD@htj_a{(=QNC_%zDC}T)vX9rVzeI##tyxd7eMeK+C z$t{key=T&2uemTye~o8wuevL&sg;(LZZ5evvUdvyeh##M>C`2n-(O|OCS2?Xwa{+e z7GFE+X&cY9Qts*x0pEaUnzyroILm&zUKan%TzQf_oz^BRyEg+(kVJ$ih!}EDj9&dV z=&MWSkdm=cqdqjXslh;_V)VhSftUMBKK|LS2WvkIzoJ_I2kgVY^{1NhpfT5U7V)kD zBIMqGM=1Jt@~uUnzw}}n$9wr>jd6@dyGU$~c9Tul>jl80T^J=3Em3R_Y&AlQzueYNZT^#8E-7I0BD z>*M%>fV%>+G=jn|-CZIQOGt`@0!la1f)dg!4H5!NNs1yMNHB`F{cA|WCv&H6uJ zzVE&7{oVWh{GFAVGxI#pJT-IX%sDe7gpvakW03az%~wqn4q3U9pjWFa+2I`S<_mM3 z1FaU<3uXSf13Tl`k8iAdmM|h3Ncf3K-k-<5{7&bK_)FQi$W;Ypu;W7Z#Culi2UCFw zGiJ)d!N8)vkkbJT={ixu>uT&5%f!d4n_BUortp%x@QxlA(Dc^EaE&9SbFQW)3~}kO zACfDK&5r<|f@!j!yAkP1rB3`#ZCwtV;l@G;%MIFQ#t9DC2yRUI` z6|(B5BVd{ug^XJTr{JDg)jbniKxp)VgYxEi;Kj&(g;ji6zvhrkuD=$+PB4EIb)i=;g z5wLiY0NDE<8#o961cJsYGXDGt{!IMJ`QH-Jwu~gdsr_%br&Wu33W0nT{tt*hQAD1j z@)Q74p#LKq3?VT63%jo_%H1R}!uh{w<4hIYM9gHC^TKhw85rgZ`N`OS&5xJflfqr& zHYMphbHfF_bpDDs|D#GdyW2Wdl5RDL*tj;?B&b@8N#l_G*KEuyGNug>LZv~mApG&F zd`6?pjJVQ=iJ2cYXZ|ZTq(@wQCG@Bm{S_E}jq@mG?J8(&s1;@li+dtMKqOfIZ*9bw zMhf0)16^s1m4?MCFd_$5=I)*qvZmg#{X~^vHIsD z259;)j$6Bb%u&BBrIZoS8p^ac4bR~ULP&#r6)Qrqgk&pIrgF8kW^1od+h#x*{r|2~ z{Nn>V;RG)bh>-*Wa^Zrbt{e$Iw(4{Mi7UXcL4ZR_?(c6aunzM+B3#-R_V;tqviegS zIMKJpcg9t}kT6Dr8A+u0)iu~R80^Y0PrqcVfTTdtQaB*F7v(4aQq6(^n<{xb23#)RW6)WG?ZjWQ-0)3n^Cw_(9(?e=0W$f;niD(cEbSF05 zVnB%mqgu%NF~NJWvH$X&&L%?5FN1GR{QTOc7v^xSipzFNtBFeQp7Efay7}`>YaXrC z+sX3ULmNDNIJoupW9~-9$}dR3px9c6N1ct{6!3GVF~M^jZ3Ev9s(Wkx;P&5_@ zO1AyDaPwNj1Rz7wDY{q136a$%BHg33+JJ{pDj&04w`B5Vdzv!H+rk;J3?q>OCZo)vpWCri zwP)rjWr1)&(lBhrY4_qQqHmJ`9mL8Vey{$7Lgo0jNTo6r<`}J5Fp=PjkKIfP^Hl_4 zccgeeR_5a>53O^7V&Pze7(u%O7aqhE6`$Nmkf`4b*zIn4d3^){0#2upX4ekC=h0oWYL{8#? z)%t_u7cWT_C0B)zLOXuEW7aF7h0zKi>IQjBCc(2p2i-3vzkwhCGcX*$6h9SeS8-tT zC!LeD;SQ$%(hR9x%8@yqR63h*<#x*j7zhHraIO66FsDP~`dlR@8lZIj&To-U@b-bX zODjIVsbSFH({^0RTzSQ_9}WrztR*H&2GwD)U`9aA8c$vlIgIO@zyK>nRE!`0C@7hM4IMBj@BOcgFFteTmdQ@JajjRSf)acfetF`qoMF<+LmL#oGZx(c0R- zr}PbkL7(z_l`Gbv#>bBNR+S~SGh+aQ87x}0Ry+P1NcUNWFW^GZao3;BIaJzojQa(w`38}+>afI3yU!^!0_`j^fDh?9UR8LVhnTR@-O zbrgR2?BO4}K4t1V@QJ^k{9gsOt^wjx{GTO1=$%~tfpLs}^9=;ZGr0}|xQ`Y7JF+6Mw6^Bfxf6%XiOzJWG>A^yGa z8)*8w?SB@W)`OWoPB~sjo|sqaREUOghn?vnfQrvgxS#PK)d5nTD*tEE_ZTqAal=XS zM;9{=fNi5!fW5p`-<%kk>xYr2?JA}**U^7P2HfVfMqorGftZ<6osc!2miDw4x+X&0i?}^mq&)^}h>;YpVy-?->CVMeqEyGvErq-Yfqa z4u0M}e%bl7svipZSNPvKn1jQwDa}BCqX=L9*%&-dHS!zguc>W7gTDmX|Bs-*5my1E z;~gY6VDIZcg{c@f{SEN1DZqduz^B{*-Y=^I;{OiQKa+sDe+I9e!Ov2EY1j^@?d7EW z53rx$-{Yb^x|4(hz~X8AJ^J(SU-XC`_9{9)5k&Pw5c~7v$CW6+z<GJIq+`{)r$dKa4VVj0Uvv?}H&QbO59SSolF}`tNYxeeDk(k9Wp= zwx{m_QYbP3&B6}wuIysfbOamaDl&6;`0md8)$hq z-Tkojq<;dMHu_{70FcE1fBqg$x&4e*#-MgiihO>T@17*le`)Lbze~5)(6zIt{dX`h zlm%EnDFWQ(?_moKG*Of*&;zXisgnSVe*dWD4{867`W&_DeRLv%f&ieNUUF?d|ZJ;t!;Mv2zb#uO8jgjywo(rOo3K$-hYalfno9H*JU>`1+%c z-|gWi#6QQo7~Q&L4akX^p8%dzcIf;sZ2TSBYwLT?^!I4zhv$QmYjE%T&RB<)VQ zTc)g@vUWOd{zGx)KlBYSJblWi*J;Hk1Wu{^SuFti3;KKh#}OaP!#+R`;HNq5i8r8p zO5;zYQ&B344U4{k0Mb4H6Z@yk{{?XRJI0UbPjo{JW>V(V>WYk<$Kxv%7(<`2KLNg{ zkAHNIgFtoYwf&P8?C`HpKXd+&A2Y81wE+hhe*h9F$eb1+t9f3ZHnE@JCo$%o;YqZH zLH{z*zi8u6_&<96lk8QrU3u$C9l-r5czU&zQ(4bNv7q9V=1;TM~(S}&MUBjL45anAx>ihNZbSlfLB(Q(o?@IoSw|y@x zNI3r5axw-1ex_5?JL5&Y-pZD-(sq?TW`~C9K&R*Po67GLkogx=pnn(rnbHMxY!ij^ zT}S;#Vu7MbudeML`;<=u3i$6r5i2Vh_7KQ#Lvx`b0GKq-KRj)6IqijiLvcqETy%AS7}VlgHD0kna{d`Rf?Y4m>nR%VzMmMO27Ps|d;o z#@anYC_l1!;Pac*@01U~?nf@)2(SDS$;qH{3Lf09|D}8P(9V7i1WP@@BIFwzs7OV7mNdVzdy*j1U)sI zY$w=n_9_&H&GYfh0sC4*i7Mv!7i++M`!`wO&VG1(Vg4s2##j{#$x%-t4__b$du-}G z=lE0L_8Gvq(+}~*hhebRT!x;N|7iZdboHGaX7`k{ozpSmcY?{ZGvtIqxji_*WLL#| zPC8fHtUk^-X}f1*u%OsIuC&AX8XuN|be|t;`qdCm3DxdFe_K>wNSaWw9!PF>K+)Y!#idRd?)s=#DF$UJ&1S^2^0fX>0+b3ooZ%ieikljNcf;m-Hex z*m}C1d`^1=H{-F2FA05#hWXPDa_H32VxU!cfxhD!x>*YYriY!`SFxt7V=j^ zI#mxn_J^wj*B0oLuRBo&Ry;oOhbdsL6$>Y#W5j3USQ_Rpv02*yC=-r!QWl z8A%jie(>0cr^5R~KIma8KT3_EvD-k!=ohtsUk%1W{yhr-3Ez&Br^+T{91;*r3YhJo zP@5i|oTe3FB#}d7+Z$XnHsWxr62#UpsY=S|7$u9)~_9>EWQvZTvA{Pkg zu_BX6U1Pl6`Ul|gy8!f0_$T@P5FBg>h(r;_&sl%e-G7HX`GP9U7X(lQ(PW-IB1&7^ z)r$T{4o)dUK)@Rzr~j5-hQBhxb6yu}+2i^Q@S*{3x{81we? z_p=eC%N;P@b7gnri_%+pWuEFAY6h{(+bXZcl5 zm+2rLaL7EeA1_%mq%SxBt5!{7FsigD z*jauXLAZo~+62pe!F0*e+3eMTSF98Yxy|=cREU(O zolx*O0lv)Bk;UHdrAv2v*xuY6$75*0^4>GU<1fGtdq zSswy5rYD6aM`3*fUGRx950PdhH#I40YcQx%(L)eI2%*UJ8X|2=#38qi8dk8KU{ww& z>yjF)f|VJZ|MfB9H;~^`si7Wo3Yc0fYQ4AdS(rv>oLg0ZED3e%?1U>GO@e|hGONqd z$xTd;j|BmFuSy#7Geip&;=$!Rr^ahcA(`m>mM^2XZGO(2lRe(r!W5s}c`_ zzPw(h+o0$9_(3CbF7%7-opXdOc*b932vlsNFBKa@Lbi_izJU~j_aW_Xwkc#qJVjD^ zl*A`5utqnWqcBJ-=OfBw4UpY<4|$Z`_sY-zW_ZCH7Z#lfoyS?EH2q)%G=Mo#B{i~x zTp8gBi_I!xj?Q6oa<@oAj;4@$6kW8^^|UozQb{HTBP>YMpgLFaiJUW8ONOpPS#|8& zxY?96P+S0!WYhLNS-~<64mn8QbHqfHSl8HZ%*=U!i6 z30$5T2n~<M(8Pr%hC;qt!`7-kdLqGbK7(rR+3xg~;qdyTK?Ie$4)M7F97^LE$z# z1;lKk^-*>HHA7ky5$D9)!0eZ5IqbU7kTBPFkBib`twH8N+we}>kGPrlBm<{8zpLWSVI+U6OPcT>H($W2W|lxG&1)ZAqkZDOCDM|tU>%xBpi%zu6*{YB$=w( zuw%NhDyQ!$oS4E-N2M7>Ry8qEbc=jlIWX$_z(QP>Ih$OfbS6D%WIYa*I~-Qq2VmGV z+g#f0v1~_>>5*j_6Lx={fu;i8&1jOmifS<=aLN!^mnXwnM1YZ)r+bu8U#_u0&uNgZ zq%pVnkoJwLLPggiI{g6iN-{fBW`17cxe26Q`|MTHo0QZ{cjIc{O$;frP-BCXwR<{l+| z+kDQF!l)~=7!8!%My%WF){TiQisTd&0$W``OWNY!w#|Rxd9*Dur`F7qIMV7tNx(99c+@=T zL%PPn)8bi#FVo!L5Wl5^rmbU{yUN4m$+#^+!Gnv5uS$E;)3Nbre`E&OXQn|T&dZY( zL3-6n!N$)U%SzWn`^tLS%cIvXA+&po^oL!9%O)+9z8HTUH;<9C9@=vWl?mJrB;@ys zl2N2X>GQ*eL9b`(iRLA{_^dH)!83d>wbKZ#r{B~pE*PMYC3RHSZ>~=-QEit_1o zw*r}29n+Nf1Qw`HVQ3cW$)572gA8TZ)@MD5bq~@D1H{?)>e!rsUJK<{f+CIazG^x} zVL+iBw#`jB#RGI$nS$V+PD2WmALg=+o2~%|#Z@PX;HfKH&1MtR(hBk{>_^EX#~)|i ziX^IPXj@%3Oz7J~dcJ}5>a?3*1-V>t(^F&G0B+Amc{3&($@6XurO&uYnBjcl6kN*N zL`s{pLRH90daE2Z<%AIF!dq7r^ho_lH+g1?&5_q+#}H0eU4UEF8QY=al4aZj)nea<*uRmghW{iSiX48hRPc^C>}^}+h-q&fkMHZCW}WAciz|bb zUxwVC5j$k0^kyTuJf?&NXqv}RgMfdj z3o}W~QQX9{IooU#^9x`EA!$_Z;ZV}hZ65Z1C&3=oV%LR(D+$I5*E!j;ZPkzsV)P0; z`&`5d6jCuy!YRqJOw8GMku8HmyG^?@FUgQ%Y}dc8(ve^Kxb1ocUR=y~n}c8dRwBa9 zMrOY|fK!~@>M5`~&cc?RSqoumI#^8z(FqJ;w&7U6v45P>_b7OTsn06{(W!mz%|t|j z3T%TpB%~Pfwv5j_!jNx(pI$z3Oqhi9kQkmXSd&cZRCU7~C&Yek%N^zaj+J&v-zK{3 z{?%FYP-n29G<4wYBu!QclIC^8g~qpEd2-)T7l*TvhxSxSX5yGgwGccEke!06BUT!{ z3E5eD5ucZH?ipGdh$77EOy$f?z*@2h6Ph_IH)W-R5gKAbN1s+V*4MbA>dCH`t1BT?+|s>q$3_iRkB%qVJZeA+|PH!FDWZg zu80K3M@PphXt?i!WiCGKE$CN*^UXn#EWUNc#oom!!F8GE6Yan?Hh4sJ^&T2=RkDBy z?=jOLgLvAe{Q#LRl@X5d+_qtrCy{p2h|8wXpoa4UJFjRL6x0=UN%AaxffLY-ORxBc z$rPoX-0eFN1Rg|`1vxLg)0RG4=Y%N;SoD36?FexSF@c2F8Ad4wbS>>3+W4*E@hU82 z>4EJc{KFmCf-`DK9ma}7sR=H~GgGvGVfJeItfJtU@>sQLmDGoe*YRo)AC5Rv_GsJT zIRvASsorYI6XXunj+}{V$}@Wcd$VRJa^ucf8JIMIN&jb`YO{54V&7XLC#i0W5=~O7 zGz}Oq07U%%56Y_LzBSayMrvN;nSj$RnYC2EvfgrPg` zP$|~Id9~QQP0(*5Y{WFCNW)-NijKew+Y)}#qw55=I(+i*FjuBlW;o6|CEO>ZixAAr z6(Iq#_J{6>aKDm|*7)!y222fokKl-t!w_uA%%$;x#d#<0L^bv$kU3QesDu)loELCL zpvZ3B!awJtd}wujeADegGa&(N6C#V8KcbZ#ZGDjmXPe&$U-wK>vJEPg%zHxM=DfYW zR&Cazb6ri|pCp=^iIX<4SZ1I{G0c=#`u1D&^TLr>J2GA6(3Mvmvdx73;pA1OGEHzo zP8%|$tgKloo)VjaEmGvD`3oN|F);-+t)RQ8qT^wdIcAhif=dq~z0;7GEC?e#{B$YWESbAP4j4jJtX?Z_w7Mqw*Jd%ip zgF}qt!V&*h5x>mH3$rxB!s>j>VU#$_%5U|0+FLoB@nu>(QB!<-E>P#O-epkZ_3T!6ker{NGgWccFAD72ibN#(I%4gt=G;VCl?Z4witil+_C>RXRP zFbR>0&t^H&A}xXfKQNhO%Nh#pG!U=#S8pQTatu6ec2aTMxzkLQN|QA@g_C4z2E8qw zEltLT3w(RRq$~T{y-ePA@S_Vev!(ojh7ffRH%kM8u<26bdnJU0t3)m;&s zPNpUqao!;7Fn7|XGEQ|)ScGohOY%l7jch&3XMydc{Z)yhg-V7lo(685G{a!gHZcuU zzitDMNncz5bRHV?#W6s(I&rD*_N-m}%qV9dS#D4;9`l1++B^oNV@SAw=oL2N6gV#& zhdMDa%bkMVDyNObneJi}JTovlt~o*k=K&3yy2s;-cW7c#nAv1Q4BR9I4%{BV62;|A zRFwGk*yNtNn`~RT+X}*3qp-E^T0W4ZJBLEj!`w)yNhlzW{@P%sCPS!}@`SsNjOPX3 z00J12M4T`zvK#6U3YM0WQ3&x1(vfBrFJ9bUUwL2hL1*i+ZhC;NP>XDUF!g9qVw|zn z!%oWT@U%#e_0%(L2r#T2<_~p*b3-Q6f=ENO1R4v9!uqSS7nOq~DEJ=hM3EnCXHyxM zoR@Kyd9&TYP4qH+I+fcPFUe?-gd&KdHE{i5m`1c|)@7<4CNUJfbP2sy`@wdVQy5eB zwv|}R8wGc-@Ohw9gjWdE^+N*F&V?}}JPK3~RJ&OU-blO6)Ctl(U(VXrZX1!~W)Zy} z@KH5>gWXUyyrDv*O;BfDm#iUs=0MYAV<`)@+H9W1&o^K(%lTQSu1Ps`xv24IV*~0> zpdQp=@ldH=me>tePo{A^3GF8)zQ{nD%BCFtMypOY;~?GdmHQj-44LQxbXAvF9=7QcYWjtB{< ze0b<51c9F6^Qc!1IB>{NgFc&*9B>cGP&z!CDOz$xQ7w z4d$c7r^n|q^}s<$f~0(0Vs%JJ1nnK!)rOC~hE4FD2Afo7N<9`k z9)pfVTmI~qyF39|o-Pu+sZ(%K&Sncz{6f+SRA1HO_XdlL-VIxAJP+wKfKXB2+Z&v1 z$h3}JHT@*>NoHrHQh5NA-1Wtatl{}AWayC2V`tgJuqDkO$cj##6$768T_j#lG?4R@ z?>7-;p~6@6X0M>drr5mi9imgAdkB|?^0%bVNP`zuV3@F-#WymY%ibS8x$B3AALh?z z?nvB7%RjxsoZ0$-Hr_^w{(4|QKNd%2XyE3 zig(ahF%Z21?CI!0b*Av_(=;%`;HDmRFI!#+O~bJ zpt831o6I+Jc2J0I1ECc@S7trbOQOM}FS^K8cUfi%!zO+F2smWmIEY8pIp>Q(505_U zp2n<;x5XxMrqmwV`LnCQiq3}%#L+5>tNS=Nf z%DXhIYW^*><14yey`#u&%3%am^%Q>7Vqk;MD*4A8_EtD#(i@O$_>dOZVlu0R(r|WO zpqCd3S62rkXgFqg^xzVjbT*yv%XLM_V_Eo)t-vQPgiF&hs{f*AJSKQV~-ms-a>Y>Fl|H!_wCaKs36yEt89iO!pD`D zcy8{(9{^?u*aOQfeuyy!%dFQ@7grS{Py-TO$%eZ3n_U{_xrZf!H>3AZF=VZ9A~?9! zO}&ga%moo5%gw^DR+ZDk^i78S{3GGDXooe|vphPjn=2Iw=mS%qTixU014qWY0N zJ*&u>`kW5eOu(o(uv%mOGTsWBe%V8vdJ#N-jdR7y;mge~1M5dKVR{1#sFcoC?*m$@ z^@fPnrovEXlkGupPh8=-B6%qC%hBwf##YY4X02gE$>{M%{7JwAW;qb|UMb0Qh^JjK z248nULp~m^5ZJ<54ejvfmcp5cBXg6e*R|>epR(Aph^narrGCZiZz{N7A>t|pNYQQu z1vzZqoVoo`lp}_S&oT=QSrmwIagqa%+wufJMfqfpXwKx zkt0m)&N2)2EbEC#)-euPZhyg}AR{=h34ypvmbv(rWsE9Ha6{4?pU!Vrl8Eyb{VN7s zoh0NZnP$qT7*b+FsG=MV$J>IcyR&Blt(aRYyvd|ja7gEl=<1@!_6Nl+*Ehu}1<2z# zm0APYl>35_Jc>u{w5*+7y_$mZ(!>Qr*Zk-G{R(of6$P&Ij+)36NeWF6j>v=%Un-3{-{H1?#@b-Pep6}CQ$ChBIQ!+C$egFBa|tfcoAb==sIFw+_o&~IF78L~%f zKviX#`cmbw%%*k#7_K~U`1;tUc~*5!!IKEsfI&w`F;pTc0AEHWLOM>xfy2CcE-rhM z)j&*AvOs2TUDVaEGA5JfwncRC8c}pY;NqczbbRW;$PNBH%bJf;tS_H>QF*q)Sl4IV}v`G7IQh4fFEA zGgP)Z7F2wM-6(n&oy}VY2||sDaj9|VfaNwhG_)J$AFTSS@B0&)3VV}ftzULyUxQlo z#8WT&%-le-8M4J%J%l3SoRH8QHZX#Ski-!^OVjV9oD_rd%|_7RP~~)j?FrR3#F>RP z);$sa=Ea02H&vr8XpE}(d_oYW?kYL07nFqI#mTIUE(qGQz^ez0aAF&4wFWS!GLzU$ zc@}e-jjE0?q!q4{3=0GnVn;UJAsv? zC+BvaIX$)$ct3*$0#5A&4()_G`JJ5Exenu%>Yu%_Vf4qToxod~?fj^lI)s^Vopx-) zdDg?FyL(c(9}jjk^5gTR*R1y{>S7LLw%CC0)s5uGM=zVQNufnTW&NE>K;H~#-Jto}z)_WZfb?Qv??Na>T9h=|?gydZmuoJ*L@7=E;yjBv% zaMzd|S{PMUvb3lDDe41Rb}zvp%PhVxZN5WrW!-HX`RZfmhcNntZujG;o*h)7xxY_U274Dr`J8K2cdL%h2ntLaiAjgb+ zIrriopoOukGhJ=}0wOAi zD6V4lGnNE9h~zE%;uQXjz*jjrqrq^mW!3mTnuoABOl8wze$gTAwJks86(27@ArJUx zhCqjyuOtP>Ys8-fs6I_khh$pq&{19%ox$FDDkQghOozdDYX}K0>|bM()8-Ou`Pit$ zy5dCW>wZm^yMx~$XJc5qzTZ}SE78*RywTi53F=j^j~jKcbRSohaiU;mYjJCydZFvM zqj};Lv3+S?uhvTp#mf%+yb0pf;3)Lw9>gt*(}q zkR0351ZPG@*n_J6`#FR(J-mn~5q%@~c-l59XH+;EcsgOx0-}=724+DEXw{(scZkF* z+~f!LTmmxHAp58D?CSV=8E10%{82fm>U#x?`01=SU8yl7_%}b|UcI&o;ra&p%$`d# zFUXSBv~v4q`tb)Wsq#mJT<3%7NI6HfCpm+PC(&0wEZnQ9(cr|+D_pbhi>D*5>%9Xf zWTgZS;JD0hIuVc;Y}lXsNlYw$>KlmL=+<1jc!`b%5x4N`onJH8nCTbR$c&^1Icwx~I;SMrh5FA8R~Tef8q2p9+JAgR{Uz zN*O0hzMk|q38)vWhwRc1Hn&Y@f))1Abt=&Y=r>9-``H%NyboUIL+HVgC`+}s>m%~Z zcfDXVO?!Hs+^dY#L6dr(o%~sA%*S~Yq?gZn>txU|Va+4$lZF}h`BSqSv){4fD9o+} zcixT`OF!24Z!x*{vN7{I>8ew7zBNzf%G>y;!9?!Q+RhikDT*#9ny~ao*jx^bbpm#= ze%MkJz;ci5;n^vze9{{t^ufvBK#q6GL)C+BVtJJk*~*P--RkF1R!iiUg)*9M4QPZb zx1kB7_snP>Jd=D@U~&7%oY-G-o&J^eXcaQ>9zOeIl)K+$v*xp6%W`02`_P>y<+ON0 zse=rgl+qoE;X`{w=ku}co%Ct0i16QQBE*Og6uw%{-Lc}79-cXKGufV|i(*|BdB4WA zUo|^jflRGqhF|c7a!mwrRtEcaz0VcpdeyV3_h~oBqui*{a%96UtrAI?(2p1%l7o6S z*}OF2)-tGRfixK($4_Z*71A@=8TB{5#-y49AF-X&jSv;umdiCim;Z&g<3Z5|=`?%r zJ3h->d9TaiBJ;cb-$4BzRzY!8a+D!2{?!KaF#HLL zVwL_H?Q1=+eZ(S)#G-ES$flFbt!*j0E^%wBfzqDC-h;K7fym@i}Kaf7EXzlZ=jy~vw?JKb>fZ9heyg!_WUbY%gF`YLtEma zM77R6)(7{H-^*vOo{aNTHf9BrvSRs&h6LG1J!iiX#1}A|9PxO`y>sRam)|Pc3ss}( zGG_zF45~cXcIceGhTZXozCx5o_JxM_jaa(3P-W^q3_rYHfD7>zJq+JQ<>z z7fnwjnkFR1%h+qGdG9)FLO}PL*c$EdJV#B2;3~PPNd1?qFX%KAz$AD1#@eqFg2oa|Xo`dB+Z<&z=?prZBK4U%i>-oGj7kCW%jTMET z4<&Wl>Raa`asAKf8Xj_3b=F`87Rbzxvi))@@AWgB4wF713-evb(+D$``PPxgh1Z6b*;fxaaaxE(i&ZZXOXLe4Fg6DEnZEbk z*gm)^n@cCTW^3fCAkj>x`@l7YVZ!*Ss(#rn3v2?I$y-;=6iYu!uFOW5CgNhI@V_(`}7d(OH%WK$%`e06%|4g+BK==Uqv8e zZv%X{``+`@g>?;Q#X}|U^@%O<2JGpeHzt|jIJqu3e|V?8pb$fOOioCqTLR8IU)!T0 zQBNE#%EqSp&RYL-rSgz>3hgrfB!@Ue1`K-a3kS_1xSweb&;+9RoB6}NcS{)DlayfR z59o_sB5!IIa*vvRWYW=1D~_>C$_Q)S3fKuuq$deXF_yI;Dp7e>taW`nnei@H&FqFI!iBdf`8?JV zD-zi@`K~;6(P=pA+&G?uZs}~lym}#WRj<(=atwP-RiGa*bkK@VQ?wM~+=m;Qe|Sw4 z3fl2vXcd01WLb8>P$TUPWwFg&5+_b=Z9HX#GHGDJp|R+v+U#ZZcls$rNxHN3mOcu( z*X|h=XW#jtFPet1){`ad-vk3XtsCTM_YlU+3}Cxcw7(j z(y1$%^rW<^)uMH0cK8ap;n4J+H^O&|<@v=&E3`$edT%tdz_4>?^qDf2E*5ALVM*B; zMjT0(EHsvuN%_NAp9?vOjoU6=5uaP~Bb9mRb~GE7MDCVY@JebfnP-9778f>rQC=Z& zsh{rC8K+E@7@ce)UrbImucMx^!P9)K7jD#)iRe@YiF5B)S-Es4w?f|%yCby)=Q&1% zigpMs&YJd=BlvEU7wHEZ0&Y#WVNd^s$uflEYTM3*#(*Fdqr(jnLe+senvewem*ca zt5Sped5FC!zx5kv{UM&dhm1q2dz*UsTTgPzZE$axX_6~-Ksg)us>{WGXkF*6II&yx z3`AYK;Ut+hB4JRBks8-)`57;jZ%oO=3GOPToeUOIrlX zUqf-vUIy>6oCEJNeUWV|eEe2N*>*)E_DxmtLL4Y)~;Ocd+(#`lvgXt7pk;mC2}l3;W3sw zqEY@X@<5e6s7l0jc?-IchHF^XayEtTo}?R5!aLTl6K40Uc9%m+i#nWMWZ$|;)a%AQ zNl(=fk8_b+TRulg(N+ZirSw+{60Jb20yohivLm@JIiv6I8-tj0O5S_Oj+!`xp{`FCK@Gwwt`<^Di2+~zufCt41r~zw;46BF z>@RZa6nn}L1y80h33$FODc1P%wzP)_ibo+?*0Q{giO1r-Xy{=9H@+;nwgKAaM6y|Jx*7*jFUu#y^!4jd86;5;oB=RO4mWX zb#}~UG}@wTM9m{OR=2laV_KQ=dq@{-t!VOi4#}^XhFQ1JmBq=_4np#t^b_feQ#Ov4TLAwi=VS-f;^^8>KqTCZpjBV0o4u(2%&Zew#I)$5O zU+DiN(P8`?LMW$sp#TbBz8Ph>bDNtebALNwf$$nJo5KAC^G9zk8P~JswTwQ>;jP3D zmHO<^TF#Nk{@^A5{K8n^8DdDig+Q1=AVgo(qb$TM&8N&zzLkA1Se5`=XpOGeFG~eD zYmvDWBTI2^2Ax!#AK;+Y-Svh_OW!=;QJQQffqoQ}@MbvvyR%O_l5~60`B+}wc=3@T zW4HnK$bzt&A7jq-gyu5lS%|&hZUB~tM^1DBsespAQt^z{nn?WfF4J+PB)8zWF9O{7 z+>f^XC`7$-EHYWnQprEtIy2O}|26)R9Gg(TpPDW9@iK=P?PC9t5#HywXQr|W?(5T8 zfw>%CZt*jI4ZJvI>q2YvRrhF)PkBRlY9O}tV#y=tyOY#$6A#SG3}{*K)Nc-0GK6)cC@HKu z^S$>Hm<=nd+K(>{_NM46(C*H-Qf@Jrm+qpM2KYy7S$gP0S6dMA#BeE}Lf+*bsU*42 z@~XiuAI3Njgemv$mAUtRY7Udg+6(yVOZnz1D~;MU!ugZ3ex#9j@fDtSYF64>d&X8wJP+x5~wTOe*Q7 zOFmA?$@doSRcO3O57ab#mBt9$7EO8XZTcjhwGKQfl=@JxQzS_ zvWti*yNPpLulv=?^2PAxihD_X&kR})&`%zrW`*Uitlx-uHadEAKM=%Ag-wWkud6q- zwyM~kO=j;J^WT6a=&=uP&LMmMu4|CL#rEwYjm*to~br_^n$v59) zzht*k@?29v?+X^INpLsXZD?P5)0b(22F0yWKLcM$KWjtQT>f?@m&b~NK8kIBitQiTGfykIlp6p)!i2A^tj*bjNzRGSx2(A$MFl~1C9Afk!K0gJCWHrVV4Vw zdgnO0MTtZ_cOs~ZZN}9V%j7S?&SgsXp#-vALW6I)nm*b~By=7;v%BxBL(`e*Y9)wo zJ+i2%a*d96h4eulIocbZf4*x$Q1*PwMPRXqzOX2*B;T0<{X`f69-Bs^;HQskd>xx1 zfg;(*&HjzA(lvXMv|}r`{HhHE)NDH0SYN+q7psqrs?B}+a@xG9 z?mH`QI`9Qz^|5sSc#kpN2IYH6zLzFb2_f+fG(Pk~-JZyG)$4(@-|BU@ z?rVIZInW#5b(1V2EEW-xyZhm&Vox>~akubwx-qZGqjlCwZNorV`O@3of za#M_^MRmsu#((Z9VJFQxrNLm@K%u-^rqaD`p@2R*b@KlA?Br>9$)#7~)=Oh*VbdD5 z2xkYO#iV3cpz|OL@Urj5BFzsw4%W8$?-FK)y>6-{z7VXmIB~#>CFJEXJ4_Ljw%Kb6m zI>FXeDsichCI{UE69bNFNr$*EG-6j_3eqi;z6nJt7gZ<7*&J$Wx|!+9$a1-JDMs&# zg+_3Ra3T&qp~1-em){3XJnJn|6MZ1W5o6H*bP;}>C9XQ;&>z1Y?WORNNZ>9VF)k>p z0xn7GAf{1p_h5zU39{&;Y?{(=zVHWtV7Yzszf;W|pJrL%MLGhT4ktp z=L&^KG++xc!^K~tmUSr>n1ruydoHk%Huj}iEpYyS0JuO$zZMHwmLl6$y;yoCFk?hG z#-V|=y5<%RGfYTb0d{Zm5LYA}-F-CzxXR;=)S_H`Z_+SsHnb_1xdNQzIH-&vVWZCF z#Bqe?ddhm7y_vS-!!~NC?1t}Gp9TTGA3yw*UE#S$M=UoscsiEgm;$&Sn1q-H_7QWX zU#mVF2O#&xF~aq`ixU+q5pelX!nK?1yCW|&2^3*VW6^lz-r`G!kD7mM9}CgHr+5OGG! z`c*M=Xld&iMG0Ulzo*fJ)Y~1s{{S$$d&C=DJ-L9ILW)I$((GaZDP>evtUWL07;U`- zNYiG8e880}+?R#?%eq_H^oMqRME2BGoJ(}Q-jhx(h&is(y2wy$#v_$LR{sD#@ak5< zhWQdGMZCXIm8DlT7P*vR1>PRy?S?cX{}x=*^Iuk3IMH-_12f*T;#z-=j)7+uEkuZd4td<$Av zUfvh!ESe+6;<65TksUr!}lh?J%1tbH{K3*FM6SW#>kP2j{k zS5LQ`sIbz`yUft%EwSeUg_X%r7h1Anz|p6iu{274dEBhm9K&(4v4hqdn>-K!Rl(JW z_m!6!zVe>i{QOM!Ebte=*`EdQ_+JgtD%AG5npaYqgx8!NevvwYtx(naW)u$Gt1D$d zDq^7^(_>o0cmBfAM9?^fD+z0RH7t>CDJX8AI)}5PvzzT0{aYrYj@UJW7*@++7x96H zZ&WaC2DS_s%bYH+A82yMl(>W+OjP^*TQm20BFv=KX?uaMqCwF%X1SD zW=jk0{f1dtf?z={7S+ZEOnoO~&O1j7UcJ7NmD^MtM@SczuHMp}-l;?8aDxd8(g{P4 zD*pg6rD?EpUFA7xoo(k`stxE>{gA>>DQ+%?rvNVT`KgQ-D_2I~7NhD*Jm3-)h7_F3 zD+kc?jskV3^)f7@*2{iZ91yBWz^P;Fc0lZ6;KTW|+pGjkqe17_^KzVK)etd2UNHPc zQCjM|^o`SHv$y`nBIXS-H4-^`YYK%J9hsEtmkA69b~E!i8#~SAc3F)Zl&_R+wfi7? zT3)s{rg7wf8tHax))lJ9HGPO_4_hCrtZ8lV&*pp_jBKn?P*@9*)tjT%!IZ=|UVgjz zicSS>9`&&IgKU()$y4$Bm#zg@))cdCp1J$QztFDJn1@MMVHM&$Zvb>YhqUdPzX|09 zJk6He-sjO4WgHH=*$CpUjel8w*FAfbSo|V?bLSzbI4%Mi@RgA6(&)X6an@P1oP++r z7l18hgAkf?v*{mz-6;J0?KWO0+YlF{R5AV?`^LE$(lJ7)@so~|2A*(J?-pj2*vIGf z6)*6-FT7O|uo+`c+~MVoVrq|F_{1$ZJs)`3dL%ds^=BRpcx=Q<7mS}sIHLg>6M$dZ zZ15JNZwr25_&3e4Y@&2(U;~1(%RC%#$n9**Kz?djcBz6C-};$KQ3s=Ss0u`dh_{+= zpNV2I&<}X8L5egy?}>q*STxhstjYquPw6c`c5-@puzB(zE~@yK2a&PTW5vT**(ef| zZFO0Q+) z=_#!~f}&nwDl<4PRmxkHNKB*PBM)w@^^~l^P*I`=<2-O#ox^Tf30-^68;BJd(2JK3 zE58EWfO>{vT*|3dpnwyBv=|R%GDktQmU)@$Fa_OEeI+9EoZmMvW7}{I>6qb4RACM! z>ah2er)tQrPiXFeYi^%1gDc%ovxY)$sJaIsEQ2e6GS^MRn7crh1s6gc^ALmFm6NxG zO83NE4S^H~m*yg`n%uD5sFvi3k-bEP$uB9MUZfNN)xWwm2^4E3*U1OS^n;=@pYm`x zuZxJ#e8}@hSlmmwlPSPjz9Xq?(kv!a0d31qy9dr4L+k0zqZN_ICWT)--zV&-8%8`0 z;P!+7&{6tx+x1>5Tj4{Ri)<$ZiG}F!L+LHMx1=`*n3PI2HggFpZ#U?VDtH8AWR&6< zd?2-!{WNm{B05&sd46hIJQ@|v#n48|3yZ2+P|i=hObsgYim8*h5fYr^;#i2cz`h|X ztG^@i;lhblh^Kn<_l&}GQGUocCs64Gy60V;Vljs3I;^8>rqFTcEJ(WJA4#V_hgp{z z)tr8PC7d=2bGQdg;_q`a^ad2`+P-I&SuYGeo&%{*gWsLWZ0<^CZN*MaMcgRw!o?T? z9X-%Wm))CTUM33w!kp-cuA{qRi1snp&CB~Bs+stRsobsSP#_PH`sUXpTD}_@eJp%@%asEOWLD2o<72>{3 zaUPLJVg=jMWA_9rUSw{eEMz{ACX4`Dl?c2ot(^MY5ljvn`Ht4G&D9ayLiZ`wJjI=z znAu2cyfD>W>h0|bK~8MMrQ;PwS)NF8zR77u=m+U7YLlcpM;z874_L1FIs5y}G!-3= zCiojm%|G9y`J)-Z3#>#4C^$NqrIi(uhN88K!w^tnygd6vV&jMv5U)(auThv|gne;_ ze4tVoMl8zAXl(V(#d-eDEC_XX+2UtP`v>-V!axU0ePzt4I}_3ab{U9jzLf$k9Om=f zRI|q4NGw5eyAWBR3B5pM+|;SQ11cj7hs>+KMDh+@-#Ck+##6Tt?sL>VunU9h;S z*)+>pPDrdSwL-CRx)ovXa_GT8Ym8V>R8?!Hs!(T~7S6f*#ajJ}!=`!W5W)1E|^Am(uFuN$%p)vCu{J=oCn|S955<( zbB~xQYpkLn3w1(w#JDuCQc%xY!#@!mx)(~nSnPqpN9z^{y%;S%Bv|#19n^OPZP%|| z&3%R~Yw;O#TiJFLnD-Ha@yBAxfJVIKiKv1aGzH!%s zzX}wrvneG#Vz;lPJ$NhW6^-105fd*4F_}~gu9Agt16;qBa0Dd zI_U-6VOrvhg{-45v*%MA&4nN=H-p0A-3A`>MA;u7oq4_$6A0iRyu^VOQHQeX<(|tZVBi62rXA`C#w9yyG2~0;$>a z?+o|kYvSNq$zdtd0oE14-K>95CbWeIhI(y^jkH9s7Cz4j0XH9Fqsktk&;?Ya9QfeQ zt)ED-gI?Ct-2w4`vIUH``0zJhy6^YY;seql)Nce+L;=wOgkReQp-t)+L+*wA++l6? zZ>AO+PA?C4BC{u-Uul2$#_VrcsCXK)-BZuBKTR=c<|kI(qM93-lA3WPZ;P<&hF(b+ zHVr8BAqhyj3b%iGfbOEa^D;__-<`-s_^Ru`rY`p$iHA3Hlfz~eV+(<0$@mh8Fj6?E z2cMYKQ0S_+QCUnmd{XuyCxkpxbcWEZMI3QsVf5vST5!FaxIK4(E^dAEblfQeuM#jd6r zL7j`L+-7Vm3cm508g7=Q#uV(sCIiuT2pX=+VT_=^4UQ^mLF*`O z-N8W(OK)oTlnX1E60tDeU%bTvXIrav*K(06St%$sJBa}D=tLv8fLReZakwH4EY*D_ zQjsWX@2pv~!KKH2Hfm79klPj3Wpq%ZShx8Vq`2ruQEFFBiXO%zgi^H&QOyFU$@?Pn zMDO#YN{#p{Kek)`7~h2=k!~XRkK%N3+)MblKlqAhI+Fh5WsIr-mc?IABcV7=G}lyv z2DbK(FG)h^#UvwXP~Aqh1F2CLOaqg_X-OSdT{2=>t`WI3x(v{OxfIc7rLb#acvcr#`Sy$zGQ(<^j+jf4o~3rx;HiOL32-aNWT(Nw zU!vJg{tF!u2V`tuoHW&ZL3o3lOfWq@(%?hdu@3hOTmiz*IMu~wk&P(%%AYgV9bjuz zKQLubbU!k&xC117PGn~5*p&GnKjvkM&Pk5( z(Xaq2Eeuy3vv1Np9Ze!r9h5r6Ybv82aNErq)C!Sj31<7ug_^8m=`OE^vS;4lO-H>y z)aKtJe{sn}%S2+TuRc;BrE6p>1Cg1==FyIcKWT&&!8{PN;k`?kwvvmFTZVz`eI zBZ%%MW+CuHx9pa;z-$=fYW2vCkhPFUq~0)o(ZyFs-Xg5C9H6=#Lgoi!Vh=Gxh^@qO zl_-gsL<1@^(SdMEA-YS@+r<7 zOWxUS+mFY1AVICG`@}74y3`^FD7@uWC|3n5QMrE0a-nPmag1N(K^R>iqTD!?c6KUn z(3cn16LxXy)+CbS(u^xWYRaD^jG^3Al9yIroPGeK40YR1iyecI96nJFfjSWmPYu2Q z06M@gaA4dimE?1E13(oCt4b&wyhqRhBUt5!h*_$3->iHhVGxf~gb!JdGVT{Cd75TJ zs}|w{-A>@YS*M3I3O+zzr|j7Kr%%uhKT22p0$1>o4PC*xY_~#X#J99pr08Neh~i(w zzmEXz<0-P}g4dm&NFrYSs+%r3vG|B`SvGX$TNj=mX`eyPSLK_V!D7Je3zv9#CVWQS z;&qv3J^&Exjg3dPZv)U4TnvFcob~Of7)BKvidRJY%G6A>tSff_3@D(LW6NDY{{Ui} zrq3JCzaF`ifNJwIFE9kxDX14~M0D7 zznpVQdmj-G5DCMNv`Pz7jPi@zQ1)niaRJ6SnrJ*o%zEY=R%+=bY?>c_P`F}l3tjB-E3h+yT`Yo3DS5!;E z9uh6YUVbhcL(;Wt7HgHOll6$`;v z2-!0C@`Ahyn|Wcy_%IG=l?(HMQPO%B1*eu$N)nw+*fvzCFjSmGG!UGzz- zU}x(##<<%LBOVu7@ebtfOq-nXgFbqX&fk^ew9%HD3MD8E8cH7j0G!N1v*qCScvAGt z03lq=4_EC44umy5E|V4Yd|7T4`oTbfa_!0qX#%1;sc61q5e0Uoz%~ioQ|SwA%Z0e! z3gpbJBUJ+-)4FhpTGgDlmO3U((rgN>dum|?^_JI|)Y0^oDRX^17UJe<9Yv|McRF&Y ze9flb4*vi_TaLwF}@TmB{dC4p(wxn-H!=ElWHc?Xpf6e1SqJbrhH3quy;=@v9S(5DNj z2H#kMaE9r*x;9ndUJxT7RwbkxX47ah3Od+Aw&RQ_fSJ{q>e;v%{cv*vogH>ji* zZM7k*j>U}S7grY$I{7l_4j8{!fFRyPs6#}X2BFIJVXq69OhH}`G&d>?LvqR4C7xzc zDq$T6?2I~wxt0)z0coIsK*p+zsaQq3?-u+{;>E{+GS*8K{j={DEM3d@H>jC0D-e27Yx$znFB3YmX21B)SGgr?4-PnI~bm5tyVmr44Z zxfn(revw;*$W=WEHIvnX3m<^9nQCT#2R{%cN`NT@?>A-Qx_?n{C|5$?5SlEgI3HqE zq@`h9n$6e8);a>IjFPmYPQ&x0q*Co>BU2i4lCcwqOHxK}@Wh)cW63NCpD-xg=m7BR< zAmL`S&%~vW{5^j+0TQdBb@cPsZOfiYfW%uZZyM|Nm<0*5q+LLwi*HfGfrvQcj)#;7 z-a8!&j>o}nE@Jq9Xx&Fr@V0Y5I>&HCxT2Oi^e@}?ZMRtjc>e%_frHoeRyQ_&lX9Qn zS^J>)yZr$jYxb`d{3~CHmgSs9c#KMF1HliZH;;+aMe;9F7M2^i6umXyPT*Mp<3Cb1 zdUGdjM8nQ0dP~vaZzJ#VEOCy&T%(C{dZT&y$AE=KZyWd&O5>P4Q-&1*!LbgIBrMJ| zu=Tav!SdoOXzRmBqp0d_7&XOCuP?WP@Ue^#^i)3Y?1GOV`~AP34aX#=belhM*YHNa zU^n6(7WgH{506w!<|Ti^x50ObhyMU0#3RC}rl371VjoG{g%^}s%$F4caY6V&!JDqC zRWwGdZ}aU5zrKByPhgrcO`MCPP!2q6> zD+9IoI*#M71E|fWVaZZx-e&w4GJ!I~?q9d;)zp8Fzw?6PR4>IV`JvbJ?1^3jtZ@FZ z%yHm7d<&1*9Dep0TmC3f)RgTyD7<<|eFhc5JV1D;EAB)x>3KvftHQINe(_}DV4z=n zgeOfR3ZXqlUB>dbZRI)7tXLvi1=xpg!VV?Wz2m`a!@D$^N5fL*?8i~ecN|N64c}0& zvHg~K#l7$LFBSYxG|z7ZxHaOp`Wmn2rT(BU1$esg8vg*JZ-V+L%s2c(0yV2@374vIiIt&cP`k+lrC!>C!LxQg8;fyq6j5q)LbGcx zX>?6TJ{B+*G~VCX{g-#>1LOHZ{{Tq0#_|6E1#9&d{7uE_{3Bu|{{YLma{EdhM6pfB zo`HH|-+Le>a|!@#j%owCe8@@#P*GkznCroK9Y(OT1N0nSs)Q~NWCQkH!y>Esji2#X zm_M?sn22+a(RIwe{{X79E3`Eh{{ThT=v99+kKRe5bK$UEo9%Rc2}nCW4&jh)ETgXl z#C74MOv6Q?JyF?ZTZ>*QZUl(9rQq#yl09;g16=iES-_^_YmSf0^eg+e&FTtmR<~s1wI+StCH;&@>@LPqx3zfQ6@}IH~ zbz|QXr}F9EQxd;TVxm+^{R2^N`NgQd7F?sOz5e0L{BZ0400#%<4>uop0s?@bhS$H2 zn^xC`lSt}1nnf1o5bpCXZxLU`B$`(hEzu76mRs8q#uf34W`Cd18<*MP`$JRQZT>O1fr-9SC&l^g7s2XEIONlm()>0=AH z4xyq|4h}jO>-#rc)v@dSe;nKU1h3}|--=(2;%4K2sO!WoWBv;M%2)2{zjMqJLFn9E z&V#1<_B9UTjPoZqaklR?4KCn{@9-++KTIL9aP;|xOu}dk2kfvoE9gUC z$q2Rj3xCdE(ofRw!FBLkd@S%w{iA=fHxTFkeN^iKNa`IR%`6~Ev1h4oT@CN??P~An2{{TQ=fb08){1N)b zqTl@pXx5xWsaZasrLU}Y;4Ojlxl4mjl3xl2gkYvUZ+?;D>8U`V3w?iR)X=yTD@XHE zzv4RmkYmKb;+g${xE92@NAU)~j932t={4zzvF8@!LGH(K)LM&~v{Ojvid(^Yrr5ru z0k7KY_Q6}yz47}FVUOUgc$+_QEBFggZ}t|yOTXAAVl@|E)aDvv=itAsaj*J5vWL^* zf#mSh!<<;RG>;1Ch_=>MZb@3|CC3Y4=KkNegy&OH z+e+hY{P+Ff{aYZ@;5PVd@k;*yggz@@skC?c4ZaC+E5t4iPubi4n(H=q@Tt2;Y9HEU zZYz8@7ZF9{NanTcF;vJ)q_8iLAE)jtTv5-P{6Tt4VAqSU(OCW)cl#?*bnsj7H!bNc z>Eajq4!=gnis$qiiP9(O3-R0b6ZzHq#-9tG_?FA-4v+%g-UGwC2S_H*43Ee>rOUK; zS*b$@T!+{98<`HTs<&%uVLVM8?WXoaa-xuX=*XsXnxU`qy`KVei{e#5WT zZ}OI<-|BZA%^-N6!#&sfMxkadKMQZph#fZKe@HNIr^UPBA7m0$c`Jns5GeW;@w*`UC zZXrM|8}2~$_l5a~eNQy>O87C`+w@j@euiuH62DD9#k}@|egl8Bym$Qpf4Xh*hQEZz zf7>$t%2)FhcmrhQ^gl+#(k(@(u=@K{v76%L0ezbP0K@lDvOF+7sy3#LSMo5+Q?`9- zT-L3&p5!e%8gr&QO~gBba{`!PB_3fuh_~UR!Po5Z{8g{ghW`Ltztp^T{h;vM_nSr2 z_eQ^Ebnx5xR9Bg#*);pn;FTGqcQlJ00Vg%)D^c2o;#-R}BfQK100Tub#VQ?GExQ5vHvPYX#B~Sv6?MwT#dO0> zjMn?J;XqBRp)*S#WOjhO(-iE9<|~*7Plm8=UwM7}G(@lDR&T@`{bkd|-|T^B=-Mu^ z+|&O6z}!xeYAn=tzXiCsd`oj;I~*3VZuYTZXJOnbZ-xMUNBAt?s`SLwz8|#GbMRiC zCFX4w7{wG!Tr{_;&9M%L+AA5nx+icZ?J>$uMwRag3GCc7GDDa}azMPmGP00w`0G)8 z12I2B*MVLeKe#Vb#oz4WE&l-6cIUKQv2>IwXvA9ZbvBwsuK+OBFQj3Nq`5e+ybIB7 z*HvG?@P2^!CYNurI-KT{F9jB&o3kAe2Z0Ht!CJ@WV{<6EOL&b=baxr5xkW41;Ap>l zvZf_Yg1cmP;j{ zuwM%zTK>u3@=c~=eE$I0Ry#|)`NldAOMD&pbB?242U6}c?bOWAdL&*K~ zhe7px7xWjIqu_Xtaa`pUO4V`|7js+7L5$V9SLSMo4FG3QfPm3J#}k5%X~;{hGhtEr ziK96v{{T^A+cHZPT`CApQEO#`Dj|I%yEOBBf%2kxspQOo* zSTwK;g+@(LuX0fcUh$R1m)cxYoBH?>)O`}Cs8q5L*-jy^2100|K7R0tqFd=Xd3B9U zp3E@FG*U&~hfH~dJXjLt0{fr=puFcToWf#ad#mE^ zX%twQVsSFXn33J)3f*74!(m37!v6q-{Fhccepr_@jysOyxaw;bBg;2sL13;6+{!wG zErIIi;DZO~TM&zW6tbo%Xwr?*`Sp)U$6x7{kQ`BecvBX>9UwK>$fPpBbr=@6K@mu{ zM|{w~)HGtzbCRw5z=vYs3x?TOyb7okIxo&JNYD-=ZKLEEc8j(?&;>5@x`1$c%p3=D zY$qQg{Lg_*Tey_jj_|W#>rpbj4CQQ^(tO4x-QEE~e3(oL%ttUDNHUDFUMgNY{{X=^ z9sZB3r&sxAVmB(kWIa4CuY;+Gdtblk6&-jTzzXr1ceBZ>h%6!j3`2G`{ z-8LR^zqD3|RYH@@nPAMp@hn=L;)>V86dmmU06#g4cO639y~ry_ccPH%@rf?RRd4i0 z@G3=^MEbx0+ck7%B_VlBi7F3OcUAd`Qdx1q?-2tLg8N0~ZQ5GvJd{GA=8&xSjK76Z zj`J31Ck{Tc)iaDIFdVtO!-;BoC%z$B>iAx|(Kb5g!4Gf?=_|xAva$640CNK4wzVF8 zAY;MN98{jsDS2V2m5*F1BPrC=>_B2JFvWS;h7)DybFCya&6uTt^EyO#F&x0KZeWix z&jT?l{+@gO!H)&M*)wq|PgOoDt9k?CZfuUGkVkQJhkroJa>6WsQsnf5r=)dtOMYMB ziJ&J&e7P1W`JWMA&iII_{EpLe>DCRONl&~|l&{a2A%X?vM!4xyAXSm=9r!P$xK)06 z#l%1>(gBQ@Ub698O=zqC03a%6t(D<8l_y()hQQiBl`SUj0A8@8mR?(}JnB9+6+yG+ zS;~i7e`rxLP{w(c0ZX$N%p~xaQu_XCRZ-AOsc(4D zwA6d^8$?76<`Z3x>mKA_6!g5ufx%>^Cl!7cZl!osr~?hE-zYQe5LoChgU_TemPd%? ztE8>jZ0@hVXA+fAO^-pSQ6-v>a9{uz4Us}HriS~mJ(OAuuvnR;`-G$jX9`X#I_`5? zkLC@`IglP_G&3xHeOtOeY_cpf!|OTcNWId`0Kq5_k(e_YL|F==(2C!D0O z+4YyN3(s!P?ii~I6u>A0=SMx@{8#q|0=W}F>l%e7_Zss2;tj48wK;c&kgbXpGvr?P z^SImw(eQXv)>GCHZNF@UPeJ-eb7$zeQkpLXZJ;p?Ma_ZxTm7-TbpXAnDG|4dY z2Iis6AQ@!8A7w$){u=S$_0yv-7yJ6}9dKeRZ+N(Z%*kfR>MoudcoJ?}PtR`!y^zrW z-F>f*=5*WLelRKYt?B+i@F1XXX<1I^8gu}g@)G=6sWoV7|ozeqB6x+v}Q`MJ)5Et}pZ1pZoA z>oBI_TlH_h{>u8z35V0#6|@bf-=w4GY2~xM^z9S?*z0^|H$8Ng5GWYM8-J+RhK}n{zEE^L}kQl9yF6bn0k9ww!xnyHX?o77t`EI4a?>N^#tg%fqsyJipxYN3qW zUe8s>Qu<=51_50Iaoq%a#jAiLvt8o#sOwa9h8UH|vFi{A&Ar1=j(2P3>RQ~by3Uu@ zR}EF#uguI3T&{Bi1c>GVfO&v<{{Xe>v2B%_n=XRHuMOtU1&bDTI-iKMH$}`1rmr7= z<{P%qdY|OO880NEU^LNHo~|Nuw=j%~(0>W$gf&r8I53=C+UniKlEL#Ocnzp`fI!|( z$ct6hsrQb%63Oba@HFZ|`xE-da&`-4>g+OgK)zf!qxUS9rL&ed7|9rV^A zXES3P!ddSre_PI-Tg%Kxg6*fHtXQ@NfU%v3%I4)vbeM#2t3AraP1;@ljah8YIhxaZ z?ckxW8YYhidA|$>Rm;m7jWNK$xv6Vr7Ck$8Mo~C2#NgZdDqXJeRmH8--fM^NH07OU zXp7U%D2bz6MpDA-AD!hxDsf4L?IMjqou7|rpdR9pTe)75Zj=~^Btsy3!Gr5@2ztuM z&BgOMA_J_X1OEV33uSm4yR{6K~{$hY&U#CA8IC)w! zTaSIL)qbP zKw>JnCfv)_oVW%&{{ZrJu;i9)hZYblhf%nqw-s7D#It2|?f3rSX?(i7V_ZuMEa;Kw z!~h$drSiIt1wJr+YAVf`w4~>qf8(hYBPBjL@>dH202TbAr5G-Yk+}wAU`~y z9@ISi;9#bo@eU&w1m*?i7nVyu;{n9m^<0OI*O`v|TSs0F{4t#gR~BXM))+-)I)VMa z%*vH@x?)`h2AN8hZ(0|}c!rD}3RcDlU~46PkxY4!*0I|k5n;E@H>FCfbG3Ugy@|Ig zNNp)81$|%(8#>+0m5V5P+a5J97c?(b@IgXcDh9#5dO;4OUTt}(HUT@tN&qs}BXwR1 z3^(S>m%Im2x#WmbpwJ(r+wB8TXpzm97?QayxHkc)u6ZDON97KODiU8v@~ z0=zTcQ#_4NXrhyBSgo8VupjJ8i$)jeBCX|DluKh>#J%8LrmUGdJ!Mk}XG%s&ooO3; zKuR-9Twlz|rPT}6E}hW{Q)aMbqO;ooF!Iu6qUHgfi+rv;P<2NBCM+I!hujumc|l^2 zl6~d21mmPxvT{UJL9zwpl$J|8O~n5Ihjtz~ca`v4ieOhhwPgsyF8 z+xfL-fS)6O)UU}D7v%UNrsfx)COE43ov3kjl%==fE~TlXqbucdg4zpy8@Ws>X2Pr#srInH1}h0|^4E~-+uYp_k7m?Z`@ z9r=6~=`d$UGrq<5%&&49W{qy3Rn>{_J5XE+G=p91F-shmHt8z`mzQ2q+cwaXQtjM| z)7k@7K-YJ{53QB!9mKK=;tIHx0@tT-(6Ogxd^i}O^vOJsg$fj^8mx%rxaC-RO?C7l z^cCnawUM0ER+x^EEC(=dS^N`Q{S}M-w-&&$#bvpbt-9^g!$I2PsO~)YVI4~faw}1& zTnd@i?ZsCGpL@*8;_$U}^S|cWRMmUGl@*sjZNrPiNXUEixPUkaC?VD@ZoISfmMVY* z9nOvwEqPT#H46fR#=qEhh0~&*eBt+|0rJ#0Awa=pA6V7`QCgbzm_km%K>&aNRv-3S zfezGc)oL>51z%|CY40w0@75&>tg)QTZf-8`?<#67FjGmqYR_3zL`O-faow-HVV3^@ z_7;?fR#oMm1y#xQcx%KSu*MH`01zPSAnH2(&`o<^NQTR$oW;hFHr6Wy*G8qiU0S8G z#Vkxf=;8bLg~0TIUMhP*P9m8+o+oS@{X>b@Q>1x$h0VuRY>ib&aazQ+SD4Ux2tIS@v7#WO^94mPj%lV*Ci1v(NO-m;T<1Y(&PmD>l7V@i zX-Ip^$LOLCpT#>8EW>L@p$Uekq8<#ehJxU?6=Kw++OpPhFU+G* zE(LggZd-MS%2{6|$v9(yluGrL1>@+I<6YkccO~IyJtDL?D$s$o904hno}{Ck;y0Y; zB`fg{d_rZq7>Ev-f}^-kJ*kG5ppanw+6D(5_&R8{Es7xBNuW8l!tv?o|iO-2<&B=e*Cc6<3$Q z%Td~Q@LbI!f$?e-+NY5oV^;kljI-Wmy40@L3ar#puxxDpVwseBxcQdh9Rj%T2%4%` z!8M|<`Xvw(@Y)Q?gBB;({EE`C$o*9tttM70(TKvAEnii}1g9tU&nqSmydWNJQfsur zrktawf>m6oRRPCa+$mHPR*jgrqK>s>$YKkpZ+DFvmi2Ro-3jS15LBsv8V@Mda5r31 zl@Owra_LuMtB*yh=qZdZXwhx=)MT;VkI(`jI91O)dcaAGK2-W6g7$dnT>Dv*3QNFekh-M48@_QgC zAz&7jdg+tm9cc1qurrc^^9Iuk>4S35-sX88fIjOguUEuhoi0`_M^j0sg4C}oKny>X zC|0*ieB#6skzE}ing^RXnLG+C*;v<4=L*_Qw+FjMTA!BJ=wFza^|acYSYM`N$RmaQ z7-HFJf6G$O^nrJ5kZVe6^WsxLPLqC>GwLsQzGX|U!Svi*H8Vn|q*O)fs(Q=EX3eJO zj%*)A#RBdCpPG~*N$UfeTC1qF!e-0+Oh8&J#KedgwwuB@_Jz+jMERx#-d13%<`DuE zWNx1}6h#&*EEm)*2(|skc)CsaE%*}H+W}_QTxYLzP}cD7#UKuWC@R+%E~6dGK?6ATS<#X^&)K&m~)W)SeI;}OieE^j}Kd@2XmcQqnd_y>jShlsB@dLUG$ zngKSC40f^VFafS$s2T7jO8jL+?HH*{8+t`{?$t#73kY#95VA^w$TEdQ*seOP4HjQW zz9(KHj}L~0)v3$ic<{T5KIo?%Gc97d;uO>G2&J#C7X-51+nASu?o>d40$yv z6y+)5c?Lc% zXIGj7@!U+5-H}xvwELGXHX7w%)E^}L(hE?A^uHul47;Nj>2RzhDNG+Q4s*XI869DDh3kD3CU6Iu3k;DD}03kIJ2vWe? z<)SnkfU`KN)Z4V}L2(kW!PR6!m4oO+iF4H(&ouS;E3~gK1JU5xaV5HrHMo|`%JNn} zN?(C1!n^>N5bwb0maE{@37(DIR0i-_4kkntm>qf_e8ueXYr%M%M{(|NJzahrqTEz? z3vi0s2E%iUw}vA0CEL8jsNsVE(BF93w)$Bp1VA~KASkm<^}#_LxnE}xi^YtE-&m-g45jd41vxGRtvsslFiR@*>1_G>cvd9mS~K9#wnPcOGJ6 z!HO^e?Unm~%>bt(#JRb5L);e}RsR4!QI_ZgebGLVHm0t{d1(aMvpvE%P+=489soKd zK}v!uewfwLyi$H(3QmJgUFl(K3if}~yjb4dZ$u-8;CwIAE*KQ1ZUa=_k=A1@qj4ya zu1adPRrzpiT<26~WZ>Mo3U3%=%QV*eL!o#pcgq;Jf$%BtuQ^N)3OdAUC|IoKWd-}p zE;xmXn|I%U0w|T!!8(4b%(+U9s&v;t!HL zjw0N57UIX4G16BAg~8v-^ph>tHQ zNYkjMrIQNxiB>s0@;;2YVh1Wk5p%i+r4I?~xaxqs0{i{oEf(g&v`doTv@@X_y8Dp)+ZxZ(BY1Qy)pJ|)pF(jJiDr0aip zwGC$)9+9fFYM>9jUg=0S_3FlC&92NakD^<&^-ovn3wVQMq^7G1&C_X;SWdKq-mWJy zmGpP~^6++n>i3t!77f0a+w&7Gz!Jxs@NT5s3I@*N7DKBQ=*A_aG!N9*-aH>S^WVfl zbH*+Qq@X&3=4lpzkt30#>7 z8zRxR5LWA4#?j`!BC+7fnKyq0L~>4q(KaIuIk-R+N*%nIZGyu&fG7yl)+xJRnEhes zZ05)7P&Kudp!ox#0ZT2ylMbwTOGg863P__oPJ@-nZ2NU*wi=F!$_pwyncQ+>zcB~c&~Wh-Sh08d z3yxw+2ye}Y5yceQh-O;nh&=RZ6yoo^O7FQh2MtGF9&nO$t&LS3N7Jlg6zI7%j3e0dIQ!|(H~D59;(mKnFq&%l5+60EKqH}iE#@H{=LUqGOcx3uUM68Z2%xD zJ>+uw#@=DYj7#tH`O+xT0o%Mhg3W$+iq>G3*jkU3VERSGaqevdN-1bB<_8fjZu*b+ zDb~HA&s|K1*~AVGyumZ5a-M!AFela2s#R{!yln}~cgMxbQQgo4PFYsJ)i1D1S4!6~ z7V9QoJmMatXetP=NCnkS(DtzO)cOGVuYA$AxYATl_Id~|w3?-oQrT+l%j9fNA`ZEFu z4}I#Tc-45N{;)FkMeRr1#hc3$p?o_IENl!kTt#}4tQ%f>$50un!0lBFFNuFKJoh|} zcwRph18$1=g2%pP;kCF;Afjm;T%f*lanH+2#!a6Dw{IQb1rc6wTi^ z1-{G>RD&5d+jS`!`N>^#eI@y>KukVx#e`~kUt&F46x{?D7#=tFhH9syE-`g2xVr;r zXU~5U+tR~=HId!2`%LuVw6TYYZR2eN)0nbqsz-jXP%2#<#TmTBHHW;Ru^xn5j^TX( zd_u4%nkD_&{(DR2j^{!e3`f%XMXAv=@GV8TwBBgX^ze5U;9#Y?6sh-5{ua#LzRZ2) ze&T^#24#fWTg_MR9}4Fv;(&NMh;j2T%s{}+Dvk(b6-R)*#oBtm>@2E8+pI=kp98;j zL{_(zh=J~U{vHnIZRjonj+Fxu)Ycm#v~JRadu=@;1p)%{13vKIka2bCF4ijPtC?nF z7nx-S^`G_{SIL=C_hp5up3;C>j9`Fcs4ZadtsPo(93m4KGup^dW07(mn)Hhu~uqH%iYt zjQ}ps=!8id(S%DH)=XcV7M`lY(7eVfjiJsZWw&ml!%4Dj;O;6=k<~sT zCRiUZAN~~J39wlX1Vf^}liP%01?Zu#oX4~WFZ+fmGN@J2DVqHiny&{RDm?2Fgje`P zsElHYLy|a%g=;sug=QD!6~odPI0WqsePS7@NQuD-ME#D~2EuiR^DzS5P!yB~j86!3NDh?!VR-tp3oTR}t zcPe73^G%YkC?{aGWJhdDqM+1pTCHy@3%Ok0Uz|0WgHU~7&y8IVKbdxKbO*d4TpWj{ zGxv=xvi*;LC*B*U3eCY%zkkr&q!+N+)%9VOVWS}^7BD}k@>0-Sf1dED6W`!aaEEqk zQdm7JIn8PF*?tk%Qvoq!hQyI0|MSPL9 z3o)8~ZYcW|{UTNzc8PuFQ>Na#lFZt~xRo&BkLoCG7>i<+U(lj`P;Z;QxQ;xDb`elx zskzVfFr>p-aG&y))BOP0zLYOjJQ z#eN$5%|rO8=NBm`-bc5E9U$8253IQ0l`B_`+(SaqPWUPpGKOM6!M01u0?d!!!ZeVy z&2uvRXfCtjVOK3rKtvsvC=|ikWJ(+rI5O;%@!?CaX^6~dEQ%M|R-<_axnb5ve8EJW zwKJ134jy+IO1a)(u`dC+gjtL=#KIMT_3bQ1aF{FF5->#t>cT{Zkw00~RXS~rAe!AX?HIn1ZZ14G7H!}vF3k_L<=|S5<}Ay8_4Gga3UR#!$L%MX zAr!|H%?Z=IuG@P9?Fi45f2dJ(ipqdqZ=d(V;N}Hd@eYanTOz^hhvGHy4NZ(x52w}( zXy8ixF_i*p&fbG^!1D-;=2hJ4gu9eGU!UYipj|E*cr?3zvB~LB#?GML!qGx~8FZH# ztwg9|CB&&x-mzcLPXI;EV}$kgg;fVRfk%kPP<@a464dQh&Fz7k4zjEMLCL|Kt)G}3 zQY(vv3tbAHr@RWokF=;-7p260S$rPb{Od2Pz0GCR)x4}RiC48K4+bO5vRtbYmWQ-> zF1asoKxc0$mP4_b^4M&OupKG^&>)0Q0G|N69QI^Ry0x?JB|Q)U7HXC<7_)1)ZT` zU!HR%)u;2)aZ--(DsuJh_kgWd@#in`5YlQLp3jbvW5KtE(bdioTw9uWV|rBCNTt6o z{{TMyr(t9u5yjf~qYhWa1q0=8tN^FjJ;nM)fsPh_4^ARY6OmZ&sH%Y)O4LX}W7OQn zAl^%!(Yq1U2K(kwT?Xwhh%&TJO3_et>-?c7E=hzE7y=rMUuqW!68dKb7Xsk$H;CzK zTB~AlQioglGYIB__Vf?Wn1`jnRbD(H<=nqm2hMjRvkbMgmKz5>v-OQzR)wZt`r&mW z+ENP3DyPwjR6~|pqRmELzcLqoo25of6?20RXcpzpi}fbzr+i1mmA zV!8OKoC5V&`am%J(TK5kMqpHRqkhr6c1p%_he}`tWH)2w7Tp*UIE%f@y48Z#TL)b` zzzXY_TWSP!&p)S%_!8$h>R~+OedeAH;{aNxt+0lm0o(rorE1i9L){>aCT;WuYABxQ z742nr_?a*|6Zws`EJ1Lx_Q8Fm>dVHGnw8F+;L26xVrT ztpRxa#6lF>mib-A)EXKu?FKF7!zQ&54MiyPdGnZ&x+S3ih#_ZGZ4O*|NeZW?$vjg5pCSlRLa z0M(&f*#qdyTB-wS??^g+;HhV#U(9*0;BT21s5AN^kHpq>)sgQut*}}LW0Dzyb_w+P zLW2$|e>=>tGpNCMb9v%f#4+eCs%P6V-Qa?%{qv{*!H$q>nSNH)wq)45bc9-#o2|dR z!$edTDj>ught=l5ET8(#M)Pb2=^XqKjs=baW%l#T5Y~FTj#SQ{TasCBDd;P5uy0U* zP$ez&z)PlBQ(zlVuPC@%&2aPpX;6Y#wDpTobGWlQ$!o#fb9A?@fA$9AsqWlfwQ&n_w!cddWmka5#eE=m zz}L_LD?~fRdEKQ23=Ng@1zULz0q^Mm0_kNw0=|X1%{NBL?rI+-UsK+~6x!WYzjR0% zniXGYmmrszT>k)YX?14f#SU0RbQk30JiO#fc(q9C9OS>mhVAT_y^`)i{L}z<@pb( zJqG?FAZ$~8QG-zq>_Wp zYE9NWdxb+373*2r;Cz^%KG!IKH1v#lXXy(lHA^0s4iT$k zxWwBKb8UU4E-aV>fb^Bn8d4#dP$C6uyXgtYnqUl8IoHfoWO#IXP0l&$Fq1PpbEa#L zw|LzUyovXg3C0x6RJAMd8?yn?EO!%3$Bs9sgS}$q%(P7M4T5+IGTvg`z9yJEgWo=k zO!!oNe#q`=;hlq!@&J8r{{XuHh$lu6HL*Uzn4*)<__WAoNWpaUvSX@6>DP4`kMtV5G!8$4nTFnrPk+fciIu?Ucm z;HmE{#XQx+o5dqcEJL9Yo!cpyNQ?lu8NA{FO&3QOnN=_-pPQ%!oJ4$mB2=Pa0>=RD zl!}%Kxt^=)M{s573v*G}b7<~uE}|w<+2(!U{sJWhRfp??Saiwsy7-q1uK*9EO%QRK zdQyDF=>Dks7^V7@q4kJ1Fr^B_7jYm68wC5ISS>3!y{a)NI2xYtX3%=0yNI@^Q#=n? zsOS}uml3UtRZyW7{{WJRiAQ#B7%OcqjCNoUHCz`Qu4b89jiL({$%g_)00UVMyw{ov zGOui@dxSY<)Uyc-kr#`1e`pBvxVT~txszsx{y|o<7rh>0O4Fq;g8abSteN*0=`LxyhxCAQ zWoNoMN*;`Rm)fG&MYN;u6%Y~Q?jl4^mVFFEOx^%}A~6zO0r^o1(yj%UNVqcaD-eMN zQm8WzwUXqQ!UsAyW`D)2FsmDmvOp&_D+=g;s15|dNblAYjG#KI4p*!19MLv{##6Es z3GWaVq5Y{z;ILfj^&$e;)}6&`&%xAqFNYjKxVIXn#*R|+{{Z2qS9LY-Dg)VY`Lp6Z zWi6+&Bqr`F@*jC?Lv>{P(~k2>F-GSToe)~!tcSIF#0YExFUd>;U}}Q=L{%Wg+vx#< zDYYH*2PwYs6-#lN1;d7msJJffVa>A6k19Z9&yMorDF*iqtBA53yAP{c$pXK6i=G}0P!TOc}$*+x3+oyiW-sV5_-~K%tFQLKAVoO zSvSIrrO#;<{&~P*GGbU#Vq`%=wmvFiMYj}wsBv_=kBBUx#a}`gh!(8_-%znJI+rS- z@SH`K2;HXOl?^o+`m=Q}Dx2rD-gWP^ zqRRDUzG4Ez67p66`hTSALOv&cckAPD;OEF+{{S5tFUS+~8+?GPB#X=1tpJD5gNaRTjHVtC`+qu{$^fWaMWR7@A}J&LkaP=Sz1xY z;r{^gAT)wJG0>{o53r_NF1fRxG(5c6;`tx6yu6G$^{Ay~TvhHtAlLr@u+5M0xEM1- cBhSo$7G6i_&5U*XN{9I<=nmii00n>l+4a1Uj{pDw literal 0 HcmV?d00001