From 2930680396e47d66f7690e7ff92d5bcccbbf996c Mon Sep 17 00:00:00 2001 From: Thierry Lorthiois Date: Mon, 5 Jan 2009 21:01:05 +0000 Subject: [PATCH] fixed decorated window with compiz --- ChangeLog | 19 ++++++++- README | 2 +- doc/tint2-0.7.odt | Bin 147062 -> 147147 bytes src/Makefile | 2 +- src/clock/clock.c | 3 +- src/clock/clock.h | 2 +- src/config.c | 1 + src/config.h | 2 +- src/panel.c | 10 +++-- src/server.c | 1 + src/server.h | 1 + src/taskbar/task.c | 53 +++++++++++++++++-------- src/taskbar/task.h | 2 +- src/taskbar/taskbar.c | 2 +- src/tint.c | 13 +++--- src/tint2 | Bin 175546 -> 55716 bytes src/util/area.c | 89 ++++++++++++++++++------------------------ src/util/area.h | 89 +++++++++++++----------------------------- src/util/common.h | 16 ++++++++ tintrc02 | 2 +- 20 files changed, 160 insertions(+), 149 deletions(-) diff --git a/ChangeLog b/ChangeLog index d06bbdf..a7b0af6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,23 @@ +wmhints.icon_pixmap=icon->xid; +wmhints.icon_mask=icon->shape; +XGetWMHints(...); +XGetWMNormalHints + +- fixed bug : detect X11 icons +- fixed bug : desktop background detection +- fixed bug : border with compiz ? with xfce composite ? with xcompmanager ? +- fixed bug : task active/inactive +- multi_monitor : taskbar follow monitor's order (left to right, top to bottom) +- WM background with panel padding_x and panel padding_y + => task (x, y) just on taskbar height + => draw background just when needed + + +2008-12-30 +- fixed bug : segfault on ConfigureNotify event 2008-11-12 -- fixed segfault with icon +- fixed bug : segfault with icon - panel's left and right padding feel like WM background (right click open window managers's menu, ...) diff --git a/README b/README index 1835446..b482d51 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ DEPENDENCIES: -cairo, pango, glib, imlib2 +cairo, pango, glib, imlib2, xrandr, xinerama --------------------------------------------------------- INSTALL: diff --git a/doc/tint2-0.7.odt b/doc/tint2-0.7.odt index 6a99fbbf6da581cb8188c50ac20be052a4913bb4..03af50a1e4b6060cc79f3e70c7c830dad4b3ef52 100644 GIT binary patch delta 18938 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�V=o7Hc;5kc#o_F;+m351o_7eUx3(xHZn}_hm2oWR8_IST;SHZiXyZ*s zw@#nRbl=9 zYS!`4xUogl#7TPqI?1lk+0PYSA+ZXUjNCC4UDIZx{Eamh{axtgy}Rc0D!UH}dBFY8 z;WwWGS?@hfluiPw(4TBcQ%sQb4tWe>9c)%RpL9DJF)-y$(!!hy-|c`ZL#<~uiV z-daMo2Ax0fG1Q{#jFw>E= zL&MC=n3@X?f~Ewls55`r5o}naLYBB4aI3p_2{y~3autDNDv==Wgdh$vz8(4yma;$jENM@25oppZCUYu8s+FC+1}Wjp z{z|Tv89M2#o ze{3>Zwo00zD1b2&TI(^gI~ItlCDpCH3_{R1s4`J>(7osb} zON4$;j!3?I-~Cfd>(+Tm%h$t^h}`{$^Ymx@Bf>sqc*^3U&t_E|P;CP;3#MO_UbbnD zme!cJS_>u73)>SKyqZbFxJbiYS5S8qPK$H~ErAS&C zP^0UH+v!M_OXHeub{G2rW~$Hfvd@umZK2e|=p?jL$Kkec0LdbsE{fU^s{f(t;fgJf z>csC2v;uCu^M6;gGtH&=`Mb&1TOCtNg&&2spnfhxWEp>#ymH;^oFR40U_!ZY*k0o8 z({W7q1L|)g;*$a#YA^-d$?!x zK5pTxoMQe^o1pgQwgMCSF2egk4{i^1e77~*|MQD#V>phsfF;ytcW~^1kmn-XGviOb z&XcsTtocP8LaGC-dPti$>3b!_h+3L#ZeK8W8&DC(*z*hH1?%>6-tw*aH!{zmgz4zZ z*k)0JBDUo{OhJ=wJoP8Tk5>oo4l-Fa`3jvcQ*)#OU-;Guho~9DzvC4&sDhM{1cGnwe3B_G0jHm-jX4Rvb0@llt%2MsS-y)-7 z#Q?`3c>dwO^Gp)OzW3webzLN+Xl1Zz_&KuHZ-2>(s6g4jzRz)UQKNwgzpStkg^D7X zronqY+FD2jUW??n^upOUx+6~#&-7Z_ReZCTm5hN$Gh1YER52niB0m|}v<$8hDHSc5 zrfk7`3kDmr77LPfkpW)Q^Vw}du2h5*;Q^H;X*Pb?DJ${6ltJ0jK2n7h<~9uA!VlqY zw!-Ws%q(O!(~nNjg8XjSrVB)#RlUs0!yORvcq*9(hAU!}1dt!XD1biIB3fXx$|AP% zK1JVI;Gf()uYo=VWa@ z z5JMw|kn8+XCu1ZMW9Cn;MJ752xg`;Y5HYz%rBWK9!BJ-151u@y^F06k>D}*Idwtj+ z*4}&V^}NCT)ZGU@#-PK;R5bd1-o)E~xA_H&-9mhuWuaIpX4x$d%1}RS8`?Xn#9I_q zjX#eErV`lwAdUO931{V|oz7FeTU)og#*BwlG>w%ST3&H1?uvRP?pEn`#bHLq@B`iU zZB#V9_N!;=^<+u%fYI|%<%{7D@$5Q^wbDWHPbMMrEzFuMyLh%9hb(-y$g3<7Yp!IU zm|WN!ovjjZWbgx>H?U_eF&adaJQZFm+Kq zIp?d&3eVPwrX4_RYGj&BT`#C;^%V{Kkc~>yB>O(y? zSgQ3dO|v`rep~TmOZ1x;QGdq7@+Kx$2g)_{Rn%+zPP2cB`hwEMgzo)DnavfnuLA2A zuKG$P#Xcwmg4?=z;oA622G)L)8?*sU;OH*qv^HQ4a<2v4SSy+N!NctMj}Ww{y=;+u z3jI*SSDXHU9_BTN60G`xn;~Y#H$z7I!bSWZKUfJ3!FyFIId)&hyTIXArr$mGTi&v5 zt_Fk9c{9CHW6vVm z*O^_+N*zE4d_KsvVn-ZbvhW7GU07_Fa$7P(n|3@)tj=i?zPL1LG^8)tfxwMwWuGb{ z&BrCd4+TCo#|cLsd8P0PC#J=ffueO&<8~vHwv)GJS&RiD%L==ojL4M35|+X8I>@y5 zU~iwliZwqcGOmv*KP8wlVOZseBIJj%(DMNY+QGR_bf0iBw%zeQiOV3mmK~s=SksKu z5~XvPR*4n?%QKf~`x9}ZjMiORaqC0S0yI7nWT;?;|&xAV7{+}wZUjI1fx z)DuU6nJi|uLz2xfIVw7}v|LZlREw1`6@lSo3)#61H|K5}*>SHeX~o6Hou`sr=pv}E zX#Oj?zWLfNfuRn}6L_H%a*3ia=3$i3wse(~VWG2gUe{yRVYVx0C@5%;jFgc3RA9i- z3ITtaz}f=SMt>}iw5#@BLGqE~b71777a_9jzRN7jbDtBo`G^{8M02)peRh&27o2t4 zvoc&({3cfAaKv4U?+1=!!zEIa#%?U|u+Wg~=|!;;SKGUiunuJIi{NsGI6rVFV+Peg`MHG)8S8Hv`S zXd}nc5i%NUc=cpNhRW8!^F}MFhvG8D=Iy&~Apgn$uQN=$BPaLbCstSWf3=O}YfJI} zz!nYnA(_WCi%2t{zDM?y!BwJM7X<+_{lLAq8p{ff)){)I&pB!0m&STqZ&Zxqo#=}F z6hG<3>R21{%-Qa!Io87kOg^ZJtBsr+N{!IY&sR)CxQ?0okDW!~!e?H4jhDGUAgNpO zpWnixBZATGB<ZGLy z^^RvEp%Brd8=xnOhkH8bE0pc5yq#RoPM?CzVD2E5xdyL_AI=gy3_qjx3>rOrvY_KV zVEv73=7UH&S0G)I7xxEGH4dHEI+M%JPXSXn*gai3j{4Gz9R<$m(4}nH z4#G1Ezw~jLrZnPs{;eu7g&2_Rb#NZvd*jP3Sd^rv!+nsgd^|h1@gzB(cCQrUVAqw=pxo{IFlf0OtSN zM>p+j-bXiRdn~Y_E5y8m1spb*l}+G?`@xiNf*pr`Fy}Wx^CnQn1Ns{>KmT?#F}?5r zT6tY4=;uPf+R^mW_y%K^-~n0ay4QM9fXTrFaQ!E{0m%B}UMuW^pPjW3AOn$EYl_-v zi^BYT#>xH^2?9CFR5S$C@#~>}-b>hjoLsd5$VIQdata); } g_slist_free(list_back); + list_back = NULL; } diff --git a/src/config.h b/src/config.h index 1fcd1ed..c87925f 100644 --- a/src/config.h +++ b/src/config.h @@ -9,7 +9,7 @@ #ifndef CONFIG_H #define CONFIG_H - +// list of background GSList *list_back; diff --git a/src/panel.c b/src/panel.c index b9cbcf2..6dc2c8c 100644 --- a/src/panel.c +++ b/src/panel.c @@ -41,7 +41,7 @@ void visual_refresh () // draw child object GSList *l = panel.area.list; for (; l ; l = l->next) - draw (l->data); + refresh (l->data); // main_win doesn't include panel.area.paddingx, so we have WM capabilities on left and right. XCopyArea (server.dsp, server.pmap, window.main_win, server.gc, panel.area.paddingx, 0, panel.area.width-(2*panel.area.paddingx), panel.area.height, 0, 0); @@ -102,6 +102,10 @@ void set_panel_properties (Window win) wmhints.flags = InputHint; wmhints.input = False; XChangeProperty (server.dsp, win, XA_WM_HINTS, XA_WM_HINTS, 32, PropModeReplace, (unsigned char *) &wmhints, sizeof (XWMHints) / 4); + + // Undecorated + long prop[5] = { 2, 0, 0, 0, 0 }; + XChangeProperty(server.dsp, win, server.atom._MOTIF_WM_HINTS, server.atom._MOTIF_WM_HINTS, 32, PropModeReplace, (unsigned char *) prop, 5); } @@ -163,7 +167,7 @@ void visible_object() panel.area.list = g_slist_append(panel.area.list, taskbar); } } - redraw(&panel.area); + set_redraw(&panel.area); panel.refresh = 1; } @@ -191,7 +195,7 @@ void set_panel_background() // copy background panel on desktop window XCopyArea (server.dsp, panel.area.pmap, server.root_win, server.gc_root, 0, 0, panel.area.width, panel.area.height, server.posx, server.posy); - redraw (&panel.area); + set_redraw (&panel.area); } diff --git a/src/server.c b/src/server.c index 2c34415..82f51b8 100644 --- a/src/server.c +++ b/src/server.c @@ -67,6 +67,7 @@ void server_init_atoms () server.atom._NET_WM_STRUT_PARTIAL = XInternAtom (server.dsp, "_NET_WM_STRUT_PARTIAL", False); server.atom.WM_NAME = XInternAtom(server.dsp, "WM_NAME", False); server.atom.__SWM_VROOT = XInternAtom(server.dsp, "__SWM_VROOT", False); + server.atom._MOTIF_WM_HINTS = XInternAtom(server.dsp, "_MOTIF_WM_HINTS", False); } diff --git a/src/server.h b/src/server.h index e6e230e..435aefd 100644 --- a/src/server.h +++ b/src/server.h @@ -52,6 +52,7 @@ typedef struct Global_atom Atom _NET_WM_STRUT_PARTIAL; Atom WM_NAME; Atom __SWM_VROOT; + Atom _MOTIF_WM_HINTS; } Global_atom; diff --git a/src/taskbar/task.c b/src/taskbar/task.c index 960b53b..1bac2f6 100644 --- a/src/taskbar/task.c +++ b/src/taskbar/task.c @@ -80,7 +80,7 @@ void add_task (Window win) tskbar->area.list = g_slist_append(tskbar->area.list, new_tsk); if (resize_tasks (tskbar)) - redraw (&tskbar->area); + set_redraw (&tskbar->area); } @@ -92,7 +92,7 @@ void remove_task (Task *tsk) tskbar = (Taskbar*)tsk->area.parent; tskbar->area.list = g_slist_remove(tskbar->area.list, tsk); resize_tasks (tskbar); - redraw (&tskbar->area); + set_redraw (&tskbar->area); //printf("remove_task %d %s\n", index(tskbar->desktop, tskbar->monitor), tsk->title); if (tsk->title) { @@ -148,18 +148,30 @@ void get_icon (Task *tsk) int num; data = server_get_property (tsk->win, server.atom._NET_WM_ICON, XA_CARDINAL, &num); - if (!data) return; - - int w, h; - long *tmp_data; - tmp_data = get_best_icon (data, get_icon_count (data, num), num, &w, &h, g_task.icon_size1); - - tsk->icon_width = w; - tsk->icon_height = h; - tsk->icon_data = malloc (w * h * sizeof (long)); - memcpy (tsk->icon_data, tmp_data, w * h * sizeof (long)); - - XFree (data); + if (data) { + printf("get_icon plein\n"); + // ARGB + int w, h; + long *tmp_data; + tmp_data = get_best_icon (data, get_icon_count (data, num), num, &w, &h, g_task.icon_size1); + + tsk->icon_width = w; + tsk->icon_height = h; + tsk->icon_data = malloc (w * h * sizeof (long)); + memcpy (tsk->icon_data, tmp_data, w * h * sizeof (long)); + + XFree (data); + } + else { + //XWMHints *hints; + //hints = XGetWMHints(server.dsp, tkwin); + //if (hints != NULL) { + // XFree(hints); + //} + printf("get_icon vide\n"); + // XChangeProperty (display, windowH, XInternAtom (display, "_NET_WM_ICON", False), XA_CARDINAL, 32, PropModeReplace, (unsigned char*) data, dataSize); + return; + } } @@ -272,7 +284,16 @@ void draw_task_title (cairo_t *c, Task *tsk, int active) } -int draw_foreground_task (void *obj, cairo_t *c) +void draw_background_task (void *obj, cairo_t *c) +{ + Task *tsk = obj; + + draw_background (&tsk->area_active, c); + draw_background (&tsk->area_inactive, c); +} + + +void draw_foreground_task (void *obj, cairo_t *c) { Task *tsk = obj; cairo_surface_t *cs; @@ -292,11 +313,9 @@ int draw_foreground_task (void *obj, cairo_t *c) ca = cairo_create (cs); // redraw task - draw_background (&tsk->area_active, ca); draw_task_title (ca, tsk, 1); cairo_destroy (ca); cairo_surface_destroy (cs); - return 0; } diff --git a/src/taskbar/task.h b/src/taskbar/task.h index b0c445a..054eb80 100644 --- a/src/taskbar/task.h +++ b/src/taskbar/task.h @@ -59,7 +59,7 @@ Global_task g_task; void add_task (Window win); void remove_task (Task *tsk); -int draw_foreground_task (void *obj, cairo_t *c); +void draw_foreground_task (void *obj, cairo_t *c); void get_icon (Task *tsk); void get_title(Task *tsk); diff --git a/src/taskbar/taskbar.c b/src/taskbar/taskbar.c index 99e6a17..9367ddc 100644 --- a/src/taskbar/taskbar.c +++ b/src/taskbar/taskbar.c @@ -117,7 +117,7 @@ int resize_tasks (Taskbar *taskbar) taskbar->task_modulo = modulo_width; taskbar->text_width = pixel_width - g_task.text_posx - g_task.area.border.width - g_task.area.paddingx; } - + // change pos_x and width for all tasks x = taskbar->area.posx + taskbar->area.border.width + taskbar->area.paddingx; for (l = taskbar->area.list; l ; l = l->next) { diff --git a/src/tint.c b/src/tint.c index 821048b..8bf2127 100644 --- a/src/tint.c +++ b/src/tint.c @@ -63,11 +63,7 @@ void init () panel.clock.area.draw_foreground = draw_foreground_clock; g_task.area.draw_foreground = draw_foreground_task; window.main_win = 0; - - // append full transparency background - //Area *back = calloc(1, sizeof(Area)); - list_back = g_slist_append(0, calloc(1, sizeof(Area))); - + server.dsp = XOpenDisplay (NULL); if (!server.dsp) { fprintf(stderr, "Could not open display.\n"); @@ -355,6 +351,9 @@ int main (int argc, char *argv[]) load_config: if (panel.area.pmap) XFreePixmap (server.dsp, panel.area.pmap); panel.area.pmap = 0; + // append full transparency background + list_back = g_slist_append(0, calloc(1, sizeof(Area))); + // read tint2rc config i = 0; if (c != -1) @@ -370,8 +369,8 @@ load_config: window_draw_panel (); - // BUG: draw(clock) is needed here, but 'on the paper' it's not necessary. - draw(&panel.clock.area); + // BUG: refresh(clock) is needed here, but 'on the paper' it's not necessary. + refresh(&panel.clock.area); x11_fd = ConnectionNumber (server.dsp); XSync (server.dsp, False); diff --git a/src/tint2 b/src/tint2 index 2eafd709b40ae3f9b19843e9e603affe5873fa8f..4384d3479fbaf88af98a6a57fb9401aab663cd29 100755 GIT binary patch literal 55716 zcmeEvdwf*Ywf_MU9Wj_diAIGwDps(l(V~JNhQ}x(3Nsmf`r&km4o3ahaveAKNhITz)uE_E(Z+hC>Qgfn+|w7@}_eFrn7M?f9)>^IO@+% ze{EI81J_oSUtLvE)41`PhT3bcS80*8$bS3sVo6Imn1=B!a8JPT?@Mqjix18VXa6lm zV2%yIpP|D+_|xF#!`%+|5ZrZe_rvAG-3r$XcM;rrxaDvGIQ}hwn+;bBw+ik`xGFfx z(*{=wHy6%?qts<^55V#7K{ymm{vOvpy@rJFBpuF!|1jJ_4byuR?sB-R;X-hm;rRD? zxO*fNe`M?6W7?{+Kne)z1U)o@L46X9mU@sDkfe~oaDNXRgj!e0ru2yO%1 zop6P4rEr;WcfsYr)x+`ce7MWt&Vkzk_gT1+e_uevEjqFS{sg%3a2_2;?^iGk8M+jIJ(!lM~_?ylMpO1bm5(qkUmNT%uumwzY+^%8T z5B_}>j(DeTz_d4nS8DlYYxsapZ_@{LW4=}6$DD-#{#b6NpR4&z({Q&=PhAo}U-Lhv zVcIeK&xru-g#G74pqULAe|zDWo;v2=myi$P-)MepbAD;BG4=?4g0V!) zM;k)=M>YL_YyG{i<=v>^HJbiP&F^AeUbZQwzd^%WHT)&b?~9tgO~WM`Up#{TBc0!U zntoW*f5(P3{u~W&)%u{FWBwC#1ASJ*Q#AaEhOgJ~2@N;u{Ap8}zFOz!*8Fd?)5BO1 z|E#X>3pKt=)6duGF9JLb`em|-#(BmOjknuRq2@PU>+>Se@$c7~-+K7`D}ZBu-_Ygz zorc>-$Xl-Yar`3vLpnWe8Q~W+{Z0)xX!=PyzsEKGCmMcDm(NcBtd`%>c(!Z){VN># zKdSlB#t?o|({s!s{53fKeFcv2_keFMwDog=@h_VGHjUq+`EA$mY>mHO!|#kJ|8tt& zuKzt+U;n1*59so=Y56-fK3l`z)agx4e~r%XRpdi?TR_LZIdFtO)cLR0>0i_7ZF@3N z=NHiQ2Q}WVpI>VJmuvjDHGkXQyr<<`uK6F+{GQhIcj)wO8vanz|A(fJX#Cw8{?Ul? zeXQ}*bozI6{{N!k>HNoNdb_<`tMlWSNBU{d$ElLIKBj2;OLTgd=J%wA zPa+NfHo!4`mbPy;|Ih34-Kp`@HNT&Nj`W|?^tS$P(y-m$W@~zTeEAOYZ%ycb?`nCb zXnFEAeVT^LHQuH3U#Ia;X?Ws@`d_5;KdSMIwEU|zyg{e`zJ~A9c)NeC*7@1}Ay4b~ zWlcY<>95o93{C%64d1Kj?eXkSi07YOpO5MMzlAvJ?+Gn0$2G!FYy2}BAJ*_X4X*_K z>}S&?*GZf)BOU*2`(t2zRaaWGuC}bSqQ3U(>#oV=A}iNe=UH3t^%{cmtgWr_d&<2H zW%U(x{)*a~M4Y7aG}e`u`n{g2(oMCEe#7HgR}HELe`&qn<1svUJm@L#uB&M9d+Qff zl{PeZ8^FKzfl6{^N5z)adlT|p=cz8Os;Vu^ zH57JjMOBp!HhBFWtRKCe4He~npB?G1uU+reKy~edUXQ;vri{2Almb+_JY-Z_Rk5z7 z+FRpC5gMvcrbJ~V&{fowE26skiW(HWK1N?!SLdxMC+M#)Z>;kOfvtiRs;;djWkt<8 zttFkwItWu&vC&)QX{dO}*32lJccUL-P~S?}DsRm?=wMW_{2&}1J5n03d7!bPs@wzZ zdTUCnM`TO=c&n-^>PAaMlu|z$oYat7%&W>m+d_40GQhW{Lf1(>N+z|2dMQ~{TeoQe z>RaPf)oWlQIC>fy>(`c+c|A!OvM6h;S9M#mNZQNoi;R-OO*LgYG39EgZLCMq`gIT3 z{B3TwTqT8GzpK8!wth)zO?j2K-YB^Zy~ACxvAVPl!UsPVv`r0~gy?+x(ecrP5MVsop<*ob2P}s;X`9CQ~bc zS*QXp8;?!89L-Wox~z7CH&)7Is{GPAJ3*nh3dUk-O&!co$!%4Q4L*@aMZ}=E!gYoX zt!(txZz@E?_tt=1lPqmmQ0A{t&1`8k(q69;RWK|j%TrNZy3T8;2nmaQ^OZKh#?|>s zH3lt$wn1>^x`tI68lbY;s@i%FnsLS23U9r~U;025DqP{&wa$c3Tw>Qxv<|d<>tSuF*D5}N= z6e~_cgYT~|^VL?@*}=wj2w{XQrG=^WH2T-hCQ8Pz8oy7e5i*r2L*rSx0xZz|q?=?_ur5IVger8v@wj9=|)L&a+h|nT}D5c(5s|Q^V6#YOM%E_5Zb!kP7 z;qgjy@^~I-Xi)Kp!f<{2vZV_bd9FvlvqRjflKpS`iGO-ZCsFb6SkQ9vl^jE&cuX83 zE#s4M#M}FU3d^US5(LVq#ppS}zAPyaU5KmFTL|MZuj{^>78{nNh#^-muQ z&=UH~Q2+GvQUCO@@mfxQ1?r!^8}(0rCF-Ak0qUQAA?lw#Hl8=rFGl^-$3m@@J{Ej! z^h;3x^zTOf)4vDxPyb%jKYeU;Z>N7h>Yu&`^-q5d>Ysio>Yx4tsDJupsDJw9sDJui z)Ia^TsDJwFQ2+FOsDJtusDJvEsDJwFQUCO-Q2+F+QUCO7QUCPoQ2+G5i2A2rkNT(I zfcmHJNBz@pME%o$5cN-g1L`0B^6X8hfBFxh{^@@S^-q5@>Yx6@sDJv8p#JGMqyFhX ziu$Mj80w#X3+kVKE9#$q0QFD*pHTnwzl{2)--i09A4L7re;oBs-$eb>58+)}@YjVc zeQ6dXH12)$K;O%F#rBn<;o;%HPyFfDHDgdxZmU>T+t4QNedoaN4YSaqhp(88C({gH zF%KahgV7!&8@?isFmcgtffo~oB`~600xuz)LwJwC%LqFO?-1Bccsk*Bfr|*EhZ)gk zflCOZ#~9H%f$t-nM|h3EYX~nP>=wA3Fj}e+%@f#17%k6;<_cUzcnx8vz;%RKplFuB ze!{4EBWeh|k?=;s{huJ>ip_+Z3HJ!xOt_73x4^B0+X;6G+(vjC;XMLxA-sd|4uRVV z?;_kT@K(Zm2saD7jqqN=bpmfE+(meez&i*ZBJ37;C*f|wc>?bue3Wpmz`F_e5OxZ@ zhpHfi1!%gmVS% zBfN&NQ{aBWKEhc74-l>+YzRC^cq8F{_LD1y2sab%5!gVF_q7r37C4P?JK-*Y9fY?L z-Xm}Z;T?o`2%JTD7vXk+CllU7xLM#F!g~qV2|R^x7vVJmI|&~m>=t+$;cmit0#7G= zlyI)VGYR()b_$$J*dm-I@GQdpgbjgb6CNbo|357MJi?f*p!@>o5q1#n7I-n?EW%v^ zFCm;mc#pu#2s;Vy5ZFz4I^lMKiwNfuZWg$N@NB|$0^dhCkMJ6S*AQMp*e!55VK?DC zfqjHa2>%7N z@Ik`d>W+2^e28!k;XMK$ChR1?52d@BraD!iK^9F;maYs2QbDF`Md6S_XmI3a;o25 zRNz~411Re7Sb3MvdMV9e{VNnd(4O>%c}q*5qxqILa5MZFy;EAc(mIL&4F4od&&&$^ zq_OwybmGUnbD&+(hqG|ZD$wPh#PQQW;G9U>G{y~gD;m?~=qM^mcdS035+D!X;%}rm zD#u%sQ2LgGS+SV07WI)BlWBc~5+UaGF66p*J8UGTR_;opzD#>VJA1+wg3(j4(<(UJCP$fk8qZ#F$h6ik*{Mr ziW25SOC~`PI)!{&NlYyWpI`l1@nJp^@l*oiGZi#fsLNGNhgoPdTX9YE@hpqGz&aa- zQa6kRH>Nu(&$6yS3r5U4cC%{ANYDK8ekjv)Wk8K)^J35q_n`Ti&74a}9?>QQ4rWEa zDs+jMdW~r&CY$vUOKDEf!W6hyT2H7#_TC$AMq`=lax`9XCUTD^pBdvOa-^x;db5+G z*Qsb-rkt=JS)hSU4YLv2I&nZ9IjR{(pNF*JBdCR-Yq0kk(=})sLDztZ{{}>R(m>zRG-xy)=F`7aNG6lXY|UiIbPXvcQyBu2p%|0R;{kQFLb%=$ z?Dmh6v_{pcF4FXft1n&YKIl5$(sX>B|8smk;=psPKdW~Z{51a*Jk$No-p_@Xq2NJR zU+R(^fdOg&B@ep#P5g%jGN^%m3g2%FpV4%q6c!p7XlWXN21bee zeN|_Xbe0gp!i=N+gbBgEJtzS)Z`xc}zu(i+)R*3PH~F_WgHqvidvg@Ht$VN_MT3hI zuMh{1-!rF@7|qezbHXk{0%s;>XB5 zRP0di0;y0`u~aa1^Erkf8rp+u9T}TH16w@Y*f-obXg#kwFKZYz4|NT-Gz}Sz-y5Z_ zE&rX^5p$&fqNQa9+|-&A8P6%$FAknvMg z$UK#CW}uZ&H!ZC;cI?={w-rJJ^pPlcArgp`4r_@mrBq60>umDcp*Z^|hqvp{_;8ml z=9Q9g$a)PMOVS>PB6>l*s=8z;LTh@CBVyt7^c3uFTdB;+54K$_zX$i3uWLM6pp~ zgm>x0F1DFw77$vwECz^fe)k7yE{Kc>1yd6kDGn6gtl6Q-gI&ys{|cLDD1$E1N7y=( zj$_xa-Q=!R1Mc4)V8t|H$7ZrFabJlr)b_!@Qq09P-Ep>Y_|}9C*nC3Ha}M|+;6Q?a z3ljt!u<}O=Xs#ZLS@_woV9?Pf^t(zUvuAl@k7IS^VlEe+Ge z;V%whg0||e!j+HqO_!FI=DY7k454348@|puTh&_7b;`N{O|)0FTu7cXstL~=kOD-~ z?Iz6mT{F~HImT-LNN|Y39M1aV?*-~OjCzi^dO%{dG@Tko18zm@m)7z_Y|KK(L03;p zQ;*T;uGYrE`nG)w~g9@xc>>Xl=n#`m0%E7UoJt(u`fy%5Z|f=zv<>v(Ygz7NykxAa_+ z`9kZ{L`MRHcsj#p8#X#!^2)2*y7%y{--oX8B^N|bAdS-hR< zF0ghfa~0*;Q?q!7nZKQseQ5<=HJ7dXOfZkSE% zEu5uE)dvGTh!(knfl~+~x0Qtj!>^K><-Kdw@T(*lewA2jf;53##d)8ZP1fP#c#P=^ z{&dEH;8C4VHsj2xvzXfrGXJ?Hmw6g^1Ot}Ji2PUDSrrsAD`Ko&zhe#N_Rcq5?Pl>7 zrGWd?jInoyS==te(VYF6t+Oya*F(tIMvQgs((FD|Gk9Ga7@ohZngr@9a5pmOO}FM^ zd^EGUvI#!jM`=3w9G}_xUmQ3E$n>A90%QGSdnZ|ycv&N>q+sAUc}xq_WU>0UQiu`- z1is7#!vR>;XcI!F(1yJIci(%zXLYD_i1S^0Ev4m4t2BJpjaY(MdCGWnaF9tr{#lTh zYh+$B^4y!4@+^(y(3_C*azRFQM_rPPoFmA?8o4YPxk8XHX(Wf+1hx+d@+plhN=7~? z$VQDUNk%>?$P$gbFB$nQLC)34HOa`g1o>HwEKf!r733I=^d%z)1bIr?u8yi?WY%n| zFQSok$;cUk{FX-glaY%B8Pdp&$w-eN>ojt6GV&oo7HTAi$pqa#F31}-lH+*-@+*S8 zP$S!tkzqj&N#Dup*piHVO^_dGWP3952ZG$Mkz13ICk6SuMsiw~Akgmx*`|>@l96e1 zsN3}#$yrT8%87zpu8}*Fk(UVaI*r_wjGQUR$r`yk8985&ANSFKWOeLGM&2RFUufhj z$w(z_XKG}bq}-vAdy`Yv2(m>Z-$+Kb3UaMRb|oXX2y&@L9!y4V6XZ;dJOrekclaW% z9hYKoinw-ijEcB+!S1WEC+OOZHEGbb2g~T7>y?OWuM;TKg(3J2(}k5pSHyJ?F-UYs zdE9%!k~t0R?Uiyy$hE`m1_F&Kc?Dazk% zE*Zf^XndcFG%L6$L)JL$+#|+{qNQ(&Ocl{q(yiOiMvdemOIbWHkhK2&ttuMlooa5V z=57O=RKXsTK5l3c$I5%xP4kZS1ioX%XzsYn9p!o)baV zNXR?DX&&cz(A%SZw14)H=Q{#(4g=@5e$XSzKx^Qdv5#dO7Ob^L7&>(s{5PAfKC`&r zoUlifw4F~e9qt08!89H0?y~L`d+C(M)o+D9P&H5vVk{$Ja52keLfHka9K+n4m1!^n zj+K^EB@H$09eSPe@6Es?xG&iKrx(KIC{s%ht9hoG&H4;iAqLx!7(>F-h5J!6n*mu~ z2;z9}RU>H+YTBNWw5LL@y=L~#xM+MY0MX7;q6L&Hgy@YpQAQHc8buUwS?FEEQr6}; ztuCu(I7`unOF$5G?F!!~{_gM^@%Mz=#eXH_+GS?9A*>aqrP2!fz1SaTB(Mhgu@in=@@5xW&Cp(M zx(4_C>G@EAk?2_>pggCtIaa0%j{-DUN1?S;a~RPYcY}$p)-kPJer$Y;Jy?Tkm3J0n z&8)Cb)o};wHOikE=>%iZ4i=40fKEP=2R0)okC7%ZW52Kq{&>c|;347Id+TWW6fE4T zNpa(2pLNNY?jH~0g^DmpXqA_bX5~(^+i1s3$ltqgG|3We;KK=}&dZ?0Y~qlZjXe1C z8E*&sg-59Al{b5&3b6kmRUjLvV*F%Po3Qye=>zF{=7cO{uFTJYbzIK9HVy?uE%i+d; z>oK+Rg)Qu$cww4X2s=>%pmAGoysxAb!9#%(utD2F+5&5VGE5yz6rOFTWI$3rW~Y=n zjM$S{dQ20?>C~jxMi2I`-)%kqfig)kyE#KqCRodsz8taa5cOgSNQVEcGK{426$#XD zg!O)#O@r6Us4lnV6E$RYkWNpEdN=6#L2s!!p$=5x&3I(K?28>}6Flq3O4#{z6ovQ+!QT{b~24P>xX>QhGCwyM$^hs__V#Klh;;k8>C{rB&p{ zH2X3RDPs5^(VAEbX11#H{is{JHPoxtATz{$J;_Z#UbXc1ULsQq%t7Nb3N>+CI7f1l z`NjKZ-~-Xz)0H;)=6?#a847NfQc@(HF>Khe!Yo#)^kT*lc7s6rF9VXc zN~H~NDbW}P1oNHuR6m=JjxT8#5X?4>nQ3Df5X{3GLqU)x-Ri{Fmfg)JNH9ao>;%XREe$&w-MFrbKWeIBI_FpW$)UrC+>2=Wmu2fICz)y*D9djl{3D<5w~M62#|8{B3spO^nBqc8KDjP@=3=SQ6xLN$rQIj>nC8 zm-{m!E?N0Ue}Rb(BEJXQ2b0#b#~3o3dj9xg@X*KIOH}QqH5P#&?{OpZ%`Uf*`tVUfQM~TjW8mCbg#8Fs=NAE|bcpH3nX5i~0W{msq(VEHqz`kFlA=5bT zpDRRY^0;`uHuKjdY5oP@j>$PcMLT2D=$+9jQ$-&mc zRS6ty9ogBQH!_i(?SKDGN-hPoWj#lWbWGvmS{bhqT?vUGYcIBNq*mDiPH_f{y#a1h zs3lHIUl#XpxNQ=04PooVVSOMB&_sva@25=*l}}4Mkv<*W_~c)p<`X&C1ZmmNW%@|$ ziHihF5zb${klU2Q*}zOU^N zS{D|q=OJI!m!dbTmWgo|g}Ff(^qhq!4a&6 z$>6xzbkxj0a(V{bpo#MBffS)T;yS!g7#yPc2ZL_2>9Co9C>4Wqr3g4)X7oNJsSie6 zU3W<8H?;f*&899h|Bch9=2E41o}}Iz!K6}B@8OgddG9rwUNQ6cq)Ltc4fS#L(QdoF4rq&(;hQ_cPidXY2%xb6z}(Ggkyl5`P%s(X6f#rP9t-%F(!Ig`nIkx!i5!aT0h~K7F)NVFyG4tC#h4=wg zLsZk@5#o2Mw~rCrZ{tzjz_VKb$E3n&8Uv=-rHG$8U|e znxCTh@-h`atzsp&noZ4SXfwux6oqKyERh<%KsOn#`ef;ceYYogotFShIv5}A&rul# zHiBCu;Ky@^WLJmKxsu(hM46pLnIT4}%5?b%{XF}zuHHAK5>2Ja4!${+`ps;8P;ypv zT&2-mk49J9B2^);NPs)#FNjFx2&p=Jl_;~5C^N+9Pb1R!WRV7cEE0Bb^{++x6@GeV zH@jmR&9!m#2ZF#m+%?E661We~y&_TxLaI_;CCcn1$_z33(}=V|9i1^LM)y!lH`yW;A+Lz6oZl9axKdU|?p319PA;0w5TjFwlo`04^N8fW*`tFQt8f;=qVUE{6+w2< zbvQ7E*r03@MFO+I@0esb3n3a~WH^smbrNNU7@aD^Nou>~(3lS98_lxW=7K&Fn2F~} zVLKfmHIlqal-Ws?8DjLA*p5|fzlYNrI-@id^Y4gZj}1%%he*JQ=PAi(3PRjsg#1LA zokW=-MyJXsNB7>lf25kHA1j^c9X9hEq>2P4$og zAnQoLfoIxWnyoa1bf+cC>?FzzF*=omccfT{z4(r{B^i$!*u%3mbb;;;+#iWfNB)s? z1|g9Vz0elNKt2&Uy)se6;b|8w4pF9@kugJzPA$&p#or~V#cAtS6~+Y7XFfx57!+|H z2PoR%5t~S$AJ5N>-mM*s3uaFv=GVZ8*xe%bVLV+T_929{ktfRRB+3jiI+fTXhr*}&ZLwu2Y}TsU zi7uqao%NEl8VXA_dKax%fi2QOxDoSMXdX67E4rcQm5RPNK{Z zqfAQ`wx3&1k5)(cCCGt41?Zqnp`|r`jU5A+JcF70(?aQZqsr z4k;2*W+zc*h|#G;vK!5hR8PmohKc_PjpjAGHJ#$?b2OSZcBZ7k0?|v}+NGmogTe<}5uQhdxf>yEu8A@`i84csJ`?lvHS;<$Kig)$45=c4C3yZym@h^MIO?1z zvy&(@#OPGa9~@znU+GP}X={iZ?0Q=JgpS+1D%N;6VMc^@EC#VwqYZ_YxO;V6 zGvcDlgcwt+JjfIY%)_%^M4ye2u2G`QPNK{Zqf?1~eTx0#`h6m=9z9zRD(Shs9Q_$o zE_FQ%{33x|JpU@$&O}IeZKBLhqRbGZQ)N4H7<){P7Gc}x4PQI*aa-z`*~nq6?lPEL9=uac|52GRv z#oi-gf7Hi_kz$9H3P+25h{8RJ>Pirsal!1v#H<5Gv^@p#L;^W@UMgZwMhNp5icOT+ zNt794bSklJt97B013O}h6g7NXtf+@W64$v(M#T%uA|w&IP;DE=Q&!! zEMy%CWZ*eVBy=Ez?FLFnl-Ws?8DjLAB;0U76pA-XeCLv2SMOJiUtY!xh+Q2eA);Yd zM@o3PEnyn6jsy%mmy3i$*rL>ZoG7!CC^N+9R1#+Umce9m4`GA!Zb$ST%mbu$29X3O z#qqpXIQJu@S2skNokW=-MyKY?-$aq~RL!~8=G=!Qk${EgI^lc@A>GS}GCPSfLyS(% znZL0j=L6Ee9MNo>a}Sb40>|;(Ae@gPgefZPizu^`C^N+9)SOE+=L*gF``7^$Z5%<8 zNT3_fpm08nkY1}2Wp)x}h8UfSb44UQPtR3Sn5OsMkoKWXQ}iu?I%t|wydk?op*8W4 zYFZt9ffk)$OM3`nL;?r#d_tt<&bJ;`h%!5gGDD0`C2h8tD{6SalAa%Z84GC9!y8Bv z3GBu58R7g2LYgyCW+zc*h|#Gy&(LCfyQGYxZHJgVmz~=lu!#hAPom6D zqRbGZQ{|Q|_KW41smsxeI+JqjM3P8g2cEA9=j{k-&P17=M42H*r{Zjv<5^W1qst*S zu*uGC8`wkwTk$+3xwRvt4Kz_^CsAgI(W!E?_xY|>xnbj9&wbIfjpzl)C1EP;uru8P zZjnG6o*zi2tqAE3OqAJ4lo?`ls!Z)E*XwVp=Ex1b=nL4v5&bnI6?Q7|>=ou45z=;t zD6^9&GsNgKF<-5j%XZ*$o4FsUB7r(Q2ZebRLRcTM8xv)A5@m)MeJ19HX1;`d;}6)= z7s-7{6$zB%dCn~yEY~2U>w+k=lPEL9=v2(@n(yd5O$#=dTZ^6BeP9y_l;G)<+=>v= zV;oUtCsAgI(Pzr-hR)OE=45W!c5ZI4i3FD6sV2fp5Yp2oqRdXB%n+kfY!hX65@m)MeJ19Wn)xy^=as&~d^S==0<-X3B+PRW z(kmFE%ub@r5TjEuw`*mBVm`V*Ix&Jqf2ZG(1!jUxBrqM%yCt`22u)QDj3~2{C^N+9 zGv)TR@1Letb}+X`?A)AS6A4Vg^Fhfi2O({1h%!5gGDD0$Q*PItF1I}9Hqp*)GT1}{ zS$MWdZW##SRRB8=QD!GmW{A;e%I(1Grzu+(bL#*@sW%7MVCxUhu;gYSq;n(6>?Fzz zF*-$V{`-Z=&=8pn;`zET;dxrU=RuU&Nt794bSfqn$}jD(TERP7UpF|ot$>mqQ&_xU z!Vz}0>z=t+$|TEb#;R4xU%o4`c=M}Y0pj&P#F7{P`UJpu>~6dIP-Y|g9v*nLS9uFx z2+w~_lIjz!aiZ^tdivicshn{renS%u4)ZV@?w8k+e!MZ%j_iT zkj0?&2b?;gTcpI5l%Xcw_df8k%#dz zpWHZ%zr+K1_XD=~)JGm6ydr^%b&C_fIK2w?Zp3jt9#iBjRg`=$24m|ZygiV2h-UT_ z)Xp7qx*xtgl3t=UE0{cJ)a{$cipo>P>RqWwP!j#i1tHXjaP!DMXY|q4ybMfhF3@#9 zjlY>C%V!l!ITi@~g(=cG)T_qq>8wY-FvD5xj&f)m3oSrl2J!1nbxgMkKqP%5qeMC) z!-oj&4|7Y6X-~1$^3hQ)eL%Pnj&WhH2=mcV#YUe#NF?}$x&LxnF^R-cL5Qg&OYB#Z zM?`gyOwL4#dfNb56P;*4_*pRJF|)Zkpdm^31)wOrY*$BB3aob*kj$w%D%+QoJU$|} zgZ$)QPE2j3IN9922`@n@Q1Tef)Xl(!xebQ8TCO;S4G_gN-~;YNx{xtwr#!jugrwC; zh)Ou-+_4d`^>282ZvFNM8Wvwh@cT9oP&(fZYQ)-STURl-Sv0uwmG$G#QhJeC_igLD|H0E-efk_&?+Rou zKdtFAaWXTJWsS`e7c$@%JG_#iSG7>oy1K<+z>2=8WK=(2!Xdc?b|CvY44>hzwSK~) z_VL%TO58~{??Lj$ST<-q8RPvK#QAv2p3ylkNd{uW2d#%xb|63rDN)mVarA(7uZ@QJ z@3%NKqYXjplDglTr_c~lYtqM@z5xYteESHB(d4{dBPZh8PNnzGL+X%gx7&JmQ0E1C zhbqwu5%-J|4@EsDnG9JsDKR(RQcd#={kM7`W z@<=*g&@+2E#V&92!N=kEm?>qy@$yPRWDWX?TV?>jd_y1gsMc8!v|N zOo-eekvs7;vpKxQI_roL4+oXW+&;-K{nq*ztu(pe+@OXP9ub6kkBE8)tS41##&6w3 zQ3KYCyOla|?M-IuQ&?A{x+|}Ra*k3t?MjV|`wR!iTM@T89>)Q53gdk7xLDevc$@=t z`J~H>$HnMosyG=`p{Mhi*%TzWiwQCnvUf6LFGg$wWB;N`!MI6?dy;X#R&n|V4OuWF z!s!CwzfSyrD!k$}8L_W3_NAm${1u0!It%z85wG>td!y#dpKS=m*`WA2DXJ6svY;m! zyGrv_mXixvcY*J>z(8i}9*tz{GP8Yn0{K50d5cD}DXL#p0XZ>GrF3c}U)*zK_f6M` zvlW6GVWrGNwDnWfD;W1##MLqGt$19l0$xyYVKysa`lM$19gW~PCx{M>(EaU1I-B{4 z^llgI`#Z;)K3r?MK71u(E%rr^Ra@_`K6R}6Lo@%>iS$8~v@DN`X~X&Dgj&c~ z=8kb}9hnPI3v=Rev0Au7#f7Wvs?7l=EmjT%ntl#bkv}MTNcvQp*>Qi&bcmij$>^DEowFdapvD z#lp&e3T5XASt?~`rNl^!O^JyYuwTpaqZimzplpslpF);xDfv>_?I|&or7a~UF3XgK zs-Z7ZvdG*}6qc_MR|z8PM0(z*6LNOS3@K!8N(_bM8<{hi8=sctxo>HOb$vQn_NL@Z zS@xvFP!_&>Ig>2yT9!#lmLzj?@|)84ZFAEJQtJotxLE6aEgpA1TJhVY`+7X?Ld2b5 z+!M)hA2aTucpL}PiHi`oHXg^pW;){v;&HJ-X?{G8L-XyVyDALCl}sfR&XH; z#LPTQ@RwauNLe8Z1uue=VL2NlevZkKWl&4a zQsoeDXnc{zYpGePYl!dpcTr65EREMvlfR4jE{zwdX}#`Y?6*{`TqI~qO+{=ZGNh17 zYQ6@GNzMB`+euQXx%!1eOlr2FZxVlp#usV4mii*#4-kKq#?R7tEj9U{B!0Zci`17Q zc95|H-;lD(rH8iE%<>{kGpzR%Qc2BMY%!^s>nxJIqDas}6kh9^lgt&wZ`JrBjn`6h zYPz0yzsAqfcr7*gw-H~Y@gnu*h~3H9`6`ypc`V`%G43iACo}RvYx7PimwJ82^+o*d z0R1bW%vOG9L&zPL_bORmae?^?SIb2|c(4*_0M$3NlTZ>3{TM(qG{Eyp{j0U;H(n0henNZewYtmFo=#cJjj6s%Yx zexO6j#rM(iyX!9fyl|A)(TVX_+VS|YpN_Y$MTp&jI_`O4h{f%2W*`8Wg_NbiB>l1& zfRf<8s;}FbCzUtxQa)tE!V7sx0{IAy+@er=8OfgC!#Z56O5a=e={M?F4@1F))9}O( zCDm%$ZT&7RlJfUkLqWH?gm1{Y4J$Kf9tFcDGFQ@WE8}{JviDE<^RdjR8PsJ0zy5;C}+efGSSnUPd>99R7=^9s>*yh?85RAMzjJ7lMJshnt{w@F#g6WtA1lb+R`K-VW~OI^6jnwBiqd`(dl zLwo(f#~2@fNg+3v%+z^jw*HCrG+~$4K|3|g+lVU9T3KN2SG!*Nmd4E1?}8Q?_#C&P zt9)N~uBqHW;cvxU78*Z(xYK9-cDgjb;C@6DhFm?^-Z|yI3l~`6x6(6+;#D4IG0p@! zg6(a{(Jbzf@D>Rpz9;jg{n$y9(kzU3C6KfANm7!8GH5VhF?3snQ4B_cKOg$jPSI7L z^_zbaP4x0DhVKH3ou~bjDNQ@9cRz`1TJ?*}R=x^sY08qO=SXKO z=j}#(-P6*A?Xlys@6=Z9~OqypaqH=PFc6w-S@cOF0D}%)^C8oI$y{v zYl*TgfbhcQVx_uJ;5hbO-SF@djUHae(SvH-)_aOZ^l^i|)SC`9V;`aOU8GxU2Iz4& zA#fOhW8dcU{nZ1cB`61#26yxK{Qx= zwrt$V!iIok*ux$1J>HkhcyD z9eW3v=u&BqEFKrDnIPUfUzLJMMfX|jbusnZ4VYYX8+5oVXeGmX1x*mukziKT%V0Hr zV=5)3#(2M7O^Gn5ryJ6WphiRoRCGdPgISQCiH&}_r6R-f|4s7XVMQ5UVP#Np8b};# zn^m0?=SE#xFh9s1hM`sMl50qaCN@JNXr%U$x+IOyT=N!Qc*3CMhF=881y{6j zyt)A92uyhe1uxRTEfh!fMHFMD9p*Bj${kH=>a;{w>b54fjFpA%yR3<#XN(E+FYx(vh_2UZ=xJ885vGEmds{1Yq&u~wL+;=h1 zdnHEl*tP32*X4v1OsemVZJTo*WM=FU8B; za<$n@E8TPolRn;HYpuSN1BzuPy?aI`_9=qr(M4?0`|$Q4)m0sXy_@h`a*B?*qrMiO zlSo|#i)9#6w|J}D0DE!MH!pU90O2~(tDyu~Gkv3OK3#+5$`Ghu_=`!>HV zwSLMvf2$z$Yhn$97v+*iA>2+Bja`tU{r^%k?lT?`-9*E@lx6!~C@bCKBp8 zX*Hk21=FXHLQ>9kSxs>sn5Yd1wipM4Iq0G?KtcHdZ4s!C7d-YLX!KSh0F`38!d?`7 zjN}sT3qD5T_g$7UN++YTTNZm68kKQB4jyYdi9Pv~vL}E1SoQJuS06oAebOw(PjoON zQr#FIGNBZCzA@oLtg${|-vhr$f zKYD@Or0*VsK+uhn461^MR7^WdHJlHH400AjeIn;EY&VIoVjn{@vTM!0PYAWc?umZi ztF9s9tS0g1WZXN&mlpQRWAqgJm_k;#T{^bh64gBecVHIx-68iaXTH>ppPJ0zHQ{~I zwfe?9j9U~^VT&yegcjsCPG={gyd(id6K>typTPB0$XT+oHEf~X^qwnG<8U7YiY_-R zrMOFHGL%Top9y~owIK8TE6zl=(2)na;rxNq5~Yoi4)IfEHDl%}bIaA}k!qZ2>GQLF zH19znIsV?L4%Mj$8uvoCwe_E+$D!z0vSP8=1=@LVy;yo_P}+F>7=<*zAf^v;j6xb< z+L*2xY?eU|2o8NIK0@gn-enYVTjo=e5$W3)%|N>ykZgmlcDeo?Pxe<31Z@J%2nOIt zyRhMirb~v~5~qh;N8Hvo)sP{GSC9k7&uan1({4*jOA?iKx7(^#X~E}vP#@;Z+hlRK z&A!4#vTNIcBphj(9foyWnun#&PJCab-U$TGRzN1IU{~TAKow*ck|s!&+4@aH;I+8U zZmVRsH95PTvFvuM>~)o0~@MR-WtBiyNY zhFo1*;ph~&qNmwjyyGn`aFTSaofI>(kZY^Nom9Pqa~@mfY5{Z=3DGenPAt!*cAnc* zo^pQ!v+dlBCYF@*Het|aGmxCyC9YiOTnzoT&)NSl4D?n^oVb+$rNati7ACXAJRj|H zmsn;Cb3J_MWiuzSD(GK<>*J9W99(9xMKguLKpA72T9{(mT5XZ_p{O<>MAgt|Nc3r4 z^w;6xXcIeLIHvMs_XRugjVglJ{sNUf;)sE;$=vyH87 zFVC7F{}XBx3Po&dW6U?!uhjKq5V zKs#mNauHe#E(hjIp`55{StMmxO{%Vig=*B9t^WyfiAZcDuP7T7Yb4Wbb=Zx>4=so~ z7)a4b$`k`KPSW$8cH^-{`tb31so01AeyM!IBB50Ou4-Mkfu%}K_8Lg$;JhX`H_R_; znc3U%1Syvc_&0`^F5|lt1=e*^#N3W{;KO`iusPqCi*1BTzb_A-ZzXqbt^!%ab>t3+ zs_&8(Vhq0FEl7mH9@hum1Imc2yA+<8eT1vf3Eg~7C13LfEkek37~S~@E_f`!^^v?l z(wd@#5SF&6+|xXziWt9z8U)m$Iv zt$k7nE=+Re{=dw?eAok-*U9-f)ig5$?}JP;#(Z1pu7~M+RQjF{QEF1w=t`tGr6^8y zh%&XJdh=~DCreSxY!R_r*z`^clQtGdAX)VIlp6+0i{AKc(M4!7KDC4dtil7a7)pnj z#MV~GhBi}MFWo$3S9^1`4h__*N{%C)vw6N56Cv~+SL$;$llg`hT{CVYwXJ(4Gh4&y!d_*PiS4?b^nk9x^RC|HS*~-C>=91Aq!x&47Tt%S;!Kbxa3o56$ zt>{0ADCm{Hjy}h=cJWq8&kweQSWQaBeO#*H1gVVPvJb~$xpAJVyomBJX~bR~+GW34 zf+3$*eB0K|u}W>L+#?;x8T|sXlBFCjee2_vh0HT>(p`M1V+nEp1uMSB$D(6caGJDF zT_rKIUMQ9e^>d#THWy9Fu8-lyQ*P^N)vJ@@{-E>{eH^mHb>e?m>%;2BwUL%-a7R)! zp|*f5t1yj|>a5=4mL^Mj2Sz+>$TYLgDzhr;zobg)v-W)4Sbr&qN~4%SQ0*?NL|^5;B#|;9du&w2t7yG%2QKy&`*0coExpk&dZ)R8(y<f6O#Q*1KJ)Sah^^pzGHyIjJf&hi4A>e@#riZg5oZlKSWgMeGjw4v zzqH&|ADS#WKnFVjyRSWZV%lMw$#Zo7k@}9?HB0OowxR8Gde&y!wZ~e>*=bGsOKggP z4%er;N|Hh5G-6h>$dN1p5$`L7qr%zwaM_LBMWu)4a4jyoWqQn&tyF`jV$_c3pf!*# zU0e;y@i`3#fNPa7!UOHgZJqasNDSfhnSuMEYTm)^A8#EVK!yJiJMz$uw7-+sQ9y5u*Z-&{g*60MWW#t%Szvwb zVUp)|aA=hAQCdR@TSKX2uZtg%Eb*ynFkxXddVj{Pdh`U{V~)2xG5>^FD30^H6C>AWxjmG(|%s1jWX@i$!Y&8Y1?($H<*@>c-m`J z+MFdwdpFWrRi7Yps>sY{>C}kLdFD!MlQLaW>O{?kRk2`!_0+|KAIMw^b&8z$$Q7=# zbpq5^&`NrI=SrwYed)@~mZo4&6u5sV_L)m#>uiz0Y1gqe5yEOfF1m(^xCSMu%vYtl znWbt$Q={R_bMjpSKSRZ7P{^o{kG^==lDX{c|0EGn~=@3q(o$8r+#Buo`r zD{X-GSIhl zO_65kBkgY<8o`EhP2U!xeyC8kF7!O;J)p2lA${VvBx^-(B86Tp@(m{K;}j(_dZ2zc zIo)*S(4N5v;B^x;HHGgQXeL?Q;l?TIqhS0vnEEgnSNYsC!Tu6nR~J}Ui9ncPt2dB% z3DrN>mBnrPzPYZ+jc0=|+8uVdr`Wf&BOunG8%rMOHN zX*wz-M?rElfrLCxS8nb;DEZGfNXb#*Q1EbL&Tu2nb!I7z zT3)nnZqoB$QVuVa7sX{hoiGPRLPWE@j7-e?l8`uFzqo=0Z+lT?V?pb%?oqpxcJq;M zKC92mv0OBmvqw-gGdcQ0hNQn}1a`Mz(X`0?Z)(>i#(WEq>T^Br%CY=#koA5NMUMUT zrBLwz(Qa!sY>{+1KfkUH?O|HYIj|AU!!z6lhWtWwWt!yoO(hJPt^LzSej8a{?c&?p z@+~2}J)WExcON)l<)xw4`TR4D!darpF17Dw8`Z=Q4%#0Bmz>Pk^cj|J94 zia6H(^MoHyTi6sOBPiH6<2)`!_q*}$QcPA9I0Z67q%1wdwQn(42xUlTP)i8>*gh#@ zNFrbvF%uLNKU;sk*h<$Bx}G|9F@V_3ufeG6QY{Jg;Er)@9Ds96S0?`Nv(ixGGY$s5 zUAPWD7J(t2x5M-6kEv)6nz+#2PK?Xl0m{k3RJ4cW?sc6}&_xgfmVRdr_Nd0*br>j`1kY;Ae6u;(z4MFc2R(m2=<=sWGqIvV zBz|Ox>BY%+POKh0;j)h7PJ9}gQ#i7iaD*))W3yAp2Zj7NKY0{8QODO)3FK|{G-XcV zba=S&&~T%A^7;=IPJXYY;_>?xF>ZND*>rr#~sOV)G3HF(^6NKW9X9Ae@y z>lnbClJmy-JiPE~Imld(b{+Sgp;-U%MJblfPi4xS?a(pY)Njjr><2o}WG^xAm{1Pu z>?9G+P~>Yyi*V?;7d1C{tmoJd6S99NNeibJf@65FK@`yYIjOKC!;Rf?;tuET*bL-F zqeZ#}qVHV0HOgcM)11jxK}%0%!tN#)L&q=s>*YI zqJjo3t0oQ&Se2rD^>us6x!-O5i;7e0TJ=p%nSAHKjLO04ygGz1rNMfnPV#UJcO!#d z`-t}sFn-EZ*dfbxhnXX^8Tc9<)8N>)ItFPUeUw;~{b<4&NF0CUhbIm7B`#D)kM)U^ zBUh-=|C7GUS-@GssPA$n?LJ`yPdFu`4{#;icJZFgBJqe-k5qVq60m^s!#biENx#x~ zK-T~eavTSxggWu6WUbl>mZLL4H)YUALq!q$2=i#DBYrfLtUvX+&<~|HMJFoX__8ib{^4~70vH4P|JRX$t#ig@ki`B7TT+rY{nBaph5YVWuHtt#G_`mCv{ zRf8UMk)E}bHK8c&daz?T0(^R{U5WXIt+h4g#&YmHkyk>_OWbBj z5d-dJX5NxiT1!`kKx^$iRoJAyt_%)$LNG6uW2`i)ZtL6%X|L>!`~?|pXOC=8rfI`| zx`aRRjY|0MDH6ggCEcL&%ak@n^fwt@Yl;e?AZ{y5iH4X+-eh(jS@mLLL+x#>J`nPM z&IrA6B~j{Yj?z;fJ@6{NN(2tpOY86v&+m6*$sB6ob4Fy}@Yukxf7*3_=4h~Z8frKL z9<5CO z-R8I!OlSs5?p@uk_h0ZTE6t*O_da^S38}0jsHnT|edhq)+u>aPSYuIbV^z7crq=JQ zt@GA6%PSh{s!BIqgWuU1#zWssbG*GP&Cvt*S2!==OW?|GHjKuG(skaOo&Jg%|Mkv$ zuP$5doL5#`v$kTLXKh85cfO?G`yXkJ<8b3%PVENIfJ;pCi|?dP|DTBWloYI3QRL2F z;PxzCYhFknpahg-aJMb9t68$dA`X5>QxFP#mXUx@g66CD@{6D+*(E zTU>P8Y)DR-0I&zSEL!4XRX~@XWee_3s$MWhm4gyef>LGeDWqs@sD>wh zMbXmR$YjaVNbT%D{;U?wZ$aERaDanlb2aF95*r=Y`yqek?uTfT2 z+u+6BTkFA;Z2daH zc*<(4YU^#R0_sX@yj7lRF!ckapoWTvygFE2TEDKMMgw)F<>eJM>ujjDp~7ELTLa1J zj4JP1zfoVY&gVDQ*4Fqv6t8xJrc98aqTKLTRC}-UtgWrDF7*p=eIh_iO*|e!6u)e} z#A^9fge{DMMr2Xiu>OJ4dK3#fs&1_ES9r?34eKeWg6#78HKEPShDWpW_`Mq;7U)IW zDpcmJ@q6o`aEVvymS7@3T_C0u)hN9SS!tQS;z94I=oGnY%4AG+ZDWJiQ(aMBj)tKC zRRt>CP*z`CRpn_!p@mSxsFxb4Bvn&N9FeTFs?JxcVs(CrNF}SH(e1=nyTMb6ENtbf zXr%`g_IagEC?GEV=!TKVS2tf3C5lQ&IRZxh6gp9zapFYeXr{JKRcA@TC$SeLW?*+S z!&qALU};rFIYw#rgqxk0UD0saOlMhbeZ9BL@7z?|SPy{Xuao1i48Q2zcju`AdP8Y_ z4f>PwW@lMx4F~(R?7z;M#_9*W_0HP0POVop?yEEnRbFqMvlL_-N-O+M-H@GElnarf z@z&SZ)`M$>md++(zXn;+g37vewviEE$x~m3?udzlQLlXD5RB@ZJ7KhooG|mZExp}&+tOt&#QkqrTs@vl+zXbwmW|hqiJjefi?ab5 zt@7GUas)ET7Q}I4{E+rKJE~6GHpD$p>-X1IkFa@&r!jHT?2R{^((B+Wdtfu6x zGZ>NQ->)sq#unX)j+Z!uQ`1Xsz9JvW)&sj}zoE3I0euInnAtjkJMd&A35f;;?~Na^QIfv^Yd2}7rLCB`mb2-#DBJ<@p_z710s@e_B1LItQ$ths@c^j zVm+}M6)&?d2%0zoBSXc-o{rh6#5#-+$Bs*q#*R!D#*Q5!iyf^+Nf`c5D@bfYFhZEb z_#}Z65y?U&Vnzs-h)UK|A||z}GzF(9sb$odR8neGN;x$ywWJ!EQr0A<@ruRhlkj(U zo&cDyv)?&kjW8*)2XBtU>uPE-OB`<$*Z3>^RhTcX^ZJFEv#!dE>2(ZzumTfS`w#re z>b<3Yug8aB8MFBsqhV8nzrJ+SwdI%+d+V<$Gh!GOV=NYgq0?2DR@5*ZN?~lME=3aO z=FRApTpc*)J97>4eBr`$2i**u!e&k!w&Uqvk|O@Epf7Q{3JO*fIG3*|f^}T% zRO{JG$IEiXgJnZZa#leD1m{9vQ=QjXU+(o(VEi>acP_>P5gP@CcNZ49@;yZb3+~pd z_`+CfP$MnVXia$P>M;%*HPELnbAz`Eb1%%s?1I}m0}axW5+tHchE?7p^DVrhJVsf{ z;eV85E8L4#EOrS|ZCx3r9v-2~U$9(u7Rb7~vbcsR?S(6cIT~j7NPAqV+wYvmW3Im zC=wOxsrOdbK8R&0=-9N3C(X)VeM_`RC38Qk4_O$wE7Kj^yLKWm-?i~`W*5NaJd@^N*nrP(Lh&UwzYm6N`Q^si?rmufl(Ckw z^~3+pzorrOzy6zyS8H~nhf$U%;GTnf5$;X6ci~RLeFXOj+3B;!o3T367D0oPvFiABR$+TaP#4o z!`%;81NSi86L8PLy$JUv+`Dim;XZ=<1n#`ABR$+TaP#4o!`%;81NSi86L8PLy$JUv z+`Dim;XZ=<1n#^Jq=&l(Za&;{xclL1;2ws10`57u7vbK7dl&8`+(&Sqz@4`f>Hlwe zXYU$C5XRvt6s{0Sam5uW)!!I%ppC(K^~d zn`j&Dpgr^*{Y1af=`H#rkET%v&7(eAM;mApZ6jM3r&uFeXHxhu#q7+?jc8)FbN_sF z)nE2koI9rGlILeo|6=~O5~^C;sNGxeGrKH17w``j}}}+quO=dfhMuHy##+s1f&py!mVM zWux}jDsBgAO(ni`bjpyjk_r7dXCv`zc%F=%}B8EZ7_(qnd_aN*} zchHqX;C6>0>5@*3vO&)Vjcz&w(orv_L6-|S7irTu0n^#EmB05@0i5t>$G@_+`o1e` zt1hptuJ^CIqPgLUt5sYiExO;jyhP$s55^(B4K4)7zYTEAixA0g-3wO$cQf23xU=Ezhg%NU4#&R*aC6}r;8ww10#^(7DBNRkHE=h; zZGofKm2mgL@y`#3tjS+c`}CR;!l&tQKKvHAg&L;U3U?vg<#1c!J_pCY%i!*kQ2ddj zgO6yRcH^H*d9i1)4mHECg1ZN9BiyNQv*Gy1y2n2s+`|$wjHU2b!YzV(5bk!kBDe~; zOt?GXro%k|$GokxodtKi zze&d^u1P6ddVJU3uBp z5MHMBo2%j1b$pvYs4Mc#nm*|S1n|eciScjH@@8tdN5`ivNxwFOSHUmbbeW%82=g#Z`1IDTHXVizfHrXnqD%F|4%x-)tdhk&Hr5uk7@cz z8s4Vu!Ty=)Ptz6js~Vo6;eTlOY7HONuwSRo{*>{(Iz6|Re~TR-9Tn+c)#ZJbrvFIu z-=yQ84Y(inWwcX`Q;eT!x?O*Yw7jX>o@axPf4|rA?uXC6LO7=Ptj^ybHQX^y-zqJS z;{^FP==ki%2!BiSKcnGh&3~FsZ;R&thlane^JmBByo7(2rn6r2@5^wM|A>~y{)O-s z&Cl_Q@Y8Vo`w|@CJ)oBt+4ecp_&3dei>7bY@^)x=uBKnD;Wx+S|7)7xF8|%yUSHAt zuj~A5*7|p8dX9#_spE5uq<&ZE^j<1Dj|A?0NgywhY_?tESf#!cv^S`F)cWU@&yc5`m8tnV?Ag5VXg1` z8vdP5&zApJ4ga^Mf28BD((s%;v_1uzKTX4Bn(or+ zuhsM~YB*zDc`wrGAJ+6mTK{`A{E&|SBMqh$dTpReutJLs&4dEH`FK6Bwm@n zv8ux7DXXnm-{AKdWo2vYz}4)lX!4bn8D+OUSXSs+TixvQG%c#FXm0j2Lw>`3HJ(ae znZLftvqq<*WHoym9P0;{EcP8V4EO?sT=CZSzW(YTS+If7RoeMuk+NF zHCJ!2Ei-}US?7Zqw6{{W)>FS0Hkgnt9~dWM$7=&I_xY=9tIA+qPklw*xMXP`Pi<{= z<3x=}Qszg6lM+%3cU4%ZTPTk82ISUP>oRFV&ZN{(E~Sea8rLsCd25;~dJU|D#Ik08 z)0&D(PgxR$A}ak&s%%RaNqxC>kx^Q-zP?gNre4hr{w73iT6>=@-M9zcoCwxX8FJubMOv#W_~lo}o0KYoCJ(Edu+%kF`D;Ci zEHrGH59T1fs#X~Z!P2X)V)$B>vQb(95vx$g8XiLWwVsM58z}NMGO!PV{J@@6{ymStD759|6pFETcFddW{kzEcx|zZY8#q8$=pg|W~$J`%44%GN43e3Qa+cVBa9LDqX@V z4m+UAhT4XvGF0R0HPxP`GGE1gwJ2~!XVW?!JyEjou`#KriKMEgiiarHCaGRuDeP~C zWy&!0q|!DyZ5#S*d%pY8+tS9(>oIWFL7VzD)yQmhQ$lZEfsR6P`J0igI1f8~UsI*G zp{~&m`qv_a5we0kOhcL9w`ML$GKSUryvmHwsZw<`WlL8;1gc&cL{}M}b?DYmq)LFX z20co>(TuSW8EuwEXVl#f<&28^8k)cO6IjYXH^I=p$6wxZYS($xgyhV>-oDR`?9iE1K29@{^nYbr_osRP*b(fW1z$; zFsOQbOs-)~6*{5{UqiJa`icr-k0xV{9&gKFM3OgBR1agc!u|FU}K($V+@OjdXk0Pf_{Q zlR=>|Mm&xkQoM=Mlyn^>7E=XOEb5y4rzDdarzu|bw7C_PDP&>BnWfRER##(dc8W0* zb8q6Z1fFbM0hoWYSEf5oz+{%|u=IR2-%rN^V?OXFLS#ODB(#`5vb=;o)>+HwW4`OA zk9BP^eayE@=_CEs^f}+BkEw4J{gbgrLO%oh@bsZsBmGmbUrj#~ds6hF=tladV$X^` z^lPV&P0!8rbFimQ{|ubP&_B~Kw$VQe>nHkHFz%p#j$!Pij}6sl=woAI7ky0dpQn!v z!QJ$o*ju1~KK91wUtk!o(7(_yy6MlvTAcnxhH-%Y#fEW^{v}ug($6)FL-c1E#$o!G z8b&Yu%W(EXe>T>>^e@L=2>mM!V~{?o@(_J2P=@JWZ5Si;KWiAH^yi>}3gKfzE{#4G ziVphM8Ab+uYz$@5$AT!EJ~mRO)5pf-4Epm8!%6=}oT1Ra346TsvEewI{sQdp(qD*k z1Nw__UP6B{%AdXqlt2AjQU3Iop#14CMfuae4dqWC3(r#e%TWIG3sC;_vB6qJ ze+9~)z8mFFe+Yf%35???I5uSNOOuS5CMZ$SCeZ$$aie*ooAzX|0}zZvCE--q(2???I5e-PzQ ze;vvn?efI+D1Z7JQ2z8khw`W2g7T;TFv_3)CX_$@R+K;eM^OIsA4U1oZ$tUhZ%6sl z51{<%e;(ye|1p$5{mm$U`azUG{Vgbe`de{M7W{ot+hCdn&5XMrc|B_nj)=ZAIyN>I z_=PXsx?&P?_>u#U{4b*}-2LY3W7o_{+WxDho3UPqWE86Elu5EpGE z+)B7l;8wz$3HJ!xPPl_`x4@eTZzsH4;H`vr65c6r2jN|WI|SZFcsJozfwvRhOSn(rG)bY9wb~&*eUQ3VK3n;3b5o6W%TGGQv*6I|X(V&L!L- za53RL!mR?A5}r%AQQ*~t^9h#=TuyiiVYk3lgx!Sm1@;myC7dU4E#Y#)PJtT?7Pr*bsOfVIF}+hdz<^Pq>wEpTMnzHxup=xSenZ;ckI96W&gEx4>Ho?bI zdj#f8!<$988!*O=*xyxuyf^rpw*Db^aiKR0=cHaI9xLzg9(p0oVRgdT!yQR~n5(o6 zI$Ce^LZacz7?{!4o!03FF!qZuJu@rt3;)0y>7-A3^YsqJAI`$HsX({yG>(}D0w+b% zW)e5nqj*f0qcg8K-Eq(BDgx5*W1I;mHfk3hHo{BSwc zch^j>ndG%l3f3I-b&_+&h+yEeF3d0tVK-Yb-!wW8+R@F;m`566!ok;qJ^T75Pr@TD zls3uCcXaOmG;A|Fdp-?YZf8H(tUt9P`2z^;E&pB`Gv&5i7@DB2=-0UsSqbx@HItwy zokBk!nP~-)^Iv~ea+r=FY7+z>FQa+Fy*szErc%j!Bce{t2rV=rNF!j9#gf(0Q63 zb|VQ?uyez#rnXHSFvnz74Wr+Lw&CgE3c5xH@=Vu=X#`!vCjRrwq1&cx2HoX?$OxrP z2CgNOZ24)3(bh6z_}}8wce}8xqnPWpm{HR;s>PhgAjJTo#cZ4ksIweN4~!GoJwe-I zRkAu;xe?c3y0U-J)!Ww6JH>Y~pPL+bPWELD%z>Zgn}KJ#&pB{$cqTF*bPW#72T!8PQ&v#n(?-CrcBY*YkYYXMfOC~Hk+)0_92|I8#d z)XZM2Yr&O}+_)T}6Qgh%`dSp4KhwHqKGx3LvA-29BEisv3#?1gOr#I9 zjgr}Z6*#O~@?JvTQq7xfeI5HDk@UGJHA&(mQnNI*!I}(7tOA1>WBy@l_)aMU-7V40%Sxu7@NR2ZD8(vE$wm<5bM4_i%m2%5}luU*g}&gW0$U7;Vw}_?LQq_ zrP^W#CtGKD7<+0EsQU!pO6elJy5VeZg|?cpa-A^Fd))^GhZDw^FD?^;unk+=vDcTR zpn1<|tf^#4m{hr~Q+F;#4yIn%*0s|P(Fnz*rk%18GMhMhpoa}91p zlOE|L-JB**;T3AoWd(bl{HO)b;9IjWr4Y7AdX;Vg@jCV9>!D>c(=de`dtelkw^er( zt$buKSL#`scg8gsJRe9KyUO}VX%%$!TW6ug4ybyI!ks>$0%r_M1`;Z;s}Dvq+FJU@ zP&2DgtzjATh}e4-JNLD<^cjAK^#`={pi4m)>)DhOvneOEu>PQGjrDjoVqp?C$?_o` zYs&R#@$X=_95^p?XD!9nAH=G{&&QC_tD7wh?6$7_izqiBH$IIYI-ysnYZSXOqaS`N zSYQQP22EFQ@U?v(q{DCP`%LDy+Mggf5*WeL89vd71cnh}hRl-Qg-A9e2uu`FfC2KN z5lDrCXKQnMMNv@q{$qr6Y3$3?RKNRIPQnO^IS+IkggK32;-PRZMB;jPzrVX;T zoNM73-i?9?z7~F-Uf>Xuxn_ja8`*tJsRjdmK#ShNKtF;=ZDmp6*h}PQe(zW{_7Yjf zULw`H;7>Geo|3%J%%SM;Gk8qu4!%9>_26NhP7ZPAxx-BD8kyAGIK(tL!3qW}l@R5x zw38|v{4IG$dmUPHCGw-#`_B%1>)?>qDKL)W5sdkwO z(@{ZeRaF9I6}S@#45VA!1u}EEpb0)PNNu|KoSNBwA|xsx(|588O!iG4IL-PP=Q6T5 z3I=*9V`iAW5sQBtm6)S|z++qm>_UGTZ9&Ks-jHYL&b#j|yC+mJD(fwK4W+9~T8-h| zbqy94RU1O%KNe!2CT1iP zGq0sWuWKR)(gd*=2=Q4>%uXg=E5x8CPERJT5Mr$+&PXQK2yulbI+KZ;gm|?k&P*n5 z7h;Yk<|Y&O2ysMeZdT{)WMYpH-_^vtWMWi^Ki0%K$;7nlXrZts&P^tMMu_d2I6s+q zy%5)GB8R{P+ukO`+cc3wbpo+Sh?i^Pl4N3q5VJIKSu*iKA$}+=E34C;Oxz;GUuj}- zGVyCd{Gldt!j+)V3qstXiRH<}{X*QNiJY$_#QeDs@6*JpWa9fmbZH`|90@T8g_x^} zwaLVP2=Qc1Y)mFjoy#Ko)1Yb&zGR}(_UEaI7fQ@Mnz$}G<`qKxvLv=3DgRb3J{{~%qBCfqokW3e* zGq0Gg?4YYV;@S@kA{|iPL3(D6theGty1BiMvlX`M4blQ?zaSh(>h0|G{r zH>f;IdHwX-S{#P|q=>7Rz`%WKdK+@}yF)GuZV+w=ZrDBM&qDu(0c2B+G3Lkg+fiuM z{(;Hm*~<;AI{PutI1`>;zVu7CebMiwpfCl(5Rbt+uHGOa$cp1lS<*PLH+&i=VFj+|A{5T8reu>>lxw-;I zw}Z#bAqI7UyJi`a&61H|&!lc{qD`K{ZIHC>!AZyGS!3p(usygS?f6{Sjsp|cYsX6t zqNai?W6U)oy5Ha$$$b1S&hgX&^ZwsTCWOXW$K%L=GMY5wgzTd0xWI)0`%=z;i{;HL@1IQ8f-s*HKqxT8&1s%KA^SMV{W_ z85%g7TN|AAyRAELdjL}yBDhU4)YdX&`1_7C4Mm4>+&L%~AzY7f0_yLD7My+h`>cgp z1-tcH|EBsNwVGm)ggnEX%W*dnE2&2Y*}2+-leZlGIeIv^^+}%?3A%I5H^@AW3DxQo zfli$VA2#6z&5|K=8iy+LTn>_^^d0U(#KBw~;_k3MC+*HDwQI=gdS8_QCqY;SqQ^CJ zI0;i7L(L?n=B!CWFW^{d<*TTnmc64dQ~$jgcm($adp`VDI3JVNwmuf~Y%_;N7G44j zwhu9ggt>wUx(=H;vXtONUkJSemyYM%uX+2%^Y({ad(9k(MV`Gw6&X|((ss$D+-Y_SfLD#PE4Dp{2JH_7}=ClVxX2`Y6%;DrI zSu1U@Or2n$9O3uRJ!w+|c6(wyg`P~@y&vY8cLtV*bpr4s!@Ji=s@;-ZNW&_u_} z$ajRYC&{94)@vdz`14u&f(Jz6z|9l+Q;2XobbOp-Sf82H^YalLWQc%-I(6YhQSLOm zhIMk8IV?@kLfKO#Abs5x zy-G{jF$@JtAqKSvaSN^Qscxl{k-{T(Oa>(8@Vh!@e5x0Vk6E5y$0on-vd~)%xvkOn zC7#BiyZwsdOsJo2gVUv7hN|aCKoXpyRE?zbXaeTPma9_A=5ff5joW(XsHD(IK0T)y zXwbv^z@6r_Wx$6^@yL9^H9Q3qJ~<g`(&@$y)k?MDPe>CEUgW4GU~RP z64K$|OpzFzH+^-?H5@J$V0hDG(A~?ENb7Z6V#BbKxL0P6hqJ8`?1G_tm3opm&`nkQ z*_|B9R3(b2Ef&`yGe_#pG&W9q_e0n?o}e?;V-ALzL!1|m`K>YkVe7xdifU6uC1g(P z7YQ<2CQl{%B!?J329XPF<6AGNEK3bzajKl9<2oL4COkvdSKblx>lo8i=^k^d2>F<> zPo($QxOt~`i2R38<+(lN@8!UGlFCEOvemdIi1h6mB=Zc`A(nxeqe}WU6suhays8e! zv~FKttl-UjoNNpYd`4yhm@~#F0BWLj-aM5}P6ysiEdnaJtwZ&~hbn;?2-%AJR1zsRvD1Ee^G`F=a*^<145a5ShXnw1u1bD5XyO) zl4esF5K5Y+P!YsQw<6eSvYXVY5)i&ueywC@+Y%TM%GWi8eZHj1fKZlbO=B~g|4;~> zxpgR3Z?~GhShJNy?EUfkNqb#r8CI4}lT$_C3Lb5aV!h$6nG|w$xGksZ5^#7@Q>9UV zw`-_cWc&>J@bKx5gi1MVY5lZ1)3LZUd9rY-1SAKaKO(utO4p_!Ae34~Ve4{Ye6@O& z74-VjcOx`>1Gg}7y2X@7twF62mUvk~Oe$?T`&HgVX08ekoCI=&wSq}exZU0mIfId* zr$l%xA@V?yZET{IpAX8$jRamRxa1fV0psHhwG5NoU4MSTRTM zMWQ%sJux%D)1(CH|Bc#A>96nmT^i7F*}qbRQ1+B~y0-9_$45%jsfH6G*&3y5T3~#n z6EvYVArf`{F3YuLcv@!Q>116OjhA5C;nD;NwvFs$PZ=M{PWFHPE;*MB+Pa>kRXU<* zajQ(#gzkh$&~*U2EmEqi0lW|c)An;mK`lnw2D7-`!X1u~YZSX24(ojpfGRrbem8Aq zsA^`~(ewjo#_xR$GasFf{ff5NxS}3UJ$kl~5OH`SN!7VK+6I@P2vLWy3)2Ic`mBG{ z^beaYLuSF?htFny`L)b1c5nW9?!L_jP`j|SJO$~hwiLZy)l7`9$jmQAKp&Q!sGxq! zZ0R=(`i?Dtd5?aq$_x835!c~&MZlpGm4IHe<*-?B=-2|dmlEY>zGR^%;yUDK>i$4tzoPZuZ?<%s1+N@CHWw8G^CkA)h-=S~ z#NN&6E7IO;w(KzrcBhJs_6_s#N=4iLC9yT=BZFB`C*pbqczDc~$``fSj(3V}YMJLp~=-i(D4n8*C+FQyz4n%tX; z-f)gico%jpPn^d(v2z-fL8f+@Ezg(*J5wcml@^FW`WhvTdw~0O;!W|y_Xpjj(O;jf z)7TMlZO@i8w&7rgY3wjtwwndpQlya?*bJ6yXw7sE;0O)tPc)fV&}1^KP3n}% z1fd%ZX2Ir9q5dgx^$(6yzk5XG%yqD>d#+OdH-Af|{@KS; z|KQP5cl3d?sQ$r3_1(dh#nC&7XRB|IxLU8K`f{*|vso5EyV=rehBjg_NRbJDo-Way zO8ZVO?_`aK{jo3b4Os##5qxxLx=JXp4$>k4AD;P=Tq8m!OL8xfWOk8chKNp;=<;#) z+4+&S&nr@h*;*HFZb2`c?elXuZd*V!r+Bdv%mk=KYyToS7u z?j@4UF0PKv5YZ`A$_(7fNknqn{GGak1hs;JC5RUZEXLC>;`0$=w>oORM3UJ>k{Kd8 zg?N8PB%OO->=p;6s&E# z{0A^>v4NS85D7T(Y?p*)AjF+O=ueW_MUojJI#oi`b?g1@&s1H=Ek!PFvxQGbtVkdm z&khlug%B=rP&i3u7fEJ_=v2b*(ZT~tc+k~j;y*_ZH0Xj?+hfup({%_P^Q(JN*Me`1 z?qvaT%SX_2Up=hRQ#Cre3tC9_Gmvy7;K1`4(J&1m-DpWNyGSxaM5og5wiJu7>)z6R zNyZifn{~E@I&^d3Mo2Ul=||ETghod6EL$A|=|tov$%~>6Z=Ps%NHXQViWwq0wK@}5 ze!JdGsm>&=4kJXLJe}$=DC%qhDAwV1mq=g;&mW6AybGawS(3~ylFSg%snoeTJaLgb zPpP9z_V$CS+K?}Lx}7X9dqm{c$(xca@0sXiNiw^5<-`mTojTcxE9ln_NJ2WHmtGP_7JLqw-i$!_-{C7g#1Ja34%`>LOcj_UN6?S3QelGN^dG0}N-hepTR{ciN; zVzj+TIuh7}=ZV*Iy0RM~-OxxfyGSxaM5oX&Gw=g66wJDVf#<;y3GBi%TLe9WkhVTa zW*13ji0Bl8IHvH9x2#-F7v&&xCzvCF9e7?KGPfh7Ws+oekz|I5K8{RT%)E-RRV5)U zn~Mp_|2D*p1Um4{lO(nx#E}j?Gf8F_NoI)XR7s4lH0A1Yi9Itoq#AkWVze(^X|9!& zRi$}Jlb5jhoolPK8EHiV?Re&kO05WCIHXD>nO!8AA)-^MWLKI}B^ohu6X+8(ri_tbB=}2H5o_C0bK7_~x4M{S)NHRl2r_#_K z3BIrTqRwoNmFL;Q8xboKsKv8fgnJRv!bvi_NHRl2A5Zw5TKIGd--jwKnpYuKBv6iL zjR;?jkgicAnO!8AA)=2bd^95MuG2~3RkrX_#EJxp@mwdu-3aOKnk2J}Br`uTKrUQh2SZI^FVks0!$Uuf zJJZhOs#xV+j~Nl_v2=(dZzvn=k|+w-uW>UGCAv(QF}2EvPB;L>vqMy$i;yl+lFTlW z%n;G3RKGgK=JDV5N#c4KoA#ed749uZe+iRISXCdup~$qW(wY1IB{G^TcysQu?bBF3wI>9N$_NaY?uaV4ltTrj7Vl(nFU zwP!$|NMJgi`$X+*gfNex+9a7>B$*+iQ>ktDT3_EU>SEgqcZm{vt@Wxl;#db40%VGd zdY9a50gWlHMzex(<{SObleC6eNIDY8!1Iu3=s*bD4b+e%vx_7%MD+1AG;9rrc-E58 zul`z9emR60riOFS3X(MhdhV;m8XeQ{LR-T$BpnGDc>YN=9L4^mZsR1GT_l+yqEl&@ zgOzO(YK?q*pg2nO!8AA)-@D&ef8gT5^Lec@R+| z0SnI)Z{P%?A0ge!NHV)fGDAeCmONWaenZ-qBbsAN?n9JFpcl_GMe<>UFhyl~kz{s} zWQK@NEjdq1uGNx%gzZnU#vw$B1bXnCC6W&!q}Qq>nO!8AA)-@Bu8yS7&~ud(T~m3N z)L`8;HFXQr$*w8I@z~q1CNld~)#~KwS#+AM?E$C}3GB!73elF^-g;Oe$?PJ@3=y45 z+Z^exSSvoVn3yB_JuINb4zD0eB(N9Hc_MiaLRvCOW*13ji0D+3XX!ltN#*evU7pKM zZ8yY30?*^QSW?@CkS%r2755Yeep%ki@RVm_|a`4~W%Nj{!Ilt^GFo_C1k9SCX3 zB$-_#nIWQ6Nw)KG@v-tDePD~7+IEPE1h(PnmDD;A(j7EOW*13ji0D+Q+53EZRncSD zU(bC}wTHqgWOfNDMD+25|KZ1~uFH1da$C3$u_A#+JhzMRT7>|kw5q&)2K`neH+s2=$W{8jf##5W_7-EL_FH^KHq>e1vqjO_JF~k{KfUc)~w? zMG4QPaK1TLgwI8+NMH`0zZ2nk2>|kw5q-SWUjEUs>Hzb0s-0Rk#6$vFc;-rK83^GhfO#Xy>>|kw5q-SWmK`g#TIQ`2 z0;Sv>5EBWc;kiIkGZ50Lkz{s}WQK@Nk(%#b5i&YTAtQL+B|?S~(t92xnO!8AA)-?W zIZJ-^hSdrVXuXY);I>Xt+GFO8118*VQcITYd&PpXtR_~iKps_C9Q*3?Kb-wTEjjhq z$Ny8YyX_i8o{i|Q@!+}MjXVvGd|w3Wi>Gm>?}~Yb-XN=7aQNvfnsH=|x7P5A2i{xT zY)6;hQTtB7;jkSA_lxW(qatI(+VHZ-0OYpb!}SCED$=M`os}}zNjTH%}V zGvh;;O@;XgbZu^ONxbNkBs2O{s2JQ={D~p>YqbTg)!i^Fb2|n7& zj8BIuatw@HccWT8;u3G&wI|%V%Y3{BJKOd?`uO{SFDFQ_e)}2x;`0|XI8&Gli8PE| z)?v;}#jqL+snfFrK-XMD-{dG>R%NI zqrPFAPw~?y-b>BTz*Gjm=EoT3u9=DQHg1H-tCfl5{vYUPrHJQ{*@&4lf|y|*lHnS4 z=QGe&U!!Iazn)ZgaNPiK{6v&!M`Cz8L0o)=$GB;zykR~%Tk+6R2*;$bC4~9toDFm& zeJ6raTe;_QOf^X~r;S2GB{Q)tWsgI3l1(l@ih1Q{xzD25(9ZRJNv;S$t4a4>1ViC~ zUENJ7v?>>n%?W|fiWN(89v=ns!2aIHN6(#0b#l046CS|>Igjz2n+IB$TVE)vpRSyvjJQG@i$!Co%%~uEN(>e#ua{tfcGj$ zUpD!B(&UJUzb>IKezo8)yM?Z+Yp!(xnkat$G#7dD=F<*Vx!sRS*P6wy^}kdl;txdz zQ0lrBTX%eym$nA=b+3UHNK}68GHBxBWunMwwn)6+0KcK(8xA(uBK?<0XF6 z>IX%*3zr}cRpRUD;tXGd^#C(C$e*Mtbzf8sldnpEY>ZkX)_F16rvvBZwRfU_pc2r1 z_gOZCu6>9a{rj&aeXY$W--$y*76)O}9N1dOL)N>B3>CE{y-evA7?2}b2!_$@d|Soz zh-(J~;7Sc*hg{FQt^N@$9r}*epzZ-TSCtI1dPEW#wSM)Ya3Qv|HP;SF3%BWJ>Q;Uk zTKN*BX)RNwE|=vy*@UGX%Yk?#ok#IZUM{A0^4vbmxhN7s$IcoiM9%Ah%CYZMV8r3% zJD78b;yAwq_0mKtD__nbJQI+ds|9o1((E~q#j9@e*oGg9QFyFk6SDpt`Ax1khg80J z6AuE0kTN$T1-pwhF$j%!&8MWVU}1D`*sV&6P0DIvVFnRT{*d&S8+abK*D- zjjs@QVjLHX`=LsTaUJ0MBl+Hs<6?Y2Q8*bsVW%?~VFn`nl@Y$9hy&Tgo&)UZHvzjn zF6K1gt|YEqi{Tl3TVEDB50P{x=nF}&N|clh>|MkzPm0AKW=O0PKyM&j+iT!j{o4or z5<@sn1jmEq$VimSj6O{4Usa7vxL@ur^gad(@?m|fiL6~_4r>*NU(v)~O=MM6KXU@{ zMNNEF6M00BmhAQ((1d3dfmULn^a5=)#c}5Wmvu96_r`It0=P{JWknL9SAvszuG9pM zZbDe33A()Qm6~>9vn}X z%~}_y(j}=B232=Q9Bao5V6_g%aj{a^uW(_fU9@|((4S}mhj1x{gPQPNP2eypgrl19 zq$Y3>6~d4vv}yu3>4ae9tCC);2uIUbBg&^RVzID|FB}?iSxO3xxHu&xUZ7c8mv^N{ zLV<4lbh`Lb%B3!~DJj&YDkUYZ%N(uC3Z+X@fu5s!OybT(ftG>QIx&um73hc0OV28c z5;1m*7W#=Ip!J~OK83Ll2wN&+cc-LC>q$w8XRt%-QZKr|*c^R6g)WPQEtM|wQ&Ol4 z&k~N;dS21G{PtTkm{VqiVz57I!ka?KLKFXV2D4ITUYdAH3YFy9%kh+SEKn`wMx`Vw z*QYaBRm#j$m(?jL)P<)k$I~TG>+<4rVz8vz*&;a16IFL}4_K}0I4)K@OX9dQP>a`) zZ$TV)7H}=ZU7n2lGI3|caU4irBrZLU<6v`uxIceWT0oM1N8>mS&HsmdZ^m&k{a#Wy zd2bwM1!qwR6B}cM?TQ%P#;F+(j`&VB8J2UvlD!Zte#J82)AY%T&b(eqdWohNYx)#L zr%nqHnBzub$9AbU&m$*WYfhXVC-Jw6sI(?WOlxMWlPs?) z7HF;LT5INNFX>NfdavT<@qv={}%FiYJ!)H~lMe7TJT}_8eoaB_ZK9pZPFUNHWd;J! zSy-7H%+W810mzBlx}?)qE-Al>@3=!U%)GFVd_B%S<$@Nv|T=@LO4gCn#kG?*CLf zax8+;;6g8+_z@&#v{*;GtuHFk{DIbJ&<(Wwp6z3to51ME6Mq~l>P7PeW$&Bu_hFgs z{bB(J-e!rVc7kAROFa3sWM`bCuLT(81!l$>E+zT%DbBB*QT zG@?S9)5`f|9$3Hm{u{T|srGHT66QY0H0(?9Rn|}=U3t$brNx4{6L3PC<82Rzjs5YZN#Ptc|!)G8Fk+~z(FF)h!*FWRKujs^- z)9tuJ_Qn|BVzVYX5OI}YwbguG$@Kw9$Vuh>TTFa7_B+_>( zjuKdJDEKJx@q-Aw45MvuwoW^<{pT#FXWubMgI>g{lnDN5H%=T}P z_grq3@W)>+i>1zAHt)!lIvnIicu~mJhmD+m_Z@h5#Gv&DA@MC5W(n^3If5MTbnKal_8+Ob!5R*B);5VsmQV)!26PU(ZleDSMuNW@{qPyF&7k#_9g=hV z*Uac=9~qphPJr#I?N@emSVOqPB0XTN)@Qc!Ft4p8ODdKlopqS+5#oVOTQ}a=)GI4G zG~dO#zWSWhB|jth+GQmfVOl0(n-W(Z2QDMsosyIlmRoK)+%%okBljbWiQcGRlIecyuXf|?)tjH!C=TnZ=!CF-7dFevR6PeE9GU#~E6PxT zUhJZ}LxEl#gVDp08aH%{MozGS}OHr6P zQdOsMw-~Q?;;-LLZJAE^))h~Ujp-f;O=3o@3*wh~#byrcc4adZh}^KTEBqdX#)V_m z1W`6MW6~71#3}h+vvn&p-q$zPj<;Hs6u_D(Y#lQcY}cyONSH*z6sU%}IgmvRw($n7 zKR+oLq-4KPirAA?ex!)-v(q82h5577AuiBq!N%$4x)}%@%@>0%ahRnU#Jkg^uB^HP zzcw8?I%8(h%0lSxus#uixEq2VXpo3%m2Oz=^3SK(Y22Y>h0}fjic#Q>xhNp0y#rq=*XK$ zMCVF-6tQ5udL3WU21TbjXkD$dsn06Vp`zKK!DYcJ8P*z5-ktNE{CzP$fs28%1NG6M^Z_yo>c-FS!l`@X8|h9oDI0E_CGf>n!?I6=ly36LfEsg2&8fj+*Y#D5%OX%8>OWIu{rPvIza) z%W-JXnx#fFsR_1y)wd3^kNFOY<*8pFA@86V9>A-#!;iBO&#g z@wek|ns`p1#>Y>rbMXQU4vf?G!!R7zYR<=Lt5aK$Y4t6tKdRnftzP*zfVW(anlfCY zIm>Yq-pM!bHQ&kTDlwkUa}8}gdJGmd0FGK){znxAUpoKDm|SSR!8M$@wHW=a)_dS; zSi_d?wyOTY7-?9c;T?c6Jj&H=&H7M;i5R3lxbY1s?taVhgb?%uH#cTv44a%5yR9?r ziX`^*PYusRn}#h1mg})oj#cI06%&Dl;l(Hn%mviTl+_druUGCz42gMz%W8?sz}#wB zs3o|s>rfwi00;F4v>ByxgKLoQN9;q;7^p!2#fcdQ+Z3iwc6c!OD4E}NS*oXbFDhGG zvGdBP4CZn0NXvWJKz~m*(0h;6^}c)0;UjhLnI-t;3??-k79?}!eCC%<;#>!{QeNDJ z;-hVNpovO>15F(8;B_k~=HS9|9eA`?6a&%@^~4OdlG6>(2X8{ zL}gZEI>y;vcipWNFwiP>Y0V#eUuE|CNCwK$VpQRdcsG(ddKMZNQ{ZP3RG(fT|x#bNXsb-PU= z*tr+Et!-bFHioQXU5OPPUokKrZUE~e4N9$!-))c@7j)zGo4a8Ysc}`4x@XCpn*)MF zy#pSBbXrpe5x2GVOOg)RH!CA!mTCti)u5|G-gb^B8z?w~HiH&~7XQnC6EQNwSNXup z1#?5LLvHISH8?PZ*4>h0-<5GC5ckQXxMWdrpLbjLs<@D&7hv0E0k++KkBT(1%{+oe zb_$ssMr^!e4$GBi@F9_ACkVLjfTU@GU5PV!m62x;0eAT#XM*>Q9 zkB|t3gB`n|h1sItL&LWr>K+K4X2iug2J+PrbZtX_5-+AJI%36SB^DFjC-I@`)WM!u zObK!S@_1t0crk5vTR%{7Wq8Q2qN+-<7ojj+Ixy9swS1e%kh(|s$4X|%)vXPV8iM!a zwAu@7oS}jyQK#5ZF*6Ifwh8Wi)kqR`t`lG4*Vk;9Dje zITckw-wM1^9Z?~{WtLddHD&0&mpvS!ekZxvM@&2hoIx3RYE-7a;`Ix0&f zDzdqqnC%>y2zInGAYV`!w@AsbN<><0k&F98x)8l0zJEjeT12RhC$s%OwJxnY5wL5>Uey7`YDlha3%iE+U;?oP11W0AS|xxfB^mi< zyXM#`{mG2yiVgUm=W4ZxNXXTW~8t*a!Pd7X`*hxx!@bB1>}b^~gB-fno_pW|U&3bu&r&}~pxzkFGkG1!J{5eb7k zUgGl(I3uo}-@wBUmoVEir?vBWF6ElnXca=PgJ{o(@Jhu(ys(k4Y_w)5B}AmHDnGi= zud>OPEUDKvBSVYvc5S8*UZ<43AY3egO=o#6puOw?mEwN`XgvVi*sSw~6*HLEbikY@ z#yL01IQ9#1tuw@|d7aGQz-1}zm|v5x?HH9pRm@@%&QFv^PsB9JazUf_$;svZ0eNNH zez#SpI%G44DVfuhHo|~qNslUAykrRz1Q@>$Pwb?QV?B(G5GzO3Kx-2E0Qt0-RAzkd zM43_4vdxQC91OfjwT>hT4ga~Is-p4FsF*qJP%gY04-78$mrwM?J#A1u2g}*~={SeO zts-qizY0pPlX%+|lQV~X?G>|JPF|JbYX1}(KDk*mOw8u@Rg2Z7?Ymr*MW3sber-z0 zP?&i@H+#91Ke}kmGCXijxD+I;>ZjVVFb!sACvicE?{?w6Q)>M-$a(6Z6oLzrT6qg! zX5c3D2{NTd4V|eq$PBy-HZ2(QYh}AW#_v<{`#Qy_NlBwAk)vO6^mmFewV?(IY&Ekb zD`t+U*dt;FP79Mah9i)ydVGqFPD-op|F+m7l#TZ@Ap(o=^%#cQ0h3tUidfNR>mE#3 z57{)?7;QuawaX(^(vCfk_AR=nYj3ko4a#WJ*2SSDEAz3lz->N30N-B8M#I3jS4y^r zJCG#4EE4zx6WgR}iE$UjUZ_&GrsLOZ$z(4-c@K^}#i13!hossIYi78u=wqS^TIKJf zUxRG3WShk2S4=`ICS~Hmfpu5`b8UvL+$9aj8T~AhlBFA7y*3EGpiDGy}&Lt0;}r z+^m6;wiZiT2Sz>YzO=ILwo1NAT7xAPss65kE2U^L7C^#0iQ*?t6v84! zf&U?S{|P0Qu_Zri{uF<9Bz-H=hr#uiWw12QVG5<}r&k3e1?$x|&Zz8*u+vo>=8&AL z&jM$is^;9}QT?*Z!78CUav5{^MZ;%>&1svT-%6UIN(7SlTFi@-oG_I_hPQQJ#GUc@ zR`zW9#=;ri2cTZfEbj(*-YryhD^+dDFfeip?NUVxk=6*B-6h_W)QcaIUi?rHubVBv zn{%b}I9EEUdlE>lLzyq^L-mZC_a@c#VuPg#zjQfFQ$**XH6s@_S=Mev#ULSb*$lit zpL1GAaABHc)3Wx+ZWB&R{by@T?W1C9TbLY@>*4(_yT?1(JeS>3@SgbhAEcS!6H#3B zT0y)MTXm%9YMB=v)7V|D=Iqm)8PWfO((xSCsz$&@FT)((120M0X0Y$^+T$EPe~^+7 zmMp<5l7@nBKl#z$q_5!N7Izz{o-(l>2978C7$p%G4Lzt}g76HT8O$*)w>5|=iw4li z2EgWPkDi!z*xlqwy8TE-A|I2)hoI&3#lb%TP7aoHZzW3FtT8od6Y_BcnZ;dE)@YEX{PX*d8} zsgw~Js9*SfSF30dw-AoopHn!oP>L4)6=fYxZzoKjvGf})w2lZzQe(bWB`kG%*eX>b ztggS}Na}YV$-%Z^h8m^H zZKyj?AohDs9}<(HB@g7Y2vH)#+-1ib;$8jNJmx-6FQ*5_ynViz$>YEQHoXIqvg-gO z$T;w_Jo&Ymq}ZILPI6mksKb~szBdLt&HYV}*vYH!k0=eWHHvv6ZVKTG$*xh>o`IVX zU`n>y7n3EGlH3ngQLvkCr}B$r#Sc>PgG%v(GAiR24jdHFu&jI4DG+R`sx9V!lC#Xf zy)ZSuiQ$`S9UMl1{{?&Su#VKf_gbX>#lQ7Dp-N%c=89|#hmD2S)0@bi*U6z##z(0Q zhglnPyu+*wlW#$7*bX+miL2P`R>1akj;h{~bP8c+H0L@QeAIS1%9I-9z3{uT#kwEa#)`>@sB#M8)Lf!ena%jq5I-K%I}bRw<MSac8NxD;f9a z4=2T~khllcc+k0>>GBbedzp$`&A3k_$K4=tJ9OL~jLSzn?iDKTcE-IEajn{aAaR<= z%wg`-h|PKCN^8C9x+K?$mi;%CE%d;8>QaW^ubdAHi=Ox@6kaIn1Q<~-f|dCAFqCjl z_%xK6BUQnkC~yN&`e&KMohTYO?J~Abg|Zru*G;2~_zrSXQ=oG7GIQ02s>Y5l-^s%T zez%F!%1ORrKARkPPWDv}Y!sH6C~tmUN!|ZoBb>}h$m8g$Fm|vnka_V&7{(qqKzCa| zQ?+FPFR;n*zQR;5$DSFYh*Z|1fmI~^f~3>NljcjA%yW(SF93gA_YA3q7J2{hxp87R z*YsxG3ery$$+m@_2dx4LyA;wU){?CqsfiYPwJ4n|n!^mGvc31-HkfO=rn5goCx8Pc zSZYQDWyWrj*&XxGP+!sF*R<4^v^cTmo(cAtaOzxWT`CG;hOLepaqKj7gDZ>M^n*9J zvi&DQF6te&xM$e!N=HC?gP!#|mpVz^YegrcOF=J7yMIJYT>UUo=I8l?G?5~azhp(Dkq6&(DRTZREcQ@MP~b4|n1A}1AJ;CkltnEMYBz=;xe_#; zuXPv0Wj>KG2S!AoSzpFS&Q+1)#hMTWeu3`%F!$t|If1>h|kov=kDa}-=yAyG_ z3O7FyH(TM*4&$2VDO{4~a|GuE+$b1Nw7>t7>QU5pDkL+i1BsqT=^ z9kWw7K`i;W+IO=%)x)hG))d!P?#U@T|_vqu4uD?@;Z19-ZM9m$U_u3}k zcs#1aVY!B3Gs;(hgn8qw<7qrK7>1N9#uMz1^N86bJ^3_`aJQTaYv`|`jb=Vx347QO zCqA-e#iNN)3<`-hSqu~77jAgMGH$7`52|g!wvj1Gi%>K@`D(Z_l(J)?wNx?38iyhB zc(uajxMUnhRuaegXnyJcl;d}54-;2D#;KI0XSnw31Qx;=(iqed0>6MyLW~LmJtJm< zLgIJp&yc>-HHxOE?pX{2yYc(z)OD_w1p9)ngV;ELk=jRer@$NVAW_3F<-m(r*E(oULJs>YZ*9qZG=>Rcc=`(VOM==hp#fTBl?9dqI z$cczyK@6#H`dApCHrHEP-x3HQM~IxJCx*eG>ySj^rGE=HY%Pk$9~9x>+c zz*`Maudu36)d^oT6me;f-r$SVT z7l5J5OzXgS6c_MIxdhQ`W_QTvAO-3Zh@%9rPxK>-={cxNYOYuYX23)Q@-Q?agVSZC zpCK(E!JJI+1{<`1gOOIw^MFk{&bcN}~ zdv6}SXXL2M>g8MO(MR^<=3&B3v>(XW>=gEO!rsdd4#h6U@kBd;eRDIrGMwo^(!nwR z0sG1KaHw$d*_OgPEJHfC{G?=hASLC2n8P|>CBvNc9d(WLdJf1%I+a399V!q5m{M}u z4r_~_+A`I{-MyaUWb4Hy$(Bw}CCZfT&=I^c-`4fWTRP2TFEQ>!IeTN>UPcp`%p+c)&6&7cetQNyokswf&M+7lqeNof^VpJq! zCN*mPL*dZd+ViSW>zx=b7J~`(oth6+KJB1wqK8GT*N39bYnMDPSSXM(E8n*5d ze=;OoY zA$`XZ)m(idQ{AydiKE;PTVE49<;4?@-?5~eaThFiKfrvW*Rij4ZxRHG&=NyRt&tZ6 z=@nEhvMblv@@r!ZV?8h(7jvu@mbI)tUN-&Kk5wgsK6(*@3@)jXY?kwh%)cQ%uCuFq zrS@G?!Ai#Cmr9XWe)-Z+9~MKN`>bzERges;&w-&>?GJbpS`tf^GYWZ02Ebx#;4+nr4g5P{6%cuHYE`Q>;(Qu!0}6AjC3_dFHw~lE++1T;eoKXENZPVdhUqxlOq3uvY3po)l?@ z^`xp5N*OEyzmTg;b2Q(bY_crdWU&my73K|yoe6@HtSZ;P%>2^i_q~XUESr>+{8%DK z(>tUj6sK)r8_Qn((_5_wa|qjNZgX8RWFF05Ldi?=&Cw}Pl$MOiimQv zGoi!#P09{W(pZNkK0}3&5&SGksRm3We;wB>vXaF`L3LN~p4UUZi;d7Lmym=#WV9!1 z1%i*fo{ksML4x(J7oWoXQ4iW;sEyBAk$q#617p6KSN)Ye{NkCInq|OCLlVKXnPc0& zN3OOvCe8cE|6bev4Edt2Ib$X+CqjPFj|{iW-oxULjQP$8J!q%jHjp;fV@_$qBxSht z?t41)eMX#nr&-kR?nhp4oPnFu!zidb?|$=j;u8OGHfK!2QSG7ze{GeszQN~gX!O)O ztE!tDYb(}YfgijXM(sD#9D8@AIeq~*2)7FGsc@Co8-~BRVy)+Tr?0x+ceV5G%Pa43 z&aZ5!UsJudY)y5o=O&52>BTfhC)``#P3>Mi4lOZG_!#lG0$)~IxMD@IyI_I4Z0Ta7 zY`LqrY*9&Jp=)_@*XR@eoLikIHuDqFR5`QjC;6lzt02Fr@?bh~1>qT&U`uCk)rm%7W`3vP84rXmzC zD7t;&f(fMJrHgLYS|kfETfAb??J+@02}#w?QA%3ziWSQeQ%Q_h;96diGE$Ly*@B`a zDM^c$E?BnW)|8~>D+&u1EQ^tB^CK5xju;^YR93WP!D5##KRZI%Lf5hcJ1d(OtXOQP zv1r*+7W1;DMY?;P6vfK6r1+M( z(7JHxa-G$p5;yAs;4-ALXo-tO0b7_`C{L5%fgyP|*`;3R~v%$WG{Q8D^k5O6M(CoqMt=6us^%&J?uhnbT8_nK| zDjQj5Bbyrh^;MoK2Uu#1R&DFl@hI(k$Xw-Vv_>89NwO*gGrlHN?L=WosIm>MDE!T%8DzQXj`7i0oJ1FIcU=LfFbEXj~E%&G+9|(S&Tl zMs@yLUv*iPr}=&=svtYRKFw$gv*C&2%6y)6Pz(HGZ568Y)cZV5Fu35Axh0q=PiKfR z#Wc$9!d6k~tA5Zk0i7as&6!N8Yw$OF%Id1Cs!%Z$po&0+n=6|dYHQ2<$h0tO80Atg zg``SKsUwvBKacaA&ab3k}uJw2tofTkvsG{2E)D_uzQI#+$9#2zKLldM{Ywc_%wrj8zFQ{o; zYj-l@D}9apC3vo4={Xg-&$J#ZGkN zw=BKYdCSseF5vz*A}*gwA?^jsUCXBG%EZR*ywTYVi`IJVDmjjr)EC5Q()l6oRW_mN%<5Yh-9;>^HI69#Z6(noU z)c>V{ShCtg&V>sW-F|D~ijw7voeSU=t|(mWDztUd)mbN`n`%PcPbQ2TO+dWxqP(lu z*-r9mH*Y0GI+2uos0Nr$6-`aYLGauu7S$BiO?{BP@_su~5Y!As**i*7fmYJ_~M*{5h|?hAqEf zMM;s%$*KK{0+a`Dhb2?F%^kT2*xRsh)+@|k&vuZB4wOniKJvZB~ntG zN^@|El3GViNu{MGrPNc?QfsP-DRoT}8ZTIkJ_&z!<_m!NI@_HSy%8ow_TbHNcx`NjQ{nTJc`@u_wq9>EuW$A>Rjj|V3R7NB(-oCQjG{2cVj&nh zUR_0XJ>x-3{nOpDN3dGAs*Xn$yJ1P@EI}^^G3m{whydHO5z??DoZ2 z;9;R(bZ1eqtDvm7aKW8=6!qm`MiK#`I@D(grE;|DhT~|?$-IOLp zm>{6QRa6Alvc(IE7l@cTPcwI4%Bm`S6)KJhQCP!c6sVB%mZpX}C(F5_v2kh)yQreR z(o>7NBQ>uWixKB7nB=93bp2Egea0#^d%NCQ=&AHznNj8R*WX{ymQ`6>jfIO-D}-Ll zS%iA$sdE;i?m1%ycB-0%8KW2y1zXnSscU!;%TDmIY8j84HK(q8{x>(P3T<=;7nJ|L z=Yo%4wPEe&YyV%~zbx=C3;fFh|FXcpEbuQ2{L2FW&n>{~RTOIb40BK3cBde~a1%D< z>94|p8vPC0e@gq`(EfAyr3~r6(f+y<6`Y0N1!Mr9{na$bH28bwq&x7NK4ZxvY5Xdj zQT~NA2Ywb}bOh2IoUqNsFZ1x}0V4|z-<_8~Bw^&OOn2~XU^*ga!{@ix&V(D?jx#&> z{qXq#tLbq3m>H7gXC@o=0FOL2P`4rY+rOMf(*OD|8%LFPq`Q!p8n_K`Ti~98dk*ep zxVPZmf%^dN6S%2gOLLqJcPZTUaJRwT1y=*N0d5Q2Q*h70y$tsj+&gd|z5kZiBlEt_E%c+!nZ};GTnf8SX8(ci=vN`vh+4 z*AXA?Qn>5kZiBlEt_E%c+!nZ};GTnf8SX8(ci=vN`vh)kC*s3h3U@u+ZE$zN)xd3l z+XD9#+;ea*!@ULf4%`QDpTJFh2Jzu8g}WZ^Hn_XsYT!1&ZGn3V?m4)Z;ogFK2kry7 zPvEA01M%T5g}WZ^Hn_XsYT!1&*>xfV^@DYcj&;zubIzFPY_>bH&wHeD<8>W+!X-dLKKhYdp6B+J3A!( zr|1q8lcJY@FU=8(m9AkZ`tAywKJ=qB$C?TB|I6E(K-WMU80!@%H`UafE#{50+Rye&hamMIpJ`>P4 z<{&@j;NTy(|L~s!I_)UFlAF>+n7$kD1V%nP6B|@$Fv~xtFSLw+KD)xXnkMEL{Xb_1 z^nEQzTtB7$l9qtJdQOEiN-1w+^&h}ScJBYgq6%ksME+KkGu2;K2lUmLTdCw%nLeT@+WgLg;qfI(?O&+WC@fDsgWZSVE*k6~Q8xpn z?IHh;3;ww8CMOttxGw_Je<`d2-TTMk?>GXx3(OI!XHgk?1lE@xc%z-g0f7uOa19;p zh69Tn(;o>b?D-lW=?_R&M^K4O#UrW{FqyE_eDDj;5?oB`Ok6T+Y9}rS2S&jXd=6>= z(7|ppu&FD;OE`Jey8vmYg;v5#_%#)c_>X}1o8|`%clY*;^&aZht}*p=2~GOY)|gTC zCyhPQ*R2(?Y^myBfG%O^2}A^HW_#FRl%jrK!i$}1cwpji&#+nw#Zt+Up&>NHxL*iP z{Bon}Ot32Q@4=;rIS^iwm{$X0F>l6|sE9YwQDJp|AH*bpp#W9k{f0USBFU#){C=w@h_ zi29g7!6N_=mdtKE1S3b)zd(lJo)P%h2L}*?Q3=j@JcrDkUqT(gD1xHzDq&#P?NePd z!b$`)=eGkn+5@jYH>dtUFpqr)Y7o863@=F!%K@?8HsPxDO!NSXj07^fnTlrPi@^O( zD2(LMkIaJr*m%eA%YaD}+8(XWhMEW>H{!RBu@4q+B#tIC#yWC?i zQo=>O0pA6Bq(5+D>l-_&)+6BYz`#WJ!TzDc{WQqOf#6wxa0q7hEwdm5hZ3sS;hN?w zbqOxOzj_n?YU94TMPn$m=%cuj2#@=5$&Ls0b;1sf47?s*y`Dk!OMq0dTZa`Hkb_+n zYAr4iUev43mta`Z z5~UBEeHe4<1Woa{$zxsW2}lrvczw~o<9gbqHOuw*9Q`|1D>SupFpO%)*D8TQM9&3) zS>>bPq=bLJl+%tl_4Tk6CSD3t)A3(eC15EiH*8=OUar2r{v+z@5|SS4pr;4o=paJt zG<;^4nxI=Sa9{uno_^r@St3chIcBDN=s?)syW$0U#}Si*# zvehfij+nK_@m{%2Q2TL1dDi@IUnT&G{88g+u0la$Jnr{F*DQw`$E8dIbU!Y`e^b#K z@eH(j9n=6{AzsJoQC#YadEiPB3VP|9 zPQ`l&=_E&V$%@R&4`s z2GxxZtUNx#sPr0qBGc!cK~Yt3O)fr!X?HRHAM9D&NsG$9@qw|?#Y-?IFYO;({0h8` zkBlwWAy|t?5sYPyAE5<29Cx&&QHEoVVp>HIR)E&ZPFl3v8QL8jLMT~`24t*(gfyV* zRhab0uHbsQG9jEOBG#Idw7a`68OJ(iOjUM0LLztLfjdCp+p1_%2^+C1n6#pkh&Q~5 zvce_swDu?T%~S{QC_Z5DSoe(*@)kl?*a`bWYLMklB>x!zRl`b8IjQx|*rk|^dR1ye z2bF43grHVbY9l_SfU&9J1ATDOV$D#sk{V4tfuF0Y);dHO?cNX7tE#gJi3U_9<_~@JA#> zchVq)I!)L=en489A^64+uZuSdx~S25k;*;K5<)AN$LAOp=}ej}q_$EW-BwZX?H+Ez z2qF`pqh{kFXwGcu@Mw{aHATABcwA#Tp+^Kr9vM>UxuVD}QSDNdo-e3XUN-`YXw1>A zNw*t+*D7C)=Eg^8Q9phdZFU%kHF~Yred$<_{)&+bON{qw%6bp)Cp<||h)ORtzM@&! z;C1VjTzZA^tVV1^Z&LA0qfXz%EnYW1lKPgY^hV*Tz z^x1;h$C%|Ry~X&MZl@1wqG09pHj(v^*FAoOKJC%;4&x`9qe11<;L`EXkpD!I)JYiD zu&PSm=X4*TIOX*HtZC(Rk7_9&U_E2!1=fTr{SXgUM+s zK(G9L6gy9)O)Q@@lNnNhs>}fnYt2@b%~7~o*?Y0W!`|>#6t&NyPz!szzCKrfq!MkX zhWFt4R`xD^eIAFj*!|R&y%sM+x{r7$HN1nrqV0<{w1#5Z=}X%_tl_;ohA@x8lHd-~ zlb1AMPU_yfZenaL;x1IiJ>l?LLAiI!6YFS|x%W^>JgAO-a}JLTT#7}Xa__CvXvYzZ zj^9x3eUo6#Y^j2l-iNC+m13<>Gr*Gl-wykA@267shBeB4xeJtpeFlEB-FtyCa{rC% zqH7r*Ef*+0M7g#>NSaUhYaa15ZiVp*-Kp*M4)(x0K_eF2tK4qU!9J;=SO-0E9qbpX=%6>QgT68y^v88@Ag+UhQ5_tThP4g?Ky)x5 zG|@o-iViLcb-;!~fEtCJUxcn1w`Hx2Bf4wxU=M-(c#+N{ftvE2KUt zU@L5*Lq|jbSDH(3?{lxhvVN`mMp3|;B7tznZN_ElCyW{%#H=&At-V@i)dqe#&=eJ4e zJahhj0qelZdSZ4B4CM#=g`1CO+00OI^O?h;{D$n@BhAd|M!Re zV-kEoisoq&41l`)r)Uy;P-u<$JECCG<8NR0vqEnL%j+hvo(NR-IddPl&3z3YnH}!K z!tx_hT5jN@ah4wws@%ZOhb(WQvGuswE3-UU{(={-V%Z^B<&k zza(H={!s$IEMPkX+Az{Hd}yF|G$zkbq(fz6j_BE*`f_*(M*f)eKf;|}* z?3;mL%+FI&IM4iiOF$Z!+lFGCJZ=7(IC%z~)VbdgPQDxG+c(7Y7=<~|PNMu+=j>HH`0&Yz2S{(QXipN5^!BgOwL z>|FEma{=@8n*N2Y&HpzI*k1{?E&nF! zFXcJ=wfP4UsvSm|I`<_J>NiqH?(J{mLj6vta&Lbh3iVU!{tt1X{ul^_?$@&YFV_Em znNL8UxyR9eqx=7)|3Ah1|8u4@-`oU@ z`fYArI>|AT0KHhml(0N|7HbcNV8uyLTP$P}|04TDmW(tjF-d+80 zPhnvxEYGr@C6-?c_d%yy6qcLfEH}qlZi%zp8fSS)B6{W%m2sY4 z73XPH$djG}PY-$0@8UD0aGqzn0HkMSmv(l=2kx0x0-WS7g?F#ZJxkbmb)20wady_m z*;yB|qlf1DkR8q4hNy}*N=>bz0FY6zNoX<(0#HW5W}$|o;B0BPomXaCgx=w4->!VF zZWYEmqhlj3|2FGplD`rz%tm*I$iGuslOeJzF8^+!$`IKT%C8^XbK>%!8_JJ-8@(95 z=Sgk4A!`OkddCOxev$FI*SZ<^A$N;r=C#7i`Eh10h%<9xoSD~!%;=lZ9cN}=IWs-e zF%wtNeybVmRK%A$8ah?u^Jn0cJ5b)&b{W0!E*1`(Cp5-s^i!J{0 zuH)s!ptMB~(hdn65p5l|?jg<|1!s-!kZ?8}=j@U=XCraWM&q1~1)Syom6ieHamFqU z7y~D}gDpjC5PvWt{9I=304uqFf;YR(Ju3XXKF-hOaej`)`FTUYkB3b+WRSWdb_ZI zxHc}sb#WQq5|`nvfed-g^7WwvTBpYYorWyGEf9iPz9E!A+hN`=EEl6Ji@tBPJ^)qc zz71ZB?mL9ncgA_WDbDN7abDjQ@~TJXEdj6iZV?lqd#iOdk52DM|7FU3w=^K5^F0F6 z=nTw?!rgnV9bl}c0LN|K{is#guiSsP$nsghC+^2A!WRaWdxtd_SE`bJKS7H@@+PEI z;l59#e1BZZ+v8GxATH$x<5GSolv13@-Fn-d`{D4`NTv<vb5hk0-MC4Cc#C2|T2HlW5h1E~SS-mUH>ZjtYo`|!0cgX4pueOwX zk5tHe2L?vqN)7F5p9z_jkIs7qLEK`MI9xIt+-Lom_^gJ1Jnudrd_E|}6$Nfw^OvyT^sQFNEA_%jXkuEq+m`@<#enT#H{0w1|$*Iud-EeZ`uG z9%}!JSPK}twZU2Rq%yoqcWD?Pq8s&b+BKuWgLaaOAwa8pknCRDb0OdYok-?%caZo;^1N`?a zvI-O?jtm8uXD#}iE=<6@Enk_+{k}yXw$vScristm{eeYaoP`Ov?kRdAK>yI9Z??k3 zIDNV(_eU0eLVi_r^b7?yE|~aUvS?xjMnCAv{f$LakX8^q zO3MAMMGrb|B#m9={?4N3Nskh((BE5R2rIz(g%4bdhMB5#5v>zWYPB@(+0gw*>juEZfS3R)>XxEM?g_Oj+yT)^LWh>|91|3=0c>9^<#f z@j(u=Y#Wnzl#w}`S@txh?kS^kUbF0crtW2GG{aeT0h2BWE9%^0*>*I@XxW8K z?hDDB|17(R@rOdZ&V-g-%;-Tz$8w@&JD4`?M6;u1moRpWYfP6XExVM9OgNE@Y1w6r zJQgyb84Gi#Wjl#(wOnP;4PjB2GwK=xkr$7vp2)6q`bLLU zc0F6Bl%oT(@h(x>4Q!pVogg+WyHOf;kdFdBRF&N%ZKKFA;vTb`8O}7^OFf^>P`=^o z1Z|=I%$B-_7YN$Qv_|J3;=fCMZew)OVehWWZg=4vG+SC7*wZ2O4yLye2)PApcZO*; z&h8x5>y{1&!IRlti?pM-6M*hOWp^{C%h8`?**!G-nk}m^8IyYL-8$O1`{3Zve#Fyc z&$*qDy*&dXLx{ksIRD#VKZ|gAz{)WDhQ`VD?jR)Rw;;^;8-5J-{F?^`hmgX}w(Wz% z;&V@Kq?iDE!|p8Ms0zmAJ^|oFF6?%R|1&O4SoBmwyLJ zr4n=Tac6CD^m|fSTL~tXI2V|;?MHGaX|!3}gIgA)|FYz+w5rMiDpFy+zBiTqYMp{Z zSvw!3ZnlD2L}Ga9=G?Mw&XaDGtv@=HwYL=&QvLIkI%b{kNHm~zA@{EwNr5z>tZqix z0qSUoa`Y2o?c)Mf`Uwf3438qKXS9OE%{zL3h1E-JV%$0s#%uMFRAx&T4@v7Fx3!Ol zWB~RxkZHmip!;sN9CCD=VksnCS%ktRuhDiXDb*lusf+54~9z z9dmR*w>82;VnU@~4?G7~P&XL@F;1R9BMF<-l&~pC#XgIo9j(#Vg6*o$1N|KoE7lZ6 z?=?+vz1K7cdatK~H7&QIO5b_hA4%-JNP)pBDAiIRf6Ra(WghhW3v zaST>%A#%L&!Hz=5$v;ehQt^uoi zC=SqE?t{J5qWRdD>r^s}PL;42PX3Nh?U*gc^la{=rB&Qyv?2G!$uSo1G>wIOd3gLIM3MQ*yKfgP?Wz@a~D`i&Rd|=8Xa}^P;HtSs?7!r(H&Q{)ueB51EDx= zCdV-MVlM;Vuy>;~kT{7Jg*Ss#BlnU?OL&0P%J}?1P(cryS{bDu3CfDOptg>+cSle< zz}GYWPQ&5-4Yf1+wVF?GLE1Rhi%&W{0JV)QI3jComa=x{=}>;-riF-|GzyI@abZ>< zF$MSWw-|4gDKt|9Bs@{HruCCmXyJyj${>Q?E}=Jx@ir7yXk|KXPgpS$I$fB6#2LEI#0 zo71Hh7BTKN15Z0;SDjFW#f-wOVbswOMfXJpO<@@+&T7Fe(eVt0POf#Qp_d_rjc#9FGbo{2YFn8N9~OxQGo(96GnP!%?Gf{B^5Ytbm% z$!IJzD9XAC|1m<;ERdCvLoV_=(hTE_bf_Fx+CHK@ng zci7II)T6`d!NmsWpp-JC=jNADWI2k=xeU?umceBXDb@TYAfG}%bF>z-QUPk5 zYjuSDh31}MU#hXvFo?U&|6w~0ZqYo=;RDi`u3>c=ZDSSDX(mRb z{zikEdJ6wL(cGNTu}hV)$)I`CoE%p3E0>^x-uP;~*3j!3DoR@i_EGP8Pn7W*j<&o+ z!>IonqX92N^AdXwZpZls8DFf)KVC8CK%X)$FerQ-;2Y*lEI|fkpf2Rbf&JvNMmvhO6j_fuGsVCM&&nz4v1^|``bSb6~S05A(n zyBn)L8ePC&ha;~R%5FKci&khr-c~~DH);dDMSx#Tjp$c`Dr`Q7o_UnTxrB=;jI=IE zpMPLZM~&7wG;*+Q`U7~bP4zo$ma>f+aQh;*!P8dx*e(v{|9`TN<6H|3C#~-8alJWJ zRm>j8b6|(ND|nlOV^6=mgR0Ta3RTfe-?{d5`#i8gA+k{|)Y2U_n{Iyx2MDid2&Tky~FWdpvR*nnAz{oDh1CM{eU%jj<6Dh70PjY6gC0!(1JO ztMMU)@N#PdY0c81=hk+8&2h^_+o|C_=vG;~^!0fhdT#YoTUHo)ZXM9Dgq~X$Ye;{t z(FeJ8Si@oHxjDEAwNszQfQp2knRdGCK}v{M-i zJvZ-LuhA5GelD((REo7s%>er#{#aq?xp_a8vJhx)zWgGt680bP>v8D0|1pfsqG=iF zF!bEC4MKvuG#e-2DlsdJmmm>XOmpbDnbJMNcajc6&rR1L6(UAE9SJ=Tv6*x!^gKl7 z)3MNVvr3w+OGB?==(*_$nnKUN3GOp|3zg{`f6*d+5*$OMAmH4{1XpI#d>l0Yt9Yze znOn_l3(2<4lpBzJ9@Wk5CNpklUm$RYP@QZq72au5Wr&rXL)2YnCH-m1r1d0X?iM(o z{RgRNkAQXAN2u62=F3`fjcI(1ohuC&)A$MtfY$7pRPa2ZwPg=Q!S?L!1nxCor&ZgL z4qRmBYXsGq{V0`qt<nYcm;cf-`7evhKM|MzXjJ~!OT$|J01){v7n;Z) zfFl2~Q2rqF+z?-DBDBzm70{%&; zqJTHY6>x2t0!o3>fB+B$92c4>AOPFb`h&-On~*!QOX$J8K|qoI zodR~H**R(6B#2e~4BagHTMg~RL(k23nLo$a@Gr;Wpwavn(a*n1b%hvC&~x)6W)h6}2pmwI=EsGbPsF+Tk2p7X#<}@qoSVBs zZZLZUq37nO%unmVlLr%LM?%ld6Xwm-|EJJ@n|Y7)|LJ)DpNaQ>Z@mBe;{D$r_K!*M z0V$fNNiYEFvNP$9J}9)t?DuI-3&3KUqX5j$3cVF9N8_T+&zUvg*1rbc>JIZ^Vfhg$ zEjRGdILnU-Rc_$tLzWeB^0-+?9AK6Q%U_V9n&kixmY)!supEFP%U=|FYj%hl{E~oe z*|VveFALZXfu;*RH@{*&L4xI78kt`e!M-N7M6j>N1^b3jMX)F1f_*a(jQM#=3g?-h zZwW{PGah2q)i-bMj1_lkdejc{b!kzev9yj0%1{e-LnjuJL-0 zg`S%~G#8*>e}5I--ycioKZ$q#T)gw=3igxZ#!B=7|R>F!PqJvV=CeuRYjF@&l!UlO5yBX#87{x&Yu z?}RG%_V=Msf2K$I4{@RX7zl;#;YOk030~f^qu%^4^9|_Qzucp-_5Y;*KgIk1bG-k* z#QXniy#K$&`~Q2;f4VI6++{{^d^y@D~#7mo*m(FYAofqPr*Ty@q3p>{usE>Ev5Oki^ ztj!Rxj>dhXG}K7rJ^+fWs+mHgnKvGKZqBkMiRE;LUROn7xhc+abDZUtILobZmgmG- zo*S@CJkFDv`q>Nsc{baGCeLO7%CmWzP}|ZRdT!2_cH3FP1w!wDglmF`AbC>St+luz z{s$pq(Oe`VE|v=Nq;|wbTq0B%mrLU!E{luU85ME4)YKvdKqI({g`S%$ta)I^Uxc8h zMzc$JdPSV4SH^jIRh*|)Ay0Y^JU!$|zl+b1!g-$Q0+61SX+qDN3v~ zc3vH4XHA@)wQ+XVh3x2|xjtk^bGIR?qK#5ht0(|u6l@ZjjDi4^QLtI4;V3v;+HL2R z*%qO9q$8o{=2l_6Gdecn5AHT=Gwy`{Imq8=?hyHRN^3GicE#o2EmRpIdqVm3gL_U~ z{&Pe5IrQ8-PioT*DGNO}_gb65hrb1(YmMe>g_-l?%v=y>=E68LuM3&cH={ew%)WAF zdZuG0uAu$aw~42hz*Eue6Q26xJROMhbTH1-p^zs%A_fAU(mKw;yvX_quV?wo`(lf~ zyz6**F(_@(gA@-vHxFAEgDHOk5q*v3kZ?8}=j@U=XCraWM&q1~1)OECrDec)oUuy- z#=uD!xE%>SH!rg)z>5D$#1XccM}?o)$N9ND&d;$pKW_;5NptAAc}2+4e-lSn2KSE{ zyh<3XOH1gvd9`2~vu(6mdZU0vR_&Wa0(u#Q62$NJHF_t8{~}~)HQy{UTpO3+y0{E) ziOcZTK!&Vl`T9@-t<&RyPD7U876`#C-w;Zm?J#c_mWxrAWp=;OdJWk0k0TVbXud;u zeP^84o8r9Q9Ow02A+LI5-V*SN?-q%`G;g(5kmg(RX$n0z-z^Qu=zNcWG&%#bqHyKD^^P^Vver5iZjtYo`|!0cgX69gr1xCNQHbl9(rzmCS+DV zI`0((af?-ADfHaD&w3ZM=|2HJ^X3D>=YvvQvGwq?!ifz-X&8ELe$FC`G0dlIe0xZQ zsY*ve&&`J|@)KxFV>I;Kd_?eB{$_hrz#RCCgr1v^S!aMTe+dGA^Du()V)_dqciQs# zL|lts6so+Dz7*Humjf-LqcHT`{EGD~$$#ezZS3aIbMr~7MjKkcsT-`;q37mP7V%Q8 zL(k1`Sx>|&n@?M0o~#Z+&&_XJWUi|&g`S(=vB-W^EurV;cP%p4R0pBw<}(%< zEUL>x&&}^yWEH3`g`S(wTJ$+x9SuDLyNxIswMQ? z{EI;-G^xXV~MGKM$DlGgr%@-_s zGe+=X8^5;b9TlM{^F@oMeBv&c_+GMTVg-gn&&}UhGzDn|>CkiYw-!CBxa0m1z4On5!EuDs?8R9#2+R#!tIW=6RW-DyNNjPu4KmX7V%<@5us}aJa;j zi1%bI)2rh2FycK~$Mg)-;}P%4dM4(XSQhb~Y+!0#NSzY#o}9r&8mB7~M7$>(xlpmZ z5J$WxXEM1pBu|NWPtM{ZZPOQ#i1*}dF4aD5sUYG#S>#e3)0WZ^@5v@E(m8DriFi*o zbD^$j3rWO#vV{w+nzoQcyeC_^(CV;I5b>Uz!<4m^VZ?iKE~7Svg*oCqIgjyM;`kuq zJ=wA@j+zE=O~P?=~UgJ-M!uBHokh*&wDW!|3zm1~!V> zl?WHqr(!2JO2aZus^lhV8$~GMJ-M0TOzlq0fXTBN%Gb6Nw1xUZs*f zcu#I)bg`11$||}2A^NgtX|2?es>vNpZzB+L3)o(%Bi@rc+t4&JZ&f1VJ-O>S4RiwF zi1*}f#&lKcFTvyJlawRxvhOX+5)hzmW&;#0lN7JX0I#{W=|cy7IGk%y|NU{o;q>|)MB;_L$*jT zdur%yy69M?4rWh{@VLO!eKqhLu0h>61Y)gn6Bw>Z&4J$Qsi5ETUQ|gvJVyob#o2VFj%d$j-w6th3mx*Bt){jSVp~bEHwYa= z&@l%QXY)6JC9CD#h9*Vhi?cOMx{XN^Uz{zFP7yI4RL~D{wwAFU3ChYhVYZG!WGI+5 zY#v!0$5ghS@pl@P9ABKBL0NpPmJ?hs5?`Ec(z7D>;K&XR9oIZQG9jN}-8XDJH`4Mt=5on?%M5;=z7>EzLX7=DXl=asX( z3hWiy+YrN_u4ER|Rl;KUI!pW14o03}(YDQnjBSK>M z(|N`shF|kR5r^rTJHg6~9SB>#$;dP^FPT{ZFBDoH4Q9_YQxo*0g+b?fh-LJbh+aSt zVM;K2rZwa{~=Oa(zOduB1CFb@R5>;Z}<0SRW$EF;C~=U+!iWIDOlorYdv zWR^2{!qAI~%nAlSBR5M%a%SbZx{(J2t%KP!U5tDvm_ahDXda|s_R3f=du9zciYGG~ z%$`}xXgry*i1qPdm08CmJfAU=4rb4+XQB>frvaL<=~1E;K>wi1Y94myn;USrHOC^oep|8K|4I1|CXGxZX0QqAl~ zMDNV6;en%Y^;tpf$Qd_A6VjI-%e-I~1hN>!w@a|}wh9|VZwKmuc* zeic%8|MnT%nFsN?%kF5G-O^n_Tw|C;x{MhaWEm!y>q9KVQHJ_h zhS#$U`$8Em4`fK#bXBCohyqF2&=nj>WW3d&1r&+Vi~m>Rx``Hw##^`v)kKz$0J2rf zPpB!jX^z*K9J;wT)_a7bW$H5E-D8aLF3uE^+(|}UOt;7@E!oKmthmUq6 zY}NQ@*5qD1iwDs{>nj!s*N6Fo2~9sntWv=Dx54h5odC7~XdWP2j`1a`fV~=X#zMR@ z{*yT!hDH-MnV07B;84lEKWsw#9NIot0@j@_T8>ZRSj&Vd%84AUr47ZtK!$8(Za! zj_=2t6zc@(^cP%iwG$-D>DGC1knC_&C4b4pwb)@fFdXUfSB&4t_)@1YFdqBZsk}b( zBKd1(dIxsfj~)sRGDyD2CHH77b@h^dP+Iolwr^N-E+3?p{LL7R18f*bzI-Wee!@P6 z-zwfP;B{j5DJCt$4>t@XZG(^)l|I{cF!LrWjH|Wiw%@CB)hAPWq`~9mhZ_cxt|3Fg zk8BtSu^GR#VIV~2{n&sDcB}p zc;CQ$x+?iqDU- zNjL7l_Vy$<2*;TW9YUPkC?MoTmq^irQH=)+hPhDSfS{j3+{?|I`xJxXquHaq;#|C8Kdd_j+dP9LXq&?K1LY22$ZT`G<6fia##&l(#W89-n^jmlld z`M5pl;N~Qg=61jd`z72XcTN)D?TKAT4U*W+!&xCUNMa9PV^`1)xCJ*R&UW}@mc$ko zNKu8YQiv+ZwUhlm^qttol&b905h&vv)=PBSi=WueCGr|4o6ZAd9c|o~sVuRB3pQ$8 zP*9LXN6&XSoUm6Vc5=a1hYQ7!ZMvJD(P27HDshetp=na0Zpx6Im|U?#m*>&Mx!mR| zMh3kLc6FANQ+^2n-+Ro7@hua~UT^i&$yl1n*Jtc_GBVc(4U zL1q-Q`D=iZFXJb)D4UWQ#hm*wpu=~(Igd)QMfqV|O`jRXFBU6FNPKKgO`C$uC^o2g ze!y<^eqX5vF$|8o<+-@ryk1aabuq1H(yd|g$#ZeJ1uk*2TwHD~(@&O*%dKPjw7Iz4 zdL~Yvi_2|b>M3$@xih%PDRXhTja=v?xwzb!Og=>}E_W6eIdv{BcQ%(gbuKQq$fZt^ zi_2}|BB#v7NL5y+yzW3%f;okGx{XCxZH(IF3-i~E@FIHE-rU5qo>Qo<#sSF zo{P&}!q`*f;&PXAkytJ+cNrs3mW#{nBzi0tm%E%%NQ@EnOu8!=4bNnrW(IfVT1*$o zyD(7%j>U{ixwzcZd8Vcpu6u^O3iSKaJyTu)`u*vyW+;-2%RTEbnsdL5sFx>P&c)@f ze;My{n&?8$q`QIN4W(RM?nY@i$i?MulC~umm%EwaO!h;>`q>QSv+p2i3-t##Q1)7a zlqob^0EqWCc@%zG)5Er&1zXtE#yO6{&FHFSPs%Ggzf|W*hS^Cdgow+B-qD9zdKDoPI$DtJH;jZz372Qr(P-WUvZQye>=a;{v=c3n0m0mFi*L zO9rb{FR>ZPV3q14slp6ase{~>WUvarK4j0LMEdai(Tm!gCW%$*@V6mKJc(86$fa7h zWl5}3Loe#0lEf-C!f)>hmHGzodU>qZ5S0YtmE4X-5;kcnMHNd0fc-uYoYX2c`Uyx< z-HuqUFXHAG(?L?JbW{9Rq??0Vk*9*`mVcm)+Wm;@dfxCPsg;-e1CSUcS-oqznxSLa zqp0BJ2`VME@(QH0FfWtxY8ehvGSNC{iSp_g8%=8E)iZ8NQY){431vyGycvv+CAIQq zGBTFb%9~9xmL;_ckg=pzUa<=kSt+TN*F+kelGMs;W;7gPv7}aB%Ssfl^$`7bo#9DR zD{nzed+jmpEey4XRjTqj=#dST$4RZcC1+@!0uA!I-CN3nmL;|FmN7a^YUOp3fhdyH z%3D5;o13%{bjLo>hq97MDw`EX*%p!2qlc0yP4)D$mZr%hm8}s4a&o88)5}~TT@kgl zl%1DZ85-r8q_TC)a(O1HY(3+{Oj6kyE3|A=Gf8C|xx-Q>sqD;p+!gmY#E#_h3IqevA@tXYACQ~A>Lf|6GObJppJBz4H9}?PFd6)YWbp&Cnx`hU%FO2~ z@uXIn1&oa(waTQ+PRF|&}tXi}@pBF5boWU!i0nZ=C4C@J{?8AU@R^aGOO$PbA8 zP{_BP>Et4J8v1>nSPYCj+i(1cAhh$OYjZ1`88>i!IV4YroSe8TQlqls+! zZ4bhGf|6PZ|m&fEG)$maSw8C=(a}0SC0}mP<%V?}HsLI&qY-cg5&7g_LSgzL! zlV}9lOO033r>i;HSAV1jiB61H-LJtz^^|JGc=by(94GhHV}Iy4`J&cSU)JQER{}%d z_Qu|OHR3iPFx%r8Z!#Ac`^d~QURFRbV~xA-$XK5ZpTT7lqfu^}&cV{*6YY zIXR~49;VhxT8}(#$aI4C$p7*w%_xqYSH{Qnas;aEg?{d)%A|Dov+kjnJ-m__3TvUF zM)4Q9d%uA-9Gp9p3aOFp8mg*5%Rlk>G>Q|+>!MdUIfmdw5+r9mqG<+raw0Xd4l|n{ zpuxpXBsJQIp4D|wnr%FQJ9htHk?Ra>$6Q7{Km9NIjQVhc{!e^Ha0rD*R6mBB3^+KV z+Q;yVx|EnCM^yg?Wi93sczUamW$0$A12~%MsPYypI8Vph$(Rmo5kEuF5qPltm zCo3xXn5s9vn(C2{Nk2|F=i}*rB2I&NzvTI!L4j0YuZm{i{RRk?-^Y*Po`+x9yx@sS zY&cGr+Dnz#uCLkHO|+dFK97?cCHkqZEuN{w#Tp8IPyXO*Kuyxd^@#7u4}DMm-4CK4 z`nb?Zi~M`^7WZ=BlYj4r(E!Z+@$+*1`-&P(zNZdcRZ%H}8g!`{U~j>nlJCjCpGuJr z!he~(^$DA@9Hqnu@lSZ>ihk4w;oAlw!ClD*;a3=RtT9wAJ_tXhdyM%YeAgfqA-hl1 z2N7bUK8O%m=7aF7q}jL+!uJGCK8TNl`@jd``^HmRr0c;kL<-E@MriQ%ljd!pCG0!& zFWnb={iZGJl(Xb1U^3hBIPbwDb(6EumjlRC8R?DBh{i4!#1i2E@>C5n$FUN^gURWD z?o>hWjy_Xbm)9qHr)q^zr3sM($WwJf$wVl+k9r~GBLv+^gAnR8Av}OQHAC=?Azl}6 z6m(IeO9zmrW(lE{%SR3%Pt6umTd9t2t0?$(AC3z?fIQV~+@>uK9ljhuo@zBdq%ob) zBOgGXnk$Oz64fqMsriChFnbxZOrI#s79Kf(Jar;T>Wm&h zo(c{iPuZI*4m9UcDYnhe$JO+<`E>CupruY~n?DR{&F}HkRuLF-Dz*|#{jedYV%x)DmP{M` z9a6EK^;a_GRP10(tIC;p%~Nr$#gZwfV&{jcqgQ}htO!gw73Y?9be?n+m~txiW>BH# z94uRoRfMLTiVL~7h$*L{n^6%{PJnU(uJ>_~s=|esyeb3|V@^d+4wEAG#}-~q#9rbv zV#}%MBe6nTPQ^iPN^Cg+7}|0w2I%fiXUnNLJWR{qSVHoOBVX2~%WOFnLu}#^TTaCY z-|Y!ibrG545g2vk%UdEg6)Pzl#b!97+nv}Gj{{M0g@Fnf$b*K6xV&GInaGA z70k5IvOQtbawGFRHW;n|^0-&-wDI!4(7fYGo9+M=uZGDdciMObE^#uajaSR`lR0g? zI;KzSwDIbhIK9)xYhdaroHpJJE^76#-e5Ow0wDA@&smy8PwKIBOC{b)XnYWP1 zE zsME$A_rmRC#9vleCx}&t%xqGqSgup@`eY zJL@-?d1|)fJM{^V-8SC(2k@?@cT?!L@iy3c?k>4)yp7Uu;I{ELN!#MK@isG@Daqwjl+Vxoy02)&W^}GrrrOH*B%8+c}CFfSL;PA%tDc(6PeH zVA9SLRI;+$1(GE+6f3)y;lM`BR(89Nu~93#UC+2FR(89A31wDxdj_LpR(5+PBV$%} zdp5m|%B<`GGG=ABi|@n2qGV;ao9JCP#ma6sGrHW$Zns>7yIr>$hK%bBTdeH%f|&N& zW7=C7YL5&=b_Wf6)ZTQVqlfI`j_~-I`!=^F#=W66$f@!@WOmE`K$@qjRH)8P5$tWdj zu52FDq1?GT)?T^6KUdHA(BPk&K|$HHwM#b;+1izBWWh@Y|J+P+!PPwnOX^KVR;=vV zS%JjmR`zT&H89o6o^9cVPiAG$wlW>JCp4o+%zoK9OrBz8&(3Aprdrvv^SMgg%AQ@o z*oc)qtG`sNmRk)ye6kCb=qo=X5XV)=l zS}S{YJrlK+ou12tO*4pC*|QtI3MMj*Ftz`d=G&TxBfX}YUsmwh5UnQvH%L`~6^a^k z*5Z-zVSUsHnOBVtGL_bR-gbV7k_~iV!xH@sFnOp!pD?hLgoh!y0Y+u5QsnnYval@w>-{5d8?zuGC*u)W;|A|LxQdbZ`an23vXqZpl>v>$A=z zGdHz>$|DES_;FpCD&GA?+qs`AgRG3}>DeR|qWbkzi?}-&UOO{USMXI0+GFxI?qm@9 zp{vFZQdhLwg*R6lA2Fzh<}caK&%<6m9QH!Ie3+`BA7c5V!g2%plPX*w{xsoxsgMzv9%GnpgkMk!qdB#_4r$`^_#+Rs1 zYw|N!s@d0pcnJva4~bu6;sYSk>CWE;q31t?n%^X%Ik{TReh9Q%3IElA_6*b3s@X4q zHuj|Ld;|ZRXirZ<-(_=hW3%o*X>idkYIXtb4L)r#RrRZKRdWICeK+PUR(eu7Ds;Q<_=W9Uj9WH`DW5XrDQoJ1XNfJFlZTox zh5}%)N#EQ69Bz`k8z9Ei-1DhFaYcvDu5TFB)vdp>om;4Jom0hg9i{0JbFkOmPu`Gc+qwqrS`(eW*n?zoBSLMH6eG<~tD)kA#z9sg&b<{au2)0`RH zqXXECHfZvcJl4c_@UTe@T9Y5RQsr*PRXE#jS971EuC%qA?+(12CN)mJx((<+3xUmd zBGh0Lb?{c{U|6-uNh{7f$;N6Jr-^&f+j|Zc)^G%pd+{{!B-&l{nIfJ+XAU~svV$5TYVjdFWWePkE8D; zDx3#MoNeb6*AzP!Em?${B7<--{rz8bKK=uv?f=;M=y!byuZ__8=)WybZ=mq-6}uwh zeDrVlFO;>I%aZfaznSWkIUoI72uaRIeVC9q9|K2X`f1uull%`930;we&=pzO&_zt( zyFJ+MR@k^vV`RIVx#1new00z#+x2zmNHlk9SR9FFKlKqf63vS>6gm>C2WfC8d+}8k zaU@oUj>PJ_A4NaJh;}4a-$Nx~M2~M`tG@TBMwdAftMB{0=9wIcCJLmeltB$vQZv8~ z;7`esSbaa0B1dBN%m0k4g#BLpy6i}-IuA>gVzp&>;bx|4+aM&k^Ef;Mubk=%<8fA$ z$D5g|Q@Teu5^*SeA8(AQb`4Sy9Eo0JGgFAoc%{uuAu{j9HZxUMNwalcbTd=6Cunjc z(#~9;Z;Pt-jSp#&E(FIADRdos@i5#}wa^o{p_h@ik&R~4 zc7&pc+t8~q^qQ;1F5$_o<`o3*l}h^OH{j5dGiIe%8R-Uy>_EQkEYdVuH-iKI*f5We%5+rZbNU0 z@nKC_@0Hw!-cn;wv#`Nqx1qPfIHnOB(HpxBy)%uX?rDoBZbNS)4hADp_AmxaZW7F1 z#w=6bX2D#*m`+&d1hbDZ%VD824(oRMpeAw~dfPz9&~8KT0oJp)4ZVjR)rugu;Y_rFv^f~pS(2OP!`u@55S9jd_8n2| zJe7JsV9jJDsX&$DDyBWhn92km!9?>nQ8#Jgr5AbxOXnEh4O%#vCFW5n_6U9+1bfrr z!GZnVn-2FJgl~18Zk16wJyQ49p}v6w1K5t2YSXkJ2&Cft^=QWpfFTmBMy z$7Uj5*_rC6p+V?H<%yQbzks4O7oupJ9e6qItpuY?;bT;N8{HwY`u>@q?R=|C9!`4) zV_H@AFse~ueZxy0PJ3qogqru`r)UQrPW#+gC+A5gfq&E9OIbu~9>n73m>v2z?F+fD zh=0@WW>mz#8K4~Icpn$2D*T@K7f8IDcF*%#9TKW;_Y#v4_om%PGKKC<`yjU^?#%!U z-JA9Rjh5-$oA%-FXsciJyk+~yWl%m+RK?F*wugS8i;8>G9^s*jQ1vHiDM%dXF;qz) zo~o5-1mD8|5;i?t?B29T{{x(-XCSEgS;$><1NWxe6ji+294J0d#oU(PqMh2EE}6_N zF_~Mr=Ygd0@BoTf)eIdgTuD%#ppwblDiD96)mK@y49898RvlxbCUdKvaj^ErGc{Qa zOeiy%TQe9PGnrd685uK~TeC^VGLw0LjG4@>;)7786`rfU0lex7ZroHx<_7;ZPBa^w+K@VrBJT{qIOQ=1{)D&#jq;0R(QWmt#WNs~E zG?d7hnygM*FKCl_!qzL-Jy_K%Yk40UO}FEl;|biwQFy{`#Lv=DG~Q|ZZ4zB-PgH!j6aF{I@iYJ>D|}4)0jHF`#LwDsnfWxa|@VM=DyCg zGkRYrQOtdvTgc>c_jPU&>!DzUz^E5N$R{B*~V;#dp5xTE)3txPL(T<5kiI&@s;whvlVtCh|OhrqJV z5yy1^isL%BlNS=&ah==sc6|Ru_Z#MRGe#WOxji)Vvg4XmTjsdVopU{q$#>;c;7hC# zUt&#GUM9SGsHU1;MAP{aYx4Xio5q(|QzI|Az(1&ci8b=#j{6d8+dORTBm*GjoB zv8JB!p)av!#^rkCP4y+#G?KopmXa^AX67BZO*MIh)JHZC1#eFp1&+`6=$O8(PMTYQ z(~wM6l4`-pF%|<`WAPm{J~)H~lZ?L3DBMadcDFQ z?@|(QP}MyYG^Y2-88;f#PODMj{J*fRw+C%;+P`B>ix6*B>^h+l^L*(}LwYYvDuEbt66P#)r6l zyPkY=mqIE*I1M_Fwec}(*PPtbfVr?6uE|ew`MnL?!Tk<>s7+qb(2Lmwn}KI&a9;zg zjEFaV7G`YG=BP{Yu0Pw&7O z+=7B3XC%F0vQ)Sa<3)dC{{z_T0o0NIFQOK?y+1WbCzn@LINM1t@Yp_2-;8j%vW}i- z9hJ25Ja_Lj46=E__}NdjqgLcB}Wqv-n^kdW{E%YLtKuoW)1C!cdMH1T9axPSgtmhXM46D-8BX?y>B+{<|-J} zK8DonUU=YYr6_IaB8iLQfvI{YnX3$=Nqi!i0@+5yC(!&1>oTlnq{2k~dD>2o=~y7uxu-Tj4wlDNpKY zL9_ph&XzaBIro3!Y>9ePEbg`BJjvetCydrI=SlV!LXz`DJ3@k;TVojQp}Qm#x=S(} zT$+y}?vl*L85$F22fUg3knDi^I&_!VJ2fos61$)J2;3$1#Tp9TB~^p8MJ!1vG9&Ji zs?c3hb@$`whZxcBlB#>C

*F)xBqEbeX%P>b_5Fp2=N8X}D5U%Af`-sTp7w;ZMn3 zQguI-B6msE%ak6Fv!?~_l12+-y(;Q1sj>}1g1eHtq^iQWUUzDXyQC_mdyKhDs$7Fq zROT)Tu~BzPh%9rLR8>i{ad%0TCunk)tc47LyQIoDF4iJ7gX3x4B~?jtC1?qI4SrJt z_+eFbK%DP?d`3Y`W!P-Vkdi^_TfPeu`FLinY!y>*ze`C@{uad*4m9eu_Edm=zjhtqX$( zAUrI<>Sk2L7#pC1%_i19E>b1g)l`5Gi>%c{+cmJ?MCYbdRxj}yvB+9|BwA>ZwGMJ~ zVv!BN&?0LMkZR3ol80D_Re~r{i>!5|NjF|*k+p^rx~N!Wtq~p@u*m)eDk+V{N&+!V zQ)nb%le!Z2YiJ1Q4JX#6fvtAI#y^PC{IwyCTkWR2V0?8QJJ+22Np#RV>as;8@0)r^^BWhlQkQd zP-c@gXD~WulQm~DGG>!CXOoO&HrW6fv&rJW;3J9ZL(&|4ivAM zix>WNhAB2#b3sgd?J?~w47Eo#S+j#S;)TlN1*y4&+AFuonoC*GGMlWqjM1S@*6gG= zi`ZoK3vmy9JDAIFz%9<4K+BQOUtu&1W_EmP4PTvwWw_N&TG}rA1ZM1%Phdvl%QBWb zgR${1;Vy7dO{b~tLod^%q`Oi-RwpqJyERNcxp~+vaEX(dhuvDHpUgb$)-ior^RQdb z#Ock$ZUa+KVIFp8aFJ7*huualbQ1HhJCn($Fb})4xX7u^!|rS@b!zjlTjWxwFb}&; zT;!DIVYitJozgt)ws4_Snupz1E;Q9V?9O3I#60ZIWmLI&*qz7tlbDCyHYQJR9(GS- z>h$JecRo|6F%P>7m{evScH0?!67#UTkjdrdVRsSZ%gn>>Vn$DA9(FsJ7B>&OOBj0! z^RT;=i^R;s?lMN6%slLN5Q%KZ2?5hq65-Ehgo3Hh9J8?I~%!K$*^@oX+!$cp8&(x<=m7c(atY zr=(@w0lOh#B_CB3YV8Cgt>u)q1o}H7TbX>DEL|%ITRmL+qOO z;RF08!xxjTKP!;9+@$L_^Sv!k0_C@G!zVN8`mIdI(=we&*Pp}WDJETiF3UF6r0dV; zDshvpzksn3ldj*+D429t7vFWHR<|mxY06`uD_Pi)0lMq zbxfMpr0cI|qBiN$N(-6(@GB-=f5UMwQQHdRvJQgn)}~Tz*PUY!!(_mDU9!UYFcxZc zv^q3e^-~rY)aFtl7{=;pOA3EMBAXHHdTrD#HlfthCKLh2RKpWtPm*j(Z*kEllNl?h zqfa^&&NtB+8m4L!y&B`RT|$r-)az{M;=Bp4`(_McLCW`I|ouy;G~ZaV*InanDRuK`skp0j@XXDxBvbdCUaaJ2=#P@nZe^KQTX6f?GRj zm7h^!jUE~r87qcp+C*d~EgfkcL!vGngVov)ghIy7lkuJ;k}J=))^DmNrSz*>nA;~KNER%1ew<|K6~CQW@E zF==WzG-*;FC6lIxLX&2Ca1p591Qs0;lVmr~-n^u0G|wBrkgzlqcLB{iB%nskO=ib}D@s2O0dz@L&yGkrgmB9mtNwN}8?9L?gh{o}kI3c@wzLN(6Y?H}2OWjX;d3Ni!QnfTxq@ zwV);JcjDKYng%Dik%n2xaQSr<^ZtRKh~d)L{-ea)yMPXFT4ElRV#DPlxH_5Pk_=rZ zH(XYL$~7gZw5qtPRG}1TdM1#$Yw`1LOv+e);Cj7`D-2O5~9t#Qs#b3>ch+V-y>tRej z`BwO4pYYfDbP~6}{&tx_!`L%_15aMIAEYeyHwJCXTF~DlZKDXC#O-fpI8*Zs@qac$ z`I@f~w1xVEU7_Y-g0?cP(T|i;UUdP%db>uEu z+XFoW>F_NPwKd|#x|SMF!C?87Q}F4(Ro)RJ(nr# zLheub5jPg2>;QFCS>23s0xtJ4TosHpOAr~pA65_F4?ZXA|0C{O0P8HO{J%TjcXKC? zrb+Hinzm_4Ur?Y;)3k+xEw8pvXep&F^oePjq)8xcLUPllfS`t#fwhrDi2brKvDjNh-B#LJYKTSgXtlXx)6n z+MuFuSgT5l+GkO6v$?9Gc<{}~MKDc3jkBSjcC_+lrK;vIm&+Dm^5y~*HQt8bo2YyS z+NmaTY|d*=3|Zuw6IEjq&TUOpleVB}RhMDL^<1K?+?KbjLdsjoPkm)+3td+ESwa~? z{03KQUa&5c61=WT?X}{<`yVVUFIbmV+l>FLO2Zed%f{QVcl#Jz^>^&R`=r*~l})gS zD}5tx_kwlVL>qjqZ*sDiz?V(3f!F(n9s7cH*%53Y{00{W?(tmUt&%DXV6#_NE45++ zy|O8+T7HAGS<9}fvZ*#W{~KJ{v~!^?RYzfQ<=RBq(IUNLW73-yliuu5dR*futEV~U zH#l1)Gwv;$yVod@lb{Ht!4?z}q?{Y2Cn%d|gCRt_H>zyD)rBkZwt)HiR<__qRBq;T z;PIyNBFkcViLe-U1LdVm2Rd!+dihvM6_t#Y52=^(3LA=YfkVUQT^WqN2v~QZd=_lD}wKF_lTMorPl3AUFIZO`W24*zOzs8iieqgk7GT|#>J_tW(5(q0 z$BNk&ggrpR#sg-!WTT?ahQScn6-w;Do@0Yx1>B;g3!({-wWo@C6r5@OkbJ9GG2g~Q zt7p$#vA}}&B}`{rahwGokjfHGt~j388gV7r)*-BJn^&>W20mu(N5vxAKrUI9#@?^4 zSYnezyNteHU9r>#qg}=xsm5z*70WCNtuux)?^joxZjolmlIn?#BluUAEGy1<1i-k@ zb0N{ZCv8@8yu{Q5S9*>sP3raN>8ok)5>rUUMLDYq(lioNm_DyWxtT=M7NM!B!Icvp zAT*s2Z%3F&8}3?D!m7sLzF07Bioph0LEU!6M6}WoF>Z|o$70-a1xiMV)?ClE#=L&6 zQOdQ{bWY%$6D}in6Ei^d{I1?m{)?J;Rpp zfh%l*ms{{ADVa4Y2{YF72d@|IZ^N}b>_?P9V;v^Y5Fnge4=3BLhZSe>O&Zd2-S6@v zP(JTgh%!h_uk^gl|{a)&PNw{|Go*Xc}bP);H3vOoVf+#qv^g4nY)DFXN z{a9SN(@fK!+9*NuO9x4@N#ZZ04MmAdHmqpfv&`Jyl-jJ0rwoon>s*v-6d7!l2qJ@~ zxD2)lR%Fl|mqAOO3|iwd*dCWbTT}+^lCY7114ITLf)g1yP-JjnC<8p%nngF7x+pG! zPKmw{g+I-ZNcnfDcc2Ex90jYtD0Q)vzelL0{Jrt=X9X+e?~9jzS6=yd$IIUzFaMrs z`7e=#P5B)l<-b&LQhozJ|T;fvzXLoU^Ap*EUy#sYW zW*HP^Y3jWqfB~Tv0bCguz*T}30bCsyz%_XSxHc|;_r(S9{-^-1lZ1@`93TR?UT`7+ z2hJL6Mmwnw2)e%XD60Go0!ry`7I5L%?On}%c+&S430P#?&<90+r$9POdb)ah@xrml z=R;}{bYslZNVO*Q5s}YFCA!Gxwzzz57p%zVV{!Qmh4QhS?-S~b<@`9*BF4zOnpi6zdxS;1M&R79MAv3c>ept{9yzi64DHfpaZH)zs(wb zSa3C^Pe#GovG%)a>JhvI9ew4+wsG=@O>2@{!*|rOZO1`m4K|>C0Iquw%Xy16zbRNFD%q?SaPaPy)1?L zt;CVKeI;I~-w9Ug_SLXZL1$0bo>=~GD6Z3uc^diGr2bR#|3f_g z|BC1T$9VpKis%35c>aHJ`H$V+)3rlhr0e5@@^4BqRI~GT<}A-&)f%q9t;ZywCYA8* zU`_ekqk}cyj}6uW!HPtZz8kC=i4^!UShHidlzxkJ<4lYVnJ~Im7H6W|F=2CE(|U0qDo1pp!tX%7W8RAi&dgLsGOvthUKP)L zTs-sYFmoe;@$t+jxXeopYZC>mrry^`LN(NT2h>_oO%fa}@0wP-aw{xP_Fo{&Ett{G zPt^*`Q{pU7jk7#0&hqp)%QNCEAL&>ok4H&N(>5I-ZF8pJq-{D-+UC)MojJB?TNjQ= zrjC(xXW0@SEBJbpa7owB?Hz4URVm^u{~u5xWB!OD)~4#Dh;t-@wAA`|5$6h4^s*sd z#Ch=|&W{#xfy6XLbU+QbLI<%cXA+O|IfouIfF+We)I#Cugg8$p#(8>2oTo)0PsRo= z4te@Ejmb$uoUxY9fov;l%wDOu;-2i6fs--s#^L^jsZ)iW)8gzbiLc&WMU=xx_Rga)4;TnSv87aG+?xS%M9m}Unlw((bo%a7HVHGE>}Ta8{G*63)8goLwB}tS8P{Z=AENuogr7^|{9GF6=dw6I?{fT%?b^K)3q7gJ zLyqnvM_0J|vkbml7_1(fZR)|kP%rf!38^W4mh|rxu-1xpKuW;QAS^+=wy*Sm$ugXV zZHm)VS4$bLiI?Hpcp2UoFT?v?8A=Vy*M%i8GQHl(G-UY$t`L^x8^RKpb(kB4<=QCA zBJZ30dm!pDKLf9|slCGM&2e6DiSzowIIkZHc{Q5(VaF@xEuCHXKG*G~ZuN_?1_SLJ ziv?9Lb()^l}^ButTsXL^Ucg9Qk@pvi!F<#0~#7p_fu#`JmdwX%& zU}JVqHw@FK!m5#PmZ?v>!j3gxw^Dcee?XDcG*jBn4qP05woO5be2-7A$Gi)dFw~~* z6;?kVXY~tlR=*f$^}aZ({~WT~V@F$F>Pr$KGj==fbIvw~>uL{#%*v$m%Mw6tF-q*t zEgL-O|B8H0!nFmN)I-AO!$R)a)x$@GlVB`%>vr|^G`He**VLmvS1kD|Pvt;J7vQJwI(0TEA}+ zEbnjHi6P}PK6xqchp4^O5B#ICCRg6?*7APnb9u77e}`GO@>0V-m+Q*=n`NcOOC9vN zepTKtt2@v7T&^kaZ#C-xUg}3a7c9#A+hiK;!vEFhsz7=F&Mp`7W1rLM@_uZ!lv$>i z`iakpEwke^O+IL({>|r%v%DW4iaC37!9VpmXDjdTb+g)e%-$naSMXAXk3|-K@=2}RjydN%u7^a7a2Eqaj+ki$xEvUBh#{jp26^!3*nxn?CFXu0brsx$+ zIFG4afVAUq5Yofw~;e8U{4rOZ3A}T1G1;~*tBYJR*lIt^2QQmaf!7> zwfI1@{_N%WGz6wE`#4LoA0;VMw`+T`zxo(qmZWtjEEFqG4cRdlF4AT{htlnHr9k0Y zcOa!Z>~x)5r)kcT8`fdlvm1eV>dqZVv#J13Mr(CHE(`5#Gw8%?m@v%bVfdtRQ>_9&eJB zz>CR(8eBS|wE*9oCz~&h_b$a3$LePzDZ4Ge{M?zinh6hPaKlR^@oQ}2tH+zIF^Oxx zV)8mg-a&sKOW+SabcM-A*=$}i*_<*7dBQ@-CV@t30ZyWPiWxjqnbaxRC!Q7gv=K1Q z;ot(D&saasWZ=-rXU*5R!S0EFK#aYJF`gemjTr7`;=E=Fl|Wsu?qg=#JNj`7sB1^7 zdAH*$%;esxq@Kr&nBe1*pjZ7W$y?dRaPe~&UIO?b3Hj}{k;J$MXqZjXAN=#>zEg`%kvvULo^S(1)RuzRct$9u++YsB9`gs}p&{9dA3B5Yy!?j23|sO=>xgt#Ap zlXl|XE7)zL^o826pD=-4-5g6ani*1Ip)L0j802FsL8+vA?FOWZpj}>K>~z#33&0>Y z4BLua>AR7YcLTa*<;_AL6eO;L;r`c2NxcP{FzOe0BdWJ^_J%DRhhqv+L+)xH8}z^Y z0bUq5^#gpcya3eh(|f_xt$+${#6RJu_kyV@GiEM0(mvtt zrOc=If}=>qPwzTd!zApd_38Akx4SX?)(--TzV%(?K8mZ9x(7HN@IK69K33H|ZGKyt!Q5w)U^)&(|%{jHS>KJ^*q6WTD#w(}AEu7f2_ zpmuN^CRDz?HSd zmbKHe*=pJBu9R-Dkpc_?+EOmarlb$JQ@ResYYEiM3CbT9V0jkenzm zAUZf0YVU`vZ|{DL{e#2+#=rl11g>L)oJO_C=nek|_IUFDwLKOF4r!0otY*kRXOGov zV`1BHO)7`0bIpxOZ*hB+S{|TYoOKSSb^I3C3sQ>D!06z6__vtDcUZ9!W5r4iWyM|s)tJ?2^${y(2mWHk z9smK1xv^rD7EHLYV%DE;#nMQrbRYgna3IAwi{AZYb+$!RU7!qvGz$G92};zL2~QZYd)N zOBY7wQ4Shm|NvFMhF;e&tGI{{NvT#H^?P8N~r&m!82JXc#hnsD2 z-8i3#9dY2I&ZdRovkoXc9Z_QCjGo5j49w3N zniwYrhRFhQHie~2B)r==C-HuOiF%OOgv%f=n1+@OUPo=&7z6$fTK4__*DYHZ7}2s1 zKb8st)4U<`{&HgLpJA>>^wAn*?DOEVPj<6RAlF&f!(64=kFk_ zBQGBnMut`Y09?@>P>x0FY*qYK$W*OT&EN^Pp}3XcIf}WV`4uNHYgDTRtBYSE_FTot z7(o>uOK^?i0c@-QmKZfrYX!~}moV}=0jrA}NPV7aG}JXESP(d060R-50L}r^i?1c& zdcn;szA*~UD*h9}4azjMY4s&;O;l}^p!vm@kz$j?U+4wFCy-@fZm*%*to|7xMgNGl zut+tE47N%HkwH^j2HONHGH8y=pe0WRt#KJ_kISGfDuZ@O*vP;EB7+XWi3}VlGPp35 zfviuei{c{al;{gl_~>3kwL^UwHCXfsj3ySTi>3TMLM`R*jh8P+vyf z7x5{^rRu#RfB~Tv0bCguz*T}30bCsyz%_XSxHc|;_r(S9{-^-1lZ1@`93TR?UT`7+ z2hJ)nJNDEE1YKX;N0q-pKq>vr0xm4EtI_Hf30P#?&<90+r$9RKy@u*T>Ots6(JCwt z)Tob$d_F4CMLxI1<#W4WMLr*k%V#K*kL7%yP-iUXcM4byRz~bKRG(HnI8wyNrsk`= zg`0cg+_9|4BKYZGIl2)} zJ*r+J%RGBhuf8HIKQ7c#fltI){;FW50>2ir%$LvA*VP^)oHE+&Cxz6o>;Pf;8-f#- z9T>8FK=9LxUtzjW2{^O(Lj=Dm;4Bnqw7rJvU(`oISM(wZR-?Wx1^bS~l7c-QFW7el zD+T*rykOsV1+)A-Bg7fY&kqEoV#fCxsvoK>m?+wY>1ee&D4aYS=j2CmPX0B{$&W)$ zOh@_?rxmt&{+r_jS?BLHR6kX3GV=u(l-8@CN#;L~Xa0+L=Fi15e?H9oUJCw&FmuDp zivng?-7iVZYHFwhYOIF-hu~_hhB|P1@d2j#OTo@8<}+#PR|2wjNA5LLzgCw*m__%Y zP}S;XDb#Nzj@0cd@k0Ghuu`|LhK1szTJsQ;Aw z{}9jrzvB7-F`oaQ;`#qMp8sE5{v~;P4b_{H4Am^M*HHacJxz{&U^q(ncCe=W*kH}~ zV}rFoup*J9?*?l|A_cw-*6i3VC1A$ZkCwP(<7~IrP!;;ykblt%d>*V;#ll2MoQW}U zCQ9Q>j18GEx>govqTDfIb6peNYp5#x7n!-oy@o0ynODX$uZm|rE}nUHn7NU__;}_M zT;|1wwTS{&Q}1gep&IJF18S|PCJBy~H@??UP4-(Ls-mBR<@vZg*H+q;ILlMxEKiHG zJU!0xj5y0jI+n@fQ4-U%O$SKZoGCbIn+}w=d9+|>me{?9>KI9PmM!72g0Dvj^Y$95 zS^hYbuBad1err{o6mgD3kd|5>FXCLmie5Ivi#RV{#QD)8E|8d}hz_U$SFyc@>Nx+8 zD^$ZVzH>q{bg4b|Dg`247D#2fA^e-esbv==LWHEOk#|6EB;RAf!O{A&d(DzYvt zziGJV#mj$wSbn?LP_38PtdP9DhH8U9349bCfklcMwMm%S9A{=roS6&a%)B#X##BaQ zoSCip%ruS0Ok6tH z`3J$>n2&+GjQWgUy3JFc^|`iIij5rqVc41 znRI?x0>~{!iMhRo>OsE)EEatfU)=ez){cB07IM$79zG(RUuQkeXY zwAY)}osl1DZFsqzvpwNkumb!o%k4G9*V%F~RutgtQ$~GVxO+0>&a8ZXBQC`Qf|VZW zskjus>7Zd;EY^Ac-Q2o2lDHK@e-mstf zoV^$z)U}`coJ^GF_8O{R_#ELQyKt|edd}wv+VF4o8mi}gjyD-Ay4O&>;B&|qi5h0} zqR-J6FyUT9^^(s4NhByF{tus{gVNkyL-k9aeRFC4UPJXOpFLwFJWS))KKrN$##6uX zY4XXPGkh=mG^_}*dkxiZeVQO6AhXv{z2dW>qaw{-L-jkK?a63~5$LNv7s7Zm7ACkp z)yzxYjDJI;Hja94_8O|!{VHf!`Tal#c!u13ldG`bT(6}>@>94UD4IiQo@}pceh47;yuBk0SE;?{ZrZ zBiPS>Q;4XTn$*7nQr^y+YQNiMC*bwFX_T2ic*_+g*I}D$>FLOIqDe)v^%6^%$PxIB zgC5tMNkZl#Hr`8|nILj9zIrVI!6ba}Urr)yZongQW|MT{EHgtN?4H1{`zwqb2eT&M z$8Em%FyA1cBGi1?%@@cECyI8U_}7lfS?~iXaTcg(*)mkhKv8PV^@K7%-kuv>Un1Ff&oeQD)M=1z!#g zW=GRb?6dE&+qn`&7JF-mm2LR!_=Kd`lH3N8Blv+SNO8#`k*GD_lLAe7;q5q=EB7}f zQYH|&VsC-LME8&-3Ya3lW^(7jR+v%ceG08GNK~WF7tcuQt&roW-zUT7|3COj$-~h9 zr~AQ#f#!DXj7}6pE@Uy+v8Y)c(1#%04W?!nL0UmupP^TC_8P3)i(qzi9d<85V82_E z(B6>jpJV*tx5}-+BqQG<3*5KJWJ+BHTq+pEzxqq8bR&OW`@RsI<8?vLV^xhqm3wS_rsll>ByJI+!e8|9=BHWd3 zkB3BoM zVe=6>Q&@l!8`52zo{lX|_#r+w?P5!)ji04Z<{QyG4&GA1krdEMC~{6f^BTOwNk&4H z4wd@JsDu{9CA26mApxC)7UfB3ah`-0Gix=N0Vl+So9@t3!5H=cT!T(kd8^Q`1&JS^ zjeW5$sZRk*u{PG1?dY6iYw+!~uJGC+tJm%pqcGU)vrhSIBdsrnLzB$A7s=j{ZsH}C z?A$b}ZvJ6_P9FN+Ba5-oB-bDqL%o!SXLi)6GX|l3c1Mjm$N23X)%e)2&NZ+!6xGVj zvProhQw*QgU^8p}RWV?(Ql45-IToKNY(=yztB1cFVmq zv8%%iAKYMqaZhW|4xine`#2acWHJc-4xA)DF=dy+ZhM9MNtMLa;e~Jh6+Ybb1hpt? z+<=fo@x$=f7W#>j@apiwAi+S4Bua3erLUy->*`r=j^2@G5fqP+<;L zmOPR>oYp^13x%Co*r&O{`h%3c&n&so!n$-R6g#=eLfHRgGC3WavhgLOxu>JsT-q1Z z@)`G{L%fF=1mwZSlqI%?j?fY8AKadXcGnj5Uc%WhQ_sFqe~$?LYuuKf7M1 zQ}N5mb*9$FN}2nXmz=j|&9YVD9pj#^wCKR1N4cC_S6K>eDMnmQuE$w?NgN+uPOhsh zzRcp|my_%97MZa~T&*0r7aR}PT5NTQ9dS9io@hyGMk8^Tlj|BwRGUv^FDKWNEP8r~ zjxf=<^qeItJU!Wx%p9F$+1eHB&ROm0BP`XdQK{VJ*HTDv6eWVRq9uiCV zQ8s*KJltJQu4h{G>O8c)oLnDmvFq}%_HuH4jKyxS*y!ct`dEwF5=JyPcI#O-cxxCO zyPRClw&<1+ZSDZ~Fsm|+r9BKcmy_!`Hn`IU$1W$=^%mEiie65x=i1P$jWOEg;A<0J87+f8eg(`$!G3td z%gOa37*g#nCx;=`?s9T5q&mEuoQ70~Htix00uJZsSb$qAX4(X?Hn!YDX8gs^UPQ zUde26JvGU~KzC1hDt1q~cK4L0Y+vf>bG~P|oSwqDEC^w>?IUIqgd7B%l`{8~>vPXC zYEhrU@fyA64Fk*vVDBl{Yi-EFlo?s;b+pF3r#uKK?&R9m9-N$NZ0qdWhQk#4yr&RY zF$**7L@x%fu7SBs8u>qY`IHs6b%GB^^Rh3L!%q_K;l~iG)vG{QSDPZHMd?=DJ zU(E_-+h($6wpslC6lT3W)4#+H6P3{}oSD=|VKvT*xYKbBK6Y9GXRC0q zLj2uTIQ1v~&Z^!X9OLS;G1|S#)<|X$5Z5?5ws&wd^c5yI=5#B5Ys1_wcZ`lh^;zu$ zlXlqK*tI=Z(yPb{<35Pr6^I{;(A?LW2Mpx>qCzH%6*JT0h@&#sngp{G)B1zzd4L%z6m65 zTLv44DQ+4i^%A#<9y?X|n1$P`(8j%lK%G@MaU=fjs`k*I^(vo0!Y1!+I3;cv@DiU( zFbigT;;}d=nalbfmvxlUdxQhak3c%zfh_M~>X=}sJCLUUW$7>{bGJGWHh~Ouorh2o z_Z~nje{fwvH4Sp&-h&3*P+*I6uch8fT^D}~izohe7Ek=0RfbP1w$Hz4lG##V1C8*W zuxWLV|G_cXLXWamwRg0&Ll9o#TNZ^0cM#A!fn3lt(L=p^6PQ{A{5?Pl$6_n`u)J(9 zO76jE-%I=?K}mjNc2Zvh!ZZ~B#~G;$uQBh1=(`X*z-;hR;#J@U?B8h)_8Y?&A zKV|$N65WSHtD5I}iJ#h3x?vbMVb*Ob)x0KbmnnXiVD_AUe~~Ph3&Rtyd=evZ>XJS1 zW3PRF#nxJoG2$0Ur{i~1zrw<^YVAqkS2zj9(n-3LR!xwZDwf_R`sx^y(*_gdB?Mev zW%{1P>!$C40c(cRzCrfYU}qJ?^m{9&?kaaj^dG)$(xG|#HGJ;PwNw?S6Ij_ZZ?4Jh z&3eO2=sXd~*V()i(aMzfeXOJgi4S14GBrP`?}Io-E=BOog#V8V5$}OkyJf)ty@d#y zD<6Ek%qO zWhr9JC`%Dz!lejX1U)9Y6hRT;*u$9kQiKgH8xvcKuz{H|`AZQt+3GQQOA$7>2Cv|8 zDWWvK6p=Jb5z(8YOY@c@l4dEQum~;1iYkdzMq8RF2(Q&HSWcP(xllVfm6s3Wb}B4U zNRUp-h1$s@Cm}ej&g4;~!T=b|&W5kREfWNruK*Z6#3$joWrASGP!8WH;b^wOmk>Ob zPo*V_4BurxhkvVSJ(2fxb4v#0#HBKfQC1A^PW-S~fa5NF%4qf3r><_q;##;^pbx)T zV9|$LEU*-ZUMz^?M=lmv{2>+#Eb>r`1tIp(iv^>Rj94tlC(2ta2+@aLEEt_6f3aXx zsu7C?qf*5e3q~c$Uo04vD1WhFRHFRFf{QbbX2qzzs1j z6@4ntWK{4-Jk|?zY`s8_Tra@$=Q8_W?$Qp|3?yxNAzhzk;W8atGq8af?WSjXC9}qw z0m;I^vn^TPo9TL$4G!N-57!K|tQlCmyqT_7TTtFi57!KIbj<)j-kO1yH3J%Dt{Ef) zO1&U|&7cc`=`VqI_E(uVJrH{p2~5vts+HR8lkn8ppEPCjw0+l1ts*VUY9|ls99JIq zMwt?pr+Wpb*(*%cxy++tArh`t=edN>&r5i{B1+~uEk_DpZ&piBl5~Z$~k=1 zLaE@5GFwTi%_g^%AaWD1rScNWyMukFn%1uK9&Yi}j&3d^OzYIS2g=mWdyPE1QNYLp zWvXkJAgqOG@!B~CxHA~EW5_1CUCvm5RvR>7X7?*Wn zBi@x@qb#7 zPZPu0(;%9On>~FV!dBj5Y#Is@58z;TE#NtAogLenXJ>bG&#qt4)Y3G+VfzWK3tL)S zw#}W}uwZ-B@lDO!<}Pe)*tUJXkT%pEKWAGXUc#GgqY`fJ?VHowligXj_H8DJ1UydS zPF-8uP&fDZx&`%h^>Dq!yA$P!8Kr65f<3XcJW-J-!}cgO-779W2|-w55HBhruwJO^ ze9tdEvG^UuXQodsQP9?cBfT@RL&Qszgb?rSD* z68B53H>mP_ZPP>sW060SrNe|%=|m#UNF+d~G$y2Fn=d5R;ffLf7^ip&c$x$15)&EO z*vMlfa`MbHBbT~-F^aB4)T2rmxh!c4RGvmgi=c27VHPMg zWGETd%Mo>+qj40qxw<386o4Xjf>Vo8RlEveT9Jg81DIZn%xw4!p+|8^kGIr9Hj+6u zaId3DRj6i4o&p{njpX<`CK|{}aEN1tlO#Erm1Fnh5?0LYXaG5?le|LRoD&UTltbyH zD5CEag0%~kce*-4Cv)1Ot+p6F%xP(n)V|asWM~z$#3?3rJ6i23jcV7}oYJuR%c9Cw zo>Lm)Dx%5;^X6m@t&A&MWiB4HGRzH)0|$|u<}t-;;@Bjumc{kbDdNPaBGyFetvIIv zlj4dvd88s9k*gQhTWvg@T>Vc$O42rrhUO}q;IwG8T%_sIV5dnloN^zTOT*f)qjJ31 zfJ5oX-`8&CG^ogGP;sHy@ib}J-iw`F$LGY!DwzcQ+{v`a38UCbz9d%{ zZ(ZDRIbwUfHKk~nPKs$K#fzqbu1SuMH_3dBl4^zdpj>O>b~ri!iB+x}f`~TI%(KD-q$b7cFERl6-?Rg{<{p~f zzq$Tgos>nZVU)Uy*YhYfD7BPt4haIX$#p>!Qzb#Ph&rHuZlhlc>U#hWv@uaB4IWb@rNHy9jaJCDI@^`5dV+g`o zY)WJ!YN*|0x6suWFH&Bi2^*dbMg#E_hEY>I^^wFBf|EMaW z!Yy&a%{3A9;H6RFI^`T2l}K4!j^#PQRX9Bbk9I7canh-@noFU_gfT7}aJV_{A*4f# zk#xBgxZF}vgQA^Q7DlzQDAXuuWpS=SQ!De8G-?-|jkg1#_+&LQi@{JRD(ea-Ycqp! z*21m8NIRl+7vYeLD%OMzaP>fGg;t@uPRJcLrm8M5e`xf!2ivv+BXeIniv9mLEOOOW z5UsY9vo$)Zr%@wN7&ih%IR#_mD|RYck_)#5`5Q*xj)!=^b@+yvGjw2(T3h7GcUb!v zEjv|Dti0*HOori#2S?$8h4O{kjV7IEFP&!mH`ek{@{KfMV>fdOl^Y+>f(kFB8SjK1 zx0)E4M=Rm&*+y3vPD{|1{@Yd8TwVN~hS0gO8>iA?E#%f-Q46S%e47}rPt)GrqGztB z85h@Q(>ZaC%g$|LZ9duz*zO}$5EbEYibG^MR=&K#9Q?m*m! zk0Aa`L8t-*uE3`b<^7Rd=a(Xjheo#HY$Ok)d2{-Dd**cPZ0_u9X`QoS?%a5QJ@XQy z;U|sR4R!UVka246_KAn!O@~;31(3p=w&vzJ9rG6+H@g>4D7R_U5&9&7OJYyBc007xK413yI^QQKl97>y9e~} zz%hQ|bGomgtzXT|4Ak?#_YwOm-8ZylP|wi^p4V+do9-OaEA$LT&}oU$K0K)RzcjS* zj-jF9JBK#Dh*;@2^xb;ji^GWfA3A-fJ}^A^(RU8%jr!rC1A4_%gAXH>;X71)reU{E zw-4%l0QYU_*sE9SHwI9Sp`ixdsrz>8*Y@?b>BVgWZMtpazD=87zgwS!(r+5NLmiXe zsCTJjGkSQlZriN3r&VjZLC=}{#*p9ooL{Rywn@z%xAB{LaPvl0fhM#aHKV+bjMkiD ztz$$B%5MR4Mm7?}nS%{_tvh@1$Y8H`=;ryiwZ_p~i_<$}#6*u#Dz*-4yR-t7)_I}i z8#?enVbcyaBs80-;z~n91CoY@#^G8RTZC(2Xc1uxgFmL%XbYiUvzb}zguIaIC`yiI zAZ-$yg$)N0sqS092z9SXEP~SR|NH#c(9ze|H_+DJ*Vfk8w@Xb=H?$A;_3eH^EzBGk zcww-iy|1qyK;`Rt#ZbdWC|`fOnvv#_`3XkTaMov};f`tAVeD|IgvQX~A7ih@$U6a#V*W?b zuhEq##)wg9sVSpXVXdPKVXcdfp>XD#xVh&9bxiGIKLjsOqL0+RPz#`OqFc}hr(3A* zs2YZ901{D2M2l$|v@z7O(G?4NDT)P+blMLu_3D-V(5u?S;NT|xn%=J#R}Rei>q}}Q ztmM$u`}Ng&f18?>{?UM%QK=X2*XaR0m;Y3gV;Knx4^%b^7YIL7o2ipuTeuA!&W3zWm9jUmI!| zyiz}`R*qBkX`Rva!_TU9nb(wt!h8}%Q{JP0qw9A5=$v&ky7zbM z9kG1SldzYjMud8ZRHG^-m3@N7Nf^KxEKHIZ+IA{2LJ6^+;A28%%L`zq#^ynkeZiP z3)1SujPo6z**nzVuG>L8q=y;?KrkHn-3>o~gZ+0ui@Y$Z*r=ZZ3}>G@p3X)+N6k&6 zgN;J{>Vz}~0uQNWBv}j%AJumzuTR#y?jbGNW9kHmiF`>2ig41>xL3 zs{jt6By;dHY!ju9PCF{`+Jfd7q0gd(AVft&ou5Kh%PL_yP%Zrz>H{!HZ909jJ_yr6 z4S}uf!6Dso5QD8D8l3bU`;Fn*Klre}N5A(;zgSlc>N_@WM3iSY zy*8w;+D9YQp{7=%7=3r3qr;$W-ypIZ&?oE798|(4-aTkk>5h$ChW`4ZPB(O-Z{F26 zFo>si_2S_!J+oa8f%KqG|465Y7dKppNWaj#!5I2Ri2NiDAP1qtEA`?beJWya9Nx$J z2>%}{DKMMo<-e2OBA^!^ z95UVfw_#6|_ubJfwKK=DUY3@4(dTDzOP$}d$8vjHX1q=&WVQ>&enD$} zr8kF>LqN_jJBthp8V(p>ox=eG{5j)`m}l;QwQfKvFxHlLdsqq~(Y_tV^Y8{9Mm;p} zu+~wln?GO(?LEevxuJ=(>70*o0tyB&@sgnfQm5^H=ufcSGZGi7IT<}?|AD85hoO$o zqY+%9UpI3Y&SQpk+dMR~LC&(CZ)m#%^Pu4uiQo_FdG~O`z`tM!0b@EN4MltYHGL!| zE_x2yuRaMx`}+sK1--jdosikTAA<@sr{SvyVY93BoLdG5^$U8RU;gSth&`+`1H%W@ z^h))PG%Ph{e(>vq8#gt4@F^s=Sl_GL0dY!1tNZKGAWU7HzcvEIUn@-QZB#1hcRimr1t?Ida{+zIz>)_Am1^DA5` z3pE%SLt3KHLP0O0wH_K4)OAiTL@8P8;iwaUQxP#O&lN)jrX=?03~a$u=omNd#eiuZ zrx6EWZq&(XbnRwdfyu|R%$EI~2qvlu&9(0}%ry1l1N2~kbdsLZhJRk#Q<6<>4qSoWHSGR0s`;5qZ5VjSKB08TXJL}4Pul#*(DTE` zs_E5p^^5*#&-q{V^n3mNSG?*U@NSy>mk%0~`Z@%xyleh$V&*~dUM!KukPemv=N#O)(b$#mn{r?EmdhR2 zrV*OwQ6)^N!$P9KV(-K9A!rnZf;3oaKBngvCE8G%2lf7qbKClNVS#WEiEqfk zIR1uTeAj`i_U-M%w5;#g`}Bdf;a&cP+x_t$Yu~u}c~h(hO|jOzGAq2&oR?w_kqXeiNnu)37#$CV(Gmuc2)t=jmiyj zp+&K7BV0CcjV=rby9|VcT?UvBy9|trbGDAM;9WERG^pkZt_k3`5kKp{NZ;M}2&AKC zribtU!a@34(!(F{i=M;Oii8(pIJciO#52nDco?^aHmprbGE9mAGtyiGor7kI+3K9* z-@mwF`$n}Pt!7pBwVBWt_V3px`MW>nkGZLDaJcQ*``YN-f8X%%{swg#X1oVcCs^cK z2xEYp%;a^G`FDLKv%`RcMueRWyQGZ+R}Evlyx7#+QKsIgdLufTw^wg*twgPv8HuSg znVTR-F^Q4d3#|mFE0IcjYgNRIZGvK{g zRa}e_{4T#jJ&{PLMVTLQt$13cf28`jfuFs)1Ji_i8tlLAcmMUpAw6ZE5f$zVf*o%g zO;ms150X5?1R)vS;|IyY#FQyhR01^wZTuI0iOl3eJlt~O{S|+}U#3fffGgX$DAWA$ z>lAj0d8d|QRpqoX$yyuiO+ok`*kc!dc3qiYlBo04?R8~%V$=M6AJF7lOm4W+!g5iBl&jKl{F#PixJ(!X)yEm!+Qda z`%=RAO9%YZiFbLQ^|?U5KY~9G$PG5C_Y82?!4@nnNqD#v@^py9v9a{Zf`R1K!8QKc zy0R5@-qyOZJ$2p%b!E%zytC@cmeqM{>dMqrb+xTU&7}ZbcdSIRy41 zN1vJ>|va6?htwz~SZNZi{W2=vWS{JOe& z7q|Y)fu0w^oi-3$?KkGqZU%l|1h1Ow>bD_n7vFy{(7yx^j%UanA{o8>vyjeK)FYSe z`80xybGj8VSXP_r>Nmq_ud6?|4*TmY{mh30jN5YbXIgqtY^tkOOX|vY)YUrL?4#g! zB(1+WfnQy(a>F{zx7-AeD3L>X9LGS6A27uSOgccSKua zo$`KKE*C!>$wNUpwSuesTA+Ut!6ARuSm&*${9OE3L33k-W)+YQ_nxl@`dbkk`DYtu zzN?-L^wtQjR>JQ=cq$^FWdl%db$T7tE=>2I4+MHgBrYqI_04prK81D^k;^hR4&b&5 z{;qEZco95TSIdc4%V8^V0Dse6{x6|UBREBMS_*3cYoK1P3+ZnCWuQM7k;4_>@ahEAX`gA|A>A3j z2{g|`J6(m0FRb&Bqgq+#q4FJ1gD(fV6FfLN*3(kq=`X-NQj)`=jhur7zHY3C|B^Df zmicpS_GRi@2>1jDuD6Io>epQ`B3#nSM9Sf8260dSCD6Z*@YF2zNZi-o40KndT&5n; z0@;p;U*IM6ZzFM~jkbWTC3UsEND1c`g?4%(iO&JK@@)js&+9yhz;qAZLZMskC-uAt zoumnt)$dHp?6A#hg#mgD;P|;TiTlwb{7PK5!cW)LUucXv=+dWj%EPbcgjzy3cF8gB_t;C$c22qbRBSBRGEx^cV3)K?l4=LUUYcQkMrgp2hApg6<%?-AyR_ry`^Q2&|kUenNAA|3Vb$f#cM_g3MmyNE2LZee!NADCiZjh1kET|KfLO{UD} z0quF51D_Ph2dxzSwCB|d{v*KeiQv(e+v;lBVsHXhXwnn#Hp56>kh6aw8Y%6S1h9#PgANK8x+}J0XRuK=X|{ z4|;#-w7<%3gA`rjH>V zpP-126WLZ6&X*_t8c7?98s^LQB2Lc3jaH}B!RxV>&ne~o5nj}3b@d!%J!YH>$c{;y zw7hcu$Vl27fgLSv^7#_zIYr}!LMJ2k{}g<*LzNm;8+jX4J;Fpv*2FZ>^*fy7Hm-4RO4Y@=(0+`pHA#cQ3o`b4J}M=qX?u zjB{SyDHtx+N<7{(_$&BbnOD}8K_sTR98wovN8il3AnmS;2V-pP6LGxf5&Sz*x7>5^jbVm4>IO_Ybo|rkPUt8CVt4PmlI!=h>k3MuQ2W7Ms z#Pc?e(eSKm;(6!B#z=g$+5f?f7WNH-*!_U+rox80d0y^`g2pq?Y2=5!osE6HxGpvK zPC+bg2$(krWVddPmai4aT{QM0oyZMCy-hoC$t_;$!PSoLIw89kv(aA4(`w!nid;5i zuc^Vc$h^;!iwEv9)b5_H?$(~{9&eAmA*iLJ7mqaV!4eR!V3lPZucbBHgbld-e1O%R zoh^+v1K!Efv<>&>n-n{C$_1-jbMSimw%G*-Pu^U@-N{+InYRn~68Chpv^L_(nGSOu zXK%JC%arBWAa6(0gyqsB`hoIBZKCw1$NUa*_>goTJ`BlQv$tjIG`l2{$&%6dp?L@GH}xuzDj zHEqx0c4xB0Dr~e5q=>>u@gp^rtAnu4>%mV2mo!p7TSz+4P#oV2VnyBpUpu;5@Hmms$C!(;v8``=qfzR^)fI_wZ*Z%J zd>up1wI6Wb0z-%9A>TTP)?1F8adh@4XPpkwrW+equUWQk-Nwe#&s()*-I?dCYHal0 zN;?+=YmC?7TW?I^;|*3?YD~nDrs`T}4DTK(iv>#I4O3P=IWsa^33E103{bueiS}C} zOJ^o?COtGzR$)ggjVW(T^dp7qiWxD$u9pe>uUu#F-#6T-=@Dwz>_!oq>ye_dMk@&h zCtS3_VtAGh&v{%mf?w0+EJAsGm`~Y1!ln3;mM%x}q@{Z`MpaQ-!q=FvY(V#Y*01Sq zLgG(_LPG3$@g5-u@e*??}T^=rD1qf}8^ z!cUm6Y(V#G*01RvhuKqSOXr&sO!r&X zuj#IUoTJ%6x`(VHtO>4_SOb z_YUjVbQdGjD8GbHGGW<(?kU!<={{}zxpWDC*Wv@Z-?x5E*EiLbqa_@euxvoL!1^`a zj~joEmheAXd_eb;*01S)z*KFH7NR+%e7PVVEgRtzOjtIc`wr{ZbgwjOn@gAQRaTV) zx?GWEUC^Cw_{q@{o?&?m=pJSLnr;~uYoa_5E;nJ>fNt9Q@dT3RZT}m}#s%;hs`YESCma)}C48a@%La58S-+(_LfkB_Gdbvk5w z_cH6(blXjR=gLO7!|Fgl_af`pbgwt{oueiE0jmQ6-5af6(|y#~_#7=^+g)S>x{n)t zR?|HKyJVwsIGoJh3uKg*@PG-+26V5oeoglWrk&<^ApAqyb_2QxtzXmqfRSI0mN1`; zV^>D^ChOO9lSU>vT4Z&|I_3g>1AcaE0u@m2={y7r)9R?}T#!gI8QmzuC_K=*X(*K|)a z^2^Z@USee$&|PNzn(ljyKSv9;4k-sNzDMOi_yH4^4e0Vi0mmA2e`5S^E!{~*COKNd zlTBDQpj&JGny%Hq94+Bf@S{%BJr7l1EGUQWKU9=)TMPHQn2cKbJ1y+buqz z%jYzx4|E?f{v0jgM=d^}`xWcgbbn?1Ia;21Wdpi@v3^bWS{<)9!tXO-*?{hK*01UIqVJ5>F{=NNZD^6vja=CXFE(M> zfUec=tobljW9mLfOL&qA%La6huzpSVT2sy(E#ddsvIlgpvwltYE5@IrCH%O>2Xwz` z{hIC{jXy_A_)iue(EW?`Yr1QV{BpD?4)>M8@pv!Barp5Xj3@D982=pp6yTQP$IWR^ zNAO-<@17mmrfqPuJ=Se^J}hsy_H=u7JG-*2b*G+o=Im@!n^)J~)Z6aWwd~o6h}O;a zcy(<%`|7a%&hz^*pb@y9)=tt}Pd8r4uH$D3ug<(ERks}gP+jKruDaIt#_c$0-|E#h z<5|RBWMG{On~@L_Y1+}zj10OE9skss)NIUcy`bhP1%6F{*FBSwG7=& zR|WbeM0y(9!nn+nG+g;%GePS&bX#x0{w6F9EkrYPf28H#8TdiRx>$}|KOE>=$Km!| zAYHx;=WiW;ZwlRgw?a?xF|8h9(R=}V&G<1J#(55O&w&pAhv_k0Dt9M-j_%K(`!nf) zB%bASbbauXSByAK8_7(v`2sY5q~l*VevXdqWGU!Q30sj(kF@Nn9NkTyfc$1)+J7Sg z<&U!C-+S_NMZkK#bp*uk94=5ffo{=%%wpR zm)<|XPde6}w;FcfX)7;+{Bv~s;CFNybovl_VZx(w*5 zkpb(Me~d$M{xg0q-&yA-^{nsa(g4cPk(R?)M^_KJdeBv~@bX6*{+__k(Jfz_)XOm^ zpuV_2((vy9e$1czZ3W#{&@FV#A*>cZ{(T!irsw`h*B%LQ-eC|pKWV@54BAbEKc_k` z=?;Nx__vh%!^5|xtsJyeG z)9%mF)#TA#wqAM9aY|+pGWud4&}W#)}@xCJ2{W;;JcJ} zN{-Cb6~S`+j4lhV`f`-RWri^4r5h2ySAUiAZmP8VduV%DjxzjcGotA|_7PkW6=`oS zJ&=v~qn&1;FS*hlTiE7IyK7;a1MRDYtrTfTEo>E!_R_*^IoKBgJ7(dOfocCNY#fhv z&cZB(wPzN#3PrnRVOl^;*ICK=$~(PcH}~QbG2C%<|HWh=X*!w0Qh{bHV>W>>Kze*_q)Fu#)XP-v@a)YauE68 z5o@z|#mO@PEk6-)ojem>h3Qw@ArI8=Zk>fE&9Uz^2i$?>nE&vP@UtOg<@Gbb z?_Oy40VVML>DPJqH}c>==fMS$hRXCy^WbrSuZO(Y@+iMr!1pdi|7GA(??k{a0j8Xo z|GK>RTL53YEUDSji0{k8UkZ3{1b<5&{v&`70$(HXzX;gv6QumU1K8~gB+Px(rKjie zOTwhw65+oB@U0Pe8sOU^FqbgyL43A!^2_D7^{7u*-irXcKgw%&9{lb+m|yo?drhcH z?{?xvUp!Uj-IE7@1+Z)X36=Jq0(_V353fM^o(1goixGYiu-j)v_!YqGq&(%&@Baks z>_aVJ1(WLb-;usjjQCE_(fS+-*zNfv{zSo_1|0FH0(R#*h+hSGAM#_pl|w()0e1VA ziQfj;?XxA^3)t2p;zxew0e1WDnck^@-Cje&TL71#J+mhw+$r&0`dmuqALju~ z?*jr~Bk-pHyZ(jo?-BfT!S4s`&L9#0ZNTmf2;rXqcKcHa{{}Gsw&TbA{va^z24URK z8SddFeHySkt3r4t3nG8DaF5S}R|xz7a7=Hbz--5a`8k07A+s$<`{@$=0-?VW@Rgx{ zj`Q9xc%J-c{M!J#{3<8@ zoljwT|4Z;^0Y`k=4k5f-1fD1G#S(w1z#9aAK45p2fa$dYc4uS=?+|*I-Uk3*8!7)S zfZbkM(tirDJD)`OK8a5|O8&kE*zMCK{s)5pg5X~jxKLm-=|w#DQ;c6>heT!>knj|N z-xU1u0{=wd6@cBIZsxZ|@GAtrTj14_-%Wr!qvaF)n;1$lzdHmTFZ2%rc6;`j{3yM3_aXArR4Q%v|yiGR7I_j$l>Z!Ym)5U~G|D(Xq0e1VI zNuRJoRy-?X>Bj9+uOXB7$e0Cwks2oC_}pX2W) zfnSpJ?-cmMpdtSc0(N`x8UG2uZeKKEZsFh`$7!TL2-ux9BK|qSpDFm?3w*P{1sI}p zd~5B?IImjffTs)o7=dpSc#*&j0-p^y8;QS0@UDJ)1$OP_a)Cc8@vj4XQ^X#96tFwT zN&de8*zM^j{D{QAR^;`Jz?A~O4EVALKff3Jb&{WtcC!+AfL^((!aL3MVg8SHPWjCM zTnqi*1V8gzAovpujCCb}FOd9p3heqrz7om5tMFrb9}?K<>m7jIIaH>9H(+;Ok?^B{ zw}kvxc?Tr^G)eDSfnERlhQOzeeECOMY7byYr2V-zoTwg1=ng>m>elfcwMpjq~;je!Ad4A@GL;{;I&M z1^%YM?-%%a!0ucY^M6(F?-l%?0lWEI8OE19tm4igkRFe;nLm!BDW9VSo*?lT0(R#U zNPoKEe=7KufKNFusV@V}@!I)n#c4sshzaOwW_eFSs@p10M+Jh4B28sV$N&g=J zyYsiC|BT?*3%`#7z9mv$-xT}}68|@V-MKl&SC~?}^KOKz0Y3!(UHd-*ushpA{5-(? zbNaj#@J*5WJ5TU~prQOO0_@JeFn*ul-!J{e)qveuFye0p?9R9m{tV#mNcvv@{22KA z2GXW{zYN%&w<7)50P}Aze$4+nfZcg!;-3@zUj+Y#z>@{WlrlW4MEVk0V&HicrZ-t& zr@tovcIPZezeMoINqXx5yK|MqzZ3ASs2`v)yZ+r@n}z-eNxuuQJHJW#e!=gS^gaOC zou?)K!+_n{e8Qg;ddJ^G01YA zoPJaT=HK@@FMvA}usdT)`uU`f=;H}O@7lvz0y}$nK45oto$*@%yYt0_yM^A3x32=c z5Bxj_`B5LP2iy{tZ=Clr(#yGR#{Z(k=XxUf{i?v+eoFY?1YQO|;a35>`wJK!nRxEJ zG~r^v?hXXPWp>Fa)W2H5QG0Wg;15dr3k1GE;8g5_$**|#*y^*19oR_2|o$googffeTmO?6qf&G!0rqs@je3GxhTR#B*NcZ{OFyC zf863E`w#OmgdrT!0BsFJ$qTBgP57~=TbEv zGfk>;MZa8T(=2zJHG50y=HfBqdB>knpS$SST!+>i-i3xDn+x)q-7QVcUTc3xwy~+Z z8w{?_KN^4p8|qoOQ85kkJa-q?XcP+<&ObpejT#lbVBTE0muYl#!vdlkahME;D;mQs z{5Z6+v!!dd!C{|!wx?^)NaW}#&aXGIkd!^O#pHK1?QCkpc_s7gya{OS?L`QWbl@yn zwrj_z#b3B!;lj}o$Kk%I=&ekaU1%83U{TS|Sb5HAr><-~=k(LpE?d{Q?$py(E~COx zE%CLvr)f_k&auSoqRjxa!oi&s-w4+bE}A_+&z(Ii%CuaS2Ymxkth6F$B+) z!zN%^X(YWnpwa}Y>?x<5vGUB*mNeo)3OQHTnC)t7>x9(Xn{d*t4Ik87qvz}9HCUxH zdS%ihFE~$!N98-R_<-MN6vLiuYwYam>h?N#^QcLuv1141Yp-%@dcXqVxG@tx;T!d49QDMlb99j$PSg;Mw6t}srho=yk^+kBE0=0$G zH80m+Y1saS10#2VWP2bXHV;PuW@^K zWBYC#E^Th=0G|8j_4Aw&9G{tQGNUcUH6w z1u=V0deBI^_aIrE0kx_J;n+q(jghmY7Q^;nPN$+(v~+CmfHlB2mQIv&J5asREO+3v zWoxXx@KBIxiALpNUR#@X_BnN@d`C|?JS9b2W>m_lQlxc4$(OXZHea-EPj_p}GIMg) zWXE%UZ9QFm#!MK+GdcrX*0D3n?S>`Bc8VI>O2bYXYG5l`xVPa<2&H5D9wFGU4x3Q$ zl1#RBNmp0T|EueKdfPUFD9%q5B$vQfw`p1fX%j>_@J7%SDG`xKfqyEypT560Gb^kl z=aj@*lCv{!-n=z-cIgu4Z!*DNvguX!Vx#~RS>=g-?_!(wu~upbGt*LaH0tKoo%^9E zznPa)A)>!h0L+r z*01?H$_h1_vnkJ(=Gu zy?E}E*R$}lVl5t6rtNxiV0Y<5787Sudb#@nPw|m_?!$U~2FWAMi9u43(m1!t+xzyV zQiC@@fDCBX)xAJ(@$q<+34Fq#{baT3f zfeOj@R^>E8(ZP;cYJDiCk^N)8K>dYAit-<>r18XcI~>Wz*5gTC4J&sbXCDK#$li zPmzF>JFIy>;#NjFQ*e+#>vhu1b+w8_!AX1jiLNe-c*h?&iSH!F+@W339fD1@F5QEc zGgX|;Y?3JwP|wWcI+1?U?pZVp#KdmJU770o7hpCX+huyav(mk^hmLKUE;t?eA%%Ao zdBy8}qWY+f;ktCm)YJUvCB-p<3_2L;uya+58(45^>MI>%glYxpw~M;?=JBw!wTiVv zgZ2j}b8Un5rANQOCbnoPpS0h1c+{#%>kwNNxCwHJ=?<5G`d?HXK5%&&q=am%`)Rz8 z8G+CO?+vE)MZ|ub`u`Ai9I25ZU-$AknS^9U^t3h6pwW3|A)uYP3VmeL53}T{DXN}{e&%UaSx=mTEADu8 z&JXerzz5)&y2JDJHXl`PtP+30_#fjB676C&e(LVkwh4@|M+F}o15iuJ0*3a+@1WnR zH3<=<7Sp>gaV$Jm+%4YzUiUgiCLnkNTNYnSv#*>x<29~Yt`)Jch`z~ZY3wwg1@yD$ zh=RdM3<8=QmGbkBDcZxKKN;~u6B1YU`3tx>)+IERg@0J~E}NpF%G>t)kldKNZ#aMh zr=atvY@)VM4Q&Yz_@Q2`)HDnQH~i=xWTj?A1SGUdf#l#Kmo-9))?xj}hmY?JU`@5` m*Wu^8=a-`V260M_#SD>;`<@#SIdBJkT)0qj>$G@Q#rq##`|rsB diff --git a/src/util/area.c b/src/util/area.c index 6585c3e..ae84d1d 100644 --- a/src/util/area.c +++ b/src/util/area.c @@ -30,52 +30,59 @@ #include "area.h" -void redraw (Area *a) +void refresh (Area *a) +{ + if (a->redraw) { + if (a->draw) + a->draw(a); + else + draw(a); + } + + XCopyArea (server.dsp, a->pmap, server.pmap, server.gc, 0, 0, a->width, a->height, a->posx, a->posy); + + GSList *l = a->list; + // refresh child object (after refreshing parent) + for (; l ; l = l->next) + refresh(l->data); + + //printf("end refresh area\n"); +} + + +void set_redraw (Area *a) { a->redraw = 1; GSList *l; for (l = a->list ; l ; l = l->next) - redraw(l->data); + set_redraw(l->data); } -int draw (Area *a) +void draw (Area *a) { cairo_surface_t *cs; cairo_t *c; - int ret = 0; - - if (a->redraw) { - //printf("begin draw area\n"); - if (a->pmap) XFreePixmap (server.dsp, a->pmap); - a->pmap = server_create_pixmap (a->width, a->height); + + //printf("begin draw area\n"); + if (a->pmap) XFreePixmap (server.dsp, a->pmap); + a->pmap = server_create_pixmap (a->width, a->height); - // add layer of root pixmap - XCopyArea (server.dsp, server.pmap, a->pmap, server.gc, a->posx, a->posy, a->width, a->height, 0, 0); + // add layer of root pixmap + XCopyArea (server.dsp, server.pmap, a->pmap, server.gc, a->posx, a->posy, a->width, a->height, 0, 0); - cs = cairo_xlib_surface_create (server.dsp, a->pmap, server.visual, a->width, a->height); - c = cairo_create (cs); + cs = cairo_xlib_surface_create (server.dsp, a->pmap, server.visual, a->width, a->height); + c = cairo_create (cs); - draw_background (a, c); + draw_background (a, c); - if (a->draw_foreground) - ret = a->draw_foreground(a, c); + if (a->draw_foreground) + a->draw_foreground(a, c); - cairo_destroy (c); - cairo_surface_destroy (cs); - a->redraw = 0; - } - - XCopyArea (server.dsp, a->pmap, server.pmap, server.gc, 0, 0, a->width, a->height, a->posx, a->posy); - - GSList *l = a->list; - // draw child object - for (; l ; l = l->next) - draw(l->data); - - //printf("end draw area\n"); - return ret; + cairo_destroy (c); + cairo_surface_destroy (cs); + a->redraw = 0; } @@ -84,27 +91,9 @@ void draw_background (Area *a, cairo_t *c) if (a->back.alpha > 0.0) { //printf(" draw_background %d %d\n", a->width, a->height); draw_rect(c, a->border.width, a->border.width, a->width-(2.0 * a->border.width), a->height-(2.0*a->border.width), a->border.rounded - a->border.width/1.571); - /* - double x0, y0, x1, y1; - x0 = 0; - y0 = 100; - x1 = 100; - y1 = 0; - - cairo_pattern_t *linpat; - cairo_matrix_t matrix; - linpat = cairo_pattern_create_linear (x0, y0, x1, y1); - - cairo_pattern_add_color_stop_rgba (linpat, 0, a->back.color[0], a->back.color[1], a->back.color[2], a->back.alpha); - cairo_pattern_add_color_stop_rgba (linpat, 1, a->back.color[0], a->back.color[1], a->back.color[2], 0); - //cairo_matrix_init_scale (&matrix, a->height, a->width); - //cairo_pattern_set_matrix (linpat, &matrix); - cairo_set_source (c, linpat); - */ cairo_set_source_rgba(c, a->back.color[0], a->back.color[1], a->back.color[2], a->back.alpha); cairo_fill(c); - //cairo_pattern_destroy (linpat); } if (a->border.width > 0 && a->border.alpha > 0.0) { @@ -163,7 +152,7 @@ void remove_area (Area *a) parent = (Area*)a->parent; parent->list = g_slist_remove(parent->list, a); - redraw (parent); + set_redraw (parent); } @@ -174,7 +163,7 @@ void add_area (Area *a) parent = (Area*)a->parent; parent->list = g_slist_remove(parent->list, a); - redraw (parent); + set_redraw (parent); } diff --git a/src/util/area.h b/src/util/area.h index 5be636f..0499e1a 100644 --- a/src/util/area.h +++ b/src/util/area.h @@ -5,60 +5,23 @@ * Area is at the begining of each graphical object so &object == &area. * * Area manage the background and border drawing, size and padding. -* Area manage also the tree of visible objects +* Area also manage the tree of visible objects * panel -> taskbars -> tasks * -> systray -> icons * -> clock * -* un objet comprend les actions: -* 1) redraw(obj) -* force l'indicateur 'redraw' sur l'objet -* parcoure la liste des sous objets => redraw(obj) -* 2) draw(obj) -* dessine le background, dessine le contenu dans pmap -* parcoure la liste des sous objets => draw(obj) -* le pmap de l'objet se base sur le pmap de l'objet parent (cumul des couches) -* 3) draw_background(obj) -* dessine le fond dans pmap -* 4) draw_foreground(obj) = 0 : fonction virtuelle à redéfinir -* dessine le contenu dans pmap -* si l'objet n'a pas de contenu, la fonction est nulle -* 5) resize_width(obj, width) = 0 : fonction virtuelle à redéfinir +* draw_foreground(obj) and draw(obj) are virtual function. +* +* resize_width(obj, width) = 0 : fonction virtuelle à redéfinir * recalcule la largeur de l'objet (car la hauteur est fixe) * - taille systray calculée à partir de la liste des icones * - taille clock calculée à partir de l'heure * - taille d'une tache calculée à partir de la taskbar (ajout, suppression, taille) * - taille d'une taskbar calculée à partir de la taille du panel et des autres objets -* 6) voir refresh(obj) -* -* Implémentation : -* - l'objet est en fait une zone (area). -* l'imbrication des sous objet doit permettre de gérer le layout. -* - les taches ont 2 objets : l'un pour la tache inactive et l'autre pour la tache active -* draw(obj) est appellé sur le premier objet automatiquement -* et draw_foreground(obj) lance l'affichage du 2 ieme objet -* ainsi la taskbar gère bien une liste d'objets mais draw(obj) dessine les 2 objets -* - les fonctions de refresh et de draw sont totalement dissociées -* -* ---------------------------------------------------- -* A évaluer : -* 1. voir comment définir et gérer le panel_layout avec les objets -* => peut on s'affranchir des données spécifiques à chaque objet ? -* => comment gérer l'affichage du layout ? -* => comment configurer le layout ? -* => voir le cumul des couches et l'imbrication entre objet et parent ? -* 2. voir la fonction de refresh des objets ?? -* surtout le refresh des taches qui est différent pour la tache active -* -* 3. tester l'implémentation et évaluer les autres abstractions possibles ? -* -* 4. comment gérer le groupage des taches * * voir resize_taskbar(), resize_clock() et resize_tasks() -* voir les taches actives et inactives ?? une seule tache est active ! * variable widthChanged ou bien emission d'un signal ??? -* -* 6) config(obj) configure un objet (définie les positions verticales) +* voir config(obj) configure un objet (définie les positions verticales) * **************************************************************************/ @@ -89,38 +52,40 @@ typedef struct typedef struct { - // need redraw Pixmap - int redraw; - - int paddingx, paddingy; + // TODO: isoler 'draw' de 'refresh' + // TODO: isoler les données locales des données communes aux freres + // absolute coordinate in panel + int posx, posy; int width, height; Pixmap pmap; + + // list of child : Area object + GSList *list; + + // need redraw Pixmap + int redraw; + int paddingx, paddingy; + // parent Area + void *parent; Color back; Border border; - // absolute coordinate in panel - int posx, posy; - // parent Area - void *parent; - - // pointer to function - // draw_foreground : return 1 if width changed, return O otherwise - int (*draw_foreground)(void *obj, cairo_t *c); + // each object can overwrite following function + void (*draw)(void *obj); + void (*draw_foreground)(void *obj, cairo_t *c); void (*add_child)(void *obj); - int (*remove_child)(void *obj); - - // list of child : Area object - GSList *list; + int (*remove_child)(void *obj); } Area; -// redraw an area and childs -void redraw (Area *a); // draw background and foreground -// return 1 if width changed, return O otherwise -int draw (Area *a); +void refresh (Area *a); + +// set 'redraw' on an area and childs +void set_redraw (Area *a); +void draw (Area *a); void draw_background (Area *a, cairo_t *c); void remove_area (Area *a); diff --git a/src/util/common.h b/src/util/common.h index 313a3b7..09a95a8 100644 --- a/src/util/common.h +++ b/src/util/common.h @@ -14,6 +14,22 @@ // taskbar table : convert 2 dimension in 1 dimension #define index(i, j) ((i * panel.nb_monitor) + j) +/* +void fxfree(void** ptr){ + if(*ptr){ + free(*ptr); + *ptr=NULL; + } + } +FXint fxmalloc(void** ptr,unsigned long size){ + *ptr=NULL; + if(size!=0){ + if((*ptr=malloc(size))==NULL) return FALSE; + } + return TRUE; + } +*/ + // mouse actions enum { NONE=0, CLOSE, TOGGLE, ICONIFY, SHADE, TOGGLE_ICONIFY }; diff --git a/tintrc02 b/tintrc02 index 4a2c72d..538c7f0 100644 --- a/tintrc02 +++ b/tintrc02 @@ -22,7 +22,7 @@ border_color = #cccccc 100 panel_monitor = 1 panel_position = bottom right panel_size = 0 27 -panel_margin = 0 0 +panel_margin = 0 20 panel_padding = 4 2 font_shadow = 0 panel_background_id = 1 -- 2.45.2