From 395583aea9915886eb74b54e5082ded2b26d5c00 Mon Sep 17 00:00:00 2001 From: retoor Date: Sun, 28 Dec 2025 10:23:03 +0100 Subject: [PATCH] feat: add maximize window functionality and MRU-based focus management feat: add focus follow delay configuration feat: add demo mode timing configurations and wait conditions docs: update configuration documentation for new options --- bin/dwn | Bin 243624 -> 252416 bytes build/ai.o | Bin 31792 -> 31792 bytes build/atoms.o | Bin 23608 -> 23616 bytes build/autostart.o | Bin 9032 -> 9032 bytes build/client.d | 3 +- build/client.o | Bin 25112 -> 27136 bytes build/config.o | Bin 14776 -> 15792 bytes build/decorations.o | Bin 9624 -> 9624 bytes build/demo.o | Bin 21136 -> 36136 bytes build/keys.o | Bin 43432 -> 43480 bytes build/layout.o | Bin 6008 -> 6008 bytes build/main.o | Bin 27544 -> 28768 bytes build/news.o | Bin 21056 -> 21056 bytes build/notifications.o | Bin 21296 -> 21296 bytes build/panel.o | Bin 24280 -> 24368 bytes build/systray.o | Bin 42136 -> 42136 bytes build/util.o | Bin 19952 -> 19952 bytes build/workspace.o | Bin 13376 -> 14328 bytes include/client.h | 3 + include/config.h | 5 + include/demo.h | 8 + include/dwn.h | 10 +- include/workspace.h | 4 + site/configuration.html | 51 ++- src/client.c | 91 ++++- src/config.c | 19 + src/demo.c | 778 ++++++++++++++++++++++++++++++---------- src/keys.c | 2 +- src/main.c | 51 ++- src/panel.c | 5 +- src/workspace.c | 74 ++++ 31 files changed, 896 insertions(+), 208 deletions(-) diff --git a/bin/dwn b/bin/dwn index 1a1b4c033b4e9e2462f730f713fd37d1aead8be9..9f55182796164e5e1048f48383f419d2ccb36e3a 100755 GIT binary patch delta 110818 zcmafc33yD``~TdLA&JBUNyL%`v2O`Nf*~Q85Jc@ewUjO>35uF%5{xlKFRr$}s@2w7 zMUTppliU8Df1bzO^M2mtZ1366z1BV`m%7cIS=X3z zdU5@$Hm|Zq1O2(520um`Bs@GQIGpqK&xW~N&ixeiN`sZuv=kH2KVSNCy`&RmDNxhk zR-|Z1acm2&Sp1aNOUo*(sKw#pr~H<2Xmy_hJbC(OvX+fx`Lr>q{J+v7H!U^Pe}S=8 z&&VzB-dND>WzPP6vf)kHnEqMcl=2OfV&$!sn@Gd6ey`ll&!#DRQgZP(d;)*=*WqCr zK3s>}C-D@H)#2IeIX+Q`kJseqX}HZD@uVqSAycO?Zv)4d>+pOH->k#uXm+x7xT?wL zl*Da@&oqULB^ibt8h%}ehi&8uQg!%;<2i0<#;ekuv7?$DPaU4b?AYKTI)>X&T^)W! zGZdl2=V=Lw*5TP2o}|McX?FS(j`$7klwQ;nhU*mE37V$EJ*M&;r|NLe?>RnChr8{p z5^##&P(?GeR$vewtr^;^!<%aI`8vFlhM&^mV>LS$bvP2l;x|0hF$QafUh43*nju5; zl6CCPS&$B&q}d76;i_h*Zgbmz8;aE_EYJ*Db$H!Pyr`3O_-ajltPao7@QH4m=igxH zuNj)=W>ER#@2sYfsly92e7O!^uGv|o!`&s6t;21GX*>rxI!3-`C|`%W4PDpa0h%3E zhriV9Jk;Tu9h<>3s$><^*9`gT@Q5FHLW6X88%;h!hxga;XdOOLvlGj3l)ti@cCC{ttrU!y6k)!{iBzFCI{ZRRDEt;2uO zaf2qTJX-;a;23>bazt-eETa@Dd?`CYA!E+F% zQN*5THsf`2ypP zU?@m1B;uz8`P+j0MFEc!@aqDu3b-G)Z(~zIk)a9-TLp!O0)AD%hieHn0sBM1bE0_( zl>tVj;r`1PaLxZY>y*IYsvN&4;B3ySS-LLZ6uJ9P6>zE^_uoSSr$n(o^1qh?!`%`X zGp0BPUR<30dJ4F=fcptJoBnFNAOZIg;gn&m2c%*>G3V2fiw-QeNM^(^FU?d3&%>}%_fJX`V zZ~<>2;9~{6rGQTqa9gy%m?kh{1Uyy1TM76)0dFnfnF8KMz?TcSh2y;atr8e*1%dR#zzwa76WUe4Jq0{b!2JZgn}7!icz58u{1FHf7(E1qx&odg;1L4eQ^2DI z{4D{G74TlgxXoY{7`=-bh9m*+BjEi7ysv-{7w~=pK32f{3;0BaBmdO=1_+F4g2F%n zPZjV%0zOZ`2Mc(nfDaMyjM6cfU5#NR=^*&*5?0I1>*$9OF`jX0XMWMZUyfNxTk=> zFW`Ox{(*o872(MLc!3dC#4s4N9XH0UE8r6a`3M33P{5-Fe3F323ixEg-Sux37|DV{ zl7OcOcz*$(BH+UXe5!zt74T^SZks4DJ`xzy1bn)HrwaHC0iP$}GX*?Tz&{r7f$;{yzaQws{+2Zxc@^d5E$zOg_i=pUce1) zi(A140rwQ}jRNi`;NKVFsQ(~=v8jlG8IgehAmDWce6xT@2>2EOj~4JO0gok|{EwR7 zHi2Ok6n+%&Bmv(p;Qa-Bhky?k@N5AeE8w=B0%M}U*d^f81bnxErwaH_0zOZ`_Xv2V zfbZovZ-2`L#y&w|m4N36_*wzqFW{R6{D6RG3;00+&uJ^n{|^a_d_m!`fS(fZTmio* z;CTXmUBL4NTy^7=|04q9p_>8hsDQr|@M8jQ(00YhhmH%lr-1(~;C=#r0yr;!1cC&{ zNkJh@z)uNyT>(EW;1L3TM!=&5{Fh?fW{4FSXNwsItAL*q@FW30FW~(J{DOcF7x0S$ zK9=FgKNa02fiY1~_*KBC3HW6JPZjVh0zOZ`e-rRb0l(HqU@R9H*9Cl)fZq`CwF3UT zfNyS>)yjINOvnSH!J3hiY%DxwO*`bt{k|}2zG^fS)>@!u)ld4z*LK5b7-J5NHyECn zLtYiuTBxJv{D0`azn0YRuA@8Y=(alA)8 z3Dml;qwnbGt2+9;jy|EIb9MCI611(b*7g!WVXaL%`a2!HQb#Y-(F=9-934GNq;074 zDIx%RypA5DqlfC~zB;6g4+<-=p*U@8i^iUn$S4Vf((VcX3Ta8Bd%X8d9C(u|&*VfS?Iyz8Cm($Uub@ZDH z%m-{mJ>PQ<6w&u}^c@|2RY#xK(I<3tu8!WzXj^gDyIm)+Nk@ODqgU$aWjcDHj-I2V zXAx}^`u-_8f$=(ejE)|vqxKJ%Gprh~T=&L&VypBGhqjPoi-t#yv789^tC$LFJf2X5Y>gZ)UdZCV< zqoZfpbifoHJzhtT(a}S7bYC6aT}OA)(YCfapoNZZtfOn|=nx$psH4m2=+Y%=Tdg;&h9erO%-_g-mb@X{1eL_d)mY^~I?=1mfKA@vF>FDot^hzDQOh+%&(Q`za#{XF& z0D6j!9*y0YI=6_{#{a!VfHoh{(VKMicRG5dj$Wpt7wYIaZrVNm&vFCq z`GAfducOE4=%G5gua54nqdRGI(fHq1C(uGiH`dX$b##c14%E@*baZJ>7mxpMe$n}W zj=ry>@95~OI{LhhKB1#?87++edvyZab@V13{hf|psiT+a=!H6Z4$&Qi@qd<1V2X|& zucOCkwA|C$R8D=rS*c3CMtS@DwM*5<^V<7uOKtNp%3&W=slCz1XiyvdU07&!TAp`A zxH=D4=!9?p54Y$f5C6d5HiJZ;yk?^D#QuYa$5Qw*!jUV6K~CBTD#%>dM{O(a7`PPPQVoDo$B zq+Scjpn60}23I)9G4iDG5w%Yn4Nu23HixD|%z*4!76Y+5P4npy^D;TW>M%V&CFhT? z=E)dQ15eBM##fV0$zBse>H#vOH0WbZvwVIEL96|CvX9ka$pxYQbstfVLPWWyfYWl) zglp0RIbz~R(h+(6#J6k@B$QvG-6wn>B~XpalMGgee|Y4Pxa?EN6iO`uB1lgp9%_YQ z#BLL=es+!ru*VSON<1nV%%QP{xa@2cUE~qeQAMT{_3Ce?`|LjQdVZ*+O?yb`pgGil zfAWkEeWm-d{lhxGkU=!7NObm4dC!M~qbllM;wZQ$dJ0?XTv{K9S2`!5R%6YVe5?Pp=c{vyGCNOk0s z?lmeDP z*~i#+DNHu0ONc@St@a0Qr;Qutngx{4`Gi6mLeV*+>c66grHu#Xg|5` zLB%=K0An)J`Eypl5byl(*}?^o%Uv}Y1!9l!`z%sd)(Hvd!CUw zb4_=Tp@Mdm>2g*RF+bGcfOfQkFh zy*)@zj!LOf=1*|dhX>@LDWU$9Sf`~j9_kVnTkvnEi;Zv+*xbO;%@KOiTbb4bpgQX`N`!u}w^epv0#DqyBTQfD3fbn4elra$#Y zBQPEGM1Ht~YBd+vJJC6B8G0L(bpZM>a?Cvk<@YPXS*N8BAk<9A&vMd7m1<7R!oE5Rzzr zp!y@#R!3{qhn{F`9tY(4AH5fx3#GJserhPUHJ1Dk_1+L&&EVs5h3O5@g4<3HGVdqt z8Sn{eiuLx(qo>y?M_Ae+KUf>&dYU7DK0QV{ET5eo;d>Z~^S?uhv-CM8m!DC$3iGw( z@M`M23?!&#qgt|ID#I-`%2Q zA3&CJcgyo;*7HQhVE+3f^3Ivfq=WLGGi&+y70E>GmP0-cughfo!`aXTQyWTA3AIOk z#D|CF#rjcY!Qic3^1B~L2M@SOG32R6T%BP47xRXang_*BH|2dFx0LqCFFtM%xrZW7 zq+0b42k-jt7?h}OTkUb&veoexStktEU+7WMQH+suiM5bk^#3 z&}b;|VXYsY;0194#qo@le$*4=<@r)3C|VRZ&C0HyZ4i6~IW zK34n1LFhnIDM`ps8W(K}QMD15Nx1@iBFC!`9-!fefDh)lk??7Rr& zUVv~UW&nwH|8RB9k1$5oTq&(h)%UJ~(HlK< zg8hK2DyoDgIOsanuxxpJT2O`A;FEnV{jTlXsUc~p9@u6+zfhPxJI zNrucZ#gj!g@H?Z5`0xKWe~4Q@F-taPG_O(_S*ITM>Thra@&LNJfcQOslan$6>wkNh zvo~>e%0#e!#Rx(wpKI7)V5Tc_W=5s@uOLnntq(L-6R@so*Z>Wy3hd%#`E*9@vKgp8 z%A_lCt8AQ8tID(67-7#)I}g-`AqsnAULwcMiMFi|&=A5e<~Y8@ zwDZANLfB#YWhWnepP&yd8hn#Fq33#pLed7`DcdONtD^xkq!hZS_EFRar$vxx-^=pL zIX;10fd=Qcm#OK{;5;fzt}^$XpqfiGKrVa2Fm>)$J%40pXBNG zs^zyJpBS7U(i485ZjryUx0ANZckGRA+hNUvET>uGe?obi(`R5>0;3a%bN4*sv`3h* zL3opiZVU@9 zS)L!``y;4CX3zBPkMgDYvC@xn6~~9hY8PauW0vuo^Rn-P5ysBv<%tW%7>5+d7ZZ9xBbZ1lPdwGX5)Or(Z20oU*zn=0vGd$Mnn9JM*zKH|YZW*^y)*v(g z+lpv|exYobK17&Ycd*sb8}d%y;ala9g?)WVB>oJ`>Fpiz?1iz?R{6lfhCauBaYxd7 zo&0KH<57p6W1vPM8PqE4&~0=@cdJG~QJdbMyP~xOx+x{LgmlnaOGuv43#qF37_~QN zJL@$w=%N>}JQ!DNWXlT{1se}ul{YM^Z0kS?a9T`wsPD&8Vy?m2e#huA$o2kn-tP%( zmg=woe)egmb@B|7*aBL7Z38<;FrKKl(BESCtP6SzB-HdBWcQ$Jh}MrHjzO*-8>o-3 zor;u+E60^kpta6tJcjWU!?||yxXgxL)gdqZx6d{X6A7nU#$zev>a| zwypyA9mEQ62rTr*NESCZGAC|`tNI$b(c(C1r#xYCH)H?P^4`VujZvrNyNhc|yXA79 zb~YZlCinaFnemU4a(B6|@xV!Wnp~~&x|5Xb2kK^2EpJR#p%5?i^^32rt7wTe<2 zM+<7GOg|^LTRPI1{j>bd(szx0f0q501(nbCrs6TEf4_q3I4vE2mSdJRYEboOME&78 z@+J%$>JDO#j50tN4)@nz7>$j*>HV1{FJ2bhWCt;#RIJI}Llzv&HSa4}S$(u(?3 z`5bY4l_meStbsB4xa_UeD)&Dq?ZwDJJ`%S@wkWk5#2)AA{}AnT@1ImAD5E7uD1lL5 zqH}}f^UX#>p6OwZyilnv<;XuOJ)7j9gQxM*8MOwBceUjz{QUk;VWA^n@OHMkaz-7* z+J7JHp;uZZM=kGA8I5MIfg&(>IGEu4Da6CWlNK@;FUgCS*D>BXD(_m}4lVrE^19MC zx#njrq%HEm&qC3Br+@abv`K#XSzBqd-176_-W4xWlK+Uz*=wMJvENpo=Tmx3W+c>V zcd=NzIQ=7#ys<}6OgZY||M6T}HcEzghvn`bZ$n3Ps0-s+Sv2}JOJ4hVM>OL5pKtI> z!*xR#rCBqQ7o9J!`yvBrX|iH*XJ0J*i`VM2zHm2{IA>?cZu)w+x53o}ts*WhPqI22 zeY(Zl5O23Q02id@nr5v-WN`AS>*O;3YY&TE{x`yJmp9FW7A{~l9GtgV-u=J2(hu^j z|3yg~w+kA^*)O3)7o(}MH7lb292FNYsqxOSl684PT5eLVhle5UwO8`s zgpr4LhCy*J{iGd~5*@zZ=fm^sD>m`0E>N5HNh;R&=WLz{qBhwssC1W)v{I-=wH^if+MC@kzh z(CSEMSs7(*;KA~i;)j`H1no7tcZCkBBlZ*)X0ll|+J*f!e9tq7jq!Dt;Bkgmm=7Rz z%|YyDX@EBX?7=)mwCW-OFU#>;gijT4500NDe3(sOl;(^>#OVBQd>i3S1Y9%p4dImp z+{o=LA-oW|cPF$EtqKWEC;Sf$x6$D8iZhalaZ*rt#_>^v?-1|;j`t?~O98*m@p!`L z3ixjvZ%+6G;3!C>$r*Ky_Ii<`aANcm6i#ymf5O`dcpk?+2(R;R{Am_&vw-j6^0x?o zfh|aPN$lqM*(`6HLA@q0e&CElq(JjWw?Y=jw-Nq>fN$gYH-sw!p3U(kgxdssC&$wX ze}{0J=0sXblZnwoP{`p5qX=&);0HP0oA6Kpe|??RaXjH=1bh>hZ%+7woZ>35t>=tz zVq5^jo#Qne_a}UxfN$iu2jOc3d<(~)ZUw$bz_o~P5k6JGHF?`vVhj@)Te+b_gm)Hj zt!lOr-bBDRbNO!wuO#4FLYEL;xUV>4rFaRY6aL3OTQMV(8%id|NkL&D$43#qL%`>A zyf@)r3iv#Z#}hvH-*|JvCje)yz=md!!4<-Z(N9qLgya5%w-fNW9QPo+j({)V_*0Bo zs#(Cb4BR68#opo!FM+%b&F?HRt_h6A+|VJy^90<%@oj|vAmCa_d_%Y*;9AC(5N;E2 zt%TBn+thaiMjDSGnG|~b8y`h@O98iW`QC(w3V1rl;|VYGZ@f9-5760L?Ka*MC3A&v zVq5^j-3mr=+@J7$0zQD_9)zzE@a`O6vI+Pi0q@N5bi$_!_;cGX)?Sl|F-&08;tHb( z?=0ZK9Pdqd69FH~?ZgvaNx+})W%ipBUWj>vJ7W(x9&RJX9|A+=41dB;3ivgSdl0@u zz<=TRC`@3~F9rMv$9oe#SHSmkJf83gKNWT^8Vs^Hqd779L4l99-vXsHo5BfiN4PWU ze*_i|0vZSun-xUo9@l$B#QMpfJBZP-~I0_w`0h{<76_OZDIW*LV!%8NJlHAd}|T^nPKPxi_U zzORG%U9a!0#@T!2|9xLu+8`hLKFU~gulyRE4RXy*LyceTk<&Jfl-A3CY^si5uOI4F zrm^r{>}dFoSm%vp7R_0bV7}{mx$6&A>oP2irSRGl^DN7G0C+}S#nT*UImsST>NntcdgKrVD-uvOh&4IN}F~Q(VoE0#8J+VfGPc#Px ze1I^-eKYve^fOai5uS>qm;-%JkZ7Rk52mpsoZdPz*OO~*ZdNN7Gh@lmMyE`$_#DtC}?!U~HXKZe39JyQGy}7HjRxY#UQ)AjL`HL-Gr8V*&AXe{`XKbws zLfJag=(ST0$f_%SC%4VANZ-mc5&l;GHfv~^iQ6&nik~ZcZ;Plr7fy|-a5Our$-?dg zwl-t2g*r#>wJpY&xg%@gwqug<;E(d4?MI9+x5>4443NH(Q+K>=Y_(0kwd0-A-<{9As-Po96>RuYF1zbHulLZVLH)f_-nHwGax&Idv`k8{-%`JvDgUrL&e&*; z{CIaW|H+%QEULjXX}{_Zb?JOL=BF-Y|N5S*s5vv_g+Dd)c?-)cw&HNjn<3}^G@$Gd z0Ay1QpCQ-ZQ_K7Cx70=-sH1K2fISVXENA33wa2Ey!hr)Ug*Y*vx(r@Fdt26*dum8k zKF0dTygeepp4Tz`d2(i4>YJL$^TF@(jeL1;gUai%j8C)|s%_WuMRGaXgmXsCJtBwh zt71&sAh+IErPaHdP>-*;&=Ck>9m6DhYrJL}FO7I~1P?16Hpq+iRW`o!L)Q9zJ0<^5 zu_MB&S-m!emqEXbtf~7)N=D;a`O1N2M#DzA{J~VegV?t%UUYq*EPr*daf5Dax$E?| zI@qBo?YkzX?z=!u!kkWTKcw!vL_|toWrVj>QT9DlrfP*XMUI8}`&w{awUTMyBHo}3 z_m=!WSPe+y9L%)N&Lay}?6-aOIps82L8IQj#@oQx$y&r*N?o{u6-LIyLe};dK@3@r zK-yUzt&U7Onx!q~17uZQIa%I(sCG=V?|5~((=%o=9CbEqv84p!t3`$oH?9n@!(9qv z&;5dIJ{;PAJGRW#%20ve@86N@vBF5*cadeihPw<#At_#nNo!Sf67BkZ5>~I+-LM>i z%c#9yP}8%VqVUD(@|?rfgHl9;tSpmPP?^a44hQ*s2|;p0*ZY$srN;~@AnWDfcO}oG z&vEqEg!hbrt5fq##=jrQpB&$B?6@+k5z6BJ1r_S0wN8cZuED z_r5F3dd91iamqJxuXBI+;Y&Yb%o9w<@I)g#J5KI$zPB_^{_=dsihv?77aZq@R`wT# z0hPwdFV44?#>&kuyocW}FC38Gk>9>J#q$#sV=2@4Pvq+tdl}2$l%p=i1~m8-MeMZX z%*HU%;8Q9o)3(|2{7cPjV`zi$OmZ)4Ym+~P?ExL}NNz}LKvR1J;YSYNzeZDv`eB#X zH-t&$lTs~6S0b`?Kn?^_j-eLUAW(2fJ6rSJ&-4PmriVSCfF3dVDXR<4Q;&r%*A%^q zNtiyw1AXjtdek%R#>4e79I^OfDjUrlaBn(duJ!q7Ir-N=jAK{JLoU}fhG)uiFV{1c zStM`0yukS0qO8~}jf~~5;Y48zV1pjtf{^JOEl-UyS1WCi>_T=JZX^0k{TP0jlF=1@r* zBwx8z!+#LvZ*aKh81s3Yl2RT1Jy5Q2J6;+n_q#m~zx!`jmIh{BzCFPx^^?1*HvAsL zZ(q5qD;>Y5T#KYW^636#rGf&I8cgIP+<%ohG@O!;rz0^x~+_Oo&vdaG1 z)FgG2+df`|-xH4~Nr`gYlXm!>&3^YkX)7gu`m~dOSELDTtp#$4gV!Hxx~)+{{i7+RC>zFj+Pl2li+T1sA+8(Kv7>WFz$+P#UWy`JN|4Wq1%YHZ_! zYH2L(Zt(7myx2E&*F5EcQR;2HG*;S?1;}O%}GuFH$m#&mx+BRs2D>rF&Y~Tc^#U=_faSha;*0I_6`w9 z)B>1yWM-pRHkVIJg&jOH@xa!Py;ro=Y3q&cvY=tKSwAa2ye>9(J*mkp!&Cy=J)k|t zJn_`+G3Hsh_;)U{(2*46uvQcL=_;w&OOO(SIioV{re-hY#34Y=_J6|JI|Ri%G%rjC zUGK3o?$6V&VpQ`&YNhpDr~gvIOG^!_hZw zD4nPeaUZEWC*6ZRHYnRC2f^y16tr3AxO+RPiQ3<*<{GDDm6mE60~;w9OG~vSZ>6xb z6kQNz`LiPMthXN-KRyb@hCOaR9JyA!p)Kcl#P5vSKN~{~ z$`iv}X?eV zA0@bk;&T`9Z8BT3tSvijS_v`l<}TYy$Tus$?Ro3)m(YwDTNpfBb5*@shP3t8Ksw( z6xr|=MdmOqep~ZpdOwmiplH@5)0?SQM>DqY_)XdDB~>=wj8%?#N#VxdnkkP!53fL~ z$iq<-0xXpRiB_7Ml2N4!|4V4B5z9>qw!JG7iOWR$(wPR z)Aea1ls<+z(|{3_(q@rIu%4tCqt!Az&9PwcG%xFq)4fFaBIGN=&|b|@7>@d2#x)Ww z_3gfN@WRf>Pz^0%*)T#0DJzXNE*q}QD=WR{^$7D=9G||`Q2D#8)XI2gm=f(H4f5*A z;jImn6+TjHW5;1TF8N4dMq|w(%Ik8{XsN3*!Ynm1E*z|6nx&Z9y#}-NQbJ$$VTBu4 zj07ezq{(3Afmv!-eq|%%2xWQxC4;XGQrh`Rm27)I(h5SoR|m=8gksm+N$pw_ZK!KR z=8q(dxsum=QZ5v@$@waEk{=qtP9m9_7?Yy%_gBaCxEa=i&na zSRIog8m+$RjdJW%sGReY0*#S_ls}P}#z9OV$&UnlxDiv4kwGvL@90`B-qC@Y$Gw3{ z)AG{1cHZXgotx*VrnKwQ!IHNSdSOSOUXDlS&v(78cHaMBZi8y64kNV&Qn^;O)%=gH z=>y(1kp*%n^bhDysQ}dZEIX~KqizBrM~CKCN7Qefy$z`|!+p@n(>up&!&1DSm?w0= z;MgH7Ex$VRD0_$IYNPL{a9V2~7PSd#s;x4C&cyI)6iE;rJp1F6Aly%#h%dLOj_T;t z;t{bC0dxXBs16Mf(9YuXq8)F`y19lLezsA?wA73wL zjQQ<@_5P~&5FSwP5#W6MI}PyY81wu4&9?F#{M6^<7{nTxS@SR_WAVbR-bdY;w$x@~*!W)_xL{t#q-HU7~CiZ~s-r zMiceC{lVc4auafsNW+QNla9wKGQr`U;CRbZeY-mAP?a10QoVqISet1hqI-pBuC9az zNVNi{ffbpyF&5e3f z^6CB&YHL-Zay392V%*?x>Y@Lv9YIbyiK&@A`ME^9sS8@Mzq6^FLJAnS9e@g1g zxC!9$;`kEcs&@jR0nLC?UuM5#b+ob{P)Cx(p!L&eqTCLYs{72r!jn60wNRx(C8628kkr9=BSHB&NUGE&2=)*emG~Ycv*3G{VUt9#JAvQ0(_e7H zJzcsnkqu(r6v=QD_d)EsP~prJ%gE^lY+^S>8I}Cpi(|V_Gw&LOeK-=JlU?+pfrAh0(FgN2{=#% z37CM4YRg-)+X;5j0lxDY>H$Mqp}MC-q4H@}sfsbFyRxaORQuhvC^+}j&OIgQgn0e5 zcw1pD!uDtL=Cb~Q+O}Px`MjG!H@&U)UBpdG%}19aS?$@Ra?owBGwkJbQ`%OOEajPi zdme4I&&yF3RFh(iExRds)ueDKN4Zx`8dmAUR^En`?pFIFRdhgboB?MnL=4*iJ*1P3OQ(v_B^O>6-pF&e;u4vGE}q6YD}| z+*yFNKJ=H76za3MT+@onRsMImeqN$n*|lLuHm#~KeyAVSmkf@{n4LaQXDvqUUYgHx z(3GX|m6px3$OZ3}>aiRIuyo$v2>84wP2azxeYBZkfCG{Zrh=)7c(02B#6x*qKhh1(quWLnE)7Ht)Mz z|N1~Ao=vUQef8M18mpS6eJn$(2xlxd|u?lv-OV zhP)2iYKIatm~3Q|4d%9%cj1IssIehP-4}qy`2}U}TwAS$YOTYZPAk%0c!P!NfG#$K zB(V0pzy=+yfIe(d6kJx9QH{y6&)^YV*P5mf`)A1q)ssE(GSsIM@2npV*!7DWQDRl$R zsI?lLp}`+`0A?xw6dZLtU=t;Mh4M~Kbb_D7u(rxe5b9xUP5VHt&eb#M`*eU?XjZ*7 zs}*=;4K?@)YM07k28U~C@D&bcoTCQsjPmQoi{Y>af9!$(V>1!%EE!A#3k8w>09%J)Z#kaOpQ(CI* z4VQugZa|9NR!V!>47ZvN#9^_uKzSH0)r?My=k~XtJy4FYmreP%Y4GP9&XB1GaYj9F z&+VtRWA^(|_v{)7UeN|g>c@r==5+el9>k-O9LiHm&B`!td`UEqGfacuaCoL>+>0Bp zPUkJI>*zJKMK9ZNihNFvwG*1Vf|TlYq>8pJkVySl8fVTJUPvMAQfFX|Pn`mia34uf zo#=JQ2k7mmUG0!I%4s8>rC(SYuc_l8L$FMVVXDVT^)0t5YI;{8SIuaPC|!TDl%-by z#xlDkj+agKwybPyv^(c|iGE5;K2P~}G?mBZfjQsMJ+M>5$y zV)1it7ZiFz!I@N;_R5>Db=^KeF?3=o@!GK)Pjz*QU=$*-(5ndUDAK9+EB#l39$6rd z!nTPiT2A6F+(0d!arv1tv9sz5L3OcJeAE#50C~**Hr%gw(S=oKR96OHQ`d7i9qo<$ ztDOeR8a$lC%`|vs8ymNh0xLr9`yh4B%pla?>{kgNBBS#v7H0~V>kY1WmP*zTv|5ei zQ7p+ZZ_kl(r~zeCVO8bnqq?V7T9!$r(Ay60wSzmDkd>FMxj)dcnd>Cx4a^gv%-ku_ zeqXKJ9M?K?)5FiB#3a{7np)s(BF*HA);teO0h8;m@TaKwR`hJm8Xcg~yEI_rs>hn) zS|Jj{Zx6awm~qsCJlQbLk-h~jfb^VmOt+9|QPf9Dgv!FF$uV zqZX}uU1%eXot$}uKQ8fyi$DJ24{{5#%^wN;F@QhD@yAE}VdszKcu+pZEJAbM(I`}A z*;xnFnmuORw9z~li=uzj+UqjN)K@gAI{PB!GOpHG_fIphEM~{=xxUb5Q7A&Eov=H920urs?8EI>pw|$wZRV-2QSQ{2n$%c^_MmPhu5&lNqr)z9t6vd7 zZvf2mk(8DVFrYP61~rg6g%$XbWYl-8p|h8}6WUPXt|8s(o3fI!zky^Kb`|XkxiP2z zk4hMOc1dbMS$d@=&%E8xruCGM+6*$M(+4j1TJS?x6ONQ4b#TVxNmTrQ$#7 z1&-75G5SEY1J5B2?QwvWv6PvytR_x9jbj2QrE}_T>RSvcO1;KXecPi!#qk6qo`Q7N z`Lcp%of35;qZ(l_fqZ>*eeEVT>a)$U0d604m7Sr?RMO{8%DXIMz#Ogz37q%dp7=HI8+mG_!R z)%*{0P8E%VTMXcQ0Z#Bz;-C`4w6jFK?*tEkw!h<(1ZBvln_E^ ziG`5m8_bf_&&Xf!tphe=N(-Y_GKWJ;IaHUR$sC%`p$LM8bI8V_Xo9+ND49dCw8B$c zacmsNtRz;4Lqj=~M36s+dU1%hHdTp3ejFN3(0y`frzMI*V+p#Jsd&o#o-zhPRo9X2a3&~Q?v~W zsx(pdf8y*<)z)vQ(V*o{QXEaCI{nv2!4|p+$5ztBJ6mdgT}WU^vN}@eh!`E)9LU7m zT^;Qzyobc%`o%lC1*s<@3JZr0OZ~VFqWAQdv*!-eEWWNP^2=snN;2Qvc9sc8FnF8*N3zt;Qi)g6MZ8z z@cNo#E4_#U1L{GoS}Kv*rx;yh27w2qARwC=xN##$;(C8sUzNQzYr5z6@HlFc@u8Hs29mz-l_tQv-) zfFhn&j~8Ay`;CtFmq>g|=*2m^d9dA=PbuX|bRW)7eN%@eqY~M*yI5iTpVqfF^d@0a zt6N8z5+$vu_&L;zrx?gjOjD&+3n{z~bAaTY?$1{wcTTefwVM@(CKQKvO#5JZhW=c2 zDid2sqipjcDRz7|;cQ3yecHswf%;~$fQ?lDcx=l1sY}Coj%e3|d4Q=Gl;U>!Q4!f6 zbaZ}z6E)@)@A_e*GF)BKkY%h9q;|!}A15KrsG2~w$d0p9DS~YdQyGZGV{<=DGt$x7 z_{#Jo667M2<$J8q{J z6^_O9vH-!1!j!l9M~~PS zjBHP^5sk|5M0bnvuN?KdwecS*ljoW zmipi#sVmhR^9_aq#eL-e3#dGkm!?|uhHNjZY4$x#4CM05{B60W5bz~LR!Wmgdt*#7 zA?GO{(VD9#ZWK5yyDMR9y1eN*9t0)=1o;dkW&R%|QFx7aS~Zrr!7PuKns}(KF<-Tt zQXo$!Z$TIewR;?xQJ6F6W864&q`3+W=JDjc^zLaOt3mh^UPG_dnBEnoLCB8pbXh)t zDa?62LQyqzw7%0o!|UwVi)miu3|NITJN{-VO^i(Uv0skQJVjId*tnn?W}91yPMc{V zcu6qT3jXD=oDK9g^dE@Kw~fo5SPAp$BUbybs3{wy5N&@v)QQ-Dwwu;N(uMIAZ3hWf z2idW#{R>{iTanrobir;lxf%)3?MQq;2~|`n)sh57LvlICRGbLfY@V*SNhuTgjx`7$ zUg$&j9r|OSDRJMy3Lr8k*EAkBsLlqGE&QeJYu?FVFs7K}9gFB?a|~u3Gmh9MQDtqN zN;UX*fH&N$a}~&=<|6Qz%g7oW{GON0D>)8>3%gV&LitZ&T}3 zp-57x)&-|BAbvQN>j;*7@W6Cp(>Xy2pCXs?V{NbK3XLs2+!F}=KeI7AB}^ZSD$O;O zCwsXjA9|?Ywm`fQrI2S@8t;H*s{=DZBGwaOzsdScXC`)@4Xh=;mFTp#L2r#L1>u~4 zdjd64M09}$am$AlsnD<3$O{W#1Se{&Yn%jel(4flE8z#VP{L*AAr5C$&fjbRu$x*! zRW%~HxVSrr%uqrevsCfi2o4HICI_WlV}Qc~bb=`xw<8>u#}z34n>KSjk8nb>fSU2f zi60T$H6o0Nof;8A#7`O#OT<2nNFw5ZMhqw7utrQIBAO(*Yp6Y!xkBEkg^D6 z+8ma5k&;}~YWzy*cP0p}aTRUZJELX>v9h?0Yc=XWbI99TLfGX8{V|#7{F(kpO~0L> z-wUM&{i{%fw|-0ddzk)<^3Xp;4r(%C3W z!$DMaklODxinW31A~;wPIZXQyKzlN$pMc2JQE4xw8{IB zi*#5jfQRIT6iZ(>Gihxek&gW1Pu=hdV!2%81JtpkT7HBma{T}TWKEre%?!FnK>w>y zWDYZl=rg&&T+rW25Bnv4#BUNRU6Qp*&EV~3>* zXyhEjc+qzw^E$8^nOcK2hZWUPG22?AT@s-f9$%!_*Pt=*KeVp{H_KdJqK{uJ2RaGY;a({|V_vv7ZXV3$Ln*db68q zP*e`n?hrhvFT7Ef+>O2A!zMAbyHwus3GKF;*oQZllUwJR-uUvWLO)uFpgNsR^-Zr4 zPBU#Iruq(tvO%~P2ednVc@Kfx52|a7mF6?=Yv4RG5@Lm1e*d>RkTV-v#fw< zY4hCsZ)~KP$rS_sQ*pPZc#tWM;t_5Kf$Mu*?=Rf$`gcy#G(88?YY5RY=DD+&UKrOq z2R+-r6}xJRy_n+DvMh)6Sv7}A1%Vvy`OgR|YI;?f=pKktwOYJbwVE?L$eigbz-ZxL z;6ZFlOA-mr>SVXNXn8LUkw8CpwWr&<|j;LJ497|EK8>og|C8<0}xl@YLHmFljFAhtNrdEh5=@@C_Q?`xVdI;%dGV7mfVmFx>mulRF zS)UFm)JavW5!Gh1s7^kBFzTcZCtfuGWL87&ffS>Co9mNyG&N zxQ4^j8fNSr!qk(6@Rq&=S^TwRd@m#;$jXv&o^Cm&puqTbqv){F9E7~!trBEW z6&2XS@^)3EeEP?fa@#g2F6<_`TGt$dSWh)ht97Td+}EisL5U;wEx&sZqT;lTsH11=le0IEQH?*7god zX&`*qwVS*(bB9Y8yXvM`meFh^!*!Gzfx~jS40`if+sGNvT=EFSNtQE@ig$+%OllD= zgz~M(ZH$HuRC6>XCy6CzK7?I!VZdQoL`J8<(c?6zwgR^f#q>$`=a;ceQ1?{{r@q zavR=}Qk5B0kf$N+IzbL-$<_4cq9-fz|Ho~ZVtY!+GKfL@OAEB`KB6vdEmSn`_!dFt z9be)28-+U?v>Kj;Fs3}%yw6kDAa!t~QDD%YONJXcEImO|IrnF=^5*mb8XXp|QO|jD z&tQ$9-knYnMnjtSp;ZuqwI+B_*XwG4Xw?+-*{qb_z&5+(W=^N^O|3@L7RwzIk82+k zgxTx`KKYo%V;e=W&797<)a_7kWwCT_&~(>&6#LW*I&j79C@P#86wULeEPi^+9yjdF z8LM%N)M1&Zsrm|8jOVJaQ4=WAN0kt#7jlU3ByjAeHZ~}!a~~pSvzVJS)Qp4*@vr3x zzXBt!zi~}Loyy}kryGj%|BM(zS^iZIp8sR8A>==jo0(5$ekAFMp}3!lJIB6iKYU}0 zCI>^I;jpaJ^h1O+`0}nVk{4cm%1HZ8hm zXYdpTQQX7ftJ-8V8`A|Fx`n4~za^fkeygUP2IKDhHO8?X%6tcD4<%VF*yl63l#ksq zZ*%uZgAD4$j9aW~ovGCEjDR32;1!nk$XD`kcb;NHDWhl1w)7;JQ14J6j})@xu)urCURQ(FE53)|x~ij&Av3!$6Hy0Ks4ih|QHXBds8$M9r%+o8U8IPcQz(a$Ri8pFNh6Fx zqbd1;6r$U34og==l2K^mYjL+94dYWr6%K?X9j|~S-J;?m-&TLcohnyLDw$IhqLq-E zOCg-c!r<#dFZ3i)FiV?IeT1A2X6B+MbE{Lx>OxqxoAL`W=XU)DL#!Kcc_OvcDh#eD zOaeK!lyWefqUld=*cYLKZ?HgMTbJhTrqPI&truv=!C@N6Nwg+TcP~Mw6=HF{n_8|j zAbd1>FB_)m9=rI$8oT`OBZ)AU4hfPm_0!Rtk#>=PS4aPhN)-9u`+E@bpaaI} z3_Q{q=t(pZcAcKZI|0~q&~ogqNk86s=Rl5X5)W7KWMy`u6lA-34s8jCK$tDK=DM)= zAZ!KWYq2Cc5ir{tc3M^vJzS$*YuXicUyM(iIwR3PQ|E$DBeMxpvM*V8Roln6nzSty zZV&Qt=*$+QPh)diZ02VC3UyL=Kf&WONwM;QD#VcAepT%UDKZ^hah6>^Mvebe!@!M)gBOk zFPW_qTuqB<8sA(sifIp`D-_e1Wf@$?Vj9z6gX{6*B72z78(hB^)1CnYoGAj>e&Fi6 z%8VX(HL72MqV$l$sw|}?J2D!?Gm87krYV@@yShD8PWO-ktBn3PzYFn$Iloer#@Bph zFHK@yIS-YE-KENvOgbjIlR{VKLuF_ZUVDCl8!KWZOzmHy5?pyYy3&9We3qM$=o?Yj zX6DU-1@2*;kuO{&?4wdgW0lP+mA-LPo8}uh-1EnMRhoLcUfv@6=}12qPD=~iJ#^i= zrBvxD)vVN`8al$yF>|2}srI4tJggp7mEJw28eJP>-p9`^&GC0rr?sK3E*IBvt>%uW zvDW3MoK9?p(s`ySjAn`Ejt6m$(dR9kwyfHx8|1Z4#P$7I=$$K4dvq6 ziK1ML+N6BmTk2>W@*T^C(etA6ytmXKX2u5OU`kO+)Ym_=93%l@IVb>4Ik?Ginp0w_ zL^)6f_K`wsu7Rm2N9@`{HixEu}$U zsY;m(%-vI!<9#4xPhBWgMMV-CTow}!0*a? zz>LaGWo|!wE#b4*%DR41h*vkP`QY=@7X_`TZdhcUpeNL!I!B(xkssBYwuqH-*B9J5`_H*U#c`m)dmn6->fiGr0bT zc;uNj5r{vR*E`D6{!+c*Spd><@Xh5E3cL)M6_IQDfQ0f)!(J(u`%7&qe4DSe>_n&k zDdb~?r&4c#RIS4ciJw~s@v$E#V17vF=brQicT+WH44q%|IsA|pNUnG=MhQ-}?EFia zH$V!h^x0pCFFD9M(zE~}tJ6OfGYu(U*)u?DTxv1CsB(XRR3&f}^31OMv7@6-kjyiM z|D}Wsl%h)2gHYdrQp1qDh$-ITyZfaVK1+SXyilQOyAx-l_*T>2m&&SvQsq*U|9PYQ zG*Idr^X`*3g~Q_dcZ+$Gaw;zEu#|u|ALC;hRfV!`_TBXVN>3SIb-viFn00Xj%!xZzJ^$<(7BtqZduqBx@wt`Ok181JqC^~b-0fWKc;E3`E zg*R>&&IcQw75q$z8!C18{i+n*;7X+HYZZtMkG>+;WFrZ>axLDS9BE2;TI5oD4=fudC034rAaxlH*u}S6)D$D1tLq=VQAQ8L zMddTp6miMilFtHxxuzTnu+g(Wx8nL2+;lVXL zm4_pxs&zgtisZp#F_Og(StNI{OK&&*^jMicTxt-!ri6$KGXSW+Jy9vD|nnr`|@|ZX;K`08RogE`T_$VqhvO9x3Z# zHF$0bkt00fe9TGgrrwW~$0X9OgotM4Qzqi`NNM#p()Qw^7?GD&(oEzKSSV>PC6?0G zttf3jlu+4nmlaBFrZV%Pa+IvTQ$obf({>+Sg5A`dTlG;kzYD8Uk=4)=D%yV>_ajre z_dppq5>_uf5Yze*x0=dCz5xqqH7F5dVD(2j6lIRIsDw%!SLx1F20u{llGV;7M7+32 zH74Tkwwgm$#}!#Eye}r?G%ta>IM245j^9_NkAl@5B}6{sBH2tN9W0jCq<3I7xX9{+ z5-KCO${eQB=Dy-R8dmF+5UIySdNYxye`;2*lhxChm+%s}2E5pl9$|J17p}onHvXx6 zPF9r?B0IUrLrf#>rcrLI%s(@VtoA6OG8Awn)yV#^-(=WTrz9bOqYarcKkSziv z=`MRgAT3`5*>qcAnIJ&i?y~rFfIM`RE$Dp}q^$rst8A7YSs@ zYal5q$PX`w+(r%-FbaIC_8Q23E@;^(Kz`+d`>|{&>Fy9rmYw<$@uiZoQx(~XBFk#d zHWSu)uYs&oS=m~E^wO}#jt17Nm;tL;+r5@$oti~2vUqXUYBaDuy;HW}u-^o&Ut#-; zO@9JOkd!#KWGJxOU0AojmZi3uWwFRI^A0-=tU)7Q19|6$z&cQXG{3_tj{!)n*FYlg z3y``3VsLj%W{LzBc^)84=0dZV|h|?glTo48UVO^(zjL<*^yFl*eQGKl%gk6JZ@%lkm?#pi3ak$3Id2U0rB*fv%Vo%77+E_ z?Sg18AimQex@Zs|xFBi^h+P`QL=^(=@(C`Gl6_R)_caivA?fCV_(?#F*B}mS5RF_A z2L(h|4dRvt;pu`{DIglE5LUw?54gfbZ8+9uRSB3PKs+=gO*Du?7esFXapxB&M|x`z z8(a|01jI=VVul7W*9B1t5LQM1i3YMx0~zW9dAOH2GDm|b(jeNpAkGMgAsWPe4I9r#coEfofko0IR?+or0;Glp5~G1!ArJvELO?vf>8$S%4PvhgqJx0AtU=^z z5X)Q;bp^y84PpyHSgD6ka)C$!WT^&nK|_-4g1EkiI5JU#c&b5!yC4n=h_^L}AS?`t z`g*w_Rtbp41Yspr(_RC)i+zo1eWwYK3L27h4dN>oL|*~nxZ&i;Vh!Rm7ethRDAFMI zXb?Frh$?%~|L}ye269aUdDjK<`)-2B)*xs-RMaNc1#wP5q-YTJHHexnh;0I*od(fW zgZSqG`oCIVMSuipAQ>9S4-Yhsqzj0@uRH6zQiI5IL39!jS2YM)h7+W&a6yC!h@LC|`hfQWEG91#%RHHf}|fRy=Y>3}9b z)=EGPPu5(rG|j{YR?JS|)-Z)5FHK+RO8fBj68->AXZlI}d1 zEO2(*#k$SF*(<9>a+m+S&1@FQ7`*F?k`g+CsXvVo)49}1+b=sB_I^p%dl>e9u$-N- zNNe2<0^q{}mYFFf$h++9V5T%e?wrelCrd5lNk6cGlclzGMf`hA(chbYW26(}|xWoc7!Ce5&gNIAjhZKmHM-flDdc&b!g z3T6AJN+IqaL9>{Z{}r&?Qzc8lMVmnSGuDv-m=W!(aS8%6PuNSrVF5n1ew_t(Xdc{XyU)Y>oRTZ)NVaYGP!wirMw zer9B5?fV>We&q0(+Ck<0k5F9%HAD6Ud zx2tWKHxuoCwquD(Y$&eO?{wM&j(rcBaJ1Hc@HGW?tARlxr8<$+ zTJIwQYt+EfudRT~&4foSF?(t(K1bn`j#9lrRxrp)RHm9W(j4(CXgTgbAYYJw#90By z!k<+a|9`+;RN)$nnmT@kMNVr0sB!fl1&a+iH^{RpJd$7>iD|7N>|-lfW&`np3E?(; z5EHOPV6fT@#w@E*X9)mLjOLi~*wg_Q2-vxb3X58(9K6}unHk>C+%{NaMA`Oh@XQi` zGXFe!LD$?<7LUZ%F@~Jko|K+-1(D{aXnzlL>u5s`ZSoh$3#T|+1J6L?HjbPn#CZ5N zlWYk%Ju-DF8=fUK9NZe}l02zN@YK4C11Ti}?J|wqzT)0^LvA*CSX3U`3I{lDL2W~P zLEot#oV;0rtr;qB-lH$YbZ!uPm?c&9_?8-0G35%B}+}{*%F{cel7s~AjML17{ z3k^w+T&=!qhDL9t=U1Hsi}O*mq_cYt7SCHucJa%Q^Bv7Q6~8Y5sw|*m7cu5&9B0Ai z470M}2EvLh2damB{SyUW=SHJkn^!QmeuzhD0QY~xI{!$su)ukWh$;yB^CV9E*9~g6!d2E&7qF3 z^{C4O99f@HX6)!^$c$zyfI3yCN4FMtw4zaLzQKI;LF7?ogLP(SS_GZ!8Hb%7xLurE{-J9A2QsDT!E) zdo_dk%tKACW4`$xB&;lDJf3a9O;b6dPZ;^b@hV?(Y3rb49dh%TbEzi!lb5hlZZIN* z0OI^G_TH*!8VMK^V_gE(B3qSv zes~;E<3vB{nu#cedMOyT;v!a$^PwM5{bXF+5Y3ktl4JU z_HuHVq|ql~KKcy_Jl*i)&wGhJ9JS{N2_}-Q)CKT58Uf*5mYfc%iT065M+PAb5fn+n zP+xrfZpaNsd5-D`L5t+jxcXmp{DDYO%)N*wsN-vG(|DkorKM91Y9`a?ByL(y23uNC z)BT&(S!|+B^0TT&=cNIJ>tC&gyG8!p97VJL6Snq$!B&_HSiG46#`y^KBlJclEDm&t z;rS3AVj=eLkrE*o>L0k@yBCtcOzh~3c~1QU{Q4a(-~S*HQ?k<9qDM@J{i#V%sjB#O zJ!N*UrD&@o2D!_VG}BSeQZlekt=~bX^n`X45CrkK$>Dm6Ve}V?yej8`NTU)9nZBnS#Xzx`>MV;v5^|?qg+yZ^R=s z_&!SC{|IfOKY7MOcR;732N~2mm^XY)h3K~-UcJ4$+)0sX%mZX9LMEm0N~Go9hxH8n zK$m+K#k^ck-+tLY&`;D{{J`0%PUe@cM4S>d5V?5KVz{rcXP(w(`;OJ<5xmA}5N5*^N1%WC4KQUNq>v6bG~maIE0XXq38?xK zyOQ}!s+cWXM?@<@=TvYC0X&Xy;I?GIId|mopFb3EpA(!SipF~&S#n!q>4;_|tU`{#>bsKTDs$i!u(ENbpU;_+!D67JnFqgaCL+ z_;2t^aa~1GzW3U|`uzEo`IviWVT6AaQMZG=D(i zhJJ?KSac}?mZH99>lR7A@`zJx-y*4{XH5Ye%?ppSXN&Ndg)*z8r1ijHw@KTbW*}}C zBCmy>&wp_C&ewsx@;=;f3D3b&UPfZUF!*;k9DmTrSEqhcQg%XP%Vuq&3} zV$cCpV@1E=RB2h~zDGx2aswJSJg7P^1nkV?UAeaGWP;g%Iur7ip}g! zNhe<)sH#gPUhu`Aq(2a>k1NCY#X|gYWtch2RY_8M1FITYSof6x%1jLdY{5T^$I5DDtd1Lw?p)8Ey;02 zAx==m>&uPT)At{;HfBK`Uz7X5(~ z9`K|?h1ahc;@~9c7+l1%K9Fiy*Qo;23Wz#H{@Nk(epVidB~(W$#LwwLRQ&289h35E z4jSIE#}}LRcngQ1p`=i4I0j4@DcS@1J&MB9NJgso_G6+7S11nYZ_(^A^Dr8w1+KZU zI!6(H7i1TIshKr=bUkpt1st9{?pORtqL#Y@MF8YW2vK$(c`U<8YY>XY#DK=(q zEMg6dFgoe@NF?C4zof7m*l}ktET)Pl*&Zc@akJ?Ts%Ti8kCABnQtU@vd6+3n!Hk)Q zF$&-!p~OqKlRPXZj4_TRJFGQP6}s)^8yxR5B%O)8C~lLnPm>}~@elJv^)6tFs;-rxIb=@;We2teVfZf*}tz$lxTQWOlC3b^$Mat9XbX8Gt z<>9Q~3aPKW?HJp+LTcpW)Pa*oA-k@`lT-4UH&B$G8fP$#8!j%Jw9{o)&a3N4RIjidZ6)6h<47C8&0n|=zffVg zcQTRgxbw?J&IH?YJaz)SxZRehO6G6xrPB2yX{JaoA(gob&$HY?D*Gv)v4_?DP>Qg6 z5D*|pF{)QxMxKhiI0`pFqGme20E0D9-6|kdKWGXJU0B+!lJp#9ffi6im-&gcu)PGV zUaJVqa4UjBesk9=JP8d{ABxmo!O@U=-wPoIP!>hT2j(5bi3LUvO;V)z*h z4S=dn3wr2Rz!#&K!U*;WpM)Zcu_4zKLy&(0Yo2q(FccBPZF&jC@tKH^ESRUiXJQLh z;xgx`6KvB;scG+>qQP-@9nc$r-XGIb6u##q4Y33Ab?!RdAjfL(N~=Yp4Oh*nM>u+8 z7q96IhCqVC3TDw!h-(RdkiReDf6@f0%8{>0OWm2D6kJ}+0(k2$*{)SmhPCj7k< z1>k+O@?u_qPSBO^*r$#>cCZR-q_8TJK#yg5@bGBhIG6w;)WlB5BA<6_QyIjKtX2~zFrD4tOLd* zJ=zBL$|>q~eI z0>Og|TST;QAn@{P+~X4>j_zy!D?&isS7Qju$Zt{{_2j5)A{rweFiz{Ec&w;vB577!G8KK*nQ$TMZ^4NEFl; zF;J%`d7waQ3GE8^a#xslwUDbWzzDZ-2Yc`d9^U-Q%--4{HExyO49yS>u4oFYA0nWz zBAX(9D-jR`>)uHK@N7G-;#s$yjol#CPO6B>Rf6pg%|y0GO$R`NEvhh*wCs8O#gT{o z^g~isr2n$?^N91aQ2!wcllU(7!v?95bp?#)Lj43JN{%LE=-Z|nk+}GnmY9S@m=tNCTFk4oBLb064tzLGoavdKhpBZY(jkZ8R71LYG0P+qC7DJ( z16$mzKv_U2sjE1*g#3wlh|s-u({q6GUdUB^Sv^mw=<^W;%`M}-bTJT`_8$ zP^65f6m-J+0!ysGf~OCz;Ih3o2$)URm%8b!W3o&pk(7kV0zPn7B_1Pbod`DOGpzm9 zEJqJ*_tXE}qyl~`>A%OX*%ow%e(a`4$S}as8703)(^W+C=7?XM93txr$ zLHJA8m^P(Ch&4s}cFs?1eO&;+;A3fmEie(oMNaHCYc z#uOO+D98vf-1u%FCCxK{f#+{yOEyYPJD!H_EIzLxxB!R_jKO@F<>)`qmuWjDD| zwS`tY0J;?K6OAh9@Vd4e`PArA&@9u=#$cTxcNGGPekB5g?mjw^5*Q2wQw{?$GT>O) zvt1rKThwfT*n%wh%j*}z!bX~68Vj^!%tqUel8rsQ(LSHe()&`_cC7Lw!DqyOxhp{Z z9iGt5h59cWqEI>`YPyOq-h4efy+w+Vo-wzrQZvsq#L*(u;dLx-t5m1ev#lN=F$Xh4 zYQpRA<`G4FJvNLhe)qyEKvR9+KotPnNz4fr)j}ajcGJr+wq~o;D_}Y$I?iiO3ru@`+ zLo6<+LbJcUgDu`B1vZKMSTy@xot_g zJE{QG_A~IwS0ESKzCEg0rtQxoR&Dz}08(drLQmRFy-}va2kFjm2MVtxdKCTh%|bvd zZG>omf0z;aDDiIP{OWql!40Mi$KAvN`Di(J&(iu6W&krL&_AG1qeNMY57I+6H` zM-9Y=j!Za(vz{@(?Re8<>SwIacBy{(T2$QzAF~_;oEutP-LAdZ=WxOYDZ4={|vEAK>3SKD*-7Wgp0?I&lGxCC6>-;Rk!Pu_j? zD|W#oRbeSRq@Hw>_}(2-SX@_hmDjS5+4x#^vhA=hj&28Ux<+uS3jp4{LpV(6RVK4FBg`VGN0bnFx&ejVEnTEz>j7i1fL~gR+gx)qKmY~(L6ZxQQKp;)R;bOtn%MEZg6qn&&=N@ZV?w8Vl)>~IOdrEem z>bA}$dkMnbkoK|yhdNN3%gp?yO`T4u-$GYJ4%>-Va0o-sdCs# zmbO<)e7kXNC>2W=Gp6*9KO`2L0uf`j-Bj&zd({7Sq6<9(2LM9HVeNo|xiK*g3%!P6G(`_7e7TuT-!9exsPe(oc*k+hOLFO<$t+X^>>}^A zJ*qwm)ZA!BKoM#F=#$0o@kqvI?ZcCc6^K&1-i_AfF?fX*>7!7hKq3Z-3e@Y!VRxh= zA+|3IF2FC|CfrCc_{X24LYmvw8+rN0k5t727ABkRyG4e`iy}Y&2Eb5jY2YX5t5^)A z&Q&4)?pU2}squgxYoCYL`sxvc?KWV&Kmkoc^cl5)ydvVA$TZx%zsgen3(~;Pj^=Dr zN5JYV!}vp(yx1XI1%-K)VeXYNLeT6{m+yiAq1sL&O1KRi1JI+bVqcib#S`$yX$P91BG0PH()UYkWm8SIX}{FJ+H;30{En>A>SZrbSV7+ev48_olM1_> ziM-Wl*6RSKQNMk}rX7%K*AVMY(DL3{2WT@ghIU$}Mb1b(RenI~I=cTyq)wuFyig3Q zrczhVy_WekbwZfJctiyNHiwc7&tY`KrKAk9?|SkKT>FT`K#_ZwsyL##H=0YyCdDD% zlODc=UrWPFaw9zf`uiF-_8{g=g94fDpwvg6wT9h1DEUR*2BU<`qOb#I&`5j=FpDdq z4-m(NJQvNSB>IO%V7{I;JVX}-)L>l?0p+Y3Ed3B3$?0E%Ej%PO@mQBh*@EiSU?&bq zsq*0f7Is*wUH5+h)CdKc_hBN=#kar)eyh8K5ji%1jXf;2lw$+fXNRR!|HtVxDLbL) zdyJQK_GBpzyAN%C9mccT`I4W!cM*%uhyRByVtw<`P<68C)RM(IXL^q(8-!~#G6m86MJL?qgBf(1vRrf2<81))KN^qgBG!gN2QuoUV=QLNga-+N<45l zTYnVKkPln1@AOgWGfBF~CLWg-%G(#PlH*cW@3o6516-chd56X9ofA?}+T%~K7=B1} zwh9m(w898{FUnhnOgZ{(?b2q-F!Yg~$;?d#4% zqtu7_yEQmV#9ya}Q@jP647s@W3ZU1yiL%>{!*PqL241#4gTa&HLr`6;(KyBm4?}_q z>?6vukc$c4m6Kez=oS08P^wzvF_w9`ypSl-H(C#eBa8~Hj?LCj9>~rYVob=hQQER# zEJdn`X8WPwECl#RB4xJ-&~OpK8=+_?JrB4+(DRUw0NoA~R3Hp`kk=19pjsQ__ES;f z57peR{~e2OqIfYQLBz-Fbh_%uLt(gx^u-@hWoW_Ku3xf_Ei95k8g9u2I@%%uvsaYx zkoTKUjhku6MM>ZYoGYj|k6*xkEW!)j^%3j%2O|N=Sp!tT@v}1!M1cY|pyv6TY6!4$ zl(M`uC6wQErZ`ZRV^nF1krz2r&QVIc(iAVgjZzYUZVx5-mL~c0rOr&ND1|N`=9S*V zilwmF75$zi=&X?7k+dded6)Ej149LN_$#TcX9}f3UB~1w{VAz_le$ZZN9Acf(GzUC z1k=lGdyDLP3f5XfK^c1{MDXaxY``h#$w#Sd_9>|b>yP6OdNHGCt4~Rd%2^hBuqGzV zTH|a_;%KkUnFO?y(_k(8?oVbQlIW}|gbS>3l zuL>ww>?M#99+1r}UrV7i*4kA@53v0Xs#Wv#NoM0DGC22rEk(Y(`fPu{ z1M08$7x?Ahp-EKWE&#TV(R=ZWv1$i$!#<^CyhNo3iTdrUC{kT^!1~sPRcz=PsanM% zMAIHLx=Cl6!g9|@J%#ydDkMxL5KzEnQK$n)LSW7iSDc1@A|fL1 zJEoH*G%kx7&q^JVE-#=PTJYi?E*jG2KngS^uh|p5Q}Ny>(y=qG15AzgU6Y9{fRvMM zCy(B*C7rzR5?rh3S%K|5D^;t}7Hg8VlI1vr=Sjj|w<#{ElJKTHr`jIvGiu zxGVZKhzFhzJSwoLb5d~d^;x2x0tdLf5gT|!o0Zmcj*ZPaCq=p=BOYa*Ka1@}J~??M z`|+Fjh2h=*D!vd?Idb3r+fw0_JR~8pP9ijFGzI) z=dm(Hhk#jNgUfdDgrzJW^Uj+G>nXJx5RP4!n%zRM_ ztQP$?ZGr3UPtz@|T)#)UhaNJVaZ&1E-8#+LL6uA+twicaBRy_^0LY8W1H-`+G^^<5 z)TY_oEtzke<6NoefSxKIi@6B}w%-lV`Sb@w{ss--uYXpXVA!f2=u2IdZdgLSo`gk2 z9y3$xK<%DYAeDZdj-v(7WSuWbF^%`<;`HLlzz()M>Xp|CwvrC^5fY3xUULGqFm3r+ z1|U*VY{w-jpvC&BZ`2_L$^VZ!e3Z4~Tgk8DML3`|#$L-|b-$I8t!f*QGY#A<*S%lE z?gJe!(U4p>UGou859ozgC)L-UP(LyWLx-7N@AKr~>N#7St-xdlR` zV0XEJ_v$f`$ZM>{cT(_xhoB)&8SBe8y-PT}FJ`L+M&mBpAAp=8_EuNhKQZSG-Oi(?KE>_X+F;oz_9j`oDjR~csEu=f z#f9&p+PI7o+r#JN0d-sqJPn!GXkTXp7C&i7^h}Bw>Tbxn3-RIx?0vu{$lU4(h`pcM zqMTWQ*F&!Z9u>|pmWI}#o)trBnjBc&r85XdQQij+66prX2xp?$l#bw z8T=NEVQqepTKGcnlrBE~`on!4i~%3j|7;O^?+2+z2vP5%Z_7X@U9J5G2&~6tPr~iOZb=s~pCCl_Y3jIm|h>exey!B+3dQFOMKZhcf zyz^*rn)O%X$%2pibc!#^qImiTkSi{b#wtih732#0`5GAHz2ZlymeiFQf5g7bOEZz% zWnwG`0=Q>wPvN2M)!S_Qj-F2Dh7LlXZUiU>H>G_UlfyC@<_4a|HI4qqQ|DBtbozPg zq*o!9`NDy1AO=4*?>f#5d!Ghx!6f;>!9xD!fqCN z1S?0amdjikggTM4rF4*=i5PW|cTB`5d_}D0Pnbkrno+iHpO&c`U7qQz9oZV(BSF+~ zJu{OAm^!w0Ds=Q)*QHRd~ ziwVy^e_|@kSt~|0Puu8Rb0f|q0W0LZ=56uo>F6_tRQ_@I~ zKWBnQ{yemvO1_Wqd%b4M!h=;(rqNuDWNGfS!UPw~P>^dy4)U+tL)y(`5!bPA?cg*I z+HV;sPJWs(JYaLs-${y*%kfl0AFTJIk1Pii4RlT&xOa@I1M&8)5o=TTLIY6m;HT4TMwLDVE6vM8X8&b;} zQy>oZ-hXDl7-m>pS5Tw3OeJdO!|u8v)%Ko3H9KJ>A(}9j{d_}ejD;t!o03U7&N|0p)iro;00T+<^d2bBkH>D;4dVrNtByVL| z18FTDdV@v&BGqs|KUt(-VZDBlJ{s|&7wH=k^pQpk$OmcHz3L~4C6>KgK ziZ13Sb(biAOuK2Y#F$CuRDsi+f`^XmA*WSUAdV-HHKcr*x9^=>(k!V`ivilXJKOiT z!uw7UyYs75uh({LWjEVkn?9*QBG4un1Bw@z;y)m6u%iz4V`$&?Drx&Ug?|8gvL$5U ze1->>tZaW5b_$ft3Sy%9;fXBeH>q`{EF>WcDfo$Yq>N|Vev@j+$r%VNVYPS2luVHd-4TU`P2g%tUC9 zqTR36+){vJzeC7=8p~?mkpg^1(9lV>kL!cH?sHj}J5t@+J1|P~cc6oa{xR68q)xP9 zsKt`ctJWyC_zwKDBM-4J?nrf{vFySf$=4USFvK-OUZ5H^2PnRqz@FcchDqscFqh)3 zO)*#C`&2>T*F_C!&oUi`{ap|rHE^=Xd@>7wuc#lOA|N3igTbYTR4;h-%=Yg8B-!KK zP}UZLTQQ8hROKvw@H2k~Ao^FN-{AbhOvcH~99GLA#dnxE9(kUCZ;qRgbNB`^Ng$`2 znJ`E7q|_^viZctsf86-;Z@M+{Im5sRG`*DB+ zy(?*gG&-%DHC9Re&M#K6FN_zo40-P<dvSi%ZVE>1{2=Q+JWEqaKMg-3weo!ZXfZg<~fU zhHMA>xJPjk`FO4l#|VAlg|jau!0iwiXCL*7|Nah2QJTdGf0J-oZ6D6Y{~=Ya^av_~ zWQRY1d|6AY<9L??B_&S*B-9H78tm}XOPHjc7lsVspI)MVdxbJ7cM6~KJ? z9N-g=J0LaYq#=p-Lmn^6ll{QZKT+w6aa7EB6Jq{KFeKgQMih{M`L!2Ha2NI0|D48R zA4^rEh{#dyycUVDcygOML}UScfcLm3-2?pz1~oCsg$bkDb3N0T@>psv^=Ac-F*NsQ zw;y8!D4)iv{fR4(I$$mZ-_Fm&Xo>&>bPim5o&S_V+EPi0N^i7K3BLf(ptEU&5&Ax$ z5igqQ^`^NDHK3Sc9xj8lDfJ-KI%{S<@#{sC+4d4SXWCmHM((PoxN# zp5HvdJ@$QB@e>eU?Oj&>DPogZ^iwHb8q8)qmBOV#Z1Yo0TOjnpD_nev&qd*?Rf3zv zRE=kv{VT>)__yhZg5U4pVv)WJqUayaw4x)0+{gG@q_5+Q#P%xJS51611z@4RCBE?L z<~HaDC{o-^2F7B=G|+4>7xf#Ayk}B?@71l?bwJgG%k*R;DrodQw)mM;qf!rKgPs+4 zhl3@`Ep`wYMvlIv(t)Uf_@pJG8Z@ZpKEc@wtf{jm==DYVHX0a4W$oM%MAl;{4T}Yq z@0@1h8FhhvQa|cZnAH~_qB#@XI767}xfD=ei+2on>QiiVxLQoiDbnZSm;P~|-fZ@B zsfK)f0$cT53hiwBMNPoQ<=Ob;(@6Aa$iVoaOU#c?u~^b3O(R*Q3&jRdZ>H46NX?pB zCEVh`W~nNWt%+Nh_X}*Kq5%|JXNHkFgHgyo5F@JC-}5<{i?PT^8#?-{<%lt*Vu~79 zh#C~aFPaq7JlKLW+z+{LZxYpq{2QtpF_mHD;tzglf3HQ?|f{R2vl72IO5IqB4W^W$bUMVPyp` zzR@UptS9At$Pe^n-~NrEsRw)dx6~x$d#E95kT^&!pC+~sNB#OPJ&i`==EhBk-PMO|?{L>Q}V9}mJ7 zq-t5F$^&()K~jMNAg}gd+kU;0H5? zrIckbvd{)S93=p`okz2AB~l+LiJdHw>Q|xeLoVf{(a_=}kv?GnD=C57E@^o!xvSiG z)beq1fYf!lO>QQK{<=J0uHjJuiV!<@S6^HHiyTo+KMEe&EYvxl{-Ed4TIHU;EKHK4 z&wnda#g7}yCcaN ziNqvDf2a>eL#0JrVMik-*3o<`crTvub?vXy|Na@&k*%YzqZ4EyF7E}3I!u2Y2gw@# zx(oY6mZPnIjzH_&i=ZYmMUgs-pi=FoFnky4v#&x>_~Fi27s{g-LTPia-_OVb#yk)| zCNKJdN6k^~0NJFdhr01A%hZ7~LzpfC0+-~OT2L78>e==Ed+6}c7)d4TUrr8}|5?u# zl#`o=Q-6cz@KDL=0oB2~qHK`U5#P3;tSdy+Ed0fj?1}7dIk|=v>6)uj%=g5oW?H!( zAX{m$u$%sZKH!hA*qasA7+EEv7STT=+A$5$E?1}8IXnnGh};aVmsv^idvY0_i=L9S z>(>n@x?LwG2wsoISl)}-+~h`b(FV59O->H->!l7uFf@g?!ib?3t~3lle0mZK*2~HA z#-41lUN%bI8Pm&c{w)t zMw*GJGLo|fSs*#v#E*W$8pElDzOCsMlxRV0jkCiPCA_?Z_34oB-x) z;+=hht@4yVvtENt@$cisG)EtC0rQ%DdU{X*?OT8(rSXgNh}#?Vlzu8LaEv1k&-FN=b9(clb2%3Px=i8~_-pCq^2)ckYlm`fuL7mPLuN$|)50dpr=4;!rnib^+A>V$l!n*U* zz@P-V5$N8=k_x&Psl0nTHnyT%N49rn?^l#t$eE|vsfy^#ZB9dK@XxGF@)@OrLMbW1 z-a{Qts7ru=;!?M4 zxpUt(#FMDQ&U{gnueClOut||*BpPyP5)D+}0F`FEp7#@ltt5;ntPsDDGRW=ww8V+8KPXAj7n?zrYq2Yv3u33n@?9vdgP>-=k>Y4n1*wOSH7<{0MnRuP zZTpJYiWTK#zCNDK^pV?I-vvT!fs6IQa4~@Z4OR72ARXr)N_*oXDNt443Rw+dIl)-~ zLFX~j%^`FXfRV550LnnTnV4yhdI#&?VzCwDQxwb-$8;JOx*+jiE;RjbomfmIImq{H z5g8h@Q*aIJHGD>1E3UVM7Rjr!tV*(n?<&O2jxZ~kXo4pent0CX#MV@jt0hAaVuD5^ z*?Jz;>yM8jeLwuAe`MU(P?d62`*+Adz)9pmjnAi4A-brQU`H6 zPdpm$=OhJ-{!e)r^c?1z)UH@q);9nIqH!jG3W6_z`-83ft5Rjf33zcQ2w&Qs)$o;# zK8_PYPCGA$4Pf_se1diHl^X|c6|wp?3Glnw15cyn;^z1Cg)bCX*)m@_s%i|`D!2pF z_5-pFCvbbzxewTNUyMc5K49K{a+4^OOE3-`tt#PlkpnXz(aE)!pcKE8$7z5wEcy=Q z^)%aq&KzeG{p5yKqOo@*vIL$5FaD_kYX$l#$Jus2xutgt=aW--ZmQXF_SjDjm10?7 zRk@w_sbfHOYPJc4e1D9MtSWa)8jGj^=xtStVFA^UvxWEoKE{i-G2~#!mg`}?Bqg*f zH0=yL(Mh-pW=~Z5`eP>w=xTF}$<^eB^3$WNNi__6t=OPy@^I^ZtXo3`^*BRa6Dt*o zAdj^7CtwJka-A*sVrquu1f}s9iqsVT`v~B!GXus9i!)y6eH#M9(J_4#{aR;yQ^Gh0 z0YvvA1o3=M6m@j(nm@#nY{DynN|9djgbkvaOA02eEfDQGBo`t?v{N>v6q-6Gm zzg*QTA=$Zxz$?bG^Zs%x-v?iN>fm?q(cvOiumdB-pWRu_>T<3;wmbW@x*X}>w!5}D zz*dq>${~O(%SUb5gX(h20rxeGkP}R-?!t)XpFnQ0Vy@seTAXKdtVaKKjx&8*qrdlo zNKhD?wx2;v^Sr28Xld>ieCbMDKgTulsXu7OvI69)-iz|l9AfnGUX{;236O^b2ecI~ zVM}acb}OBwRh;dS5>-(JYaEBm9_%Lnd{(c9d_A=lN#Q_P)gar4L|Csk;QogU7VScx#P>f?Mf_<5 z=|$5cd>86F6CBS$R2lo_Q)Gc??-4(yOGyZkdGhne+S*rw?W|adfJVOnMv(hrkYR7U zk*-0b?qz1SAh}}Y+}5zJ;*H=u?z5mLTwAhDL2`|T{SZ$~h;4~+6GM?B1T|L;$Dnff zqB!AMZ_=7Q43g{1zZ5e6nsS3K@fflMLR-AQxhOsqMWHkJ6(5EPq+eM`J%h5wyYnTo z6AxS+-yqo*?rqP%j(BSUmKANCVg1JYfS`S7HASBeb?YK% zn8*m~fb7FV?6X>OZENoscr-;6_7J0+30_=Lr^FZDL%aNnu>noh7>IaiI9c{-z$_su zfTH#^MoSW7|G^CvxN{0=_NjW_?Uo?98iG{k-1Dfj<2&jVd)-2e#Ihp&tAlu$tD{j4 zl}{gJ6O3}RN^|m5^$5oR%G58&W4n!VCpj*Uy)?@8e4k_3HQQd96YjDtLF_~mA- zWo@~&dnBgq$M~O(*!0?RSl#E)vWos|(zOtV0)cD{&fqH{M-T_r7aV7WwdMF!UmMge zJSY#bWldaVX5`(82jy@GYgp!0r5v0M6&3GF6(p$IY3VriT`n>Egp_2vVVx~}(fq!#H%AO;c%f6_VHO6t#tH=-^x0b3uRnz0wchxZO8aB@B87Qj(t z=`7~vP)KI8%j-+)j#vk>9so5ocurD_Xoez^Y)_oHeRy$mHThP36{XLC4H$p(A_7PoTo273I=TdB%PCk%p)^v}+f;#e~*6#%nfv zWfe|^MGFCl#YO!#WOrB*;JZMNHcDbPspvN&i99^wfIYs^I*Q4T555tgim4BkSu)kY zZDFrUiuCOfBrXAHD1d0skPokkT0p$IAcFouI++oBVX +Rv z5xZ1h4y$FPOkG@=B9Td~^#kxRFQ;N|aP5bzvMFWPcUjq4rE)`iKP zY9ktpF?20Qe|#p!oSfvB7zQ`=?aua@jdi?31Ln~{e%dG)Y0?Qm@_3_=icAmM+bRy- z73%66_C*bxOS&#uDz3&-Zb`l@wxQh0S{K;uL(5UVqFN%Kr7ghCcC%D`&Q(ve%xU;t z__r!Z=3#N_5ToX`c8FbsJFV5KTF^!!DarN=QiEnfQx))WuJm3=*T#GEoO>H}?0G}j z^|e^_Msjf9I_lJvc3MPzhxG{OtIShLK&k&M6S8<*^)y477V#iT!t5ulHXY9-1$&(s z^%kPL+S8yu@9+aP*|J7*h!t&%)Iz$ylNX_+0l0b%2Myx}#SK1QhGgFvg5)&ZrmI$| z3z&{qlm#;&l+>fecCo)e4t0GTTDKLXR za~;;PvE2HdAab7{6Lk~&J21K>+0J7Zj;cMt^{aJ2?l5Y1mjYGEe}D(R2h~1$hB4eQU8+ z;c{~;UGB!O;v#3Y{zo7oT5DG@3FaJfC9X%JD%!md=-g$L_A>GbrW+>5UUcU<_h@%> znayXbgEt}~@)|!)as&l3Prs1>=LM~#AKY}B^Bub%E(bOYq;#=dV#$Z#0dWz38^S|8 z=wC>3jDZPE=BEQ$^Cq&fM*lWYGh(enoNJ$kK1U00?)>90Hol2mb!ZK2|96cwU>vy8 zoGPwg{}PW8Kp$h~tfECxp5Qo1+-6a9&?kF5)kC_V7oX0%y*|bMV^nn!Vz{F|`>l!G zWF&AMXoO7K$>c0r;?BS@LBmXYKo;*V?No}XI^eMZN$5w6cXq!}0S~!w48&jqP>7rv zuIpH^>fUY)W*rdC{|I6;Bjozw(?VgUfFqqtC&KNpKuNdJit9v$ivTmpMB7TQMFXo6CQQeF?mNFl!kpo5D8MCyP+c2vc<$nun_29fd8S;(Z*0soV>JY)z!> zFOR6t_C?A;o}wVYudU5~j+CRMK<3+2ZiJt>rgA(^dF3>f2TH;0W>dL3LVqKz&R5Y8 zfD&F4OEml{Itr+NXKENVr<=HuLSKg^Hj`@&KoStYA~~@~eSl1=42nCUz5?U(Ko4$A z<39#qVWm98g;s@aSBZ(H0RRUtyNjQw9{Az8Xi!z2l{)NrGda3WAfiD?XW-&`m5|7( z38jQY)@DJ?<&bp94KG9o1EEoX{~MqDHvWJ*gG${eEnlPV>LZQ1Px$@nM89boAXNHj zltch^8igOe23lJs>yz4SOLMthL@c6F%m5$(P`w6#g?{^|Ch%Znb{D#$4os#aG&SYT ztFnM7xot3r6!QqzHZ&g|M_mX+52VFEAAYeqn;9hs`TLP7p^lZg48wzEv8t%oOkz8u zWWUPDqd8+m=Xv7Cu0+XQjSZpb#M3-AAA;+fd3p34Fdzbg3M&7JVjWsQ#rmU*i5as! z$~qBq(I_;LsvU4Nepww4GE85gbM!udPvXHpQG~W(E!INMbisb4{V z*cO)eAutIyob5MK;n^pX`EfL3_TL^?i{kL#3SZ99ii1 z8D)hfnmZCzGv_0uJM)cKJ8@f~IlxJqbIB%_?EiH@S(KH>Cbg8CH}FeCD7(acicwtx zPX+Vbj+jw~*`6a)8JbRJu}!3EVIhK^xp|n!<7)gV*mvZX^#*hfk)RXc*58b9i53v* zw-k{{!=}21o>(eV**N85IsizWrJQYcG(a>T&J#;0rPl@3tB_8zQ_V~y`hvt?+|1H> zbL$C^#nY>bTyv3&Onos&hePsWRW>FDvs1h8 z2hLh1wVqG4GURrnHZHBAqbkB)Foz-Q&U&L@+ioA~ zTGUwI`v_)T4^nfvw-)@zHdCZ+_7!QzktP_)t3#*I6vN(AvN;BzTepo=wZ$OES#0X2 z%6BdmZE#^_8^OJ~z)<{!5KhG}6M_G%3Ti@Bp(d)VFP(7H&q{B}W#2Qxv}okq*FJ_e zMm4UbVlm9SO$|@>#83E0O1(pl;#s;bcDD`Gft1~P!fEd&$;Alg(u#H^b zTD`U4n~dTdIAT%4&6P-Bt9()UsQ;~oAl8tx5Hy0JhI!feFob>u1*+d|fW2yHa&&SJ z2mti~n@a#5L%sQsD&D$+G=1Oe#YN>rp3uoQ24y#jtAh%74zMVi)oY%ui8 zk%>e{WzlumjdBKD?{j<7(wVLKoy^QgV5fHEG4vtIn_mJx!p3AFWLwSgKam-)vZowZ|a5aG3pC6 z<#0~LQ2}MVxj2K~2;y#52jQUgl$W6OB7%y@NX6>;MW_~j<}*RzUMJ`xwc~z{pr+;A z9nTSoz46cD@;~c00Lwbv?n79oPu95wb)l zDxl=p`F65j^pTP1<^{IDadap9o)3Q}e24m@{wmR%DiG1$Um~cyFNUxe?o(3XQ!ija zv2v_@u80kZ1z!>XU|UH5DEV`^YEbbA!T~;oIQ0&eb6kRIRu1`)YNKiQ0N!yAO!({k zAvQ*F&re0>$JJB>9LJN`e0Of>b^g;19v861pfceJB zb^1*{LRFz-5}7|c#*yr4q5xXcMRDTF|HxC~dQ@H&Wx$3z0-}TryuP^rd7_X9Ey)(e z$uZ^ss;UOg#>pMsHzGhPp9RLtG4kb;tZ%&Bcp&%~g#>E$WSAeg>dv;B}n_LO>E??MkE-b;OsEWR*D!efZw9ywCi^?|>GE$Jpz?d^Bc zudFnSalh0wA#7T&fGWFNt&Bb-KVBbZ=lTm4MFXRBX_3 z+bcAmk|U{2NjuM!JUWkyX3eZz+=#l($L(c*zYbr%-d^C&et5&$!-?&Pd=qI*k>xh38R}TL^A%1}z1axfQNEx{oc1N-3UocfUL|-9sdQZ=x(>{L zovtGZm;#0DWLFd9p#E=t1NLHTF{HH{T6SL*YCm$~faU60a9rLk1kS7+aU!w=$8?I$ zgilRl!!nf(F)wge1~tsi9n>(%9ps=YZv&ySQS_ge?o)aR*~sdEb;73yoE;V;FFGwu znJDC9TN+3KR!B!O2}>8)8edl?p}uHoXI2({NEK1uTO#Un3U`0m=7?`Cif+zQRtPBD z68a(2*icDi&}_ccb7s4j&3yExo4NIFPcn!zaT+v7d^vGji}#dryR0Z-i*)NRX=7>T z=Kxj9nM>hf=IT;Heo%pNRDpDOsVkrY^m5~%INLK`6TL4n^%+Jan5{+w%rn?C1&GdAb{#D9xele(kM<7cp^x(%)m`+ zC6$|3nZ{}jl=H%drHvi0 z%dn(PP$P9I=|e2(W7EcGT69y=#|;CpGswOlDF4BJ86*c=6Z&>DCQ!b(L}QP%j0xk% zWu&$8^b84a9ubidl0nhkGqKCn*na%j31iYMX%y38(xmZ|bREZMjvHnS8D^Z6mXSHe zl7VcxkYVA*kPJ_qXLxwHF-1)tJAP7{uEW$6W6!jdNvR`CF?Abnv^w(|hYMuG$4@d& zq~cuV>N=*Rk4YP5w2U`qqyZmFpOglW3=4tua#qiYSqoByjJ?ODOh(?6cgLjZ`lgLZ z9X~dWu%N=azJeRZt|{a8)fz1ON!Fg@QYILa(uP}f;;Tpch>_~&g!FMEN(oL*8J9N3 z*mD|qJXY5$C1dovDU*yH(^4#%sD@6BH};y8GEEmh-eMU))+jO%p^4)xX(J}3SklLj z(A8d%P@`|KW6-}G|P13*tC>! z?cQWnhRSY@U4&0#r z>0{HUv+dL5+WSUNmAkrC1Ge-Gt<3lP0B&vlvz3Z3V$< zWOO!N>X?*_42lUic1cT{fQ)G*hC+Oe?@mfj8*U73+PImOgvOFKE;TJ9%t=aIhA1^I zv6Zooi>R^FjHy~-AS+`+N@`jiPtU$7=@uf9#8Sf!!4?%lwVj+bQm+E}nU-*{6YV%I zlQIp15XNZG$U^*gHp%}zgA0D&-kI_oS!%H_+A43<3jr0fNM)vj7GsK&EhN)a)VK@_ zQl5$~dARMI;!pNqubkxRf!3dnyHtjVh>Khv)m@$S}*&?F8 zv7Xv!I$ih7^wiN~rm;IY@&s$&6brg9v07*#)LCsAV+M5}&_PLK(2KNMI2((SC#Zdx zQjH^1#-MqkB0`XVm}O*`uG{!20*9y}A#vh$qMStC(Kyl{*_@bPN6g}K~x zXE2R%(a%+pjX~bB6y60Da+Vh6kC+=Zqq%_}Nh-M*tdFcBQj00F`SCi)nJ7>DN+eyVzM+?7U$` zNlxy~`GL|KgHW7B3(y%gn*Igoq9W?1{5;5||D2F3bELV$-HAqA$Gt-pD3yNHiDA3J zS-Q^eUsDn&b!N?6y#ki~C2Im}a@Q2eqVpFmP>#I9+?bpIEXG5&rep&81IjBlVAQS8 zFA~S@)+a@i`zTpcI!4gU1GAD1J;bA`5Q1$^Ga!0p@ZR6(U({asTbt5Q}c`V5;-MUBQXzX zgsClua}8!4jZe(r5_r3nIhcI#|CkZ^B`9?8KdXP%4a){lI|mdAZLs*iEUcqo>1?uJ zUF{a-2b`$+@>Ea8^0_mY(4fmN&RHRr1oS~?7Qz2jUjMP`(AG-1Jz8nc?jvZ9tcU-? z=mc4W*+*+7mc>F0TC8{xc~~cM14SFiGh$)oMl$DOPI1mn`6Uudo=?eYNZ{nkZh`3Zux` zq3kPpqeO0$HwsR)7mWb1{$72?g48@&irXe8D20i6w-irQQB@48UPONJ`ofYm#pIEl z>*1lvm%=q;kQLJ+9l$7|O&;aHD`ksriwUd60aVRYadn;kiZJv_Zw{>SpY^%UqBU!7F2#(y zIsgB@MR8)Aa^5aQwASgqV4sLyqZW7R=I6(A;wE=4o(Pe@&)1E>`|)w(_`!*f1D{45 zf^_4v9UqGS$|v}1Xic)0pr7q4#TP8<8e3z1R4Q`|Kw<^=zE@;JHGIzkQB! zsO*1p{SDGvEZLW){I=Jqti%Vn2cIr{lJ4&{itwq!=NLYb58#!lGze_fy~bF4Ha*;H zJc-Y#hk6YUuD1b4;N!!m>A_xOGGtvy_?xO;;|+YA_}utFudxa;%OkzUM@VxAK9}QD zj_alP9EAS$kkc|$Z8J}c)((#GMr|50<8UIeN;l*bYJ_EoVdbiiu+T3fT z`~&hJE0J;~5$9Y}Joa#}k%te(+ZZXH`QCr(p8gfC61tXQ)~oyuO}hXOEhF#mG3pSH z+}dLt0tUT^v>_6Bw#O)#4&2dWRMPcxJ;rHZ7chCCrZxPf$M6C3{@R0IZ3Vv2V+kobMm#VLm;!9s)njZ0*6r>w8iC$DJw`0vt*rZdkKqS;Uxj^O18~P+ESyb(m>t59?WS?YXZ7~Z9p&3wjTuqMglhx58O_CQ;)HScwjRy4cG>3c)iC+x=7QK z-bR6dfp>b07GMRi9T@j6a6D~$!f7P#wRB_e4!;y(toU4SVy0t&!PVAo)HM_|%L zFbqt?Q_OZ?6VQf(-!@fi}Fs;0LAwD}dF&8eko82e1Ly z2y6i!1*YLej1Hg|sA0F2HyZOl5|I`VDZn_q<&zDp16I*BUY=>9YhX7p2`{52UxJJ; zL&m@c;2vNeUU3SKLyG|M6)i0fZ)N#`UBC)p+ISQU*Z^z*#!WzhfOSDcP9xF+j2sQa z31~`S7tjr?n+WemybHb@SPg6d#wEfN0`q_aa2H(%j03g-Q-Jhtdls+(xCxjv8Oty* z0Bj;2*a{4GA#$1oN$^^Da@YWL1G|7(K-&~_4bXc9nhsc(j24JTm*I;a<-oM7;8uZN zU>mS41uX@%;cFrTE<-_pPGA}^377{=2UY;HFT?z=L&OiF30MJa1J(d-SiN=t z#^XQ$y+GR>6bM)ctOPdAMbiNzGf@y=0N4(!2A(E4(1F*klIEizz&xM_SOLrf)&a|a zO~6WE^@3ibp00sSK}6aRISRBbL=Ay)Ky3nQ2#f>T7NLMZFEAU}bR7x=jJzHN0tObN zMud3e6N&9;+LB(w1*`z31HDU85MTgU25bOU65fFMza5b-MD_sFve8r|0JZ_Eedz0n zFqDI_0IUNR0lR?Zz{nNw55OegcAyuy2Urbkq3c!fBQB&bLdL)*U==WOHM$mNlj z5s|nxXhJ-A)tSkFGbNTG#t1O&E>!Gt$blYU-90D}Fe!L1YJ!LtxCdAbJW2{% zkPz4ebm0A`w#V=dDPR{c3uyZtS_T*iEGHgV4UGFe>;cn&jX*E31(*kH2L^zrfpx%G zyzLciK_m$g+g8*Zm;%>UZCAn&FbZgU0v-~W1at$_ zfL@>%SOCleZUP2?Rlqu6J+KYf1dRM6S^$^_bWFwkuR|nmDioeXje$vZn1;XraKKfl z5pX=P3z!K^+J>3{1Hej>19y-dc!=arBRwz;sHK1hx`6Z-=hA?Y+u>j68dwoTB!EZ_ zunAZX?0Oajng)eGWBLK>fSGi?1M?W@1(pF@p2NCN*UzKnfDQZ5HNeRIs3EWo=(!s9 znvfAN?Esc>U<**Y1}**u=D!CK`pt(;zy@FyunSlRw7rR6eF4S+4*}bN9dvyNE#ihj zU^?MP&`-tS1?~ps9Y@yzEB=KRoQ{H@Kof$VO#^KB5*Y!# zUm+u47cf2zd?$Q6&~^%a2+RYv0;_@Dz!qTCOtj!nXfa@1H);;702UDcGg_Fi2N?sq zdZ9lH_KYBEf=Hx+0s!-XS-@&w0GNiaUDN<=_>NO2UH3JNg4w81xM5TSTkuW6-M~ov zLAPe07uW`@26h9RfCJJ|p#Fvt4@??h7}>zc3k;(Sm={E(3XvAzZc?zr5M4*&J24qB z7;PA}z!u;hU|bC3zyPp~p7i))~Z5Wiwo1x$0H0Km3MhLJoE=_aF~ zzzSdyunAZWjKlkv^}r;&-4Hh)a$p*;0hk4hy8F~L zg2*Od8?XwPv>amr7yz~c<5nQ!EEvi~9|PNfn}KQgk)sAeymQzJtOIrd8-U?UkRC6p zrUNVRGb;yyEx=>IwAGL=g?z0MG`tikK>>gb0Vo3F*1;e!3D^ZpTaPBY0eWS~5ZC~0 z2HG|l#%W+0Fe)1v0h55$z;s{}FdLY+5d{V|0Cxc6ZpHKj*4-LJ6W@p$Z9Sm3R^Nd!0*t&9vjUJ>D}i0WT3~f01|6^k z*ba=lAA>CihJjvS+yn3nzy{!EU>9&J@l}`wz+eR;2NAJ7h^7X%JcQY>0yTRW^B(90 zrU6@keqdTP3;`>ETY=TUdSCbDhOOdhq}MYa7w^2J->nB~#r1!~k3@L>C^r60kBRR3V~-KT$uS(XLl*q^WRLNH zINqU;7Ki_aAChow6A>>X&9QAF;bncP?)sD1^0K~AAOEcQ zec4tD&|}rK(|;BTd-SXIW6z1=J^I*%{^xrPuDC`OrSI}@3gOzoZ4TkO!BvBcVEggF z0X9vmdR}}5yQxVyoH^HSCS-1KW_c(tAGj27xMPt4K3)re%K}%Z>bvpp`j|dtIN&K4 zmPUP)c>V8ss$R8AM7*L;8B&7-oqn7a3zSyY2W8qVu75?J6V?vd|JcOUAL^HgH(t@_ z4{_nN$5f7jvL{T_#{XR;yov^E{kxd+DjKE!Rk7t&y+q%%U-Z7JZxQ7$>$as0DDuIB zJqG=*oHpI=xL==ckNT~3rrlX-OSQ+}-6z%Vx-%@p-m2?w+1v45y-t0W#8!Q2gxv*| zRJ#*NkaW5|JheY%9v+Ti_lEeSQ6Dlq4)Lge;9!UB&$K)4hKZ;{`k+4rs=!ZX@qxs+OF^-7Defp&lWU>)d>=E(kKA3DryyA#>WuJaWm>-?I>7QcO zetpcSt%y56z)2nSwRF2%e-H0cBB;MJt z&kM`!k1_JG7}caNi>OC@>nA!RHcz;KrvGT;>-&;+EI+X~WuZQG)|9FG&%c_;iD7`>IF0`ZV$Lt zaMI)8np(3N+-Y#Bh@+*W=GmRA?C4C=?|{tJ-Gi@}sNf>F5QPQz7{%w?9hG{z`0RCk zWWOW`(s4kyT&(?Cj}wUp^{a+$1?TSVF{Y6+f*YTDa7DeS?Lkz%3m4%=k9g~#etDP+ zdB$2q*cH@LYZM<6a9To*Vq z58_h5b%Ha?Le9wpt^?d~#F3X{fjxY-G*G|>%t1v4Hi7e4&o^2HE)$$-lx9&KxOA)7 z_@+K;%pt_9AfG`Qpil19=h&T#?2e56_HY-d4#*p=qWF-W5at|29#qA>h-b<8*a-66 zn{i!d6U*Mxr-mIwyvrsYe@mYfreR=J_7O+k(r1NbBHk(E(<8`s4X(Xm%HAQwYh`@w zB&rLobsb^&0t&?uh>HYQ(6`r^Eg3ZiUc|Sn_$WW(hX&wQ@QkezX)7Mrm5_A~5G&r*$4uFcc-jU3S@ve|MIn3| z(zb)IzCgV4u0Fk=Yba)s9XICUkImRBBsA+I`fUQ|yAXGhirWY->>#*2hj_eMpC0Bw zMNg-4#B z_9(c>$ll<220K7HLlm`WEZHGkB)H@dE*@N32$urRa}Gxh?*W$$?j{`<%SFOr{LI-V zaJ55v&+KbxW>kUOdJZRNIk=i3V&h?~m4^^-94ekXtWOHsuzA}Y)obh`o9C|P%@*r= zON2ct&F)CGho_Tk!l2fYpdU31e_jr8Ezj;Oz_6e^Gr{}7FCrd+I3KtjAzT1lH#j&F z3OKyN|C>SDV)4yJqA;Bn!{~TKYr&_0f1Y|%j%e&MEY=Yy7Zqw|e{5JB^Wg+hI?Ava z`g?}s*I^K+fIiXMC_`}Dh?tAy`eHcfS#n#W4fA3+kLWcXIU`&EVVV@iV!SvmM%Pp3 zbL~|Y{WN45{i(pokVQJ#iNjZ5i$%{aG!OVprx??sk4h**yaGC0Q(3@Da8=+&Qho^3 ztF_>EIK}!FeN6BW;+><;%BfPV;09cRr?`{=fw(SkQQ(|JAP^T0#}o$+GfW02{*MLc z0!M$-$!x$z*#gvlY5ggk8#>40WS(kGBGL=88zg+U48#?HvyJXG;7ZPLo4`51ottSD zxY*Gm=6%fF2E;dy7FWNo4;j^r_#Wuaq10%!O=_Xk(s9`VS?6f6{(XJch-55pk@5J; z*`$|kcjjX>Bq8bnpBXPcd|#h5YBS=2%X*Do(viKI3v1J5$JIfWHC7}X(T4;Z5g#xP zU*{k_to}5zXjB{pp9H>{c$r>xJk_%cvUbQYOJpD}9Ia1JqOM|&Y{Y_dj>m5v5GQS1 zhccwgMoosyHlg<_plmLM^AGjiLIg&vofdOy_Cy3r7aB^rDjUF6& z6Y;|}q%)5kyB@@XjCJ`=oovtpMS5CwZh=pObAgjn3Oc0cxEOhX!{CvDxHxcSAzU)J z3UH|8IH^cOJ`-dWNV!T$76k?7f!_`O#lGUyKXq?#M4t$Ie45>fn*wzQF%y$h4)kNt z)TZ_trwD!^MQD878A)?&EooK%l-Z^2ctm1xif*%h)6*}4+YJftt zgsNT&WWFc}%^8;o9S_JNaBX7mK7Ft_eN;~hs|7dUYBA*lnsJoqn%*-zUh3FZN&`;r zf@CKCGnt%*tQInJ=PTQFBnCD(xuZaO*{-(p|VA+mnf7c?)D1TzBeNJZ$tkF&khLJ`M~;W%=1VJ*j_Ea7 zoHh7=Nq_5pEY#uG^|#sv*u(d;p%$d6$;DF*TvH(9?cl1xQ7tJDcN$z(26v|2Uax_nAp;GAQpY151h0EWI0IcUfR3U`a(vVz}J8`XAv1V3a%kf^nQw8=Jfwdw}o|sXvq^X z|I%Z|L|uxl%313U+N5Ok$87}?I`K({yem%}`2=?`*@(OHd(RvXQHFkS<3qR#aPi>e z;s+hls{!W?;dX#42X}7sH-g&)&b(8kv@PJu^0Dzfmuv?a2vIx@&L6@#;xR-*xHxbH zAsoFKkr%>cg7cl>Fmk9leIT>*sX1eU^cn?~_A>AksI=AKYC^c};2OZ0-9mbMz%_?( z^g2cdIJ5srk6z7a58>!Fjkf&WOV3lJcQ#tjQKZ7s`y0pd#Vf6POpF_GGM)mS0=%Q< z1sAnaeBY{1N~}bj{%%!CR z%fdDx?k*HlF}%XIBJL|xW3TF8_>LN`%lW#VuWR|bnXeo9x|6QQp-z15_)J}EtIiqA z*-&swA|_@N;_g*vr#NlptH7nK67xRO$HverAbTJ;w-RVXtp!~BD)G=~`j}bd_P5^5 z#~hGR>qmmy4$f>en&t7}TEJx@PLofcVGs8s>IOfcNc4WD7cXr<{NU>I=fFX5UEp#l z9Rk@p2F_EAFC!D7MQ{1x9CySB~pZ;(JP* z1wr5*G30YBl~srzx<}0W9EZfM6u(zI{<%Kp`T-M>Xv^9C02S5=E;fWq0+$Z1Kjaih zFCAPOICG;!BQzVFXN!pW0u|YWc;^-|^$UG!BE5~$c^`L%ya!t(ol+JGeH5}T$fQHy zCALv)`$A8Nu&$$Z7hXffBkxj=SZ3E@egUz#M(@?7q+qj^2l{74#S< z&*`tjU+P0HgiJm-NtuK-@yT9s^GkYS1Qo6fMB9@h;VX1xJ>r|55-Y#LF-HsH-A~~q z2r=?!JSF(cSNe@(vL|DTZR<52Bx|&nnT;g??cqlGlR<5Q-1oGY^tC=EY&YUfPmAKO z^;!LF$S8RS8bv*E`1EUi^i(f#JMm|>$QEWsP_8Cwr28S;1R44czQXQU3i~twHiNI; zDX#9o0N9Rr!%ndb@hJxpulOt85+;3`WgdHYB%-b04}tfYJjMkki`ET3@&)mH2li|6 zmt&9CAU^59;4MSEWtT|!Mjtzi-q&f_eRdrtd-U#3^En)urJiU3e-QjUA`oad(+T|=o!L__9p8pm{ zUvY3h_@e%Y-(p3j*LEWJv3o_Em}h@J@G0QY@iI_(0^kb3!PFU!Uh}C2=VFe^xD{MI zI4^N>;^^~eD3Z=@$hsiI4^5&|?c$d2&}khYoA={oBT9g7cj`EEyWZ}k#-aCvs+;(} z2L;T9CE9a1!5?Z8N50cXjYvm4@-@y7I&_X$1|1*x?AOGQPJMmYF~rN?5)XCi^X9m) znCy7B*Vq6ZZL!?FVe6f?pDLLNnWOpaNeXd3aGBufHjY9zJ^^r>o5k3Z`qHo##KRAZ zEho_t-H2Bo7SEqV$EQ!lcy1BBC-qffyAf~srzrkjU(wHro9ROz;B-fPfIF6lch`Qf8ogb`;ab0?1%nr%~N~XKbhHfLcj#jb03ytKQ2LFFt9O=@h_VXcL^sipy zcghP~^`ky*-a&A6ZD$WzVv+tBxO#AFDdT|Mu|jUl)!vW_OK&PUPV^dAlN^C&p#v8w zC&YmtF$>*@7kw^H{iqj*H6R}Tg;;e88<7^olfO8-8=}10!Fj(Bk3$|7ehtdl%YM>hrXNH+t>gS#%wym@AzUZ8>~pvz{>l9o&zUjr|zT@BMv0`AiJ~^x!T+O#)PB)$^w2*$M*wU?!!H@K#&L?qL zt=jRUZft}Kz}bEfBYwv7KzfmC(~simpY??4ansScc-QF}-Xnt^gD2|YaPb9bkaQ6vI8y0}?e$l7(+XSu(uUB0})rb>I{;l71g9GbU ztZ{ZY&^V3*7Y}X;8KZHWsm5^%ct3dDILSbHd%#tKGxMgcRvx&`Mz0ul8o&8gg^SZr zfbWsU$gxnu?cn3^>K1NMWT1@qfOCV(AqEF?8=y;k3-}uF3y3eG2S(xQP!D`7_!tX# z=>gN|7!@~%bkZ{$Q?o|AdK!PVgkCsnz)wzNZzKa1AQN0OII}i1IDOzcz-=Hcy7^5< z2W9q0{nfHi4tb_-7#m5B!)ZNDbs*W>3Ryj5c9J1b!Rx{8(D4S1oLL2SXOL@j5Q0eS z`86UVt>Cl4k0c8S#C3ry12;}GiVL3w_ZOlU3$7jSGeR5%=~r&bzlAFdIYQ94-!N zoZvG1iX**v5|EB~0ME-P?nk_`uNY(K3&Rc~-qugtX6Ol{P9t86m+)SveCJ|AroV_* zP3=$lN2Mdr{^A`2>uDO|n=cT*AfDhyJlk%Z_cWja+;(sS$PNOWqE-X0&i=?e>(sEL zh{j#`$od<{@wLS|d{P#;wrImxLAGeJEK!ri4?ZQvIOC`DAg%zH93!Uc))iqL zh_}XwCw1$>QE79rV#gY4j;Jm0nHKOtb}Uv5v0BHBszh8H{-1hLptnO7H(V^UT8AVw zA)XGse&8w4C^`x*4V*c$;=y%*^9>hI!gg2`oKVYf@s8CxA|izx(g?#?qlvGY^%&u> zS>uOq1{nu(9b^>7E<|OCRWH*q_D5i5L4= z6ILW4UJ%DaH62HKSt<`|2oGd?AX`oOlZ;NHkiQd`^!B3zuUo!GGIkhF9qTyx3)ZQk z^rOYBFzbkZ4TzVGF^qTUaCek=Aj~>CXq%5M=%t1+&;lDcBEMUoPbYQQ59ptm=X9z2 z56DJ$LAN8`IO83uBj^pwc5v8X%Rn5xZ5esl`CJh=H@N6?^vdUJ30fvda#j>5aWxdP zz`+^HKn=YeTs62mMNVJq6~T5~w&C^CB2qxT`IQ=+qSH+PKZ2Xnf0h{~v#}mb<#A`r zcv>0voIfmRI%V4Mt zTsjS$p~>Gz*qt+EoU3Tn^+~j#@j( zW)%1a@Yt8jAS(*46`biGWJSRp12>ekP*J*-poYu>-v<67D!cv|=2NzuPjGWmUPkgs z#>K|_lu*a&j2D^cbeFb|E>Ja4sGBV2MOeqqrOXfEx^uE&>>_;x;#$FNO)}Ks2(GEo zy1+$UZWx7#hm6@J7^k~RBdj0yeZiOBY7?G8R!8vO5*l%Eq|YiW=4-cPu?#VmtXJ~Q ze^z*qaX^UP-K^Kn^2hi(ob_HcRAiUpgPL=PGPt%_p_>)+8Q)|Bp8uk^g7uEE-e%U@ z&1h!ak25~WdPk)^sA*=#rs7^!wB4c#6#m@#1vK?uXT2EKOJ==EW;!m|LDrkae8IW) zkiX_;#RIIE&5GO4RfLY&)QecJg!S70i{1j(t7N_S=T$|X;%my5^4DHr#YPrnv0@8f zyGaSbDgVdMiZNfqdS(l{SuXu0#miKN2mgy+0q3t>#ERYjMNtlB*c;1wuD>Y5DSYjw z%n;-(24*qu57A4NT4(iEl?9cddRE-T2~99Mqk}c z7sCfxSQllLv7NVysZMLLzIC*C)@e-$YL!X@E0hdm+XAmRzDO}P=EnkcypHH#{ejF+ zXZ`pPee61c+UI@<_l&it7Z>8%Y1E! z{)^1}L-d=Nccv;kgXm8*P-tO6xm&Eb#JW5>UCGgOG7JM!xyt8=4=+LKXNib7>lDj{ zyHewob%- z4@qsTSP*X=8cbwyXO0rnPtQ}B1)l2BmaE#AY3+LETbW0$G89QZO7row^>e%3%KBO! zPcm+g3dK*?+CvOI#0e}sw9SlbO+z7kgRDp5-=#Q8>%3fLOm`9#-ekTxg#SQQzZGIR z9G+46Y*MMTADC}t{tf1>VceSAmHzLTk73^PC&d?W>nAeb_-DmG$od)J(Y!&;_mx^q z%}M7~0xg+&vwc^XhW@Gy%|!tz+{F5B);A|TE%9WTwQ3TV#}k3RV;8~U?Y zdzp3U!@eOlIOYpA=U$bLTp5M8Ih~*R(Tdjo#rZdK{s)==f%*E7di29QB>S~&=V{iD zVcxUPQY@)PmA^KH1rBl}2$Q(H3&7I=-5yf$T*(j9;zPV#8S^gYO^0!hxP2Vv!2_I4 z`7xEv5zhVz=6#rhXQ9n|6}70dn`H zEUjQenxQf_hyGgTo0&ITsGNDcI4KQ~+ote)@KjJIeK!FiUjDCX&zN?sO7UajDgT#E zLpCKyW<&pE9&ge}6Ftm-Yx4aR(JQ5z7SWG~_=Sq6b%_FgW>yv`oePBIGC0BCD4Uc8 z=A4_zhN=cDLl<$z_}iY+(CMF4%}jm#^<~L-hwwLwkqH=Ld2FscN!gjk=GJqvTF##S z&JKkj^JO8$x{vwtkb2ZGzd3||TJpn!T3X1Ic#abkgd}*8d0zY9X9pfl~_3^50WKO^oQ3;=x+YXt6W_YwdstYS$QTdooWNWknk$ z`Dm?x%`mNv1CQ?32JGV&X2I3q2VqKeUafc!^K+Q5`caJ(JmHWbSMu7!uiFM%)<3-0 zHZ*t#Yu5KFO}g=>@EG&%E0kpm54oq9cV452MM_=6AI*~`abKhK|HeH2-nHcGb)}C> z89q|{Agx)RT4~xloWXZgtY{s6Tvn_}sei!991ovFp@*^5!7kVIe3vp`UZm9JQ)@)W zGp{|W__x`boB7s{ROYG7FJr#GLJ?-8Y*73l&CP`#$q62!V&yb&GWRNFE`_D9GvDk~ zZDSUWZ83FfO3lpXW%3RBJp!9v*H5<4BmoV>QUt^yAPGH`1ttwm*>!&Mz zkk)ugG4iPoq9?@h8>~a4Z!qo2-@(^3AE#R_Zcnlf&A6S#j=L3)wM~Y-395J=<_mcq z|DN@=lSAxPKrxiVnXBw( zaDIEmAJGPVT1>^@XRO%FGjItj{s5k`ZOu~S#l!s1tlxQ;GHh3%4IHF0?DVJ#CbIrS z=F8=uy3n*K%+Hp*CVsloIxr`fl|1Z#&4Ik0d5v4mypy4?BvS1ax>qrn~wM=F>)#fW&gn{k5>9a5eUv;t=UDiD2%f~7MIy=-GMe0?U!)saW@vhr%VSe>?N;7Zq`c`C7$~)tY%%7O(Qrp63M3 zAv@oLvb@nBvDlxY^k=ZWua&rm#ZIT(ir>ci>t!~H53snA^~?ES;VJOsq&(lLmC;-ucgkeZ zZ?M?SV$*g0Q`O-sVL??gerDrU6I6Soa^C&$cur1+xvET1lVLFPjUlVdIC0#K;cz93 zeSDf}E?ODPJ3ExQPZem_Gha1RWxtxUS{$pY5(um`@6b?-F!5byE`^R<6a4ba4+ z%s29Uz{Xw%?6TKbhbHb~aXqhMm$CRQ<~8=0=7#1YS)H6PoGnsy>Q5^D#hmP7=F8>V zdU*Ga`Eks%(&FLY& zcdwajx5}FzxNHApzL^J+{2CfmK4ZR>{hT=*bgWBM^~MFNq0N?YN*<0R9gbwOu%u%G zPB(SCRkckQJ70+CnC}c% z`U6@2E#@73h-Oy!81t>)DMc6S(~ldYt;cGOBb1?!tV%LS3AFN|D&rhZaH+7&#kiTG zV2Of!3DIjfO(Wmb&F3^5mDUys!6#VD$BVByA$Kreb)PDUdGof%ED3L;&58XU^PRma z8_XveK4ac9SCt&2Oond72eqn@%~OA;>L||#N-}E|{!-8cj@NnmDWPT&_8t*gAnr&g;&F2rel;JT%Xu|lOSJ!-; zsXZ%lsIPV_IHcewkq9!n|45a_8Is2^u`|;;RJ3MV!-E=c*q|wLE^{IC zwS2oZn)Po2Pq!qYCq%_&-h2=>j`f4!$+7TeeW7OV>K@_*?sqIwwS^OGW4<-S_5Kg@ zwS$#DE@e0*E0=SG#mfoG`GS|kvI?So**H5 z8f&?mRc?=jslv=x;v5!t-lgbB1zMRDCvGvtH>lL+KKL=_U7F(MkBuPdGs@~77W-~j z<`%HkcceJy6pP(oDSj`D?U$$;xwt_SnIFl#`x%wnVCKg%U;m3DhAXi)UF@8X7RZ$_ za4l;!@{Fh#d*@p(&e>`v9-vb33Z*re>LFhFkjbYgeY2%LX5PI-m!;Unh5KF=LKis; zu;q-5Q&p>H4`}W#CNl5fhBPPJRm}ShWzOW&nXm1yay!AfWtsXs2~7L7NtCZ9F3rQv z=w?>x{6VFf%855I-^f1ePHxACWZ5lGNl0vBEoYPxU&mS>n^yU({#v&Bi>i5F%tvw$ z%|{h)c3w2|4&Ee>%2UQWkjpX))sXLbyiyRe35`=V+DBjS94Dr8qH%#SV7!=5};F^R7sh|8Kc?_sC>9 zkFwauJLk15-e%@jp$KzSzr?)1P4VXH^BVI`zNuWvcK#u=vEWu8bx1tLT3X1Rto>3| zw|agQ!Ba^aCKA1R5z=F6j%J}>avpCpf)3@`&sd6%7~WDd?#;?Oz&F4yvENJ z%&kqiG-s)k5PXTX8u@;PeSvm>`R12ZHa%9A>tR#>TXkK`h5Uwj58q!s!1_JRSA}>k z`ocSTqAM2TTsBHxz$x%XaS>N-BJ&=u8pe?fS2OSC8%1*+T436FROv-<->wjei?IT1 zR8S=$xQmsmzE!y`W#b1-o_Fyhng0j#o{7rpI37@+GhfSx%0pTIXXagesJxi@!DD4N zPu1L{B*W4?+X$W2w&v@PIiLsJ{_ zc1$(%<$MQ4Ke|cb39%pxjrOA0iQIzqpDWg!`R$yGt5cc(w-Re%aBMUMG%oDz%ttcs z;O&fQCyx1YJ_gKW{Y2)S>imC{_BspFSx_HT#B*G|Eb)&em_!$0)(oPD-yYUyxJimF z8x-8H;3<`651VwgD`nG#99H5s7B}}*SuJ6cKS*&-*m!PNKXOH=*`U-0f~S@!Kd$uo za9110yq_PLmSbPWb%{*#~dCb=^?;N3st=vw} zGVggq5xfJ@-jLZu({CD3sa+xS^-EQXZWfn^xN-+}7&00A57XI@j*cg0WF z+#!dPhd4p&VrAiduI6#m5Le&aaCE79^qr{c;RzW&k<2^UU8t#|X_uKiZ{tRCHdiw5 z4;fE$O#3_((4#UeQ#{^M_)!tbEZ87ME`t}lTSD}oIC<;4svW(o^{NynzHM6nLh)uP zKV!bUM-RGVkHVY#Z}im~Zu} z9+=F0t+Lu6A^LUJs;yVzf3nucN~=>s@U&@*d(CX-3ote0u&Yotn!~AwGVfTV@|NFn zf-Ii-`jBp!%DgMYyU$TPmR8bT`6^L(gwfmU&aO352LAQy$ zXyU{-Sgh?;$s8m3cppk7DMt zn0MZ#hcM!F^s6k{UJBiBbaYypXt@aFDvk?nRrH$i(U3gh~;TW$T4dP zCv*LzvWZZj-Nk(QWHo?JbFtb7Ynt;{9t=Ou`t@Hb#k*O*LGjZy{|UuxWx*i` zo8tIQxVltcMZ0lEOr6=xM@xe^yG2r*n9E}4G*z0BEWVBTDt^lEWd0GA$94rTDLA0u z9}=REnK>pXlc}8aYo%ood#SL)B?MD&gG0q@eNJidt%0_L`C1;cZZ@)tc}JZh{?u3D zI_BMPs!ac&K-4D=_PsGyzPju$cizN|;| z*DQ9&seGbXd|HY#=tp5Fb>na~)|a#RD(2nn6w!1tEMmTPt}=HaS7({*+nlv5ZcS0V zIq&Z>v-z_!6U)gSXTFp5M{+hVGv6HIeBMym9AmMgzp|6c$-Xp`v4gNP|1V%u?Ch!aV&= zE6S~Tmm*r2FJZp5MiGT*OJQU0YWhW=_@F1JZ8SIngO{Cw# zq5S;;#doo|jrsazDue5o?^dnQ2b+9K=HeqYvlT{)`uSJM+a53M?j~>=C?`Ga18}$-RGiQ*O1)gNp zP?vIhWeZCYb_0bhc7C7?nfD8~F<(Dh>A%B+p;9Kxc!I^XX-d4Fi?PE@#+#=&=3ipI zk>8j#y~z<}?sJF-;-BVI=6FPEKXNkvI%Vf?Y)-q1#|WP&j%MC27OaL(jg^pi8Eg4@ zB&D%dD)XI>D8d{B*U4nj1rXD6>E^flG~Ni6Dyt8hsrkg@8Ma!>yoYZ;E?~Z1S>4Ct z#*0-ISF-p$DGq+jVi!L<-OS={=9_t4GW)xKifRGR2-Pt;tbYmft?WogGCz%Z2cMa8 z)wOwwAEb45DMJ@=f*a&haLYOgqPf@_jt){qzfXbodnwC!j!nBxDhpg9{5dQxV#w{% zVY4V-tE_l8uHoGuJa^CNGmU2iJ8d+83`3ds@u~0v=Hr=nPgL2rDbTJI50W|hvvf4U z8u={19N^2C_wx{{VRLKDZ2qc=4&X6_lRg-5|%k85bX5PcE!kuJ0+M?W& zKw`qKHGb=6TQDzw^_u0S__Of|e*Dq;1Q&jy6huzp^4y%Fq7^y0H#475SXz?vD`KUe zUzQV^;6DW>lb^dTkWX2xU6((sWP_q}3-WVsUVckXVPJXgn$`ZI{6PM$QvvH=`wYr0 zD$FkqEHBLuEMJ{dR=B!w>?OWMJ^h?Z-z0GdUGkTY3Z{sCbjjaQ+MX=*7p+$~%w0cY`ok7H zseP%UsO;3_W)2vx<-g;weiiLXlUb!wj9|PL`g6N6hs)7T zZIfDohtN{IUTr)Eub>+B6d9VMLL;s@ zG6j|_V?AXd27IyRC&GZ|X?~&u9sk==qQPL3=E!cqO^bOBr5W%7jX&IgU)S(4I?mH? zGR0_)Ch7{xfBY3{2Dt{@I*bRr#DI^{{H!qGdJgS0;EqVmQJz7uLUVM)fa{Jf8}J0p zk7~eAYJMIXaLtdy@MD_6Y6E^8vf9LhiG`A0iU2%UXwQH>Ny>*@qL3!@%pbTPLALK zM;HtizsK=t1OBOo#~AR>H9X#cuh#HHFRrz}4VuF4Rj>>&&FakqPBY-!G=47wzDvUg z8gM;_d?QL$c3+1E#26HMPQ)AVU$h+B8O|NioaQ=@EBlSm_%y*1@jQXA&5;=2aYRtu z6dZ*Jjzs*Vz`r5z&k1;vfL|7HRlozde+QciiV9UQ*diD_6!41zK2VFO1=uYC&kNx> zR0bHIgmUE(0oUq3SDX|S+?3iz$sGfkLq8cpwL?a zQ&ufbfgh){Uta+)E8qbF&ZfVbE=0h~3;YP+to~DMDhP^b!N4luF#@j5fSER4z$*&; zL;Q>~{ZAAWRRx0#0S^`M z*#cfoz;gw>x_~bc@Gt>i;Sdxx1jT9r4;S!F0v;jYI|aO^faeK#Edf8G;SMVM+JfSw zU=S(b=L9@Tz%L7U9RXJbysm&h6!2(1|K-|3K~YaIFohPkg8BmPE8qw-@jup^oCpl`JSu3I-hn{G5Py6!6Oe-buh!0k;eILmj8| zrwEEdT>-4KfSalnN3@H8`wDoffCmWps{$S(;9Y_9{Krj%pm$sj5|zrLD9WfVM-J59s=G=z@V)|`E8zVEe2IYf_vSwcD+I*=!Cb{IY<*BjBol4;S!<)wKCP6~PEWQ79OU6mV1Z;#Tmkfcpyg zC;<-;@b?5f#ET>SqXk8TS79<~D{f31E#PAWevE*R74Ucg|3JVK1^h$8_42n1igdvs zO~A(qcrO7TFW>_Oe1d=v7x0M!?ieE|J`xlY1$>f#X9)OY0iP}4Qv^I$z^4lM5{^4q z^P46pRtN@q?vQ%5fM*E&O#(h$z;_Dx3<1v*@Jw(1gK$JpWC;c*1w328&k6WU0lzHZ zvjkif@Yy;}DSRj>oVo(nLIIy6;HI$RR^SqFUjd&h-~j^e7Vr?@EQhK2%Sd2SNvY@aRD@+RoJWaqC33x97Uo7AQ1zZvE;R3#d;aUwF zBPc!=3?>TrQUT8p@J|GMwt#;s;JE_6Ou&~o1jTYeu|mK<6Y$jnzCyq^3HV9@-zngq z3wWM}v-$rQg5ro^@TGvC6!5PE{G5QV67b6c{7C0_Z9GU0v;gX>%BP2KSWS$@G3AP67Y=z9xdRT1UyE-Hw$>YfNvG>M8c{5QS;j- zDC~m4w*sCf;M)bfmw@jO@PPupQ^1D{xMP=~7$Ycl3;09<|4zU&1pIpepDo~f1Uy&3 z_i~)Kza@fVpJ1>;!1DxrwSeyz@J#}KK)`nj_(1{Bt0Bz)4+)ARg27<{KPlk(0)9@w z3k3YKfFBWXRmUm)M+L=0T>i0e{V3qR0{)YL2MG9a;5`3v6Cx;1 z2nG=Xep0}r1^kqN#|Zdo0go5(pNnyaDN#_IDOQ;50{)ADrwRC30q-T?zY6$30Y4|; z!x@hBQ`Vgq6k`N~-voT3fL{>s3<3XLz-J5i9|E2$;Fo#`iY0>LvVgA;@GAnoTEMRg z_@?l!E$yev)Hq=_*|YP~%|$2enTLFNy)TNJbHr>aikf?5YyGr;{2lwvreW6bWRvMH zYmMhcQ8@;A=Kn|Txx1u&SA*QqAh$8dj#msoV}o4BAlER+!3Md4K`w2O|J_w0!j7n? zC4s2>2KlBzzG#ro8sy^!Io}}fEg?IKqPCX+ilR0c8%3} zR_mV@15CbekZ&5~iw60uK|XGf^9}M|uk7H>Zo3!Y@&<#v${;T{$cqhfjzOMjkf-Ug zLu>crbwHCx8{}aIxxYc~X^^`blox3207RuS1`z>4f4M` zSRHV9d%mX}@XGfM@=b$$(IB5S$j1$GzCqs0WJht=yWK$8V31cC*D=U7405nRu3(T$8{~ht z|l}gS^2YuQJHX4f0}xoMVt@iZYG=(?kIB zc!NCJAP+Oh{S9(YgWT01cNAnc{Db6_3;60L@)7LIJN z0x3tpA|VcwKNuZTXS3P#cvxd=cot|TB+oV3!S&2rlN zm!wN_%$Sd)?ef|&Z#XVV$iGx)`N(|~K{aU`^41j?8GAHo=Sd_AxfTNo;uDLD`bH|L zTSuxNAK*7wV+ir2?vPB@@I+J6&Yj4**rO<;%FHOP4!3=B5oryEEuVLh(Lrmt3IF8D zWBsLzvU6-*e{c}Y3Zm}sBJUa7NBUN-`axa4BY2x2)$M=aiJbC5ZF94W^5_rR1R*=^ z&H}shpt|@0mD9vTb8oq$4U_a7}YNOsSEGkNMK2x{vhZEu(GsOUi4wOfm&?{}y0M9g_Jn=#%4WZ!NaXs0^HtOL{LfIK2eqyfUH@xHfzt^nMMod)+}1%wrAe;jm?{7x&005 zl*`hJn63;WWbDjAwQ-ozhwLM|I{gl7jG^mLe|p?S{W*zBgwpW?V0ZFLiAAQj)pJC2 zSsooPi-tr&xZ}RNAer(rdc%)|0_e0!GO@akwD_XH@u(G>2UZm{VrHR6fdLmAj+gZz zJ2`G#tup@5st-5H{l|p|Qe@q>s<@~NS!iK@Y?9}XtNS)8x82prmsY#1s0`{*mEvMs zMwPx7-8;kP6DRw^xbNZN+qJ+?-e&3W(0wHHW@CO(bOGwtdr%fw(qKe?u-U&>4jUh8 z{pzQ(6zlBM>1C|jXY`gkj&Jtb5MV5y=_Qhkoh-f9?0;D6`v+CQn)L|xF3YtwW;B0m z_BBW;&c`gxdt=~Ul{Qm-dO($U=4ScG_*%h~6V3-I&ckXiRsd5>k~(eEf(f5DY58MW zGy==Dr(p2Pt(9C-_f+@n9P~EG>mc-DR5AB#l21*j*<~ZOo9>YTyBeZoV0`GDgc#(f zI)BCTn8~!4U}XHkV{q;49_g!jB!AGu-x}VZEqE%)wuvF76kK~v+}!DFI>j34{CfYvf&1nn_>C_ohUZ5B73mR?9V}Mn*GEU?dxw;Of{T z^3e|EksKLOkQhLP1&7zamPbyF4;%0^X$w>{j!v-pm+&t|wE%{xKg;{3wvg7!&!#qr zT}uI{QmF<;LU;2t+8ecPyEBPW+Hz3$y7?dDi+-6OMxJ%7~Uj9o5WdRJnztg*o<=JjP*nY&-?uZd*S@!|o1S07-rQ z8iGJ3m$y65^+5-cK~X}2oSfPeRJ9T3jQbt9;D%ifDh)lneczEGN0qt0Z-%j z?UleCH%Q?Qt4J7%-VJ>M*B>K&KDV=GkHzQ$T_o3SB;8tF*MsW4Kx)&!| zGAEGk10G~9K@RFDf;s0R=X58|Yr6e&Dry6U8>qU#QDUC|{L zu8DLnuCS!uC5VFk43zTl{q{A+`D2BgG`(`Qa`5Jv02PL78eqDq9l5JJC*=31SE+mS z1d3??jiMs9bJ!<44^x)k?!kk#!vWsg16X-aUO&BE`Fs0WkD2a=-co)sJ^IZxM4Wyo z8nY<`oCQ}X`(H48c-pq2F-~Sc% zZ>ApefTtRYgoapjood8a^61QvO0%FR|62S#+gHjQf{3URVwqoBoEE%)@9s%j(g^= zkW9J5iYJR~;CIJ)^`ri`eyVPtinsW(n}>!Y>D0qs`~ww%Y5*NwK=>7YlGCz->wj~M zt2c1HBGeM(^O5Mx(+&Fy)~>Fu#3m!Q`vROeTCwq zM0!#`lg%@uLciUE5%x5-^I&ZlqWiL#m&i#o;~hhwrZ{HRr!I!iS(r=*Cqbf4%$ns- zN+%zDCEU9#KYz>z-@nj@dI#UMj_A1_A(OPhcl=6<<`?mR8Bz*eRA?BDQkgMC?Rh~i zoLN4Y8_?j~<^nYx8k~o&kV9v^6Vjea-8<)e6`djt!%tSoAI}PZ8+Ijz;ZJ_}pTqD! z-~D$OMjB8Lu2C=Mj{ET@Wtn>8cSx>usx1ZTITGAKJ%5nHW^d`T1kF0-9I0({meBx- zNeCS+qQP1EjhMFE3OI*U>6U}-N<)i zc<{*boCN~>8vug#bJ=MFNznlF!;JIp-&ynJr% z@(T41OQs}OE-UIE6gkV?R9Y(UaEIGHhbWaamXA^>-BThH?XFp@nxJlCgZ0(y>*Kyg zVwT~xTQ%foN`_@D?y2hbwY$25@Ae=aP20lNj~YOSy2x%0xz1J23c%&Y21p$NEb<#18gHKNE|LS?&((V>rL)KlK? z3C}D^@BsZ@JWs*u7d!@f#=}Z`uyfly7*Eve=x;H6MuV{f3^nUZ@_W$JPwPh!Mjy{> zOQ?^plYy9tPmW*0fSz?e;~}I|2tkeH5xEWh+%$1=+b%2e^4u!EU(<}Z(f*I+J-JoQ z7ca=?a$AL>`u1U&*AE`juc2W3#^xpU^VD1@H=3U$eJsB}|5bDU{qo-V_06sJ%eUv( zmOhayEa+su_mlkQf+yyC`{b^2wE4(Bd7@ms>PAe~(IcpvP_)$f3}nMh+@B}q^>Wql zXZc8(#8nHkA|p_jJv7b^%SG57_sKWpndXQe<@Xj2G*8|upI8`V9>&85QpDzcCt{dDFWm%kvk9HBm?r=Zi;ceaJ!u^UThHmoI+s zj_pZ3W1k|7m9qTD;s)kP-^*o{s0w@jkW70`ywN7jmu*U&1|7fW@gIwJx)=R8%cF%y zDS~kakFX+onrk){SRSsBbCf#L3i(^*^(HIO!P9u@j$8j7!foNk&((j5id;c`7qh1; zcic5R-XhD9+^TLlZb|#9Xf%6G6o9q;!4&uRHGF)0=|SdYfjoanUGv@D^6n*V(ZZiE ziIx`1wLgAEnlHcgak%7`Cw)9s%8?5{ZX@N&EtZCLZ-KJ1J8#A2?KM%xIB%#=k5GIq zRz%e9^srDny8~koz0tdnO?m3!IXsoNk0n#G%XWKNSyKmes5!|jFB<(O%d3}mKqJ1t z^qYXKIL-*CG;2om+U%6qe3Fg0H2HLXr^;9xDSlR;Hd}8hN$yUP)AIQzWlf$YXcbAB z1(My}XuwgT>cVLJFne|9hTd{of;`2Pq!YDOzf!@fiFSPB};0ud$^R6c}TJ^$@lRw zrDVSJOCMx+1x-RlOLbn}MFH5I_wD;HmrixhHTytJ8FIL+y%QxA-*1y2_6$*cf}|5=%zM1P*l|GExRj= zMSrNhfe%a1xC)paQVRJ>&_T7&9`p~w%#C&;x}i}xU!dasyO9m>A=7a=%}dLS39hOf z#8Q?9m;hh_<~o8`9Re5gO1pg4>uL<}|jytxIqQ!p|UlJZJ;F_a_gqIQU zLhdMw@CV2RJ)%!Io=*6$0{)QWLkZt^z)@^)hby|1;%mX+3dfTPpC{mFIo_P`2?G8z z$0G?J02~>KIN_<9C()kW33b?|D6isvm@I4%VECa9dU;H}ZMObIlQ@oY)&k%k~ zz&CUJ5aA~T{43xNl+89$><|=dxWSi%edlTX9#~sz%~9M!e0~c)ei1x8!1`{3Mv~E z&6k9S3-~IIFC@H-fNK%WBK*O=;+&{_ocT#7{8s^=$^8siKB;AkqxA7fxrs|ffEj$bFd zXm4?fwFI0Y{FZ>v;rv5{pYY-icib$l*hY#SUWGeuI>)~x{4)X9a$+IjvjkjASr*~% z3%Hg;>4d*2;2)8Hhto2Y6m5+Pr=>gLbp?DJk5Dq#AA_;$hNrRpfH#iy_>f|s zp!kIwJjN_V{aV0}a=bg?^8|b!$CC-4AmBSV-kk6O!1W?n!|_OW92A|n0^QIjfGN(F zKr(1TxI0cJu&58v(m=6dG3z6F$2axk?$D$<`>8c+3!4$NVNctu*!@ht5Q--TIteaV`ns6ebz5&YCoPtjt*;}wGUn##~#LzuVMBnk|>vyujRkf&9tlF48Rd7K9=5<;h#B zK~T0#F(1v9gSJLXGvzj0ZBn*81^3zVS6lm+8NUjXu4D|G+hVGwqk>`*9M3jswqjiZ zi<*g8JpEAawk^S&Hg9Xrwquex(=GSee$>2ku3TqFZ)v)mv173Lxl6vjf58_-g_E`E@$E;^|cK}MQ`=C6=AP@!eUhUuRh=U*`8Wb z=tw;IShvTdI14&tJx$L|%J{c-`W)!f7Rnd)HmJJk6N*id+GaI>Jgz{?Z|=CScgW%U zLe0)kyqaf|3hgvY-(sa!$YVMO3T^Nlzv1-(MYor&6q1*iN8AsNJ7Y!?K;F`*ZKeGY{7ci4z?% zKk1*^ky?4*;gE7)fk^T8j2f`@>fsE@_ctsV+-Wi_R}Nnn{6$8A#a#ZpJmbgx<}Nu~ zJN%?dQkvZO#3XatS$XY=M&>;(`TU8R=9Mn_<%zmAdSiv>PixrwdUd8<|YxM7b zS_ho})7m@im!IXNli}vJuC0Sl{w|emgPo;e*2ez%r?%Qp`;{^;T_AV+RD8{$%HTRuohvMSga+m1LKj{rWC`Kl}B7)JYzE zZoKbc-Wk*Zm-L48TxV&A+k?62h5znAF?tirw*EC3>j)V|fn9~fRzZ0nj5~(n`x-ZQ z4rvdd{`;9-(C2h<2Hl}c!jW-b+&Rnl{HIysS1^WUEH3CeC()&z|0?C+4bT$pPf>)4w3dn0qj9atLO4IhpV ztNdvV@ZWTJ>$HovrHbDl#GXEbD--b3ro)Jp#Sdab}#l)k=^zQe3%vF%A^__C#3 z=|-~DQhxKs2>kB9QB`WW^}>z!%~A`wi|WAdG5o$FckyK5_oQc@6ekb79b#U$OP+MQ zvw8R~Isf(uskt13N6Y5&?Mryd=amT<0h!YywD@Y}FQioZa`2V<3e(P~d^OBA7;>T^I2J$bDCrkC^*Ppb- z?|k-q>PdU4o*eXaGJfYjZHwPiPX|iTa?@vh@SF2&t5jERSJ)E2Qw#fqq<(`%(29ux z_!ohHF&_s1Weo_c^rrlF+)mtZtl7IgskmU8TVz%jHYf93NX z4oQlZ?AYiit|CQI{k?Lx4wwsN-W`L|tC&>QG}P{@&K5POl!nua1@FhG7W-%H&Qczj zrS9gB6O|67q(SCa5|!1Zq?Gb68lbv455UKjw#q+1q)4Tcj}%rjz8QLrrQ8r?o5;o&q#y+7Sa_f9=eP^~#LmFUt^vykuqp&_Exu0$}A+wQGw zSH1KGC1$Y{^hzv6X!;>~i<36L`yCvX>;B*_e6Ru3`C$k=&6|XV=pJ!*7qvU*yVX6T zm4l_F+UB116t%QeN3tr`GExnPwH~xSk!l%SaVj7Ln-kTsi4@3^=UZ<-67^|oR(zIPDaq~xJU0}z(86tXvJPouZ3Yrz7T4C(LZiY3H?FRpA+@x9VG}~5Md_> z>aO0*OBP)7cS2}re$DQhfD;@~$5rsqDjq`NdQ`>`#Pdlj>OE+?)D^F;?n@a+hgS;P z(f9_K9tSM79b`<|lm@<1`S5Sa5&@)9nRP)zwR!ru2B2t@b7e(0b2;T*U#VfG z4jMg?=&gvZtnrn)nFC^#e|@DI=De0l4L_-wxywGKo1YZhkX|Q5{9bRVRoSB~I%p^H ztmma2a=WV;duI4W+2kixHUHd5Ip!xtn!{q0N01$-6JUx|{eWzNr-KmDH~{npkc#6V zzA4UL)IwCsUTh;!dM~NRnvmyKYWpu}SnAfA%_7`!{a(ii{vecUY*r+_`0ibov}V%_ z`>0wga49}ip`=uiDmgS5#a=WD#ZFZj=Px}=;i!1!60xhwBHJwXC?>8He!Nnkf&gQrn6b(M%|3&lWQHvt~-$ z0I7=O;yYS~sCNSq{|zVvt&XXa!_lz1#Kb;La^@p*`Zg*7?~BFbJbqS-H+d@Ye0Akyf;W-S$lE37D*l_TSm4{@hjhE>H@u zcy$@`Si$b{iG;&yb(K4TQZ>JsU9~`;fe}RuJwj_U6p^U zNd3$!8!7!lqp|vOKc)P0HTVl~Sl%QUc0Lb<8~* zD62!I_GT$nxfd!`>0DT!(i}?-?+--t&U%($%N2t42p-bof9JS9ihA&LhHk7r1u}sG zNwh0nt4VduWgaRMs!46l9qaRO9(Cs7sP(+z_@gBCa841dhx3>f4l<%R9Epb$T22oq zrjydYy40?0Ul_Vxi%*yxt*osswKfN1j!<3d;@E|>va^E7>qNUN!S0IN8>WS!mj6Uk zX622;AZYnC8X6EkM)GMeoliND{WRUFwnJ3z%s_@d>dz8-)ejMP9|_eSWytR^_>DcS z&Vo}9YD$s%M~5P1OPCaDj)_)|he>rt9zn+GBR+fZMHn3s?!&q~+?JSkvT?g$7B*Aa zpWUfsP^X|N=$NkExtp|^8S$95NOtE=GC8RG>jZx*>MH$fNVbZMfbl>~&< z)%lcGSS$=0w~|}bZlhT&FGCa52Wrn-%DHfrg+I-;s%a(#%^vIjUCgwpkMvlLWfaeS^N^D$Dv zdnFoWF`;J)m$WKP(FRB|u zsGKfgvb*Rdk`bZer@>qY4Bvq@H*DBPH(UTi&Mw69WKXh}lA=>kS>E%KekM{lk!U91 zj_aed)D$mgBXM3JZ0O&G9zpJ7pG{Zm5Qo=+^eV`kRke{B$hH2I4F&DBNiaoy6#3Xm zK3KKw@D?f|=I?9>QZHdc-17+~?n$E7LiN`1W;eWgpl?dsTd}sh33Qi(XU?K3EV=5` z7qDK9BSLCr7X@-jeQ^^)X;Py?m9b||^fjedqWLACz*MK#tk(H_-7DxYxQI^n>6+=KT{Eb?>W(bO%Mq>zTv8=mgV&`n?7EJ>_3RcONsjn8BEpoAT=O&+}s2X z|E|GVG_hdYDU+d54+F-Ll}HoVWOai(8>LyT;#S%H$qL&L1A)`=_j$=m+bAj0(Sh+E zsDm`#8g8DTnRnI#J;3AAM1z}YFy7H3uTdIYU4ze1D|N?J(_o7RhxzC+w?L!bZ(meo zp{OrWZbhMws@j@0CG8o^9e1cLCH#T95j_KD)SqfqXsE6rOyW1-8KY8qtCqL0>qbrCGeykGHD zM46YyjaxS0KJzpfi)O^GrTJWw#3I*$R;)cHm}tWlTL*}JN;%dWvDqDhKr##8)+0QZ zqHv0LBDIdZO+9X?-it z+QibL9;U!E=sQf-=p$Ga3#tX+FY5vSnz)v>c0Xn9am3p52W#~HzmlvKvm!GnMFr@S zc)u^?O-A-rduSf8hJhjUGHrKgGY$6JFO`5d0GB!t5pDM;+|p5Bw5?V;IZBh z{%#*-e?6)4-~_=XVr>~1jgA(xH-tk)dRi-o`E6NdEzGlS&y(_4^&;;tp0mny3oOdg zcNuFOowGjGlow#HwyZ8VXkFj45p-58uw{9h>b$Rh)B@+p^0Ok3qpT#)T<&qE=J914 zUh&2Orh4-d9lO3{Hc0bEEBw2QSSjYK4dAU8;=+$Gd0wIf>F~Kj&$b@4ZWY&v-0w^u zK5q1&59nYQmItR7oInJqQ>De+UnbK^&inp<;A(fyiltiVR1$E3{mx+{CcZtCO1k2# zSXP1$@^Cw!va;f=id0J~&Pw9a>-^#v#IIxdWjepCV3&EDxwM~OPVvhXetE<%5_cM* z`R13``DGBljOCZ<{4$?kR^USENP9X7)pJLq2UA&kjsmvt{OQN?=o~2-^LA;xBG8b~ zQxI8}S}VS`kL;fTFPOC%F!-kYS>Gz_8%eQ_depcpcDjW0o`((>^YHbV=*$Rm3a!Wp@%i@Z2H_KGzw|{MoK6d7HGzG%J`0&wP~F4 zcdS(3vF6p{aPB=dneJqkqJ~p*D|2r_RmNzd|(X*D5yJNk+NaOc@2H_akKY zG6wGqXR=-dR-+LV)-R}ft21EbL49@ncRC%*MGMlDR?Vd9fjziptERyYCp7Ou6Bb1pq&`C1Zon6P5C*IRT{C7Y zUpA9!hux@bpwKX=QRXVwiSm_^QoWdxt3);j#22vB^cIouKO+y2~M23{y{WXbp#Y z5ww>>$2l~Rpl>*IkVEvpZmCN+l-odxr6i3ZESoTA=0x1nyg$)&uz1b5_zny5m*S*4 z9hHh&wl$_%p(}*FJXnkFGj|Te1=&ddfl%>V%%w?k{*&Z461T|sxPz8ywbs0h{*4NU6T7%ANCNx zfMT9TCu0KCy$x726!Pozu*~>By?+o>mdIqL)>mG^Yekjcf_ZVxKzerhD>o9P$hxco zq`$5getM@&M@ZXgNtjwB;hnM$G*>|>jB{9GPM+7&=q9*)qQbZ~brOmcUAK!HamI~ztOBPtR27pcyzkJla` zu*Z0EYU#|3p<@ntEXYP31S<6Pp=UMC8-v+(nGYnBQsa0CQfZL9$S@wWMNr_I{r2i{!4_NE4*m>Mamisc?))TF6iL)>wGeqM)kOQ z%Ezsx#^qjZ&llW0t?w$QTTAnMCzM6~z%bICogVAztyIahspw3{u8b33wYY}G47;m! zWX6=p@q;yPj-fbhD zl*THp+e#y(GRms9(z-zvYx2mco6$PaUix?n|3LfKcRAf}wnhv80~1NM$T(LgeaJ}Y zR`t=E@fPX4p*pY28D(oCRxme}R_-TC^~zIIHKn(~Zpg$^%BA0>8n1nWN|lQ8!EPe$ z%%_$vYkD;s>nHK!`ldR6Km%9T)I>($`D0}yuINHjoacEj5CLwo^AX-C#BzTcCOv9S zO(i!;dfyD^QahTs|lTJ3?69 zoDzvH8ZqiW!1DsVzPbPw+LmE~W#vn%jC@}o=U#?E#N~Z{nTSh?#UiA|Wg84MyJ%cv z98wvATfsV-o5k`=O9!qr6^4ssRQLu{Fj+c=?9XC0Y&8iEGi;Auz>77T&eo`PF#Et# zdAoee1)vhbI73%bx&Guw67rDTwmxO?JTxlLmBCIQ)U)gb%V{}>UoAwF%jVb(5icEO z&w#n`65a(I6F?og6h;@D2NyMWD*8IhoMLlC*kzl)} zw)vJu;KD^Ga#3K3Ac;Oxp~WTxx5$CXnE0h*Y~poLtp>TkQjxg$yYsQUa#H2@GHky* z2ax_Q)f|`20|B|+L5M>$9tS&*Lv@P7LF8?|FdrM@Gs7;OY*Tc(c*t>C zYJrhiC|R>!M^nixG+VR2L#R0Ok>aw|fR0L_4%}l=nq^`AWS0Fq5N|f!wmDv{jwC!r zW;iYP|AsTm3H(axjEB^~Ek8qG&6d|2mt_k8dYT!Gxds9rcUA30%m$VV&yx28S?mbrArUx8(qc6Tt>WpNCKKn}N{o{_@^sxNog8w$H^c4g$v zylt?fNf|OI7O=%SYdA{MWr-q=J81mdNR>B#XzrG2^W!``k%9M5A>$4E4^MS;d4h0l zzk`7J!9nY+0A}zLH|Y8w1LOcy6k$A#vaHXhuNSD@AFy2bitKDFa2(Z|lMg)8G7X4S zV3~*u{izK=>_ew}@~9129rY|Dp`xBq&*C>Amk3}Q1@QPj3!np(JewU~YB^F9kdJj% zFR)yeAkyPQQ$vk8f|1}E`Ax4w^(DJL`CM@yAI?G9J%Yw=OAM#1#vWD?bL_HRB?DBT z%Xlu=D^N}+R)HQ=!_v?JJPZ!Yb=h`nyrlxK4XxB-9XAxbrNr}oAPR4IYy4^8J9Niq z6PZC}ay-&t@RnwfECjH@&iL4UGIj7WttIsSPv!tpYT!vlg@qBqmz$(X>6j zpoLf-K`hZ5*{h-{JeY`n;whFaies!!zQ^+Z$ETD{tVZVC1H)xI0EC>@6r7$-Vi6lo zDgT`O{aj|xE5~|h@XV0zC|}S%0Bs3xkl=ySWgDw`ypHJVSrdnW60y94=y_g; zU9NiPE{jlW=8!&iWzFdag<5+s`Dmp1SPLIXJAcP7Yx|Kbm2v(Qv9c5~DiS<@QQ)6& zhj*V)3V96uc?_*tZIHW&B;!>^Bt4BNyZN{>gxhUnb}SDb0JcYQ$?vJZ~ja zkKJK8RNWgf$6Q3JSpN;zzjQn$Z7FC%1RC%NIHm{@SO$t70XFP@jRhE&ZII^q2f?$ON8lKC ztUO6DQ-8nB65NQn<2l`x@O0`;sXJ*z&RrAf14GuV2qs{!*9Z@;YX-|S?~c@i^x?DxvF=Y z_dk;aU!TxkC|>uc_4nP#qfAQ|XeISu5Bg1vNL?WvR3Ab@$Cbnkd3_yBhAvwhKk#OAQf~m~Uw^oXA=PEu zq`5+OD7yL@DS@ksgmayPxj3rz}9*_{ykIVIQLVilhWo9*euae^dB=bi0LesAvrCCeqy#x(lYe zJ9KxFwu-ON-EqQxrMnFD7V1xoM_unh+}+7mzbBv_4X#`0?hHCZbv519A^LK<%cHx6 zboUDje-7O?Bp(@cSBYBfc)ClayHRvk4ui5fnC`wM*S+X&Al-GPJ6hORlj-hD3a%yH z)uy``x@!ro(DTvM-@4uMby;q6Ihmhjby+T!kTZ)gC#9JsrWWaaC6f~$ zZSdL6r=wUF4MY}Wc9un*CMcF7&)SS(}wfkD2(poc+zVURZ) z`dpF`&O*9U4(N4cb|4?Ev!Fn)Lp;wvW0acxq!7o}t7uAWH=)2&_ZEh(@C-^HdvCnf^mxl0BW$s6H0+@i?JgqmC03FnlJ6^}^}?PrT}CPb=IX_(`a{ zejSR}yQ9v*oD5Ps@qH{k!&wAemPIrffcpS`IKdNjU-`SA6j7s_7HkbY*dWz(h^Nd` z_mR?~zf{Xn`F}@k)WQE5wGj0h^>hdekLElnaeO1?4h;C2X4fQN9Mr6U2#0urj*%Nw zEhbg@(VI0SAH$JZwa`=l zkC9v=qx_NPeSO_6;JSofn`dO|_e~Rr0U*EVlY|igepm<@O+{c9n1}^r|Ci z2@c<(tb}zf+IX9EQ;8fb)#^ge6a4Eh*5un66I)Z)wHwDZu`YHBbF5t^jK$~?-T;IT zX&eC?nuGXuM~^qK2E-0fq&W9u6D%xLnLk*nTwxL!yKR%PO`v}IuCisYRNs8^4dvos zsY>;NH}E`-*GdCuzxW4Dh`8fa8(WK%ibJH}glrn!kji-Nfh4_*XA3&;VY$NE$m@J< z;SYZn&`c?s3(Z%MKur5lkzQwHupH*YL$Tsz~vJ$}sKYr+kd}Bv9 zl6offz-LRksi&?hKMj$pwL1h|huEjduHhlB;aH6HzL8h_F32v_7w@|upF&W>|Df!> zl;k|5cHgViA1bvokJ+hgep{+sx(|*{VO!+H+fuEe@*dQsX{b=z^FjOHi;C(UX2<1e zcvhQ1#xZlX0mD)Hr!mfGQDCQoxgG1$GHu(SL@F*K0^U^2zoz)VjZ|bo_y0-7elZna zQYtQ8@TMYgk23OYse`%E4wedY$PFbQ2k#TQe2)~2FHXUW-&hLJpR);udIvJ4;2Oh` zf;snj3Y7Z8r0{OtP+zH>4W0bD@3=X&0b0l42}H}Ut?`R{XB-WrUVb+e{Bc3KJ4~t} zT~S=a&_hhPs?>c4d(c;uV-U-<01JJjGKy2my#va#E6Ufy7^Mq|JFY0VNW84LNSttm zJGiVIgIK1;6~Vz}rQC3Ga9OE49Iqq%eN9OjF4gcm+>*7CUB1eg;ZiNzr@pA4=(X}K zUtGh?9JQjrvH*AVmxc!OLuGad63?8@-%veg6CEFg#zlSYZRG@9BvSL(1!>j_fbfhW<{2bNKej*zN1R4UP0a`(s(J{iDW0OHvn=Uh`FG$RVU0Py^tyw8HE26zAGPKv==JPw zbR~GvvBni8@m;BEsmc|Kl)mpuJrm0M6cr6f>h)^EzvE6OWge!F2t_0(G@5+b&*YfC z_YUo&Vsn0>Ki;sp%LS^cS^h=Jop+_lrFxbsQbvrDVoTM+&9YHawMKXG6r#N+qedS^ zhw})Xk`_E(mSCg0=RPpCzNJXHF-ods9(POedrzuXYIf-&rS5xDRAk{rKOARxXm=jZ zeBRa(XCLwdGUEln%mb2r{}qcf=-NfEod3GbvNMKqV`~w_JisqQeNnx&W%wn%})us{dAH#rslf z)m$*CS82fZfTF1N#XeO#n~N0780_IUr7&>*!WPYLg7YmAbdzrhp^M(cd1s`s!N#qTh>8U;8V6dJSJ%^0bAZKZ_8$K2u?26241gIoA2x#?21x>LP@yjH?w&_fo;24+(If>M91)F7-( z35w?qqkPCHXMR&YAj-bq#HgO)lopIK_cvuXD77b)pg4Kl=scLyk_;76gTC!U#O(%B z#WSEu36oQQv49UTlb7d}&L1G)Tj#}qkMe-$GRn5|$^xQ%R)SKI2TX@2oR(4NmESG}BJS1}?L zxk)8v^8K&MoOF2ox&-AsPtIjbf1H+ds1R3^GH?RCj_`UNP{L#-H`%~U8vd$;j)T`K zB`6~}WeTHQKdX6tNM6IdUQYlouJp0oq%$-5^sKU$yv`~?`P;*?K7>)a>s~V^!t1HB zdJeQLVX~i_+w-pyrG+^t5u7D6f^E4B`|s zqf|ew)Sm=OnG%!~PC1EHdZ*>gDdhvA>^mjKC6-f`Gs@gk%5G3bj$R^&)Lj!eTnFv2o1eRUWH`NbQVe$l&&eVzspG?OP?1yRGIc@c@r=wX z%4a1^#&VOR%w*I_9Qpz$bS=ag?CM-eVM6?{->JPbklc(xL>#bB$3pFpAF!rQK9e9vl|~ z+RP~v8Rh%q${eD6U4rrvr*veL^yA8Dq6{cOdHoU#D1cEK9#=xANevuL|H64!Gsb9j z*$zx;EDwG{z!>9m`u&N6%b1YH1$Y^g8RI9Nk*PE8W7nVi=*<}4=!`Ww<3}%}1!FjM zhU0`zS?i?)G0HnS<%!Oi?PdJ6oub-7XH>(e%c45W%Q(dtwRJ|4&Pet$HZq1o(kbug zlv-Yjn^7+PsO5-TXPCT3=}K4X+e$F%e+x|2#? z##F{Qp)>aAjE7jK;x(WTW31O1*L22lFC&35T%6&s=J-9)QnSuWslq5DbSF)8#vCu> z3AXxOmQFgOht3%8W&F$-Q95I?&gkf6Yz70z+Dhq^l{zKTOQ915_^`(hT8=Cfax|bLZ*7WKz%4D6Api@5eIw`{#y>-R_oiWMF zxUrR@+Cpb!>x^Dr#zDpi(iz_n!$B?l6)$Baqx^MLOYbS&NuZbEV2o2bP|-JjJaOMvn`a~6rC|oXN>eR zeqoHdI^$cNVfQk&ZbAEVSu8r`f=;R9rOanet{u^GM8X~#OO210@jheh*BNzn##QX* z^Bj4VF+S57uj-7vd)U|Hlm?74Ri}KYQ8!5##>&- zVaBMUGj0?XIe2Q~y_7E){mvAhj|{?v(hDp0T8z@A@F4Hfk}W$P?_N$A_fir;K0&V1aX z1Yq&Dd=&a-T7hLAhRl|lhVJ;7dALSa$M`+oA-$wt`dHaG8y*t&DHbOVXI|PtF*>Ba z$*u*eb%)Z{DOHt1l-^D$%J*M1dAnYxNg*MBU=Q}c+IdTrOD?IpG8*4E^Zxinh_%3J8;lCdmqBRlp}^Alh!Qea zil}@Fi;$=sL*cm_)eg1PL#4}HeEY|R!)dgl^$nJwD1X}D;@5W{{9A-w{pNSLIOQg; zF8>Z+;+tPB5ns07L3SUKoy*n`3bhPuRr6}pW!lm~9m9V?hdQPf0a9;&4IC?P_^-R} z!o=OEB9wO&b*|JZXxDW@;x1igk^JB`NWl-3c()WC?ZaK%xCRD-dzIpW>o^39=(V}c z#hEvh*>0&x{eEDxUIC%{A=EpeTK>YjpP;+eK(@QCNIrPTQct|8H~{H42qMKWyx>wXl~1g8ySI!x3V_e{15XS{JKfq4d0zxif>Z zl0L^0kJ$95!og{Ba#4_xQA)X(gLAM;ScJ5%id(a5({jV~Lo0yxIS6)&7T_7SvUS|< zazwCIw6RWFoW(a;oCi`|iP88#UBPY~kIh;`v-(z+O5c;vogPP8S^i*}&$*DxgvVT{ z{JjIb>~UCPOUay=h})64{U09{a$^l3#Wm5cN6m9UrX9Zj!5l)X1zG|;qb_R8`v3h* zQ7g`C#8T=xgef|0fFQ-a53ww^W?iPGR<=ZWmhN1(eI1qXTx8j0M4n~BhMBmbOmNvg z>Bx&ABEu13N)JVzMA#F`;Nvnn*X-n6q=M(*$^^|A=U}qw5E#P#=^&PBiQt-@h@yKn z`)ImfNZh1OH1BUR=w%MWukn&Q$jLT;Xix zX0Ftr{|oe&w6w}z6v-?sWz8DS+%D8V;S|Vfr8WC5!8{M0`F%WJu+0&QpC96f>SxW$ z#qkB6H#6zZWqZGa^8S1&*l!l11hH2KB?qEoAro0WWapabwZbIV7<-Z{Ew#a>*+@=< z+`0J8*tr6~s4{hZ$bPOKqw-peS|UcJaz6!US5xp3ez2yVDz#||wJn*AX&_)pd> zrUdbsWllUyT@&K544vJGdC8^1q^3hJefim2Ia(qIu@SA8C@aub zDA4WzS(!PTN2;}2pgU;JON;rP&b<65NX##$`D=$U z_?9)7tA?R9rQTohjX8-{2u?$s$RBzRZh0rcVBK8rup{EEN>|Ihs6$ zmDYuO?bMgFN3{i9BobnANWE8k__A^;obumwaym&1xtEf!{4}HbimvKkO}GxhD=jag zPAaWmE|Oe9)%qnu`oAduUNnInhW_^tw(o@c=23we&t1;vD)~XBMlE@jh=@i-@^exN zyj%#CM&$_=yl?=cbl*IVWXa$I;~8(NXk|3Mw)*;CL4x=2sKCm%glh+*3ePcLq1wj1 zi)`Q3rMo_Dgi7&pAzY))knQ7Q#DACQ!sSwPmf)zs^U#v+OH1RBfthJZeDlYuVn5%k z1eD`&$a2z&xb?0DArjZLEHFugmEINUx4u1E9t=!_mXIW}e75ZYby`YtgQoCbOr3BI z3GPQ3+0QKyk{t_3HSj6(%6>j1jbljIv}I3{4nD)m<1hH=!XK9hpX1a2&{uU$OY=nX z-yOANzmA#4S4@27kYCtYE0=#s!FM>z3i^50r4Q?aIV8At3ussnxh4CX`9zjB$PDRO5ERp^YXxbw-#|C%Gq z&lJLrlIi{EswgY}dlc4?!_xDw<$lpU|26%?@cUm(I-=$A8jjMg344i2ls*}KS`qhh z1L*#yRL9MsQ4ZUj?nz%fFPkqaI$;q*Y*%b%vghObvgI=R;3<3>a!5FiBQ$9b2_kjFQykxiQ6)kC5{8Vb6iFVm~W%m+G<$8z#O zEGiDR56r@%OT#wUq@^cWY)Jb0$xxSo`*wCvg>-CSSB1OY`;pD0Wa6gqs$rY+)Em!m zpko{ci1^|UI()CPSbWEzv@4Dl(ig*^gw|pIJ#eYsD zzv~_re5_3xY?a(tHEc^*n4Ghy??JMPzt-;e;BKGHRY%&U-}R3~I?Rcs zzIIdaTk=cPlHQ`T*(P#;Y-+5M=h%&32&8TRu)EpQ$QPLRxP6V=63eRcEVdSQA1u}e z3ZJ7Mj-f-&t!k@uZG~Uqbp8c#YW$n@*}hPm?r#73ClGu#PC=M=@nlL#nEeuF@jLQH zXMaDCFXwCd2p;vxCbU!E1>l=T}_bK4$%@bh39|&iaq2nFaF2 zKa@x=lcIK)7}94X>0y%osNI(qv88$%K@iV*YW;IYjiiqdU9uggvvoAn$#E2HU0v4N zq1Ofn%QM%B_U!F7C=g(e40Z+aH%Wq>KVI7>pzcB^;OQ^@c7uYCcEllO#=Ii-) z9CML%Ln0onnRQ!_(ITv9r_R9pHr1OEHWH%k>Rt0C{h6$S%!dt^CAJ}{1cng|d(E$`1`72oxyA^IRriWm%|9cT#l$*s*vfvems@Jgg%;Pv~P z!h!Xg{S{s_KG9x>wb!K^A*x$HGUXu3d)i$eZt1X^e_mcKX!#jw^FivWH`Tn=M*9Xs zJ5;;cK4ig3Vvc=Nm8>=z=6`DoOg9qZDm!kxE7&BWh`Q*C$c5}xzSx%dGuNyaxDHn~ zp~_`@XJx;H&kfsz{L~>`gd^gHe`T2r<-JSA+*E~I#X|jt z)tY(XiT_k|I@XC6aQ_am;4M1KzpYYpw@Kqa_$)&dj=xPj#+WZEYS|8G&GeqmOtjpt zpCCMH*+;lwfR2`O3Z3a%+UQ)|6E9kokQZ-24x#+yJ3cF~p6{-jUFux2cV3Kp;$PN} zAEEhi?f1!#nN>Zd&aV42{fwb?QDmoY-&$<@9k@UFpdLm0=Nrj;E%O6iybEv0w}&?C zmVAih`W$C);>%op*Pd|wQghCmKvQPniM#gl(?_R|Ngum&xpkoy_8ATf`F`Lv1$v0H zGlJFv6vsgCpVk@BIy#TG*8pc<>~b=JmkT}#=^NVkx65Ir&-!~``4#)jbT{sE3?aC! zZ0zGs)UcP0luCp4mOuLX%ogV657pZ*8@*b+_`1{;x1+BRCi-60BI)JiUh4vhx|jTt zcfH%^o2;6wG2G^l2i4>?sGh}mVI@gE$TsNvVag@h8QHoTvJ+K!ABpjea~s}DJPQVM z?v~%x@*u^jDkZ7W3Xe98Tkt>KTk?BUTSsf+xhJ|B0#Ba%%OBpr9}~ft)V*U#aADUc z**@3~pL2i7m(C|@Pf~GfjbUcH*VOE_M%(C+)|w+~^U`SoX0wmg{sC3lDQDomEMh_5(BAaW;^ z2@T!%sPA7flJdP0h!CR6>{CLL_a+~l$^jLWEX?X}tA~j?sV^#24vlU*A0rD%o5>4W zph(U^(2FP6>m>Dw6r}8}&S@WiS&fO!M^Yk?KyPyAX}*%1fxmUc{SPRpT?hwPiFZM|WIk3LQ2H)%QEv@=7_l z!ZmiUSTy{u=D1jX(jruSSpj0%fb_chTva9PS*s&ioL~p1tG-s+I85?7 zzHNzn58RVW?w51I`>*3%tk~DplyyeOA+vRbbBqMZJ4rr{nHHHpxm#4lsBK{pVPRte zqv2IWDf)TY&1`=aFobQN%|4XV!3f2YmwkD*_4>yfPp>m(8FgORCk^(erJ3ZnWz;}&l8zgQ!aNE}0rbuVKp$yk`xDwIIp@tFb zdz{t6_{^nliQ4m);mk~FDy?bZcJWL7mhj00mJ7eD70Sln7`(%*kI?)?O&}_Br>eMF zqu(P2sxHaevDHq0%eyM2*l5@G?p}1?FvGUp%8XUQiJ|5eA?IXCjIqjJ%tamh zUQ+)lrUDAas9%eX#!=(n727D|Upd7tdyH!Ew$ZpzDvr8!rH+K#R!ch>xr=_(7&Z89 zqy4xu41@_W(7!G|OuDu&dy|ttHTiYzEF?u(WwzVlUD{2KzI)qt`Pg=mP)>cWtDV<- z+L^xE^7mHXzRgDsvq!6oZyPP@^&f4YBKZh?vJmSOVpB(}t{aS|Lu24c;9h(}ofXTc zP|}XX^ii$$YXYxA!A~%Z$WoNAMoFTcgn`)L2QnCJN~|gbleCZRP_J*`@`I(L)b0&N zyKep1Z)zPUqY8!91qT#Xtwy*{69O7D9>2UY_;9J6&iEaw-A1EX=7&syGQ7W63~D)J zp8y%&)R!8HmR-+(_Q*deAX3Js8J8cQ3q9_3%p)_ynya4LXtd2AN{YK3S$G*!HRDse@KD*_K`TDbuk*k;h zr{a$s)|3*ieWyHF;QFos^yN9NyD?VeljLeiQkqI=4?!{GZmoO$uFs*%iXqmC!}ce4 zKF6~-p}9?Nr_vpv>oFYY6t)pc)crzUb*Eup&SCdL4@)|2b?&)3_c{_J@b~YNuiAg_ zcTEY!4y@c#uJ5iNY@PMN1i$NM@u3m^ghzqPsZ-$;$s>G^-G~>r>*%B5VfoVvT#dC? zrqA(9eW7$=FM3k5foi*%wISK1{Cm`J$2PovkE-R^0J^=6%LM$c1H>E^h$Mq6mRS6* z%{W_UHfuJ%CeLn7!XhHkA6pHy;l=f+__W7IUsunB1YN)%$<7y_V&b33KN32B$mYs; z@%RT1UyYU|wq)vFbQ4p zbrTsIlKu)w-?5v(OGH}HCETH7RI$l;bQrUAWnhnVM1WDewr7bV?HmE z+%GgDU!!;uU>Fm|@nGS6M|9*F4rodpOAv44Z2nuV*l;6>`CJ1@RtB?OyxV1r-M8+> z16z%Ux%z7>S_jLH^&PW1f^u*ex_P(bkytX7&kkLid9uzFs|U6jU5&}AbeqvBvJY;u z3UW`eGTt+qcbliGLSi9vIjO>(@7NSst1OwS?5k4^O|>D$769)q<^&HlC6i3Q>+3pd z%zH+5gOTDHIH0Wx8B)xiIGp&&npmtpc+Y5cU4LG!AKnt_iXt^sa16UdR+Bs@DtIEg zI{vDyVoSKf#3Ue#sf5&8mrGU2P9 zd=Q=Q*`l5*!BYElF##&u0i^D`^JonvdFs9u#k`{Km*Z;JeO&_CRsyXj{jOB<3>+Y@ z(0dDcA1Cxsp^s?+@$}H50sok8NBeq(S27oum?~|%Q4OYNZZ|r{HX)Yi!7@h}PohMv zSO23P-EJh-KUQQX5~t6D)C>N37;XzDt53IcJZzWEs_qV>Rn$=_?$2*l=p3~#XgG}` zHGPNC;;J*)9&2hgxg`l%)&o}i2)2(Ot;#+EeFPix1$}T~CMQ_7euGj#)IjfFefT!a z=U7X)&0-|dr>Ip-HwIg^-Y8cOryF%tvz=T}#p!8x>@*V7YtXi?ihlButD?)yiTzY^ zyxQ-Qlh5%10j@oSZTw4AlO3uNp*V!CvJ5bs>oKektN5anY}~}ZTjEO#ItT|deO>6r zqY8KP%r=+M>~WmD>1l71eBDdlc0vs+Wif2l2|fPe(jMBP+dn*mUd;Q2wP-GHK1Zaa z>|1V|cn*3RxVd)c5~qTePt=ajar|KkC5FceCgM71xYgq|@n)*RSBeZL2)RW zEf4nEox!@SjGz7M)S^A4v`W3Y$CzgZUR5pj8vSmrQ4Q6?RccJ^-+EP8?D{8CH14lr9@)hMkLNVx=oxZr-@N|L+(|!yMgBW#Zsdx7pEk`~{5;7sj_g7@y z8iAx$Y-40lMFgwz4EB^rBR%nE#Tbt-PsK1$Y z!UwNFj^7b3i?4KH31yC0a+E*2tN1|36+_#5HO0+e6kh^z3Bejb{;bV}s4%zwQWfnv znPxBQ2Nq_z{lz*$@ARr-KK?0#G$Z2FO~ z`*aj$8-peB4{;AAR*|;VKxm|Bt4I}o_H{3IwIpnqC&xO)z?Y4ca^KqOA1>$h#565v z{?wV`D7>?l;H0@2VB{Ul*Sm3SF0NUBnTz8HC0Pxpi~%v5NjTQ0BpF+JEf+xotV;x~ z!O&VUcJa9$i$E9{$tOrlV`$muCGn*XLQv-8XL&UFp3^cWQ8D|BI_8)NmAKF7X*P~f zQ}!7n>pgtj7XCom?e?i4D6Gcos;Dpa86Bz(2zgq6PgODdnM~z!r2KxPS;H)8n&^5i zrVL%oNP)<;ajhyUZ@)3{_Ai!-qUd6oS}{B=>s{F9@;;D8DA%<*HWR=b@MXmjs?DRK z3>NPcwU`9 zfE8%i^Qzv*R8+m^)v%9^wr2e$8<%`+R58rxLiNx=R7IBBbkJxsLXL%&VqxLRnrudf zg-s2cYRJ#}=s96Q>=TPc6PI$$bYZ;aC`!)vfUZGbH?C?MrxSSJS}qNU-9<(+`AM&s@mzP9DVdL;*{*+`_5z|x;Z*p`wswLF%nCvMP#7N6sVXRZh zpBWFDGoMlKeP#@-F>aMa!0>t0a;#GI4;zhh53gqRdaG`1AK*(Z+(y%>_oA@ml(k7a zvCB;Am$`1p`T3BuS9(f+su^;AAml8@5S*)roae4mPaigNYJ81oqJGw*+1^{FsvqHW z_({){GlZKPRd`Xe@RT(~JLJ(lha560LcAPu=v3jbAmq@z!eLOzp_X>wMw3nJ;C1l@+Wn}UJiFg6 zJv^DP|$H#7OUmsH$;pt!891g2{{LxvsrfCNT!V`#$0vdb!2S*~vV z+^E~|Fbn0@4o!(8`UOl^3@SK2Vxi;uo7M8q=@aHbvuJvj4Q)@ie`|aJFVe3psN4VQhYThqm-AIas3SIlLvIBRey(kStfdo8SwDObhy=BannSdrk#vX!s0CjcZ7apxRaKozW73-L<=RfZ9oU~i6@^BsSDu)h z6@}yelG02NW8r?~`17ju-LH^nQzaV+~D;OhG|3*4v+Hw2Gx=z49shnDI-nwjnTz?W`+9r8zZGk=f@fJ_IgZJKWa1^y6jG3 zT^hcxrCoB;#>lgr*38OHbm(Xf%=wQ!!^I=00Q<%dX#_(=!E@C8ZtDbO5UVY*yu0`k zVOcR44R^TT%YRMD;R*bqsh$?K*0-ANXe^jdf(~78`544q9)+FFWu6 z0{f>qs$2g_lX}mH4`)MB7H4=nAkpy_%WWj7DPwtS%?g!v%&1rM1DrV=BU;W{8S$*j zJ!TAcr`?OT_HMV2+V?x!5kyDRV<%`{*j>K0erEwVyyc^3@oo{n_8uhatwpc4e@hS3rtf-lJKUiH7GrpH>Cm z8@G1~O^M`My%X`>eZ<1DU zOw_;Q!QS1T{N)wglFmh@SQ6;{ zmx`!)Poeu?mo1&%Q}PAgTpar~@RnqB{XWVsTT0k&QYq@bUHZu~CaLoQqjh^dvp%8P zjE=`_#~8^=akzbtK$kXqL@jw=IIyVni7=J*v(Z1l2fp^66nEDH?x-7g?9K>Jvyc1~ zMePk_c>nZ4W`b3K;>0&ss;4g)##HK+FZwC)5zm(^gv3L2A(KeQ^S4WX&4z{bvZ2p1 z@4u#690dgUf7VLyp-`<1^xxcr<=BXhifyrTkj`V7pR~0UD!*W1wDog${ z5GPTFRz=8cqpWhCWT^G@RMq>Wk=$_dROC7>&f7c2dTpp2fL)ygVSMb(Q`NGQe1n;# z))JmiF+TvZ?qeQ3AkH^9M&^TTAaQ#u!MQJ{h??kf`Bt0zrS>w|g>D7m;-sikCGLp> z;BhCnx3`lBYjuR!2X0k8elf0(LFjw~qKA*fTwU*8&4Txrsr!C0ZfSwfSiJCX%?k^= z^~4h)W0J3bqr~ljSEXpP?^72^Bx&trQ3;`Yw*P@pdxGxkC}YqAWV%!b5c3HW&hB0{ z@mHfu?{snWZAzoYWqx1J%F?`aB#L`kfw;>bLEM*uw6lX$wu89UH^0K5c8{Mjni|uU z^Ax)!AH9v(mj)G&kpQ~Zdk$M{_7J!CQ@M4@x*=Pu)5!#-JJYwoR}3;dcZeosDZ%$+ zWLQX{O6y#=q&%p*AK%^14DWXt-g5Q~x&1YA2xc9%PhA?$^H6IsA&H;K3l025PNVep zVc!+ouGqbD`4s-kC^Xg7~E%SJEFX zm(Ex{Z_#DAjj*U~%*JI`*VOEaGVJ*H?}E+JzlB8=E|Ro1$@qa)sf|7npWe<)-_2}o zXOvN9$=OetlOcc6;tKL#ruJ;|qqT+Ws=;fnP=0xx^KvDngvMRE*S&&*CHcead>0wEEdqvF`2ooByN=*sT}Mcs_wh^(_o2=+{Ii_6d?CIL+xJ7; zSJwJu@b!@z`-joFp+X$|L(VMzJ11(HY~FSqj>@xAJQ1`~b#KUCfs!&&9V3Ho{kwc?D?$c&$$wwy7VS5GQqr!EVjtc2z( z>x|K%!LIR=`XxnDxgft$7$#oyhD!d^Xc)2F_IIo7KaFQ^`yv~Xw4hIprY~+N`&w;_ zNSd%*cgvGl-}A5GgXyrYUq>wyjcWZNyJvi{>&D4|ii=70fC^ij41q%9suKOtfDC_p z|4G<5;;eCxQR_1rmaY7~pLsdud5`+(oY69S89N=^UPhyzwG|QQ5l^R59j3&MN*^0A zQ*aACw~W_102_{8!9!1WhM&vFR%OQPy|DYnMuyvmOBd_iLN)%p(Y;n0UO3?cbP0^V zSG{)LXlh1}RUe*b&8<+KI&ZW#7O4h*8I4=LIEKLRg3GA%mR`R3vcL4iSWvm(F4))- z7q=Swm(if<{0jRt3dYU(l^z_RWuT-Xfz)3{3uC@|_b-kn)SUcDm$2nRk)+t?mN2e& z!W(4hy07FqBTQY}t@8!K^Unz|cJbu^-+hUYeO;iM{cSXezKd>5+dh-^k=0<_~_-`X7hP3GAhY^>g z9-_muK3%N-`rF7c7O1foxa+zL7Ab3^EeO_8T|(JaEMH&#rio82xKl?CplPgfX$KSp z5_-`Y{PDSz3;UhhKj@!Ke|k81eI(%?zfmJsp(o}pA!Zh;rvDhd z`rOG9mvt7t1^5;;h!v0#mz2ycDW{GQ-y`C?6JOC*di&TVe_0^2HZ4>y{bRH;FC0-H z{e$uU!z1dGQ!ow`|q%g*JZx$^9PDB-cCGVVvS+Gg3FXYV(9rT;m(vq8H zxn49_%U-b7i+gdD>0G`#bkVrZse5|Ph97Rrluq%WXC2}uGF~NL)hjm|chW-!U+nWb z)V=lqLT+0XlX#N#z6hKzcCqa%RFS{Bt=vd5?|Dl-S#C6m^uJ{r#sd$k=gZkS<$p_k zUe4@%*Dxv4f7^!K5EfkChTJn~^h08n291uj^Yo&Q-h}+JN1h8*<_=oiZ$nXpM$2oL zx0{Yc2CrD%UOx1axoq;KnaK_-Fk2++sP!#L+LkYU$(UCTBN;=KtJb&&VMnvdX4{st z$6hr@h~ccVVYcpjx1CDt)v5Smi-u_X*}v`^TQP?S9D|PcwM*SeSqQOhKids)EOq}a zO89+ZTo#S=A)EO$3yDl!I$Lcu%*42tSzNMe&m*dc#^;De1~&sgyh&X&OlLmK)9$i7 zOr)=*VN&Yz!fg%(y<5NTE(|Zw9n{Bjb#PC8{EBQp>)nu>W0Kqnh=(uau{z|jY+E-; zoK$-W7xY?gRN)=;(x|60>-9NmrD-KerKs0Dw%C-9>zdHqEp|1aZBz{^DCLn4Ubw;$&7134S076bx|`Qw?5=rFU|_7 zi>#KqT}FO2&RV+ZI@8NRtO zSaQ-CruXsBIGt{YQRhh_r+@r+s43|?8Pok!%dOw0k&CZWx;8Lr8`aD~YNo@iTWcH| zLfpBYh^zgSK(kh>+TlS70q zzvI~~l~&oTn<_+3jj)=E2>YkSJ2y*%NG`$XSN#)Aj($fOO-Gy47{S=Xxxw?4ud#A9NzWyC-uX}f-ni65UtN8Cg+FIVBHbt17Zv1VabO%`Op^J%# z=9!f_#ik8`fL$p34+zE5!e(qiVHtk+KYae6xyAwXvbi*Kw(3~bOfb)R)aa^aPh+Zj zx~iGP$a7y+vk7k}szUhTOjRWk*WRj2q}hwRDesOn+Z(ggE0JcZ2)(_pVy|^CncIUB zKK!vYp6l5U=~6Lh%NGf;zrn>a$L%=DpL`4Ccl9|;_gd!Y6>={EW0M{B-_o^%;+6T08FUgJHU+&S|_R^`O0QPP^lcNx9~ z^Xjzs1lSc-2ifZPlB!X|Y@9Fsr$4p!BvEIK39UzThpIR7yey-|G$P8*jgfXfx=(o} zv?pdaCDsstq50G;M{6$4Kp!+ z6?1g^iU^@$x5N7ZwQ8L~WkcIw8ih^UCpd^*9UgbQk~W<R zO4T&m)PD7S85|z9c1)7Er>rfL)S;SmO}Xk^O|wIbvj?^070P8y)_lENI5mO{`M?j+ zFIbK1TT|75D6?ZXcqy6OP9_CxT#-aqkny$_x=M};=dCsrOaj%tRP>|P{kN-)QD)El z@p$=N>16m$3{k9lIocr!2XDKnds)y~+U_>MdUm4rsE3F3JI|I}VMo-;;;;yZOXp*~ zxAHzd4DAVT7oXs+%e{G_G;qF$RX!C~aiG6w4BO~Gh*Nb}) zVOG_;Pi3!By#m+cq4zHlt2|D{avYkj0@3D;b!tzLaIUXcN#Vs>|ITF9yO!AwBk$~5 zX56@ZHkn9|oQ0CN9v4pdQy(96*^L2_c!gPaP0)UK;g>A^t2M=Tn4%r@5|=g9b{ZOT z+GX{bpaQkbmbc~-S48=CEy_PxuidJ-RrdhQ`Av9?)g^j!xE{{A)|4@-ala`01euDs ze)~x7t4;k6z=Yu~z#2;w*@?%O1CTponwnAD9BSOEcGWgp)sf~S7Uj&_(c+WwuRd7? zYnx5+Z(7G3Xb!qv&8TBGFvclw9kY|^{!neJV>YbX24%=*-L1RScXiC9dWlHO<^l@7 zP5#mRWP$SSsVXtXOf?twQsZLGc&7~bF~$xT?J1w;xIF~U^gV8WW4>XWT1}{ku~NR+ zn!VJ47_%;&z)vye+Ak{?GkS|^jF-dsaOrzJ_Qepf%9x!PhU(qg?khQ**w za#xyc=#4dX&8ODZ;7XcIT&!w=VOwNiT0jok3{c?8mB>icSwe7dnro=Mdql>@4GH5z zOA$>qvaZ?QJoJoupsv}my)-)1M^&4gIp_~-AbCU1B%ZyESMCs^p5cF(b!fEuxvtqT zAODI~M?L4$U7Kq*>(bUb=`sASSV`yfXg*d*9Y|C|sKvP)T@jd%^Ciof-9i#2d5HWF z)t6Vx7h9Ki`XZrw*KI=grRx(VyaP@Txj}jBnQcw=oZ48=%xe5;PrEN-w5cr?PMK(i zc81-m;^WLLb8=60N1W+2a+HcQd;D7-rol%HH?}-HGEV&wXQtL30V}j!y^@&LeU8;G z)vZ1)a+I1}-%N}g;F1wYm%!Zd8=tOkW*X+7-BqB0*~?5^q1rVx`!~+*{(q$_acyny#83a}?O_8=X46KgX*2jm(d$HrPc&@;hGLs{Uw1zj1gxEPgdnvp5DX z>(o$PRS`Vzc1+kRm9zk-D z=Pov;z!F`_88AO2V7RKM8=EiXUqGg;&xYu^jw9|EfjLDEzZfjpy@IsTyt?q3i)=lV#s01FP>`bKUfUag7hpz76V=re^EN zhREhU&AYpzcBm>&Gs$eXS#@=q@y(BJ7oE4$+Bldh@x`u`SHEkoc9ji^Hw;$!PBYQm zx=Fp_G~3;ni%%epz`6;c3FQ62E%y5mqGsSAhf*e34Rn%?Z`&liZZ{ghy9M6X%3D;E zW@hUaXG-j_5!U;p;A1N^-h8ZB?QKS59$k#o z@aOi;iJlsULJ0=hX~^Z+Sz7d+?5Is8h;#{s>vXu(KieSG^v=^qiu9%KeuUU`h>+bmGEwp&Dj1;2^vB-;DZ&E7*>^Oe`{;^lL^+6l5IrbW27AFJZ7wAj+b&P%i2 zBD+4Cn$1peldcs~w-PmdlekPppQrBskFb>`jfLYm8uS8>$zPsmx%|*}h4c(ZEEJ2)*& za{KbAfwLZ&e5Q9)&%~ScvXFzWjeU6MAE0!1@xWcs{Fgr&;5UR)baLu#BV~}l$H!v= zxpgR_z17$eNYfh2# zHh&zh?rCZE88Jv^H&KP$Vv7tos*~oHu&`d#-8Y#&7WvOviKsc|n^LW;Ejxbh5LzkL z>x0-6tT?#3xvmsefAp>o?yw#msv5R3ozYd_&|=yE+eW58w$2-BKr6FdqkXT7t78ml z4fHp9pNdOgIyeS%sIMSR6}2)`>t@P$r8;MWenGVRB)C8IWxqPwimqsoU)4x3JEW4Y zgbB=}C0W-IgISPnRLUrrK zC;~dvYwC>zvvZApVgTS;BCaGF{F?eB!A#)$ghq+x4K)JmNNVpw7lfQ$rzR(wH)Z;9 zYJl3dl^AQNQH8GxAK+s^7#pFr2>b;@jQ zwlV9iQyp5<>kU+6TAP#d195t|JZB^2m&J;HkSEG}Ck)|+&u2AXT!Zn>@U?qT98vFD z-@nPr(v0{hx{RWbyH@*ad6`7JjP^N7Lhc~|I?%@K7E=@5 zj_n~jjPr|N2OUM+VAZ6pxx{?<7WHCVGdXU;Eg{kG&&i{?HKDCHBj0DCueXF}RzdeYok&e!kk(3WjLo2pB-$m-npnA3gf z!vkN6S^d|(s-T@&x5n#hs1Duv)Ocr&dZC?pYy1}p+A8cx>$kXDn5SF1_p~pyy&bGw zI_Eq1U0v3wmhH`>69K5mwd$7+%(x#}i_-CY0BuKaf<`=MTpK%xHzBgBL;CTc@3ryNoy&C9L4NoLL3eOfZO>gALY z>I8E8tF=jH!!~iaOR3ZP({0id>8k+kapS<+VhO`d8`n>@P^Xg2R;Kx;ic2Rmc#f?G4SWcJcGHP?dqr3!wL%j!b1>8x5yr(0u7yo&FL`YC-w z-O|yFPx`Eol|^rV2EV=d0yOq8wdQkpMc>JH5<*Z>^ksrJy`*01h~YLi9;+t)!i%mn zGtG-5_Oy8IBI@NheFIfBkc6y+bQ#z$A!P%nZsPQI8Z{|3^UrpfB2U84KhI&^^t~pz zGp|zSB?l;T;8ST88^T*Sg=J-qCU~m8oiM@u{GyuG$?R0?`Bk=hTq^qiFDb!TH=U98D^}A&Gm8D0Pg7UXOjdY%K z>?{V8MW**`DD7zL1k+aW{=S=?Wb_t}FAv+6&N;k06$!4GRxFNI=#X9s6Hp#GB8H^%nG0 z^pZ>_eUA6>5-X2-F^6{b6faBx^5-y2aTEd$wV`TbMhY-NN z$kbkqXcvz|rq9*lRkf(I+0Q)qirUxNY~$91We{IRBoz2(yV7$Iey{0fCANxwfl z{=~|P8I{i^7eYbT729J1!E|*)7xOvuZ}w+&G5faH)xCh)Wow~RhOTke;;teBNLQ%$ z;WLKV>-!=(ucWK&u4exM_;WOXKlbrc6e63!2pgATr|<%QR{bR=3I>Ye==i1&^-J$b zGmG8MGyR(_W+zC)=Xh<63UtNZvQjjw-}UAiRfAJcYK|c!8&n6eXWzOvLyhic#?>SI zRg-$Xp=#&#%Gb@T-yz{{sC$9F&HjeY3#+aQ%pRpbC4w;6dinG`{eG~iOC zWFqP1egghsRkBlVds+h3xfJLx#Nn!xMHK4kWSd;C#&tIvHgZw();=_wP0N2IhE6x2 zQkCkCfuNV#)E!&@^(xTa>}YgVje3}#T3z5dhA-J?ER|cMvwFUVd1Eu2S&)&FI7af= zuj{TkvHcP;MgQ2}zo1>1)yJi(y3BKJJL6}R64L6`NlQgu)qzWnM=evxB>irSbu zZGlummT{t<8h@6X64H8_-SV#|b^o|Z60fYIj_2t~aJS!WocQQcIjNaRJt)*6J4oKU z`V&KX&0rd?4{-#tT~rTsq`fk|-{JcwODVMJ8JGOC@vrFb*?7DrO#Ri9aeYTs{{}OD zSgJiUmCY8Ze|16t?7MyEiGWJ`DH192?zFAVDAO{lv3N20$xV@OF-5^16-HIYd7wWR z_4$*vC0P~SV7ADoZt>ln!PvwqBd1a9in`U+&kt8Pc z9lC74N!jS#GQ9`bh+}IHxPG(+<4va8KZR;h^Re0K>J!DH*gh_4}lg~2Ua8-St=Dg^n?7+Wb|JjQ8H8>=HX}vFU zgaWzWv1cU#?{ByB&Bp8rdI4UD54DN=C9s?)YUeq6GV zWXUQLj*G;-qO)$i^SMa-i(KgCF?5{Qi@(tw_+78#Vg5gmg0#33;OUa-;IO>Jy$lNLoMA-}z(1ba><o81#BmFN=gl}MxQhzq957iY50W(RqS6gE`s*ih{v1Xkf%IeKB=hp5} z)~d7WoME~WC)bt{p&gOo*?g);ia&_VmP_{0fw7YB#~su&8D^Z>sFm_BA(Aia;-%V@6(`?Sb)|poc@!tgqU!xKagik(FWZ=fXr+ zKEdH-o`%#r0BZ>qYO5$;s@mDt?9x09X9(#}T9(5mBza!OWkQluRO1`X7E_QLYc~xH zLQ@HUfk*2{{y|-oO>V z(xnMO^k`Y=i?$B7RSVo^@*B%2fl;Pu2EG6 zroYlShHT+cLOFG^gOf|%m9?JaFLf`vf_=*;CSSJ4``%niv;HG0dQk!BEv|B&$bUrD zDy+gVE6lg3P#XRA?z(RI|HMz&v5u(+Q`R!QpKSZF%2Bl*tfFmv3_kTmEADNiAGUvA^&8wFLhNPv z0_oKBcjY8iR*<0X?T;pPr1G{n7;&czoIQ2i6NB#UKUH@73%f|7=wFnnt?9M#hBFj3 zA@|A$C!FMdXD!T(65I?0PrEk!r`525mdJ#(vQNjV(CIq8k(ldhOZGKj|0@Iy^HlOK z>_V6dv&~sgy!ba|qT<8qBnfTEX zACc(N624yK6AO(0IR6!i`SQL;i6)7Mr+Y_q>F4Vz<}&=PQS(J^9ft^{m37xAr07wF z?-1U)>6rH1D4x2L^fV#isQbl|;#*F@c41vV^-SyfN$BWK!uYybYZG;>dx<3@dOa1# z?pV9ET9?Tr6ghDl2Qs@amC{5lVV^ex_)A3#aOzo*PUZ77U8d%jv-av7!}OKup%!8- z{suKo$dH<*nLe-M#r|BCbAZ|CPg@F&82HSJap&S-gNQrFQ{eXr;JxVP(k_ZC2OK1v z=&wIQdVB;LS{+tupxGhcF@#|M79U?>7a^W%xJDctEeJ1co+XiPAL5>PSdV!>k=7yk zdyAu`?MOAXj@NAZBf^dm(Oq+1KCVUSw$gt2hw;=rw5FpqWD?;YYjSl@M|g7#8cZ|edU!`ychbht6BCCZvVD&y05Uhq|UHcns(G1 zpSidH+{_E?fcg1$(zk4DO26sf2a(L3JW1oIGP`oum=_Ch^xbhG^)e) zJ8q)(Mf|B6K?K4L}piM78}9HN4Oi zssb%9wW6Ksw?Sq-qq6Ech^>(bF8iNv`VGkyZEn@GsXykpn))_E{Rvy7OYsX4KZ5dH z8f{%c;GiD1h!XO|uB$m4y9CEegvK;<+mu!+HYNXn8#>kSTiM0jCls!RG`NVa_AMr& zDFa{fG2pdpEi^u=v=(uM(ymTj2PUsR9Z@oLSgVL=xj2QJpg)G&LCbB~Jj`o_I*SNQ zi7!vOTrlCVByi^t??tU{L?_N~?{dl;@CwFXaP1UBPE9kE_0^A625M~OMTmOwE+lTp< zj%>d$b+&nroLGx8<*SV(<;gai58r?d(f%?b@0-9>TQsGiNy~M3C6ayie)3*@0;+Wf z`7mZ{3SoACaMfM{;tU}UHLZT-_QNW%p_leU%)SwO3`vd48y5^QyPEY5tBpg+7EQ5sZ)9(o_gRw`H<0($Bv&LdH&R-JhOrBvv&x221aozPm6& z>d!W3JJ@Wd8>(^+GUIxO{TD?n0~1M$mcro7@oPMfB3ywgbaYqj0gQJ*$ z$`Vq#T;C(z6MuJeB$|v{e1(Qxclw<4O$9>bl3?C-CtQy@*Tp_Q%&Zst;;s-;6^+yF z+nl7@4#PrHpau>zo0`Y=s~N-0e)YHiChGR-+U@;acYD5~S~e92IoHa!Wod|tIw#r*H&oN%OlOvqs;ci={V_LZZ)+yHeeZ=*^2E!R!Kd7sz@iX=e|u`mJUb8zfi~0E zlYX6Fu)-Q>*3 zojz0jHQj8zF=8e=N?T=(pOHJwIe7kDPwwccjNxqX49G*Pv@JrMXH}3Fzar7@d2|<_{Oy5X1-~3+F0_4xyGT6 zJz?INpOrgjQtm{LbJEN?&bd=^a@$Rq-%ijuapv?{)RqDd)=I!ee*y&ayR1jo;H)9i0htC(fBU zZJN+BK4)s)Tu)o)CE}*%d2&_R3bXmhT+hVziII^~dsC*v6U`2%hg^sEnLZ&m$2n`x zOwUXb7ZyiO$|FI|TF;aTQ-m8f?V7alvu06vU868GY~$b0m{EpW_?+21W%~FT6v=sK z?gZ!D-0^cJPKN%zQ)c8i=j1{@o+OGqfD`6Br{|8JL0zffGiH2mq+-fk=fu1@bMT!u z-GaC)!IJ{j#Jvu8SUXNc&vB~6czJU17YJEqK;IYUa}yo34|e|6w_vv)p>oI!ST zJ>%zioKjr)V#k+yAe-JZr$c6rGi&^`T(;pl69(ta%AM0@@Z>3zJZ;hw3DjF?oab?- zBM9^7LRKh<_UtonymN4FsGx&&AuIePiEvMwK8YK1R+-@q)U2)MN_F5}b6ozPsPpAl z{C>FN`AYYS=TEQk-xYda4=&`F#OOJiUl_mjj2ta~Pwi~FP!ET#;DT z{}ArKWwf3+Iit#h&yBeJOBi|iS={rl^pxj!uLyjt-~Z0*XGom)LtrM@7A)qs<^_b0-zI*0_(iNP561CJ;Mawp^#b*O z9*-mZ+J0vLPJ%Iq%Y!}m?fbMm_~4Q9;ONgU`&WcJ{$Jb{d_igXNtlc;FUMJT#dAgc z(R9FV^Fx_dIA-$B@lf3(qS3tAda_@>80^7w_S+YOIbadE04&~lG5A#)xa(q&Ef-MS^_gxIG26Ogb43>a};2|(S=HrXO6s9`I!Qo)h zrx%08^8VSyUIaA-s!4-0TObL?VpAL#iJf?_GrPZxvJz*4XP%(3tX<9~q=_B^D3 z!@=-hF9tne%xMS*vpH-+u9-^t`(kh_n0gz!2wrSD-X_U0KqkoaxkMNf(C|1A&B5{@H|*l z8=-87dkh*7Jl=qMZ$vtbUx)Jvby#@g@}LJy0UrccgDd5|S$Xg{SOlI2W3EHW8&h}8 z^rnFsOjp-~Mc`Lp3Ysv!2?Svv9S#;^;G74BW4J5=&%!TbX}9OB_5ScKs< zi~)BFrrs2=s52!44}t5!V(iLi!0_(qc_#^hqroE31Fi;_g2mtpuoPS`?mZ|7nBgM* zW@HS;fQMYP{{$Y6<17?9SJJ-v;AwGZqe(ccS%<(3FsDEL47eIx0Uig7!T9_E5Fi0S3p@i> zZwcj@Xeh84%m&YZv%r*r5Fqa0CUFN3i2F^%2QzM_YFfduEI0=qX9Lw9Fnq9d%M>iT zJU9+40zF`U{7_iMLk744%mLSfgK&L@L_NYj0Y3I46p~717?AT z=m!>n$HC>`8E`e2F^U2Uj)p_6Y5!-&B5bV@rdz2SuoN5z#*c$SFaul)7J)0}eF7zx zcksBpPlO;=4vvG3!0=o+2WEp=U@@r@#(*9$11thP;5u+MSOOjg zkAX2SLiqLg=kpNHLm}7&ECMsZL*O_t<|PsYUFf9uK0sFV9aae*Om64&BJOOioj9{03MeBuhWdW zkpLJE7J(VyAutC#4$c$zH)uxU4sHdD*F&JZga3drZz9ay;SiVr7QF=r!9(Es?zI1m zVloy7@GI~PcpCIhvPhCfU7^DWb%Fpj)36|K1)E)cZ^!ohyb<)b1cGvg#n}- zEIvU-;32S4IvJgWP%!=%+BsMX7K16Lk@{YQ14o0N-)R3&@Q`v2mV<@=P}1HI0A_(P z7pY4y8(a!zl*4LpHCO_M2N61PXR}yD2FNzo;h@J63@!x=!4+T;SPUKq_kb}R-hUh{ ztsKk`M)V!$(Ws$383t-Oal*r*+0WJVngHM3P zY%$#j7S+MH3?2u=ZX}%;(gBOXG^o_SE- z^Lbb)4=f*tWx|Q;ApnfWXuAf?0Jnmr;8$RHH}?90IhfC#17S7R{UWdwEC$bjd%zr) zB`kRdBW@yGPYMVYr&BdxDT{w=!2IJpY~>-GTbK@jDd2H=&jK-tH%U`aoG?Awgto4 z)R6`jg5%`{D+7&eru029DsFe{&joXKPiW>2Ax!Fa6j=fT2h!C?F_ za5@3O<6sVW2Al^L&tUHbSUNix>@u8;=CH37ES!r!SbS$NSSrYu6DPqlcM)y``Q1%= zpa;y);h}H=ECY)dlHo`Kf@xqzelR!ECz>z;YA3Wyo3LzuCsxUs<`_9?7d+VlDKX{2uTQG10lxnwn0S1fE$bu zUc{g%h$tIW8Wk~UR8-0?N_kLGqauSo)TR~{En>7NU}=qth)R7TA_hcVEGi= zfBi~~29m>XggJq|JF!P$br>(^v1PySqRkQ&;Qi1c-twKDm5IzW%$c^ zMQ48KjBsYWq9=Xm6g%x3^sOH{OPu^yb?1jppEEmNJ%*z%aOeB{cRNm#F9o)6NvA_r z{rOltk7RIYK(!rg4cLSF#bmdizGEjoDcAZ}{nAc+a&GZ!de=^8y3_iG9`ccM(M3D4 zr|~@W+3r=TzLcu8d|c+cO4VYY1G9$6>L9x~tqKWKy5*3sfjpVyaOL=;LoKV{(z`x# zMmdY$*4ew9(u;DiCqiW>NAX&qQwjZp&*uWI7>cP}I$Kuy=-SqhwbsgBQ$A9e1c7}hTU;5Y?mL1x0EZ$Y( z;QpiLcR^lu=+2Lw@lL}IJ-*esbx13=YOGEUbgI1=0bqZlcoTe0NzO*p*ZFBwFLNMU z`mz4L)fwfThOL}4l62=Tr?0+jw==;@do(X~(NA=Di}d@uomrPsitAB~x-X8!yHm@I z_WAF3&iCakb1Qs-B}rp^C3klj>x((g4&MPBWNvfD7(eDrPxX~RrNWnkD5HHT6={?+ zg`QIRcm2Q~C%acZ!mS67#nYw5mmq%5-R@Xlli#^lzrM%mn>Pb0YrZ`eFQlk&Mfj@& z+w!gM+~f4|u0%NhkS_kjDe!Jaxatt`g49~*?Z_9Qg7%yB*<@c0K)5WT_3|{q1_;r_LmAWtvieMfN<`jFY5#AElpMBRCVgpK6gg;+>48d#|N zZgL$ik}^7VJmz$dEW<@@MrXX6q)i!a1gi(LjY(`hSOb`uy>LynxeaVBSOvnU>6}Tv zz;$+p*$-I^GBf)?9K>G-*s{#d_+zAhq0hg}snU<^a|*i-I2A$&X6gzrI`qDM&N)4o zgSGX*hBGO{h48lqEI$XO{Q^Zlgo};1xbq9=Om7MDxIIt5@`Y18eG0;D*tt7{qFvw% zTrQK(9Ppf;opIEXakx}b{FeoWoc+RRbJh=rwl^+_|JQ(}_teAw?hK0TMR+6Rt4Lbq z3p)>R2Lo2Lkz1ZGY2%t$dIqW(Yy!gMhy}n_gV{8Q4Fziivw5L@R0XyQtQW#a%Rkwd zGS(OfivioI$Ur@q>UFZwrC>)-FiN9n6<9~UF5U0+Dc*u`2yxB>r#89U8Se{R?DLO% z)0Ywi+7EeMFJ17JGsv5hsnli(PeeGSfOu&t%~nxdPbtv8FP#xyI*+ruKu`M88RG3g zxV*Ps@})DzOPkV-COkToY&YOKDZsXAW4hXeONUTdI&i%zfHQjtlOvXn8p$c_jE^;h z`(OZUN}*o&6-IP9!fOikyI)~MhY@Zs)Q1s{EJnDxPiK4}#jElKu0V$XQmgP^EjZ%SgAg-t|w8i)JTBD|m&TN{YWwr(=E zN^rRtvc_Va`HfRNtO?4s#mITEPFgp2tV#4XUSYsrx z09bnh8w#cd9gj;DUj>#9_A3V$GxcZR;`<-!!K#CuzpQa+WGn@ncmgw{9IPs+OAp~* zxdq|6GJVk@XGr8I!o!Dj#_2bFsG)zko40t}>piKyoJya+!k2O$O-<;)Y5*3A8;9b@ zHV{@<`vSG-7L;ZsxWWPT6K9}lU^BojCS5qvn*+863=;{th%p)kTn{*o5QfuK7#)D% zO7KJA>!>wNkH#v)<90*7C{tBwSgrUk^rc*g+>!BZ(4TXb+=6h8`d51?L9nL~rbU&< znTiQ|j9J!n zr`M=3F0LNg86Qt#6m9|E&`fPEfNbS|kX1o-C1l%2>YKiE#uU)&ueNjXBY%m&U&Jjj&wt*c5`+=BA=Mt2zDvk8_Ll&!)IS<#w zI>6G;$F3T}%~D)#vM<+b}UvPpHRra2&SZNNK!z-nsz2=S|G- zcRQEkb_z_!RzYti^iIrp6WIbY!$I`6fW^Sj@WxTxR3PB6tOKxLU3?b>R=-nqE;xA(Xj+w$)S$ z1k1qo>v?;fZu-#o&QR|(umMwa@edd=ixG}qa(u-~#a>Bqz|1Pf)O{T%0@-@Vnjy0* zSE`%v;*dZ`P{e>+6qi^)Gj9RDxtO#r#Y1R1x^Uy-X*MKie;OGg-su_azEA<2aq;(uA z&D2}}>68|i^u_!%vorn&GIWtI=wLxL&KIN>H`$wnLJ0Ib-VLj$YXL`ic zGOkNzb;eJpxNuY{ZD91S(5&k)TyDYu9fJv;MpZign-5ur2N#ezQy{ENyThnBRq%M{ zVJP(KuIh~64mC9ydL$Z~HjVN$4QNUc?mR6}xD=0iYK|G6WMsTCb!plhge%jWt?;JX z3r@;C8^@Ai%DErjgf#b07zIewEp>egux z=WRv!=v@5-g*y;Vzfu47Us!(UV*pg)&8kh)WEiY6fmMQqz{)6HIMSO2HYb720b2=n zyk=2RVD$FZK08s|K7-l{b11q)&aI4fu)~@KKlzp zr=Xe&0M_3~HI;1!LI~HCV>=Ki$5X(X5?C$Rb}(D(q({dE4kWM!u%x<^Yk4)8N?;pL zQ!~|3L_V=OwnMSw1V$N-fwhB~45F`HV7fmZdmy7s&{BpHET=FWrVNz@7Oc~I{_PAY zn}~49yp!)~be`dAu(M4J?6twCvkeVkBlPc&ItBXjqxkVtI>s>PCjG=w=SnXfRhV`& zb%siD=;@tK z@%R|RTW*oZc*w|RJ6H>ttv?!iDg7~o!00|`X1nuzDRl@2z=z(7x1x@o^fC6K{?X}- zoxU8f?Y5K0%NnqJ945Gm48W1m&0zDv?je9J!N5YFIkUEt;)4f>!v*kn0PN^|{XiV! zHXWs$c1LIYHWJP>YxIkJ{;N^tm1(3q0P>BHPo+fA819Z!ARCkB-sCk6LQ{J+blM+~ zmF1;A|BXgsR#0jVWWyiCmsmhgP5EWJ5=)XLNtM2mNBiUJeVd`P9y&hl>Ff4*H0ow` zZ3k*-z(P|mN^*NW`l?&t9gh3>s)ru^%pH*COvpsHcgpO;J zEI)o%HeGoTW}^f~$2c0m(kORuq(?_OmVw#j3U#@1u$5q&NXa}-T}bOClmarK8ITWu z6o)411~$g0(;T;~Y!$&3(jUxY&c&u;ra+0#hm=EBdkP|8iFLPwM<9KJQ2)tsZ|JfZR~5RS>y~$^G{GBPx3`|;x?P7kbA1~p5r~x*1jHAlg3D$C#UYO(#OC65uEX@5) z&*?XC?X5<*{W;y4w=fI(?*@+eb&bxK|Vp9fGd>d}sV2 zvW(|fXDoW+`DsoF*(JMEAg^1e9WU%QAiQ&(9_4k%c=sY)wO-%rb;pkwa0bGg@HPHq z1Kl|S6XTG1)4L&C2H9Yep{q`ZU26O=`07pCm+aHNyK})1BaBq7-gEevc=6 z%fVtNFfvPZy%xL`d=ddT8j8(eS+DE4DQ>oRFTy3S>w8l$coZhn^{?x7DegsGry-pG zCORu`#18E0PVlyX?SES@?CKVKk0QKgn|`jVTM!9gpCDV(FmwUqD35f0rWtGs5i>5FNz~&=rvb7g9O$5*JycdlAHjgUtZL zbB=K{@c%@x`K|irGA&2hO@29)hc^eSk^0^*$ ziaV=o2f~~8b;j?-w`sdY+1Rpq!Q*T7T;q#*u7zKL@$EdXf8XkKFTiT{dlA)(NYx_w z+7T%Jmpa?$&W`LvxcckP_#(<2ZIz?XSEb?pfJ>^vcF3C{pH6b>$Jl?SVx{8=I|XN3 za*4wc3xH*vz$StX1q*j6^zz^;W+-*Siei*28*4hMSkS7U7id zj<3cjt!A*I@AO>Ay)lIAztay;Si$)I@ASG1v~3Z>p*FoE!@blSMY!k(Jt))78{LR- zR{P1%c*4Q3SnaWSs(7^-sRnf@Wf;K)+~3>sG|ty z;2hC2NJC9SCzy?1GM-V?j zfE~gKrS1}my6jP~4zSCJQJ0;_T{i1Hv_Nt^jt3LtDA5wI8DKV1TDFygO-qjJZ?oNg z5js+}9SWEMj4_%*C}I@69UO~)<0#?fVE&XiZxUex>~`o9UkhFfKAAM<(90Ekd=J4b z;7#Cp9$c8Yu9CJKZ>0M-J#Q}bt<(?pa8Hl;al2jIHGa}&MG;sdm@N(U!{K0?!EQ$w zH>rSm1fH0N^79RV&U@vj#^ZO892>a~mI@f{ra<+OMIrN%4308R=fW1G;@pQBM76#^ zL`u{M!G0*8SR$&Gjo<^);wL?-YzM0X>rYnUNG}F8G2HlJE+f2gzGZ# zTa{#Y0;XZ-71U})8l~R`Sy4CrL>}&(`D4+oy6bll9#nhF6ZtvZC0dg_9FtZ+6X ze4s#Im+$sT-A_8b7!KLmBK=h_x46&M2)FzPy&Tw%Le^fS z2Nk&4gH|D&(=UF~BWe>^7FZ$W6Rre*Tfl<-^i2gQbQ{8}`{^eN+=5g($JYYg8m>nq z(5&_=(+B8msDxw6kWsu!K>62_G%L2Hpge(TxTO^Y?BjDh!O;ZN)NIJC? zf1u7T#9Db7!c~Lf@%L#jwU3@zh&gR9*tWrOeDn*-c+7~ox0;bk z=MmT9z+@MwlA}?R54HxZzah+mU|SMcC0GpX#5KaSNjN2c2$1G0a%6B06g$AEg2|B| z1uH6x$M4i-ecZFUHskW@AvmI@3;SW|ImW)EqUi0AH9=JX2wK6*MUgn}u|S1`lkw#H?zTn#&PCJTx9}LUeVFSuT#z)qUNp$Yw|m zKvG5$II55qu>2%#FZhto^1h#e^t_ZICa9+{Pi6RE^Su^`kg&G;!yEZ3ml5fQIyV zUkVMEAb8fWIIZ>~W-oq;g94amRp)Bk^yARo>I$(L!x+%_=m+n$#Rw_>dg{8 zbq&kIqSqk4O}MKh++FmVj2xZD8nlY9i(-i=#u5^?dT)!~DADsj${Dy+uC3lS(YsD~ zNc2p)NMD7d1Y1QhDvHq)6`^CR`eM;rA$raKMQ^g`HHn^D!5MtpUc)A(ul_2E`$Z5G z#SXa+krG_M{EsiDnazgkM9NaS8rCvvE{!gUMmJCiC&84420#{ zCTs>BbQcJ(O3VIAdc_T#@m1nKDgGMq*NOi>m$BY@x!xpx z&ad>WVeY~qt>?4c-qETvU6X~Lk`dd9^W=J3rp`Rejd*f4Jbaeh!{cPTl${OD!`*TC zy*aw*rJHuRDXGY)iSp64dPK;b>nups&xPDUk?5Ts!*Mq;jtqM+!yPh*GcYF#FNN=@ zQ&ofLX9yoH`Uev9amO_JO`^X^^r@-IPTc~N?gV8vEdl4*2*2hG^^yongtrJcdzN5N z;Eyt@=rASR8dvX`S?9SkbLneR$Z?CQ zp71GO(NewVJmkJur&hYdJl!``RJu7HPe4yU-@PsO9IghskCD@`L6Jh|=!56G4-5&= zHz&f?dyS{OC^fZ1V+r#fl31be@Id|C7J_Et+YmMZmU;f=y^Y1{{f=curZhdRklO!S*YpUxDM z`-b^wwI;#PPZHsE>9027E@%tNP;&y$#kWJcJ<9qRagJ*1&I!{hn%rRFEeU*-iH5Jr zl3J#|1-HQbkA=MOz@yCH5ne02P59%&Bf=Y2u>Krrtrf!6W6U2C{dM3dO+-as=ev~c z%bQrBrU^%F827d{)X0V=;F{ca(GQEh?fbh$zflr?jMY^abT8^wp~uM%?q)BEAwL93 z>WIv@q75$~5yIv;mQpltkQ*YrNq9fTYAiUlQ%o|nP53n7EhiQX>8rV7C?!GEfWc5pKy z-{FLJNrsY=nMdDauucllU3ic_RRQ0I@~8)$xlyH`3(gCr1mllxY{NR|4n=vRNv`j0!kS@NPpPze$Kq6;Trj(A(*sY4vk z4u)OATZG#R`BHe(Vb-Vl(KvKYDtPGsPVV#R;8d|KZLI&Ps0WxwRMQa_3>QP?5~1w} z=EsCzZ26DOJH^nA!qrjcudt_X1E&ntN``Q0+;4;j3`Zl`QMg>aTmEo8$Z$)is4i5O}YL-d8#<0a zsZ6zfjWnwW{s5kd{@K=_dA0Btgg1P_{Rw;V#%(iPJu=pt;rZl|3U7~^uSK)zTh^o} zbaI`-Lq%-a?8ktoq;iVkb6Edkqpj3w!b1aC|5f2<>auFAE<=yJp421vVo_?_!qVNM zR729p9FbPbbZck5`NE^}Fd{=v{aUzM!Djv@)*ccbklC<8IDQVrR94es2DYg9?L*?3 zDwM%xDwGI+r))hE%Jg22#m;3cD;HS~)=X6MEvImKZD#ukZ$8HQ14MtA<)zH=O4YbZ z{o-WQ&-ITSLH*nzN^Nl#+NJwFBpvrVkv2WWCI*X%wZf}QI4icXH`pX)L>7wvTV(B# zjvhI=-`bexaZIx#L0XS2O6ifCiMf!97`~O$8_k|NU4L*9`tV2*2d11Xo(P_Saako( zww-Zih<@WX*1uh{Q!hMN%9*e`pbLeo5zOrZ=rQJ*s`*E@U|xS9xJ^HFhub4}t;DN) zhSLd4I)9}?U9dx>{w0iYLojajKrU>x@M~pY9YF?T)fbd#O%4~&z9kwdyiGb|w#1uk_08w!=r`Bct;d~` zsylQx8j~EGQ?sp|OwQJLma6&S0krTBPR0exMJK$Fh2vONJuSS^{3xqZA4=R!!UOvm z*iQTwajJ}7?~6wB6>MsrSd3W>k4INrf>z2xHBqg_CbGsrNur+-dxo-BNVJ-=xm0Kj znT>WD>)W2L zg}1e`UZLo(72bF$+c{JC7B0g_#vAvAXf*{{t5~$!g*VS+Zca`?M(@Bdr!0c$bM*B{(G& z8_pf1TKITt^%l13V^7Tz9yLoLe95oqM};>HW<{LmFm9#cN`E}f&8S%~N^PULI)b9~ zw(y2g%ZR}y38N0w} z7v3m$vqFic^aq#YX*#c)ltIMHMcfzMk7XiW-P;Jp51MF^(Go3`FjHJ9ys4VYcDh8q zLAd`n46sBn?jGUIGHs!I8b{w?N1dwf61HQfv$f1KafXVEX`diAa&g|0c(I-w&vrWc z20YW16K*O8Of=8W9GgCJ=tq|gClopdoMJZ);zU1VvihK61H@CQCzm2fE%y+s)DBxgCcDB>5qn{0(Amk?@vs=1sy^2{&I@4)(Qh`T|B2 zBU42ua02$G{f5bx=Og3g9+2oU8NPOPj(LxApMzI#R2eOc*(^Gcaizi=C0bYE!-a?U zFnCP(`NCszf3}&qM0l{B6_<&At>H>f4Z9hh+w|lx@^Y`}Hr>Vrx=(bUvOHl%*&w{( zKGt6@eT6=KY8rS1^S8y$Udt28bddRI)fi*V4+6Q_Gd?Eihh}rO*vf&(GBot63f!{~(4j4I*0Z zdm?TTqy0s^kIfxoFGcUW3Tfn+dt1%0T+T=^$Q3b6;!F}APUz9Ig_~dVfUeZH`nB-p z3NFwYV&@T)Oxe>m+VjkB6)}B-C)Ik>P?w+Q#kL-G|8 z?F$plbAXN0K^SVF*zGKSU9>Xv2fsqrg1EnuI3x`*kh7r17_nz2dy9-0SuV;!xs!|& zTkC|kBy(ljuJxYqwiLFSA^LlS`(-tOahm0U>_Uli4{JSUyvRDy@}J8ojuovx3vauFxqa|@ z&*nr{%64#nVf8!N0D6;g-wO}Ot}|N6xMXYvpgkh0Az=ZP#{yNon-wc0LW%IO^iNy& zA>q*=S50ruubL=4xR-%MQ!|A(o0Zx1O5G?4+#rH#Y1})6-(wSy&R|RSnD9nfS_MRZ zjqva~2J#T8HtBuWqOIO$?-S#dc@c}cWy`-=S)SWep76$mL`(IN>v4mw6tR+(`db`Z zjTavLhJl?*YlJt-(^Nket6Rb8NhERK=hvbikR7J}qW=ImCY#Z}tm5t3?)MTQ`e&}~ zof2WaaKFs9w$-+na$NJih^zZ^G&^v<5Z;t9N&jfg$@13@Ot+A$u|Wo)UH;|}r<;10 zVjI%YIc`e#=wCR&N4?6pu~yvcG76zZ+J3{5EcR5L)j0Dm(Fn_O&#r(U5*}0@6X#bl zqfYe`Q26>7QmF~m&S|y zWUYS3iQ3ghW?wF%`5h>T>^LhBUKeM5%liv&?BLve$zpYm)tA0*?ca^X5}w!f$9K6I zWs^jy?FWuELL$!;9+m0pPN}zB^yC{+geAr+dq%WWHjCwkrJAi(*=WB&tbS^uMGlI% zrIopDtfRt1vK%gyXxT+vBQ2+JG82Rs39s(z7&1oqFw4(jZb$6|=9wz6i4C1C5w6o2 zb(l@G#8W>qzgfi32oDcrd-6D@{$#n!yo=~>6&{o4xjCGg+9SLz<>Y)FV2(!li7iM! zQ^!oca(iQ%GD9(w<6Xg?3hE>Cu#%&XWs}%1GrV1%US_%MCf_gFyUs+bxn0CcwhZh| zd8tipG3(pjOJ7}1$<*yQ7_Ev!p;*8FQZhF<9?x2#~jRB7Au^}busW3FKDX5&R37v+Xe zIJN0w{8`Io0beM5z3}RMw%T7h)H}k1@=~sc=IQInSZYo<-Ey1oMtO*u zpTdUjGRb%zGhXC5o7z__wKKtc!h@f3GP0Ia-w0Qd`9+eupM-}J7DdUWG6*hXI}=4e zi+QPv*0bPk5%iY`O%Vpqvsj&@kKBgskJ+cfo|DF(5ho4(&28BJm|>)zdF(AQUheP2 zRPX?svQx>+deMBhcSdtEo4$;tYL|&s^9^E|`W%Z?;8xzwYV?VG>iN-qtS{RY%76MbC)Pr59Tb}X<&u$nCyz2E=7D+cv$9HyHNbI@W9ioC{vhvn^S9L?=$0- z9TeqgfR&d@&VLr(BKuKYg`Z+>M`bx!YEkRPq;>76TZv|-UJ{c-hcdWSG2g|`k!Wfp zr)J*(OcowK#>w0-MZ8jYK$Zn|G~6V-WfAMkzL2`t>dV8yRg&vQ=A%`eth;P+UXTdU zO71=%NrWxJ8>IMlGWwXyaZtq73Ek%>;Q^T*(!^Z)Ag-=}EaM7==L@e(=uZQMN2M#k ztZ^00ame7G42FwfhAzX+({ruya+lfU{=)S*MYNtY;<6?YSAWgi=5nh|^&m&{u%~vg z)qjXMC}YWX^6vV@g-H8!Uj~YFxQGWw2q_sr5vva zZ@PoQ3$iMC$3%-95pncI7Vna1shBaSn9c1BZWi84c%Af*xx&v89{3G|_k~Xp-jpyJ zt}|4KEu0!`t6QqTlolD=raz%^cIzmrPcP-~|XMLyd9>01ax~t70f52RP0Z{t*|a z!+4{U&)`BgI+AVC%CcOZp6sybD?B8p9_Bjw-Mid^E>pnyy~$jwA!jmf6N`8052zaP zO(^hk*FuYq8l@z>2j0Y5@3QwHdtb44guUnWLrY*NRsSAOt+{=Nasis;@KL5DH_V93 z#)vq4HkYqZ#5KYjBw9fDd=t%cAA76VdzQWR#>;(8qAJ;~s*tGfv(|q0l+O4Kp3Qon z$=QoN&sy?qpvo`}9R3)S06jxE#M_PhBs(PIjT}e0>LVyhD@Q zN>7Q!P-vje|Yc*`HzjNK_%Bs`eV%1>DRgxO~;C-a(!{b^h| z6_UH{!d1dtzE^nl!>nH{3(ft)!<$dG^KX+(?n0Sx{8D#z!O&G#P#4L>O3^g!kDNR% zjVlr!mQP99fpm`WmJO`8Q}izp9+StPGvw*4R(MqQgQ_@_D#E-}#iT3PJIZp25W0^w zCrAQMnf#W$CgQq!=ItVWTX;@5MOI!E%Mf4gcaq zua&wTXvCfh<3(;1t-61(@w+9BdxclaoNn(Rj|q*Nw}}@I#a2A@dd#m zI7P$Rr)DC@t^*-$r{Xyfh@abp>aZ)!`U!Xw)7EP zhau@n<)TGDl|^;i_9z3}35M$r?n4io05RPt!*VcB$$H>YBQCqu#{P+`! z!lMa~OfL)ff6J*gNuqyaa|c8m&SN{cH1221WoLM@aQfK}DqNl1X=Q1p^7RqCB_B6f z#DP26obBTkHk$OJm16E9;o+AU+#~#Y{rd;p-lw+-zFi9Wgs3;}X1!NMeVs|&^MCAp z!Fl zcZrD>`IU(4-eIe~MZCnOCaVBUPR2bfJdkjsds29t%&$^2>Sf{8@>!iDVn8|M7U&2Tn6{IYv} z{wq7&M%S6TTR-`cJ1EtjW^O%S@A=3*D?{cCJ9liKru*!22W8j~lvqDq*X(i!XSQzS zu510(ll7BOKV^Y@oW=N$yqMKZx9xHRsjCF9O4WHE;|nq5la|%^u%3N6$|qvhQ)}fjpxZ|3CwIHUoZvdWXSZAY{{Y3s%hmt@ diff --git a/build/ai.o b/build/ai.o index b1763140952bbd4ea5dad0502b2e35bf7c4bac73..e1eb3b9cbb7f96cfcfd5bd8a9753c4a7cef2ff8a 100644 GIT binary patch delta 189 zcmdn+gK+~8xwA4pnC!u-!2W=lfuUi?w8{CbevB_C?_)J%e7X56s{kXA!^Z9e--aIfnT3c1)Yx$dSSU;(|Dv-*W6@V>~c<4Zkkqj?K6DA20zm>=u#-QMW~;n0P=6 zJz5WxaDl8~6!#E-3h=i`LG0ZeDIUbg2{Vs*@;i>a%}SDA*$@g_7{CtPtggTr0{}m2 BLFoVh delta 189 zcmdn+gK+~8xwA3`O!i<^U=LtsU})IUH#wixk1=xcK2|fv$jx6_1sH)GHg+c<$CF); zkqe~CF~q00qi=E}M+ygs3*u~k%dwA*(O~i#eqBb5&A0d;Fab5}7Lo^1w?(9wct8q0 zS`UmBAGmm-lJC3}~N|ImM5DHruzz*E3uD}@s068u= Au>b%7 diff --git a/build/atoms.o b/build/atoms.o index 92f6d58024bda78aa12b5a6903ecb7e0dea8e32f..b600c1591aa706c0b782d3a0fabeb834762df6be 100644 GIT binary patch delta 4038 zcmZvf4@gy49LMi@S!sXXQ&zj(RqVYiQhF^PS^3KHUDLd;j3s4hS<}{{SYrtV3yLLH zOUh08(N?2i!p0J66mG+|7TW(3hTv4=w}HlWCbmExm#Wwd+07JUmCmR)jh~jmbI>QU+$zVlu8@E zpO}RO_sl5FUc=q{QMch{Y2#o9{1m_x>*(d@MXI-`af9*>ChIRQxtNk-)jv(!Qk8u7 z!l^Jeo(Zc`%c?)8O81TAwwHa;YurBATCDoL_+>9N|FW0e+0IQb-sy!(F1tJ9)|Suz z|9$R%vA+3fG*+(Pw_>HYZ5T|ea>6cy}I-KQ>>-tOn2T|esQdpZVTX?I6x*F}EaaMx@2D|Tyr)B5#qh2GqSCCkFowzX+%Uawq& z7vuDjWrgq-R$(yx(?DTxOyi*9V0eFu8_e1>*bU~?4@m~Q1A$+Iy#Y7a7g(Sly8|nS z1#?hwgJEpJ*1}+_JA4c?V3VEP_x9#cQ4BzPh{@FgX~nWL|oM#MZ$ z#A7$rg(s_2Y7J+qC|$$zW%MZgzUrWw$aM7&9l)GLS0a1BICNn59!&WZ!qv@F@pU-O1T+AJ(Qlx1jt)?;%-qV~~szdW5 z(PYjD96WYtPJ>8?W7R*~Ch7s_fabJN#!TBeDw@pkKT*du=afkK+v0ONsCK5UE@(~{ zwSaR&G?^2{!Q&2hV)sNE!m7{d6YIPym$zU%(qu)kS+H1nyJ#}!s^R>iIafrQDLB`u1)SeCr-!=0=@m`p+%}wt zn)5`YlLW`2*j!r;re@3;R5RCh#;}|)_&36w2mAs9jzXF((#cr$zbSAO2s1PXjzZHD zP3Amf2*zT~sT658R(%c}HIE&|=L1L0gQG-~IU~%seTU{Wh;)kJz)|2F&>T3b0FDw( z=IFmkcs#B-r$jncaNwu{b`+lv90kq|(PU24oX;KZ#O{f7n&9+_b>5Y0c0JN$I4S{0 z>6?(3S3ci#;3%YyNMnKwM_oh~?Vl&c*D4jkpeQKHG5 zD#L-Jz}Y6!8G-{xfdfZ@14n^#P&Apd$#CE(a9Tw=OK{+*LhUGU;HW}4N;H|X-EiP2 zaBhk;E;w)$IB-+~juM^OqVrg+GkL!u!%-lo4Z#uyeg`*4yjzXF((h{`%-xnMO0vv@IjzZHD&2^#)M95@ObILd>gM3Xt=7=i&ufpbcvi?Ql+ z;3!W!3LH2JoExIaoG3#u;HU*~lt|yks?X^Y>%8mbeH5P|9F>Hl%&jtCdG6%n-~mS= zbwpZ*Ri6w;CAFh4!%=AFiKe_yhNF-sMY>dQ;HZV#QQ*K)3*jiyWR8F3;V5vniL_jB z;3#n5C~!Wb9&iqdCUg8N4@ZIXwMbV8&UfT4!e_g!a?zi|a61)WJ}tQgF%P~#e59L? zW)m-B`0M`v9M=byU#xfY9XrO~baJ`vj4-?XT}{IV(j4kRTJcI+&3EY-=P6@_?L2-Z z-5DH6qvRr8#z+jG+{bs+7`LewX{xwg;6{S)W-%sG3(~|Z>Ge?q>AJSA6$MHiZOf<} c8c-+5Sv5;lP}!;i%*~jys0(u+WmHZ64?lI%`Tzg` delta 3955 zcmZvfZA?>V7>3VVLBVN(MLZn8R-jJYaHA6y6rsfy585qsipbC@8(TEn5=k`CAIoe& zCu$SO;}ZR028lZNV~Z8H;4&A<@N3BuSv1joWUy(1Q5VQuG82uvpSS0jCuC3Zp0@9O zpR45*u9owCs;^IV7JamHz43H{`d-k;GQ38pJ`%VeT3dh4rwn6_9luwG+m`47|J)+9 zq8-QlMc9Z0ZrL4w-VMCl8A(L_Dw;@V#5W!s0_R8gepro!6I)bm+kmnUUrb9gYTF)V zZf~{^D<>=-)B&tP}_W%mzFj3y3x((thM?F;t&i+1^CJ5e#At3S_5{6G3`XV>4w zY7P06<@MU}0e+E98$%mH8|lfk>Am&p`lO=Mcpm#erM>4#R{IHke{abIZ0$Lp)&4a< z?znAt{1Nzt8Zzhf?#>KOkJ;Frg~gK#qEYS5PIw~Tyn_=$UfyPa{EDNKxbv-jf6ytWA|y{EE0 z`zhut%pK6VVdOive%#)m4&OXwP|{cE@hjTzD@fmh?I=C=y{GzUYyLuYkB;K#qrv=n z%BF|;AFHbrFL=@O$U|Qi%usoBrC_EirP~FCYCUBZex`DJlZBTuaK^6UO_^6SQqMM} zcewb{M61ksZhi~XupT{0O_=%@n(8geFE!N(8pHk5dgpuIv3?L|ZN&Ww=kd=JLwd(~ z#Jo*dE;EPXNEh(+!0kMRQvNyIbJtVOB2#VTj@nA0MW(e) zH2D?sYvI|UIdPFr#;(iRM?K&qH0KBng3~RU%$ddz%yG?0igXHgT}~eb7Mtpv=3JrX z#in&tG?~NiHP3a;85XG*yDn#h`oX!cIS*+J9DUi);H$@+QY@ZyN-i<29Nxz8O*WRx z$)ng3Q_bd%non^wOGJ}7VJx0SniCS~v)FYxHVuRDs^&COPMK+K7ER`?WeDaS&1n@W zUpbevlUmD6^`Yi;P!BkrqRE^VhG0I?oF0)*$F9pcNvhmbUue!*3Y44HdC_Ffc7|Xs zXwINW`7hPw+@LOSe$$*g)DO<6XfmgrA((%-6HpKe50_?Oxtt8K&u1OP;+abErKYkd zw$!wI<2r{@6=N=Utbj<_NiMmJk{~SCoLU-2vraVmxsExUdd+DT=^Vk?LZM}*`apAb zQR_0(+AW&QIpc8lXik?%eS&kC2EjS1IiHiNFs)Of$(#X)^OffGi?l#+E>m-bseaU) zo74r)kZ3aJn!~xRIb$OA3(mhZ2F_#d1Txc7r|`QoS9G$)K9g^yYDO-_mYY_-NS_yH z6;XV-sTOcYl~WSUplCAZfy0StPE4dlf&)iYvZI&-M^(a6qRAZoB;?tlIdPG`fL-@D z0geJEp*e6AINhSjoM{f{xaK59S}ZtlR24glUk@Br1xJY{bNmkHy5hW=I{9OZD}s306A(h|Xeqk`H|IKokAmWU?5p0LA#qmYI~`ikJdQ6RukIKojO zI7&2`v)19jQQ)+Sv{Z25sE~FPIB*m=oubK{7KZ~zfzu<>#exGzRcl9q14mWEQKHG5 z?G6Wy0%uU9{ORnz?{E}2a1=Oj6gZ=z$((kF14jknDE@H8@L$1FESHlZ_W7)X&RKBO z3hk&BaMZZYA*TaJAq|L>KlxoU90dX#g(Dn=W}RsAa~*Rya1_#JkyZ*092M4%0tb!? z!%?EioHGswjsmAkq(Q-fqricqz=5M8aFl2=XTagWQQ-88v|4cBsEBqHIB*m=L!!x? zYYqpF0%uI5VZni;z=5Myz)}3=2E*@81k1gK*O-BOkC~)E;T_reh6gY4cIB*m=-J;2y zX;?gP6gWwdMzQN&4LHiyjsgdcvf(JvWR9O97&r=?VUfOuU6%t#fdfZ@14n^lIA4SL z`ZI_B@_FE>S~yCib=Y+|a8#{!6pnBdnkAyioG?Q$a1_#zNMFaU%YmanfTM7PqgKID zqWLD8X$--@QQ)+SbS-vW4ji>gI|>{)3Y<>SWR82C;V5uE73n&`fumMyM}c#O0;^5y zJJDp0AB$(Kw|VvNlhp+Zt$R7}eriwu67z-R|Ll17rEZ??yZ>`srk-`C_3OAao4~4xaV%pNRL&+Qupi!IWbFGvB0F%2p2mk;8 delta 157 zcmX@%cEWALZVt%+W(Ee2*8e3w4g1e?FfcIix10x(4f`)nzQPf&ei10-(fRBJP>7-R zK*@BEZdMR;-&;nYc=ryl=Ema}Cr5Frae+972Rs@NU7Xy-8OZ}N_&^C~!;bTl-*XxX kfCL)$UjSKBssysYkSkUYA_%gEp=6E+(5TJxxmHR50ErYeSO5S3 diff --git a/build/client.d b/build/client.d index 45f07aa..5c1a493 100644 --- a/build/client.d +++ b/build/client.d @@ -18,7 +18,7 @@ build/client.o: src/client.c include/client.h include/dwn.h \ /usr/include/dbus-1.0/dbus/dbus-server.h \ /usr/include/dbus-1.0/dbus/dbus-signature.h \ /usr/include/dbus-1.0/dbus/dbus-syntax.h \ - /usr/include/dbus-1.0/dbus/dbus-threads.h + /usr/include/dbus-1.0/dbus/dbus-threads.h include/layout.h include/client.h: include/dwn.h: include/atoms.h: @@ -45,3 +45,4 @@ include/notifications.h: /usr/include/dbus-1.0/dbus/dbus-signature.h: /usr/include/dbus-1.0/dbus/dbus-syntax.h: /usr/include/dbus-1.0/dbus/dbus-threads.h: +include/layout.h: diff --git a/build/client.o b/build/client.o index 7f284f0d92c7c0578f2e29588d48323d8d950e20..a1527ffbd66b51f1e72525f80321d619d95e51c9 100644 GIT binary patch literal 27136 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 literal 25112 zcmdsedw3khm2XQn_V|$*0S;&v0RsrI;vh6e0r`p|#(7;smPddjCSM*_?0|_A2MEFU zcdAZ}j#|^s?%lipY<*u(cmL{Fr%s(ZRdu?$=Myb$3(CvNER)Ktzp_T}3~E`Gw~bym zs>?>J!U|a{S|ZQc11B_XL*GjUqXt1}R4hF!OZFdD6evlZ|e?S8nY~Q6Lt5q-Xp(%@5~v6g)Z%<`d6+X zqYa!0*o7Ol*zLp4?e@@J^Y@)0b=;?I_uDGt>4AAO1IL&DfG=?5}nuxah)77_*5Ut3!_pVGiNvAi_)g5|cIPzTR+<_`o zW4q1sZFfa1bZ&DSjx{)Xaco8QeJGC8-|Ew2`t(hG`kp?$s!u2M>0N!A4zVaV3#XAA z&zw1Wo9p_28iGZw%Y+>uz%$i!bb)373U#{g8nkcULsn zLm#aUD?^?N-5sl*xqUbvz?E_gF4Y~%9Qj3e=1LFZ=i2 z2Myr<6%gCMcSzrS1JF>@Z@NP-G*`|!dG{x3emfNX&9m>!ITpJAUS!pbJo|Rp+ufnm z4{+>vS5)Bi8jc^ki)WzwxmP2#rMtCyhU-)Z(2j}Ks=fkH49F^&X<~H&Sv60godxhrTR%M#D)zgP1LI*_f)T3@ zC^4=_93;(9eE@l;zvfr7okt$Ua8l#U9{LcPV0{Z6X+?%3uP9j~Zy{UzS?Tbpe6WYOvr}U#SwC1NNMsIu}s4or`(bH6Gnoz!lbo z$l-k`Yqe2^slMnPYGy$x22`0=x1FYJRrQlp)ZAdeYXc0em>)Sq>zs0ajbYeRTg9+{ zkcw_QxC^J%#t&>SEuUhF87VYfMTS=^1CP2|QE}58qcLZUHen=+!M@WjoG%3`6-U~U zqprGln*P7R2-f|s`u_^<|BLK`?0fEVJqk+t)3y`4p?vA?cdq1`+`bCiecN3%gIrAq zBWE0ROoT>tc)WdDU>_2z{arbQjhRr-S`hJm8*^RY*ej>coH_nfalYWjM|69S@7B#8 zwWn(TS@peCSmu0atlhMz=_TVeoj0nfcHS|1zEA6U9qD;sr$@hk_R(+0SbN5*H}hDc z6@OI0&>#f@diaJ0_u#tKeG|Rd>K?I&us*0|6{ENfvwWK{UTBbd)5bsvw-u0uwIr~+ z!lCt~Av)*Wk57oY=i+*PbWR0bSL_a}yhh~R&3Q58(RIb{MrZEngJsT2bjMn(9$nGG zl$y8QXFl_Xt<`qTvt@5b-6_#Rpyo{twE=oF>IQiJB^@>w$4>qNn3CF#PS^g1;dc7? zSCp01yr=pPb3WF>=~&aSB%E;~)XacA1ju&h>(voUc&vIle$g_!Fuxj$IGp5#g_TMa ztp?h!NFL%LlGs)~J*MUgh@9vC(EYs@3yDg!E~rF}igwc#ZU>fAuW%hAVxBhRZSu%H zzsK6Rv*h?eg%{dG|4N|*!cvYc)UYebkKRl(?rxaLXUJVP>LC~=W~Ozfl5fyFo39z? z#G&oeFafb6ua4dZJ^N9C_GdB;H-8?@zw~@jXs)*lY8vd{T0Pwg4gL>+yUX)abl8qq zY2cZ1H37TL^<0?4xf~Ye<_eM?D>PQd+~&#{Lb;f`xQf<*?KR2_^pp`f9C>bRQ9{p- zhzapROnU=I{}g%7Xh5ok5yl~kr(hnB0;MK<2HA!}-XTOMw)@Wb`Sl->!S+(h6&BY; zPDk-5p%*(8Qo@)o7ijBk?e2B#bQ3L7g5S1|6p@B)1?iJ6x2o zjON_ZwV3Bb=8oK548w}+#f72A`|2Byygu;DvVqfOBYA|uCJreXU(6^htatYhJX1FC zv-cVYPlsar-G%iCh0J)kps=dmebzlP@Y;KdR2FJ^iWroyraEU5Bn%uagClz57o9&P z^!UR1Bgcp$;-%5@Qz?J=*aSr=#?zEf!@Uker>giQJ(C6r<_|qP3=TUpXx_P|!;g#P-e zr)!0ZEc>RBBJGnV^HMSvzjJfl??6&Y4>EfkrdpMuX(GnwM*xbwe6UU9N9 zDt=vsJaAKr-&{3b_1LD_VGG@>2gkI^F;8fr!4KoUf3M!87_3vY8!>b2r7IP@V^-IZ zUmJz*?*5j-$Ld-Ni>el4e*&8lEfbn57YA|R)E~3oV!qnEnavk=Rn6?j+>cvP2>W>RY|2HwlJgzaH1G|2u znYUa%6>|^Au#uumMuyd+-q?~@-^SIKzy54>S*?ZhWWF-N$d%*c(<$b8Z<1c8X@xG1 zGvDVty{voZi$Awsh6W!e6VblVCj#)t-E=3OS17#4SXRz{pSso$E5md>=3(W2AgW3K z|5gBY674=%E!-c$dEEU9#{4nf{l#>3;wU(DrAH(@Z)b4m0z$Db!QnbuPOmTqsOUARMShg@i^3p4Wae*7!SFZ6^w&Kk#mpw?|}6h9}8 z^qCf^^#k$f)imG+*4O_*&7y238h5mhGWldN-YFT+{x`HoXyB&$z{n* zJGsTWFih2c1cou~N9Cs-5c8FLXv}_uvHt>5elA{$sQtS`pWHzmLDp~|)|<^b18++v z+wMNf9q4bsR$rOz?xi9s{-kHhg+dVQ=c0Z*BYPk@IK)^AkcVgIXyG?Q&!D|}i- zW2T5RabR&hdh4gH?yr1TWi$w2FM2}+3u&ud){X$x9EAQ=L&mihOphAs8$tn4aN?#m2G(X z9NS8YIEp5CeP4yO4!8O-508JgJF?H}FEXM}OaxtTZ5A3RZl&l|R)Fa}EUaW6h50=4 zEj;$==L~Wq;TNI7pCfDJ67_^^9OPRRI_T!yh34p%q3ifS}a;$9%GCgvok!cs zgQOH~l=ah@mDXOQ3Xwm)h`qnnBkjj%Qr3JmUlvp}N#V(Jc+9?sCMqLG=c^e9ueXZt zL7Z#kOAHbJMGnu~+`um>@SI%s9aNkDwR>cYJhUHi-Y01s7<|n7$N4lUO6HF)4U<_V z(8jfgT7zKg9z72ZI~USaYtyS>^NJ?_rVY&^&mDiu>g-J>Qcg!_HW7CcbHiPIscq|z40yKWG=jPWm_BU>ft3*o8rC6u5e#6)s^lG&s>^LC2Gk29$t4miC4T~CmoLW z_NF^gM_4n6ONsg2>CSv^F6V`N;<>O-4P*IS{gu7>a4H?{O{dl;vf;$$WX{QH@kV}U zI@O(ApU}{o^)Ta7fW?L^Lmn9 zXLk|ib@rxnXCz^CrsrY&b933xuM22;J z<2!-%Fy({^Fm~gaOak4~6<(J>?r0mN9~QdgbT{11}mb$Ky(^l`f?=3ym#mf z-o53~VCBGsg~9M$Q-hTNKwdQMR$Rx_^->i4AgEip+?QziZxQ8=lug)xN|@eE^^l&A zG5;1icLl>e!GLPpLB>1zOznM%uU81{1Ye)aXVrFU8&WI%B!d;JAd_^X(3{df(iyr@ z+xL`BIG@{YPx}~*a8odF6O^O+Z01L)5K<+MHHb>&M;ACR6W znP+T37=0^5=`ww?X5w7QSc=XIf))3hJ{?xApk77I_B1LV^OPs7ov}-BO^L8x#=-<3 z5k~$@={$W>*h7q|=m$9Qb~8rbqEQOt_$FgR1gJiW1slto&@s)yK+`nU2S=H+h&Zs< zR#=i8m-^scpFA6Rl{`RH`>F3HOeqWQEo%u5<9G(gk+P=XOE`{}Ev26AQ@z)V-?nKf z{4Sc-gI`>lR4zfcU_7xj$IV~k|j zjGZD(>9kU{pJa4#UIXPJ5w@AJWeU;QeT>B!qr6>=y+XRfMi0Q@EAO8W4TkTX7!A%G zIA>w-NO}3)Q-d>O!7!$sCicq-KQ0Tt1nyBB$8el1Uk0L{*M7$`cThcxXl!GQ1X>T+ zbh-KftfKX)QsK2_$+p)qrsfOg#TdJYEVzQrPe6L5&LB`+m;NM}q&Ligt<7++m3yk-B zLr)51+njA^uwCcj{u+ zWsDzT+{AO&GhWA2iiu}h7+=P?nWvWnFV(INAH0v{>|!}84unpFK788!EG7RlKKNHz z{xVu@kfQozJ?X>$F7tOW|54_@Xyi=MfQlz^d5rOsjH_6ZC>U3z^gItZ*}sBzq}4|LbbYVlDqP+Hyp%qheDM2x@P~cyFZtjU zLs5JC=`#c*qv!V--@~|xUteSV2;*T@%Ccy_BRMA-H*xGV%xlV?Ax$)~Y?$#n#!Wm+ zF%|KbF|J}-6m0=s%08=o@C?g2%5qfP3pt-)ypDw#{6WV188`j%sE_=w`QV3H&Pg^v z6Wiw}j5qQEqhej;{lQ1hB#iS??L8kj*=H98vPdfS#ktntY~Uj**Rtj^o?!#4m=}4i zjPGIG@K-Y4f1ws&V!nit&$x+s`xrmUxQcsGbP#wc{XgY{f7u8B7a#mEaI(Wu4k8=4 zz0WfqX2q8=evI)9<8j6<%xg*x<0`&JUJ!UG{jc!B=lkF*eeiWYc*+OA7dYuTe6dzs z$5oc~H$MEweDFgoXBiJ@)4%`5c!qJaUcAouFykh+e~kXvZPP3C#+ySn|j-^vuXYhQc3%k-C>c2=PtG2DV&ce@Z`iaobb@X!s{d|ai zuBV>{`k6yNk$Uy3%0zS_RVt#2MHD-t3PzNSh$Rx)R+QnQtW z*{bYpC3E&13tRP8`;zpg#PUQgd1qpk+T69;S0qwhEwmqI=@xga$5ys#T}MwMxxUA- zIy!PrymLcGXU~QX+HbVtPI_Zb@$?2+M+&>uR?f+$Ix}0S9&EHG5>{V2yCIi}cP5Bx zbtO8}*|?z-uQbfWQ;A;FlHT6L{kV^FmLYQTI-y^k=r*?2OSu-cc?iDjnJPO>|R_ZhnVl+%H>ni9G=`od{VW%7>N zlSJ2SNp*7b=>0;x(@Abhc=YK__ra3wZFCx||3-ARkzaIX17OFucS{HPK}SzAg|{Ed zv`dzzvm4{RwnEqpS>-LJ90^7DQ9%RA0pY>8H}or`v9Cz1MBm09ZX8SK+enV)z;a9C z8E#Aaa(-c8?r9s=WU_`%dj0y|gn0d8v`{tnreSpKV|&ORIGO9{E&&za=$PW*ZA_+; z8`1tQfpsP0@Ga?z%4s^BEg3WiUi;B(94}rl$`+)vWL{Yo8~*ZEZ~YrY4-Wn2!W#2l zhK4SWh9)&gR;e+0h70t^4 zh%&EGjB@mr#9YHE9K1U)xAbDfTpNp-dl+$3GM8M}TV$x$BUZArvvVUGu}>Q?m(OI< zStr+#$)=rjXS&yFU!3giZB{N-92*#@#e8n+2Cz(h@vbg<-_(oOd`*uorXvN+^1$H_@rbG~6H?U)Pj(oODXaXGORQE}Ylz8az{I zM`u1u@6JSNnyb5$*&JTTYKyRd&NN;_n6|2$j&!P{I3b%HDxMNuP4}5>Vw22Q;w69? z*0C&poWP!z-owJndzH*P1cZ~;6*vq&pqJrs{4X)?<^R%$KM6}ZCE{1(F!HMfF6*Vg zl2Ri6l{gH49^+p9TLk|q!M|1DR||ZTz-J14yTEG%{sn=5K;UJme+>?! z|6YOD3Y_*-DS74mM)0pizL9fA@DZ98@kw}&qU4qHMaD^=IvhsM1q2|`iDG+$-|B-W zeDHq8z4d-h;0XDO^1m$P%og}J1Ro(^kx$P>l;|Y+uLwRp(i{CpeE6pXF8$! z|9Zx$SUnCSf4vX?MIU?(H6F<;e+T0ve+~{K|GPf?w*_DN!xSGFMSAzctiyS#QjTzfACDyH@$|qZ3?!JeE(w77-`*B#vSp}Yv^CN-FdfySatal1; z0-AciplZb&#W?9HCX%J#RKUn`MVh>J?UMt zvBP(K_&*l>HG=m z{1bvN$L}d0{+|S2$}i{l4AkBZq5l-dz4rMF!Cx!*3k094GX1hl@MjDB*=@TLD>#P35$e`)_&jC=K;EBMk53w-!%1z*~Ey$}Bm!I$#y6@0oh?cFK((mtOR z_!v6~InoZ(_&tx;4%Li%?QpH&%XMd-58w9TuNHi|H0@d^__AHS0+;Rjq`=n+IWI8o z)&C-XALVUtJ>y>fje@^a$Y1QkZ};JE5PZ5c?ad0lZ0}Zq%k~ZnIhPALllX;-SN|1^ zd)wPB_&tzA`IIt(pTxbklw)ddGZx;L)eehoh z`E+UIzb^Pv{%L`KQ1GYni#pP0rNA#1_{RiZ&A8VNvjtzypG^Y4O~`5Wk+VYZ<-E7v zho2RES?@L<{sTVz&kMXs==nt-Ij00aBlzzL{0@OnsKN~r**S~D^w(6zz4ojWeA%w6 zefT#Beon}5_2G93z9aY>eE3@gU-rv3fv*#CT!GIM_}>ZnG+w@dgVJ7slL?J|_6s@E zpT95gyx_km@RYz`75H@me@)=BUrsVk{X&;UpLYab>ND|TkdUZ)c_HUAA?H=WmvVk3aOo#+2weKf?*twf^4}JCR^Vm)U4ysZCkeby z@Mkej{vhpnz2I*a{8c{uJ|BECe>dTkf3**OK)mme`!MwV5G86?4G!ZcOMGzpu7wiu zrJM%^J{NgL&ToD8bq9I>ljJlC{vW5|28r-G97fKq=Mk!L+3yeg;D>$i`^58tlrw|l z0jgKVGhwO}iR?^=Nj6^?+#DiCaH19DFZoXq2 z_Tc6_#-Dp|^If9(0~%%1VZKYO;`e<9H{T`pcyRNbq4`eS@XdFI=KFMmo9_ny%_C22@w0Usz-C&Ow=lFiB2RGmK?eyU0yS^`Y z@S{A=-}2z*JGwB>d!}9HyEyaS(BS5~INQTF-^H!*;O4uyj0ZR0#nJbX(w^qKIIA|d zWup^chqIH_=N@yFP4vcV)h8mg_!cg1)vm)gSGCzR-4H!ei!ajTEk0J`+s>SWyw3DS z{1Mr)YVlcAq85LHyheRt#`o(}`C5F=kx68oEhtEpC3^Tn7Om`m;x~-4G~{`jDoSeP zt5v*?nT)Wx;4{UJ)P;?FZ%(^DtgqH`d`{czR1YsV>VI9txQcOhZ-P{M*i)~;d3rLp z>c5aA^Z&Jc1Z7DktwAz9!u3DP{%P`z{zi{RWRxnOtkxxNGzIx=%9-;`T%MQ7B6~NN zH}#neb8pUTxIC@VGVS5=WM7#~z2=-irn#297r4B{=-SJr7>_~=8jmu)#O1>h#I@1e zz(cqoncnhmarvD*9u41Heg`rp;%GDkbG}7i^iw7h`5!G=raVt$CF>^sjt|f;{-?m} v94$MSB>Fd8zXKx9SoPn}U4y+W-For%vNd diff --git a/build/config.o b/build/config.o index ddc228164a8d80d129a6c8b0beb95dc3a65985ff..ff378eee3d617ecf15d49f023de459b335a5655e 100644 GIT binary patch literal 15792 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 diff --git a/build/decorations.o b/build/decorations.o index 47ec16a7e115588864f6bb0094c1d52bff73f621..ccfd53dc277114c467373c028877ffd9d207dac9 100644 GIT binary patch delta 309 zcmbQ?J;QrKBmW0x1_lQH77-xj(Y)iq#0fr(A12;aWBf3gg;9lxfn~B5<986H%oNDP z!7{mwXYW42XfU}0bg@aV2l5qJSKg2AJk6-;%$^ys|r(LDjEs)YF~H`x4=K#29kEH3P3WRRS8Hou{y|s)VXx(s34o=)A`7w^Swv+h7Xe;u!5Y#&ZY>~ zB*(4cxRVoX>4XoHgV;2HqSb6_${<6Iv#1CFWsuF;<#Of>1I(l&Y#=M2v%O<{F!>sL tJ>!GTVH}FgJRsjNl-PN6cK{vU%zX#s%S0X@kk{Aq$O3tr&+(j+000>?UK;=a delta 309 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 HUH*Rn#-s5L literal 21136 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 rlBo9LWA~?R+V)-Qxs@Cny=lT+T+x`CsgbOP` diff --git a/build/keys.o b/build/keys.o index 4e9c12b6d0b6765cfa992492fa113315091f500f..2b7143a3edee829f54d5236d4ab69c0b82be71ed 100644 GIT binary patch delta 4431 zcmZ{ne^3jP=7})(Y+HUA$W7TE+TJa7`8Vt8t4^ zhb@hBi|fViPBvnG?5=0*Hrzkym#8r5S$!l<(~6>(n`VUjTV0x_O^sea4fnUfocNE} z2>dI)^d2#T6tgMe&ls~jah})h78L>Aw?2zq7W326 z9}uI%l475?0B&BAPx)-ZJva@q7kO6;!yqZg8#MWbRwt9mmGZ zoCiCS*g|-}I8&eH*0gCF)B0$JHc+Y`hKe~Wv~;~ty^O`;7B`Zx0X$d`BTEAXx5dYs4Z`Awqo?xaBp(z!&(9CR^6*7D%}M7=a& zGIt&MSq{H~{9K3s4Eg!wFQsuEgmc)3E}~(ga+SPe(P5%}4tfg;)^Wz5aUJ((PO``7 z#hDPrXP>lX#EmOdoZ|3th!-Ym=(C19Vlr^s(0UoP++B1>-}+DCLb zt>q4@<~J=JwDeDwj#~O3q5f2Sxrp^YhINRtnsT$q&!?%CclJIgc$DkKL@zsNH8dg( z%iJWpPMLcWx{&tCTnD`dLr6ztE-m(Cy9(_qV5L0Z!uCXOHL~-Fddbfxf0+Ea zjalUX0)nMn4-gF#eVFK@(1J8b^d`~y^dxN&l!Yxl0OJ_>qHJBfgRoTCC+$`6m2q~~ zio6IVWn8~bk>#m&NF&Ym=OX6k|0Fsx&8FL^9t~$ojJiC{HcF@4=jlo22W8XUvxD1f z>S~?~X%)3Kq53AHY0Ku#wIQR9Y;)*|1UGns)6DP6Z!`1OrV_?3fUlCXA!q^4@}LB- zw^vhw?gMA{!@zoAPj}L{y0(5mafn`U{xH7s*+d!SaFXkb;T6F zTd76-%gCO+4#6s1nMzhrp`Sua6%Tx)utsAyN6$1kniS@fI>`nr-kAA%=1tA*5R9_&?O z&MGk%6u(dL-=DxAn!x`A8moEW-$cc{HQ@0-T0N8T4IqlM|MSV0@p4W!0;}Q8)k@YG z%$D@5;=iHzN8aifCOOW9kIHZu_%;kT8c5tnQkpYBn<#1JBb2J8g!Z&J;hQ zwQJaExKVqQ4Z_Ac1NCCv8kkw1JmoF=KNg+10<-ED2^Y%n5VUHl=%C%jE3m7cvn$Y6 zFY5ZNet=zrQ(LyN56$!jY~&&=ZCr#uLXFLgb(y2TLT?9nnhbp2Lrnv07i4cWSTjVo z4zLImK5MYO5JTMuo^1w;LJ0NOa2548kiFet`yq;Y07g+?fWjRHI|wn@wJ4GqejkbQGey4b}pqsK=qO*}(7e z80zo96E@g62%)|PS5bQ)J7Talh@zf?(Z~S11hG8^YX{F>gS`kL)R)Ywd$*+MH*kXF z8n`{rnlI}X{lR?X_)l4|lU}@HhPNxBw-o<*#s5a}cPf6mxV>0JJ-hLcO=iP5@Re&7 zx<{eMC-Bd!K5T5|x|;RLUG%Vn{`W3=v6XL7b7#;;mguMIFPOkzK7k*C)HeJ(XiMI3 zOc~EdO0?>KtN5VA|4eiPi#Vx%AvCseeS<wiJn0tMCL+4I+M=sA(BA5mCLd0iZV8z=Z( zG@CwsL=TR@{~a`T7hTxy$fXY>J9lIIA~t9qZa)~`yo8phSO?;eJDM_w?-dYBt;3f) zm$1XnrTA8d-#~tk?ZY2CQuX&7F_$UkCX9FRz~3Eogy z6R6iRz5$kXWj3#HxN@IR?C{5^mi-Q2?hsyf_;QCJMV`UKOo%cOT=1H{x delta 4390 zcmZ{o4^ULc9mn4uD4>A+@m!xx!k@$uYz-1~gLdoyP74bTrf}TOp3jT@W z9ilZxXv7~U+N71U649C#e5KM}CFMDPQ`&v{E zYE-n)B~sT!cd=4CdRiT0&%>7KUqQV*eXCg-Wf;Z#1{>yu23kFaVa(e1W7N<<8?21^ zH7kY8*oyna3{lMC*xzH!hPVX~VT4=h`F#qA~#~FUa66aJ#64u4{@m_#P zek$7})Vr7XOfBaqj3YlQbx`X2QpcoDO2r-vQoWCe5nxGlD&qmHmqMT*E!$5dn}|4< z+WUAR=qpIYDHYlStT2^bkop^;bN)gZYDA*_J04hA_>gxl&Z8*HoyvF|>n}iMVP5uH zA|*sb*W1ZkM&2r{Tj65i8qe)0$Xv1df#;$fvPe|LiAfbR5@SndK9LxUU+vI}o+vhG zXFqj(1}lemOVijq7%t^3Td27VQ&S9P+;mNKv80tmZ@Xx%q|HPP8fdO_7Dk7l!ET}j zE;>MdhA?7>%8GZ4Jo5iTegXN{$d8Ar z3T~$1*^5yWBsjLZMvp;z1!ws%j{0R7LiNkf0iovCDNAm}n5b^=J&@t&W-HNNu|r`w z;8X_gznJ@m>M_}|(~0&&v!AnfWG^Go=jZcoQRJ#rC!}JwQ{RoVKk(0vwlgX}jhfX^ zziwS^wY9NodthVWrE18j;`XCex0pS5O(`=YbScFO+>XcOXHJQMzO|ec2{lc+$wbTs zEv5oS*Ybo7M8%%qg^{&633IfV^CE`*U1;v}w9G~Ix)!sae9^)t&9@;^&4V|ztS*gy zp!pHa|A*$E(EN`yUmwLBx{XBdbG7(|jt_Y?$>x`|n0Z>v6HrydnFYhuoHamu4L5gc zkq>H-As9k>R-+GT^a_mE@RHwZG+m>ACSMHTq~?F3#q0C-IVfAl%}lz{#kexHtZZmT zTBK1ucMbF*-S48G(yDk3M%VF@0T)$k=0ozud7jpKyrcPNG=DiHujgzB6t3r02WV>% zx!>1fj!of5rtr^@FGj78>m3+g&x3!|vh+1@XNs&vxHX949???G*GCl8{O@6&nwcTT zPmvA1sexe_I>Ong)LT+N0v6!V6Nrb&K)iiD@B(As1>cJnJ86esOcP)FYm3-PxLf-w z8-%uv7V3u^ixS?}T0IAw>p1x99${}oQyn*TRx=9&v4|mEhBxaty9`(AM2iXamvDEv zTEC6`(tdIic69-&H|OA&@a7<6$8GNx^tOSo!D77-Zn(sDLV2UbnxMb&5(`4(R*N;m z20pCj&{xF77&%p$$4dpv6 z_Cx4L?Fa8Ji~R^1QP0B&>HzqfEOyWiH{l7jLH}-xy$ar-#STFu>R}i`?EzoNVn2W| zYBx-vz5(UU76a%X16T+y+?1`58MDsnI9Cht(EfCY?OxTd! zbolekJg;qfQh09@^%j|GkG^?BMhDT%Y#)(5elo9NyAP?I$uB4KX&GoHDMmr!kz!MhZ53nertF3Sqf zCB>KQrY3M8`>ScFKwGM0v(m+vmD> pGtbRV`>|6$Wh@ECdy4Rnhh?Yp;%@pe5K9c~IGu<8cJ!TI@ISm_Q(XW6 diff --git a/build/layout.o b/build/layout.o index f1dda5a054afdf4054e42ed7a8d59e934927c0ad..b04a77718bd04edbfe15a151b3b0447ac780ca00 100644 GIT binary patch delta 76 zcmeyN_d{<&rN{$j1_qDTOC@gn+cr&MVqoCkHfid_-sOx3Hk&fKF#@R?CN>~7xtaMZ dqsHV)79F6_GL}q6MwQ6|Y!QqKn={$?1p!JS8Iu42 delta 76 zcmeyN_d{<&rAPoX1A|BFr4l#(ZJTo0-2d dN=&X~(E$oAW65M>6qzi*7Qra6Ig^cF5CGC@7J~o) diff --git a/build/main.o b/build/main.o index 261813d00e6a12ca72dd837890ed4c5182fdf6db..cbd778cc67b29a9b140f25e9fd4ad3996ec5d535 100644 GIT binary patch literal 28768 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 AJOBUy delta 9035 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 diff --git a/build/news.o b/build/news.o index a414091518c8257a526c40de2b90980e8c490911..2b187e293d702a9f2ee08a36df7cbddd51ef9432 100644 GIT binary patch delta 165 zcmX@Ggz>-<#tF~G8CVz?JUVMsI9@OSfk*4xQZtY4?jIZf)iVl!;J6cL00XMp rTOQpTK1^0&(PaEE*^fn+@x$gCmTmzi2A0j7qO+J7e{5bNKF10GT$?Y$ delta 165 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 diff --git a/build/systray.o b/build/systray.o index 8b8e820d4fd981a7e835d7cb3bdd66caa764130e..6c30bb1a0226269fd4e1e689fa9bed6044a59d98 100644 GIT binary patch delta 321 zcmbPnl4-_CrU~id3@i)`9-TER94{Dvz@znTshLN2_m7EnS9w5E3?+6R-5ne(lj9j} z7(Yy&!>9`+Pcc?80fpR{{FxY7CQoOQ<=_CBlI*}SIi5*$^F^ivX5|me3=9w>o8NGF zbQ`-G9`NX91=(SE(x>yeNB4velS9}nfu{AbnFGmVYz{z@om~S+8n7Dx$wYQjAUU1= zBgm324pks$0|!ug^G%KE@%{<&YxD*}$tvv3c62S=a2$11X(!jvr z(>+ar3CQo>ma+MXs6Gp(svMvykM1srs!17}jitFggt zmUMBb0y!HvfYO_9awIVVIW}A%wW(ao7&A8WaPQz!2mo4n+(jjV5#$jd!=t2ufx)MH zngkP&-@Pqi^Ak~h7EDz+Kvf>yT@Y215;hx4nej3@OwLlj1SD-WrZGBfzM`>}8R&}5 P-8vFXK--q+eJKS1{z6?< diff --git a/build/util.o b/build/util.o index 5f6514e27609d104a65eac2950c6958956c77adc..36c03a107c5f12e223e5e1d8c455224ffc492b20 100644 GIT binary patch delta 31 jcmew`oAJYJ#tl{cOdKqeYxwtrC|iMWAhmg#K$I;2uObP6 delta 31 jcmew`oAJYJ#tl{cOcl(NYxwtrC|iMWAhmg#K$I;2!CMN= diff --git a/build/workspace.o b/build/workspace.o index 3a772aeec82ed138e6721aac1a2a77c7293e2bca..b69a31af79e81703501c435c6f22d2cb8fae6712 100644 GIT binary patch literal 14328 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 literal 13376 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 diff --git a/include/client.h b/include/client.h index 6fa1a81..6e79f02 100644 --- a/include/client.h +++ b/include/client.h @@ -35,11 +35,14 @@ void client_update_title(Client *client); void client_update_class(Client *client); void client_set_fullscreen(Client *client, bool fullscreen); void client_toggle_fullscreen(Client *client); +void client_set_maximize(Client *client, bool maximized); +void client_toggle_maximize(Client *client); void client_set_floating(Client *client, bool floating); void client_toggle_floating(Client *client); bool client_is_floating(Client *client); bool client_is_fullscreen(Client *client); +bool client_is_maximized(Client *client); bool client_is_minimized(Client *client); bool client_is_dialog(Window window); bool client_is_dock(Window window); diff --git a/include/config.h b/include/config.h index b7d4ba6..2ae34a5 100644 --- a/include/config.h +++ b/include/config.h @@ -31,6 +31,7 @@ struct Config { char launcher[128]; char file_manager[128]; FocusMode focus_mode; + int focus_follow_delay_ms; bool show_decorations; int border_width; @@ -58,6 +59,10 @@ struct Config { bool autostart_enabled; bool autostart_xdg; char autostart_path[512]; + + int demo_step_delay_ms; + int demo_ai_timeout_ms; + int demo_window_timeout_ms; }; Config *config_create(void); diff --git a/include/demo.h b/include/demo.h index d2de378..faa5557 100644 --- a/include/demo.h +++ b/include/demo.h @@ -23,6 +23,14 @@ typedef enum { DEMO_COMPLETE } DemoPhase; +typedef enum { + DEMO_WAIT_NONE, + DEMO_WAIT_TIME, + DEMO_WAIT_WINDOW_SPAWN, + DEMO_WAIT_AI_RESPONSE, + DEMO_WAIT_EXA_RESPONSE +} DemoWaitCondition; + void demo_init(void); void demo_cleanup(void); void demo_start(void); diff --git a/include/dwn.h b/include/dwn.h index acddbda..df7983e 100644 --- a/include/dwn.h +++ b/include/dwn.h @@ -58,7 +58,8 @@ typedef enum { CLIENT_FULLSCREEN = (1 << 1), CLIENT_URGENT = (1 << 2), CLIENT_MINIMIZED = (1 << 3), - CLIENT_STICKY = (1 << 4) + CLIENT_STICKY = (1 << 4), + CLIENT_MAXIMIZED = (1 << 5) } ClientFlags; typedef struct Client Client; @@ -81,6 +82,8 @@ struct Client { char class[64]; Client *next; Client *prev; + Client *mru_next; + Client *mru_prev; }; struct Monitor { @@ -93,6 +96,8 @@ struct Monitor { struct Workspace { Client *clients; Client *focused; + Client *mru_head; + Client *mru_tail; LayoutType layout; float master_ratio; int master_count; @@ -142,6 +147,9 @@ typedef struct { int drag_orig_x, drag_orig_y; int drag_orig_w, drag_orig_h; bool resizing; + + Client *pending_focus_client; + long pending_focus_time; } DWNState; extern DWNState *dwn; diff --git a/include/workspace.h b/include/workspace.h index 8960908..80f8cd4 100644 --- a/include/workspace.h +++ b/include/workspace.h @@ -50,4 +50,8 @@ void workspace_focus_next(void); void workspace_focus_prev(void); void workspace_focus_master(void); +void workspace_mru_push(int workspace, Client *client); +void workspace_mru_remove(int workspace, Client *client); +Client *workspace_mru_get_previous(int workspace, Client *current); + #endif diff --git a/site/configuration.html b/site/configuration.html index 58daee2..b19b4f0 100644 --- a/site/configuration.html +++ b/site/configuration.html @@ -93,6 +93,11 @@ click click or follow (sloppy focus) + + focus_follow_delay + 100 + Delay in ms before focus switches in follow mode (0-1000) + decorations true @@ -109,7 +114,8 @@ terminal = alacritty launcher = rofi -show run file_manager = nautilus -focus_mode = click +focus_mode = follow +focus_follow_delay = 100 decorations = true

[appearance] - Visual Settings

@@ -432,6 +438,42 @@ path = ~/.config/dwn/autostart.d

  • ~/.config/autostart/ - User XDG autostart entries
  • ~/.config/dwn/autostart.d/ - DWN-specific symlinks and scripts
  • +

    [demo] - Demo Mode

    +

    + Configure demo mode timing. The demo showcases DWN features including live AI and search functionality. +

    +
    + + + + + + + + + + + + + + + + + + + + + +
    OptionDescription
    step_delayTime between demo steps in milliseconds (1000-30000, default: 4000)
    ai_timeoutTimeout for AI/Exa API responses in milliseconds (5000-60000, default: 15000)
    window_timeoutTimeout for window spawn operations in milliseconds (1000-30000, default: 5000)
    +
    +
    + Example + +
    +
    [demo]
    +step_delay = 4000
    +ai_timeout = 15000
    +window_timeout = 5000

    Complete Configuration Example

    ~/.config/dwn/config @@ -444,6 +486,7 @@ terminal = alacritty launcher = rofi -show drun file_manager = thunar focus_mode = click +focus_follow_delay = 100 decorations = true [appearance] border_width = 2 @@ -478,7 +521,11 @@ model = google/gemini-2.0-flash-exp:free [autostart] enabled = true xdg_autostart = true -path = ~/.config/dwn/autostart.d +path = ~/.config/dwn/autostart.d +[demo] +step_delay = 4000 +ai_timeout = 15000 +window_timeout = 5000
    diff --git a/src/client.c b/src/client.c index eeba94d..fde5c0d 100644 --- a/src/client.c +++ b/src/client.c @@ -11,6 +11,7 @@ #include "workspace.h" #include "decorations.h" #include "notifications.h" +#include "layout.h" #include #include @@ -43,6 +44,8 @@ Client *client_create(Window window) client->workspace = dwn->current_workspace; client->next = NULL; client->prev = NULL; + client->mru_next = NULL; + client->mru_prev = NULL; XWindowAttributes wa; int orig_width = 640, orig_height = 480; @@ -242,6 +245,9 @@ void client_unmanage(Client *client) LOG_DEBUG("Unmanaging window: %lu", client->window); + client_sync_log("client_unmanage: remove from MRU"); + workspace_mru_remove(client->workspace, client); + client_sync_log("client_unmanage: remove from workspace"); workspace_remove_client(client->workspace, client); @@ -258,14 +264,22 @@ void client_unmanage(Client *client) client_destroy(client); client_sync_log("client_unmanage: focus next"); + XGrabServer(dwn->display); + Workspace *ws = workspace_get_current(); if (ws != NULL && ws->focused == NULL) { - Client *next = workspace_get_first_client(dwn->current_workspace); + Client *next = workspace_mru_get_previous(dwn->current_workspace, NULL); if (next != NULL) { client_focus(next); + } else { + XSetInputFocus(dwn->display, dwn->root, RevertToPointerRoot, CurrentTime); + atoms_set_active_window(None); } } + XUngrabServer(dwn->display); + XSync(dwn->display, False); + client_sync_log("client_unmanage: DONE"); } @@ -336,6 +350,7 @@ void client_focus(Client *client) if (ws != NULL) { ws->focused = client; + workspace_mru_push(client->workspace, client); } client_sync_log("client_focus: raising"); @@ -672,6 +687,80 @@ void client_toggle_floating(Client *client) client_set_floating(client, !(client->flags & CLIENT_FLOATING)); } +bool client_is_maximized(Client *client) +{ + return client != NULL && (client->flags & CLIENT_MAXIMIZED); +} + +void client_set_maximize(Client *client, bool maximized) +{ + if (client == NULL || dwn == NULL || dwn->display == NULL) { + return; + } + + if (client->window == None) { + return; + } + + XWindowAttributes wa; + if (!XGetWindowAttributes(dwn->display, client->window, &wa)) { + LOG_WARN("client_set_maximize: window %lu no longer exists", client->window); + return; + } + + if (maximized) { + if (!(client->flags & CLIENT_MAXIMIZED)) { + client->old_x = client->x; + client->old_y = client->y; + client->old_width = client->width; + client->old_height = client->height; + } + + client->flags |= CLIENT_MAXIMIZED; + client->flags |= CLIENT_FLOATING; + + atoms_update_wm_state(client->window, ewmh.NET_WM_STATE_MAXIMIZED_VERT, true); + atoms_update_wm_state(client->window, ewmh.NET_WM_STATE_MAXIMIZED_HORZ, true); + + int area_x, area_y, area_width, area_height; + layout_get_usable_area(&area_x, &area_y, &area_width, &area_height); + + int gap = config_get_gap(); + int title_height = config_get_title_height(); + int border = client->border_width; + + client->x = area_x + gap + border; + client->y = area_y + gap + title_height + border; + client->width = area_width - 2 * gap - 2 * border; + client->height = area_height - 2 * gap - title_height - 2 * border; + + client_configure(client); + decorations_render(client, true); + client_raise(client); + } else { + client->flags &= ~CLIENT_MAXIMIZED; + + atoms_update_wm_state(client->window, ewmh.NET_WM_STATE_MAXIMIZED_VERT, false); + atoms_update_wm_state(client->window, ewmh.NET_WM_STATE_MAXIMIZED_HORZ, false); + + client->x = client->old_x; + client->y = client->old_y; + client->width = client->old_width; + client->height = client->old_height; + + client_configure(client); + decorations_render(client, true); + } +} + +void client_toggle_maximize(Client *client) +{ + if (client == NULL) { + return; + } + client_set_maximize(client, !(client->flags & CLIENT_MAXIMIZED)); +} + bool client_is_floating(Client *client) { diff --git a/src/config.c b/src/config.c index 22cedb4..71b46a6 100644 --- a/src/config.c +++ b/src/config.c @@ -53,6 +53,7 @@ void config_set_defaults(Config *cfg) strncpy(cfg->launcher, "dmenu_run", sizeof(cfg->launcher) - 1); strncpy(cfg->file_manager, "thunar", sizeof(cfg->file_manager) - 1); cfg->focus_mode = FOCUS_CLICK; + cfg->focus_follow_delay_ms = 100; cfg->show_decorations = true; cfg->border_width = DEFAULT_BORDER_WIDTH; @@ -83,6 +84,10 @@ void config_set_defaults(Config *cfg) strncpy(cfg->autostart_path, autostart_path, sizeof(cfg->autostart_path) - 1); dwn_free(autostart_path); } + + cfg->demo_step_delay_ms = 4000; + cfg->demo_ai_timeout_ms = 15000; + cfg->demo_window_timeout_ms = 5000; } @@ -110,6 +115,9 @@ static void handle_config_entry(const char *section, const char *key, } else { cfg->focus_mode = FOCUS_CLICK; } + } else if (strcmp(key, "focus_follow_delay") == 0) { + int val = atoi(value); + cfg->focus_follow_delay_ms = (val >= 0 && val <= 1000) ? val : 100; } else if (strcmp(key, "decorations") == 0) { cfg->show_decorations = (strcmp(value, "true") == 0 || strcmp(value, "1") == 0); } @@ -172,6 +180,17 @@ static void handle_config_entry(const char *section, const char *key, dwn_free(expanded); } } + } else if (strcmp(section, "demo") == 0) { + if (strcmp(key, "step_delay") == 0) { + int val = atoi(value); + cfg->demo_step_delay_ms = (val >= 1000 && val <= 30000) ? val : 4000; + } else if (strcmp(key, "ai_timeout") == 0) { + int val = atoi(value); + cfg->demo_ai_timeout_ms = (val >= 5000 && val <= 60000) ? val : 15000; + } else if (strcmp(key, "window_timeout") == 0) { + int val = atoi(value); + cfg->demo_window_timeout_ms = (val >= 1000 && val <= 30000) ? val : 5000; + } } } diff --git a/src/demo.c b/src/demo.c index ff54213..d881ddd 100644 --- a/src/demo.c +++ b/src/demo.c @@ -19,8 +19,6 @@ #include -#define DEMO_STEP_DELAY 3000 - typedef struct { bool active; DemoPhase phase; @@ -30,6 +28,18 @@ typedef struct { uint32_t current_notification; Window demo_window; int demo_workspace_start; + LayoutType original_layout; + + DemoWaitCondition wait_condition; + long wait_timeout; + long wait_started; + + AIRequest *pending_ai_request; + ExaRequest *pending_exa_request; + bool ai_demo_completed; + bool exa_demo_completed; + char ai_response_buffer[1024]; + char exa_response_buffer[1024]; } DemoState; static DemoState demo = {0}; @@ -42,6 +52,239 @@ static void demo_notify(const char *title, const char *body, int timeout) demo.current_notification = notification_show("DWN Demo", title, body, NULL, timeout); } +static int demo_get_step_delay(void) +{ + if (dwn != NULL && dwn->config != NULL) { + return dwn->config->demo_step_delay_ms; + } + return 4000; +} + +static int demo_get_ai_timeout(void) +{ + if (dwn != NULL && dwn->config != NULL) { + return dwn->config->demo_ai_timeout_ms; + } + return 15000; +} + +static void demo_wait_for(DemoWaitCondition condition, int timeout_ms) +{ + demo.wait_condition = condition; + demo.wait_timeout = timeout_ms; + demo.wait_started = get_time_ms(); +} + +static bool demo_check_wait_complete(void) +{ + if (demo.wait_condition == DEMO_WAIT_NONE) { + return true; + } + + long elapsed = get_time_ms() - demo.wait_started; + + switch (demo.wait_condition) { + case DEMO_WAIT_NONE: + return true; + + case DEMO_WAIT_TIME: + if (elapsed >= demo.wait_timeout) { + demo.wait_condition = DEMO_WAIT_NONE; + return true; + } + return false; + + case DEMO_WAIT_WINDOW_SPAWN: + if (demo.demo_window != None) { + Client *c = client_find_by_window(demo.demo_window); + if (c != NULL) { + demo.wait_condition = DEMO_WAIT_NONE; + return true; + } + } + if (elapsed >= demo.wait_timeout) { + demo.wait_condition = DEMO_WAIT_NONE; + return true; + } + return false; + + case DEMO_WAIT_AI_RESPONSE: + if (demo.ai_demo_completed) { + demo.wait_condition = DEMO_WAIT_NONE; + return true; + } + if (elapsed >= demo.wait_timeout) { + demo_notify("AI Timeout", "AI request timed out. Continuing demo...", 2000); + demo.wait_condition = DEMO_WAIT_NONE; + if (demo.pending_ai_request != NULL) { + ai_cancel_request(demo.pending_ai_request); + demo.pending_ai_request = NULL; + } + return true; + } + return false; + + case DEMO_WAIT_EXA_RESPONSE: + if (demo.exa_demo_completed) { + demo.wait_condition = DEMO_WAIT_NONE; + return true; + } + if (elapsed >= demo.wait_timeout) { + demo_notify("Search Timeout", "Exa search timed out. Continuing demo...", 2000); + demo.wait_condition = DEMO_WAIT_NONE; + demo.pending_exa_request = NULL; + return true; + } + return false; + } + + return true; +} + +static void demo_ai_callback(AIRequest *req) +{ + if (req == NULL || !demo.active) { + return; + } + + demo.pending_ai_request = NULL; + demo.ai_demo_completed = true; + + if (req->state == AI_STATE_COMPLETED && req->response != NULL) { + size_t resp_len = strlen(req->response); + snprintf(demo.ai_response_buffer, sizeof(demo.ai_response_buffer), + "%s", req->response); + + char display_buf[512]; + snprintf(display_buf, sizeof(display_buf), + "AI Response:\n\n%.400s%s", + demo.ai_response_buffer, + resp_len > 400 ? "..." : ""); + demo_notify("AI Query Complete", display_buf, 6000); + } else { + snprintf(demo.ai_response_buffer, sizeof(demo.ai_response_buffer), + "Error: Failed to get response"); + demo_notify("AI Error", "Failed to get AI response", 3000); + } +} + +static void demo_exa_callback(ExaRequest *req) +{ + if (req == NULL || !demo.active) { + return; + } + + demo.pending_exa_request = NULL; + demo.exa_demo_completed = true; + + if (req->state == AI_STATE_COMPLETED && req->result_count > 0) { + char results_buf[800]; + size_t offset = 0; + + offset += snprintf(results_buf + offset, sizeof(results_buf) - offset, + "Found %d results:\n\n", req->result_count); + + for (int i = 0; i < req->result_count && i < 3; i++) { + offset += snprintf(results_buf + offset, sizeof(results_buf) - offset, + "%d. %s\n", i + 1, req->results[i].title); + if (offset >= sizeof(results_buf) - 50) break; + } + + if (req->result_count > 3) { + snprintf(results_buf + offset, sizeof(results_buf) - offset, + "\n... and %d more", req->result_count - 3); + } + + snprintf(demo.exa_response_buffer, sizeof(demo.exa_response_buffer), + "%s", results_buf); + demo_notify("Exa Search Complete", results_buf, 6000); + } else { + snprintf(demo.exa_response_buffer, sizeof(demo.exa_response_buffer), + "No results found"); + demo_notify("Exa Search", "No results found for query", 3000); + } +} + +static void demo_execute_snap_left(void) +{ + Workspace *ws = workspace_get_current(); + if (ws != NULL && ws->focused != NULL) { + key_snap_left(); + demo_notify("Snap Left", "Window snapped to left half (50% width)", 2000); + } +} + +static void demo_execute_snap_right(void) +{ + Workspace *ws = workspace_get_current(); + if (ws != NULL && ws->focused != NULL) { + key_snap_right(); + demo_notify("Snap Right", "Window snapped to right half (50% width)", 2000); + } +} + +static void demo_execute_ai_query(void) +{ + if (!ai_is_available()) { + demo.ai_demo_completed = true; + demo_notify("AI Unavailable", + "AI is not configured.\n\n" + "Set OPENROUTER_API_KEY to enable.", 3000); + return; + } + + demo.ai_demo_completed = false; + demo.ai_response_buffer[0] = '\0'; + + ai_update_context(); + + Workspace *ws = workspace_get_current(); + char prompt[512]; + + if (ws != NULL && ws->focused != NULL) { + snprintf(prompt, sizeof(prompt), + "Describe what I'm working on based on this context: " + "Current window: %s, Window class: %s. " + "Keep the response brief (2-3 sentences).", + ws->focused->title, ws->focused->class); + } else { + snprintf(prompt, sizeof(prompt), + "I'm using a Linux window manager called DWN. " + "Describe what a typical desktop workspace looks like. " + "Keep the response brief (2-3 sentences)."); + } + + demo_notify("AI Query", "Asking AI: \"Describe my current workspace\"\n\nWaiting for response...", 0); + demo.pending_ai_request = ai_send_request(prompt, demo_ai_callback); + + if (demo.pending_ai_request == NULL) { + demo.ai_demo_completed = true; + demo_notify("AI Error", "Failed to send AI request", 3000); + } +} + +static void demo_execute_exa_search(void) +{ + if (!exa_is_available()) { + demo.exa_demo_completed = true; + demo_notify("Exa Unavailable", + "Exa search is not configured.\n\n" + "Set EXA_API_KEY to enable semantic search.", 3000); + return; + } + + demo.exa_demo_completed = false; + demo.exa_response_buffer[0] = '\0'; + + demo_notify("Exa Search", "Searching: \"What does molodetz mean?\"\n\nWaiting for results...", 0); + demo.pending_exa_request = exa_search("What does molodetz mean?", demo_exa_callback); + + if (demo.pending_exa_request == NULL) { + demo.exa_demo_completed = true; + demo_notify("Exa Error", "Failed to send search request", 3000); + } +} + static void demo_next_phase(void) { demo.phase++; @@ -56,13 +299,12 @@ static void demo_next_step(void) demo.step_start_time = get_time_ms(); } -static long time_in_step(void) -{ - return get_time_ms() - demo.step_start_time; -} - static void demo_phase_intro(void) { + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo_notify("Welcome to DWN", @@ -74,12 +316,11 @@ static void demo_phase_intro(void) "- System tray and notifications\n\n" "This demo will showcase all features.\n" "Press Super+Shift+D to stop at any time.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay() + 2000); demo_next_step(); break; case 1: - if (time_in_step() > 5000) { - demo_next_phase(); - } + demo_next_phase(); break; } } @@ -89,6 +330,10 @@ static void demo_phase_window_mgmt(void) Client *c; Workspace *ws; + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo_notify("Window Management", @@ -99,65 +344,65 @@ static void demo_phase_window_mgmt(void) "- Alt+F11: Fullscreen\n" "- Alt+Tab: Cycle windows\n\n" "Let's open a terminal...", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); demo_next_step(); break; case 1: - if (time_in_step() > 3000) { - spawn_async("xterm -title 'Demo Terminal' -e 'echo DWN Demo Terminal; sleep 30' &"); - demo_next_step(); - } + spawn_async("xterm -title 'Demo Terminal' -e 'echo DWN Demo Terminal; sleep 60' &"); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); break; case 2: - if (time_in_step() > 2000) { - demo_notify("Window Created", - "A terminal window was spawned.\n\n" - "Windows can be moved by dragging the title bar\n" - "or resized by dragging edges.\n\n" - "Let's try minimizing...", 0); - demo_next_step(); - } + demo_notify("Window Created", + "A terminal window was spawned.\n\n" + "Windows can be moved by dragging the title bar\n" + "or resized by dragging edges.\n\n" + "Let's try minimizing...", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 3: - if (time_in_step() > 3000) { - ws = workspace_get_current(); - if (ws != NULL && ws->focused != NULL) { - demo.demo_window = ws->focused->window; - client_minimize(ws->focused); - demo_notify("Window Minimized", - "The window is now minimized.\n\n" - "Look at the taskbar - minimized windows\n" - "appear in [brackets] with a gray background.\n\n" - "Click it or press Alt+F9 to restore.", 0); - } - demo_next_step(); + ws = workspace_get_current(); + if (ws != NULL && ws->focused != NULL) { + demo.demo_window = ws->focused->window; + client_minimize(ws->focused); + demo_notify("Window Minimized", + "The window is now minimized.\n\n" + "Look at the taskbar - minimized windows\n" + "appear in [brackets] with a gray background.\n\n" + "Click it or press Alt+F9 to restore.", 0); } + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 4: - if (time_in_step() > 4000) { - c = client_find_by_window(demo.demo_window); - if (c != NULL) { - client_restore(c); - demo_notify("Window Restored", - "The window is restored from the taskbar.\n\n" - "This is how minimize/restore works in DWN.", 0); - } - demo_next_step(); + c = client_find_by_window(demo.demo_window); + if (c != NULL) { + client_restore(c); + demo_notify("Window Restored", + "The window is restored from the taskbar.\n\n" + "This is how minimize/restore works in DWN.", 0); } + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 5: - if (time_in_step() > 3000) { - c = client_find_by_window(demo.demo_window); - if (c != NULL) { - client_close(c); - } - demo_next_phase(); + c = client_find_by_window(demo.demo_window); + if (c != NULL) { + client_close(c); } + demo.demo_window = None; + demo_next_phase(); break; } } static void demo_phase_workspaces(void) { + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo.demo_workspace_start = dwn->current_workspace; @@ -167,45 +412,40 @@ static void demo_phase_workspaces(void) "- Shift+F1-F9: Move window to workspace\n" "- Ctrl+Alt+Left/Right: Navigate\n\n" "Watch the workspace indicators in the panel...", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); demo_next_step(); break; case 1: - if (time_in_step() > 3000) { - workspace_switch(1); - demo_notify("Workspace 2", "Switched to workspace 2", 1500); - demo_next_step(); - } + workspace_switch(1); + demo_notify("Workspace 2", "Switched to workspace 2", 1500); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); break; case 2: - if (time_in_step() > 2000) { - workspace_switch(2); - demo_notify("Workspace 3", "Switched to workspace 3", 1500); - demo_next_step(); - } + workspace_switch(2); + demo_notify("Workspace 3", "Switched to workspace 3", 1500); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); break; case 3: - if (time_in_step() > 2000) { - workspace_switch(3); - demo_notify("Workspace 4", "Switched to workspace 4", 1500); - demo_next_step(); - } + workspace_switch(3); + demo_notify("Workspace 4", "Switched to workspace 4", 1500); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); break; case 4: - if (time_in_step() > 2000) { - workspace_switch(demo.demo_workspace_start); - demo_notify("Workspaces Complete", - "Returned to the original workspace.\n\n" - "Each workspace maintains its own:\n" - "- Window layout and positions\n" - "- Focused window\n" - "- Layout mode (tiling/floating/monocle)", 0); - demo_next_step(); - } + workspace_switch(demo.demo_workspace_start); + demo_notify("Workspaces Complete", + "Returned to the original workspace.\n\n" + "Each workspace maintains its own:\n" + "- Window layout and positions\n" + "- Focused window\n" + "- Layout mode (tiling/floating/monocle)", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 5: - if (time_in_step() > 4000) { - demo_next_phase(); - } + demo_next_phase(); break; } } @@ -214,6 +454,10 @@ static void demo_phase_layouts(void) { Workspace *ws = workspace_get_current(); + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo_notify("Layout Modes", @@ -222,162 +466,268 @@ static void demo_phase_layouts(void) "2. Floating: Free positioning like traditional WMs\n" "3. Monocle: One window fullscreen at a time\n\n" "Press Super+Space to cycle layouts.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); demo_next_step(); break; case 1: - if (time_in_step() > 4000) { - if (ws != NULL) { - ws->layout = LAYOUT_TILING; - workspace_arrange_current(); - } - demo_notify("Tiling Layout", - "In tiling mode, windows are automatically\n" - "arranged in a main + stack pattern.\n\n" - "- Super+H/L: Resize main area\n" - "- Super+I/D: Add/remove from main\n\n" - "No overlapping windows - efficient use of space.", 0); - demo_next_step(); + if (ws != NULL) { + ws->layout = LAYOUT_TILING; + workspace_arrange_current(); } + demo_notify("Tiling Layout", + "In tiling mode, windows are automatically\n" + "arranged in a main + stack pattern.\n\n" + "- Super+H/L: Resize main area\n" + "- Super+I/D: Add/remove from main\n\n" + "No overlapping windows - efficient use of space.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 2: - if (time_in_step() > 4000) { - if (ws != NULL) { - ws->layout = LAYOUT_FLOATING; - workspace_arrange_current(); - } - demo_notify("Floating Layout", - "In floating mode, windows can be freely\n" - "positioned and resized anywhere.\n\n" - "This is the traditional desktop behavior\n" - "familiar from Windows and macOS.", 0); - demo_next_step(); + if (ws != NULL) { + ws->layout = LAYOUT_FLOATING; + workspace_arrange_current(); } + demo_notify("Floating Layout", + "In floating mode, windows can be freely\n" + "positioned and resized anywhere.\n\n" + "This is the traditional desktop behavior\n" + "familiar from Windows and macOS.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 3: - if (time_in_step() > 4000) { - if (ws != NULL) { - ws->layout = LAYOUT_MONOCLE; - workspace_arrange_current(); - } - demo_notify("Monocle Layout", - "In monocle mode, each window takes\n" - "the full screen.\n\n" - "Use Alt+Tab to switch between windows.\n" - "Great for focused, single-task work.", 0); - demo_next_step(); + if (ws != NULL) { + ws->layout = LAYOUT_MONOCLE; + workspace_arrange_current(); } + demo_notify("Monocle Layout", + "In monocle mode, each window takes\n" + "the full screen.\n\n" + "Use Alt+Tab to switch between windows.\n" + "Great for focused, single-task work.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 4: - if (time_in_step() > 4000) { - if (ws != NULL) { - ws->layout = LAYOUT_TILING; - workspace_arrange_current(); - } - demo_next_phase(); + if (ws != NULL) { + ws->layout = demo.original_layout; + workspace_arrange_current(); } + demo_next_phase(); break; } } static void demo_phase_snapping(void) { + Workspace *ws; + + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: + ws = workspace_get_current(); + if (ws == NULL || ws->focused == NULL) { + demo_notify("Window Snapping", + "Snapping requires a window to demonstrate.\n\n" + "Spawning a demo terminal...", 0); + spawn_async("xterm -title 'Snap Demo' -e 'sleep 60' &"); + demo_wait_for(DEMO_WAIT_TIME, 2000); + } + demo_next_step(); + break; + case 1: demo_notify("Window Snapping", "Quickly arrange windows with snapping:\n\n" "- Super+Left: Snap to left half (50%)\n" "- Super+Right: Snap to right half (50%)\n\n" - "Perfect for side-by-side comparisons\n" - "or working with multiple documents.", 0); + "Watch the focused window snap to the left...", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); demo_next_step(); break; - case 1: - if (time_in_step() > 4000) { - demo_next_phase(); - } + case 2: + demo_execute_snap_left(); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); + break; + case 3: + demo_notify("Snap Right", + "Now snapping the window to the right half...", 0); + demo_wait_for(DEMO_WAIT_TIME, 1500); + demo_next_step(); + break; + case 4: + demo_execute_snap_right(); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); + break; + case 5: + demo_notify("Snapping Complete", + "Window snapping allows quick side-by-side layouts.\n\n" + "Perfect for comparing documents, coding with\n" + "documentation open, or multitasking.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); + break; + case 6: + demo_next_phase(); break; } } static void demo_phase_panels(void) { + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo_notify("Panel System", - "DWN has two panels with rich functionality:\n\n" + "DWN has two configurable panels:\n\n" "TOP PANEL (left to right):\n" "- Workspace indicators (click to switch)\n" - "- Layout mode indicator\n" - "- Taskbar (click to focus/restore)\n" + "- Layout mode indicator (T/F/M)\n" + "- Taskbar with window titles\n" "- AI status indicator\n" - "- System tray icons\n\n" - "BOTTOM PANEL:\n" - "- Clock with date\n" - "- News ticker", 0); + "- System tray icons", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay() + 1000); demo_next_step(); break; case 1: - if (time_in_step() > 5000) { - demo_notify("System Tray", - "The system tray shows:\n\n" - "- Battery level (color-coded)\n" - "- WiFi status (click for network list)\n" - "- Volume (scroll to adjust, click to mute)\n" - "- External app icons (Telegram, etc.)\n\n" - "DWN implements the XEmbed protocol for\n" - "full compatibility with tray applications.", 0); - demo_next_step(); - } + demo_notify("Taskbar Features", + "The taskbar shows all windows on the workspace:\n\n" + "- Click a window title to focus it\n" + "- Minimized windows shown in [brackets]\n" + "- Focused window is highlighted\n" + "- Right-click for window menu", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); break; case 2: - if (time_in_step() > 5000) { - demo_next_phase(); - } + demo_notify("System Tray", + "The system tray supports XEmbed protocol:\n\n" + "- Battery indicator (color-coded by level)\n" + "- WiFi status (click for network list)\n" + "- Volume control (scroll to adjust)\n" + "- External app icons (Telegram, nm-applet, etc.)\n\n" + "Applications can dock their status icons here.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay() + 1000); + demo_next_step(); + break; + case 3: + demo_notify("Bottom Panel", + "BOTTOM PANEL contains:\n\n" + "- Clock with current time and date\n" + "- News ticker with scrolling headlines\n\n" + "Headlines are color-coded by sentiment:\n" + " Green = Positive news\n" + " Red = Negative news\n" + " White = Neutral", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); + break; + case 4: + demo_next_phase(); break; } } static void demo_phase_ai(void) { + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: - if (dwn->ai_enabled) { - demo_notify("AI Integration", - "DWN includes AI-powered features:\n\n" - "COMMAND PALETTE (Super+Shift+A):\n" - "- Ask AI to launch apps: 'open firefox'\n" - "- Get answers: 'what time is it'\n" - "- Execute commands naturally\n\n" - "CONTEXT ANALYSIS (Super+A):\n" - "- See what you're working on\n" - "- Get AI suggestions based on context\n\n" - "EXA SEARCH (Super+Shift+E):\n" - "- Semantic web search\n" - "- Find relevant content by meaning", 0); - } else { - demo_notify("AI Integration", - "DWN includes AI-powered features:\n\n" - "AI is currently DISABLED.\n" - "To enable, set these environment variables:\n\n" - "OPENROUTER_API_KEY=sk-or-v1-your-key\n" - "EXA_API_KEY=your-exa-key\n\n" - "Then restart DWN to enable:\n" - "- AI Command Palette (Super+Shift+A)\n" - "- Context Analysis (Super+A)\n" - "- Exa Semantic Search (Super+Shift+E)", 0); - } + demo_notify("AI Integration", + "DWN includes AI-powered features:\n\n" + "COMMAND PALETTE (Super+Shift+A):\n" + "- Ask AI to launch apps: 'open firefox'\n" + "- Get answers: 'what time is it'\n" + "- Execute commands naturally\n\n" + "CONTEXT ANALYSIS (Super+A):\n" + "- See what you're working on\n" + "- Get AI suggestions based on context", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay() + 1000); demo_next_step(); break; case 1: - if (time_in_step() > 6000) { - demo_next_phase(); + demo_notify("Live AI Demo", + "Let's try a live AI query...\n\n" + "Asking: \"Describe my current workspace\"", 0); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); + break; + case 2: + demo_execute_ai_query(); + if (ai_is_available()) { + demo_wait_for(DEMO_WAIT_AI_RESPONSE, demo_get_ai_timeout()); + } else { + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); } + demo_next_step(); + break; + case 3: + demo_notify("Exa Semantic Search", + "DWN also includes Exa semantic search:\n\n" + "EXA SEARCH (Super+Shift+E):\n" + "- Search the web by meaning, not just keywords\n" + "- Find relevant documentation and articles\n" + "- Results open in your default browser", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); + break; + case 4: + demo_notify("Live Exa Demo", + "Let's try a live Exa search...\n\n" + "Searching: \"What does molodetz mean?\"", 0); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); + break; + case 5: + demo_execute_exa_search(); + if (exa_is_available()) { + demo_wait_for(DEMO_WAIT_EXA_RESPONSE, demo_get_ai_timeout()); + } else { + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + } + demo_next_step(); + break; + case 6: + if (ai_is_available() || exa_is_available()) { + demo_notify("AI Features Complete", + "AI integration provides intelligent assistance\n" + "directly within your window manager.\n\n" + "No need to switch to a browser or separate app\n" + "to get quick answers or find information.", 0); + } else { + demo_notify("AI Features", + "To enable AI features, configure API keys:\n\n" + "OPENROUTER_API_KEY=sk-or-v1-your-key\n" + "EXA_API_KEY=your-exa-key\n\n" + "Add to ~/.config/dwn/config or set as\n" + "environment variables, then restart DWN.", 0); + } + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); + demo_next_step(); + break; + case 7: + demo_next_phase(); break; } } static void demo_phase_news(void) { + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo_notify("News Ticker", @@ -391,39 +741,39 @@ static void demo_phase_news(void) "- Super+Down: Next article\n" "- Super+Up: Previous article\n" "- Super+Return: Open in browser", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay()); demo_next_step(); break; case 1: - if (time_in_step() > 3000) { - news_next_article(); - demo_notify("News Navigation", "Moved to next article", 1500); - demo_next_step(); - } + news_next_article(); + demo_notify("News Navigation", "Moved to next article", 1500); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); break; case 2: - if (time_in_step() > 2000) { - news_next_article(); - demo_notify("News Navigation", "Moved to next article", 1500); - demo_next_step(); - } + news_next_article(); + demo_notify("News Navigation", "Moved to next article", 1500); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); break; case 3: - if (time_in_step() > 2000) { - news_prev_article(); - demo_notify("News Navigation", "Moved to previous article", 1500); - demo_next_step(); - } + news_prev_article(); + demo_notify("News Navigation", "Moved to previous article", 1500); + demo_wait_for(DEMO_WAIT_TIME, 2000); + demo_next_step(); break; case 4: - if (time_in_step() > 2000) { - demo_next_phase(); - } + demo_next_phase(); break; } } static void demo_phase_shortcuts(void) { + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo_notify("Quick Reference", @@ -443,18 +793,21 @@ static void demo_phase_shortcuts(void) "Super+Left Snap left\n" "Super+Right Snap right\n\n" "Press Super+S anytime to see all shortcuts.", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay() * 2); demo_next_step(); break; case 1: - if (time_in_step() > 8000) { - demo_next_phase(); - } + demo_next_phase(); break; } } static void demo_phase_complete(void) { + if (!demo_check_wait_complete()) { + return; + } + switch (demo.step) { case 0: demo_notify("Demo Complete", @@ -467,15 +820,14 @@ static void demo_phase_complete(void) "Edit ~/.config/dwn/config to customize\n" "colors, fonts, keybindings, and more.\n\n" "Enjoy using DWN!", 0); + demo_wait_for(DEMO_WAIT_TIME, demo_get_step_delay() + 2000); demo_next_step(); break; case 1: - if (time_in_step() > 6000) { - notification_close(demo.current_notification); - demo.current_notification = 0; - demo.active = false; - demo.phase = DEMO_IDLE; - } + notification_close(demo.current_notification); + demo.current_notification = 0; + demo.active = false; + demo.phase = DEMO_IDLE; break; } } @@ -508,12 +860,28 @@ void demo_start(void) return; } + memset(&demo, 0, sizeof(demo)); + demo.active = true; demo.phase = DEMO_INTRO; demo.step = 0; demo.phase_start_time = get_time_ms(); demo.step_start_time = demo.phase_start_time; demo.demo_workspace_start = dwn->current_workspace; + demo.demo_window = None; + + Workspace *ws = workspace_get_current(); + if (ws != NULL) { + demo.original_layout = ws->layout; + } + + demo.wait_condition = DEMO_WAIT_NONE; + demo.pending_ai_request = NULL; + demo.pending_exa_request = NULL; + demo.ai_demo_completed = false; + demo.exa_demo_completed = false; + demo.ai_response_buffer[0] = '\0'; + demo.exa_response_buffer[0] = '\0'; } void demo_stop(void) @@ -522,16 +890,30 @@ void demo_stop(void) return; } + if (demo.pending_ai_request != NULL) { + ai_cancel_request(demo.pending_ai_request); + demo.pending_ai_request = NULL; + } + + demo.pending_exa_request = NULL; + if (demo.current_notification > 0) { notification_close(demo.current_notification); demo.current_notification = 0; } + Workspace *ws = workspace_get_current(); + if (ws != NULL && demo.original_layout != ws->layout) { + ws->layout = demo.original_layout; + workspace_arrange_current(); + } + demo_notify("Demo Stopped", "Demo mode has been stopped.", 2000); demo.active = false; demo.phase = DEMO_IDLE; demo.step = 0; + demo.wait_condition = DEMO_WAIT_NONE; } void demo_update(void) diff --git a/src/keys.c b/src/keys.c index c6acd77..6fcd568 100644 --- a/src/keys.c +++ b/src/keys.c @@ -608,7 +608,7 @@ void key_toggle_maximize(void) { Workspace *ws = workspace_get_current(); if (ws != NULL && ws->focused != NULL) { - client_toggle_fullscreen(ws->focused); + client_toggle_maximize(ws->focused); } } diff --git a/src/main.c b/src/main.c index 49448a1..6d1ad0a 100644 --- a/src/main.c +++ b/src/main.c @@ -369,7 +369,29 @@ static void handle_enter_notify(XCrossingEvent *ev) } if (c != NULL && c->workspace == (unsigned int)dwn->current_workspace) { - client_focus(c); + int delay = dwn->config->focus_follow_delay_ms; + if (delay <= 0) { + client_focus(c); + } else { + dwn->pending_focus_client = c; + dwn->pending_focus_time = get_time_ms() + delay; + } + } +} + +static void handle_leave_notify(XCrossingEvent *ev) +{ + if (ev == NULL || dwn == NULL) { + return; + } + + Client *c = client_find_by_frame(ev->window); + if (c == NULL) { + c = client_find_by_window(ev->window); + } + + if (c != NULL && dwn->pending_focus_client == c) { + dwn->pending_focus_client = NULL; } } @@ -568,6 +590,17 @@ static void handle_client_message(XClientMessageEvent *ev) client_set_fullscreen(c, set); } } + + if (prop1 == ewmh.NET_WM_STATE_MAXIMIZED_VERT || + prop1 == ewmh.NET_WM_STATE_MAXIMIZED_HORZ || + prop2 == ewmh.NET_WM_STATE_MAXIMIZED_VERT || + prop2 == ewmh.NET_WM_STATE_MAXIMIZED_HORZ) { + if (toggle) { + client_toggle_maximize(c); + } else { + client_set_maximize(c, set); + } + } } } else if (ev->message_type == ewmh.NET_CURRENT_DESKTOP) { int desktop = ev->data.l[0]; @@ -635,6 +668,9 @@ void dwn_handle_event(XEvent *ev) case EnterNotify: handle_enter_notify(&ev->xcrossing); break; + case LeaveNotify: + handle_leave_notify(&ev->xcrossing); + break; case ButtonPress: handle_button_press(&ev->xbutton); break; @@ -840,6 +876,19 @@ void dwn_run(void) notifications_update(); + if (dwn->pending_focus_client != NULL) { + long now_focus = get_time_ms(); + if (now_focus >= dwn->pending_focus_time) { + Workspace *ws = workspace_get_current(); + if (ws != NULL && ws->focused != dwn->pending_focus_client) { + if (dwn->pending_focus_client->workspace == (unsigned int)dwn->current_workspace) { + client_focus(dwn->pending_focus_client); + } + } + dwn->pending_focus_client = NULL; + } + } + long now = get_time_ms(); if (now - last_news_update >= 16) { diff --git a/src/panel.c b/src/panel.c index f59c9a7..281ca7e 100644 --- a/src/panel.c +++ b/src/panel.c @@ -391,12 +391,11 @@ void panel_render_taskbar(Panel *panel, int x, int *width) XFillRectangle(dpy, panel->buffer, dwn->gc, current_x, 2, item_width - 2, panel->height - 4); - char title[64]; + char title[260]; if (minimized) { snprintf(title, sizeof(title), "[%s]", c->title); } else { - strncpy(title, c->title, sizeof(title) - 1); - title[sizeof(title) - 1] = '\0'; + snprintf(title, sizeof(title), "%s", c->title); } int max_text_width = item_width - 8; diff --git a/src/workspace.c b/src/workspace.c index ac2aa70..67fcee9 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -29,6 +29,8 @@ void workspace_init(void) ws->clients = NULL; ws->focused = NULL; + ws->mru_head = NULL; + ws->mru_tail = NULL; ws->layout = (dwn->config != NULL) ? dwn->config->default_layout : LAYOUT_TILING; ws->master_ratio = (dwn->config != NULL) ? @@ -444,3 +446,75 @@ void workspace_focus_master(void) client_focus(master); } } + + +void workspace_mru_push(int workspace, Client *client) +{ + if (client == NULL || workspace < 0 || workspace >= MAX_WORKSPACES) { + return; + } + + Workspace *ws = workspace_get(workspace); + if (ws == NULL) { + return; + } + + workspace_mru_remove(workspace, client); + + client->mru_next = ws->mru_head; + client->mru_prev = NULL; + + if (ws->mru_head != NULL) { + ws->mru_head->mru_prev = client; + } + ws->mru_head = client; + + if (ws->mru_tail == NULL) { + ws->mru_tail = client; + } +} + +void workspace_mru_remove(int workspace, Client *client) +{ + if (client == NULL || workspace < 0 || workspace >= MAX_WORKSPACES) { + return; + } + + Workspace *ws = workspace_get(workspace); + if (ws == NULL) { + return; + } + + if (client->mru_prev != NULL) { + client->mru_prev->mru_next = client->mru_next; + } else if (ws->mru_head == client) { + ws->mru_head = client->mru_next; + } + + if (client->mru_next != NULL) { + client->mru_next->mru_prev = client->mru_prev; + } else if (ws->mru_tail == client) { + ws->mru_tail = client->mru_prev; + } + + client->mru_next = NULL; + client->mru_prev = NULL; +} + +Client *workspace_mru_get_previous(int workspace, Client *current) +{ + Workspace *ws = workspace_get(workspace); + if (ws == NULL) { + return NULL; + } + + Client *candidate = ws->mru_head; + while (candidate != NULL) { + if (candidate != current && !client_is_minimized(candidate)) { + return candidate; + } + candidate = candidate->mru_next; + } + + return NULL; +}