From 1d6d9149f9b438f797a7af85c0454e38a2767a95 Mon Sep 17 00:00:00 2001 From: Guido Socher Date: Sat, 26 Jun 2010 00:00:00 +0200 Subject: [PATCH] command interface for remote control --- README.htm | 74 +++++++++++++---------------- main.c | 89 +++++++++++++++++++++++++++++++---- screenshot-cmd-interface.gif | Bin 0 -> 37486 bytes 3 files changed, 114 insertions(+), 49 deletions(-) create mode 100644 screenshot-cmd-interface.gif diff --git a/README.htm b/README.htm index 40a985b..9019f19 100644 --- a/README.htm +++ b/README.htm @@ -58,7 +58,6 @@ Here you can change also the settings between the 30V and the 22V version. In general you should only need to change U_DIVIDER and I_RESISTOR by very small amounts. ---------------------------------------------------------------- Overview ======== @@ -81,47 +80,39 @@ The software is prepared for 2 versions: - 0-22V 0-2.5A - 0-30V 0-2A -It is possible to build a different version without major -re-design. - ---------------------------------------------------------------- -How the software works -====================== - -I have added a lot more comments to the software than usual. -It should be possible even for somebody with little experience in -C programming to understand how this software works. - -The circuit uses as internal units ADC steps. All external values -(Volt, Ampere) are converted to steps of the analog to digital -converter (ADC). When you change the voltage then this is first -converted to ADC steps and then it will be further processed. - - -main.c -- this is the main program. All initialization starts here. - It contains a infinite while loop which will execute the slow tasks - one by one: - + Convert ADC results to display values - + Update the LCD - + Check push buttons - -analog.c -- the analog to digital converter and the main control loop - for the power supply. Everything is interrupt based here as - it needs to be fast. - Voltage control, current limitation and short circuit protection - are all implemented here. - -dac.c -- the digital to analog converter. Initalized from main.c but - used exclusivly from analog.c - -kbd.c -- the keyboard driver - -lcd.c -- the LCD driver. This is a special version which will not need - the rw pin of the display. It uses instead an internal timer - which should be long enough for the display to finish its task. - The RW pin which is normally used to poll the display to see - if it is ready is not needed. +If you want to build a version that has a smaller output +range than any of the two version then you can just +modify the file hardware_settings.h. + +The unit can be controlled remotely from a computer using +a USB serial interface. An add-on card is available from +http://shop.tuxgraphics.org which offers galvanic separation +such that you can use this power supply relative to +any reference point (e.g build two power supply and use +one as negative and one as positive power supply). + +Terminal settings for remote control via your computer +====================================================== +You can e.g use putty under windows +http://www.chiark.greenend.org.uk/~sgtatham/putty/ +it supports as well serial connections +For Linux I can recommend picocom +http://code.google.com/p/picocom/ +(use command picocom -l -b 9600 /dev/ttyUSB0) + +port : Virtual com port (e.g /dev/ttyUSB1 or /dev/ttyUSB0 + or COM5 under windows or ... to whatever port the + virtual com port maps) +flowcontrol: none +baudrate : 9600 +parity : none +databits : 8 + +
+ +
+
 -------------------------------------------------------------------
 Copyright: GPL V2
 Author: Guido Socher
@@ -136,6 +127,7 @@ digitaldcpower-0.6.1 -- 2010-06-06 Number conversion to display string
                         improved.
                      -- Basic uart interface prompt, no remote control yet
 
+digitaldcpower-0.6.2 -- 2010-06-26 Full UART command interface
                         
 -------------------------------------------------------------------
 
diff --git a/main.c b/main.c index 1f05d91..39f3f5c 100644 --- a/main.c +++ b/main.c @@ -24,7 +24,7 @@ #include "hardware_settings.h" // change this when you compile: -#define SWVERSION "ver: ddcp-0.6.1" +#define SWVERSION "ver: ddcp-0.6.2" //#define DEBUGDISP 1 //debug LED: @@ -43,16 +43,23 @@ static int16_t set_val[2]; // the set values but converted to ADC steps static int16_t set_val_adcUnits[2]; static uint8_t bpress=0; +// comment this out to use a debug LED on PD0 (RXD): +#define USE_UART 1 +// +#ifdef USE_UART #define UARTSTRLEN 8 static char uartstr[UARTSTRLEN+1]; static uint8_t uartstrpos=0; static uint8_t uart_has_one_line=0; +#endif void delay_ms_uartcheck(uint8_t ms) // delay for a minimum of { + int ist_start_of_line=1; while(ms){ _delay_ms(0.85); +#ifdef USE_UART if(uart_has_one_line==0 && uart_getchar_noblock(&uartstr[uartstrpos])){ uart_sendchar(uartstr[uartstrpos]); // echo back if (uartstr[uartstrpos]=='\n'||uartstr[uartstrpos]=='\r'){ @@ -60,7 +67,16 @@ void delay_ms_uartcheck(uint8_t ms) uart_has_one_line=1; uart_sendchar('\n'); // the echo back puts a \r } - uartstrpos++; + // ignore leading white space on the line: + if (!(uartstr[uartstrpos]==' ' || uartstr[uartstrpos]=='\t')){ + ist_start_of_line=0; + uartstrpos++; + }else{ + // white space + if (ist_start_of_line==0){ + uartstrpos++; + } + } if (uartstrpos>UARTSTRLEN){ uart_sendstr_P("\r\nERROR\r\n"); uartstrpos=0; // empty buffer @@ -68,6 +84,7 @@ void delay_ms_uartcheck(uint8_t ms) uart_has_one_line=1; } } +#endif ms--; } } @@ -175,9 +192,62 @@ static void store_permanent(void){ // check the keyboard static uint8_t check_buttons(void){ + uint8_t uartprint_ok=0; + uint8_t cmdok=0; +#ifdef USE_UART char buf[21]; +#endif + // +#ifdef USE_UART if (uart_has_one_line){ - // if (strncmp("?",uartstr,1)==0){ + if (uartstr[0]=='i' && uartstr[1]=='=' && uartstr[2]!='\0'){ + set_val[0]=atoi(&uartstr[2]); + if(set_val[0]>I_MAX){ + set_val[0]=I_MAX; + } + if(set_val[0]<0){ + set_val[0]=0; + } + uartprint_ok=1; + } + // version + if (uartstr[0]=='v' && uartstr[1]=='e'){ + uart_sendstr_p(P(" ")); + uart_sendstr_p(P(SWVERSION)); + uart_sendstr_p(P("\r\n")); + cmdok=1; + } + // store + if (uartstr[0]=='s' && uartstr[1]=='t'){ + store_permanent(); + uartprint_ok=1; + } + if (uartstr[0]=='u' && uartstr[1]=='=' && uartstr[2]!='\0'){ + set_val[1]=atoi(&uartstr[2]); + if(set_val[1]>U_MAX){ + set_val[1]=U_MAX; + } + if(set_val[1]<0){ + set_val[1]=0; + } + uartprint_ok=1; + } + // help + if (uartstr[0]=='h' || uartstr[0]=='H'){ + uart_sendstr_p(P(" Usage: u=V*10|i=mA/10|store|help|version\r\n")); + uart_sendstr_p(P(" Examples:\r\n")); + uart_sendstr_p(P(" set 6V: u=60\r\n")); + uart_sendstr_p(P(" max 200mA: i=20\r\n")); + cmdok=1; + } + if (uartprint_ok){ + cmdok=1; + uart_sendstr_p(P(" ok\r\n")); + } + if (uartstr[0]!='\0' && cmdok==0){ + uart_sendstr_p(P(" command unknown\r\n")); + } + int_to_dispstr(measured_val[1],buf,1); uart_sendstr(buf); uart_sendchar('V'); @@ -187,7 +257,6 @@ static uint8_t check_buttons(void){ uart_sendstr(buf); uart_sendchar(']'); uart_sendchar(','); - uart_sendchar(' '); int_to_dispstr(measured_val[0],buf,2); uart_sendstr(buf); uart_sendchar('A'); @@ -196,17 +265,16 @@ static uint8_t check_buttons(void){ int_to_dispstr(set_val[0],buf,2); uart_sendstr(buf); uart_sendchar(']'); - uart_sendchar(' '); if (is_current_limit()){ uart_sendchar('I'); }else{ uart_sendchar('U'); } uart_sendchar('>'); - // } uart_has_one_line=0; uartstrpos=0; } +#endif if (check_u_button(&(set_val[1]))){ if(set_val[1]>U_MAX){ set_val[1]=U_MAX; @@ -231,9 +299,12 @@ int main(void) char out_buf[21]; uint8_t i=0; uint8_t ilimit=0; + +#ifndef USE_UART // debug led, you can not have an LED if you use the uart - //DDRD|= (1<acl2Aes0dal! ze4jty`3IiYx$ik=u4{gn>pgR3&UMeIs;h{L*{*_>!M}n30RdnT*nbefNC-&&;{gfv z1M2^vr)HvO`VTfHE;g?J;NueH6a0@Sg5poa|3g|_PFn6il;qTu)c!+DO;1bjKMeKY zhVcKefZJHu*x11DZR2n+7ngh8!E z#|bGZ_qrz|B_-!xIXM~k&dDiA$tlRmLFVL?BasD2Br@mT$nqTI{cbg~y8K?%)%SyY z>Z_}ptE=0(n(LdJo2&2L+}7OOb+4|jwtIJV_1+8Bb>Hq8yw@n|z73B4kJ-`5(b37- z(b>__+1b&RmD$PJ|FJT=Fgv@jGP^Q6yRx#faPNE2D;p~-8|eFf1&u~;-20wG^d1_$ zcX;2U4-e7j=ZAZT|Kt4d+u`B2^TYf0?fgG3&(E&~&#%v~Gl1)yd%>;?VAq4d^&sqe z6u7>;zP=W`_w^n1^&R~B&gS|q=K3z>`mXExZuI(Y_WJJn|6bVtzx{t!fbYK}{+kN` z3!b( zIo@8k++_19?xAK!{pvfH`C7|~j)wJ4@7?i2&CbTnp1_~Sn-j}?Ou{N1w6qD42@G-( zYYpz^7X^hHy^IAF{xBcZ_Y2A(P5F3Vm5(z0y#{t zu|>OzBcL2E)}aqrxR40?fJ56?evw=|F|28-JFzTzF*~t5jc^v`;K>05r8b``ltP8x zM~O^#0fkHV7GT*+Q8*^W;S}4b-b>RGJ=#mxQ{mpvFf?|pAk?)}-w)CBb=}Xlk*wLz zwnvOPNv z!CYlYqIj<5vHD+>$W(#3!9*iNTO~4eaiJ)pbfuOdBB6zp<65C|L0lqC;V{ohecO`T zNki8`?MY+rRd5|)57@k}xu4SAqiXO+-nW((0p7ZI?-iu#+CB@rdo~U#^whswr>x^| z-3mW(Z(X$dQ`dc1Strnh>^M2?L5|~{^?o1MJnOyM`r}2RZ^5HPUg%a5MXDoyp+q76 zKsbWYB}Y&JmpzBX2bUKX9)Y5EuD=+jfBEfVgejV@brjFdHUh=zT;My-HRIemE>K7C zZh~*7*Jn)BK16t0Qmoo%jBojy&lFkd-Mcv1)Gp%vQ)(%kyn$1PB}b z)>-TNOC+6D7dj!L1d5KMsvknXl_CnF&=vPlA_u>miz3yPmRF{fM9W7KGaKrKL8;r4 z2B6e;B@tiSmc9Ob@A}&K=d}0t>8mr*S=r*R1Itz+7nV#GuAZlw$mQIcs43 z`bUTL2k9%6*qQW?x#u%|zZUS{_Ws_DPR3jlSoS9##_Pk`pZTY6 zZ+@Rx0iYb|n+n}m|LD+Xl%ptY$>y+7_pnrQ068llk0L=J2f-=DdN6|!{ zOkXeDauiHaloH7im;_-H1Xr~+W63~}0D%jLPzN1~BNz(8V0i-!0q7_e+KU)9tx~e= z(LoN$i&#C6QoKyY*5B-?8el4qlAgt@(z8-ds10+q3MJa~ z?$9j5MntDu5(BkZXwSq|WxYs~eal%NE^>{EO;@F8vavlNt{HiHE0i4H#=^`fF)Ath zBgt#BoI`AEOlw+$5J|9KpLEEpKa7{rs^D0!6*R6_>zip-9bSaI=FTQmKB-cla?_Z{o*JyAZtK?a41SzHzUL%9 z(yi^}Yf!MmS0y>%s^c5*Gxw)Ym2?k{u5aah!8XR9Q*wQ5CZyl5@Hc_8?EI1L8%#R# zs{X6QD$Q)r7J12>N3}?&scy8HVIf&mr9vU@T#{@?2~}aWnySX>QZ0U#{1 zp->V4?6U%*nQUHc^!-(5MaT;u;aO@;`&I9x&1<$?Yb?CNRR3Hgf^b;Uq|>Xt(YnFi zqKDR`FPNe!@I_tZZSWFmJhSeVGM_btKfEVgq~+z*NyrZk6Q~4bbH@IO^-=B0uv0)& ztmmwwRGsOJ*Hv2zd%dL*@A5!ehkSV=#?wJpb7?HksLf-l-jz-YzNpaA{*#;6WylTw zLH4StWdEC^<@(Zw=_b5*M8gP`MZ!_Na@Y)m@*pB4aAIW=hAR$$$YQXF%{0(px@#0nr#YNz5{=!ofDJ(i z(y>kINk-7f2l_z3YE;n)g~Js$I$akz@$>9HQp zMteq>b>+iscQL26DAP#`op+e;D{|P627mNj{3@VcIFArFw83Hwq{dSa1QUDMfaz_p zNOt5773gkfV|3a|siqE9q;BUDItEJEAL3|G<$ca6dQ!sQccf!NJD)51q>A_Zk!HHt zLdDf(wW6n+T9es);Xzx4b>gwXeDG3(mq?va!;$%?yoEHPfQAI7EM@Zd$AxRF5@n9;w(F#$b zEXEpoBzuwQ-n&D6c0G)FtizK0>TZ`_wR>FM%QvC3cbCcfdd#TNCp|r6pR+Y+{6*5w zjOCE86mKQQO&NTPfA=1$s;15+zxk1>X>r7!+`SNWdKoiwcWjU>IaO2iqU`D46C2`J zEAndc%&CP0tYGHUNz6c-i8qlu&LI7oKxxOnig4fOQu(X#XXZQxgg)M25`Q)bzu}0a zDOWg2(m56<`pZR1a_=6e?#;M4=10y<@4@3HCg~O62jP#q-KWI2H!=N}oYqC}KVYFRU~C8JWRc2F=_oVg38lJM;HfiS^yt%YT2*lRw-EJxAQG z|HE91DenE8dHd(=!@s-VZ-JP%fh0I?OxRYlFID8^J@n{a2;yj@K-~m!0?%=xxNOiAlPSNeMutx**cwh;$dW$Ddzn+CXSWaV7?^rI9!hAXvB_ zEHxD8DGHmhHLiY?k^FO9^C3fvczokEV_O$%@rb#65V@L15BhPSWv8 zj1UVp9Aw=wh^?(hO&1t>6_|XTlYHBie7BN}xlRUXQos@^5YrSsIF3Uos>H(jzjU0NdDv_)T88Ns`lu4I~_5|p8qo1xL2p|zT!vr59dn8w$g zWN4ac9Fz&q%{1%Iv{=owy2*S4%jke)IhbZS1!cM9X1R4|d30ylt)_U=Wcx~F`n=#j$*T)0KyVcti|6}!Bb-twyfA8o6|05L zL3z$ySi=xtj~n2djZp^xRaBypT+!)K(Q+(;mrv^ME`P`(okpg2c7JTBzG z%R-wXj&1;T6t){0!eIkWgvGg`ihvZ5bV`}zIF74$G5;8r2oFpV0Mt{WzjK3~bBa3E z%dp>r6qq2=DPSx)pl=LGgjZrR9>cp<`iQp7OT1iJ17Tx^&^j&wfKo@UQnuP6&b3Ob z+){@w5TIA#9)lwthjys1UxnjuKns+?kQ%3~10Ky?ZatgyDGTqD|7qsooC#xbTE4y$_`m-pEe z5i}m1o>$2ljA$G$@fff3qOCuMRl&JH07-3WEf^+OM3Dk@sK((CEW$>C;IM|z8V%uc zP(r2>q8ktv0AQg(YuqsPS-_|nJnR5un?-jABOF3Od)y#1o9eY&q)-X~qyU7o0EJ@o zBLI-oL-;WPm$?n=xAo)W_0v2sw^=}34#7SPfa0SVLqTD|m5zrHz`Kb5r~%E>=y2Tf zMY6Gqr<^DSytf7zBEgUpOp^{1Oce#78HG@{n+5qpiZ*eWm z@9P%V+NO@{ew#Mx*?{@;0b<_zfIo?YJTS)QmX~gb5IGPy1+3VNMI;DVghnxw0K5Q? zpf@O{t}EfBYwxzsuNlB<2CFuMv6_L4RV0ZZNW2+qIJo%vN+UQQfC5+=&0rkB=GR!I znI0Ih0gH!X8R|uQkN|1%QJH3)4{tleq`IPBb%mz@l<`r+d!R*0KrOh#1rPQL9}0(e zXXkh4W9W((;=A)Ey5WJfLIA)b7gyvCk_yGb69l9}fkyzumln&R8cKc+R%C*(0KoWq zA8-zkl3+FO^r1E5VtcyOXS)KsI{9Wh9bvuUnq7$a;#SR`4!WLq<~^P3B}Mq}OaIh) zcmvoZSUM;$_`X8)-Bj_F4%L_0s%PmPDo-413rRph1B< zH4)pq5C?G_n0GJEEXXBr&}F5B7ie}E#d29kl9SZ>2?BK99k@0iv-% z=hA&XeC0~FwN2kTuBC?N-G|^YV2nCKjAs`^|bnJ9dRh&RNZtvf#rB;4d}yDfCPs>m<{`jmkWeOSponf(?odl)aKn(d`QnD8{j)lzP5B@1wMc`D@ln0 zz7NO64%Ksnc@TOM;0eJPfSO*!11R+{2nIpG2?n!6LQO-lKCB_dP&G=l zpIH;5_UN;gz7?%n)NfcIwkFG3dFsYJKEn^E!)F0vJw&ivv*Z-8b2o8=H)CDb0pVZ3 zZkT+895>~evXPk*-$3}JKz#FnU=0Am1oD_#x<1B6+&@|X5IYj0%eUe}e%RoFQIjkXdwz6unQ*+%wnB<;?+_t206}O}(%mQigebSoB`-q2y8$~n0YrZv zRC?Et%`UK8Afy1`$HuY~Yz02L=6JYPi3d#3RWENOD~{x6!rN9h%XOzw ztU$}(zG; zH-jxYZTq%tC6=CZRh@7Hgy-N(%k4*~DhD)}`n-VxnQ+s$%@Q2-kOvsiL^$)Uw0N#~ zxx9Da0#*~F2xnJXXeUBqCX7gs>HM=lJhy*MRS^n;f&~GQzauY504|$y7fnQ#W*o!| zfg=Fpw?aJHLNWjVeJF~Z7uKzf=+PeKMMED{kDx3!pLp%U_+bC0wr4G(&k1*bPJQ{! zziFrO<)Cmk>hBt{0Bk)mN}T~c{R%PI`$ey@YMgHa4ub;7t#5q?T_;;!)Wc6U0Geq; zFjJ43WkZ11)>8)rh9Cui=^#vWq6r%3bF~m5f&dxOJHw>tfArv^)fq7VS9drVR)-&xbN3EU%^nKR}U(-*py1@0^|^+Uh|5wE45xDvld_3 zwPU>d7plAvSqz&4vYP@Hn_;H_q27$1C*u8^ub!jmLB1o`>PZo8M9srZkD~7$Ii1P0 zRRB{T59-JTK4R&K*z?+I{ZkANEPsnx#>0Fo5?BD5OWqY82G@^!OuWM;QjO*r;v4;^)*wazZ}9{n=>aP5%tD~0$voES3gb{Ap2Kg_V;hnc{qEn}b3N(XQ-#5*zYfLXT0UZT{o+{(dh}fOP1((_(-It#Fy`BDKhKyj9^nZI zeAv9r@;Ho<_qiV(-)Yw#$Dp7hq1axtBC+4&T^3S6Z|74U(_&2x!+;_`~y_X!e@lN)532?S-}rDyJ^nXhwv%T`Xs1mtFj$VR8FJv4bxAhb5c~UmkQj7r(_|OS+UqbG&ycOIDF|&6l9*b_n5L$hHP@ zD&M=+H4RI;H*_AncW?TDE#=WN!qMaLZbn7QvwhjA$Fp-AA?4NmwX)~56FSC%)A#$p z{46zxV|6ctSRu%*hgenGXNbzV*Jp$=TH1Gvvnu4Y7iU1)Z%Sx}86Q4CL{COQuTn<5-il^mvCS)IxJVk<`sSg?NzOI)XgT2L4&yHIIq? zJO2GNFwEob?<4CaOtgsX_P(nJBX z5sdzHmrf=<>-%0W`~FzYhgZp*zDOkCi3hD5q)-4hp(I+bzyP0`NJTTq1KUOp&kN|F zLa-sM^GnRV;O!LUD1eg0oD6EGNb@-*&M@7MFdHs{1E8=Ruu4f9vW9qr`LQWSW5M;t zN-6ZIZrUNGi{k&S+p9R9BV^E8Mzhg>O+h+*Yq_VUf*h%+(+dGU`zB z>rgBpCe#%{A_uJx0I(yc0BZts7Mj&jRTbZ~%)vD*B(-W0gP+W%liSKXY28yZB3qhP2`tPDQL8OO}uAGw|1%}Nvp@6p+Q1FE$fNz3VjT2 zL-t41>&I@<{9bh0Z%uQhycb@A=uadtF@5h6Dl@S$#d||>W1(yS!4=M}!2W{?J zBDDr3oiaNY6d)2oK>o*aJ1#7g+;BFOhC~WnD}n}TP4M7^tQsjDlfD1^ z*X%`8{^oZM5s%}c#sCn?^4LtQ|NA~9WL0Xr660T@{FgcCr~CHb&te_aj%)bEbej;Z z>|zaN-X|~eRfVh3KqaYya%_(+(FjHUya6|JUyVr^SRgI{k8I9XayclEk&?|9zk9AaGx zqd}U1`|*!zQ*S@pDGM&KB|5;!Z_3=agqMhXuyXa5raxeJ{5bEO$~-j_EBqe!@7$n3tF9UDF=R z4t4Dw^S8O3{jAw_OHpJGkWIR<02DN-*EX8EXskLPSq?oX@DKtf73jP2#k$;u~&t9Ra zFu8-yc^9cocZN%OZd~Z5#kS&*MXP^qyIGs8< z^KdF^Byjh&=IBo!`b5@(7Qprf3j$y)HQ<+R1a+6tYB~xxf&QWewTD9C(@RE9^f|2O zkpZ}1@33W7;cto!1k^B6?|QR5+(U9Y5_%XZ+kk|yysVsjnBD+*kT&mK75@7H4YL8V zURpXW`4JWc`fu#2yWF+5;!dylx}+4CdTD8U^GNkDG`bP;VJY$t>+^Wfq+uxlx)deE zrZ^OY#8>)6uz{+7RnxaatH2Z?z!V`tmoIT14)dV9{YfjHp(vS9Dz%WuW>1SvpitSO zC{2*BI7zGQPbV|TBIiISTkuKlQnu1ILcpd|cwtbxE&s{oVC@*M?7YmbP$)<*lrV=L zM=unp9;Bj`{>nXMpfzMvucXs9WS)@!*zl9?piIM0)UJBCvYEmtt_t&YO&w_j)w$vU z_poh9ft|F9MaHnJf4;8PClUXeFE`3=d&6Fr!_OgfmTf8o--bjXBYsLF{*V!$1(ffC zikRU@V8%#Lf{f3GvWUN`LxgJZ-pHHF5kic;s_&#~)Sr>?C!-OUtgq-t!swOjW0B`H z#Xu?T<(y!pE#vPn#+#Dj+gLT6vOGL6Q}P`xHjh*+{YOIDe8@-Iv<0>1{GLRmvE*;r z5AA3PN@)qxo<=UHcj1lV;tfT*kJj0ig?X1XGMBNBGw1C^GTfFh(UvyRXoPWTG)idH zg_W5t@Q}%7)Gl3C&F68|k}5R> zX=hL7Z9U=IpqJ5sS3mGmSxeyhayeCBQ$0go+c3b78`1f>T*p06(~4f`*~V~h+f>DE zZ8ct9p*|N7qq0|C#Xyi>Q(HT9sRNknHa^p>xz(xl<*DqhtzWC1xa9d=KhxwheM%tF znZeQFTX+0KPexMPgRLbejc@%nZ&|YbkA1zu0#7Mjry?JK&)p( zGF2oMc?)q>1UCGC*{VO%Y8SGCf5*~y$^_VQDgrr&?NIhnLCCnowtb?qfW0id9uHV4?_%W+|{Y@)} zrhyE*u;9sjgZctb{DN#>>(!hv`5vuIfnm!{ufmW4S^bt#g7jy2D zI!FTj#$1s`ACYJHIx2o``x~_Q(0n*yoBVp4N!@4lpNo1wpO`*e(x+>;f8B1N*=~g2 zT$j6O$8P|K8cexq9!-i_?zX?wT=Zful<-{aVaqR^p!Ln4cF7mjsqS!pOy@g9>-Sod zn2;{;^_=f(F_$tEXlb|~Mza$KE;cz~qLbKO$Goh!$p39u?Cm-b`f~}k07zi+gldf6}Wg5*jcR`((g9*2I7U;FsI57Z`mXRz^0^Mmr=eu0Lk zSNR|B>hgwOKb`x#5-uQ~Afe3M0|)lX$_PWaOZ9LVrW*pkqb} zhESrGc~F@R4N@7bwN?5zH4ah92Py~ay9c!jw(;K-pdCNGv?zirDUUr zQYIZnKVT?CQH&1k+w8jzkAjmT43s;}9mkYVvclZv*Zaqi-Xxs5)?+P+-^Hk2ChN%-;s;6ru zU78k4Aoc2>jWq?SCG|3jWT|6t$E0<3xs)4n2=c`R)MXE7al(<0J7`mSneY!F1rK&r ziqr%s)gBS;51t&no6uS-*U_-l#W?nFuMErWM+pd4;XTK2;84vm%|iaCocJI;=s9||+;lbkF5RS9;R7LJam(qEfE(@q%e z{RdpHFb9!Ar`!n1>Bc$5*9UnAPv!%O^gJ3&e3Eu71HPyq@P@ysy|K`}*!cR8V|&ft zMnX?^b!)aU5MI_s|D!ocBd(q|Vit=BB{Oh>MM zKYvz!ik7C3FP~#BaDA%2`)B~~m{O!cT48Q6Zlko(G_PoG{k^fp@Uw0GgX{y_C>1+I zz-MMpL0-#8e2#f+mV4}ub2&fUr>{>s-+nrMkmSj9y5HEn zn%=XLI<=D6F0R#Z_)fyRA$K*Q&?|iio*}cEscD+&ZknqJVi@ejrGhucdh4vz7eEUN z_alppBrEZ~a}W;28^_>I+HRw@&WGk5FU$(U&3;VN(*0X&ckJyjI;z8!CY!!sp24hD z5Sq7&NVR54kH3?ieC7L)_(y&0`fS-+nuyE-7O=R!z9h9k75$z1`4<{ujXEI8NDr$-S1J{FT@y`mmJ1d zzWuh$ht9*fwho3WL~*ubN56xKcm0b!!&R>%b@N|kyGFgdjuxYfsPc)ax{hw|uTdiCi4~JnB{FwmH|YUWUXyyp zzr5^D*23r;3GcC-rw;kLdjvZ{sj5b?x<6M-9n1Lk%NHDgb7mb%R^2zjwULgM-5UBt zj!o+OhE91#loNGt_nXALO?4(j%_hXnj(iPnz1V|v&yI4bE9_^SZ2Q^lD7EZ${DXfS z*c4T)B|3Rt(Yj_itv5_&eV|p<3OU@E^y+{0VR*mmw{hj$#Z?X0t--ID6$fXTx930k zI72$F8bB`7x?f*_4|hDOM`d0&kh)}SabaXlCR7)@O@6=MzN;5%Y4X`oIx1jG6Q#x6`Yt+ZFcy0<|e`*8tWTvRZ ze*J1%ItgGTz6qfBo#YdRNk2QpX4qgsp-&O?rewPl;rCx%XfZ2LAU@2&kRH&Jk145g zTW<9{x#HjG^8Na`!TqKj;u}|ry2!E#bj0E6x=t8P0vJ+%L0afoEFmThbNNWLOcrhPN zC`)bovPXuZG=c=o#2iCVsm8*|mDIJPgykTp2gZa z&^H1AE?+WcJkyY1&onZtp?doVB)al8hI^PgELnMJ$&qra&FJkeVFnCD{ESK7oW9?P zL*Io(ok4y}#<42UX7OmR5PUHfn}-XsL1D!b0VsMYt0yic^2171UMdJxmo&(WX9^&| z<9sl)BuGwRfVjAsUfW3Hi%s>9EK(%lAq3cR1mH!GA{M}PuJEvG zT96ugog4#1djTHOCvliOQz6nEU3sy^m;A3ASZ-Q zi{vAoJD%JpunfIV5eFq31SZW#(E5plvEY21*-zNFSa^O?9ZW=`qy|vK6UwIq{0JVa zqKP6~hH0}V`2kA;2n4`;`vAZ(vmz%)G-z(*4RoQO2 zEY9gzsx&Hpc|dn~;pIWfbBtvrMCRfnKK28YB*p08sgCtbvcX}1Kpcckg3XpfNhegW zByurC_x3LH=D4$|&T%9dV}J{&5d$Cr3s3Ve;EU9OOBOy8y#eO)sa=CPUF*NUBCXqA z|K47IL)x)MIoN->^)&BR?h?!9EoNi+pA5ooMCdtllz+i2<3GJ@8Jz^1;CcJhoAPMc zAF5`CCFLLenf#xpm93h|N(Ygj3Y&!5@c zhU=3LJ3Hu1FOeulD2eF4`M{s8Mi84S*7iz0WMf+=jTfZgFcrXUm$wor<aJa`VKr^U>qM3$#9lLn2b>$j%CCw9`W)kL3$&!rXJv2iJKk3TEbNVc6X$Nc~k z)NgIgYz$%NYl=}1M}CfXif0$_tC_I;@mV9taEr31ZH&CJHG5c^LpZ%=GG{U^=#$~T za2fZMtA2XshXs2uM6#0*L zP~=?6t?dm=PxgNda_H+&rn55QhA}~F2CCF-039?I(G@3&A`A(JN&r}I5E(rOMzB}P z8rJ`4;iP)r{Hf4-o10^kN&Nt(?80y4@}&jhmYL+mQ+)ai=ulE>n|k*_cPqx8CkvK5 z`d)qfUfW>(?yJpv9_tVLcyAm9ix|AYSh3hfxytwl z-+UE%3eb%&q52sU(qwfe(6eE$Qk}Afi*9YLlhoU`*^SSg{q)@jwF+zIE?a}$7%y(^ zp>P&R7$hr2Id#u>b!WQ+fZGAo=YLW@+l0a3A8||1BcQ^zNQXcs%0NI_OKvURqwC|g zuV+Lk9r;PEQGdZZ6zQ7lHqF<7&USiNOQ9dBgfTV{aXBuPnDyf6)GFqj2>|2}LPndl zU?78OF^iNYVflH^p-&0RY#`v``%}|neqfPJeArFEW-|!w7S8!fM}AeAGa{?P6~7x_ z(>%!xj@A$JaIJSv-Z9aOQkhcYWWMrEolmWpd{tRw3LWj z@z&R+^01seH{e_^PG9J!fHJ$REq*?ZCxxO3Rew9-Px!bm<%`qqr3Fk|i=Y9`VY&mS z=thaQcS1UyPR7BL8q>rw`_CueEr?m?Z?q%BJn4=J{;v)#9 z<2X?{&R^swKN-RBOYrm3si;%2ZtjU^+9kJ=TWZXkCnff_G4I7}Tl*f-lQRyuba494 zC4~Buh0k-Tz?Q{0xqMl}_F!*(;bpC-M1arx+#pAUxx}exLIlrl{>Ai zdGNC2%O9Q|5}jQWox_qZ*lqZ@x88g= zQ&l4Q1yBCnko@mkazfP1bu$#AL$W`q3+2#TBUHN6v-yM3LgHlE{6pFR54G0$OXFY!n$-Y2QK9Qt&&&Z68Rjx@? zAIzEQG0Vf5Ed^;Phn2~FBd2}957bkMlS+7n&?HOdOTEu%Ovh*{Qj=Qduxo7TyP0X0 zN)|w07^c?8Nt0PE)!A$#SspSo;pzvek1?(>v+ShN2r$xel(NdQux;V|*e@A3wPdqm z;czN_#mCaOpTqHng$uExuC)U@Dq)Xf;i)X;@!eslE#>XsVNWZ4EL6%_nXlxzU`Dba zQDGq8oNmUIVK!?ZlS!{~xFb7|uC;Hc*b*h=HjWXVCKhOg3R)>WmK{=DEmexuQI@w? zQD)_PWB&vFg)d;|d0~bwv$CN!g%&$2=WK@dmkb>lsIK;m#Fmm|Fhxs=5s}ZLVF~Ng z;6)iLB_pBbL)5M@G}A0J6Rxdnx@a#;n^{p$A+EERFFF%c^F`^#!FZ4W&Gj zajOUw;8Jeyv*#3MoVlr_T3YT#rWIb|!oAvQtE4F#<<>$OCuHm)|7D~vFYg)K zvuPaOA{O=c*=ERW1T~d!$@T}*a?90CGr@h0qDUhvlbj$E<2WihkQ}qhzOuigR=tU? zeg)P0JS9qY^YLh9JZ64OmcFcV>+PLMQa&zQD z;4!X@Ee{W@WtD47*!9*Bdj0T(c6O(Zk!Qk1NQu>a<<)G*+*CqH+A5nW-xuX?E9s=H z@<`JxkdtbcQ%+%|N1CeV!Awpj&6K){%XH;%VMV_DszXtJ-ok3(g^d$Om3gn@q7R3< zv2uybP!)GxlAco8+_qV@nZFKgRbk$>XI>3EZRHE+QfL-`y|haz@=4YM{< z&id3SQ)HCyR+YI2$6IbX$7{29mP%bTl`S>HUK%QIh3UMt=-LK2R3R=}km?98I=|{- zxQ1%;v-~dGk+3ZDknn=%wdTQ?dYm^&huVTw+>%vh{u>`Z z6I)$A5z;5MswJuvB%))IY@Cz7xgdztgTom-nPW$V#MI&Y7+~+uX=r&6-F&n#tu3(i{TYV=T9Hi$iu+j>W-l`8^I2ous zoI9R`P04LoO*J!oCv?XQ?oCc#CX}(COg-S8Lo>vUxwZY;npe_}Biw%5$`gw@+WG!f z{f_Z6*XB=4@vkFo>_%vJfHh9h$q|a<#)#;8vzXu`@9ipM_7LM?^MM?7N`L=}++pzv zD(RcIH4uJ8zCV3>Ieiw&3=XavEK0BY$gVOxh^>J{xy|5M*{CTwb1RKhfz z#=O3PUVKw-`4$z*j;~USPnj{nGpjs{#9Bq)xOfm*rCd794q|_o3w6gLVw=-Pa_6qv5E7N`6(Cy|~cs<5Kd5@1?F* zgHKqZj&(AGTWL8x?9B~X_0I)Lq<58rb{~CA&%5!`vak=@C>3R46(fpNx#6V=K~>ib z5yC@%4ci~((eEGdo940_Ftc&i+sk*c8q<_Zi|+lFG?FKwP%{4VwDP%$<(EJDnMN0h zH%{O0SfUi(<0}TAnYKT_H9F8X1TD2gDVlYXoSGU61@uL8)mb=I_x4m7jO|_=KbL9N z^vxO@R?@*JWN8It$@w?SHOp%YJ8AW^!L|o=Iw%$Gn!AGz^(Y}A;t6xMX7KXb)wrX# zr=!n9D$~vFNvA3YFDl|QhRq~LQt}ILPXf~xw4)1pXIVK(c4YG7oLfY?}-`s3R* zZ+Uv~%9fyrkT0pCn6#LNn{~)Dn1**3mvN87epCt}2r5j=d){rz9S^EJMz zL?#(`4jrmv3CpKkK5cRwE>MkW#Q`O6IfjPGImm$oKZ8P0Pn_vF4If|a$bZzo6n_0K zgJmeeS1I`o)dyFr#{MBgdnKc?%Yl9Kfd($Pm_@P%eaf(l$-KX+R{Lk}nlwQSx3$B? znMk4>9}3U{tag6^d`XJBPdN1w4NNXq``xhoY9@oZ^BUFj9cpl!pqazmIz2zkLR@pl zYdql{d3cujWQ9=c0Ee^9@-`du?W2!-NAo`67JlG`Yb!9H96_(BhpL-3`5;hlYokhT z$myjO!=nUzS7rC(%Q}U<&nAvJ^trr6MUtb z@HTXdW-V=zT=|t7z7o{%TwVO~5I3A^TU7Y9FX|hQF&%GZU{OOUe&f#Lg8{KU?URq*R|qqI9_aV6-bG&C zA`x8uOk_QPOq$~rtAUq^fP9;~!FJu31>UV{cYCqzZ(Vg$lu9U#@4Y+X33VPxehR3M z+g~TG{hO?NHLNi$Is;eR17MrWzMp_-JxGC%lQ=SPUWAiG0gDaZEHiB zUh9hBqwojiDcDe-imrvbf2+sTcUPkSSwOI-#Z^bU$1Cd>6vPV6(FJ~dczD5uA3TDl z#%+ra@RvMp`AMc_Q{)bVW=_!t7Tsq);S4tT*xF~zdo`{wC6N&nSdADf;a&bVvs#pw zq5a^zvF-A>@;s$dUDZOJrl^YE_XkUo`hD-0K0=p`B`hW-F&+q8D;StMaG+vCNyI>& zB_^zA29>`xjpHD1Mg2f1m|T|Sk%-+LrR!ba?4M!ProL^ZUsh-4)xFit z@*|AWl%`LRc2CSloe6YPugM@cc##Ya+XIml{}{?|DV1Us&rO)tEeZC#utFuiKiY%Gfpj4k*7A?hu|nta^w?|Wmw1_L&_ zWpqgk8##J}bcc>oN>Y$g$3~2jkj~LaC?F^xAl=d^Dk>nQB2p?M^8NGsKhJYK@AiJj zao^W{UZ2l-ZJpJd|C0SQ2TAm#z5{~u4$Ovv1*!<}Cb>^Z&Di39r%-L)Rce?}pLg&O zN`OGKG49(UcM`L&5AAij{a|5%cC#{k`MLhvPkLL{uuF*EcfSRv6TiK0pq|l{Smq!2 zc28a{^aLf$KC5CBpCs?V)1otb1^}9W;1r29~jV;vLHydp$?;ftg+=1j+8V=3kh~UqonPT?6#gRuF0p+2|{5|EloJ2^A zn=Uc#_O86>U0}7Cg%)^x35=hc1;_H(W>F&M5avWSqtXseLOJUE5`;F~0!*R;98w<| z$wBe)VnNuxM@dtmYaIg<>kufAtE!jAfZ52PpaF~WayXQdLc!={-~p%|cBZ_6cVOx= zvD+fOp`W{gNLxj~Hx6FH$U_J;bsn~j@F}%CeatJF8q1Uwfg;pH z=R^BxE~WanCKcl*sKneku|%VQV(~Z-)Q1cQ+;K|%`hQbHr&WI_&6=ESgyIbO#jGA) zRax86v(RDC&+c}O{J!+&dMraYTD?jtT-BrD{DsVm?_Gmti2Wg<8TI3?=1dkH0MS&T zceb$+4~CsS6EfU<(h^Hc$4z-H$%@cPr(%pn zfvB$E9xsPMR^#Xxrhwo$Q>prAhSCSG91tiGUa+v46&~A=WssFr0p$hijftG$obE{y z0Z`{#YV`;1iQezZQ7o;#P?5_pV~A@Q%sp>ME4YmfIEPAt2stw9?{<=eE5)r`wW0)X z5bFRuIU$4FdnfGu&$sU=PhQ!fQ^Y1Bw@c|g3R!BcSzhnGIGA?+vGw5ld(^k)g$HUs zN*Myxw`-POz0-wc;75{0lXT&-=k5YY6gqei`6iX3ICdw2@dPg@TZ+v`N5U%XyTlv< zdw$Nix#Q@80L`JMSeRgLMGhtjPdHp`xPalFg_FN0K!RQW=*127uQj@eQ&3Da6qB?& z5|X=HAJ_uM?yNc@N>46>t~4EtO0*VKAb?epKj%6exJy+1ub48MBD?E-VK0#G&F~Sm z3>_H&6$%qzWzlVP;SMvn5vUCy*x97%n}?Oq&%7MPpRdH--IKb&>S{0O)4)Ixr8StP zw~G6p?+y^qN-NE_v^U>lOp*|;eRUYdAzTHPnjO%?;|ZxgX)Le|g0AFE3N;)LzUsdY z2<-4KmitKzjh_?UZbN|&7zlz5%J@SZ0hnd1shIyRpL%hZr zW?}UUdPxF(L*hY08~fAh=?(0&&;gO;Mr6r1mu=L$Iwf>3_JOM+;5;Cx%+0o+@<9l9 zuECaQZnm?4nvSbcl5#Rh#80E5>I!EzFv!3J>*7Cy8{JcmLxEXJG@p3|ssK4-GdLx7 z!^BDPeKi%|d~~+8bQe^bt(rSOf@P6CCke zS4JuBzSgUoe;(A&$$!jgc>^KvfaEMNhf@%V=0;jzwL2lG4~T3})_sb0AhOzJFv7k$ zaCB+(fcu`h_wnPT=3lQ_*!UEfKJt%0vP{(b>P?*e?iM%!qj8~-+l}j;&()Y0*NVf- zl5H9Mc-EaFuGrQuweN-H37LL%XwR2l^ldACs#|+a9L9$P0dm7hFl?5WJVV~*n3oKd z?Q{l%QJ}8-YV0BRwl!)4a-&$4x6o$Vb8OAEof(%w5A7r6`akw1vCOKBWD3CWKia_p zD$3n>kV zW&Z99$-Dbdfb5rgGlqihU+&(y+URS)lEL>NrE9tUFsG$htv=vSuB6+M&{zZS6w&|;@quI+=VSOpePC>${yOOsEoi-?#dve%6htzX2ZrL&30`|0^2 zoHJMiIk6w0M4zjnr_`lekUISjRqLMQ;P$^^SY)*Iu7zqTiDG)SQp(R8D z?0rEv&yx8ML~fZPZZUPuUYL?}7i$O>ePbZ(v5xB-Y0qT;h=mW_D$idrI42|CzY59? z-7_osYRdw7H(&Ft9cHyDEnB>1z7)_xh7C5dGj>~s*9Xl$;Pd!>nia z4GLDr)S?sJP5tzD7B==$z4y90N*b8$GZemj&YK+vV1&l<1O8;hMki66KWToOSrX-i z8RibC9beIwRGC(V3iPubM2^gI9+z|6tsrj>ji_CFE@MO4+CdId?Rmvs?(GnY^2Us~ zef(J^vGV;SDzeeo0%&Ozwvu-sIB@o5&WC_S1otQ2gM#kdHHYl}K0KMbZ}#+Q?cEf* zz>`h+m(STkBJ+#)Tjjktw_IDw>FG8FIlBqpFcIa9SPY~l9Id5I`KZ5vjN`DASz7w+ zv}bOs4Vab{e=r>X1~Jt55&xOywbadD*Xnxa(ihIQsYI-%*-5KZ)-mh2OBe#WHzfPh z=~Q~zS#J#bRP%>x^1^;s>D3{se3yIY_&MeHhn%tZN&5GtzG*ouaWMY3DGN{s0XZH= z{109TGfqkFb%_$F+*fG^#^|7O|Fs2z`J^X-efu+6w8AV{W1ot4|LlCL9{c0P@=RC6 zsx<#9)jA`jsFDhXps6&bxuZ`nN1>*jp$-e8<(dXCPbP5||1y$jlQINOu=ML`wCQrN zr~a_&30R68UG;vKp4@t`^f7x7U3(CHXES}zK7G?9ZNtP7F=#yj0iTm&SPEiz+svR= zL5JL@yE@D8rJ3>jKI1{g*-*yOdNbrrx;mp9BP1BHjlXBMLnAGKWDsZKYC-ZHAUPNr z$D3bFSsdqoPQJJI#EeX*aQ^+dzyXW4JgdH?!>`%EQw!+jV9et&s`)0imYF>DU{u1us zbN>v!^ylDESpHx59QVUP4mBbZb01ia8o`VQYu0M+32FTz3B<+WQXxj!aRP$FfM~Uq z%;rOJ9m|s{%drU!hfNNat1N%zMQlSv%yHb#-pnirdTM6OV=_o?RWy+KZ(HA!i9vuh z*_n6UnVsZ;?)Ny?5%iQ}2AW5D9w4i$YW!~)patVZ9<@p~Svj1yz#B5veVN5V=TUfy zX}-c+;lvQ>+Q?Ev(F!pMj!YKLM_-|W?BB!);!qO2rNVey@@I(bpLw)P>k$wlRYDRV z3CXTz2@t)>#Gxh8R7#drjqxK17%@lOXd=Qp_f$dgN~mJ2pp=BAToFm`)BX>{JgROS z(g-VB@%tkDO`eZfqi$7Yms|y(tVm8)3|3V6b13^<0^lFS!+;+S(|e{h2Se)zE7T(T$GFVf^hYdEts|BDK0iBJ(Dky& z$LW8((*?U_e`eh_>C9#@T4b6*94R-OjJKH<1sgRXOs!kiMixy!9ADKwFtNRDO0;8-xU>FHl<5pRuZpverd=_TwUu(s$y=nwtO!H82n?Khf-oOJMxfJb$FVZZ>Fy1n zn82h-#HNS2q_^4r3AKmBa`6aqNmV$e4Ke_PZAn3@i&wR#{%b4fwapyC$53xMkMCnw z@J))2MaM1$RLZ-V@*7CGDe&b*;^n<8K}oR=^qNr2EnyeKzQGUi?V(_43AKm62u8Hj2BeeTv3V{I%__Z_=XhgY> z9u+qf94cHhlMI`Zh|Jy&i`ouixf2|{eP>E2Cc!XJ|BY2}i%QNCK2Io@ZX6{Z3U-lb z&-lFIlIlv>O762x2_HTr=!B0On4FPQr=a|XcOw2|2EMtC@jq&aN>)~!@FNYXvrbh0 zS}IwUIL{_^osO5yC&^ImJlbHZ2-xu_---F1>C5pmqKMQfLwoMLupJyvC4soXc+c<2 zsqrnJ`LPXOiJjz@{bZKa=ctX}mXMU@W^xRJ!=V#{}L3+;gJJGsV>PffGf86xgfbUe_Xi&?UXeJErSnf^DX znz0*if3Wo{L>2=$W|-@le2>Wdd>prM+w4((rbuMg!8uJjsvt`q^YG|K@|Dhq8U^;! z1r}P7*+yI#bZ53DCPzvzTf{cUl`F^mPmWh)wqvBDd^)@s|87y-_IFZVLkA)@o%dp5tEPzTA9N zjS{5;nGYl{rIVCBNtlE}fs82P^Y!YULX3baMzj_8K-g$?2z8*VwJ{=KVvXXm!nmk> zeC%1?=J`0-S7W40@KvFa-iA?}!&bs)Th>YM^j!DPrE9t`eVm!jojs$WmC@%hL25nrf8q+-d@ub)I~-|aQ1S=E9SqhOU=76F zcYKc{L$m%R>5jsB5vFV){zsjCZvpx+`XwK@kIJYA6(e|?r#I(F-CXg?({YpyD`3ph zE7k{O(Znq1n&_RCaxWUtOG+T<0OcagiBa@hA6G5)p%Uc^!LyMMSv{8=vkN@>Hh0kJ zW;F><(dnNr3`4*vh+x=2$SG#QO^(8dtFVPkY+G?RA((eS zYz0km>5-AHHvFRI+=v#9rJ^C^vow6wk&gKi6F0Lmz)M6Z_zTLRG0eQ;AJwOQzD&zT zO>w<%nR_!Ob*9a-IK6+KDnXr%73;@VvWjO6fX@{d5F<(P-xt6Fi=`(+JV$rjZwbl} zUeEtRn=&jddaNc0EvWpXR@GP}F~rf1H7sJo%aUywsu z1Lb~(1>bWi-T2dYd=8%bynQSGCO15!fRZ+vhx|zW@1M1T=y1YdaRcT}P!7xOCG^Dy zlojQ2BGs1z{V(yPFHhg1>;$Oc6pg&n!WX6Jj*o@o{3RH-q8D74n%=Ks>$_<}7sIAB zmj2rh{ckTdcR$2Cu}0ro;SkRjDBSa+a?#sM;fJtkqBTVzPL@#RTtOSp@*@nc{t97P z1+CPY|M};EP+98l&O@qmlA&sT}q&?BQWrPPxiV0ljYM6U#I!|0zu8;i8PPu|8nkqU9#3J zK`U#KBBKRnM9=>kzC4Zv|8+h+8@*or=KgowsfTCT_4j3OV8lE1_tAt;x;YXtSNH?v zJVXFNdVsz7LewSHQU>DTJgPBJ`HG<=Rw<`$vV7%88n0T^8B}3oAdZO6QTI{s8Yeor zLz#yX7+}nz*GKY?L4dvj5ajIw>Pyi<0dcHDAVTs04^Z!-vMh$uZqt#XNy5jYt{^zxZvSWrSwQ$&~ftUBcXZkN9oL@fp z7xZJG_dY$1C|V2*P)RPLs|HBafB-$yqd!an1ja{h0E907dGSp;nK3+xQ4_jmARKG3 z<}Ev{WPSC~TGfJ{ItsW5yM?g^`Yg~s7#nwf=6fjJm3^%Ctzd#>5c^%ub+U-nZTDoU zXUiE;q7`+5DL@C>GF=}$o|L7<56iVSb){apLyz$h&ieeJ9q~XgYbPUvx`j4B!m}<2 z0N9{zINjKTJYFDV8dK|y#S3Ty+*mtAuBidkn?htX_AW=p8>R`Y0C$axs^7hitV%K|Aoo`kpQA>4~TQZbm_?<*kK|rBY z9rc=O!xQRAxjr{vU=>`?0Q&Z**;%1YQmpA3w`V9_=9kh4YLRsaEr^w%BS_!VnIT|a zoFdb;?%ocf20P$CJ?W-#ZYcltF(t6~)K>{rL3VO*N~qJQw}fh2>S+VT8EZuT&Kybx z_J5$R&P2GUTnd@6C>CIO&77|jbm?cot}Z&+ z@?+or*xqPm_`itmn8BVwupFV!SbDoVaM8;AY8d6*4tg$^Q2TbM+#ttH-ST=xPpyR@ zqyrZV`51Y8Mc+NIfTH7`a93$1;7!T*kiczM1ly6suRb7sZe{jkaYoZqy<6{3L!%Rg zCM`HbSZCj{WR}&>@{0IRW42$)L-ZUIgsz2ssVRF9W%y6D(CT#><4Tx;JkYnS#}-;X zyFMr>fCF?`KF;m7o7|4x0|-5{D??O-XzeaTo9?4g4pt4Zl%oG3yZ%44&HH3+{vEMq za%ApnN_om%qATFm)eh^M1pvBki$q-`4m|_#>5rFMC`Jts;lc`t9MQe@m66;B;otZD zFQlZe<5^)+x34pE^RmuGI3?^NLrvF702XP_bKm+j3M$u+K`yLVI?)Xx*9x9iD?&2? z3WBHyxoN9Ib>i_Bq|ac0HV`^E`Y(e8EsX>7HY5IL#eR}nK%|W6@TE8^U3Bk%IuIm|&*ornu{$r`GHnFxiM$5Z$avb&z}3efS3A=@{bw55Ne@ zEhw6*C@6m$CH|Zb4k-$tKxvGFAeSw)A-OspQYI3kx9dYo=<9`ycgN~z1H_5U!BfT1 zRj|T@ao&ZrPO~LUoRO#^q6nU^MBU9XYu06V*J`yuk`|qjR;Uk^6FU5owFJib^8cpl zu<~?3nw7K!yr2XmVl{a$T&W8A;ij$uRt!@hT@E;Si}6@d(_Dbj2Zc~8cRGO8LYNvt zc}QEIRFadNU1EAc>S^d0zQzRk9mQqq{a+Rsl*Vzv0%u5OWna6};Jie(@1N*Mz&@>} z#xyv-JViXWGiWT%@WVCN+di(jQsBC3eN%KTL5AR#dn^8%HB-v+knvDSQ;{$Kmn2oH zb2t{n!_SHDK7oGc;WP2Lrp&d~MeWGSel1XGWrjzHSB&Vbey&@_7A(hcV4V~ z-&;(5k@0msvwiaCK0j9T`<7HFbXqiq*s&yW#w={6k-HaF#mT8GW zt*k{{vriW|xUQ?`zs@-sF*5Zb$m7#rH}+6Hrb~!okd=T1XXPeHjna~tp1N_n;+%6- zDxk@L5!u0kMqN}KW$NHv9(9OBPP**1_WDb6i~jg6q$d%g-E1g=6cXvb7I3jWhS!Ni zcZ{D6<4#!zs4wbfCOGq5|E|J!u=J-2_~{=J47*5r1YY>5Y62sm%PO6F%3J)avQv?^L=D~?l6!d*v>p{eF^dsC0U&%dnSLby!# zVFJB}ECjgmT;^Fzdg@o!Z`^Zypdk=qKMn)90nGW73^zodhhOx2;pv~{BD+X=b-Wq7 zLwT(f?<6uL`or$Cz}DgJZy6o^^gsQc_x!l!7C30Xbh7vSW#`!*#^dz-6GRrB_Orx8 zj3;Idelw^~mhVS`Nz6K6fG&}EaF9Crdu@{D`G^){$aklhRg`S!c>Lr+;L%@HQa)+& zy4f=Mc0Wu_k}R+_TNCmswuuSZPpe7UB)6Sy%A{lTZd^NxKRKiFAA!zaIlTRM?hF-^ zPnr{IJ*Hd=_{xESa2D^!q1A=I!X2X)T0YyG@eX_~_37+<0r}OIp7Kph>u^knA6Ytd zJi}Tr*s&Q0;-K2!EgpmM5C#dX&}PA?T9!{@>%TG7r6?&}EXaU9bBwBYDdRsiK(q`q zL%N5$&?vMe+zCUnn#Wn&F?!kfHq5QQ;4rqHZ&LUFn5aIueO_?EYeSwtC8ANF+v@~> zrT-$|yy+Q|`1Jh2rGbZtKK5rCC1eQADnwI2A3`l32T1m1P{~n}8Z*z28)P%T-Ms%- zrH6dle#t7OyX+s;u;y9kON8=8HQBI}v+mZV`>Y2LY3zjyN^`31PYoiRJhyLcjm`+? zVp;`+@Ie14OcD>mVrkq78acN2zi|*I#XRne`bTbSaG?;e5QJ1V2sG=f4l-fUwx7L2 z2w829t6?V8!E1`W=PC+wdLtk7i$yOJY;ekPZk!&pAV&(q8~_=qXtFOO9<&H0pTvt8 z5cz45gTegvwEPjee3O|x4U0VLzY&T%hzbYZX}9DzmWfx2v< z3E>BX^bUocz(NWNfSsL)mG*<{?n#I>v2vS~?HwUUV!8>l@y|LDJ(S2DoDS_~I(x8K zWUCmRWkyOzs%;(OW|pX5R%o%sIrW?aqI^*Q8OSEYo%ih+;@(p*UDAWole7;bs=PJ+ zlD}gZk(U=L%o+Qoy9N@g+$C=)WpK`A<>*{)R*-#VC9CRZ`)L}j;IWwS2bA003k z53?|IMC#1S{Ft{ki%e(qR-x~|{1Gg(Zk0Jm$`s9%aeHLXUw{!f#Mn4yaj-uSzKPTb zRZw}TAUX(RRI7Ck>-Q=tLSM4>yT7@P+wg$1eV)KUchL+BF5WIqM@wH0t+(!!Q7 zZ@4TyeV{COVCQ*pm5-ZW(j9g;&1bsUc@HdqpIR?VDvxF9SLCVKb$A$kErFs0-ic)5W#T@{0ae91WMTAQPrk^w_MOZ01!jT7=M8pbOJ zWbKINdRCqrpO({!mWn`;LpDaELq%t|&E%JHH2XL?Rb+s#DbErj^xZuMkg*fd_<5XJ zwnS|loyomZV|XyA_4vWvtqZO;pQ(uZShpreds(0kz%7`bVsftV0H@*$*J;H6UDO zJpyDc@1-Enoat9(HJ{wT@T`UcMMl`#ak<&M{Y*fvJ?UDylkl?^-eMOV-|V{7OpiQo zMrqq4rL<$OIKWN((1rK!<{*iy)b67KtVK`gY8ph0uas@Z#)dc+{7f#UHWcS^l2&Ui z>3CA>c%}P__{&X1hgWkQ=_#?|sp9)25w!#zzcxc>t}8DZaFcCU-y`+DwOLBFGc#B4 z(ggaewmUYoGlJTkzqMbVgc)M~g6ye5ynNP4lJ}qT>rqth=2`Qf6}`21 zQhQE#Zk(pHBmDafl>0au`?Q!h=H_ml2NJh=AY8!L(sQjffk+2aa$^PY#TnX_J2*Qc`+Ai5Gc|HeBHSAR}s! zBPZOCV}NJnI#;R|_GbihYz##u0`3+;u8k1+8GSg27_^TuTCsa(7@2#s=$sKbJdqcP zpNcAagQ!+%ZmWudTaK`SqHiliBT_~x1V_5=%9ceuA82HD|2(l6ir#BuNQ z?>cAsShg_)XI(7sGWX%l`^Sc5U+l+G-ggV82*voZKhN*~qb(|(8fTLyP)87e3_=y0 zSkl;%D&85hd)>6#G1vilt%FbIB;&bpF+*%TdtH@_cOGNxFeI>o$h%Cs((3HPFPH{f2eugQCnStn$2U4p@KLeCk(vlCG$&K{3TYp`#q(6!I zBKbm4O4Ep}l!Qr9*H`&qcf%3s{dVE`{6hr^q?u99kh^sL?T7H#*GN##9$1#n^39v> z(f9M0KQYVLmt2#2r3i*0D`Dj<*7Ad?i^$k%0#G;@xlEKO@VSK~f6q(7H2}-7V1fNG9I8*0zFZbu5lvDJ;%V9y#}2U~DP*5Q+TsWg6N4zUysK z6wAupBb8)SvEk`^w#?#gpJLVzXl)kELu*W9+O@cUh#xSGZHclkouwu|(;ga1JW-2? zwep^;AKx*&hr3Z|Cd%GF1ha)zZ8klAt88^pP#8+0RA+S+_fZaYwHB|=(yzSoaMpK7 zs<3RUR550iby}bX)wmniy!l>fQCPK^%%<8^Vfn7oN^kAvyEO~FD!Ot#zvw*J<0?}p zWivX!kCjuW{*kq0+I0xvaGC{7yS~;iy=!B7!?!NOx8e3z9L-Oyo@0}K8$`2YLyumA zhK#XRX>(cIVtc*urwLfHMCj8u*ZW$_7ByNOia?GKfk@+AB)OB}oydxmI!3^Kb7hHekqj&2(N4t097&jK29 zQwgUn+xLERNmc#F+ni^;v@y=6F`@1;?8wn#xnX+CVd3Kuj_hIfv0>4fO^Ni;&NsGq zRwA2jj;hZf{NYBjWh3Kaqb*`$Vd}?~99)rSD=}2e!3eO^{=xD2E-O5M85heA9p_n& z&0d*Egx@1JjD@}$bNp|NYwYJk7i5|G4x;~8(b>;S5%{8xv^A1p3V1 zkEV;3d6}QNJ+w~8`uv@Y?Tt6ZO)X6kyHNzho~pM-Zc_VLlW`LapukJ=QDN*7M~N$y=|F-9sbTzmrt{xrg391|K-`| ze8`^vrqBJS5alyW<>dXCnU=phljcY=dImo?O$f}1VVOl7JP$bp2A_hMDAo#2=idoWa*0006&PQc${WY>#N!blAs7FWb0D54m0Lm&uuap49=&Am@S zxKU9vBF#AQIQIbt0K#_+Cd3b1M4qZs9hUgfbRp{8jh*1?kz5JP0f<7hPJl@ADcFo1 zR+*H*mN*GPvtnY|0{Vg*05IDxBeSgs;IZ-CiR{pox-7_W3duO484w_jI+BVRH8}SN zjOYMfX5)xiJkrX{X5nIEyjY8(q?ySGz=HFUkN_)PU?Ry>jtK=j`z(w!BLIX%QpfUz53S33aqh`P z=|GQFcHUoq8gVM!HfOAMHDl4v@3LUh78W25*d$-*wT15Gi~ttxO${8c>d^z-!jDm( zgU)YXke>{H<#Fj`C55i)Mu-*eGO3GsN|2gcaZ-W$5D$N|U+Z0D?1y-SE zF2HK5nBnP_3({9(%E2>-n&2pd{G6NWnaAL}67rG_>KfS3AVVTCpESLTTfU;wg672b z2}dt6+|km-B+;40Gj?hN`4!Yy0-fEgPPqxoJRM3Mkc-u!<#oanVCSlP5d;}Gwn)z` z6Xi}@C&xy%HfOKJ_K|CsvY1i2qH+}T!NPjhITAC9ph72XA+3@4Sfg&M2)WStQjeNj zsjix-eZQiPnx@{j^j5=H&|_MF;4nyLhkkp+uwX%MVR_c&V^%t%uo}zqwIU7-EU&`i zx`RMeaUM8v_c%#80Htxph69(g8RKI)x$p44dnl9_6EY$768Dr_mC zL|MiBUZu)1rLO9WI%vn~QIo)P0<=A1NECsfE76UoQOVC>aSDnr_AXxxU)D7f7Vw}& z=>c*GjZ5!luoc%m5H*_jipUGOtI5S5KEsmk_ zh0`8PGL8|1ix7_`X&q9Rp*}c0$*jzCAZSDAI>Jb2Qx=ue?Rk}V{TYd}ss?ov5oMdt zHlnM_eO%=UNc)&n?JJNds;Od_mPu3NkQ@>81>A=np;bo~JUQd%q3Hv}2p}j8j-bDc zpc2{qe_28~AmR!F1OvcqbrzCXUI1jCPlccn04eeZ+=rs{sNj86D$OVuFZMk@LzG1v zxS3G$mKW^$3&R8Rga8z8{eEg<@{QZckES+F6)Y@~$2&m)R9kE_E+gs2;&o2jN31MF zllc9$N>&DmDcW_CrDKUfa@m~ zO+CL@`s{mj@p&DXN>UP3{3wnIG3HIvNS8wwk){Q{0QMw(LB9RLWpSY&?E~{Hy0>hf zGz_fhFfA+0e3z^cEhKSFOLBSS)-@-xE!uHp5gJ3>TT%*kv*Gj=L&m>a$pvvdT|j~b zs;X5v40`eN*&qOh7hO%|>7LabhFAPh5SuN6>JPGH->|ICM=plfx4R8J5e^AYmht4YwyKO)?0 zKOQ;R_a0UM&<^`1IQ^5oLcSsJ{=dK10a}N?`hft@a~|BMs5^c1H-bofXRE-c-%p?) z&t>B-$GE|7It+rOgTk2_ulFC`859x?PP!ViK8iaTWMYs{c0F_F9E}*_d%co%IJr)p zTL-~s2B+UW^AH#`9##(b#)q0#Q1Qx-ncN6@ShB*&{X2Nr;QTu|>&#R7rsJd|zd~TJ zi`Uq)Im-THNWrU^EfzyZFTJe*qW%=8Moga{4Ng0KYzlVqM7pS-4K4e3_DSYb{si5% zDW`Xbxg7#=Q}rJ2%lQ6zhF+>I}W)cd3`Jrofbjx+nF!^-WZNc zw=QMIWoCRGp*>W~_^eD6T) zCW@A4J7QGrnvTnnv%=%}%Oh9sg(z*~5mGlJC!I@45-Gf!inV{*LW7{#T{osk3KieR zeu8qNHiOp*c&h!Mm(ClPFDB{7uR?o|O8-;e(Y;vJf0(-6c=N-Y*&EEvUB=txEFX4I zFS}m9x)**ql<({HvaaQ(QvbG5*F7z}7jLThf7M^ocoVuE{mIqkcO9wZtH-B1Z_oeT zix|4jx$i%!ws!Sag#IhgIxULCveTJ=(XIi%2tjz^w=<>fti|U983smy%{L|lBwM%x#PQ7+M_qFJ>p{W9*aX))cnVHWI z^0W+hXbGn*twdHi!j6L0`H|Kj`em{LHWu4=%%T`~vC%|7a!-EwM-57|t3_)A6T#*u zzXRTNVX0Z60Bc_@vFO75s0(8LN@^Q^@uENag^3>zEhmTyfnvLug#^y2~cOPUDqXJ>8pw%+zo?dJ<> z1&WAD#|l_}E+vS)U<~RzP5^@XWQ=Pla-w>yD1A@8k|4dx)u9m`xOq&{_(QVg1_Z}S zzUVR~i8Cz)KWTOwu!ZOkjgf;2hplcG>AW2rmy3(ZBI}MxYCFgdjbRf{)Unwu?5y27 zE4`e%3`i@oc$7vCHtRhso#<3~Aj#xooiw!$d1plSIfv8vsYCs3=!V2c871p{SK2~1 zAYns_0N&8785rOsq=3r*3muJgNfj5&jffewfaGf&gXz)4Mq>!f0ueU`U@#DNEFu0; zecV34M5cmM>geRM(bf&LLEtz9=e)@M#L=0}rg;iN=iVnN4UK2cj#GBVTVty;Ehg}T(DnnPT6Jh)GprapSW2E? zu}LZyPtL1jE#n=tQRq+4PpH84y0ZPXI4rGyqn^x(bW0#Ha56py12iWD;fPouAIMK_Iro~<9Myexla(B#PTt5*``MBHF+Xn=G35X+e?w-N z^k@oXV1Wi7Ggl;mcDcO_-3X>?2+|d#@&Kizs8Sz)=bWsUPHK1R~EH8ej z_2?m1n_0w-nQeDUTwd$wm|5D={I)t=6~l;qc;9fqo3=) z?wOX2;ZiqN!&uf{G=YBuLbH=)>G;I@Pxi-$tj1hPU-Y21EKnx5_FWg5B@k&Z)d<@` zlv>4bP^)s>GAK$tpE}4U`)gm$*~z;R%I=++Yjr$Qk!^ao5y$%>*8`Oo?lv20G=JOY zS?20oSn#}vE&c7}yhul#_zbIhCu zWd-$d<4g=DBQ&7bSjfraqq`8J*x3wer#Y6;E-5sGQv<@K0pY&eT_im3(N@qr4{ObY zm4OO7yM|Cbmhsp^BikfnFDql)qDGLdRZpSyRoJo|A@i7z5^0bx&0Ztp8%Pl`*v~}au zaaYN@=glQU`TW(sC2u6G9n#DLsqGi$_&-=m)^cGJ5pO6N_VI7|*WdDOx|Oo_NeI`! z33r8mE6|E!v)-S}c5<6MGAjEi(MiG+=%IqsyO(mvLOBs-CoPm4Kb4jV!h zQMn8in9VrBEc8`dXvI%QUMoj2X2ZOSiV6`2pO)8`Pnl%FmDly4J{T}y0j{d3j62a! zwuLEteW%Vw4u8mhfFM73m61;E$gH@?QBC5!MdE5QGED2&QLWO8immh&wpOjK{aSbK zGcQcFD%@y8e#s!x&sS|ltQxc>4~blj%@BE~E_&Tp#Ke?m=(`JkUSw{w`oYNxy+949 zx_bVfOPN#6jVMuoTyyPI#7)q_Z$R|cx@aI+EC(y3_cin0X)S?UJWAbpj=MHQRV-?d z>hdg+Z=bv!MislS64fdeLv#iJo6dH-t|d8LeVcAun;tKlUXiz-j31?T)#VmCJxG33 zASfAMmyzYW5@&Heg&CS_^(YPOdb0UQx^Zm#&nHUqQd#o#+Ac|mj3hu9u9~+3=YE>d zhd!#Pe>zYPBsf2*5N|e4rSsA4nh=L|NNrRbx7Le4RV82XeYA5MolI;XkDKkoXqRf{)?FKQ-^XvC>xszR*q?GU z-SadLPsNP9SAG3nt=G-q@rJpXm#rO4kN>*9vR9SvrfsR0(-!0^zXwnIWyupD-foCad{-$@DybeSmxe0n+y1O)?^+B%kZ#Q2Jgb3u<{W zZri~&yFa`)(%k$?ypd$F&FnZR52x#Z#>(JHeR8Sdi`x9GH}9I|*l8}>Yi>K3A+Osc z;j2=05kldbWRhsQPdHR($0?q1BeQRq5=52dlzJ6DfA^#J1b&Mk5msZszgCm;T!W8QW@e&}SZgqa?mqO9OD1aclB%Z9cV}NOfGF4MS;^gYrq9AYRW81I6-K6u z0N^-fp-!guXs^q#b8NQ%G&6WBn6|!85 zNv`_K{~mXkLD#MI=3Fq&0)!CX|8Hxa@2)fR2V-6~c2B!N==H!lQ9Xx`YGZh7Gw5qK zuVVK!P_?An7!G*NPCjFYBDa4Wj6d29{|-W*dob>EZr0h-@+H*(Mc*{x=4nBED)3(h z+haivWCmW5ZYbhD95$9z=k!gecD4O=+MWTq``E`@Xm9$&)F%w@Tbe3Ka_>#`CF|O60y__l_Umz0v1kr5=K8m17=ndFPWR(kVYF|K zw-f(_BlG=GTi#X1cTY)xlX|VAT>9X@>C_r9rHE#KOn$s^_V0eKPQfkDV83U2G@V#&E8%ridCLGe3LF9421wXD+>ZoKb z!lTnqS^`s-C)NxFR65xV>n`eH9tfBt8r&ePE#3eFNoxfJza68tdV zH}&S}kVRC3p?q2>=JBOCUh&gW8pTEWd5>p3w|{h(zvGfwc#WZWAGqkn?ocj@E)UEDY^qq{qob(diS zn|#>!-WwQ2JX-IP4;SM%2uY6OIN538w@wh{-n z%LWunm%q&5OM-5y^ZvKbG$;#kixnSKTpaC0-!F-{XtdS^>U0n7?|<~S_#}Lu;t=&Y zP>wJb44p02h}@aYJgRxceZ{MHV|B>r|H~zb5B0VGr?CrUK13xku%>2@iHX$0fc@rF z3Hb{|Rp?x$J3Ai*lxKQg+?kZfeh6YxFbPo|5Aib2lS_P14T`O_PfxvD3^;NMG zCb;_R73u%e(z*CEz5fsV^Vw$RKEtrFjg91XM9KBE&6Frdl3c=2xickS(&_9oDioy) zqJt2U!r`P2)rQ=-j9N+#Un)L3Y>sT*rpN z#qhtQj@ny%O#f4IDqIu+AY+lEUg>oA!kn&aRl<&sZJ9)eOyflJ>8|Ww9Mqit-Po7c zrr&hx(cPP&WpZ9#^YHe54A4>U2XbFINmy5>*4lW=h+*1<;tBiyU5nL!g}KycxKMoK;<%2UjKH#b@2Psl=N-y>>`|Bu=Qjg&%JEUaxhnFZ@rqh z=cicw6RuIjhP#(})1*PZx1_hU^N^$ZzrCgVb2+MFXSai9fV5(d7kX&Et0EF?>oQyksD-4l*@*4L)duu-jUrYZNWAziE zO0OinW2i;v6Ep0$YU~n z$012}EAAi(*ya(+yqHS9($AHA2(&{%+aJZ>b^BdB>{*nIJsWypr;nk*-HR~x?9rU_ zm0>OgCvk>x&+lH)N_VonU|3Q7SPFr}Ac}a2n5;a*hZdgOdu|C8_Fj~g2HYUDQ%2|h zx(GV{VSS&wZ@y^66ihVVL4T*CXS@BmvQ@ z&6UNaJ8mVJ`py64+t(<1l%v62QXCuP!CH)ZnwKq&v!vleC@ z9L4I(tk$Dacwy3=)^>MYR~DKI8c=!{>jnjP>fYL}8Q+G6VJ0ETCA83y6v1EhpPbls z*SL?O{^y&$l&Z&&;ws;H!XJ3xw%tUz&y|e*(tjl2Sy-3P?Sp?00L-l;qoFM(J!3KL zZ~TyCy_(sWA0sAzkA@jxrQs-H!tP0fZ(r22HQM7k6kv;?r{CoS7d)NGYe;mX$8s#| z8{!EMeR?-Ck9Q!DSHuT$0uDVkKBS8vIYWqjoQ!`Mm30L}3tls*suf$<#NbM+>lwRO z317mv@OMf8w=ar@Gg~~|D}{*fYJZ!Ml&K<@$kbB>xX9nEZ2RBj*G)X%SP2+R3@JM8 z64JvLgq?MECUQXVQSZHoV;X5bk1a9(zo3ntc+V+m6mR{u14bzt?9a}XaV}*?@krZt zcI*P=&63roQe*%oN42OM4sdxBLCrKJ!xTXqOW975CF4_0ifY&{UB1Z3I_9c zliqP(>AdqXU6uS?jUT^9`<~VvX;^05jlFjqqoqN`7GdB@6iAP=pXX#s0tlJym-;$$ z;bQM%N7J*)SAr0Lre4tAo$mV$=m4lRt#NtG;z$8CT+_>)7u$BY>1v?3iXEis(t?mk#+IzGr?A1`c8J{4JFNvY*hCyj0`|R3?Rl_B5eBdVEnRX%&dF-dRam7=_rhE z;DNZV!-b~1%3Y-Zj|=q!kKz?_$!R==jr|_3USIBeDR`M5rUFHYMJ0wm=6$TQTwOgN zNx6Z#fLiOxf?3vZq};Hlm_seP*jm5(05z9}=bf*4a;NTH*|nuI+C?!F(NO``{K7%w7==bJ!|RGUSKr(Q zkwt6;>MKwd#rF84w_OkW?MbKKBM;5Pqhmq48%HwsDgXtd|wqD-7G3h0ZC&U*QCg7LiUZDKVl5e4y z+cO(#o1@Gwz%P3g9kFV`Ee|JO@N`+ViEq&*>_~Ho6tu)<#&=vz8gq^W6`G0JtjoVgPLavhofPd3=r1)ss?Mt2xxoC^gUD&vj@uS8 zXIHP4M2;IJTfYt>)G^$T?coc)zdG)3kw0o2Y$2C>Z+f6Ge;t{yJv-&W@j5Y2BUfzq4fW=+I3%PWOfV=Q|2xvtpNEo4!y?Yjjf5kg*W;CRNNX zbBUTi9PHXZ?IJzGyBdiEd;=AhnfkNwU_-C{m8b% zUH+DJ`Adr-4z?q`1(tt5h+2vWwjCWAw`^!!T8c@w9UIG}sZEV7c(;>2%=_F$quK zM8zbvlg8C2tlF(JS2C0BrgVwcoi5RKwAjtG>YKmXqq~-?vNU5e zVf`*?d94s`KT9Xt^c-|uyEWQ0OMdsXH-Gtax!A#e-o4Of;K6uS$pgDN&z#+T4a;Au zlkFFSh_=HgGQZr6c((X#`Ja)|<*yAb_RFV~)`ycmg#Gr-^W!tu#?j$lzrBF}D&!E) z^}iIRw2*%lrSEIf;Q0OLvg#oEdZFF4(Vib#v-ZbcARW~DsmNWWG=)I4!)zz|tZ{_kRCQ`&y6i#W5pAHvD|Zi@AYmqGlRb>Z3}7{vgl=L93$aVX5fuRn0# zw0RT;54%W}?*~xnO!-nSMV?pvW&%zD@fDCtE?cH4z`c{WCBxa$_7(pKP@Ly0t}+L} zB1gVN^8}GLY3j!ds&$I0w-e!(OqwxWk4e`*-mK?E|J(^8mp@Q8^U$iz^4~#RE*Eu^ zDw7LnW^-jx9P}p6HJ4VyBcf&T1R+#C%v9***DU!f%})|m1Bs8ulzb3c=L(ds^FY`r zMv+c15a^m0>smGIhr$qI8le@$65e11pz?Pr%7ZH91t8hF$YTI<6T+?I+&~T<##X7~ zu4@AFpYz0o3INu$Un=yN_TXgA8BlRO@RxOgacf+(qhtU9uNtHkL}%e zQw|ACZOI(3QKryw(}#5RgkUitfrgC()hN&+h-VOrVPYT2GC4g|Jncy*Y8$}F-5}Wj zrhRVeYnaaNw-9Jdg-fo^P5^>Ig&PAB>R79)gi*%!f7S_)qsgyQs}Hi_UMUD;cJ(c; z=I~v&@k#1xkh{%HFkOEbEY>&C$cX>-9l*jLE&A~p1)erWnh6p7(|lJEUB z58VpEtN^KV#Ri^KrY;*XG+pzOhT$_{@{{;@1X8t(ga$w-YAiMc2C(szlWthwLwjdV z(?jC+YLf&K103&6y8o8nr!zjSCk^i&S@%(7617nSI*eu=CnzlYQ)1aRZw}>K?MbOf zu5_x7Yzh~Zz(pPaq-%IGSiEadVT=!gCH6@Hc5-*C^`QlVAk2wi=TFJ>(3CbUl0Hx8 zfIp5xQ}C&n3alU{lruOX)oJBg9gtf_3ND43R)$FL;^CUg!{ZssuR*OEniiL*&4&gg z>eot|3l=XAa1~J;wk!;irNhnGH72uLbH&Ndvp48rHzj3+^a*9RacwP-lZO z)WC(%eOD?_tmeeL`zqJ&-_9#n>40!ev(+>ZP2nlaL)deK*%Lfv6b-Y16KIdaBeKsMtFGE)5q)(a#zXQfMOYg8umM5dVAoIL3aFQQ=*G4wo&B zuSO{nqDKEQndX^87(mg!gTJQ|{68mC<9G1%xNd3(e7s&zD6}rnMim$Mpu4FHX(b%+IecuVnr? zX)-RrbEQCu*vE&+saxEzdmcpnc56)6t5Gt;*ls1G)@L05*2(1#Uj29^{)a>2K!&t