From 4fe3a8827fd58a7cf08e3923af8826960c64a971 Mon Sep 17 00:00:00 2001 From: Angelo Dureghello Date: Wed, 24 Jan 2024 14:50:34 +0100 Subject: [PATCH] boards: add support for eval-adin2111ebz Add support for ADI EVAL-ADIN2111EBZ. Tested samples: * hello_world * blinky * dhcpv4_client Co-developed-by: Philip Molloy Signed-off-by: Philip Molloy Signed-off-by: Angelo Dureghello --- boards/arm/adi_eval_adin2111ebz/Kconfig.board | 8 + .../adi_eval_adin2111ebz/Kconfig.defconfig | 37 ++++ .../adi_eval_adin2111ebz.dts | 197 ++++++++++++++++++ .../adi_eval_adin2111ebz.yaml | 15 ++ .../adi_eval_adin2111ebz_defconfig | 21 ++ boards/arm/adi_eval_adin2111ebz/board.cmake | 6 + .../doc/img/adi_eval_adin2111ebz.webp | Bin 0 -> 84454 bytes boards/arm/adi_eval_adin2111ebz/doc/index.rst | 184 ++++++++++++++++ .../adi_eval_adin2111ebz/pre_dt_board.cmake | 1 + .../adi_eval_adin2111ebz/support/openocd.cfg | 12 ++ 10 files changed, 481 insertions(+) create mode 100644 boards/arm/adi_eval_adin2111ebz/Kconfig.board create mode 100644 boards/arm/adi_eval_adin2111ebz/Kconfig.defconfig create mode 100644 boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.dts create mode 100644 boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.yaml create mode 100644 boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz_defconfig create mode 100644 boards/arm/adi_eval_adin2111ebz/board.cmake create mode 100644 boards/arm/adi_eval_adin2111ebz/doc/img/adi_eval_adin2111ebz.webp create mode 100644 boards/arm/adi_eval_adin2111ebz/doc/index.rst create mode 100644 boards/arm/adi_eval_adin2111ebz/pre_dt_board.cmake create mode 100644 boards/arm/adi_eval_adin2111ebz/support/openocd.cfg diff --git a/boards/arm/adi_eval_adin2111ebz/Kconfig.board b/boards/arm/adi_eval_adin2111ebz/Kconfig.board new file mode 100644 index 0000000000..f173947c39 --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/Kconfig.board @@ -0,0 +1,8 @@ +# ADI EVAL-ADIN2111EBZ board configuration + +# Copyright (c) 2024 BayLibre +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_ADI_EVAL_ADIN2111EBZ + bool "ADI EVAL-ADIN2111EBZ evaulation board" + depends on SOC_STM32L4S5XX diff --git a/boards/arm/adi_eval_adin2111ebz/Kconfig.defconfig b/boards/arm/adi_eval_adin2111ebz/Kconfig.defconfig new file mode 100644 index 0000000000..41dd579738 --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/Kconfig.defconfig @@ -0,0 +1,37 @@ +# ADI EVAL-ADIN2111EBZ board configuration + +# Copyright (c) 2024 BayLibre +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_ADI_EVAL_ADIN2111EBZ + +config BOARD + default "adi_eval_adin2111ebz" + +config SPI_STM32_INTERRUPT + default y + depends on SPI + +config MDIO_INIT_PRIORITY + default 81 + depends on MDIO + +config PHY_INIT_PRIORITY + default 82 + depends on NET_L2_ETHERNET && ETH_DRIVER + +if NETWORKING + +config NET_L2_ETHERNET + default y + +if ETH_ADIN2111 + +config NET_IF_MAX_IPV4_COUNT + default 2 + +endif # ETH_ADIN2111 + +endif # NETWORKING + +endif # BOARD_ADI_EVAL_ADIN2111EBZ diff --git a/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.dts b/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.dts new file mode 100644 index 0000000000..5602afab00 --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.dts @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2024 BayLibre + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include + +/ { + model = "Analog Devices Inc. EVAL-ADIN2111EBZ board"; + compatible = "adi,eval-adin2111ebz"; + + chosen { + zephyr,console = &usart1; + zephyr,shell-uart = &usart1; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + }; + + leds { + compatible = "gpio-leds"; + blue_led: uC_led1 { + gpios = <&gpiob 6 GPIO_ACTIVE_HIGH>; + label = "Debug led uC1"; + }; + net_red_led: led_NET1 { + gpios = <&gpiob 10 GPIO_ACTIVE_HIGH>; + label = "NET led 1"; + }; + net_green_led: led_NET2 { + gpios = <&gpiob 11 GPIO_ACTIVE_HIGH>; + label = "NET led 2"; + }; + mod_red_led: led_MOD1 { + gpios = <&gpioe 2 GPIO_ACTIVE_HIGH>; + label = "Mod led 1"; + }; + mod_green_led: led_MOD2 { + gpios = <&gpioe 6 GPIO_ACTIVE_HIGH>; + label = "Mod led 2"; + }; + }; + + aliases { + led0 = &blue_led; + watchdog0 = &iwdg; + spi-flash0 = &flash_ext; + }; +}; + +&clk_lsi { + status = "okay"; +}; + +&clk_hsi48 { + status = "okay"; +}; + +&clk_hsi { + status = "okay"; +}; + +&pll { + div-m = <4>; + mul-n = <40>; + div-q = <2>; + div-r = <2>; + clocks = <&clk_hsi>; + status = "okay"; +}; + +&rcc { + clocks = <&pll>; + clock-frequency = ; + ahb-prescaler = <1>; + apb1-prescaler = <1>; + apb2-prescaler = <1>; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x00000000 DT_SIZE_K(64)>; + read-only; + }; + + /* + * The flash starting at offset 0x10000 and ending at + * offset 0x1ffff is reserved for use by the application. + */ + + slot0_partition: partition@20000 { + label = "image-0"; + reg = <0x00020000 DT_SIZE_K(432)>; + }; + slot1_partition: partition@8c000 { + label = "image-1"; + reg = <0x0008C000 DT_SIZE_K(432)>; + }; + scratch_partition: partition@f8000 { + label = "image-scratch"; + reg = <0x000F8000 DT_SIZE_K(16)>; + }; + + storage_partition: partition@fc000 { + label = "storage"; + reg = <0x000fc000 DT_SIZE_K(16)>; + }; + }; +}; + +&iwdg { + status = "okay"; +}; + +&rng { + status = "okay"; +}; + +&dma1 { + status = "okay"; +}; + +&dmamux1 { + status = "okay"; +}; + +&usart1 { /* USB FT232 */ + pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&spi1 { + pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>; + pinctrl-names = "default"; + cs-gpios = <&gpioa 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + status = "okay"; + + flash_ext: flash@0 { + compatible = "issi,is25lp128", "jedec,spi-nor"; + size = <134217728>; + jedec-id = [96 60 18]; + reg = <0>; + spi-max-frequency = <133000000>; + status = "okay"; + }; +}; + +&spi2 { + pinctrl-0 = <&spi2_sck_pb13 &spi2_miso_pb14 &spi2_mosi_pb15>; + pinctrl-names = "default"; + cs-gpios = <&gpiob 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + status = "okay"; + + adin2111: adin2111@0 { + compatible = "adi,adin2111"; + reg = <0x0>; + spi-max-frequency = <25000000>; + int-gpios = <&gpioa 12 GPIO_ACTIVE_LOW>; + status = "okay"; + + port1 { + local-mac-address = [ 00 E0 22 FE DA C9 ]; + }; + port2 { + local-mac-address = [ 00 E0 22 FE DA D9 ]; + }; + mdio { + compatible = "adi,adin2111-mdio"; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ethernet-phy@1 { + reg = <0x1>; + compatible = "adi,adin2111-phy"; + status = "okay"; + }; + ethernet-phy@2 { + reg = <0x2>; + compatible = "adi,adin2111-phy"; + status = "okay"; + }; + }; + }; +}; diff --git a/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.yaml b/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.yaml new file mode 100644 index 0000000000..bddea6e4a7 --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz.yaml @@ -0,0 +1,15 @@ +identifier: adi_eval_adin2111ebz +name: ADI EVAL-ADIN2111EBZ evaulation board +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +ram: 640 +flash: 2048 +supported: + - gpio + - spi + - watchdog +vendor: adi diff --git a/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz_defconfig b/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz_defconfig new file mode 100644 index 0000000000..f7e4d9c4ab --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz_defconfig @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_BOARD_ADI_EVAL_ADIN2111EBZ=y +CONFIG_SOC_SERIES_STM32L4X=y +CONFIG_SOC_STM32L4S5XX=y + +# enable uart driver +CONFIG_SERIAL=y + +# console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# enable GPIO +CONFIG_GPIO=y + +# Enable Clocks +CONFIG_CLOCK_CONTROL=y + +# enable pin controller +CONFIG_PINCTRL=y diff --git a/boards/arm/adi_eval_adin2111ebz/board.cmake b/boards/arm/adi_eval_adin2111ebz/board.cmake new file mode 100644 index 0000000000..4e81b2fb98 --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/board.cmake @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=STM32L4S5QI" "--speed=4000") + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/arm/adi_eval_adin2111ebz/doc/img/adi_eval_adin2111ebz.webp b/boards/arm/adi_eval_adin2111ebz/doc/img/adi_eval_adin2111ebz.webp new file mode 100644 index 0000000000000000000000000000000000000000..0b37432ac8427d665d78e37a048ba4bf5350061b GIT binary patch literal 84454 zcmaI719)Uz(>B_%CblyZPHbml+qP}nwr$&-WMbQxXkyz*pFDWa_kQR4|Ff=Z_rAM! z)!J*-!ronVw}QBc$fh_5Kvh^kPDPGg4Hf_Z5Pcq95CAqXfViNbTpsA>R{&_9m7%pG zI3ECDZR6yiASytlrmjH*bp!wbU;*F(2mnrfLq|J)IXS7nwExfLVd+!*v&_@{RoDMn z=l?2&H!^lK1OPyYJ~j9Z?HrswvECfsk-8)e1MGs)+H2M`5_1Ec|RpKdh(I0MW9Rsbge&F9(XQ{o6v_`ELg zf3e5;+g|R|%HY$=9ANlqAq21mSOfI`wg>z*2A?{g<$rwZXu`z!w+Q5m000272?XAf z0sv5n0Kj`35crx81ilvl0AL#cz%QHsvA4|w0NC$8<#GQbBgq8-5Q6}KmVy6~8KeRL zt)Tz_)~cPpgZ|(50sH&}H8BAIZb|_Fcy#~(bp`-{)%?eApV$7n4k%m(0F*v`B{c~E zq-OvCWTu~WYyDsP4gG2G|N8C!SLa{7WEKv}E-5W$U2<1-*cCa6_1{Jatq-AyF zj#QKY92i5J$CI%8+1Cri9FMe!Y5>>=ogAb|b%x`*n^c+4;rqw$cD7@}1)%&%;^;@X zx9*rPp4y*#NTZL%x7c^YpR(z|JK%w*%g0Y3+=uERa3=L$_7qsNb>M^Id;Z?|^!@!0 zknSzlz;}-K*T*lt;k)QZ?6oc_ zp{ud%a!)mI5eT;cJjjgzW`AJ50fAe=z-izLkm@6G92nz!0xWoddxv`2Iy0@SUH{ni z9k@za<=qCJ06ou;&&jvm{61WPy3es1yb?e`VCe?t3;84P?Z=Ss*|qiqoj&3UVe5}m z-c#Q6J~_orAA;?$Scc`5r8C;Sm26jP6Z^>X>~T2=g58=1@S@)+yEKP(L zX(2v|#dtSZ6REAb(3=d(*cUabP1G8*`@e#9L!!PkN(3aGddZZ_=_s zWzV-eZVil~&C~CMO86a1`U6j=PNe(bg-Nh$D4v~ILp$Y``(Jq(iwd|)|FrFfQbcrT zDawAELgNrpzT3@k$FR#E`&L_uHoLdYomDW{dh_Bo4t<)x5;z|5mWw%|W**rC6I!tM zOf5(bQG9elU0eus1((P;?S*1!CgMYyt~VMqppQt5)D{X53`Y?t&<{mAn`${jm6wq_ zF&hv_6#N~Gv-Vjll@==-%ulIl@^K4q=u5c)@<_^6y#+_NP7-z9gK=?IWxHpYHTu!#+Q< zxYC8o^Ern>hlxMuavbbYBf9L9MHr_!R7H}fCOYzIN$m2=$yhkg_UbuzB>P`=+6cjf zbezhnBUD%TS!*Si(}CjtvT#CmSl=~%z!=@;BHeIGPRN+|tgWJo*?iBVK0HG5+r<9Q zOq(B{{(ek;7BO`F<7INFV0%13g>|CMtVF)r?crUu8jr#4g+{o=K`LU(Jk{y&esDyl zKg)4efJ#@iN31>3x~VL_FXEOc(Hta`m$OUD1Fto2={Ix%KIEK| z{?`x{~VK>wC8ovV(%nB6zd7vV8 zz=3B3u}bxMl@+t{Lc)F16yUyc;Z7Lp8Dyq>fJ(bmCaI@ zc*Kp&F~9r9c7+Ny0ktbaH#ms{%TAea#k`EL49t@4C9rmv!v5|1R~w0Ud&Rw zl(;fqMAed#*MskmYtmFGMjbLi$s1)^iLyT$b}$n__6_G27C{r@_2p&EMGG8PtwUd7 zQU0`PwcKC~oAQ*uqy&HNt^cmq%-->nbtj$MUYwLYCdb-a3t!E!H_Aa}kRp&OxXn5K zWMPhOF}DG~5tBluR{eOWK&IcM<9Nop{rK_tJmXynR&s6?Ix0fYjiU|3oz@)%0m28b=73kBzUOES>0T{Wa`?Wf*<5)u5l>(dBV0?W1+m> z3w{~VBqXx%ES8w|$bOf2#dqi~z_pvNRo6ac*-`E}`gz;47#s57@m6Uu;2+E1s{*Bn zbh616Za;ugnYWs#EW97N>rstN0n_3nCbzL)frQjFV;~_Bgn!all+z!ZW*_R7ax7^G z0()Yz85^+XUDAT0b&hEOT=(%@M%UAJ8-5K+Zk;TIKxDSf=o4Id$&#(DA5Z6s`s(UO z$}jH!%H0j(!u6jg`F}dyin}K&myn1VxRAETY5#{6IjOl|(f4w^s*ko@^DyNG6#3W2c2L*;M9j4RJiGQK>dfOrrSXbOfqKgHK?{K~1vxhUo@;P<#}tMf9i=QoG2 zWQz>c4n|^X5Q*@w7xc%41DqS;RMcxQXU8dbu+>A$JU=FU41XF%piOe>hqpi7UWB~V zn-joi9&sKoAopTd=2`synev{gckP)=+Mc{PH}{?!((x_je?NV8GwC;m9(9ebDmYTX zj;^{<8v~?Gsovz7! zz`0Cs9EtuDBIJKPF9nli8rE52Ub{nw9aNVx$4@B)3-+G0dZTQG%D>ap3AsX(Mc)1> zGIv|0rRd)I2Hg?c1G@=64#XSwV&1@$Qz*=e{DT&XZK1Nl%fQ#{63e`$VH@tn|&NEOIhUw97ewe&H%$rtPPFvBKB*Ku0?6f8->ioa;P&xPADwO`E* zThlp>fIQ@=4}x;8e|>F`+&Wmq1J>}Lact?CZ&*D6^R6jp4h`(utx@XJJJoA^bPIQ~B7sJyt)zTM*8 z&XG`4w(I6zMn0No^d8Sif= z^d~bz7++800uyQ$zekuQ#Y6uod(9jbwQo%5+|Bb>j!}ryL~JXK_E#RlG<#~WUiNTH z*>X9#xlR=rV=D;J(PI zZOjJbbora#RV$<6sU~Z{xDB#|dCgh#5-qr`7Kh5B<9<1c23heR54rBZ1e;$~{oj*pM=sk{RO=U28qH>n3SD zvuTUyQcd%yk{O35qRjo~MWM` z1((o2=u20c%Pc?OlR;x2$~yKiRt@m|mxbxSdP@*yS?;iJT!%IiSKn|&3D=A>_svZ) zX6y4d`OR(%7u#bE&h4jhv09fSq)#dyyy}VkVR)a=uRZ+M$FgU%ZT5UyGVL(q-c?VV zNPW{E?)&$vJa;6cRwcCVZX!o-8@mz%I|4SCJ!*7w6?+483%;7Zh)YQgN_2v`MhiM( zN={|Y7n$x3jo}WAdw*qP2CCFT7}(;ke_#&fudW)}7$96+(Db-RF)ZFlpRO_ajF?uD zldo%Vw(+Sj3bemFoVH)I2Zm$VNu?;2AST#pnss(z-75p!%uG+JKCo) zFC|2qMWl_72Z^F!%r~Wzx>ZPF=AXCowdjSaVByC4$hRo4ChiV1q@^WcnsTu)B}%^( zx2H+x#|BcD9L?BjdG43>gM8mOiaQjQKDPLLd!^X#9*#{+`LTk< zu^l!C7&8k69}Es3sN$ImoeFUpopQ&uOCysAQjWue->Y}mR+jSVWxwD5@IiAvecGQ` z=63NtwHyyie_C2W2BRWPIPst3<{peOQI*aU+@C~aHNA`UlzPqUd~ifqL|C4E-_6YzM8dW z_1a2vL;bLV{9}xhZL3!{&On-I+f50 zMSPAh#MdLvmMyAB@7HhDGuOv42elC$gj9D{a<#72fSE;91D@vbyCI~$ZkhLu?5DRM zigyQZv`zOx1#6hN?Rw(NO-!uY5j~>4XjEzTMXUMN5m?-i8%i2}Dbcp{YT6_s<+%H( zzVW11Ekcbpk=(wuQWsrHLh#eVlmUWLeQbnxwfDR(^REX(87{$*P7I*V?k1V-9YoO@ zcm=_aiVZlghQmFkT{#cySJE}O9+}6A9G6aJFaG61U%f`JErk}2VN2@OoPJySU*=+f znP&c&iaXC8fvyng(re#fAW+5f^4;4#Or98a!A?6-hZ=u2M?X!wxm)83h0BP^UmbMX zRbUzLhpoPDcNyUOZ3FMSBOB1DV&(m1a+7Uo6B^xWBG@@8UUW|*Mo+L6>8qCooo(Z} ztD*=}`_fY6$8C{mztf`KlDk&YHT~B2OLmUF2iEXdx>0La-R2Fw=wK>?+@`I%?gTRw>()KCEfx-=L75YUGDCb60TnW-ipt z`t1C)^o6%JKm=9++3Bt(#St0Q89D_*jEwhK{>q3o?qZ0!JsakbvsA*mJYB{}r&Wt^ z1>1&?C}wJRf`N#x0I&dEj=(ivX3sBiOVsrB`MQ^~kUyADh*e+;OUZRoHQ-Dk8=n`X1Q*IXT;MmmCVctXyniWthoQG}yt>!qfeJ$EJ+A?U0=|}uH zG977wq-KMH$SWjcXiQPDgKfeN=x*+ohc61^*jd{LV0EIz5F|I0FTrp{m3A2?jVjp~>Gi5t zqzxUn^UV5*ILD)>BLf!WRp)rtt%g_O{Z%nLQLaZxU-1TmyFEXa-@Oy3^?cvQ2Z<6M zbeUJ_$iMSN$EiC=egoj^K%w!I@`?bYiZ8UASLD9~LgV)LZaOsm?ESF5sS9xTH>!Sa z&pPLCX_pJqB?o){T|X%nH)oZ;#^zpE+@b~N$n6)^zU5x`NfZB;tGlE^*x*T$u(#T! zwmpw7QL5^otCUcru7uHX3^76bzG0TR$@J760GyicZe~?irwu}@CArVzTYxk94)<%Q zka@EF+opVj3U;H0!*r0EaZ+?@3I>zGw3d#;NQIW5fGFuatcTWU9iDxCZs2J6&N*iu zftU8a`jKhgGop{&jv28eTks`j{<6B%dn*-6Fh0E z^a+(Mgw93#KuNv-gu(1>`GOigbfP*cF<8bxYNJFcs1t{QB2+BQLK<&({Z*4@&zkMC z3~%5YA(y)pLJ8n_C#$~m`Y3_v0&LS$AwIqVi?Ulx?MvAQCoa|~(}V#4&R<0-x7dW` zB*4}nB{gSnZAGs0@|`7RZWk?ta-s2?3-LxQ&5pV&Jse zQrVOK(hzP9`R1}WCb*=t(Yb)ic*A~%g+zWdp1)oRGZJeoiW6U|ERDU4-sqs z%-df&R@M$7P?~sWjDWcXBgc?Y5uGY>k=FN2>Iv^c9KVi^xGF?T|`HIBEqU_FC{n@YIJT_g5YlHIZgx-fB&0>E0^%GgrO zH0eiRk_we%mk0D7Q$m_PXcGf!t5D6C@DS_GWw04Fg|Z%d?rGru$q%sNX8V)_mXT$! z>IsVhmq=35^WU*;6cfKAFg`DMH&;)(D0z1xB#Ysv<+r+w-KqViS!Akb&ML*cY}eCI z-lXh`jq2v)70K0xYi#oBYDVNXgMBJ_I!+fcOKU;1PhZ6Zp9DjCkdn_RA(lH6oo#n- zVH*Ny{gT$|l{RoB z@!qS5dBB#9xqyk2?`~x_sX(7U`o|Y<3&HfCzl*~K5#-T74{0}nz%m+tl+X!<-_9Et8f@ySxf|Vi`2XT}wKbbJn z0%G&(#x+{-er7-(`m>Ioi~LwL)(4Hy*j6!E%S)qFFhK*DWA&!Ca704{PmySPiK7B_ z{Ip@^j?%j!G~+wlYOb+E2LkV-@O}eDzQVdjI39Sv18ROR1>FLYG;avI4LWfqbf6~4 zr9Wc@CMsVweR8L^)&xllK}pbU38589rq)zXriOP6Mg_rx3U>T-{pSqKlfCQ;Wf3lr zz(2e8ad;&*34Bv4Xy=FH?@q4u2S_r$ZcO~cyaX@4a1}y>y95wp{sjh+#L)4`QqcmX z=x*32FRDN>4O9Z*xVeJvB(g@SS=193LQO#IE5bq1To$9)n<|8{<|(h$No7^JGNUDF z$t?{pyYgvhgK9*&k^t4sUUHG*vTse4!#51TDv}XQ#L>JgArc{$u{%>^N2nDGZAMve z=Fe5?S%u&X!O&(DyF0E84EbU`8KcQnGVKaYHG|(Gqvb`e<~fnpecq(`x^Fglo;_qv zbQP`k%gi#*$*#9>5O;LFiIDTWJk%uZMUf4;F?8j6V5coQSs)OM$T`to!i0nsbbkEA za(JF8wt@^5hr9>jZK^#dj_>&~(lQ~c6CU8v%3RULBwA-amR_Cd#JmZ9NJ`1YeDO=r z54i%<5t$}O8S!tCJyd%&l&nps8AS9H0jl+ncPOE+f|sDX>1ZWuXCXt2ZwQ8Iy!{Z~ zk+eZr6;x~MTM1fV_E%pzOpbPHxhFr9%3>`vhnAfow9Iax5FfSyvwdz76~mQb5ChdF znzEb8QhFSlDQHL%wu+=6F*O;1oH8 zLXpuS_6XKFQ`{eVzClSHr6TNcPBH`fZH0KI^c3PkW`iwfl_O^FB2%@(s8f$fGR{{W`{mWtvizUa<&J}*$qi7_;1 z+6r-iQMZILC0-WIeZisf&r{5b&u)vrb49y1-;G|k;Iw*A$dXG%x%WY^gkPm;w9ZJB zIRQB{)$L3V3Cna-^JS|l?;5K27X2+TV{K96r`xdwh1q=T2!)3#U#;wsQj#-jI1_45n*SoN}#Eal5)YZSi+Lb%ZL)O{{!HTj~2$g3Ysl#^4z*V2fkx+5t%? z#yA7DyW7Yb1-JXH!L^qhBDIW6{zFW5Ht0uUN=Bhz9U-C)44#E|ZdwEB7h*h*{Y-dp z^*;L!ZxTDvCvu~2FqSd;=Bk`6Y|K1P*%i8`aLPdB>`nL=ZP7C zJ|^j6PP)0Flbv2D?;A|A){;t=lRvcLn;3uLMYOdst{wkx(u;J)zC0rd!CtTL1TNms6pQG^1qXX9&+j3@PU z<93q?A$FRcZ5Kk^hvXR}sUc9&Yt|nkKzOJJLMNon&&ql<;d@10CtX7)9$Bwts9Z#* zm25uS=(_J%{lUOr^Xs-1*CfA#Wb z;#d1&*(#nNyR2#91X()(iO@PYu ztF2t&l-33`bN=`m@%1|LcTXgP;1e6fFv&BvHh?K*U@IMm4g3DEbr8C?)R zsN^GxAx7nlxBiwoc9gyj zs|%~-`HaST6zy{g`Z9i^vH^v~vSaI^ktlU#PLv=WB);(p_JhqZ_V?tFlgebBa1A$Z zIP%ZrRtPx6RbNJ6)2aw{mn;6{wSrT+oVp#DMEF&B7albx#kiSN+)$8gcLeSo1X?{i$jdeTZfDk0Iq36Ml+QyY1f}L+0&=msxw%2} zH1JHyXb;`>t1SQH@3%7iKMs;zIw`~5C>Xq>`NQg2Gc&lG`Pf*{ zR$Q0PchxMxNI!bsNH&A-@Xd^(K+3)FbfF=! z=RVg=wy@enlsq-F5JSR7nv5@@G=eiFxypH5-i%C~)5qVUNL!EjaoVmmNz*%zi4oU$ zPVG$%LHg~S{^1=UHxuQriarXC&zmSr&rY~}A|B=SZJ+U~$O2-d zmdb8skR|Q}!!0Y??f%#3O{)(iY+e{se{HYkQo6`}t0Q)#onGYgE&;OtPkuqSOhJpZ zUW1=L^t&B77b?RI^4GQ`OMCo6A7Ls!3sCE1sz7GN8K)9f0B8P{llf=%-7B=ZRngy9;3e7^0(jfm)l`AnV&8^@=mq&2- z5R#i2SSCchs8@adm}^YOG^yN3C*nPxMsdez^Yvrm7h3EljHg0)sgxx1$N}G5hBjo0 zaDMIn%jEL&tZc~&sez0tVR0xBAFZCKdrx>K?|Y>J)3~1cDumpd3B|^>u79awC79Ey zm@KuP)LZ6aCf!8K^`pPlb`xS$?37_nGjnLjc`AqF&1*C&V&GG!G3`+-zLd9k@kGIw zH$)rMl{TTdw$J}T)3yML4Ycj0$F|lPdvo%|-VZ6`FTMGTdwVUENbxjF(LX0s2Duil zq`M>Hj6n2YMPDs&;t`j+?H}{K!BIx~e_4yZ9tbL^4QQj+-Jb5x(;Y~@T1!&$hHKqZ zZf(~aWHu_>x=*eUoVXIG%;v}vCBA>OJoA2}0Fz%x&!#>ZF_&)u@uN)Q4!fGKBAnYz zs}G@x{cQ9<6s4NuK4Zl97R!5)#-8s$$VzZ5IGz|sY}pRHa-nVZToL5TseQhcx87!q z)~2r3;KPfh=p0dXTV&E;mwWP<4A_GealU%yB@WL7`pwH#Dh~kCu7j~w3s!_QuD|uQ zOi8e$JC&$|!bkW>dW~z{idSiC>u5rRbHy-GwSo_gfo=eLycX_7=cay180x{FaA|qQ zW1XT@S??gKGEQ$U?RUPHG~&37xCLSnXH8sTsXFdm#C#Y6Tc$#Yma;tLERI6nN^Lo5 zU7l-8<+28!JT<0)*M$e8$wkrN6aJ?YsKe_`Uo2NC2D(msRa1WbPv+Mr=i&P=#D6QfvBMJa95A+C_&b6eF_T5X21}Q$^BfUX)jQKarh#l%Yqy zKavbZ;f1w%CsT=&sxLUu0d!zys=ET6WTisi+I->nl$ky2c#?uLtl%^IqY%+Q@(V^B zNXsMWEsx?ktZyRZ;}NLO zT~I=w0w*~LB7Q##oWHZ6lTu&kriN%WrT~*EV^9KQqHxmXOlmNagb8P~&e15N;R?D{ z^58ZrPKa1?EN!hFo`uccZf_B9FwpS3MP<947B3E2neM`^Jr<<=}BavpMZ3tkNQg3fXe9{Epn2fz-b zeQtya-)Xm}!`-(WB!4Qq?06V_I160(RSVi1_U4k?+c$Dj_0Ta9_;?nqaXU|_c zF{Z^1so?@7BRYqq6-p5OpMX(Y8`W8o*3-fM<%=Jj!k!DS1sXe*T0zrtOMd8BIr&(P zoE%;0j^1|+BKGB?kiArZ%Y3m=+&eNnK_jFdQ#B8f7^K;+opl$SWBQk?6sX=!_aKo|ehiuN4*uzbm3px_-@uuXTB-4KxiZ-pL zlW6a9n4eTb_!~KFVR-;CR3{Oqhe=znL9sA=todp+5RdR;`&8#JuUEAM_J=CX)uIG0 z@zcy53g7Y+JRjnZscEu*xuz7*+c#O&|xM1X4`{($h#Uz|5Hecvl8kVW<7F{RU=33kT+R`83+ zf~qti?s(%`N1U;Y+-VUf6&yM{B?uzGG#*~HzC9|Cn1Zg7=BPxqOn2J~oWrZR4KmU< zB64!the&s*HH(4i_M5n7l*-IhomNjWX4)b{o@;yhm7&IgG|E_yw?vBUl77MP0jT2< z_JFyWCjNg1-u~iw@;f8!cP-I@EeA)JOrn3%&U@dd*;#ovE<6F2raToYz6I%exL<#u zG{H=yj+@?hl!su>z1}i##Nd*wY3`j4c#^QEF2TG~ut`72N;o6Dx=p%( zCX0aOtAtrj?>y@Bu6_ZK7gU*_n4 zu~8LjX?m2>H^t+qvdH9#J4Z1q%d41FcjZ%~C$4*IqCJjeNy(}u?)#Qv^F@H|^O}f- zU%&rQo}YOz^RRJIFvvEfePGmkQyQ%&f=Ny_F}E>ihQ@YNUXu^gC2*q&u7!ZpjP_@y z*$YX1i;=8Z5jZAwnsR$pNA)P?EZrQ>4YD86NtXUeMrIDx#A%oeG&=|rq^mzLIZPRHvpZn4F_-2Mgm z6w@kOs_#AioUt8Xsi39C#3}2P(D;{;FQ_~j+W1oNH?oNJ^l9; zS0x*)_V2Na@q0%uIhO*w0dfs2t|@=E9;xtuwK>lcED?>xRZ^q-FqTS1rM1Z^n*-Il zexm9Nuxzm@Y?McCJqyXPmeIoI*EK8EnarHYaPcPdzF<$7{`#$DpU+LPTg0@mfnRzq|?8dc9zrb79lT2$XHfpSRmh67c6`)LeH!~SdzPs0Ql6DAIh!qf>+!C7;t;6lYt8c?eY)wJw`!sN z@%WiBnTb+Jb-r@-Q2{>C#MGwOt6tTP&+R5H-)4U7{%LAJsYx>^>&CO{Gb>0Rxgnm` z;hij$c>N8};X7(NjI^+gU4)U;A6_OYptW?;RONj9ip;8lg?KA$AX4%YWiESXBWYcn z9Kk7gIW57j;v2JwjW0tmiTTl1hE2UUt18jG`VvraDKQUT_3pt=fnQ=_<^GMWQDlbi zHwCgM?_KEV;!G6=u_ zH*s80e{OR18y^lqAG)LAKj1i!GaE&4zq&!QJMVSWF^)v^E#YH+$pj}NXeLHzGAuHU zA|xlQ5G0CS{ z*e<)GZ$~tR<0cROBJ*b){r+iJ=um1f7pZl3JFL_Y-oe(K?Ik%ba{E3+m(xnu0CZ5c zrIj86TZ6ms0m^RT6-cMc{4Ixy*PY^>2^~yiEQA64QcaF+5UPJk{4M?$$ao3G%nxYU zlDlyrJ%Vdtj3d#7TduO`Sq5NQED2l_QkVa6RriE-R0QG0VoE;22FlB!w2EWa_#lDl zo1F7CvB8bvanp6(z-=e5VO<0sE&s`ViM;IILFJ^f4Ylb%1CMfrMRt@m|B=E zU}%*kboN#8rvpVGwoH=t@_eaCO1s$%^G9E1WX*YE#mG5ds~>U=C|GA$*nSwc&IJ~h zyw$OAe$l}*F7R)dS}%{kAC`a(PQ&gY>%AJv60?I8+C@7~fkq8=fJ}oO&k7+ralATZ zs>ZOql)-01|JBPh|K0fJdq4nYMy57_h|K8-5@8NuO~A(EZ4OO?NM<_^!@ip?rxeGHvXXg)bbL z78Z8KH_05cB@WUH%qY%3s8J}$$kh|kZTc9`3ZErUSgrdwy4t!DlvU^+!!Y2>Wz{iF z)-L%w>>$RJaus@FpdTOd(jT;H?xr4^N~Pu_SVZ~lf|kN!RcWny)>_I&EOqj4#ZT<7@wrI$FXY_t5aR(zkxC> z3#1yiXELWIxImJ$ukT*IfT>z3tv2z9)8rr~lacMmLSI>H`|+DOCs)( zGUmI{uw$qlM@n`5|v=@a%4T;@Do}|VQA;o zl!))z#Vx7S4`biAKn^QQjN&UFmdAuyXpRL%QdiJ5OwPrn3tXu%{f&r&P#;B&@dX7d zYu#U))V|`y4UV{Pcj4hOpAIGHSfY@y$F5UMc)}}U9J@qoI10D4upJNa3Ul8KmBp}Y zi-MLu!c^Sa4e2b#Ng{th?h~q-?iE4E;fV%0cc(P3`MVYNH0^{;(nyy<6lgXi%6t4C zV|ooK4}HWvvYM)(_IbsXfI;dd;;|(5{Ye_;DFj!!WyZQ=veZ*E;PE()+dI#3YNwwCpX8P_L0>U+aEYF|8_yBMve8z-yxypp#SxE}_ef z9|1u!G1_*<7a@YEEP{8=FxdjBOTGxX>p@GL4X6fhk>|g5(*F?COCT6$R0xbMa%g_` zGGg%lvf`Gtc5hBxAcL))aaf)euCt;29s@`A=cNacBp-96H^vBl^S77{vJb$8V!b?b z6z)fs&wU7GK~jLiKpN4x&ylXuA@F%rLuff5_^6fL%8p$ zGcIIW+t=}6{)1Q6E_O>GFdjlZ__9^znG+`5b6@9ywKBd zzCLnj2Rea;D<_O-!(X0y3(K@*S<;I>hf!!yFUC4KcujWV2CQRI)Pz{u=>zc zBX0Q;w|=1j^#YVI+<)u?N++I0kwP|X{Y|WBYmftU)nPZL$1}Raf9H)+00O=Q++$Cy zX2BNqP}`1W)2QR33qyY*w4re-T{XNVTkes(4})?nT2$=qginyV;3`T2fVg#Kx-7pfRYW!H53e;&C?|&x-=tY zp#Zle9<)eC;~$~8QWOw%{0*Ok6|%>p2iT2Q*Ynlbn$;mO!&SW^>v`4 zT&{6=la6|!5D5r0DIHBc)e)5ZeMqu`b$CNN`r2i75;!+TOXBabIr+^X10Z@xKip z;mM_=@E#oUi@8%*PG-1?Ze+f|&0>@$?S!;|3$@mc?K0jZ340G=A?~}&S~|zNeI}}M z!!kP!u!kJ#N)S1vL~7EO<8QwZ@13BZu}?%HrfWm^K;QC%1f9TpaQWVr*-GdrV_bY> zaU~uE?Rb2q&MhLFxkzG_1Az!D;%i{<#QhL&?D<_Y%Ea`5WX?n~FE~wv?gQ}@>npl2 zKQD2-)}cmr?l4vDZ?XPYZ^3s8-=8M&oA|*YIuw5#+#Qlj{F*1u{wAcFlqp)TaIlb8 zM!RAPd62_nS`QwHL>x{)Tib?9S@MYbY+|BaYewhJZ4yXMX#;PKr%Ve?=q(&M!QjZj zbCp)&ioRMwUWabA_jqk2s~QNV)f5Y5^|dMnR$Ybd5Q>(0&e7m?U=>7&I$ zkEe7K-UnjFKoZx>N5=}987AMMj?xezpwH%jQSV$iRz^k05H2Q)YmUXluJT!hNEA+KD6l~{q12-F*A%t?gHf4|5EFZ#x8F>3>fobF|r=-y9`UEBh zoo6CB&i)@%yZKG(gR2(R>z?|dv&T8OZ%f*U$QAo961iPn!pgID6N)bxCf|C` zpaTEgNYoM7+lpY=zsI{|I8KLN_!Q~a6bpyJ6Xsy#5xqtHKL9yE#=mAGysqx6A9y8j zWevtT8#@EM+9%aD3#T-r0p}je3yuIb;4S_P3Z2SKBbEN{u3>c659qC-18gce zYX@C>z{AD-)Y;UP-GMAGAgO;wjAS;(zY3m+VGHTeJigw;;zI%3*|-{Anac{vW3^H) z&BY2qT77PX(1M!pG>yA= zo7YEC>GCvlRTts^G&Htiwg5ZsQVYqp^|pf4ePt^d9@37wB^*O9C6JwCj}7Lg^^TLZ z;)nSsZaE!i(#YtuZ$N!VON>61XQ(-Q!GXm`{<6HTGrZ_$3kLbM7?Y8qM7)7nZ-yOe z*6&7L!M_z|+QoZ?MJ_{`<}Nh#8?ym3K0t#p-#8}d8c|L=o+{U}g%IaoX-`-~4q}(u z3UP5FQ}(*U!#TuEo{!Jw2{{LPHAU9!tB={YNQFvv9wa**6!Lu6=M}0jD;EOpzb}tz zQXFU}@^xzBRN35^Kve~qwUhzNOT%_5=!WFiM~Uik+<@Efj~q*&o{t!BGhY7qg+vkr zRP_k^2*@Yk-y3)fb0z<4dN53dRTqpAaQp}>Pg2Tc&7?H*I-A-Kabm1a6F28Je{61T zqWcTIlxWt2l1f51Um1Tnb$?<91=X9Q(@8iaV#kI_SxRu4Z(Lw*|aFbFQL zTl#R69Gu`_Kcj8gc52IYy}3j6;OOmB&2anlPPsPM!XD|XCY8`mk-A`ck9qrMsBH;s zUKU=;8i8j6kP~~ZvHH?Kq{tki*fm@R8|g~}sV(AVl!a|NIkIwo+oG9e)!lT%c#2#F zFe4R0KY-7(>8rkttQU7|_SX6~u0S&8%1`!}XFqZ;SIovJk5c4E$lCf-h*-+*s^_S> zRr%1tiNe)0_U+hn<0kwf!Ou7~S#O^qRX8zLoW7m=pxE!KnxzQnmzVzM9LO$qStUNL zY!>r5B-THqFY;U|jr;mY`$WmJCX`^|Fw<|oCR0joOQj+FOvo2ZbE_mFoJ%S@oa-3Il? z$XI!wOlx)buVf_)_GtGjr-@H|y^Kj5Sw}A4m2{DX7E{gXCjP$Qw%|L)S*#_tfzmB2 z{q}9@m&)7(dX;nGJE{-R z%tQNfpnNNf9#M&Kfz$&66$}V#grg<>P31Hhh`mbYCxri|iUAOBX@gpJMhJF88dRE+ zJK>$zLR{mzYD-k_9cIwGZ37$6TUchePWZODXcoBZ-hkUeUm0V0871DT`tPu{gtm+W zs)ymX#l-ud?+{Tmnao1@8jP_L~LofFx; zj#vY&%UIwZIayOp!huG%e@%kl#es?RK@Lw3cc~Ro-ADp8dD>n+Orv)9s+xQ1$&$49 zaNY&f#k~YKIJ*vY#6MLEiGnRIA$Qb3gez<4`#*iOgM`L=4)69p;VlqVv!Of;a@}IL#7&FW1tvh|5AmuoKWI{o3WQH$l32$x|4l zpR79UHnb!=L$dN}-(&`2TR9=XW!*oil;vu|=7)*~?qhr_vIpiFWi}lbc*hB?8Tb7V zM0WO(r>owT5CC#XX#qgBFUu!{6`f(n-4{TTw@h8CXP`uUQ-K57Q;h+ATN9tl$edX8 zuPAx|#C=dsdmeRc2BmR9nLGoYO#}{lYUN@H<}mJXNn{WE>2(*ID0>_1Hk!pHL2vf3 zEe zTVE|612$)a!h2JSz4{|p?rZkOTjIs7s1<81t~IHbCt`M z#H0ABrBF}!*_S;B6^3)A94sUC2k^=1ydcq^_y$NLsrJ<$DqBOC^I5Pb%M3y^)1`Qo zIG*V74%QxEqsY#F1B_>K@gr2*pzW_dY>qnoHp#q$vKRGEU_(cXYg+dyQ7tWkZhQj| z(&fMi_x86;87i7q$i{yKc!A!mlw{T8H_qo|q#){)@6iy8%4tKSe~ z9X@Ya6x1Q2{9i&QLp;u1{48mj3KP&Xrevcy^{K;ZB;Vk#8pBE)@?GQA7F;zgDZcFk zq4V>&D4_EJ)uI@GZETwI(8wwKIqxXduUoGAKn!nyR0GZ1^Q$X-3WBYbzPFVl=(i`$ zg(}`6yRn|Zao4VJX7ScWD|gcxW&z}v-AyoeG0cX+x5qxDrmPK^$(fS(0&GMRfmt`E(IW{U+4C0oq%b6XiF;S{K$q|OOC}am6K9JYnEoyDq;r|NXyHAcSZk?m z=MKpbqFSNan`*JF`%H@h&wYDnu}`zM+B1Ymcm3U^%?`p7dHkgmQj2MZXA2#y=4#r~ z?ieud;;A!@=X&6>S&+CGn+rt}Q0^I>(PGVhXnysy^K~6KPI%(f=R;Z(6IakIl;gKW zo6VV@|HZY!nGDgLJk@YDk@D2S;U}>}QnVf8(2B&Hu?n`}dQjl|=5aI~fJ)O&+Pm&D z>xD0hyEjahi^Hq6))`(9)k_!fWq9zSA|z}&eD;|n$j1U2(jXb=v)`L6C=-Y_u_PXu zD`kMJe4}(+7{&xC>iVHzmdDn{ib3i78<4Xge<+p}6_TEb5*HNb2B-u|+Afl_ey^y`E0wmmVt65PidF@lsGy<{n+^;oxofbNx`iv`oLSvLE&&6s!op5%?QS8{$ z84=~J3@)H#Fx^le)WAMmZIeM~(V1l=RV1Wrd__v%VS&>GeaOWXhB#^ zP&I$T1dr02md1~-Ve$7(RUGa$ge@agG4b!`a9>OZxH#oPf^TT>y%#C|wl(NrEA z8$O6T;IcXQ^^>@}RB4wNRg8R2zpizqOuAY)Z6u^pAU}GFM44nTZeZaqOzzqMzuUUy z!!{x!3kDev2~g!BpD#hwSgpFyWATATZ9N8FfT-fMDNX9jBb$XTsVA)7x5UE4+C*O0 zsb}C2o>SA^7?*DA#kyFuXj;9f4X&^EFenY_$vaXi(}VeGkZmL%MYUZKK!fy>pi_|*Sf+&tDw?eeNQ<<(eY4!lD^r7$~oCSSPZT<}+qrxu;pC%bz>Q@og# zm`*TGV36q{b%05$5fm!BNrps%fvhQI?Go1@0;{)ANp9ay5p}MRDHJowes&fb^+CXe zQ?5>%<$-0pl3nls-Ovbjw3j$S>U0|}8kSy?hO4caQoe>bMGb0T5U`mUsgFH4494g_ z?h!Sp7&ziBo^sDTdO&%hzYs|UbLBRGgrxn+r$HGJLoR_v$cjh@WTY?%fg~3ZkRk#Q z*FmkrD3qiq0Osr* zl!7fOA{buPKzQfXGfCd`o_Q)?m}Awp5V%OJgv0@joW-!8#un4+P@Ln@^>dFrS^tJI zNA&MFrUJ9Lrc7+_&%+*yEaS*`e!4CSSYj5`3Gnh%@ox!0+)T39KivRQ$FQSp>ckyL z9=owLjgNkOpG%!FAdX!*>FN%t_17*xK>s49(j9a68eVs>U$zicrG|&`0=aKbfF0rh zlV|5>b-Q{xpLs5piKepNjB0SzZ#3rL>?lUsE--d((6LTLF0m{_o{--)-H&>7Ggc zJ?PEvE&skU;vUZJr6yea+ZfR!%C3Ufu?WdmkCPT$rHN`yv47ggvG^QZWnQ);5PQUB zy6^s_JEE5<#)dd*Q_pppoUX_8i<<-t%eZArkO{RRmE-z|{8jXheFbDRdzt^7a=CnN zZ>2IEIO?XAIeLXifbH#rNK zR5pYFQ9PMEZU)@={juml5;pI3-2Iihf!L9{twEbcbvDY|>&+oaO)Xb{fo3W+yL`f8 zj~1zPA!2H~m!Y(!Aht+_@`J|}Zsa|)A83!=VyP6ynYLHnBj+VT(4is_w3}t-O&X_? zDRmia&mF&|dp&xOmJu9_l`>E zt^e$z!ZfgPY&VAMpa>U{2kW^vBG(gckg)MW*5`q#u!XJiBv~VND|19vu8?sTBjIxe zbcU=H+IQ}nAB-ZL2L6LSR{I`tMN)V`$sV2n`%l3plNp-BR_*$%ky0yq{F`mP$;_VG z%1{$$S}?xpVucxc80okz*RxV*Vfl)N_$+`^ID1V$Fm~?9Zwe>y#3ctrp^w=N5Xn2? z!Fs}d){P2m@d8JG^!XtGshrKLh&%=a%GB`vVqn>FhK|H}CfX^a9nTanx>1#nWmIf9 zSMIMuW!S%!n)z+>=WN>JchmsraMue00^ECJ{X;cMT?sIqB59sw@4XIE8Hvq^KM=(j z207Rrnc?bk{@NY@YL3=Tiq?#vTVT)^t2>W(sTgG6kH#!tR<}gxwhbhfXwFl<@#;Cw zInYZ*WrIg?MYw1{ZwbR!dAd+>=JsDxWwr(8R-eSp-i-TP4Cgyo!nJCKE5$`IsScBW z0GD`iGThf4g0p(s-WP~#DG;i2KBLVTk~+1}O7r?=rQ<8n+Ab>!Y_kQS*`?X|p&AS0 zaa@u-4Zv>-2U=lf55z1f2gkD~OUSPQu~FYyT>S9lzzxQ^euEbgS?p7@9PlOB z`k5vWnS>3%002j7DM}hAlNi!yPF9O>cw15E>$+(bQqy1eCM&KJU`Yt!7o5hmQ{uC* zC+w6GQ8)Nva13VY1nsVQXhcSkz!>u{z}=NTRS{{tL(tm5IY1fQD}qhdLYZwl+aI`j zDkve{iNELmuvEJX@Ol87F2G1$uq&kMVW*To|?x3k0trYE$*3J)?V7 zfO7r-3?cqaL)A<{HYY)606ZNSG( zuB3!{#jqdF%1!>V+sE#ve7M$U2iht>duIVwUjXmg95jC^t??)h2Wo35BQXE;)is#T zB|Ft)dB4*Rv(mJ9{HFZhbpaFQ88{8ela|g(i(L?e9Cb?d3iv6kG9VC4Pi-Z<2)zj) zGr7X!4ltoMC3vG|Aej6V8Q|W|Dq0AI)}?>9w22t zy1eV%w;>!8VRZ=qd3(6La}Kc1sAE_2yD zL>=U&3J@YwS$z2WB zP=$I`ZuHx1VGN4A zuinvy(N$;Xb-X}TfvSEV7W(n2GLlvE`)zQ$)M51^xUvS_19_}sT$=c7zH= zI2V-cnSJNc(c--)k2?9>W-vA|S@pG~x)-KBOGVmeXyLH9gmXO&%NPIv00W@v#e?<# z*u9YieOwU)gTcj`{Dd!@*nSX3XfG~1iB0a^-=uskkOe>{K_JVg3n$wsv^!H^)nKF) zYTV{SRxdW_rk@1E@8mzTJ$Eqt)@L_9V{A2e0?c?VJ45cSZ5U~)7m=Ru zOJ9t^&dEi?pi!(^M6NzGsx(@jt1k5^YV)hmq$|2~S`ItbNTVg@Hc`Nl@T^~V12Pzu zMSF#}YX>_M8wzA$Y>Ej4* zz7WP+q1+RU37-Kcf@*lHQ-b3ux87n?QHR;^54mxd-?afGk|dzJO3dnjL!A2#pu!JN zXYqo8E(I(ug!3m#wil{>3bq?qQ->Ib*HG^~L?v1qbWid#MP3Mh7Mz*GT0$|MOGZOf zxuXwR%RP<0DEu-MUp>+qfzT1HCJ)h72#;A=)ysOraYwJLbV^+_T(u}-J!178yW@gb-KeCVhXML4V~AJVS56Scx;n)O@RCU-5a= zk_RXJm@P`0myXdyJ_-Sb?ptTTM#ZfGM4Xm%wP{X7L*myQ3P)I^$PP8tP%Ap!<`@dx zXJOleY}GL8J>$6v0pThcC($7k5%6vBmv_KL*G^oU+G zdYGi6(dva@>d$%)xJ)5q(o*4>UBKMfeY&|d;2MyfqtZF03H`RjgR|eP0G?TMXBRtV z*XFwL+gZS3*a*@XWA6@k&p)%&=3)Gr4>Tti z$5w9#ewFgy7#e8GQ73gnRcquQDO>Mc<}TLQ+in?de_=s9yX*Gb{_wW;6Rj_x&jh}N z0|iqGjrcErdTk^i)77G_DxjZ?F4*DEL+^fH>Ye+5<4se4A{m|8;MGP;P(xBT1{8T& z(ltOQLXd{qxHkICUv@V%GFl(=A0p1iGdR~nrjXz5-1!Jzy{itDtByEq+(;IsYp)8a z0jzE#LhLzsDpkG94VYKfgW6~C<5l1rJFffB9gr02}F2Xspj8_&|z zJS~@nWQhygDx~$D1HJH^Z*V=;U45Z7oO8p`j(@Q_O1@y~=+=_3FT?l`upIK>g8XF0 zicyjJj?`k?M~Dah+;bu%6A3mzIs|?`0Dk*Z>5$BS3B+c{fC<^TRFg)lNu76jYl$iz z!qH`?H<88~>MH@06*|jQnV56hw(8A^L1Q$ z%R-j1@w}DwhotpKdvqogP;tT5|htEUp z)eIJ$S0s(j2!!F#rK5ryJWAZIRGd~gU>gpnp&}8U1I~HR8WYnoWN%2`y=iab-yl$B z&9;8c{SZXC4Ib&L*35{sGe?Yv=fb^2hyG`dxWBbk_i!$6IQWYwb}|FEKMafLN^g4R z{^kZOk1=Wv%qNAaE-?5pyAsO}g43u^&`l&bzP=#&0$fRe+$D_pvj^x_MVEAuZCKfyju?NVX_td0$LB>`?wXLMVE|>i`loZ z4!xCTA8rX(!-^_aje(z1GgmAK9;~6xQrCmzAs*au!y38zo%+`OG_qcS#Fi8kv0mRhHR}?nLYwNW`Fod9p{)z4p`ga|r zqEnS*9HEPdLU>)gJ|Oy(0i_jozjOOJT?eVw@}wYQA&u^aMo3dRL=dOulC@F6TP z%y%1=M%1+3$P21~Q_Cy;=YuKYaTZ=2hpAkN7nFce*U!`HPh4C6xKJ%(dho0j&rqw7 zQX_Tz4frY4JH|;;1`NuDv}JZN#a9*4BaEv}*n+ku39EduZ*hWDh*SZm7If{;9POW= zo-**>)eBS`vnbLt^P;mCeC>FuUM9{(PEni&9oLsoILwE@0rWJvR_vh3#H3rjo)}zQ z8gGR&mXw?eE{;zL5r?-Pw+;cv>>cOXeU|D__5eu0xiXBtnwp@eq9A2=XTp5h^D+1a zs^<*3^yIdsqd)TU=K(z-Z{I-hfgI2IGdNv4V{b^PbU2K`+Mire=OR*n;hYS^Xe zBp8LJC?#Pg1*qE2hJv$2+Z853zMV%sONK}Cb6d>)@PGCZhzIYr_VD`q7wcZ)_V9%4 zRg&(Ecs!)u^Gc=^#@BHsVhtZ^(yI3)H)tmWo5NM@c+t8dxauRM*E&V^IHl4@-&;U5D;wZC1 zegCH{&O@A?q1o@;5Ew?ye!K5B%b$ZC_Q2i_R-XCBQL0SbzWj!0m>9d2>8$8jKj_rO zI{TRKrH%Uy`{_l%=5DizCxPuY;K7HH8q-kc7J5WcdB$tb8)vsQ)KO2^0ySVyE9E8$ zGr-Rn3Jzc&C2%+7KVRDIvnHT8s0<6d1l(wRnm!FFfp3{^>sSaOf;Ap_rk6hYXlj$b zO~4YsjIK>|EQ_cf&dBK)4!1STn;oZxvs3^802E7gM~}j_r8{5HF{=&ImhWACj;KbH z6rV(<3XwxP{QY0Fp{)AU(xrpys3XoLb;^YEdcU;}LXqXn{?Sc7G+#-d_9Q+MPb+iy zH?gG;{H&TgaYmKR@g$`dJPI}#THP-TD)+O|oDZv0*(@7_fepy0t{(91RJO1pE60FE z{vy6`6VSU(2nvQ#Z`yda<-rL(&hI!7>AU67WP$G{cc3;Ij>Ur4sEDoz&`xVd9EhiG zYHDRKu3uxNP&5v4*cy6xV9jFkKv7r7brPzSc{HO5JUPQXW_~#d!q;2P&O9&yq zba#P2iOp8wR4c} z)ERe4KG~1`8bPfL@zpz7?zg43PNL+3!&o&ER5}WZn)%6b41dbTb_8e7E+%Uhq?1Lb zOq$3~rTjxkzD!@)b!vLj5#kQYKHAQoC%4X+!B_hqZW%ui$SLClB@q^eT}U26=uJD~ zeHldr9aWB|Mt>gD{ms&iBjiVM;$t`u4NmqGVo zEx3>1b-yXWuFI6G>KhYJ&TAe@qOi_C>^1LLS!H6}DdB_YXFF3|d&POnZ*`&srQ5;q zYUL71My1N@Fo}+E$vhf?3SaG{bMK!f$|sHpb_nd{ZXlVbGQ(xJ{e|g2N*(@lJxpcV z2ei|LQPyT%kD*8PK!cw>^Lc?B%ApwUm+FSFpSB-4FE50Kcq=L3i-QRT-t)2%Pfm>) z9`6<0v}?8|GTJ+fp`Rs-vOC{Nvr8r}Wz5%y2X_*)vwFuXUyDh-Fvv=318;fP zP7>7HY$H~@B-*YOxTndk)atzz63YK2w7Klea)CyK@u%?I8%z0#%gG`p8jIn$kEtbG zKbwCHprYbjXC>d&dUQt%t@yY3deb6cuO3RlSOVWjbHneiOMFeAQe!q^9S4mrS!L$u zvPui6ISQxjtO{yuY~PMYzE!_Nm55RHV#V%s9}?v6+d0oA(V&Z!;6SjMoKZmrP3nao&bQr8XyJLX=2! zp;QLfOevP*qxgX8bs61SDXGG@t+#mZSFWmu2kkLkXxduZnxecrv5`@d=;2S9_IUa9 zYk{ng$LVIf*2-5$CTm$%eM8mUThL6yv+jQ4LJ+TqbW_e|biQ(j6r8c4`Op%$i6%4O zxi6l)u5<00LR6$9u26H0AoYki(xT}D04P2(#vFU!Gv^BXZ>$D2A@ChYsg;BXm<Ef$5Vz_S2$G_dkXd( zSp}c8ak&a7^@SXLNYlw71F>@!9(3fgL_hb=6oEADlStoy88`!eX*2%#AeFHvYDV`P zC#lrtdNwVk8->=u6*>}z)=d{iatTyuv*3)UX-|`)+0uKAO5;yyCqn2yL{s{SBM$Gy zk1h{CC}MVVahH`LZhDEmr@1*B6NIa#Sdcy~K&$zE*7Fzb{}+aV+hq#aZYGkdp% zk+M}9*J7qOC4lJ6o5unI|H4yN`hL`E4Qm0BB;KU$fN5x+A3TOnh9I3d^HYj5f6quR zGsC2niC9MbC@; zws?^@(W;)Ds~V%c@_|dxm(mFzwncY9XIqw&El~#M&(RMOWMj|>)fkBp9__B-1s4ig zO>rnYn7BV~rj9trOy!iXBfG*~k5JlxLGO_2XGO>zoHJhT#J`CkhR%lYa3CIXoP8I; z_?pTbJi(m%Y$2R;@SHzff@fQ|sH@sVxAL&AF5TZvgzIg@&H)N2{H40=Jf9X}V7S^* zr3^@)&h&Sr0yK{MS~e@S!cBhaw*f_UHc!55Ih3hEq!5Sn2$W{NJ+A#5vqe zmUJO{alaUG1&pu(I9?`HaXOG8c|Xa#A-qmgob>%AZIJBorV$5+lxst$UTX|50o`Yf z{e2;-0+77!f=AUSEURG>X zVy2=y1R8rW?4j^l6Z0zw&w1exkZJzyn1p+t^!)BXbdYNqTBmOxD#{*>NcBx;tNM617E|HNjHJkM zVBsJG_h2~_b26S=3Jz%35kn1z;Px~BFO@a`y)T5v8?LC4v{zD~=#_EcF%k0&f20NY zCV$W0m@fgC)R`Y5|H!jMr`fK}l;icC`lI0(coLC$sKNs0ddzFtLos z&7yJI>vM7cvcGNBBEnu@eAZ8Cx1TD25dB~A85$w@pWn=sof|Vp`c`X9R?YUdN5VCo z2?x?RQFLK6O3m4p`LdExOt(S+vK zP||$$IAN0o3Dt+ZM_uHV6>ITjQtw>fh?Y|yCfFfwxzdrEqkP&j&H+TDX!R9Hw%^1_ zk|@yDN=e=@F;y{U)TitDr_hh)Om48B9~Dy6(z<*AO%Btl39Csb<+;#SS+8{hAOfs; z04$pbB4zstz4#j<$#T}Sgyh331=NYc!jBzOxm!1Fy?Y2OO$-sg5L|nQSNBQNYr}l)2dbBYPItWp?BD)*zFi-ke1E=nZ;$$y*6b zISe?}5#puW^7MjJp_^_G&LB;JKLr5%`*vtdM)5xyZJWE8dhdIpCqh@3u-)nHzWsT! zSD@f0;0M-^$Q2VkslMYwpBc}1k5O2BGCiJRXVb&Ax4$Mv5GP)ssCy{}E>Ay_+r~6$ z_WL+vVMO1Io(e8(xD#EmzYO?TDF&YUbQmkmo9E{ zAl;1Pup3kW-%qr7)Nx8pM1X3Q7p|k!kB3ba3y{%x%>3pQy8nJ|%)0V+$bcq+Rka7h z4e&_dO(VuIBhowilPW;i2Di4SaV08IOSiV1!T5m2hnbeoTleTmY-l>Gvha| zZqCS|U}>k0xlN7-3xh5y17LYUmR8cSR@axy$?c{Z&D2Fo z9VUTV5^)NrgL<;D%deKTE{9y)A@QC> zDBol=0ssC(7fR{)vvS}T-p)rcN(7r~9kw%E4uYB{@w5yuVsev;rvqH{+wU4iya_9E z8`ojXbU@$W`0XJ~;ju5t=-v<+Kx9Ar8()jxwe8qU-G*$enuNMb#5ReQ{Hl^}1tDx= zDb1OlmG3BAyVWE2D$#KMPb$^ap4oSwZq`v9-_JSBtx{X)aWKOc<%fQhhL6QKTxyG9 z`r^;9glq<(C+5BfU-mFT<=AV6-#AHe;(l_h^*bHctujFx)0dN zepCtO0|&qqUeW+Lpy;JNJKP5C(b~oZw1b!wl?r>+AK#%=L{!!?GSCCmk=$_)a-}IH zyiX}wHRYA<<+=C|HK7L;8U{o0qRhbZ{NfonFXh+v_`R9n3|Y#tUPKkyhaF zE7vwV&oRopG&}>39qfz&pkgT9OrsPT(8E6;%xl0=?DI&ghOoA0z$C|P3Wq~0n$a^7 zkXY4ECYZCIq+5HG48VL)KR8Vm9TUFj0*YSv{{awf;gd-$xaX~2?T=+`!j>BemN zcn{+HH!b>_1zUI{jK{gT}{`t=CZw{sjwQKi-v`8v<`oI_awKAm;E> zCI9Ta?G@jhQf5PI3d;>-FHbcEv|HB6x0JK3gf@5m2t3->!M91I8^#K6TOQ18GR6q7 zjoWy5Oz(8^P=j|gNx_kjQCG^md@b#ZV%g;_Nm!V^tV$=SGdhVHopWO|c zh3}&4w6`I_pbT?M-`$(I*P@J)xNS^(e1~_F*4I{GAeP1mvwV$DQSEx>g`jn{)6!cBEmVfvTJEbyp zRryYz$IWfb@*Kz{bVOa6CVZ&=M&QNYMqdmtflGP;9s-f$4ArE^mqv{uq)|YDERm2B zla*a!Mk)KIk8XG~*gT<`fH1{b8|XQx$5d%X?7OEy(^#b0tCwNrZ)r2fDx0=DijXl| zVZWp&p?}+9(4LWnIO4R>LlHs-#%fJnV~iH+^o2y;B?^;?mzmMjOKUJ9$PcayxY=qm zgG*YiVgHAY){>FmsII7cR%UXXp*Euz3eNVTPE`Y6R;TgD zGv*Ehh|YUGbQ=;oqDQbV9joafmW>U!!dni8ywA(4M;y%17U1~`2x@Xkqb) zI^Z>7Zgo4Hqu07D_ec0`!+boojM*n54IBgd&$mxJ$d#8-fBHl-XdChH6kg^BSUsn~ z20YXxd->>X(nu+Z?O+)@P|MPeP}gT#CZYg5RoDCY)zv3{t3A?syE<%{xab8cgy*z1J3fupy_KeA9wL}~v1Yi){v_-hcL$h&~54C%HD?;iyb-x+JCmTiJd|icsT*ZnIVARIQ83>2mU??F zxIJ%+%+t?SdUWn-Iw=6CYn76x+`l~JhxxKS6!srjq5A4j`;9uq4lC}TC*v8&x!oA)hQ02HjEwf5Lqvz{M{ z{Xkgs_+e16%@jp!nzLEAzXSGN`^=_3iGCa@bBB(1<<7NL7-NiL51&Y#L%I;HtpWG( z(Z>9N3-}pV@6}E|TbZG9zpOg=qCPC@F=SxK1UT!QW@BZLXYVK9_{v?vhq2AcjSrx7 z4v-z$(X7y5=-uxul(xF5n~d;5(VB4=uP_;TGiUM@bw^21Rm`4f3{ulWd95vknla}< zEi29Oa)KeNWZ*5F-e}HF+4yYK z61Mr?W;wxW`ST%k1WYsrq*cGY0648VRj{_Z5dOG6Eu!WqR3N7gK<6BejlcQw@lRY( zdP-AXZ+l+ig3)r2XHo8?wjg1Ey66=0kGw4Re8`;rLjC#lYVM6y z^o0y6uc6(;7)lSNFR7|rZyZblePm$%X^EXa$PCt`&u6>->1NJ!2;=;JC5*WEGnQpW z83o(f3QSTP!*k1v74b|%0MLlg8ci|g6$OaJLGrhY6EB-Q5A!~Tg$Bb-Qw(9M1qQLJ zWZUok2(<(6)gAa*9OjS_J4HBK&g*e&s1VAxUE`G>wG%C@mcYiBwU!?fbf3k@PaEt5@TVc{NjPz+EJDrWosKZf# z<=g$Qg)8$m1_;KMBxh!v9S2RwG*WK0Nm@<@l2~~&h}&jke5~f>_XS)Dt5!jI7du#W z`B!Q4+TK>?hUOo?1w%nf860ua3xVQf+(`L#rWCcV`*nnJ>*orBamED_AtMs>%CazC zWa9i+F~&}Osz|V)Bd2Mjd|VPl-F7+vAI+ASXI+|iIVBjm;0P4m4q?OHaUw}xT5b};#~+cs z%ue!J54g}^#gCa1ld<^x%&gq=d6+i^L*~tMELXrt=I;j0%Nbluan=pC^TNnY%qRCf zmkA^zLHCdvF|eMm$TB4|Un+lsjsTen@N6>oj67)?iq7E>c(7Yb#r9>AlHqhQK%}VI zY0I7l6O`EF(ZZ7h;M7ikGdPdd(_ys1Q)pzDxmk`I-75tK3=E{HCv5k-h8)jL0nttB zsH=ETl{`2B@AN0ORp$4>HvA?ousCgMQpYjsR3R7VT*-r!Sq#W;L@hHSila}M34L*a zc2$a;r25h?CkC*T%MV{zoVE_&E{BCRA^d4mJ{(D03Nf(q2n*X$p%k1*Jdt!343KzV zV_pkqYpzAE-hq>T)77sMqmtdkNHZU_Sf1}72|fK0J@#2T1?&V?vtvJq!@^Wp?XmIM z!uQdfwW8PsigOf2ulKc*fc|p=D}b;!(q%9AX;u4#c-M)sh%wH=ohIYr*gz@<#zRUE z58B6qOC-A`fxESJla9-TiV_t;T%!y@W*&1-u@{9G2>Vp^)o=8Lv75u{5>yXPOpwv) zC<1Z6>S`{iNF_^s(6D(H&e*cpk65FCF3~mONXQ$~(879a(S@)!Ut+)$>H*BZf3y}W z(Lc~xQ{|5LWnXivOIWNb_E;I-Cv?$DTaq{R{RC}gp)0+QIz9FT=A01=GSuqp4ZSqiGFBGSv~WeP{ZjeD@7Z4cf>aa(pe%`ifJ8CJ+`UIMeq z0*EjTE$37Z+~2PCF|Rp%W&`fBVF*D;8O!Qf{}AGVFR|Na`A@rd8jjq{VcEczse2uO z0I8tBWe?AY00lR-KmZ0}j_;P;vXig?Kl_yf`0f%|A~62wH*8^Y#R2d;e=EgaB2GtW zjb8LaiqO?vn<144zrOhs1u@Si6u6-_h5ER=AI$fmd(^y*&jMMkKwo$`alR5OVQXs^y$KM!pU(QdCDYXYkDUn{uXcb%C^Uh9AdakAQ1SLTHZ zP);8Z1C|vaX#&l(+ueJC@MJmwsxZ!I&ItneW{qQSEp1rPVQOpY&FE%oFR80%tLJw< zaJ)!O6t|>!q8+oEARa*s2vpK*x!q<}!u?aVrX^otna^HC1y`~rdj(PrHoj=Ns1oE+ zbLqg`?4HfCV*VMT)Qu1{3u@NSKlwYVfb&wu`0XTL!+jAS*#GFOp{`;>mV#ngOg4z&e*%ZTmv+pqv?l{NyjoRm8>`1ZYCO_& zO-TsuW5MPkmINOZ9~vUZ>CXMkB#7?`)`NSDJA0v0{`!yKtr$FP-F!Cs)#!6V-tGM{ zS_ar<0#9{d2yE4?#<6~=8RR! zvkcZ(hkLhS#Q5~9C=e4dysXBSrD;Fm0%G2u6UV6?xz|~-`$R-6LgpT1JoCKzXzH*l z7_OPQ3XwaoqY$wp$V+RosO52NnR9yd`+!OuL$P%C^lfSbC#40SR$!7A;A{6ov>=nR1dO@s~9f;5IMYrdr?+3BkFR=J}G^W`b0X##x z&}EjXYHYvfW=-WWtkULz|dsi?5++@~?Lp$ z>^rbl@kL_ipDX~jT~vO5jjvy8^)dGCTpfj5gaY@^#QKQr4=X6k{sSH40?R`EkPO?Z zUY3T)$%EP8L!N*9rQ*N|X!tqX{*##rfLb5=*`;zSj}}Gt0QV)U%yP zXLaW1(ef}@YxQETuO%Z&^Lz9aI({coAmW1pT)84T%x!pa0%1wfBCop)WY2OVMt8oP z5GoEn1Gh!00TDAMS+Ki2`)_{Y?ZIz#1}+X>JCw*PgzsUeqi%-1$c;7OJAA=T@C^?@7VDuR*`yK(LQ-R`-$H~EU^9(!*(QWKLuz`fKT zboVf8aav{sc;;Hj;SQXki|Co3CGdV%EvqW$UgafjbSQ6OyFY{gXW6MuH_+yHq zW>nJ~zy>`!f&%87fWik(2=3ymqS2cG-1k4a=l{96krG5w>U1O#4{4@!7h`})K5OJs z{pH`<&N!L&FO@Yb_(n+%Z*E&M$DC^-3G-`k{n8Ybh6{gohF&I#r#n&PY(ni|WSGd{ z@csfW4ljCC5B+XDlei-$sD)k^pO&@LIhp+~jy&sWzRsRzS-<}x$w$F{=h9j$+1fIZpM^OPt}U;_rfP?UBF>m4C{5wI=N{#_s(`2j!XQwH z^G+413*!Hyn7~}WFNUPo90wpMSmj}W+;L+xAPc!fsmTHVNZZ_e-7rzmjQJ`m&GI$6 zl&Q~Cta;_oIpYO|KoAiue>0t%&aJ-0i%ax43EDSF3=rt#eBzj@n(S#Tq^Q2fjv`uA z5M#DE8|h*sDfF=zgoU9zEQ1#3@0@r)m2REEns&339ta_Xx-HHbt19l6j~X@8{J8(| zYIyY8Jbk4ACk6IEF~v03qak#sZPx4R#+4EH8DPR82FP?nG^y9xDgV>5O$|SBX9JxftHVgZEg*0Sx$^35QPX}z#^f}*B!tuf- zf=qU3u-Jcu7wmV~rOVD*f(U+2TBWV#srYbeThpAU-`3FzpxM5ccuZ$kpx0|r(O-%s zDW^@hb)(fYZ8ugeOw#3IaMW}3z^TptqNGql&oIVs9wnfl44xI;uDOs6Gx7Xl%l8ze zE|olbvL^{@bzL(@_4~ZTQ?T^93^Zofiu`qMR{gQ+5YI5b=6kd08u3u?e%DP&z-h6 z@uYCiDGIU{0R=!{xFLKKb^wzwhEVqbVtT|XJ`EXyr~n4vF6W(h5%@eV>J6>`1~#48 zXL*8AHmni%(|m>wtG&g?@+;fCjh1mwQK3P`+bVUF)}rZ6)GMDd(JPe{lBZDh_7@~F zHNa2gYnh41QNZZQAFn_*W(#d0pHjQanT^FHm*Q z3CwPF85&mTTQf-RWf(e;7?V?wFH(A39iB;Ct4w6)Jt&uPd*Mfd5Z4-Z8glohMkTnd zfS*TR{|QE*!NH$5no%TO1jP{%{PZ0Fmp4+#Rwg(RcNDFJQ;?HS>3UlsGtC@vQah_q3UJG3CBq6_- zZt#zFRHsvIhTn&id}s(wSGH#KFUzXJ#C1HS(jzE4h< zV7KO&PiT7O5~h&}`|A+fS^-lQI&pk$-%)}5l-LujKJSP$e{Ym;;(f+{)}b1?y`q~P zI6|ic40J$E`dak?B>4n=-K2gzo&F=DHQFS^Zi3%eziept;GRj^J;tz1p^l72IkW z{y(FJNX1}^4^%YJ*5xZ#G{K5e2dJ@~@Qye@J7oJR4gW}z(2utNxdE3&CU&t7vvf;y zZx$|S1S>J0fubPixjHn2APfSE?q2~b zu+r~{NHm;z(ZOH~7N*oQGeC%o6gSTrER>N$si)dXZXyZly$M6*9fTbG*al@x*gqS~ z6UKrRjc`=A;4|20(Wc=;A+kZ(MjRQ<_sH2Uiw82U1!AC8cymWSAAgrJnSa3gS65Ar zmtbIAl(@gheG|l~TA9X2yQt;(w==~2XR+0{nlDSODV9siGr7btWGz5C`KbSZaUhjk zdp6RN%Uy3q-1^{J$?-_4sg2(9Q=}HrY3-;ccULDOnFq6m!C)KXNBFuQ1fbM=3Vmo) zGu0XH6?3vQJAC^)#W)SiUHD@4p^(K5+<9Z;i2I^5mTV*D@BzMRzH z?WZbyr;73mBF}ZFfYR3WKuJNjea)Y>5lo=->w$DI2LZxtR&y>T-?So*Umr*)>PbUB z;5QnOe3o??Hd?Kv3^XR}FgOtcn>&+1*jH0-iIFQ*l0hGvb@h!9oLfU{d~ml5Yx3-5f&lS)U= zNy0xZOF}f4usUQlcRKwwe+JR}=3!Xr4<7LnYir2s0u86)kf=~WV)|(qNS4mvaNByI zB(dU<=H~4uZtv_j#%zyq`8NtZg^k1qa6j3k^qg>b0S+Bie+XCO2*GOuKp3FqMs@1; z8kLYmkF=l7nO21&$~$#nM;hK{bFd$M?Tm$JbLAo$4 zumA`>i!kh>i4-n_f(#*xt>1ZnNRC3o`ON1m9%I;|FRva(WEo#fQyT!;_wu_kI!n1_7baB9#AbP zk(2K_q6e>en)4w9xC*=iC3WnaX-ETGnGCi9VLthaDUjD>zeaTJ6)u@Yj)u5>dg zDJ0D4BZ=z+tBieK81qzl002Qc1+}_4Go$Nt`c65hrUA?526L*`nnb@GX(dhXiJ$n~ z5;;RH<{za9gp*W#A8U^E;^bFdQ?kZu6DT|rUSR`}ucM;xla{Hw(jZzx5&gvn39cLBm;<6vyNShC@y;| zkd$7!YGEyoGwHDC%(|!2RJjtZU7`6vt56uAy)f|->Pxbk1tDIPSEsmYN*J>}(2e9F zN$2M%y8w(KE)%gceC?P-sDZI;c4GXz6u0pyBy7zw2LpF@MUl==C2u&*C;q$RQzBpK zN_MA*5C~d9pL&~n1*dA{N^ZwU;V2NaV2}bQi$@h$O-e?4GPHi#Uot%I^v;p6_|4|l zXh0K&Ea(m_ysm&F`Jpe>zXMbakXlq#IIH}_*CprUKRKG} z-H1)9C)7{@%)}G`-|QquOv=29?`569eUEYy7XXuy8$Bb7Q3FqE?Qp%Nqb{7yw}&>= zA!m3`WNLmU{)F^ZkL97yr7E=zf=X`ieIlMPZ}!u1=J_V$drmjKC56b9p|0D5JGRH6 zsEp`juyy%}M7s^q?e+qXltc^`05rVS&4CHK4XD1vgU5|oNfKtqJ|RWBu2x?DeL;e# zXB=BrWcFnG-wAD?THnH%IpHz4Jv;Kcrf`7laDxpWXxHeBk~a8qqCfNxo80XyDK~@n zf8}}(?Zq_FfdB9q23viXPY&ZWXL{4Wj8GdRI=RPesHzyl+{ydA{?kH^MsYw`v!aF# z`tqX2njcZ3kaOnskGxe$XIa93-fqN?bzSzefFEuU-d4ZsQp57xeDs@bXnD8@a%(!; zZIhseV2zT53FTs$Z;w&5E|W031?jpb;1We|uT*?5BuR@_Gzh>Au8+vs01PE9gAVuB z-^1(UA8PbG>w}2uremekkyfNd-tnSp$?AmL7+B{2KfVb|GTZRcxCQ+VMs3)KX>RiO zkW?q(I!7IJ*?dQ6D?xFEkC^RsLaNBg4eBGx1YOwz0;=KM#G+NRjG159s|2n0_A?dj z1CR~lOb1zVsxxlSVQveQjma}`Qkr0?GwvE!bv0myC<+2q0-tus*UF?`X*RHu5GUPh zp@6Hc;5m}@ikMtwY!J-|_SW6w_n)DhLSYC%tAr*TTh~75%KVi6w9TW4P66$aQDK`o zv}dS%J|a>uIuAgRFRp)XH1Z}X^xcM)I-%8D|DowOxd?EIu<)AZZ3#`UP zYD}EV4k1e$NfEFNOXHQJc>eBZ%fk&~WIK$i5ol&|nk9zLq3Shed%5Zp5Ral%`nUJT zs3zu=DPx!9fn=*er6KZMryTaY0000&o}B?c9Jr8A>=3@#)RJxlNW{f>nG|PV0+Mns zSQNFELCr4e;*$79uliEsUp36ZG6o4bh#jVH>3PzP=z%M+r4JgXlX0d!l=JRUu$d-IDG{v#DI-F%w6pP3w zmS$Oh&q*ElnA9STc>P^q@p(GgD^38mw`{;cvc|4kl}C{@!$tvp6EBO@B*fmLzpcmx zm$rF%FT7q!F~H%Pte^kR`0mBK5mX=|x#^Nf!Ac5JVXHBGwtk7GHQkL61R>9zR?HR4 z<@Q{Ckfo?rOI@^F5A&FirVGqa0M|T~hWy#4ErJN8IZA}sDi*Fi<}Fit+RC@ihhHx) z&>6+JQI;*I?S7+*+b6}UXKUxg*daHJ=REOZ%}8Ht83Zd&Bxy&zYM?UVS^~56I@sFh z{U%xE26dR*?VIl;>OFIP?M&}nu!zrv?g1>^HRgs^OhX57YTtw*ADBrf^`j*c;FJ{0 z{*w*75{byT$r9!nkTx%)FlKMIQTObuUbjZiur1UIH?x^HE(YBdb zsu}g^sk&>VtL0#K$>p&rReUi&MWpEC&C&dFsM|w;_kJ8Jf?$p8A2R$6kDt}%NT1IE zq_!BMPOFyXfd)9|WL-L~amoCf6j57&VPIw0BW0JujXj||ZLgv^Y&I7d9ijAl}qlJnDPd~!KSAd6;_FnGY1>sv%K3GB+ z9j{n=^esq$vVZ)py;rj)nzj)8Dg@GL*KwS9)fj9Nrpoq2T#7sp)TsBt)c8F$h;gYg zKW@YJFR)czL8P;2pz~4zj%%#M4JUa|f>iH}*C49&eIG=kv>Rjz18q(Z=GUE53y{*l zxy->*wvkCjqb|Y#TF(=)uMtt|=~T|1wb&yPwN(9oi+^%N70zvnkBOoAF+OaF4|3-c zzJY*qI&1v$T#r`-z{M;e(+FQDf@I{Ga>RPTMyszfZpa5|6GWX+mOm(wm--f6G7VzQ zC*j6Bfe-Mxshw6wv(};sK@Awr|8Hcarqn_I{C}RBt_oQ!oFF}jV%t5&WRxtyae*9Z zLaKIQb|;N1sDTLmo+FBVR=lL!bd-HhAlLRe@;l0i27QplCCoWXb0(y!{B)5HW*!Jl z0xmVqGynTr*aW-K4YnCl-(2|eE2|k%8^%DY&7l<$XH|i`No=m5zVJ!58G0^%T`PA7 zabj79c<`@%xfWK99sF002EO&ofQDhANsJ?awOBx+MQ7|n?h<3z&`Y@_HqUc{4sD-j zZ=lWz6@CE~%|3BsGs)w^3z}QY*j^b@t>Oe%HrH6ucnB*({t` z?{#|I3F6=z2{#wKMNMxzM2DFM%A_N3_(UQ`W1+SfTE_1(+X-qje-b>w8o{VVLd3U= zhEC}7F#SAi`)^3w`d>l|mm{ED_Zz7A9QlanLUNlKL=`8|T{i|#`9xHr+Kr~uTu-nB zm#HpHN!-9u0HT^Zzk?;=X{z&G_2s@`t5QX(l+MnK)7CX>tVTwKPFhCL4a{6m3^`{k z+X_*_5D;=nYJ)-pFO>)oA;PD3tvq}i5&w6hOPK2hsmAz_oR$lrXst$6Hp#*STJ9Q< z=A*3VmsStbm<7D{FE>>$(8UI5y{}8T6gJ5?B_eji0CGxLMEh@u+a}H(nm<`~A8?x1 z`I)O4$#Fh*gWUvvcHTUBop_Cwc*1gXFBoa~f2*hs?+2}+kiL$N?CNvW8+`t9K=;FX zPo_0W%HsCE-6E+pnPcQ9@7_rLr=L&oODczqGPzYBU98&c%OX=m7&M@=j`sW_Ss{c2 z%1c>>O}0Wnw@0^{bFZs^sJ(@DquB#BwLV&Ex z9PwN6aOTEP-vhPW0Y+f!Pc_N~quQ5P@c%Gp0AGtI+PCQ!*2UU?AO|R)umkE*W{uP} z2XtTS7jtPx<~}X#hmLUGyxDV<=)e>{T4tW`6Z+7yys2eW!z{Tcosq@|M0?F2RI?|A zJgA@oIu8pu)gB9d87-#8s#FDN2kW9hxhI~RWWy)K*;zLz!Fg5uFCStl zki}$|Su$Yc(A!@2$u0d6MNH_4FR(cvSdq&W)1g=VmZ2+|T>CBEry^5;UnrJZ?G#FMtk`&Lb6mSa=uAMS_vZjYYsft&+zMW3z>mZ z8~TdcLbEFLKm1_>DLenSfyqJ6^_m{0^1J+o1;N9)i|7-G)~UVpBg@@$2F^piez*uB zwergqJGV$pj~|H=o81dn4PFWej8}%3Nj;;B9p}s;4Lnrxy zAo1<;4N6m#4OqF#t+IJKMn}uh_A#gpEcT!3a6A)}p^<2kjg$dhh9{hfBQM)8udt%c z?f`L@h723;)2;6MyY2~5&fy`dQA|&^N8%K4_ckf1;5l52upa1vdawsJAxfarUmxPB z9L(iwv{6M}EQwg9#a8_(brEz>nfs$&EN&M3%@7?bp&6)#TxT^ zet~;0+faQ6 z`ZULjDT-LMOerH|Muw!xKB1IIElgc9TF0%*f9TW;hUPU5(^IDgvk~v4l#Euee3tXd zpjmgqkE#&ougP7o&6c;VV8+lSq~Yfl2YRhO*@5Y*8-xWkP6RoVXLgsOkc)@n6iVse zkTa)f=XH8CHQg8isi(Vmb5N)6GWtDCh!kk39BY(EnwJIwM@ZUzN4#-wV;8c1_Z$F=U`|K^)D3 z&@e^Gnw`6zKU+(HGth)H|A_dXZt;@E`<9~2S*Zotf3qc|Ll3+E|f%FwrGm`qR zB^EKpL?NkRQlZ`+s522 zHU()~j;GZ+8__Hft@VWU0D;Mmx9BN^9>X*qP@;{ksBy+H5UkAhCcjEQvqzR*tc4?S&%PP3Y z7P-p{S5=zLV7JchpH_BCC!oR6|`sMafB`jw{iS-f$diAn|o$?UKCuu(VjIw~p%f zdqLA{V)TC1O`4$YP7JT%uHUZEE7awyEi<0lw^*4t84iRGpsL9k`Md8$t&UW?)*Z-U z8Nciqvl9GYPRm%nwUmqN?oe?wY*8aK~rll>@oGc zWYZO2g0##LED9eQNpSjB7@38u0lhb2R)KRgGbBbxJUIG&t3t1=Lr{=SR+rfR!AqFb5ObhxiEz1>q% zd=HKjk1h{?*#=Q>(ete)4?NDmgQ(c8G!E1H;DYE~iU`|GW?XC#)QfL5Ng?yHtTLI# zDA@r~SBNm_+Bk^gmrt_kwv)qKRgKnCO8Khts791bFGgjQUTfN}zwI7_{%=yv zp33MFNN@MQtKT>TWpISN;CI9RXAkWVzrpG3yE(W2%O@^X?~N`}$SpD33v(F4M!8kQ z={5#XI!I?gcRoeFtjj(bR2xE$d#ftthdd4FHvV*ihirM-T>`toKY-9>a+Mnv z&Cy5C$Ne;hfOe=Sh@cix6OZb4nY*fJ6h9DNnHKUNkg;kUDJS1_ zi|{rD%pIO%8w!$x{qx*GV16GVxvbPRyUIGM9c)$9&elzs3!+)s7{f7MG^#YN@&?5( zYL(QW%fcXyQ%1R9&U)dV9;`}&w?op4kXo!P>{EK0B1!oZ4Wotal@x8n4Jxk;#Zqfr zd+K>ZhQL2wN}*(j-kFRF*l&P6$|L*tdoV6W-3R#6ji86nAj~ zFB$uqiz(c};#vThYETQrFjeh*?Flt=zq{%gH9WL=MnX_~TrY&7%fTegA7cn#o&N*T zS}A79**-s&YWz^fZK|skSGvjnYq4MLcYcSGfW~YgMq3|H#CFNCfFhHP?9goDxw%1j zVC){+K6bK|6c_6d<`<0cdiH=_&!50ruWGb46OVOR(=1qj70X`u2%ktl4a#dXupX0L zjDh#H_2nttn`;YXo|S{BN4HQq3x1CC$}yjp7gCyF=mBInIU}r)dG{D~-Xn}KX(m;O zvLmt%QVUpznz23=b`TT==#g87p#~I}%}>6JXwPyV+>g22)%iC@vIkf5WMRIrTdGPx z?;8V+8?Anjvvm!m$wXti^MMqsf4=hwNt%3&)6S%S_1f$bQm8JW)rw%25JcTkKaKOv zP9q$J`D$=;@lqLT%SJ(kMPQ{T&h{>rzw8fh4p}}pCLU<{eFiKPOu*IB&-Z)QwCO+4 z0eJD380ovcB6g16<0e4;7tto?-~y!n#o#{N7@CKbp`;~X1?D+>Ecm=Ta-8M0<4IC` zc8>wU)d``YTp#V2s$3XFwrOJX$wHzOk79Q+#@4sbkhmXQVQo$wlemKrN-f4T)3l1# z;@Pwh-CLs{7%7G^NDsnSs;5S3ic3OP%jc*br!4&6tRWXt}z zd7>>GwZ9EWoLa1gSlr{Tav_P7$)e)iS28x}v*+ssFVm@uevwZ@!VKmFr1uW_zCz4> z4h3lC5{JBXWPKSSPW>d&jJfK|ADc%s*bb(Ad&L`%n7b>S>PeG|ui`IM+A>mo79>?u z1uOnr?T!MTagaTHtGGWNV|VWJ9JDBUqk+d_)0iE>K&OLX8_x@8rC%ID5R%ot8gOLja>3wul z15-f8Fqw{R+mAE2vIghzJ49s*0ue(i2@DXppM2b|Ryu0b^0&QH zr-ZImn9PiuLU>eT+BMjoS-D2n zJ3`b4#{u4Ni6!cPaW03iiwmrALteo=kPi{MwSRhvp-@mowt-V<=Kvp%r+zlFZ0Tvt zFC766+-Tj)`W%8=-cUg?UWHo)f#P*jX$!;RGdi|@js-85H8O1<$wUuUiovg{l6*(0 zhZe#zOZ$MIde>rRk7(Q+*x&BYjlz2y-VG5l==#6Bcti2{+VMA42Qx^Hxeqrg0HDNA zP#-I5f+hBt95t3~RjSI=_n79H>ZpW6Dn|78n9hW1#6@KW8zC;kOssY-g`V+tTqesn zhPd}Jj3F8j)jI$%+SQwiyTur5Zx?1$*=g^_#eBA^U#?a&`gDmhadfQoFAD%L#m&rn zr?Y-h9sggod=a}OZXL!L(G#adv@onllNBcyB0kcCzslTXu_-0eiLd^!L<`L73(Cho zZSCG&nG728s?v1HgpbL0#dSurI|=b@j|#tj9GL@xn|}P{ES=Au@gvRi?T5|5L>7>a zXpVEb-L@yCE!W*)d9{zv3U8m?3sg$;ki1U!;dMzoz)Qd{F8Ugz|H|*%q~D2aQ+kwg z(h$44yB#S(Ze_(2&6RClcizPfyy09G)Tjgf^v2vWHA^~q+`*-K z1P~P+{~&>Av6^cFzL2^vs!dTvOS_xmg!YHIlICZAg?!PreVy0bw~ky{%AQ33{Tg23 zI24N%#!Z;A+ceM@%q%!bJqbL{U2}NPKgw6?`8OU|l&ZzEhx~$(=4X_)30081a?cY2 zWXMEv7D|u`Cf{eU0W9 zTZr_Z;u})YzJfPHK>#*fUw(^}l0?)u!YR_mPS=B}ad!ROQ;mx?%g^|ouv>HJFB^3B zVpe6yp?cA6zm0EV+0T<=_ErZsSL6gmISsPe_ysupzO2&_>T}M9T$xEI_UmmwYo|%p zdwY>+}#6cT&7|9d-bzI?_dKPtkd2%@XRkCjk>rZ+=T6CVaKh z6nk}c?v3Ax+=%DcL|f)VlASd`$OOC~l9{LvJy&H~2Z2A1$YdIIp zw~M{Y6%Hy7=SZF8?N9Tks=O5w!i_W93@#f#UvxiX_?O0Xi0tf{9*HpB zR9C14r2f@tL%n#o8fizy$UW#D;NTW9u9Fue?OP<$zr*qPQ1r5NcoYwo_btEg+5cBF z80e)Ixhf=~X>IU(>1)=!+ADhm^%Ck^L8)jjfG1Yq$i(3670o_+(5;7z{F@IfI+phy zf47$&a%WH9I_r|!d6yi5^DHGft{(PCiM2)ksqvj5%Et;-B)sSV01@nMjOo;3+GI*h zX8dOA^(9rK=2(x-coMk8yQ2z)FnqqO;=0d;2Z;G}dkWn8=cv+I2y2LlfiHAu>8!H4 zvZQr7549bw*2lfZplw4oD&Lt$D42|?SRxZ0wx4#-!y^I~@kB>QgOZ2-sO&i9pqJ)5 zA+i36;x?O2<)zc+3=bDc$Q6TRz0Z4{f(|$oD;C@!rK4zQQh+O_>$Qh($UwVyqi7~q zT5JHCc+#n2`t6xRlEE;buFDsRpc*L@Y?S7TK@T{BjkiLgqvg+cZHqrLFRo*5>anA< zN!=HUVZV_%^i-rulzg8>;KkD^KSAy%?YyqLIs;Y(INOh<2Gb3Jke!waC3fq9mqC=u zpR~NqO-|NC-BD$SwOW{J?{z5Wgf+o$EgCtF5+F75})z& zqwaJ(|E2lQOr7$vcHFG^w!>}F{u(88 zA8Y!acVUFI={owxBbinodZrI|cbuAkRKo`&&EZ?%DV;h-4W4&mifP_KPY;@4zwBWenh#}CC46T)&;^ra5lxlP5)S@0l;b{B>PJ6a`TG*sC=n2PIcil&)QrHzu~&d$dLz%pSWP*LHhXjE1t z0Jkuf{6~ozm7&2(o}0}TtjlcF%>0Uqy%z7g=;sSF&O5$mQA_kEe5)PUX)fz21=qy_ zzk-j3W9s_Le|l9;&_IS{FN_Kna>WeFvQUE;?bzGUA%=YKq~^XSii2UgaHON(M-l!e zQ7xi?kll)s|6PP{#PV~qz{-CD$R|L)G?@{?FXLQq2S{5taPycK)iKB0nfRSN7WC0( z#MTKSFLkU=zkVmWL?ls%z=vUpQ%oQ`fS33D-p&;)ZH84SFSL{+#LU0t}4A!Gr2 z_Jth-R;tR6o~`IC#(ZrbjfLlHYv9w2mjKL9+#x?b&c?)mhnSkeYSxEG8dxjx^WehF z*UkYzfo9-^3J~(BT>jid8uV!Wb^Wz8s9aoI- zJ%8x%48TgQaQ!vl6H3eUAu9>$tq!1w1rMp_K7+=3Bp*DiV908AH&JAPXq@f%$n46W zGTfVJ7+Sh4Op+|dufV`c++vI1%6V43EH#4r5zAc6TrUd|;T$dyB+jL6fEC_@FmlG5 z&%1pCD6hNyDWS3r#yW-rYh=ZxM<4kX_?uI0?Xx3)7p4HM?c?{O*{Uek_~}P=)i__qW2YnkGKp{vU=iLut3|{|0{PGzWFrdZPqWo}{j_A0ndNb%G*;N?%V$Z6l zTbAQG0}Ip~Iv4A87bXIY$(kE@UX z1f{&*ANi8CWri|AQL@T*s_bOB@v-6L;1 z&K3pcpS>x|YE=9Ho zis%J4&`u{zOsY3JzshtgP|KQ{_tNR(dOKBgkg;KCk;9+c?vPz+MUx`?m!uXdU^GRq z4GQ`;%3s`I8pS&dP>-2Zb^D;bqTdRsTRw5fcs4(vjs}-c-3hgc&iGM~J{i0bmu1!x z1tX!FN9~x)D_;D0o#5!Tj@KhuavYra8OJ#2VnHl@#8zpx7aTtc6{nGY09(C}T~_)? zPv_AfN7gZtM0Gm#rs+TjM4ulVp-^hvpS;jp`eJimE^Ix)QHvL1f)lRa7LcM118{Qy2@uFv*P=&z2^ zo}6r(0SUUmMJThZ3yr%1;>b!{w!h`NJpp7Ulra8W;`>c{GVgADg8)TG!PTK?O*j8tzMjYWVst9aV zG%=n;C1KT1YZrT`0$o@aAe<%Pf%@Dvt~Q#R;%E~xU{%v}SgD>DaYNvPx4^Be6X=W* z51$2e1?iR9bZi{_ckO*x^Km}Z2+vz2Zw||sKKSgzgY)DxZ+jbep^ z`wBx_IzL;RWA5EH--Gqf?JB#WY~Ks1g~DvbHx{a4Ldg=Dn>6GbW|cu2u`VOW=wkt? zH{27UC@HGoZoeYSP5x1gT==bai1(LWCYCSC7Cxj_I7dQ5qpcl95MNFFcax*yE;FO} zX_@%#zM-2Lm&SuOn*NpbWF0axVW-wW9(PEX2fi8njNMFJXR+$TztOeICNQ(#(me&q zIA(phqll|cp(aNG40|^cWmp*B>RUIcqFRp=++_r&ALri{rizNfh|QM=xu!KtV~p4_wzR=O$iO!R?i;G})oo{Zc>3kfmE7 zt5=NJ32&^1uY5U(`zxAf54#=kT*F|E`ksn`Ny97}JBbT0n@gK6ZplNVjMuZ}M zw9StF^p~Zh2qP->(diV{BwK5|p2 z<60K8b+*p8zI*sWgjK!4`8WD_RUa^`vl}&0MRm$*8Qt!dMx@1Y6myPGQjs^-q-?5> z_aL_=SUbHCxKNv>$l#2yzO3_>Bf+YgR?_?h^3Vo$g zN=d;%>TI-s$_Qb2n>E`c(vpQ4RcLkrrq*`3nuOg2dBZ!yvq4kCC*=Qkd_7PQss3K| z9WE}p zx<1v2>{u}5Ek~R_8VM}`8mJTbapvMH*t88%{+7*fuJ-DklfyMv9d{l}QnC9JnmhIgF`;+HiNdm}f!3kD`YVZhfUiGV5z#-&7ZZ+xT!^yMYYUcf z@ZX46Qfij?*zB`D8GuMRJlRiXGzGhbP5@1B9gb(#u|4k`?Z+~)aQ(LjO7~T+f1(o-EUb75Tb>Sr8*ClO1_mRa_4`zKcw|+Z$(_qD8gUtos z7N-F;i7FqDWD%Bq?RNe233=~ZVM0!|)QyBUG~9Iyhf%%z0o+uXZN7^7=9szq#ppgS z`8FCRRwQVh2~=@#aB_BRqxvNy-Hcd(r<2>r6G7_*MLNF0PYc-;NfnT)MSUyzVY$D@ zt9pHYqPvfRO>i2ayBxniI`z!o$tq+rpHGnquI8F05kp2aD^|OhNo^u?wlUHr6Lm%l zE+MyCRL62F98deWsugJuR7lUAR+o-vAe=Zos_n0k&1jYN)1=HZVW*!9&B29Z?!M^g zJlv#O_V7ja2X}>MS|-a~i@qTdQ`mV~tHWl$*yCVRGgZUniYxr9CX@qz-&;&3hV!!~ zzX=5Ait?Q#t8y(n`3i$LtJO1-Kl)@N2m&1G{eP;Ait1m}3UJsTa@C1^RhkLyIxb&6)10 zCZ@;wiR4xSID`{*1<doqwl9J`@RBtDUqHkP&3}Pwsy<C`>n44y0z10$G5?YqK3ho&86%w-l}2TJ9|$+^X#S4o>={ zMx2Av(c6noG8t|@0NHCg^(zO}d}f^8rPjaWBy2TgCw!$Re#hj8eO7`Z+6|ELPwP`U zO|bRSTI1v|jHf#m1ICz`bl6z)?*~GqkCSjVp$RGE%Z=YqwMK*aSup0Zk|N@QkK^r< z@qQXCkro+k3*6FH|F1=`uv+h&4K-?oHmiSuOZZh?L#>EtWC>}N;v_WfQ!d*UO5^`~ z$NZ<>!h3U*jr-j|%0_U>5(%u#Lv{ zsr3a(-JX%Jf1=-Raw!SH-B@<5M}3e+?$s*3 zSpwvwwE({#7}k&dn-@LB#Qj8)IbBM(ND+^7W6zI@a~@5tAP>yreqs1+T{fI(j1%%u2e9s_;A zOAp!affRPzFUFW&hk_jvDJU1~Xs34$eWVKBYo?Zft%@=!#a+wNU&9nzN#1bf3}7F zbGIMkSdW^%w6_F@+2pA6_RN{={C%dcmIP*92&-EUZ@|(B@>BE@wZh-?b5iTS|5}`A z!6np`-82Rb?5dAZx9`p2$l%DBA&p?Y%Ao{(fkhiKRmjR$Aa3?Xegday%ESHu003Sb zc=5Z`%>J7kOpFoln^*-6+3oT$6(_85gl%^QPqY@}f+wi~dCcc;w)wC-2a-6Z_NuvK zFUe{DD9U%Ukd@@D`4oy{s&Xy!IY`z9tNq5NJ{XexA1%y(y7r{@_gHI_zGyqhlUj4e z54b%TWzu@sjPx7f*tkL5OqtL;24zNpW#jBqf+F5Q5!{DS4?cu>qzjt;Pv9SL%GegC z4I$&ZmuM2wSFo1%WYea+^&)I~)?se3vj8=1RagEZ0B!gc{a_uz62>13U#*$$-3^vT3d2kn5JCoKU znxytLFuH`a(RH;!*GN_j;_rrkEc-ln-#&BmTPo`JVi_@qSWS?3-nCB@T$_52P!yPh^z6#FPZqE&m)%@p6S>BHk3XJ-3lOu=>2WZ$NTMnUy3v z6e^%Xk%eCUks0R;xX|Dt8o!M@9Zo>Yvj8k?q)&G}qDFe@(CEf5`rK3_?)-iNd9GnT zyQu?E{B`|hn2h>6W8-cLsLPv&eSSK&liyIx;#W4n`Y!iVSYuq_GtA)tz(L?*a0Uf^ ziq>86|Hhs^|M7!<(E4ja2BlPfb1``MmDAd+FAkdj7dr(FE#QuWw5}toC}ZqnV*U*# zPo$@xJ_Q{xIUSjW#2p7qRps2_?oB?B@qJ}bGPL1&uPQ_vOi6y0F9nRGRDDmWe z|K~df54Z`zfD8cq*YwGQVWP~>;gy9EQTj-t3`If9xfgOT6TN_^a9@nrJHg{w8H8*W zv}`ce`PY6bN{NakDAGROHVN@RT|Yn~c&UEsP}a_@&&EB0_ED!r2eh0<72xaxMy;Lm zYqOLGwM*#L!R384i0STsCg*K++?L-HhsG5gh-`Ms=>pH>w8pd}+KMank)QT53nzzl zOMkI-wm-ZRhrNNSeF{#eJg%m22@|u(BXbi<#^lOzJ9vN*-N+YiFLUQtXCFXV*Hh8PP-#}Xx*7f?i_-&CaaMTzCbyVqU z8|U4#i?NCgQaa8LaCy&hOfDn1GEu^uk}R$Ria}A-ZI7k+Q`0<h&#?Be&OE?^91_mirZJ zQm_c7G@*3YWPU1Zx6;+EhA~xKE+X_?wW#<3YbbCWi^KiSO&%*Rg!aC6N-iAnr0jTV zM){8b)p=V>rX%fZ3V_C4pU}JuQ$!KGpOnUhoJ{!#fyQarPdzZ03%(dJpb_HxCoGPs zf(3T^&uiFPP!r653Ud!WZrE=zK8l9lj5s3Y@5Er63PAeEpA$_>Ug4Sm1QsZ@V(&^p zFnd$jS25V1SNkaOZ}N9buVZ0)UTXK|rNzdiwh?+DNI}_75ay`0q*>fv1Nms=a~|Wq z%bE!Gd>NO0Qyx;^G53(d*G|S;ML|QC-Hzn)OzJ@+#<;P!I;S_rQ^P@A00{L`mFf;3 zQv&YN3iw-ZrsZ7h+8RT1{AN{*a@9NLtv~UtNG$-(rUJ}>Wt(0x)WR`DAjK`*t13My=J!Aa21Qu@v8A0;^cZZ`L>J(gK3 z2N-G5I_O%s!_z3Ri-T=q{>8QMgv&VZC3h5|j`N&r1Lm%g<@jl_lEq4!ho-)0bt6lw zF)B!qE~~OV=PeHb`w_E1FC#m)Gw%gmW+EV%(IyBJ_%Q5fheLIxn6W~Hg)LM^1F!CN zD%^2eDH#WWiOAvc86lRy#3^Ub8{A1%1M^G7@dM7BGbSwq&adTW$2eV`i`gCE*z+fz z7dm_G{_BfDP}mB#HOE2U+PetVuoMCX;V1cqWbD5u0N1^;CFt8)LT7IWze#5$)^kWM z#7CtOVNC2fwG0b}qR%p(Puy)7*<9xAE#EUL_Q2W0x-Z)OZ|OZZ|Iw9$UA!hf9{SU& zd-6|^eTe=wSKV2{G6*?J2|&RAgllGVKRcxvse~^Ex*r=-J)rTW!;StQk38aP2p-Xc zVIy=nUst~sBD#aMz?q+Fg-#8E(L-lZiXf`94noWKf;c z*(O1P36RxYnhFA!`wn=QRQ+?BRBzc5yLS{4qojviOv(MT>TvU?e&~rT%T*``m7fcsyQ>$KeZAXugi_$CHfI` zowy?i$N^EbW+Ng+cmSVP*ork+cSFM<<|23s=(gw-`}HC$*z+~Bxyx8ocBV_(>aySvKaHI^GUb}wfW*`onsvhqA9UZtj5p9 zSFFj>$c~9ix%2P6fxgC?-u62!rhqIN-GUp~KJe_xAY`5m4L@*;AwWu?6cjUK=RgTo z7S}0X*fly&Z6(cR-_|ri+L_Qb3LaUp+DU@AY!B*@;kVP58HO&uPqTNXx4^b|n&#1Y2t-vI=HEp5QX~g`ZY3(uXBIZs12=AO zXFdFo3jkfuJIwOKRMd9o!2VO7fUEi}ZuDDl{bORq7*r6cZzhAia24Nn+yCC*!-rac z5(eZZxBJnvR@^iq%i2iF8X%LY1bchF|FozviK@#?q(n7tm5yT@CJKHn|I#*bK}S_^ zC;Twb@Gf2G>XLk8cOyzA{@XU;CtUxvlz+?JL1_V(HB&#&xthKVEii5hLeMCWBXRZb z%|YBlF7^q4b6mHkd8h9a)BSLwC^}R>QuQ!92@9k&OD{sMVtF20t{WbBvTq6dGw>Xz zj*dGj$sZ%8OI@40eJN<#wmNzo$iz^#aRHOn6%)e_6)t9z{>^R$pDq|ktWA$lgUZ6BY( z(jYH?EH6{W;pJ}uEU|dK!4m1&vxjdAi^<|{QbXz51>Y@EeP1p!sD$0IZYyun(1zY* z@svH0szOUEhua(F_puzPr+LQNXK6oVFbDJiCAx}Z=C$4ty}$@kPR> zg%-tj;$=`^+NjHi8s~ojZC2&K8knYoU9wtH&ogjkE=e=UZ9#2WF@kwvpVn3?E3X7~ zEf4qCCaV|hgI2_LlFAG|@uTkmB>Lgtt72avFJ~LKcPQRwUN*obXZ6=)1dTS4WYOsf zP>fsO0TFfX296x z5!3v$&ns=5s0I>EHzrl!>svAp@jrIYt?9vpZ{-5l$%ml(7BIuA^Snz&nIt$k&nZFr zmGBv?lSEi6oESiRHGJ3Xj_7a>g={p=<2iNdyZmplV6gc2e$H&Behl4!)CoUP zySbF7m>2!L0`9M>rFI!WpKZfq)~*!`Lu^_Dc+2k3GGq>fgyb&Y5J;*^-O?>lS zp1B!0BJX(o3b&eNH&R0vU_=Y8m=DJVKdS^-E9l5lgJNOqFu>teM* zF&Awfn-pp`8)`qSlhkrB34rmL$b*XJF-AH1{@r6j9>W3VZ3&KlHbLjn0vW<&%O)X{2*oVV~K?#J#!>d}P-8(Vc%On#|Rr{X96@nHd^>AJeXgLMbJydwA z*E7&(oZtqsWOn<~jssTLiwOXP#5w?65&B+xy!Hl93lKfqf!C4WL&MXM#=S*!$ba_J zjF%n&TqGG)z~jQ>D&p(o)m=7Kt2o8PEcl*d?yfVb4ozU~sh^rK*f|@wc<9hQhp!x> zqU=I61~P;cwctwhH&{@aLyben$?_M5NzK;!@3V##tAf<}vE*TA-h7tT4meroyUld(ADYGn=!k|WZZ3zWJ9e@Hv%fEXXO`{%q-to|(J=X_I1CWy4NZ~_;+~vzI5y)(Av+G$#7V;YiKK7pdP=94M*0og| z(X?0u-0fr;W(uye0AfImmFs4)96DjzBu4bBEsk(@+mqXUKHtyI855|%zD%LYB{D))*KXciM42+>ovZy@PSxN^wn7@xK$BBJSQ$z}DdJVaGaXNJl?|9(CdI zv&*NMm`pI(CGa}jji;hin%I+3mDod-G}7=D@OlFm<0Y%;fIiol0aSR<@E!J69`~p` zstqt)S-nITKnzD07Fv_nXOf@7mwo~PidXeyecpL&E`9-}NG17dOb;h=S97dTO1pGk zJ$&FcaBWlqtzPS9k|sCqg3v)GnR{<>$MzW9TI33((863;75Hjx*nEp-x-J7$gGd80qW-hsnd{>9bPq3`8 zMyFR@b;eAV8A{0#{mA_Kkm?(c(FlWV(@a$JWQFc-rz`3WOsG@CN|a?_p-bO@5cUxX zT{Z0^FX$xPa;Jm8wnf79dO8z_eF*-d8x4GhLc81jO-B!s{<5yTl=>2syFv%NeaDaF z>!%8u;=yBGOZfyY`y8WOX1&qKF`kvjkS7xuewEBvzYTtF9=g(I5J{s}BGbD)rVXwz zFhGp^_3xl0rqi8|o79g^8ffbBEqreMcox;Oaaz#N z`zKMVI`QV)?|lPWVXl1MA+!5&;qDtHX}OLORUN2T6XK?-(~Q9BG^ z$CUis;;u9LqzI}}4(oW5nn{f|6$z&n71wH5McssNJkw=9_3BaZW;aw&L=f02)PL3R zr&NqA_OjBfU}~8d27%Aef!GU7=Q)o;_q2O`*M09$g*7t74W$RlY?x8lB5Z37Gy;*z z3@w!&67Eo2OBHDafv)0~GUvh1Vw;Pe2`qW~xhY4S{xx@30kUTg4xWD?eWCxXd?4FW zBe)jIyQ;A!q=}9N&5jC?{8r@1>E6kSL?nwqP#>uni1QR)$m}R>R2z59^VoizoXK>) zP%H~!1ki{8&`hzbaXKq_p;7p!*IV7Kt~&t(qw^~C`JHpuw(B!l{=lhc8AMMuXNLBu8*X3oo2m!k|kVa(qj^o$-_EmipNlC%0d$V& z5@wbH5)m>VF5{gAet*b;g4p5XOf8oFz_pA#hyhKEAPwO@KYjR{a3F_7aOb>56a*-| zI3^JNZMBxLP?ee;EzHD9&SF&z;j`Mim_5@=EzSPHg~drb0T6}`MQO4GCb0dJI1Ntp zhoydM@u3?dkc><_;!f0nb^9a`fLFoFVm}_{ z@14wAcFiD^J2JgBV2BeQ z0KIU1e*C6JqXMS9uT_oceLopesNBB9dq&`zRWv*l=x5)}Se8xPVThBXMrtFH`-c(` zzL3|Gh=eLZUw1W_oQn05Zk8F+YgHJUGY$%p*IiDlT}&-|vUeND2bhdv=nbqSyKXur zq(0^OYFchsqyhI_@-A&PuQ0%~9dTX8sB03S2Yo|9^Yh zz=I_V#FXS4vlF&tlyc1~hq@vGmX257ThrCR&M1NTrS%a0B62>6S&QNs!LcOwG^ia) zo3@}7KM8B$_GsW7prTcQYaOTN-ESp^hyl&KD)KhS_d)?pb?=I56=u#u1on%rf%}AS z!v;Y|70&=5Zeh zuXO!hsP_PDT?s@$qppfcUK}UgWnbt+u8tfNPk3e;5EORH9#)K5Nv^&&lhjpz{8N=L z$d`q`B_82r!`lQJ2RuY+q4ZNi;-Z;c-qZaS>1ASqx^}zA-Lodi6nc#$nE`Q{JeV^~ zd1XH7R1do8T$iYv+fOpTws>!q3ME{sw5x4Y$vpSo?#T6X$n!lmHD9?a>fNIZWg}lm zcoQi(J$A8En=qW`|uFkXB0+EQ8Kppnb`$(JhgUVgZa3G|^shyJUps^w#AmNfsG z_Ab9AY^I_#{zrjWIGIdbg>&8<=$R(AIvl;W*9j7lqtgpFO$Gz*R1FyU-#$S?D>!s7 zsPQO`3nB;&6%6ZHk<;i)=vRx|VzQ~hU1<)3hD~|UZbvYUzmXUXmA5)elzbLnJqV;A z4xbt4q>3f!wT>7skxvQ{>tly}P1Xj3!s^akj$HnOeNnuN-=P;GL{n zW`hv(U8}PHE*(Ce_k-~l0+$asyR7ijKrXZcd>o=FLMO#coqbS1l;!|~eJAF4n>quN z(6er0OhK-+>L*(Kt*7t?tL4)C4@i{TM{#rJ5j(ZowDrr|_n75Jrf#WTgwbNeWvUT% z$j?GEI`Bl9gG>(szQcW(0)YrLYVTBr6D-!`^voxCnpo{pW(LW=geQ=cOSF(@*1qw zO`f}Pe?d16_wE(> zl>Ki1_naO!T(LX$XI!MZ3y-INWw!7WE{Ze+O-;+u5;8qYWN;#k-F4K(Dqs9DsuS0a z$axDCl)T&Qh$olIH_bM~B`E3IG(Fx(jTko(cH+7dp&s&>KJ^9|o{$GP;`ae{M@bRD z&LMy$J&BJ10>3caA^0EcKY5%hjU~VjpSEXxzypg0N|gY@RWrw%0q8wC?G9fl!xei; z1Ch|87W_f7{wrh4v=LuRa?Gvlp8vCT52A$`k`wOcBP%8uJpO#8inbSp2#LJcB#sCn zY=+c`OjUcE=ZYQ9*-ik~RbfU-S%4IWC;d2yTz~l~RX`uZW$x**eRG;0CgYF*0Q>^; zPvY1W-3w^G3d5!|nvaQ8`vWQhKOK5Wl1fWgC0nsvh6Wu$ zPB?GPW6|5Y@kHJeqkz4qF!uNhk7L23s5d^ zD1|nP-)&U0HWXLOOUS`S00Zy0)?^gAO1OZLM}ZFj=|N3M$oMw7Zt~ux2b?-(RoIm= zhkvA8zs6?myPY71Je!SEXpL3~Q*2V*2w;dsP)d{v1q2e1RHnlQFtqfu<&-d04klWyf2V_+f zY5Z@kd(UI@Uf}SeF{_9xjtRRUwt8?mP8-inNY#H(!L(RuJ6{jbHIb9W8*Y}n%@bfa zBwM&oAGy7)KO|MTVoj0aoE zhkbz4#}KqmPh3umhoa!Xn6`Rl3Q%5V)EfQ4j-g&@aPtt)nSG$6+vI~j2OJE0JtqOc zoNzIwFvzv!ySvKxC=d;JL1F2nmpl@-w)FbFrL8E9%Vaq2X_@2kCL!%GiIScQ9R3l! ziWG4NT6t7OsWklp$$HB$BGbtfTBW7i{3D`oW^7w+a=^sfs|8yGjl@tg4RBfNqWb;d zmP?jfch`F{Y7N-|N@ro1S;hl9Zs5Vw+^DC(V!Gb8qi7HBQ)XjXdY~?NuQj)e9lVwJ zt17+?P7NT_Da}`Ik;iSwK1mgZ|7R^UlYf`)0@uOQJJ~{%9!KvPTh31 zc5g-$nsD{E@s4XCD<;<%i9d}Oz#<@TJ|n(kV`^`dO*6I4y_Oks#;<0|PI{4jF_@C3 zI$Lsv02H7M({e4F)g!$NV^vt+j8D8h&|B{hm|~wzgfF(m5k_*-#HS}77iP5(-TPx` z*5+RGjlyb8(8t8@PU{Rvs>uBrSdn=1aw=Svw5+M@qzII;Zowoyc78g2OJ{_q;bbaF z6&;_TkKs++a~3OH^2fL|!QI9MVZ>BlAJl6rEdJI(NVJQlD9K zM2B*}e0ZM?tx4^dxVL~R16}flE>SsT zpIs%NmL{cJ9X;AwJ^aSLbB4WXhkMKJSb5xRHd7Xqf-FMC2#!Z&kRoGykw=hC)1r?r zYEV=mp@k4W=$)GrqKABN~hAU)R@G>(W)yzU7fO7Fa=DI zg7(IGLDKOyw!oDxCm7xBZ>)cKa>JSlmewm?ABlChleyZT%j?7}B&F%_j|Ll=?Z%KM zSM|7st)X%910fEM{p+3)a1ZHBypxJv8lhm;nIG%HM(CyYC`kVNlezf2>w$O5_mp9* z3}L(rPyVOKLoN=tV6>nZjH`6lVnG27bmd9fQT?7W$E-Cp<7P1Nt+JX*%i+N?Eb|l~ zytp7(1h<7iVIR>C(ShClA`b*7^-3H$|HzVR&qK%2IbSEF7@`I+cIKl@Qzu_5I8e|W zk7wv36{cv3rF*fAFFq>x0Gz>{E=rxpx{bo}5;6`+zuoZ$nlTr2i96iU8UD|Aux9b8 zeq7O9tl-P1PMu;)ZuFehX;i*9^At5+;Gf0BeH}3~GhRt|gqONowkMm;(%7?vdhJG-xb_jpf zcZX)UTsg=h=9@4Gp{TmMIbq~!7o6cj?Y%*`d3RG(ECgi?)>{j9x4d{C&Q?AMvy| zsf$$r3a^4`_Z(98Nhctr5RY?@O>g6hQCh5K8L((tF<-^jQwbcCW%==(h^+{uQ)gtqO&&xNb?i4E;UD5|2+IncA8oDSRxMO`# z4=rrGxSd4`)Vljq7%xFutWA8C^#-Bd6O@RN!vONM_bfjxX4ISFz-0>#pqOWigJJ-V!Bm@YZ| zjQ?kjSvYVQm?V7`Se)^Pqq7>SUkX~g^t`?@p+M!R=r+YS_3twyto>hFWj0y8Qvg%^ zBS^Wo%Y{6dO}2Nq0DgMs*Hl%L=0qgc)L&~Whkg!1&@ALxM4TUzme9_JVwMk)zMXtb zD~o&B>-tg0P5~;-_}f@e-;5S`!e#naG~SGlYkU?}lyh$XTt{kK*y%=fi-%V@YrUX) zsVlj)!syvU=d?GiKe$#N+nN}ieLl)cOCJfQOG@bb2`wSm(9*6m)9hwcTgbT{RUYJ6 z#s?V53)2>LAv(O)oiAhLWj>IpBuiq4ykS1@)Q4?p38Kv}@CdSJ3CzEwd}*I@EwfEG z|Iy4codKS%Q|c3NKnjXN9wtd~xLg1c8mDL!0vIV|)fOtLayNwXBo= z4--U7z7Ax!UD!pzdPNhZtMbSz%~|CnbICUS$M)yt2BsnE&&iBZeEG)B&7%-M_Blnr zX~`&x1tfpk-6HDZWsTCCXU(Czb8_2okvP75P~9@ck7@qJ%?V4kS6ue-r1W3dH0%|3 zkN9Q?v9+;z2VFvDsLYNND~$PR@c#w<4Puv~?2s59tGZ_%s?lDriI)=;p5EHRpn1I3 zHI`OJW{v5<81DGH$O2+w*a`dwf*$B`re(cNdRq$3Ast=Xk%MoBeA^0Qm2Eg4zf74f zuJpNVorN_z?h+eBIY>BQ?f}%2g|b`#;gM%~tiwfFc>OX>8h;wS46S-2wf`R4Ac=$! zzEv_K(&WBu*y3aEIjITJ7sp=qBJbPZ^)5#&pzj?E><9%L2!DBgMc!Q+Qj=I9gOWyn zeN5!wxT0T5(XH{HE?vFyzi8>T^k9iqrvbE&jvub}fc({?=QOc}Y?WLlDIaCIL1?RC z&o+LQ;R>W_I3uC1oFNvzt)$n4kn$ zCat{H5`E8ijzrrs@>)W*iUi>>u*Tt+0TjJ!K1?4!3s|FvzI1kPID`x57VrS}#U zP(O5HvzxVKwe8xG@o?c3rpP8KM=Pu6ze}}}D^-&%d|(>HSId7;B5s-T#D%J4(K@T_ zC8fvr3-B9T{+}HH^uN5e(TmTP>*~$C|4s`OGN<>=djCaxb2_2=u=wN|tWk)~xN0vS zUKkADv*vLpO$Ot|M-cZbBhF5O%%Z}L&`;!+qc3u&=u4F{)Esv6ev$~M&6nRShrX?7 z4kBXOqj&2CW}Ep%gLe4FNVI}uWg&Jz&D$i=VZZt|k#G?%!6v8y;Sv?4oaD=yo8?%7 zb%~ZjkPd3fvIK^Zo)=Efs))#b$_h4p%nZ#qr27Iu01be9UjLraMh*c)BQ?W}?~Am_ zkH_=_cvkT5-@nd^EIh*}%wbugarEKNN?=JrUL~$I(jspR;^ADlY#BVrjW7`CnLuMb zanRU51?rR@p+nCjJhqh>HU8f>-EV|P2;}VrmV{|HuC=PuB-8e&`+xD5zb~vyvRhs{ zQ;!Rg`p!JQ{JML%DuokUh~)ajUiuhXp5WiA-o0+0Qh_eHZ2}6IQ$%8=R3DFSNr1d+ z%dpniZp;_vbg(L9Ls;XS-GK>{YJ8QN&tm0kml-=t@@K*{%PWQGHHha)#wU{mWcMUn z(npD(b-Uv;uSCE%(T5*X6ZiPV&*|&6Rl@B34%yEv!FAsmNCAZsHVv_GR^@Q!0X5w zR}_8y-)S!2r$gG4jmP>~@ffqRE+ypU#u|g~)?;K&kr^ET#jtMxuunf%ZF*zu#8B59 z_46pI3OpcKZgyN5@Sch+KX|H$}<_9cYr8Xexw0% zIak?>=TdqS@vqwWoZ#?`{lz4*3(x7Pa{NQp9uZ;upL}9vsvN*Uv_(C?2&3~WX$KH9 z<=B@NCF;<^4l-RJkxmdBkvZ2qja*vj*iGl*wU(%)D`6AKU-CE@6sL_RrQS!k8o>+Z zHnXQtZUY0G)%S(jUXiyRyP^#53LK%iI55ia>maKtcj1&H62m6kCxlf2q6s$h_%Cta z@XBO2Z5~!!6<`t0UMku2U`E7?T1KfLltX6K4%FcYN8w6+k~FRpLRl{We>q$CpE}n3 zTob5vgPt*z)U(3Xks^l1JW9{j+BTuqUBcmL3#jnDO+~PH^5Q_5W#g9&LJYMWWbccw zJ2~=7H%ge%G*-imTkCwvJeG8>Y{VLKrww!(b*?|D26^yKEA4Dzg zwhlEmgr8`OEIg0w#ci`C%uh$5jG}9m1?)rQM?JFE<70j`H0G58@o1O^$V&)>(i7YO zVu8O^hFyTJ&$yI8D8;u_XoqrdsR(|xqsA*j63g74q}hDi)*bofLIxeocG1J@Lv+!W zD&sWD;$JNNJ!mNs@J>t->+{aFo`dh5#{8V+V>r|1P<-6*`=MKw$pcqP>1A4jg*j!{ z=RAkL>bf2RM(nj}eb6FdRttS?G9l)ZPkVgv7ypg7X9w%G&iVyAvV&kn!A)l70fGh!EZH36MmKH(d4p^}JbhBgP8N zrL&;OxDPon?XJ!?_bXsVW?i7Z8=gFo1CP+wi1%XSP%{X%-h_)-i|s*bA?)rMjnP{8 zFD4p1tcmc6MsL6eLN3JOG@*>5xd)F=w$>!-M=2znQ&E}n8lwK;b)5PRH?BdVf2_{t`MY%{6zcI?=k>ImYFEFc}%*NCgDyblegQPDY zMgjG2*+Cj6AdF)wWL>y1(VF$X=r5N|kywF((CL))5=9vU(0Y2&3#K{-*&+*gjn=`+x4BR$});|F@XmmNYOXi?+<$YFPU@At;Tx#Y7TPg8UV^k zV0;WeNF3w^)SQ3&mFKtfj76I`>PsWhCOYhRI0T{Yj~2n%k3-`IbN|b^b5T<*J9OQy z?6x-oq6`1C<&4M$sGqU(Z&uGiyix=c&1vUEl z4!E!`8b0lAY0sX11e$DeD*VR|-30n}C$t@R{5gETEk*|CkLl!rSWNbpNd0feOA<=QOdVU>~1zqph$5N z=j0-xqMXH>$|12-4)cr>&BS%wv#}XxeuJg3Ji79&OWjo#XO}I1-QMy(!!x(D9WjXx zv?XvJ5f_h;5oBFb;wNT5oVG~9;c2)RZmO@+{m8?wBeJ;Tz0y-iw9@L}>kz>sRU`#9 z*RZt$xkt_mDIpmoMarw6jh#2dwvEH+Ef?)KnF;|b(!oNHKZPExM8s0NmYa?+kjEvK zshlu)%vvJdpM{op91MuYkpPBU@MEexO;8U}IEgf<7L&0d+PND;}0PzIS{q;lVMrk=XD5kzVs0;sxf6LKQOzY3HKIN8ipJB zfV>567``cd4Z+5p2$J}chWw{1YTOO=Y>$zLI?49()MbAp|8Xt`%OoMUAZK)HeF=0Hg+V>} zhXc~ee8|+oq0-GLEB(kfJt{7Z0IU3ZTq^RO8M*Z9-f|iU3_ebf+%umehpi=8CDzKy zNI2DQ;N$)CY!A#6R*MtH2CcumsnnwU42-~M=BzI2p|%o)|U_eM{pjR`K(7S`JFXZMNw-aU(~||J`R(~jUITN_6)2- zSwK0-fbyOqM-1B2r{Wqwhx2-tkRm|)X~xC=r^#X(13t0lQbLYC5HYuhzdYtj%m-8J zMlye7CSt%ZMEMY2^7ohMQ7eDO53f1Ss_RM1nbiOm_1cY8lkZ@gTa!RK0e+Q+Uo5#k z!R#FOuwV6W*eO8(@;l-d-d+MiyuVj-GUOuX#Tf_A0DKYVb$0Qcg-Kd;W|Vu+JL?aF zgc2gss9ouG9UC7cVaio+bUZGZGIs;2RUh1`p!hc&49v1` zLcp<=_&=gjZ=lAx&E&4jE-UjWYMHhN<3{6|T zQ&_~vkaZt zZW7twz~e*Nl~ojx$2`1QUg8nn3umCRH%VO!B8!T+Gv+jok$FYOx-D(yqQ>0ww;~m?B!a4lM*(@idAoC5EaEyT%NdLa5FQV_*Urf}jndEwkB|TW z5aY2jd5nXG>w=?fftp|O+;icz{h}5#TPGP ztI?8Q&Ijm4bhB4h1vA;urZN72VrNCiX?KMd6C?1bE+8YaVpn&Yv_c%k0xSH(Y}ImJ z0~c0MHTzf0Pau3E3MT-Wa^FLXBInnCiz9gRHF{x@TZcMc1HZ0rqW%9FO) z^1_84B~O15nZyk85P4)KWMAT;4kTCHX|?b>X_{0mJ&R7NWWz*8I7L=bBYjs~r(bgS zGn{o$_mrIWt1X00312BwEpb2C|Ih>WZ%Y^QqBXJ0GjreIbk{09{^t4r*`P*=x6god z+9Mk;9W0~C2!wQ5esk=n`PCRoYTg?V9X;!h-W`d#HPHfWyB_`FIo^WasF3JTz7ei` z!CbFr7s!rXwWvnJlXH%h3e@9&e6Bsj9Pzn96>&+o&2rT8)ldJX-$5dx9N{Qowul8Q z`yuviUp9?O4H z!6QIKtkcxU0*PjOFRd8c?_hF!hfFk8b9i8#=>M&0g>|BJJpltl|SQ!mbzdptSHzweNM^9Xj%rVKuCXa8!x zc(ICzzynHec&M`-L%$YH&fxR!pV5m1-6HM?oJK_aQ$9!FW$nG41 z$w$>BvUxx(4b*Y5N?r)*Bf5pRlfbr0?%0d;p^Q+HsoUe1k;oze>W;3LzRFm19sP<4Vu;GYn6}Z%v zz>Dm#+Kf$qZ9tq=Y4?u6RHmcS)Fx!9KY!)|buijSZ9&aNyl5qrrHJ|!hLo134me}D z?a!7Kk2keD1XCraV9PMj`MAa+T`7%%J%ax%;&9s!i&ubY=<7}%K;@$HjRJ&l;Foz< z2xg`}Q~h~yC1GD%Wt2r67c5!g#*aZ@>@|&BDI6IUV{v$2mR~ zyL81Y|JArmbU2F}$_1iNq;k!CNKVRow4T{|1$(WvHI$FZhF!caBjALk@ML4M?IAyC zvHF35CVBrUykjp;;jMmvAb((3AELa=yGMqV;3CRK_Ao1(Qas6oJ74P$hFkB?m2A1t zT{GFDG{W6tCVCncijGHg$~6o2N(bm+`JJG{RM1o;L+UYe{l$_|*>uWs$5u}gybU!T0bAT(?UfK~o@ z4;>iS$_s|E_|br7o>m+mEsmn>N0vhBgTR#nB_#F3-a1c-RisFX;s9cSZC5&D?+h008H10b=*4b%}<&H8!2g3>jzq{RmpRJ zoS%-(=*CRrVB^UQ+;*T|M}A-d*~QG9ii%Yqx&e=qpPc`L^tM;15U-p}kY9H&SR~KG z_(t7Hj3^<{R1?Uz!T?s-Al9X|?4j7Wmatvjp4pmsXgaclFRYss9O=qt4y{K`P)7d7 zr0M^#?DNm|M)5YVOIjRmGtpfN@&%%g&;b~xp4b&X`QH*loo*d79+M>%=97uejmlC; zbq}gnm!ZInjYUs>U=ud*RFdqz?%MS-7pfyNy*zYLP+ zXL)Sdf^2cWJlY8W!3vHkSNYO_wVzW{pAmwn#W%QA{bFs5?>rbY-yWvI2c=w-M;WpI z>m_gW#3P~qpa%}=7LgxEn9U|<;8rVOW#(XGy!f8HlA$&qTGl<;*N|U7Z4vxyHZ5>V zE%8UT`SOZ5oBt^lRAP}D7W0_e=Unin?YTZ_3h`4%FY9~L&NPblSV#CF27d`Se-Y7b z7}CS5w<_ruB{k=Ze+Ql)S`M_O4ruIcqY3H`ST-v-g{~e-8Jr*heY+^BTYuTkfyM_J zu42`M!trIVMcYxWu(psjYiue=76 z|BnozJBJh1dCvFE#ottg_8#fNHSseV+23v`3brZ&(c1+lPC03tpfC28pKGDBucnVB z8A-Nr-XgEk6f!8Gb%PotT3|um(;HBbX(IER}GOpr`4a=Z@o`C|O__7_LC-2Mn7qcGqX>-+p2@2Ch$5`tzUzO>o|J z5gSUSda8LM_H-%D@7^@Q%U4H`{+JTT#*@27Gn#2eO{YO*iXP9WV_q2+lN**4QFajP zO4wN3-z|4TV|E4~3CX1$Vg+hfBw*tI z2MaZagB7YWU)94BG5~l|V2c-nb7oM7B^)73xydGv1*N4dl6ypQOq^r@iOmH}{pcD& z4d2u4XhgoG9Ns&+)={G3{3` zYxBD(uQ-o}T9~i6C~GxzEqL1q4lkj`;!3uBwF#Sxy8xPn^kPGsqk~MPfRlb{GhtmR zOi@OkyyRqb#BvS^=Y6?pcL|CiPn;prU=UteE*K@~mXT*e#~HRYLR^%2o$xbzJh{bw z63edK_)nb1vXFCVk9ah>E)J=x6oB3Z(w5=n1Kpvn(RL+0otS_#FIeKnnh?Ty47qZi zys+jpw@|6dRWaS)V`i|Hjh=zsezC}bf7G-T#06oeV1iQsPC&80^K&K?H;TyJT}T)i zi}gg<3W*)W+G>PabNN8Z#+zfGb=!d6%L+`Tp1>I5u1ud_?Y)@YV73={x?AzS(79ht zlp`(Wjc#pH0fN<1B^?rMsm}?2&Tle_)8*v=hj+ILTF>yCP{Rg5T~Om(Y5qnBB|V&0 zAcjzzdCAhuo!_HYaVUH0`k7%-3z1%?z-peyp$HLmr;kSOP)O`{K(2LCQ0Di$7XRI% zL|Yh4J;mTSxv}d`RM*&*PWKn+1q^P?ke>)V71PnTDU-rA^u|#BHueAZSJ9@=n*8Jj zIs2$WZub(4yf#tsNrv&@4*On{=&Qmv zAz(Mz&EYR_?8#984_T)dk8c5WU*3e%|J679+CW2gGK|toDeFEZpQ3yv*NhAbLQokW zo;9Ni=Ew2*{D87isN`3C*#Qxc;YYHfOvR^x@PSgSb>%=@x)weN*P&JVwT@4uZAYoa zTY-W{$pw%`v{mo)NH!V};WK4l7yvONe~PWUVhX3(Zi(A_tLrAfCm5|cwH>~nZx?$c zQ)`jrB9+rfZDjcDUIXUi=z_^qM;a?0Y}$Hp=sgZ+BzN4#KSw@DdmH2xpz;j;_w{S} zcf@SnhA=y2@Yl!SRalI>F9{i^S8Q0C?q@?U*px8=e}=)+9#p`wJOT-1cT!@+^ZpiR zw{@d-O1w|aaeEq}!x`J;! z^srJm9MPHF{@9%w2UJeC`tLe_yg@D?(n6?V`9!0&QY|voUAV1%)C$=n03{R9N>ja6 zAQipBW-9?j`-XirK_E1i*`ht%Km#_wVZ4b9nDojHF^jX_y5uWcU4SMbHVMWb)YI}q zG&?;fPOI~BTJ3xZjH;ByheFwAz|HumzXGkO?_xIjb4LrH=#h(toSfcqodXj6&Dq`O z{GHOKm=fr_Hy6aD=TFk)oZ%E|2ii4DMbx$b-)See};mB z9`Zn}0RW2F-wR)@O%*s{N8kKEu!09)9;8_sQY!eZabKPwJRWfj+A?)74C9ig9}Jzh+39ed7IbO0PSbco>0-I zek_1+1O47?CUMY6*<$5|c{)=RdGzO_YB2fC+!s)*$@IWr_DjW{LpO|$kqRf!N24@| zxk-vGpkLuYM8}~XM3d3VopoM5=FF|noY=*YNNY5 z7%EVV(Po(PsFkchCaB`8ZtCm4hviB~^)5|qevm>aI*EpsSybx>P5!^N>iK`4hP$)j z5-0Dq>~{Jn+#av#SC)$Z^(Cmp__?StN^h&IIFNph8xZY$SG3NxR}a-1p~`1TpocLa zp!UD5U1Z3$2~{O`%;D1(5UmI7_Y1rt91n^|OPQO3I$+Rpsgt1*D3Cu{5HX0zWP-k~ z_xBzj%%g4QyXL0L9@cX0g`SBv;5}56CF@ReBg)Z8tU0kRvm!;NO|btaP90ZPZ8xE} zRqXHkOqMYL$njlz2LTz!jkC{2O9{5H2S)M*k< zNQCImt%2Y1mWo;JnJ}Ce@PySB(uMVEq?P-$R-Ti?f9-=iJ`7_l9^8V$@#89n3wW}G z)&{k!6+0M5y-Vr@8xr%&xrwIvWkE8Zc$)+dwSczRVyTh+n}&6-eK{z}xArT!hWUxe zU2%LQu3O@dwd*G40*3b?zIJWCJ8;yrb5d(%Lf;!eqrkcbGHtF5UVGSQ<*{g{ZiR$p zy>r37cNff&WF{e5##Zg_s(+tRTI`DrGWsSF?m1%L*A~j%EW8|$HgjIVRl7+S3+bC< z2+-?-VK#Ee6UuC@(x^rDq(;)S40Y*aZ_P?GWAuJK$Z$kaX5*L0Hi_b?I25xWHw6)A zaq|n_TxQaBhWc=8vt&QDDf+65OwYEk_?zj`=;1 zamq9C?p+oXA&LIczOKxk&CSOvxk+Mns8TX_^|6{O`zT~62h(`3Bas-oxe$Qe+jZkaPMm?<&0Sgb4rs21BC=&tbMPnoW0WSeHJ?_y=v`BLbHCcD zX_$1Qu3MU`wX-0X-d8it5y;gcpOYDcUQA23WE}61!7~_Z+Z{x1 zEC4iJ`sKPvcq{}bcKnv#h=|4Yg$S;#&;CaXX}nvo2Q2^guG#;fFUJ9~E0%EF3|zeH zkHeV9QU;irt@Z}qlLg)4qf_JxPI?J4aOe2CpYCR<7N{JQ%BqB+6L@ zHuDQwwF7Kc{jcj&upHU0VqXw2C#d|=9&V6!(Y5&Yfy_>Kpl@MzIaa8|3Hq1{Hw1Zy zN^T-rms##m)F!9I=l3~AM#l*_9-AtZCugL9!o0G~D8NVok;a`-06(#OWam-7Me>ZD za{zz@;$e#h$Pil=3pPSlzAQz37#|Pyc^qxHCzg%$kzzR_6Cv1#jB7=*3l}hpntYyy zDX_~P7_aYv7@KVmH?4|eKs_7>4&J-IHGRKv+3D~LFfunZQtx2GWU=bIQK9+n&CbA% zByDHlD;0wO8qq_>&j|>9TA<9-9tmR+B`0|bo_Ga&1c9m_bl4|NXV-7Ouagr4(=v;Pf?|wSl9OE_#bmyhX zG{5*WG?F5(rrS>_-Yu^RkQJ{!3#RPd1=-R0>Ik54;34|kTV*_KKhK=bjye@va>10# zS`Tn1q)w9pxuuUwgy=Bz7A6|6M!Rqa;AZRLAps=2^Lqs5=<|m{oZcBDcu>i|EMp-G zuVM*7z1B~vvjtzOKHG=%Iqi8k_91N(=6p2we=-h#hptqs6wUiz4|%XaWuQ2}bysNQ(Zo9G&< zOlp0$$Z0#V6Sctc_jj@>4&lO={L#_CfASAPJ}|K4_z$q7(+swVdj#h zct4D;Ja(jZxyEQqT9TWAh861$hyODDYkxIk^ZYc3dEe~AzLO&P*$laDEtE%3s7vD$t0`&3 zJ{h@%F?8y7CWRn73>AaXdTPieTJ ztz?+xoipfGk&bqGJ!Pp`|eV*cAr$%#&)w=Rt^L6AJXqh<~$UL(!=yRWz^9O%)(er zev+g5zE8&%7!c5KylisMk!b+DOB{m}8%QE~X3>tmIUTP$Sp7W_cW83I$tjzISaCCG zzUfGugdvZdJsCRM`hcY*7AOf=6U9Ls9aiUEr|vl$0Aee{-)pS6&;?__X*sK}Mzwvm z?lW^pAz=Y$x|q>$LT*fA1v`~vtb0a9*y&tpF$nFZ$eC&b|> zE<1TfGYJIpC>f6g%=D%3I7`_+4N=tL?^m%2JrD^F1B4k8QCOVNa>`PBNcnS&!UScb z2`dNWNiiO87qxa-);&dgo7)0u>b(BWq`m{beGC!6mRN&pgn6T{+0EM*ytN_gD=r1C zqbr!O;uQMqsv+rLf#{024DR`7poNpp`BZS>7`xJZSSV4LD^T}-<1C~YD$NiL+OD(* z^OQCVjWa9^jL|kRh-U))&x8K%ZAUSryvc9bo%_Ej{1LN*p`?xLlu~zHW0Q6unl!W@ zFINrje-iSrE$aYw>LzMNvmYP8Hy1JAoB4?~5Xt*>#2o!%Izr%D68++aVZhg?&9vT< zA--Kp+CbG{jH}yc@zbgc(TO^4D00IdKn7W{F`ibT?Sn|p4NHpCbq@z*8?|DKl6mhO zj=X!U2D%=+A0Vl^&Vq`r%@|@!m7I2M2Ru_msA>kKjw_7CVB2?3C$Aa@JC!J{{C>fJ zerR)VQ7+Ui&&H>tCY`~sSKmb^&f-SCtFl|0K@P1>E1eh+b|MR?Q~G9|`F7xM5IRLsb;=r*Zr22Mc))@$Yl; zBwGIro25!oTTfLFaz;anpijNtrR&zXT^=G-LssYIxNU*)dH9xc8owe@XjOwho3(h^ zh6W$&VbF^@AHH1XM_9EWLXS{(!#iXB*dy(sXx8GDmf-K&C+?C*jGmb#aB4H8=Ex#5 z=V(gJC>2N?`IN}H6@tJ%B{Ug9?g7RoDS&WCkT;=AA5hTwj|XMdrywca7UDFhu$hg2}oVp?g*y zrzl9MTHw2QVN?P6hHo)!9IMdk3XwZ=zn8r{A;^GpUEOC!Fj7H?v!Ik}Ve83Kd?*>} z*+>&+$}AZ++g()E>hs4Mc`6EQh~v)`t}&J;ut+gO%Eb`%HFDfJZ{WVsfO|e_swHdc zRjL71`Hk=(a1RS6V|+EDANF2N&@K#$;KihQ@SIC`xRmgbzH6R6kn3UE8kNm!v#lS8 zLr0$QfnNK??B+8I^A1W+36s_N6Fay7vXGVDv^UPGVCf>5n%I$01Sj2RVI4}#Q4azP z89=oYv7X`hD!JKnd*un$6A`R(+3D;K@V5$j1e7NtSf#?%D@Gs2dJduVNO1ZYo_-sx zZ#q3LXCzB_n9VauE`suf$10@iakRRxk7;g#!mj)g%Mo2!6v=h_5;(%=6cDxt$tolD zl0d7d@E;CsVbEiiJ@ALoKOPI&+))POuTT1BUO%U?_xO45d`sB%Axc9JICFU1Q?^G-sSdA)_B1@MV9cPbH zy6=_LLQLloBn~zl+P#sN$0zeK7Z^|!f11>r)P>@*1;p3{WT!8TGc-TeP?zG8gSs6K zZ>7}-tpZH~Bo&#Jk&Dc8|MDR&1YHP{mRFK+yi6F)GF`iw$JY|GHwGo7RT;aMfybW! zH9L~<0Oa<04)+1pwo$;sv-Oqc8`)b=-=LLnoyv4oMTwO#_S8{{*yK^z1q3i}WC#-*1qC&Aw{(?o&n13^cIwTX-F>(zF$D3luz_ z-X$57PvZ`>BTW)CBi_-X4gXEzaVY^y5+UgKh~fL(aWsBpNR=n;&6)?-1uUxq5cPLB znIFYCa1dO(WDAl?{0@r7jC5+@`T`F~76g4?Il1UWUay?Q3djdQo~`*9SXB6ZOV$pS z11bJu;#`1RSaVL@7?meMIpKm_gn~JGQbv8c&e#tlghAqvrYaF)H`r98z={y5L4xtU z4#$Yj&%F?d_DFNIbx;Y$u3v>tRd~s(VO(p987g1*4Ef9oP3$-A6 zx4sf41z@!T6E=UjVGxtiMhtqmQAg|VdzujDs^)fl3UhnNH%-Q12mlgM#Nv6 zZ)YN~{nb`Ph^6pIi?Hns$p#3aBj3zab=wZ(=X!x%tUUwVu_E?sA50(i$lCP@dzq4K z2EV7#o?U`u$%F($rG#U{zd52>GcWDzgX8SVw^=jkLH7P<3a`u)=sFzq%}Sc=4++zo ztQ3FO0UN4w-1r=8Z&B&T3;eQ1j(e40^PHkZaE#D{rUlMz!o4QFlM26X7kT0=kQCf# z`j3qA>t9f?{^U*6^JvJ%q@U9TEI%)9@V!=Ax?VPNC6`moZQLXd0|qcY)`Ie^9)-}w zCiyFxLMRK5smZFoR#P?L!WqdslcIUOzRzOF?z0FQ|D&(dPaq!C z76hQ*h%SRbrbWeMa1bop*x)t44lvu>J^R%Ujo#knc73+u8drQv&;VmDuWZhRqX_W3 zKmY&%Cd^@8C*l~Ryd+U+1@m~&Oz`2k5Xq$81fbs#E>6Iu}D z*t)nqe&p$AaB+eoMXw&mnvhWa9f(aw(G|J!U)UqK=%zK7qQ>nC$ZR=6y9Ww2JJDi- z2PcNYqm9CVxK}Z1=xa^WsgwPnGJt^AoPvS_c1uc|`^Fcqk8_2bQ1H@u<2qPRimsWL zm5;~l*#BP5t~vJ}C#0iK@lF<43rBpBmU#}$oaOjC5w07U_Gfa|MXCwxaYj7@9re*yws?W#R=DpE{CRDt06oD|wVx{dq4whK z|Hq|<{Ad!r^h0xvrMnf#$3P!~-H+MszZE&G=QtptS6f*6)4X%~6Av#N!*KbaT*%Fa z)zi9rokCNlg@l-+*>QmENf5Gm=Me7;7?Ie|PIAq5BrG{qjS2KC-MxvcWJb(bKyb?R zXbB%FYt+$XzCt4H!POKIZfqbL35_$4ABH$(>s!*$CcIyKy3IInHcQtm_AfLMQisbr zg3EJ)Knb-1)RHGhc%cCSG*6;R@^~M9XvH{S+h*^ay z=hE#@5i$^%X*IyLBE3abBKRu3`8Ftc$di~6J!{`I!C=OXng~o|;3CWI; zmD%^)YSqP}PS3a{K<+%)|6R82C806BBJ>At&@m`cT|37rn`}QnF9CV}xy6HoDs9P1 zXTqQHn%pXLdb(W%`gvHS{VH^>PwCnfA$NY`@Yk8HL{a|3VJLUfORYHf_AmxNr!q_8 z1X{AV6>$6)Gih;{Iu*iqB&w{xLhTzwF9*aaG9p?xntV%dVA-Wu%_`6PI(`2C@; z<$owC|I_D6AJ6bpIIx2E$$`4>YCPk3b$@Ha7ax%8;tffXyTeS<>JBFlPx-^PMMh&8 zw)Wp75d6$uT3s2Z4K*^OjXRmG))$K2P1D{GnQd7z`eQ&hnhZ%}xT+%Ccdv=rtRx4qV9-A zZ1qSV%^HoqJ^ z-jWG_Rkqzkhomc307KSLh3Bg~SU6Qph2X9iWR2Ul&Akq^(QW?))`17yT4)Bo7B`z$ zz`XoU|;gdC|TGV&>~ql?_Za@-(J-|K?$BW!bhcGt}8`mQKMD4heU zIkJs%vXB(Qh2tV|RQ1hBmvxb;BE#jhl?*pR13r@p!xuZ4cJH@fZXhBHkKsdgM?-P->J5n`Ub+ zC`QD}&e^m>V-9Po--mvUNg!cW=U@&I%dSLp<~>7(XIl?Uo1I@&k1(Y0h4bPKCL`cx z7^gY)1)Y*)=gCmt`z4!F@h?rq-KSsAdd^-tMmxUvc5t1;p#ktz9DtPle=D4%FB|{J z=OM`r&MP=o^>U(!e>f*j823RxlsXs-9$aW`UJDcZQ#fiNeu%7fTf*nlU3MJnfV7$3 z>|Gi=l==R;LK3aNRm0}_9mUgGB#Qv%rREA(l%9%zO_GQ(TLi$@-FrBfxlOAgQNoc7 zjLQF0h7BMsKRrs5Od@KWBm6O&*dT1J4bK-^xmi2oul7VB^osm_WL99Kel~pueh*pw zgx~VwFyp)m42*mYkMjR;OSW@QlMz6<)H+ETTDaz+W8H2_l#yRp9SOokPg#&RD|q=8 z`1wQB(Qx$)M=3X_jrIEObv?VI+tsrES+c;}UFGf{ z7;VgH07L!t0{dB+qrQb)-RtJIX91Zpl5z8>jwJle7Th7vQ*xD)s52yy*)9{p<~2@JA9S@}lAZw+=Z?kk+al|HD4) zw@vfaMbwMG4Q-Zn{SxSvRCQXwgLp?>j6fXmBW0B9I;z9!nH4uwp;&BIHTxq~oIFRj zpzGxYtk~LLKvA`nlWy}MlSsJdXjX@Lb}w&?DGdZk*{xUCq&{>aZBR`jF1ZKAlWoQs z7q^E2k$8~NVykzMLyid&Z+)t1<&rl^g9W#gVP#aP~*MF;$JG#{g6pQ&D=jD<{) zGus2%KWYf{u(Pky7y`fvuP;05DEMUgo7tRR=%i1_l_+qiZ* zx-?6@2{e>&u|d^&Y5?4ZGV#h7Cwny|*hH*hv5#g_zl2?#1l=rR!vHU7fl_qfG|ph+ z&oRx5)S0)}S^^REOsUvjmtwcet989%%aEiGY&)fKdCuEe(#@aBf6DCWA`LpbPVQUu zY{^35yfR{%wne-~M z+Wz_$=1zi|3CGrWAATwh&s;97(YkDZ^gh(mn^CE#$tcN6CHF|F0)QHup;hj4smEnH zAAmxJW{SQt+7P3~ z^HpT3VEM*)_+k$-J8CbHJ_HqB+RqnR@-2UKot(F7V{~zeVF&nVJk~q4V%Y&3(PBkx zn5kg;Uk%LHZm&&_A^bC<_#uL1R2^W^kuBjwFZ6#AFIRK-U%E&R)N&q2{yV7#s#-=h zlU5N{2cyR}BLAoD)iVzoBem$4q)tsr_t{n%A--0_llV^pv*>?mar+4p?>Q6n$6oT+ z0#P4X0ku(f;kna0!BTlmW7p+=ZWpn2I(C~&JdS!!$P7jtzk-FW*HfG|1+|Dr|A&gQ5*HnhK zc0AWI4X!cuq7ygbd(~d!Ud4#a2onk^0SU9@Dp^S!+BIvEDp9u9q=B60%wK7pNSLX7 zjDbCt;Qu}AZezQE0A)oCQ$=I%AnM%(=|r&@*bAq$-K&WhOE6>!R5kh6^8&_;?E&tP z81xBWMjkpMx~CuOJksOC%P_^s8Q9jWV9Bz=XHgFShpqB zY!&arK6St7Mn;=VbqaIL+ZtL0_y>!;JiT+Q?=L@=kt%btqz!)WBd@wYMa z8~rK6u~_x6CXO-BwjTowJ|`fv1eJvzh;tTAvQWj9#P=IADq0=_9)w8GG{_el_{&VE z;6JKNyc?pfk!{EZ5yVo2ZH>_xRFJ{z_N$gkfs>xT?|_VFgPxZdBL(&eMU*~LgQvD3 zJ73kW#X>HFlo}80k$NqZX==wAMqXg+EmZ$ukEL?s$Mu-j_e?{`h|h#}0^zJ{KINt! zLjc8lut4CoWXXT*>5Ym}(py#d8Yi7;V{~o3F#+M#-1td9qLzVhh z5tr5<*&O;z{b+9XU)jm$by8q1Y2XgB`zuR+^_z-vt7Z`LeK!W1@^|uJhcck1UI8*r z67ldS+&oEnfSi8q0;h1kD9HGI%i6B6z3tG0AUesy&bXVBmC6>(i!+wn(~;9MEg@_R zQq;mBzbXY@e%I&oqSH2ByproNDSgK)+`t!>m6Ni`#>ga%du830i5zkhwagf1aTLsO zf|tGw-0RTyuIW4L&QH|m98qW*Bb{RpKn~H;u+{hV08MLemYQu$-IQ;$0f3VmYyMw@ z9iQq-L|!0#6E_}<5=m$JPl_+Hed`Kfs9p*4w)L-kdKwYxPCd}E<`21(hlUponxu4u zN7_SrFjxxOkfG_l&A{U#0%eBc#soHfT9BHh-i;6eFg`Y0&Wu?J1QLKd5xxwv8t$RP z`ibU1Dlj51t^!%6-X`9>UXN!`L4cR%zsvHrLlax{QljOl$a`^!fj9YC#WnK&0nRe} zNm(?X$4>+LU2CClfk=$2IXK~E#nlO@;9@Yl2|zHz#^2}2di&u%LbO*!nqXm2M880| zT@@!OWEex3mTDOBvw*nRf8Ji#!7u($v3mUG)eC52eF1k0LYxBcO0h)jBw>g6%>ZUq#=6 znk@C)3&#~D=p*Ll($Gi$d|A~qcOY0eJmlw(=UMmj)6?;!@KnVZd<7ok3$GW8Df@g8++D8DXQ0vvG{+RgiOD3u^(f>)YM>|gzW@fa(wDYL zF;7-B?*X)Xd-!q_4NbRp6S(!yd;SPQiqtOsr{>Pea~xm@A);&u+$R15Q}cGHhTpC^ zQ2706mK0v4v=@GI5a^GbM@`hFr=Z0Xz%@t-5Ugf+BaAfReIko8UzIfQYRg%IjeyIx z&(Y(1u83p-wwLnud17PDe~-5l{2A^DXD*jA;fR^yIbU38Dws8oJS=`B4umA0{V_k< zw$9n!nvz>Y`H&yqTj2_~3omG8b3=d{vDi`rfPFX~7T{L(?Z7N(-=N2ROkIKGHp8+6 zKTd$gvI5iXTu)aDNXI~}1-BP3R1_rN{}K`|q2}+qJ2iBI2v<$Vv*}GMW-xklXc$s) z7UkJX5-lIA+)J1;DVApGOP@O-%$Ka!y%lg-^dP{~N0raPGdR2i^uB?6OF@?447PE6 z??f=|gV^Le(oCS*Pu7ui!dpxS;(1n`qvMjOor!VttfwKtHfo2voSInirW^X46{FAV zWiJ}%;Az6{a~TFb!6O_U+QLN>2GIEQ(zL@yhbBP|REdj~3@&*z2aYJ?&DYWqry9pO z2D7}=407-}<+mm^y^ji_5kR-P>ho7ayIbUSVr(aERa`oSLyU?Xe#bZ;nA+~$4#7;t zgx-FlOJ8cF;vqEItowJVNt?)9IZoMMkj4?*LzBB~7_rca3dfu(!t6)$FGi#gjcS{M z^r@Su0Oh7BU;M3h@lMs{D9?EA(VFymC4FDnZ6pE})o>B05g0UEzKI+ZD6d`Y?U?jU zM!5*-d(*b{LAVd9*pIcH2mwA&-NpK-s7;R8+L$Vhy_O;vhw_*{*(FR*jSjY>ZaE;a zSqmBqmm3J>v^9VIee%r1hBR-~>%26vnD;_uERDS}YH=|1_+dV1vu%q&=cfLg>ZV;U z5_(cJd=R0A{GX28B;wz*{F;;q==13{BO5ZCZZY)FK$O>n1ozy&Kwoe+szs8I0Ehun z7(OYP$wp1PH!w|fT8)wXVTj(U{6POfq;u2-t?7@$J-%}meN4JH6$db^058R6Kfhry zeu-51Xb)GuweTxHmIkLanJ6Qs_n0pr_&Siv;-=v=z|;>OdlGkNo{1`!q=5xO+jG1g zOPk<*T5AeK=eB!+2uM?}<3-xR%kg2{E+ZGL>zJX-CmdmBG+@)q0$B&yw8ToyBd0hFECbM=(AiM6eDy8*klsWcx z>0LiVOr8uz_Rr&iLN8I7Ly|T|jdMd?%NNDC#0h_zc(0mHH45Y@{yPDrDz&(ob|7 z{sC(#>gi!A?{mVFgR^Ch(>EQDJh~S62h@fRdH+nd@q~ft&6E~Ebe7^Xb(~d8>VR=I z6q0TO|X%7c82-a9g7TIEid~pL+Dr9ExyM;aF$Cpw;LaE^}c3`1pdZjh|V$Q*ME1;;5oh zCj@L_F?^!e<+niwTT1nn%dp|=UO*!%MwY1UujQf?P>zrN7g-LR9~|iAYOH$jh*iiM z6<_Ea^sRO{EsTb(fdpcOq3a`CZn5CyZNK);;ZmE!u*zp%i<|K#bS0u0R#AQ>K|Q(@ z_z9WzrWfiyN3P4#t$c$33+HX5kbINY!sZ+Kgo|y;x-0Kd$=;eaOflpHjT9J^l97Qi zLn!{~3yv1lwhxA=9hy{~T5`Z*g7`g5k{XGdS}4urlUg zT!~n&ugMupDoiH^xKdvOgK-%NI=I1uLf|`7Z$$f06rt=%PhjkC{wHKPCCQP?&`y%& zqVG2V*()BXEcNb{9?8vxRRmt#AoBwxgk?bVgMG_L*m z@5@MiOMks_54SAsHuAR1$p6*wTFO`)L01obx%(Ys-=p$*Z>{O5=JPe=`bFsWJcQAS z;ixyP)TNKVeIULOsKH$SWQ>I$$eKi~z7MDqBuzylsLcsxxzZFF8oJ$Hk6|P!6zfgo z*|C7ud1=>}1rwDE!;!p|c&TgTb5QtJ6GO0eD!>KUULAH~D|%vZqG(HZsVM@0i}Qb? zo*TDr_RaL(yY8O{x<86H*SUaZk4h~gQbV#$$*g*3z z-tx(B$t|I`mE)iBM@rkc(ZnNplt*3UKKL`A*-BuK9-(l{gTf^AV-%1x#q;S2vg)6` zeAsbTo$lbkg?&T_!&5tO8c-u+x8bFs=k0{yyNdXyxAx0PQdR$VR`a_3g1!%I5PcW-Cv&rwYWRv|uEZRx zZ`C-sY15aU|GmZL{JmhD z-W=@w@+W`H+_u98?i8vCVGp@9m^PNti0=2QaQH>pFvfvtX1Qo@Z=E%g&%Et6}W>cvBLSJDy9whaz6=ozW zS93`K1f*yWRETyX_{HM$4X;C_nPb)D^>3-M)lF;|fjL-uhEaQiXO1WHoq+e&u;000000+as5 zvL@R^tkH9UqQY5Ck~PMLqehI1wsj856v=;}tg0e?y)G(21QmyvkZVoRD$AlYa{R0k zG}+hGt*}9gw`dbwI;{^%FD7X2fs?@=&dn5}%5Aj`3AS(IV1Y35a7MzMM$3Y|e^kHE zki~T1$24SwkoVO=kyC%L1l2@i4f24!&t|}~Js(faZG-o|y+Ac27(A`26^wX$r@7IV z4A$c;_%>vk&sfQItmL9rdl>2tbnQBYy}#PWV%PAKOJJ-`)zeo6&|{1Y#Xtk~go)pX z|2pQ!lu8w~NgRWZrt*7svkXv@dRN26AfR*rL*B`ik=j`ici^M|gI90v4YzifS~q80 z?BH51WRP|k@vlPES^6*+VaBa%rsF=+r)Q=L4G*Kxmd?4I^rQOr!DZ>+e%XoU74V0Y zMiv%MWZC_4mELl%I0{gSY;>O`l3ULe1I9S()_KxZu35lQo>%wUb(?4@pGX@kO<4+q z5FCVeCbhJ+7VX&RIvHUdY1ZuxY%CQ}&GZ}~n6zl+Yr~32?bR8g)+mdBDyTD!b=i=u zKX5Z3Nad0p0^x7gt(iy^n?j*dgD2+t1Rvnmw9f7mG5QxhQP z!*J-^6axjF(7ZzrSUShYJe9mKyW!iI_#a{eBOpx{AKJ zOQqCZ#J%nv5>o;!$oH{OILbVq2Mi9u>L~3yRHzNAk7OQU_zTo}0tZHMe|0jw4#nM_ zHXgd4nQ`EAf{OsQ7tzbDM`R2RzSe+>*1|BxiuH|v8d}p%O;iecunE^HWkYE^Enza2 zm)Plo#2cUEitaSdDCf&=i4)!ZNWyyc&N-(<6o6ErJ|KQPT!9u(-UUpkFb{~w&Fv2d zX+cPEkDx{^0bODf4`6^7@HI0QM2goQ99byB@3`F^xg4NB9oykRFiYX|Tlnx}%0z$q9Q#oue00000 z0MD=l4S0{~z_&rljcDWH1lW1*D41Z}QQq$x>mGOQN|ErmK*<)h{j4)p*;U`x%w^=S zi_}%FL?30C_7;rk;FZBMYGJ7lLJN7suSoIp1_P{nZ|FmPSCHfWSX4&>(L~I)W2d6c z-}UakuO;Z)8H)wU*RDPnp&}HW-R^M}y%VX+bk%4hq5jIXE#tZXXQ1Gq z+#@b*$BZ#2i<&_Uk&CVRqC<#Eifr7f&492WdkaC(QJK}G%Mna<4w>82Z8Q5CuT z7o5YE{F_wLG337zKdljo`XY*n6Lg?N?%7qsho&CwM6A#T+ELglX^~CLh#a+umISwa z4=ciHTiYObIY&FD#0g4a>?|*WJAkm*5@eGleB`J4=iKGyvGGChr3I(4FyyK#XCTdi z=RL-L?4xGWd?OJL(ZPQ(B_B-pQ|!-JaU0Lo@O5= zGdu{nttgex!+*^mG1p~f3gQQ(dvkDqcPzqP?R}_m6cNRvV145Jy-^B-$n4!g9)ZKJ znJ-T%d<62%H=x3#`Utf}I^vm2E1C1=0Wakp4(FlmN_(jmX zZos*$yFW|zjL6W2?7e+eW_$^G2S0~?AOo$$fSeh*zPUS)zwBfF50O@`3iXy1KjBA2 z^rNcvJV(%~=R3M~zU(UiLt_N7#lW^kN*YFZ6&O<;H6NhrcjhsRUa2+YjzQty2jdxi zuCELi&RE)7DU2(d#iYJdD;Q#6ys+)_&@tv?sV&+{{3^VtL^6MV5IwD655XC$y2!1^ z&DK+!L6*}&ut;W1= zfJ-BY$sM-O$-+x3ET2{NOI*yyzexZ<+ii+JFfeuSZvQg7-D*8HO^w!i1xi#AH^ov# zSdYR?UlT?Qj$Tq>u$9H2IP2#0w z5u$)Gnm0m4XEZ1%Q?kh1?Lc^Y%1)Q~4JNn-rD0^2RgD~{J=)v;_`VOH-}TA#V^94V zXDj^8K$rx?W-+&GVfT??c2m;`K9Gj}s~sGO!XN+u00008gwivZzldGMQT3mWFx&ke zPOrPcel~BKMnw-_h7Ik2T|M#QtUfimn=@ndb}yRb7?pS})K{jXu^SgD@DgLgRKcSy zEBya4AkoL0pEK<1;j(GF>&xb||C zBjs#~>88_2q)N70#tlpQW#@k^rtj8S*;6!3W~rhav%4#*b5(x{1lNsHQB?PqxX<_X zkJI&Asz~GF!(tI$=(H5_G(0IX zwvYX6xpjyH6g0N^PYmZ6^tW)MpFXP4=!---!)@6Hw%kHx9!nk0rVvhs&P!-Y$_PB~ z39-S}$xYW}>BLTUba{g^mRttdYc{?RuD3z7la)sPPi1Cmr#Qh*#v1rTi0FE8e%+j7 z-h|RBB8agBA5=z9Mq=cC_GShplY%K^^Cs9(wHMd%f|vbV zt}Is{eL2I!g%4&XziON&TT@5G{>iM-d`k3alZEb46tBD823pzJ2Xd^{rGSi=O#$%{ zr0QAU(;ham7Re;%P{6_3lwvTLb-fUThSrdoYfmn}gkyI*)PmSE)vtK7;gbsH-b?2b zRKLH_QAZDG`86MtkLLFLTW3<`MO=5nu~=_T`7a70SYA{_;Fo=ocfjy(b1lJ4G3euJ!4hl)i#oV~0olo0|VQte+4J=x{*0>tq9 zr<7w3q`s;Tiljqqrvt>=f=`)@q1 z++g;26&smEiQ3yhc-@1t;@iR{I^QM4he9kVJ8im zq&As{h3kZfZu~^YQ{)=49`7$n7A~Vy)dnLW?n9+4YY*ah1*FhSIY#5JOv}mMR-u}g z`C1OZ=RAC|(!gJiuJa#DA(U$t4tU;MU)rwu2VB6v7;hGcLfX-!LYw%d7KIb=o%?>+ z9MiGn)H-7Ls6Nl$o5zv|KawGKOi+d6ArSB3QaSg|<&8Dp2e~lLPMC0_XE>CR1T`y- zrsiJ-qvjU*6cFpLbxf!Jvok_i0nh0RXr-9OUH_69*@X$&IVjl<6mm~HdY!?w>dmcr zoK+}W^E@k~o2}O{8Eq4nBpYCE-5dTRyyA@@#W=V~&lO`b*Nhf!C*Nk$o8rt^=9Je8 zpPmdMhf~w;H0(VBFL1YoP574q)DX9z?z%)fCJOT@zoMd0@Q3R>i-%ayG}?Lxp{30O zGsZrg?rqb^hUehnEIL#x6ykkO93|fJdCPhFZ7t^N?fMNb%dTEOaC5DLt2|%p_c#WZ zFtTV-A)Hw>%(_~uEkawy+$$X5DKJbNs|T%-kyOFm>s}$;m3c|3?lut^`?0LKbiETH z)JAmJNVa}@TBLbB;sb8V3Q`7fs>OpKyi$skj0oz_mA0usg@Dyp51AyQR)py_$YoBXa-0*w)ztyv z2*u2jMHibk5>28RJEn{>ma74#1zGw^@S*t*sD?l-z_gA<=4LgD_!y5gHC*}V^w*>B z3Unqzi@lX)SZNrOO2 z-Y==f>`QW$R~4;)&aXnXI_KX$c5}})OgAxssmUsJYVW7DCyfHWo+(N;6==w6dC1Ul zZddog1=M9fqr>lc7RSbX+Hh?%zjeLPQ)XZ65U(NQY@Gzd5U5TcW&ZV>|NV)@69uAj zuGYVM%-gMHTA=7IeLM-X28RjM^9MBeiXO}@k^d%?4QjCx+OBjcEpkdH`G`7VA!vj# z`e?v@0nQxGMY zx$HybYrDCql?=1a=0N!DE$E}?V%ki`b^&6;m-`$s=!NQ07Z+@@+h2A=Rrwb{T>RY# zA`WYb9!mab`eM*?*`iV^hub5)p6jIJg@CGW)}y;p?;SLjqj&39II^t#SxfL)SRsk@ z1;EOK@5eyZa29PLWD0Mtj6jgdzM*34nuOE=w+oD$v`q9B97H5Jh_r0#_>;#WhH+B0({{x zNHQr^LW#c|>(FyfayG2RX;eb3nJalsK5&Z|UxS1&5|Vtps;_;!JA=e?5}&&;pp+HB zqG5Pr8PfGg=JzrZLU^ZD1hWe;+cH~F(snLA<>b1ISTC^kV&t1MlT8&t#W`%6=Cu1m zQhvBvr!99H32HwdJ$s=WP8-RW%v?N^AxdR()F*^&P4W?}uRQwWD!^_q}L74|zqX9-vNJ_eoaLx(r zxgR~yor_k^CkxpVtKwR=+{mDrk8y4kumAu6000IJQSb|^=mL~4`F%F88JVs^)HCY< z^V!eQ%q{Nh#@E0t%AZM&ahchAJj@~;_}5RY!X1EgWF(2B-9Bjqo9VyIhLsUv)LgX; zo;UP-^kuBdlPH|_!{C3<$2Xe`WsSh-2Z96!AbXNxHy<*Iqo5&P)*ki$x{K?}o#w zAMiO|*R{~$+BTt+eu@ljN?(LT%K^cT)BZ)LoOfwxayBr40BV0B9}M~)+U2~+Kyb7q z&g`E@XX*C4b<<04D5GSB!k{@IA~QcR$?1a#wGk(%p=XQ1o)5g{YWt-q&A2BWTw2D# z*e<%0;(iKAudK^A*-8rpFgMeC_{9$Sy2elVZr4YFM&Qq5Uf_qqDpK|mf-S?`(~tlF Q0000000000000000Fu2}@&Et; literal 0 HcmV?d00001 diff --git a/boards/arm/adi_eval_adin2111ebz/doc/index.rst b/boards/arm/adi_eval_adin2111ebz/doc/index.rst new file mode 100644 index 0000000000..ac9d33aa28 --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/doc/index.rst @@ -0,0 +1,184 @@ +.. _adi_eval_adin2111ebz: + +ADI EVAL-ADIN2111EVB Evaluation board +##################################### + +Overview +******** + +The EVAL-ADIN2111EBZ is a flexible platform enabling quick evaluation of the ADIN2111, robust, +low power 10BASE-T1L 2-Port Ethernet switch. The evaluation board provides 2 10BASE-T1L channels +with 10Mbit per second Single Pair Ethernet (SPE) connections reaching up to 1.7km of link distance. + +The ADIN2111 internal switch can be configured in store and forward mode between the two 10BASE-T1L +channels and the SPI host. Cut through mode is also available between Port 1 and Port 2 and can +be used without the need of the SPI host (unmanaged configuration). + +The evaluation board offers two modes of operation for maximum flexibility: Connected to a PC +via USB port, the full set of ADIN2111 register settings and features such as link quality +monitoring and diagnostics can be accessed over the USB using the serial command interface +implemented in the evaluation firmware. + +Alternatively, the board can operate in cut-through mode between Port 1 and Port 2 (unmanaged +configuration without firmware) where the EVAL-ADIN2111EBZ acts as a network switch forwarding +packets between the 2x 10BASE-T1L ports. The 2x links are configured by setting the ADIN2111 +hardware configuration pins jumper and switches. The 2x On-board Activity LEDs provide Link +activity status indication for each port. + +Custom firmware can also be developed and the ADIN2111 driver support package includes simple +project examples to start a custom implementation. + +The SPI interface provides access to the management registers required for the switch configuration, +the 2 PHYs configuration and data exchange between SPI host and ports. + +.. important:: + + S1 DIP switches are shipped in Open Alliance SPI mode. The current Zephyr + default board configuration is set to work as "Generic SPI, CRC enabled", + so the S1 DIP switches must be set as ``SPI_CFG0 OFF and SPI_CFG1 OFF``. + An inconsistent S1 DIP switches configuration will halt the boot. + +.. figure:: img/adi_eval_adin2111ebz.webp + :align: center + :alt: ADI EVAL-ADIN2111EBZ + + ADI EVAL-ADIN2111EBZ (Credit: Analog Devices, Inc.) + +Hardware +******** + +The ADI EVAL-ADIN2111EBZ hardware features list is available here: + +https://wiki.analog.com/resources/eval/user-guides/eval-adin2111ebz-user-guide + + +Supported Features +================== + +The ADI adi_eval_adin2111ebz board configuration supports the +following hardware features: + ++--------------+------------+-------------------------------------+ +| Interface | Controller | Driver/Component | ++==============+============+=====================================+ +| NVIC | on-chip | nested vector interrupt controller | ++--------------+------------+-------------------------------------+ +| UART | on-chip | serial port-polling; | +| | | serial port-interrupt | ++--------------+------------+-------------------------------------+ +| PINMUX | on-chip | pinmux | ++--------------+------------+-------------------------------------+ +| GPIO | on-chip | gpio | ++--------------+------------+-------------------------------------+ +| I2C | on-chip | i2c | ++--------------+------------+-------------------------------------+ +| SPI | on-chip | spi | ++--------------+------------+-------------------------------------+ +| PWM | on-chip | pwm | ++--------------+------------+-------------------------------------+ +| WATCHDOG | on-chip | independent watchdog | ++--------------+------------+-------------------------------------+ +| ADIN2111 | spi | adin2111 10BASE-T1L mac/phy | ++--------------+------------+-------------------------------------+ +| FT232 | uart | usb-uart | ++--------------+------------+-------------------------------------+ + + +The default configuration can be found in the defconfig file: + + ``boards/arm/adi_eval_adin2111ebz/adi_eval_adin2111ebz_defconfig`` + + +Connections and IOs +=================== + +ADI ADIN2111EBZ evaluation board has 7 GPIO controllers (from A to G). +These controllers are responsible for pin muxing, input/output, pull-up, etc. + +For mode details please refer to `EVAL-ADIN2111EBZ User Guide `_. + +Default Zephyr Peripheral Mapping: +---------------------------------- + +- UART_1 TX/RX : PA9/PA10 (UART to FT232, console) +- SPI1 SCK/MISO/MOSI : PA5/PA6/PA7 (SPI to external nor flash IS25LP128) +- SPI2 SCK/MISO/MOSI : PB13/PB14/PB15 (SPI to external ADIN2111) +- LED1 : POWER (Green LED) +- UC_LED1 : PB6 (Blue LED) +- MOD LED1 : PE2 (SR LED) +- MOD LED2 : PE6 (BG LED) +- NET LED1 : PB10 (SR LED) +- NET LED2 : PB11 (BG LED) + + +System Clock +------------ + +EVAL-ADIN2111EBZ System Clock could be driven by an internal or external oscillator, as well as the +main PLL clock. By default the System clock is driven by the PLL clock at 80MHz, driven by the +16MHz high speed internal oscillator. + +Serial Port +----------- + +EVAL-ADIN2111EBZ has 1 U(S)ART. The Zephyr console output is assigned to UART1 that is connected +to a FT232, available through Micro USB connector. Default settings are 115200 8N1. +Same UART1 TX and RX cmos signals are available before the FT232, at P9 connector. + + +Programming and Debugging +************************* + +Flashing +======== + +EVAL-ADIN2111EBZ includes an ST-LINK/V2-1 JTAG/SWD 10 or 20 pin connector. This interface is +supported by the openocd version included in Zephyr SDK. + +Flashing an application to Discovery kit +----------------------------------------- + +Connect the EVAL-ADIN2111EBZ to your host computer using the USB port, then run a serial host +program to connect with your ADI board. For example: + +.. code-block:: console + + $ minicom -D /dev/serial/by-id/usb-ADI_EVAL-ADIN2111EBZ_XXXXXX-12-if00-port0 + +where XXXXXX is the serial number of the connected device. +Then, build and flash in the usual way. Here is an example for the :ref:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: adi_eval_adin2111ebz + :goals: build flash + +You should see the following message on the console: + +.. code-block:: console + + Hello World! adi_eval_adin2111ebz + +Debugging +========= + +You can debug an application in the usual way. Here is an example for the :ref:`hello_world` +application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: adi_eval_adin2111ebz + :maybe-skip-config: + :goals: debug + +.. _EVAL-ADIN2111EBZ evaluation board website: + https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adin2111.html + +.. _EVAL-ADIN2111EBZ board User Guide: + https://wiki.analog.com/resources/eval/user-guides/eval-adin2111ebz-user-guide + +.. _ADIN2111 Datasheet: + https://www.analog.com/media/en/technical-documentation/data-sheets/adin2111.pdf + +.. _STM32L4S5QII3P reference manual: + https://www.st.com/resource/en/reference_manual/rm0432-stm32l4-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf diff --git a/boards/arm/adi_eval_adin2111ebz/pre_dt_board.cmake b/boards/arm/adi_eval_adin2111ebz/pre_dt_board.cmake new file mode 100644 index 0000000000..44653c797a --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/pre_dt_board.cmake @@ -0,0 +1 @@ +list(APPEND EXTRA_DTC_FLAGS "-Wno-simple_bus_reg") diff --git a/boards/arm/adi_eval_adin2111ebz/support/openocd.cfg b/boards/arm/adi_eval_adin2111ebz/support/openocd.cfg new file mode 100644 index 0000000000..295299f2fb --- /dev/null +++ b/boards/arm/adi_eval_adin2111ebz/support/openocd.cfg @@ -0,0 +1,12 @@ +source [find board/stm32l4discovery.cfg] + +$_TARGETNAME configure -event gdb-attach { + echo "Debugger attaching: halting execution" + reset halt + gdb_breakpoint_override hard +} + +$_TARGETNAME configure -event gdb-detach { + echo "Debugger detaching: resuming execution" + resume +}