From dad864b66509a076b65c9a949ca1f32006a1aa1c Mon Sep 17 00:00:00 2001 From: Artem Sheremet Date: Sat, 9 Nov 2013 20:45:59 +0300 Subject: [PATCH] Add ejabberd_stats_ plugin and it's image * connected users * in/out s2s --- .../ejabberd/ejabberd_stats_/ejabberd_stats_ | 84 ++++++++++++++++++ .../ejabberd_stats_s2s-day.png | Bin 0 -> 35165 bytes 2 files changed, 84 insertions(+) create mode 100755 plugins/ejabberd/ejabberd_stats_/ejabberd_stats_ create mode 100644 plugins/ejabberd/ejabberd_stats_/ejabberd_stats_s2s-day.png diff --git a/plugins/ejabberd/ejabberd_stats_/ejabberd_stats_ b/plugins/ejabberd/ejabberd_stats_/ejabberd_stats_ new file mode 100755 index 00000000..48a98831 --- /dev/null +++ b/plugins/ejabberd/ejabberd_stats_/ejabberd_stats_ @@ -0,0 +1,84 @@ +#!/usr/bin/env bash + +# ejabberd_stats_ revision 1 (Nov 2013) +# +# Tested with ejabberd 2.1.x +# +# This plugin is capable to show: +# - ejabberd connected users +# - in/out s2s connections +# +# Required permissions: +# - run ejabberdctl +# +# OS: *NIX +# +# Author: Artem Sheremet +# +# Configuration: +# - set env.ejabberdctl to ejabberdctl path + +#%# family=auto +#%# capabilities=autoconf suggest + +EJABBERDCTL=${ejabberdctl:-$(which ejabberdctl)} +SCRIPT_NAME=$(basename $0) +STATS_TYPE="${SCRIPT_NAME/ejabberd_stats_/}" + +function ejabberd_stats_connected_users() { + local ejabberdctl_cmd=connected_users_number + if [ "$1" = "config" ]; then + cat <64_3W9=wv;q>+AYCfm-Q5k+xj{rhq&qi=bc1wvcXxMgIyUt$Jm)+2 zzu*1t|NNe3KW;aNcfaqNbB;O2m}~jTNC`iEg7*Xg0pY2rh=3dd!o36VB71}cKH+P8 zvTbGGW@vd3x?1HVn~58c;mD10Eo zG)Yd~X}}b2z|<+Rc6IY|EheNhHkZt6{o1v6n{3^^->z=muCM3FJxOtNXo%$Xvqul^ zd+9VSGLE6$y?g)aB_0VT&YuszkTBVR51u_Dr~D5eY3c8NzWd>W`^bWVf^=ub1_l)~ z^dvTohN~CrNyK9Z-K)Ou8KMGCFRA8k55$FpkZ^HvC6ahGZ?qqW`l0v)o_}~IA<*JR z{jy+U*AWj7PbN!2g$A3Ohv%{sE4D&s!eXLOH&?U50(I5bGnd)_XubdFblUo8$)EnW zNSZ)`l$jHdAU%wuk(@(WL{6d}J zjg0E4jK1*QHbGX>&W^d-arYzmzVc~NDXBGNzVmzFkFD#) z#RUPkb4XvGlu>_T@2t~&V085O=OFZ!=rr+Y+x>+P66BZ#wWoNj@qxFO^|vX7h0g+o zn!h|mc>z0{skGaftBp@jC;#&0i%N;fbGDgJ-UPiI<%pH*H+`EhJbpo{T45p=fwH61 zQ=`tXH#Jv>-H4oLa#hvU7stcW93EHfj@3{>f9y_IwLB%q-6=s`-PZ`?T5hyXGd9R( zrD|gfd(|*3MYWQJ&16*j|)b|&i;~^nAocR+EFTrcX!BfG+Qw>HFaTi6)e{xNbih_ zii+sop)~Qwj~=~x_3AU%UWGR%g%s-f`FnSpMA%A;ALe0QL&N*MieZ*hL4}2db(a7mV`D?3 zqpL%#G&H&6^LcrBh`hYdwCODQ&CJcWBaNJ$E5zraR~y27cZIn#U5*Y4;a}1vqG&;GZU7;d<9;*oO-M&a$Loussi~;~k9_;O5=3ZHQqonqT3(w~ zIr@1;wQ<2pJeSY*r3jz2%ncEZTFLj>YA0s5Q;XBRS#c$$D2)@o5Vvi=>N6*Xaf|>| zP&Ftxbf}q5RUIu4tsbMIu7HT!PdDCQ09CKQIh2-~k+HnI%&)ABQx6|4aGiX|#)kR) z`Rm(RW-~`8cZNE45V4K$bc}<8gR2z^z7Jt!eMx-%eNe8;nPwfB3;Xy>5qdMHO)PBe zu<-EaV9zW4rKKgG9dR9S+J;Jp2g>=kaOVs(}J6?MVKM-NtEjmMkA z7nk$5ea1-;Aw$DApk}q}@0NbHw%)rkO6R(=)6MYs0N($JVuak5g*0Z1AhhW$lf;?tte&d%h#yuh+DR$Du}%Dt*>B=@^V zxqIiDb^%s^a>^RuBq$jGFrj2w$}Owg+v58A%Rl!fM>)jCUp^7rgj}pf-+>l@rBrDo zUKQ=NK4^EoW;Fv|puN5Q@sKSjU5I@mkK1YCUJk`xVr`gpe&Pq|e?pU~@D`g^t;Guw zS*6C=rXVOedTH<4>Ffq=P3_C#@(z@Um{?jy=Go@vrhuT}i8+0uPXjFo6&XE!aQVCk zKEN>nfd~FL^p2+0?iaSa7b}=*YHE+3JXr$i8s&DyDJmghaJ1HI@94;6K1O3zdop&9 zm^gr53cOR|g>R5*K~5Awp|j1qGq3kSx5s%&Nxk{5H>GVA#*5|W04|^JT6>BsD@PN^ zR#qD;uTyI3Q&Ofyhle9Jq)W!TLXWn!Z}F_HVIMAjJ0Ivd!sdGMt!uoy?sCxFjYS?s{TK$SeD zXsFx=gQdG4Jqy6kRibuqaER$OYGCC1AR!@9uYV*+PIt!>8rjn`Gesn--~RbWq|e3# z`ClJ@$fBsC79jU{Ufe26wU~i>BO(6hVyF+5N7wYe$Kvl`Yy<{LA>t)Takq#(x%(ao z1c7$ehJh_X@thQHObip!cLS_#M33(n%tB%gFGjgT4nrw~+B>V)|9!nx4R-9du2Nxj@}Eh;E-%A-H8vI`1`BWm+1oE3(XHcmeh8-C^OdIX7h4yR;Rfe6I~1)-6U zk{%o%w+s)5cXWu*V2jtEV!p-HF4B7_D=V8hY9=Qy51R%s%sggw@oj-s-O7`ab-p^4pz|4pWrM*k7xtv2jKSU9tz4o)BKb95RNC_Aa#!U`p@*ZvX z8#Ey}<{)kS+SL+F#M1?ks^a$MQdC?#{Oop>-t#pLO+c$ZPO;~$M_hco%SN&3UAv-lEcVs_GUN$7up;0_$as(?SG&&gm3*uF}Z(Y z3gu76+(k8)^zLqPLeB*S$nL80OEQyOXvL^mT7EuS@g(Z!q@+7Os4NtJzN%LfdEBNh zs<^>i_FsvIyDg%TrxYF%(okYL9K&jf_xSPSYomo%BsRFu{ZQ_-L}q|NdnPF;kQoZgt?IEM(>ok8-a2h_@lc-Nb>uI{@%uhkrQe) zAYXGTEF>h9B<=ZK``UW*J^m~iA_#NeH zn4c&1^z`KBo@t-Ne2d}K7kzVe)PFYR2|qT~a@%F`IPllr*SVyQ5*;E}KrR^r&U$zYQe?3anV9U&n{Q!Z7(n4P0(_XLgK#A$Cm+5wLh|-PCUze% zjQeLvHdzkFVN0HfOXai7yE#pL=O+ z|7j@#qFHUErKRs9BKrOKvBieyOHGDZzndU@Bkr* zMU{(_6P{qs_R?g&>?x>rbq`(yS)6Ey-3`o&OT}&H^zRCfDE~;jnl~WqLVYYdho+QN zcI9s2%CkFNrpx0N)!mCF3$4>_M!Ms&m7F|mY|-FLgG$ZEf18cI1$Sd=X=w-=_npL{ z8{Scc=Ko#JeE;uq?o@foSWUuo0I(nynaKHlU(20N7|YiL9Ow|Isi|p&^Q~c zJp~t++g-dZ>6Y_)MgDt@&|5Ac8h#X7O7Z&Ma@R5$6k6UIEr0)C3o=&+i3B71dFUTV z@%dqbNh};t9yaGpo%ICLHm3CtSm_h`Rez+ytKVX_$r=42mBC*yju<337akstTuOPR zvx|sL^K$frJuN&6-D!_tI78aW)N@ohqgt<~v@)QamGs}xXSxLfftXrYq*hnQgVe>t#~(C#cRl6* ze;0a|$c$O3oU*d-qyq{5OM-SLZ{|1Rt)WW4<5eD$$k?P zlZB&xzIC8Xc!@pEU-$D~?i4}^-$n~9ZI9(G*In+Bvam$n0omS6C#V^fYDd}}r96zk zvRo)~Fo8?+ad~LPpa~fRLkQ5%ck~KKjNR`4u8pBU$o*KMoBIeIbLGZMm!263Y^z+Q2FiuRz{pqG+<8v#vv*x z+1lQY43!!$sGXLWF)C)XoO;L2o!=AZ^bhjLC@Bfq+A)$_|sOd=w* z&sqf;wY8dwUryv^jF$4-jJ!?$axxn_D>S8NMkjWtX%Xuq4#w7)=B5I^^6H!a!vtfC ztT5|;jbjo^{=92Y8WnO{BuN|9+967TvGo zn4a5t2ggEG#UfOFKHU zX2Avd`D*~!YEM`HO;R}hZ)}90jQ1tDrghx~xv8nCEt$v0z-!=Bw1-Rcx~LM^x2A3T zspl!pxgSXacGEVNr@pEW3R-`)D^ic=Pqz$so5JA)FC;kt?G*tk)lOYd(*#~0fj0q+ zxrOgs90ULhnDgsz;Jo_xdX1QYFZx-3t12ichiA;>p@kbc^ z{{mCxj6}!WCIFcn<$^ty0xtIKInbZGvlVmx4&C!+qiC613$~##3zzwdT`2E!XQ01b zOQX5Uv$C=X{(k@kaWJEABL=B7ZuJa>$Oo_{4?lsj_#-JH3>$OyVqcEOXSOenN6|5y~rW#cxOAiBdppu+<;)#=*853*KV)i8>m672WaMJKZl4OZ81wHX^ZGPD{cwjSbGf1Tw(H9XgARevQuOJmqsPq=-|f+lu7*4%Y5)zj zTIlT9F5_mU-fAyA3QsMO(Syw3n6p}cxW*$$TQP506lc@b=!mlNeHjgn0I7_Wy1K;0 zu+Y#CYHE0Rfk>eC0l@oU`)ON#|0~fEUt67cfX8-ml_fdr4SXm>cZXlVU%0xy1}2<9 z#&Bpz$Y-Gx8&g=BqhOEJ^ zR#B^fZM`fsi;0k-{2N%5|AI|~a5 zVIb)XQf}iHwf-NsXpG)2zvko|*4U_I&sgMBW*T~Ucc;Y0!e<%}J%5_I8X|^Px8fRS}h}0LpH;mIs zBDNj4F6rv(UL9xftpeX?6-1BkqTKVcoUywh$@9kLVmLgULi)GqFu4b?1P_55AtNVu z|8u8-UUw8NXptzu5_%Zk`R?a-fP<)Y#bz+YC1=XF*n7K&8qJ7{W<$o5|D^=M!$kK6 zl}97j%_XKVNx2vPsms2XK%v79W?>%Dg@p`K3G9u)wQTFAukQhf_xR~k!-J*Po%woV z@5TWbQ#J_(F=2uo>aE>LV2?PS`(pnT?c#OC_mzkD8_yRsAoxyJ7jYTbZ)~&MTB48( z?zP#FY01hqwguv=*1EDFa5?V$EG+yakU&TUjH?e|oB?PcP|P*8gqTCo5fKc)iytv# z0h6O>QhTR=p2*Cb6r+F@l@^05=_7k}%+nN9uOsQpv9#r0jk zN^^T7i|xwVW0<&2ydP|)G8}mF{8|NjvCp3o z5I_Qhtk|#%n$`IUnP%NV@~-J{8)@CULe#t~o{3!`f1Q69u-b*>x;k>vMg8o zf-th5Mm@Hvk8Zv(bM^Gm11)Oqj-u@yZ{D%YptkDYa;8n!&oBp$&{r zvb6qwk5guVbfT`ugTiURJj^O9Q*vGMqj=GeyBj)lIW54kQh0DCBLC+T7#Afj~bHr1Gyoq55| zb*p$S{0Jj>O@!E8lZ)g=O;*p`BR$ToevD{uKl4)nW@ai=wv>z80X*22eDq{pp zAFVYZpb-HoZF^GLX|Mzu&}$wZ$V6IT=n80QR|mnKD?o?o_9bu}-hjBG5psSVHCr7> z<_9wqRLa^$8g;f8myI-t>=DQ9;kA7_pf%5#w8RYbS>l;S$jt)vIlWc{Q0?Hd8(cNUfGFqp|~L8*GvfR%B&FM2vFmZYVo z1&7QBwFo{eSK$+9DP6?IIxU(RdzHlNjx1^DU{mUQVj?rO0Ht}ifcjQ5;S&|Qlk`3t z<*=j-;9k5vJ>_-Qfl9dI1+dIZv41_O3=^^ZOoF-=;-ZD1F5{1jCPEd0ZC&V zv!vsfoS&jSxP{0{Daf$1&|>R-foM!w&MZ4;Nsq-;=$dt8&RVO=b0vGtI+Kf>3n~}8 zc;eb+d<}WAC@dI`JJd9(D%0-C_vtAY%GP;vv?BLqate;oY$;R$pGM-z!B6s^eoOwN z2U1dFF)MD9B{jE;IL!y1HB^71wdLCu`~h-i%B9 z`Z*+0n-y-ZR2y9CwvhK0u~yqMC3az-HL8@hnE(=Tk`x&hiQPByh_CB}aAF6eTAHQM z-tk2@v%d3bGl>$N)Y2JMp2bW`+LX@gcN1+9A+M%-6745)ZKoba3Pou!`?2xTr&N^K zH`JlG-5!|HlTiKZX^8#21)02+DWGFT)`5=kexQrqDJb9eQTZd@u{X7i=}Gbv2o2ix z*}6g!ue6ejM)0{VCt|CsR4XUseum`-+f*M;)ojy-`k(D?4)tqv6}0l z&N%+aRp(`7^{AtzyZ&4AiQyp&L9FwOqDDOTW(sQfFs6CAK$lOkt$fq_7?aSZPyc15 zR}8ls6zM9Ldrf^bj(%bqaAZ@?aRg>Q?4K48lyXL)n_pZ0UlykKZ+cGcrXEFDF>6Ll zY|dQ9+{onidEXb#d=y4twvYCpu`;)IcYKTM;@u>mV=m+#_0BE%gaMJLxeR`LO2E-N zl;!xuU(9t9CxN%WNzym=`9R+yllSx`4;}Mc=f_s3#EQdB0CDSmVrcLduNvt+HP)#HYB^&-Lxe<9t7?c%R@zU`HxRkdtFH z9{mlh@2be6DpSS-JN}Aq^2Ywix$DW8f}mb0>KA%4dFBsJZvxnEzws{f6PuT}^!S&4 z!tA^)^6(@RCCTlUsBz*R{}#&-llKA#CuMl^g)%-q?aZlEy?xPh3T3rOxbq(L=Ax1u zyWZx(XO72>25H~AcN+j9lhf{6PJ5GewRGF}dpVRNhSP!|$6|38tJpQ|C`WVso{F6? z#$5aTh1uW^b(Y}Zpz%LlH0YXrhXbn$8@)4EaNRLlNm5u%;_Y>3DP+j)T$;k= zj98JTa{ZmZ(dGUr9Ts!5{>7&PVtV6@BD(UJpz^x@;2Y;JtFc8i{Q zKEOLd$M0c3$`|TmD`B*hn#&1rZdKGCUSN3(<^~PfV$oei)YT5(?V$8I_d8G{XTt|@d>y^`Conq(| z^(wGa4=3yqo68wTU^>1-!#QvVZL3<_*&#>iU%~)J2Uj9kC3c<8sfqzK?ln#a|4Qpk%+fV zk|nIwi+>M^*iQyoIUyOIu!V0+i0WRHst$Th=*GSU&fT`bJA3KD(xK78Vs)<}R3 zZAn6yH7VT8YgQx}IXjR|%~`>h94hrLJ4c4DTZtQut-L}QO1Tg0o#Zi-#+gyt49njW z>{^BfT5^=eG{!N+3`w+s>I~DpscGplu8Y$WR|bK8u|*#QkS`eMsUocH)3tV&s`j2K z1h00*R)f9I)Y#&CKlW79nH>;|s*)Niql?!?Au z2}$y?&76%v%h!RC4e_NBR)vRebHkSXF^RK3jL+T*Jc^c6nC@~il3sTnZD2m|8#7{? z`O9C$&ES3Wbhozb`Z*@w=9RpLNi$VR(Z$0m0CGVU+CIToi6Q!+k%+FeTE{G%AB9$Go%lCe&b2*E_!QV?|v5-vkrWX3p zp~k}+sUM=y;sfmYSi{{M90_t(7cU-L%xMc17U0}of7YL! zCJ}#r<}>F{$d!|=EK8Kp>{kCUUbCs2U+_bkY|z)n(8YXs;djI0l#A(QyVdJFY<&DP z6Oh@OWui$%3A#Qo)Ufcd$^j3r?EGx&VF~p0@uVmn^h|G76_uKh)9oonhxqRY^|9RI zM1=L~5({jlEt&c;IKxj9)^2Opl+4l;`c(QDhMmZ5lJV*o(Q@g%d+Cxb-`RDaupQMd z2Q{_x-!9b|UkdoY@QMF338P#dx$9)}NgP?qv{lEV=oKO zBS#QAVZ#Jx_4lM%yjd!>e7Hvv?jN5rZWoXPPrJyl8(YhH@nM<8waeX zhMVyt4}RcPP>d+zX7&NkbI52c>9hkWp_a<_b>=oT>f z@Ai?*RylwvNLYM)PQ^SSsVvh7Yn-V6p|NeIPaHPNMXM|8Y)1C|-ZeVe_YQ$0#c|HM|McROf?d_H28txAdtJ zekKm@z;C}$1!PI0&lYTYn$Y8dHwh`k)v zzwgRIdt5W`MMBd1XZng+sB>@D(QgYI#Xmz>W>|02>34>!JOu~VTcQeGrd2rFMRk$8 z`GHpQNJY*rvQP@!qjAFgy>BRl6j`t z-hzrCN_p>hGTxEsAJS*{f+(jeH-s$;)B9=6L4?pESus;=BPfs5k3^3}4Kj2y#QAIk zIA~B*+en5lsFj1{MSdd_Baqz(axS6KQSD7j-#~yz)CrfVptukv9czdvB|NGv1sk=*7WFDp6burt7h~TriaR@yYQyjH!G83;js!L zf-8A(?SLLKIyrRr>j6$}Z06=k)z105;>B~*w{|R>Kqyuijb8o;JxD7d%(@~?9by# zqT8YK5Pjc3$upylxBz!DtJeAM!PjgJ=y+3+=1fBI)L=i(qy_n_2FAX@`S~QU|D^Sr zr|4g!rk}KY#GfglDLAD^o=(%0P&EJ1K21JXZ;%g`7Z(w%W#MUj;`W8;a7Yp}hk*BW zl6DyOYX3L?ScmasZ-X>n`J)Ru+g#6&@bzfhD$uq(F1PtYfk=Jq5H#6Wg?1G#X%oNC zrSLUtdZa!0_cd`Lw><|N>-o>!k*Z^-3|)%gq}t^18_&uGQGad5>=a+h%y+i+D;w`l z`H1Ce$t-0RS3`O6rddV(#HJGEBVX z-s8q?x0CJnnw0|Kb4m;#9i}gqh93yyv72*rYkCFm?pm@8m0hjTiKh zUOqC^=R9(F zYa3W2L_6iP&pXKBypESYuPftr3dkYHyPB!*#(sYq*2O!6@cuk1oX#>WDx6uPJf|y% zE=yQagEhSqQNT31**C;;y54vS(01846cD}h=WeGj0e_=mi4FlOaLk}RAUJy2!_v|3 zaE3<%pZM##YMwaPY{sSY=4Dn1@3RI=W)eR-PM==7!1K#+RZW4A;5gtheR1azp`vQ} zXDnE`12!9qVD27mqy(SBZ#OfNqU<@LcU}&#kTzqD6J=*$TPb-K(FqYzQDWZ7B_#@+ zYE~i6?}XJZ8gWI#$Tr>Tc}RA7M_<)mb-HZAmFpww&ZbGj$V7+wZ(YTvDp&clYKO@m za$m%b%$bHOZ7GRaKxACEmQ!rwsQK7QGfv9oJ;TrO{0c&+s;AQo)4Ef~x3#0s@j6YI z#lTfu(z!2gM}?Kd>rKxk>4^hbQxbfR5)yBaVHN6XH+_6*NjKKX$H(($VkmvIA;Y=b z+1vW_#15JcauaO2wSAQ%b@@3`Lj>a@fn!3Vb{eD(lhv+-);yoyo58HWw`8SMr+6;D z5f$T%BqOBcd<7n8mv5S~cYZ%utNo~tO_V#1)WP0Cyxi(qLhN?KW;1WuT9hyEJc~>; z?09ItPZa$&OJ<0>NZkxpA_}Y(k+Yi{bI~w@{?Ed8sZM-6Z=d=M4asfRl8)ZlYM1@2 zXdNC5B}D8DCZ74^m(-$3bZ*gCwN9;@c;Uyj$~WY+moWVyH{opL2#;+q#371rCqwl& zYs_GEh$dpG^Db6u40Z~|?n!%)gDs}h+vT|+9&fG9qA@&*w5!g}w8ii40W6z?kpIdB ztWqwzmsjs>npm;d$n@~&GBxS;B;vU3_PRN(_v-2G#tB6HywxMCCQFm?`cx{uC4~dr zWyjg#-nHnhLy-NlmuEP5&b2)^l`2R6d=S!@RbL>3z-Eg%$eHFJqaB#-ckjVQs#&O` zDws0fxp`me;QuU>BZFX{X#_8UfNf!ziQx^c=0L1Ua zVex4H{h%$I;@KX6&MRrF&sT5-B=k_zptU#;ZInvIV=+D?ey9z41KKH8`Y#3RC7@9n zHjvWc5^ty({3B(lCnpMJt*n)?G6y7wPI7wNd;+i7ui6E2QZ7fC)d+hv>MJd*CVIeM znTlIl?O;1bNDiEZs7w4X?ILv$dpq+5K8#%ufj{VIjnfm z*g1D=?J|F~TPOZVDyLx9L*$Sj|52F}PmBE4`FakOmx@>;qir0YUi#OIQ&lJ3cgI<*D&J8?!BPj8F=zJM_>W3` zNDFOkW3R;hWL7~B2tw;I6rvkOaFg$^y6SOVg@Vb~dU{&I0pl;K0ST?fIB*;_d;@ZC_tsI@rt2Vm>CLr6uL)SoYr|uWw}WOt|amNQsKb zk9`XGlI>5b&>#tJmae1$dF@WiLJBS^CP1v2oAk4+Y-$96g(UI#=nZFwZ}YCN>Reqy zZUfB)T--bQ{=VzX_RhPVl~0$tYsfv(mU?)4l%>agElzljzq##Q>d)|r_j(`aMPhQ2 z&L*p+yGlP?sLWiSNS|*bj=O329byQwKmfGyo!K|YTUtcw~_GCFg_*$br~*My5Ls~6`YRE zpy3hq?NuqaKH}WtOoWm^qtgUagT07nM3q!tKWukDQ&b^P($N~8W%+3B+KPQ=oewP~ zMu8-3Pglpe>11vK3*cs#w*72p`A31q6l4CgIKtEng_%(~y0=2*Xhn92X1a z_h2@ntgKvYGDrd@)CVUghJ(KZ!43`$utQ=%d)oceCkAQmg9qE=1?vax#1!o8DmL|8 zGxbOcsuQAhlgo#uC2j%ys4H?2YKu)E~T}9C(f;6=W|^Bu>|}$dle7 z{}UTD)@3%|)DRgwi69JU*`S1gGX;>XTyahzi9>F4hp+ly0d6ZyLbPZ%yuM>HH%QH# z0OgEd>eH+AR&`KjamjPBU4w0TWcYB3jRQMU){>rdu$?j3wS+T{*!MQZI48-_B{PM= z#=I@h!eW9lDM`QQ^#pT_gTr=*c=tBex3i3lVQuBua~+bb7fCNlLe=`z`(2|_{gaA2PLz;F*XRC#|CG>z!BKTEC;fKVBzw3$C@1bDJn3oK!D!1o-C?DGK z{88*+d5wnU01uDEmb!#lHD2PQyNtB}?hG+<7nhQX^8Hnb&p5;kd6WH=u;m*(j9{}p z8HE=Tgrk7x=fAt+_F;aRvwoX>(ne0}aDt;bm6|W1zL^Ks4EVcgGK(uqCmNuE-|!pLAx(#rZeCO*C!hdVy=Oe89>d}ll%xicwO7B-9&X7T6I zD6&1@&lXbv7D?E;dr7$wApHDj7i0LkI|duKi)A!}Lt(0?CROH1&qD*aArmP{9Ck_y z#l;0&sqS#9m7t!ZX80J*E^fWzn6!iWyD%y7Dm2~6)zBx~49gH|NJFK0zad32_&38R z-6XT)#54SL%;s)-Pf1|BU_r5L$lPBFCs0v*KsC7aJ<1UyNKZzx^_*+}?4dRpRP?_`17fn9&n(_$ps_ zLp5c=z{Lo4Rno{Md)nnW_S@sG*otDuHQ-=1{nAVKxm;S`?R3fz?pjv5Ov&KwBj!sx znH40G ziBpq%Avq&Zn0mjNm9gXpFc$y@P8OS^-eH!3>;j2ct}&MHkJICM)$Qn&Z~;|gT&mE! zkPn-c9&+Oz$v43X8JB1*UPMP#anFT|dB?I%Y3rydQhI3yLY}mNdBB$xe9^&FhIVVT zhimsSnjsvjmP?&^mxOiNOTKo;{WYlrT4#ff`>$B5M_~37O7Q~U%TriMSYJJ=Z>Zz< zrl+uC{$DnWtnOP%WU@Jg{a(!NCYD{_M_Km{Mj4f{ER-oYXriw0Gh8em#`C!Ux#NNG zT4DJ%A_7`A!RRFOb;iMh^{>@M?e^aG&f{(aC6oJ5Y!=q)7PhBPzxt?7K$l_;cFO{$ z;V0v zAy!iwsS=N=JOK?)?sZ4PWrHkfC+ znbQGV&84UM-6iQAU*OCeM>T}(U0;Q&#|RN5r4j3Bqjgmd>Z#6yQtLv zl{w~uvo*As`DTO5rZ&40N@&dn9J|TeBXuyMdv_TTvH=zOZu|(o=hfS=*3%;Yjw-@F zDuiHj+_;SmYzyiSUo^uKppe>q;{OAy^d9AKc^LL{p*U&0qb0l*ykH=IZPjZTGeZ=T z6qv4=0L$$g@%N{m4K;zS`T}bEEgr4-s7S&kF=$1E@5aLh@_mi|Fl)dm1lR&mh**$1 z(%D&}ub1o|Fp|;Gcaw25aK5;JYmIFEfKfBSjA3xFsmM`$=XUGe>%oH;3624gj&w+# zWfc*3l=)LtMhzd`Nc2{=ZCz2rNiu5`5`CJM@;96A`^PM$?i34LGz@e)^`?9%0Vt0S zQAx6>{ASGWjwtBsHwz_}^8~l?dn+2Jas7bNA{ zaSrKy8b9e^go8kwcoXubQ9Sc)LD;pQlCYh2JLD>P6TN4KEBtEA{o+c$wf&Cj#0Rhq z@@8T3&z8H6#B;{F*nD}qe!D9TKnD(p3_TY~$VmB7oK^NCAm;rcN*}67k{u2O z8K<%u6AAn{<2LkTyYm>2u$1QM`gBrltC{gy_F0k2ZuIUot_Ymt+tZ#$CKMTkUcY}c zZS5rYJYg*cb7GK+?kUWJmbv<1LUVEU`cx0g2^?eLtG6R^3rhG1rdQ0$wbHd&#maDC ztKH2qx6h3BTZ@>18EFS1V0U8KbM#$L$o>)Y{izEZBc#wewXFc`3-^Lkq@@fpIT^Xn z+3&v%x;_E}3A>M+l$I9JyFbKBXe!B{>~5hZy4XAfzvqX7_A|TY$ESi%Kg9fBoZKxM zV0u1ch(}lJp+gZLO^vCD@}7?1(MCj=xlN8MDFeMCohyvuD;6JHxdoBHRu4YY=$`M_ zSjZ@@VRZJXhDg1RVl@($FpAQ}z88y=nV+rGUZjTIuBtkL*EqQ@Pq|A+0_Lo$b;UoC zNWLh7g)#2z9d^lHs(ztR`U$S_*tZ*%M*8Fx_3rdG;EQGtjUJTPkvNjSNmHu}f7vyZ z6=dd|p(&b$T|J99kAg!nn2p3=?gh@vg6;MvCy@AcA^h^#ik!*Gw&?)N<_~#FnBa7y zvorfT{!}4cdZ~;%-qiPBdjZa^y6DjKMZ|0+4wTK&b%8u!GEVQlT;^xluy}1h@^T}n z7y}4c3q2a(DA%FhgyF{FW-gEHukNs zvQNKq!i~a_8HcY|w!uN?$zU%FUp-IBE|w7$^NMED?6yLcLzkpn$FV_J!+==CFVNG!^i4z}D+J8ZQ$xn+Fdcc$wyX`4+#7<=MZhzTef z1`i7!z4^m$>DEc@z2kYd19wc7)>Urt{Dl~wE=c*|B_PvU@@Zr6wpjUY@f*8%XU%g-IT9_@3xP^$2;?E}fx!?l-`ZXzk z{g~}db?N2xMPW0!w`oywa`It*Pseo71GduEMN^2gWN##-#Xn5NNs8GrfhzvZNAAFm z%jhK`6(i=L`0dvXFi`8Po-DyTUg%}C>1F0EuJxeKaVQ9C_@qQTU#Gg7RhgYj!JP=2 z0&AJ`)0@a`Tc|6vPra$4HJ^K<84DQ-?%wFE#3@Njb%PS))T z=oC-NWVMyC&6(JwmqmiRO-(10w-Zg)}qJ(}$=5m$1Ns;AOE76}>0Kvx zw8mg068=kcQGPfh)r3HM%U+TbCdJiAG)x2rp}V8uZnhP1(sib<*qcOt!(O=DuA0~- ztg!eAsgnv%1%)JczC1WaZq}K82emwo4q|gsI?joZ54VDI|8z`-W1F(|-;Xc~s`uWNF?6 z5jTM8ET9s)ThD)N371ROfMLWY<2||@&i3rU>8wyYu90Km-;y&%(H%Ua4b#*{o%|I~ zB!f_&)DgyQ%v6cbSDJ(r4@VUH^>JX3kdlWe!5$s_Gh|JHx;@)|> z^Au}X)64OWHJ{!csmb0ubK<3)tD;@JrDnv4dWECyor8@5rZI1zZw{^HzA6h8ywx>c zXIUqB?s;-aO`W22x>XXl6E0zsk%D(Mq-z9De*^X}MYoH;q_M}&I1?Qf)ZkHyC@jxE zQL4?;|^^8A2XGmwUz$Trm zVA{kV#RpuCk=HnnPVEEipB$m4RJvKL1NYt!9I?1NN?GXy2csRZgYA>k z)Ylb}Sg)@pSoQg8jhj_-yQw_HHFmGVm`;@46$d{`7_$}Y5wwHm-8x}O1{is%nB))X zC#%ra)N}Sa2D8XGoYL~*Y*)pk#F?z;UN5lS774SqN4c(SOE_G!xjWJN*4S`7_a#de3*D!kyp{-z=nHnWTSK_EwEMD8T&ktjnZ9E|5 zVg3odEwxx%{O;Rn-AiF7#?YQafEx}%|1hKPUJz^34-_Ttbb|FSbH(#To21Forutlb zSJCW2QTT{h-DM-9{s$st}1g&K>=66!_dVPt@@0+JXsg- zFQ&4>6datMP*kCJl5lJV3jSB0M{lStqCDx9K{X~ltxmVslP3=3kMhHr4`d2t^hWi$ z)Xd-44x5{qo!?G#9TigM@4!6qO}-i-t12iwyVr;%v-}ZNN@C;@o<4(BIAeHACw*+E zfjyZYUbKMz$6q$&nDYj|WBsU2e*I!37kXyX_)z1SszIpHe6=cGa`GG>r{a*k;s;W3 zw#5FU^Ad%5aLiJ@e0#<&+HT$r#sdx#Z8LL438LG!jDRu|NANJ)Z5qJ(D{=Cv>G zRn$N4eAu#J_3eoR@8nB^c-21qWri#Ui`}pvtBe9 zRsVNrBkz!&LHWwOtgGGWiP`w5NVfFHTxl8_37Q4-MSu3o;ZJ3Z!XA-NR1HsFZs{R) zDn7=+eNsWZj})bN4%d_p2)ob?T_$N6ZD|}8{AN&jpDX{mt(uOddJxT;d(V$_++SAq zP3y2}G2I;<^@@pO{?K1u@f|LV8Be5PeZmXR{!eRf0aewyzKbtF zLK+cC2~oPcQ$a<-LRvxzX{1}a!L3Mx2+}Ft4N4>3CEX!o59pgHd z8~0+(HRt^1`@QkJ-}gLK_KXIB3)3={J{`14v)G5^dF8N+6eA zAh*R^SxsQQy zA9H(gX|P9OjTn(wolG8XRwd`06_@r}YsKn;slB6e*Tw6qPj2k4Eq_raFy<*c|88li zC4}K=eA76iI~_2AO~RwFs`5HANJ^cyv8YK{w%dZ>^zje*iPZ8Rsvq8~#CaNR`Zb=8 zTJD5jrq5|dX|VOQr0U`8)?&5fc)0snr5_uA>uyW1xgcM4Jt^og7op$|+1Pv)_2664 z>?Ltru$AT2uuJn>_Sz9CYEI#C30=;sC(A!DUpm|2cz=|+^GTcst1ReE@h8XMhUa?p zz9_Mg7}${%FU1&rlRD$pEHE}Hjce}&PnhkUWIGmK21gr75=2FRfYUGdEvp&Kao-QE z5*Btm;3l}v>tH9gGbEk-CI5!rNPvu3nq$c6)X>0ff}B`2m6qM3E-9v`z5Dr{~KFc{aw`Rwae<&1OiRwc&1yHGk5693rs@T_dTZiLH) z&%Fv;>jUfiCmGGr(xp}o1wICEeRZ{ba=tkW3G?fwer+v`c$n&_b0Bu;QuVdcw*+9{;{cJn$lPc zj~*(`TtD@IaAFJ6!MQ|pe4}Q(cM{y9;&<+#BR5M}gb&qy*!3P&JEVHMtq3{7zuCVcy-=w%^eOWIL0lc z(L`fy)V1r!wH#o(>l~OSk;u-!H22tOqNDzP@cV+&?6$}`v4mVY6nD1~sT;2EUXM-X zf0M>@io~YhrQ)h@z&(DBcb`4Ww}5YA(=|eIiMhV{`-aB5ha$0c-_)=EDC8~}P5IS&g0q@Md)&dDNBJU0 zEN3Wp>1x6IMugSu{SDMC?w>ZPs`a0<4_Ru2pIGv7D^?#Dy-OJ3u>4dWE97J3 zPp@(#AgN12{$VbOYR|rmjzMA=k&(9y3G3EuS+PyAqn1y2RJbaIfJbQ=V|E771=^`1Op?A3KIuHqQYEGM|f&o%8pY{Ez)EKXEx#%LvFP{qLi z>ABXrQ^%O*{#ANv5)xmhy+u9PG9N8yN&O{-pWqj8mu&+#2&~SYSy>4*Xd6@iSa%Dz ze}mfBD3j4bp_|@*@YTe}VT1i&k2q49PG?>-@LXv}CDJ6uiP9%6kFMA@WRARVhno_S zu50oJA3UMh3fULCiQb{v->;S9!|U6no@u_OO_%ZQKQ7~b``tK!d!K$#e%t0Us&K+Y zc++rt;kUF=+x+Oh+4)r)%7Bk^EPVXD1sR;a`Puw1DZf)LkPTUqY2Cb2{#Z4u#68+q zIjMXf+wphQ4#p=FmpblY1+M07T&~CSi8+MF&sio|o_*<*C5~q5)!|j`QEGICQ00S( zCpAMTny|B4dR!!q+I6dN@p!){SH*hGd0gq^>hj*0wiQ)?6U~;>SG|)`oQSgpvRg_f zrAx1>tXtamoF7s3O5*gFX-fq@EV}zhXV9|&e{8ZQ#(`(nayFlYD}aA)>b&~>R77{2 zq^SB|8@s9ktjT7o`Va~45(KyI%(fM3?%=tfSD|CP(x5Hmc+9BNMCMPYGN`WGogP&% z*GE^LspMmnnXVekRmDY>DdBa=mvc`e6Sd{_qGR*9yK?e@FK({GHPONih_I-yP(+$s zWloB;hnh|_>8h%!-%1QNJA^A&`eLhN-w@{bi9Kp&`X;!ZxdP!SdES80&zpvZKuusl zpT9N1oGqKurJd^}V!+ZmBe-CB^zBTcvowx<+15wY*pGcQASx$)N`TKcTANIXNy#cS zf9%MS1NGIKABAZA$#(?7)Y`!fx5j|7jVYtc?#|A;(6UQ?!tCYk{r>orLW^6*Oonid z)a%)E7C)B^-Sc++GoD3+<^4WdbwYs~=053BjF0Z5-Q>tmc8c};G}XHwvm!}+@BFX# z&*HWucbcZx1FT4TU8La@zThG^vTNY^@rEM4kO^MBFzxN%C@Uy|AE z-Tt0UVO3LrO_pau)fq2_Va;z%7Gd)41`?BAS1G&mQ4D9Z9nSlN5jUwF zanoC8vzSUbBT?$}BLl}V{C>Qmeb0`woA=wF>aGr4yFJWE-^_WJ6>mI6;Aa;~o#Bno zc|Y;{F(!u#%+Ia4-_AM{kF1r#>M8@aHrjiUUO}I(SwyxfG{|nhO=RAE9mO^J=9|*@ zMMiB#-ATW@uIXd%BJ)^x^e;&tZ`crI-aAV?O86=AOyjF@S3miNI0b9`3#(8xx)IZF zM4Y2c@6D&@OVdiXSC?A&Yje^S=Wj`sT4em_RNR@1ZHm^tN$c1(^;wy02OZ}IlATYj z$Pf?O`~F6WP8bN4moEuSO%(P$73zT)}c(&LXt<`i<9+?41boIDYhaR(TibHlGv%mU;NvUnFee%s2rwI>XDaPg4nIseC zK=tAHKA=l-xGT%FOjRl%0opie)wsT*3?fo=6mgPS^k=&W0Y#bRDbJwc~uEuBwTE~%tG+33^Udp8?ol6pr$Q7Vr9 zx3s4l9Zz^7VGaRN8|NIlKaQi}jBPbtZga9Gc}8fktjv$U9?^o6pk5gNoTDHq;rdyrAR_~R|3Vl<) zM_0*0kw2CAJ<_OT?akT2*=;HscPbcet`E^Bk;B@nVJ0o=Os8hoY9)`w^xgCyJ8m;= zxz#*b^vprUP(BRz3pb0N+3J{ey}>d-Qtq%w<@HMX=0#1$Jm;JxheuOi^a0k6wM>`3 zDO)TTp~vedToa?%>^o8A)BfNP-pun6FFsM)Z2bM#hFXjSp7b|bG5bTFCpe~#Nv7Z& zs4L=dUgEsW-OaJr4o$Z#r|;x=RG0#h^Qg+(b(M=Et^3|3o%A%#yu`I9K~BtvcXBKD z6}!1HSoNbPN%zS8^rC0JzwOK%e_ib~$)>_1J0;wDB^{l&!K9({qsMvkdTn%1b6OOy z8d1~0I^yjgbc-vZ%DkmNN;?UjOL8F(FH-N} zIb}V3yOc!{M;<&J#+%h@X!v@79eL{Jc$VC6SL727UU{4c3Om=RtsPZ1nc%86bBWH| zR2ZCcl5+L9yZburRIMT3oKEa8AoJ4;n`YB9JYT!DRm1X35&8bTAdF2lC@vd<$PC}C zv&QnIqVuMIOplJ-jqH4Q{LoL2Oz!t=RcAVB-sJFQVk~?NdGcRk=my7!G%nAxwmFE1;j6a@-PB}$ znYqXDID-T?@AK2G@R?%W#f`JF82H&|EBPYf=fG%j+1>t3%>ga-Yo^2pEDDbehzt^5 zb$#FZ!SAHC-iCZaGQT^jSJqxzoV>hKChOrD2!h3pR+ge=)v z*0c|h50T~=!QZ8e-wHbh7DLkm50M91p@(Ftx5UX?j@H?W?@UZ+xx$uP$Gt8=6a?_i zv;pBuRgHBr0r25fd$_o`(9_YOC@Lz#uFd-G*(TACFM;!7n1ueu+lj_z)JKHg-zIo! z+D(lOY9W9U9$d8=YL*)j(yWfFPC4#)^vcTKL`uIDwKPp#?N|AIQ}$DOj@Zg}i`Jjc z^ns-(6D&FJA`N^EnZ7ez;gBGYwO;4sTYIIfQ~nO3=KTvB+%jxalq%Fbg}x@~{-+Dv zw~&!Ux3bID_0t(S#P%7>*>H&MWv=bJe$1|uIaYuci1z%_?=~jYs>$vhyF6LdMqk7% zPgYB=X|1+1a}scS^O*e%bBxwF!!RvBw`Ng<B31mUc*Om zM|Io{kglYMHeIxzk3267UhB5AH>qFnI^DzOc=bZBIGvg6gzKVw{tDIk2O<$&7R1cX ztT!z)P1upX;>Wx#%8Srfb+3>GoKU7%U_mTbgSA@ec$uBx)|_+K`pVGOwbG6_%jtJv z&Eg{()sZfKGAlGC3Ai~}O|5z!!y;3q7ts$N5v>v9AgY_BHgXpoCw^P!eAj&E^m~sh z|B~&BM3rLRZ?X>Vf(+KSjV~GrdY{2#<65J*vX@ltRm~r6TCRi-U??t+ek=d* zy)x=+(L?`)eto@L)wlBmjfVr|<>d`FCn|Kwx*UJ5j}}?aH3Q9Dv;>=40YdWPh#ojJ z{ORSxfW`zJ;R!U0KqO@VtT5ky{E!9~9sk|E-Q79&SNfDL#Y*`Eegcc8#w&P_X?Ter zR7s2PcTHP*GLXr6$yRsU$Xa&j)dz9i=D&mR9KygiKY+~XUVuyPnYR+%*CFhMl#33NTfBn4aq`?3 z6`Z8uM=`q9&k?OZT4$}t+e!>Y_Zn)CG%3vlzUazN-7(*aA{at^OOjbp_a3zm6`bBu z=#(mXk!a;_Ws%+t|Gh2DU`;GK-UO2jZ`1B*G2bG(cEf9^+Be&Q#LE7u&HDur4QjUz z0%MAonA!L;5GOB>zXm8p^YV@H&%s7#ja&D>J{cIm+A0{J3?b*mu&g^50GboD>VqLo zGI3`5 z&yoMMG<)f~ICJ^N2n|td+RJvXE<9tWHa=|A5vC>{7fT*r{yZp(=BC%ACP~3*-Rq-n z0|p6q!J8gdS7$k(F=Ah$D9e04FC}J!0Wk5o$CfA#WaYys- z*K&=vzb`XrDG2%oD`Ob3jd$BGdTWRN9Mg5MJJ+M6TsN}3tkpQw_;!$96PS?e^lXRe z)uy^ea=^RkLt}@orCS|##bV|w_nk|3NSJW$p7n^{W$YxU*q}fX+2x&TWj>n&0)g!V z5&{hUb+M4dG`g=IYWp$bYI|Se$oT>fPlptKs^UB2eHuCdK(ha5dh%BkqhG>D47&6H z?tFjr%5m`cxrO=KFFpK;%K6X9_QobCq=%FUu~Vm8W!zEYvPeiuFsb@#OdxLUjoRRYw|G3u~JZ2d6d4DUs*kAavm{DNh$Mqnd`zndXl0XRTSq>2{p^a&qlwr z8y4Z)E=py^U$pI0#ZEralusXtNSq0Ug|(C3l;cNEjNlvWG7leOcXoB{z*?OzKxDF( zx0xN0K3cUxbHfcaw++GCNT?!SIav%hkTS$@Q&6G3WdA`{4a$dD6g2^}O4YHAJL5zz zh%sX-m^bepHFTBI2>uouI&go4M(~zEE2k>ptku;*kw?=#^KQ_vw$4(>5zLP7#U~^P zmCcWyPD(}GoO7(zeDtK_%CG1BgZZ~<%|nRF`B2$l>M0zysMF8VliNsfRIV-s(;pxVLPOHDBA=@> z`I0)HWM}tIShUKt?=M=KE_h|=n z`Xvtt-jF?Y!(*lN8}NH(VWPL@DbpfAS^}f#;53nHk&!9dKbuS-3+SG zi5H0;!)i%tRaMoE1jB(qar5i{Tnq5eaUBVKpHed}IA`%h5ZC(C-0~!=#z}m{v}bM& z_LHZ9s$*(NY8-5Anu*-re4J^_Xq!Y}#ttkkBfztm}Iw&H)x>NCX~H;XuYny>wg%>wW5Mk5>s?lAy?3uKs+SNIG6K zCg2>S;>?Z9UXy%Y>*eZYrC=9~bI+9{{mS+^$&aLR`uv43)#8psrtsR6eSr;%9iXxW z5`DsZ_fASALSy`M@0b~{JfLy+!gQuf=2B2ddTS#rrfr9Y=R4wKrKk6F%h+&IMq^F-`)(Sgi>7j-_tFD0-0 zV{lR8V;yv5dDBgi6c#xXr|z5`3-jhEe2?pZ(L@Md*W1rR3+Tv@f=KmCb!qHo{;zCF z*TWwUb!=vbZ^r9sWma0aiue6~pYm{WwQcx~Ycb8GI6OgF62&UN=~-8GrfuXElf2SD zUToU@B3}m&6BE<*{9yP9ctx%E78Q$&mo2<>bNKlAr8%NfzR2+I35tqR>gecv@9ti_ zu-JM!y+72SW@mcQnwYphdl@fkEA}e#&4`+~-{ZOv88-#-*xgv7<;~7G3Gh6#2eV8z z?2Ut+*-#GFr`BHq-=tMp9WTZujk~&VaFeBHq`gpukJV~qjtflqv3nU6ni%GcZoBlv zlSwayKpeRaIsJ)xR7KsWb+cbDvI%bwI@TTRI#0OnGPG}fdV3sJNag*Wgr2+A2G`+c zx}Wp?k7(PoF_sZeOnvz;gPR&sZ}IV`f!BGob<*UJu#A}unU8o4Q$L!pWZU|a>dNi8~s+N|@su4TEzo6inrESYKwy)W?)`>S4kf^O!n)jHY&liJj>3d$$jA9S7sr(d{T9X5*9 zD_zsbvDFSVsw?-}x+p;HV8C4vUrK0n(ACimTSbXgn;D-dvvWGGtGK{Z3StypbIL`TwVWI0I?6<&wN#}b z7fKXr9qx^ITQ(KGx%HbpDFnqb@$Tr`Qk-o-nxoGfA2Co{gj1+v$pn4pzaLK)hwH9^u=*pFKpWeKBL3C zqt1A;lyA9w*arwz8*c@?HTde+EnM z1CCpbmF%8bsuP=4eC8n^dE#$>^5ID_)`0oTJ?vjO2|{PUpCP{ z{oa&cXcL=n_D;L)gw#2R8ZFx}mr;b9DN3!6y^q#Oi%E_bxU^aRni&@XvL^xkMq)bw0a!qOc?iboo_2QAnEbN}oDzH?dKu?W&3~7-_)}tX$+HJZQ;Nzb$V>VAYOHSz(OYh*S$?xy zQx!Yk@890r>ldj7Mz0*LifaM_0vVZ^4S>!S0|@ul(Rp}z3k|y{%qA;IGBabbo*x_>6qF8i29=5KEVINen4F{O+1Px-SC`$U(w-I^sI(CjF?9b|?EdsluzMIN{E+kBtzi@}^L zWX@tI%PBy9uUdBF5siTPn2#?GY2)}fWlT&=Kv-Do$-!Eo^}Jk;MoEyEwHGbc7fo&< zN+qY}TS`u6z?fd&k z#Sox#Z)#{rPH!Kfk6=_HydrIT!~38a_F3$JM$R0NSG56u=~lhY&S77^6PNg_DNcPX!zF9S*W=9itI^*L~3~9G8zJ8dLlX&ki?zJ{fvg`4(PuE ziD8fuT6D#CfP@QautEI!Oblp$Ad?C&SO7I?+b&@fuuMW8!TeEk0~4)K$P zY(OIlEXKYS6~e$WD+;qF^M4tH(W4dM%?k($Y6Kw)LJEqp4fHi!prgzla;$lh*$ix# zNb_Hxs33m$^_%Q5nTA47uSQm?@>Uw7TQl9C*UH<(^1_Iuq;Tyjd+E$)HhAH{?$_AR zfWm9oSr0r@D$k$$0;TG9qVhjy_z>6~sHYG@9}f89O>g%6M-wF`W;FTizdc*BIL0Z) zkfT6iMlQX^D~?W1CO7l*^ZiRo_!0H(?O+`bmnJ@Cu?%dC`N9v24-PLXsHEBieTN0b zH8d*uJq(n=J$U>jF_)AYe#E#!f03Cl0h3ncpI~QgXkwbOZ8}K4#Oac4j0XVoDtOyM z;Mg7+8Tp)+hB01d+2)5w>9}V+nSiv6ep*7=>HU(Ooq|Mx-0@w(-}|ZILjUtRS#A2M zIk|%D6!|465+Fb#>0L?+y&!{*x_Tfe9PK8`8~i<~lDT&*X!-cAkB*M20cS8U@`{LM zPxZEH;hJ{_?5|Az>uXyD7^arQcDiN$F_hnl1!@1=P(?6Wr2f;?cboCBWKCDdH54NM zG=TiYD|PORwM?$i8i zQ`<-J1kzQQCrFN?bUNiThkrOw9H%)9pXAUAuy&&VnDEArChpUL$^n+wG8>$k@V_|) zxSJ>c`W}M%P)fl9^KpS{PzO2s^+CDZtts;19Uw^#gx!$3AVC6w$xieW+R?|+vdCRmYl3CY?ybmUEcrjH4%&76w zUS3|r!>=In;|J3QLCeca43wqt4w9u+9bS+_Xi2&q0Py!|wP%&^JQV|92bhvHWAB=$xGS_%Aj8|5zzV ze9VCY2U1MS)z!6p{(rOAMd^RpE9MMrN6yI2Z2=g^7a8{N-u+xyNCdtF(s5+0djH{r zcW-Ym{(_OQ0f(P};oXyc3y6eNf4>YUiMNOo9bZWOKd|H0#X!k@x$1wJFJD}>i<8qz z33GMrN^ZL1+W*0C%TBJ;$*wiyG5$|fM8?KkutVcVf7>b_gN4+8bKPwtt<67(FK*7WVPbr z-X{3?LVmeF@dy?%6xb|0tSP&72XY!LHwZ`ZGB}&j10nBH%!yy!V4t+tF0$wtMP&Sk z_Y6ACdti=wFPAym<*?WFkYfN%{QdiAyr+VKOq&z$CbwseIXL_><20+lVl5v&cxOA1 zVbL)?0Stm40T(Ed+w<@f9Br_#vn1-c?WyC|9^Q4=5j{w*gX zg9;%e0yuAHoBSP?#RLTfYw}Voo$U+_|1p>Tk!e7_u|Js3&J%nC*T%%BCbV)KPpG#| z+}c;Bp-YKI%#rI8hc>pTsOVI2uK3Po+Sf0r3`$DkHtYsI|BTWQtJ_8(6P44Vp@@5= z%dt`W0~6x>mA=9Kl}%eWS~O%zK}PB3Y%kL11`|OSM6k$2?b#gIBqXRo&rJ5!t6ykK zoYynb=}}y%e`$R&THZVXNvwwRIy-kki;4RDx{Dwn!URP#WE6n>O=IcFIXAwBq`@c5 zOwrbpZg8B-eBkiVnvCTPfD*v^V0DnALz78GSswLB?0d!Cp1yjh@YVwHzRk3@kOphi_$U%av9DJKM243UFco_-;d?PY5K9P`=q)Bq! zz4~Xt73iTcv9VqGY$BZmsTXWUZUZj^n+sAuI2al-z)}ag$cMoF9@05&6oP%za*}2E zQ0t4sa`y>+Gsuz6tgd2bKEt-Ow2Y36d+YQ~<(yk*%z0^j8kA~|){AWlj0=h0A*GZZ$}1Luc(MudwJmkVtfRM!K7Lx;JRf{jP*fgR>1cQ ziS*C|gPbiYp1Hf});2a?xw-6NRKlpFq@)Q8E=XNrFA@~?sV3Dun!zU@0d=`I+yii|uemB8q+8bG z43fJuMaEXa;Ti`Zp#JHS5wa+?KguxYE~ z-Ph%nl{V8Qq(LhG_K1IKAIJxQ?t$y+Mi~&uqk!;-Q$KQOb8>Pb5)<)DG(v&E_iY;p z@dbcB2)<^inKYD95@*}832#IHJa$J~a41CN1V$%Bhw;G$8 zMB^=ujhTRuwGi0(fBpIe=J;&iaczg$t>=z&_-2+Q9gsLw z1ERUAOhX5z3xZ8eRa>>eAcMAf1dN?l2dmG`CdwaYOB9O_lT8a>U-yLsfHvg%AFqkk zcpn}-%pF2GY;t5t~?PM9jq@7a2Od- z7*lX_b31~_+YSf@(sFR*l?Ctj5)u);1BnFGUNfArA!CP@8_8EB!R!J80(!C86>KFp z2AvE%Lxl8HKrDqbBPXXBsX+#h2lBf#I9|ni<>wu!Srwu<4(uOOvw(I06cG`hJ`IiE zb6V#5Eut(J&&321F@!g6AlnSlm%DqH78;wBf)>q?MHcILrPjEEc7?&&(awEk<)yHVkwRHh1%*cdIKPta6+9R=jCz7B@k?(F^nvi{lb|ze3=4 za&n3me#@}Cy9)w&ScqsYJyedDwYZ3K*JB=rN6`obvIGS=1!M^-BrI&QaIbQW;AKL1 zNXT8Vu_@4vK}zS0V>m!_4_R2hr-~oKO zcWbL0Qo!nT92AIvE`MVCiLWhuXoK+io4nY4c4B} z+eO^0?Cb_E+%nU|z`&~@I2!5!+L?|3FzV_5JaxC)it?n@AR;96jE*J)I)=}{aoiS8 zgZX(>p9^3&WHb8FqXFTbfq~-m;D-o|ool@IJUl$x15cIdkXjAm2iM_$5eS|bTnPyY zWD*Em>Kz;RHseI71w=9~T?CR3ue_pyyg6FP{N6*Dbv`f?ppuOjvPQi;Tat9C61vOzcM>QE#(d@W zwX0M&ZxT^cPmQ5J?xC@CqGJMA%m zP+=%i;KsfXHx`}`oBFpafI64IUBXAM?SiYEg{&Ew^&(Z1Ach;WXV0b_5bVOrg@S^D zne(vn@aR@wUta)amQ^HV4ieo7&aeiZr0Oc$)67kU^!4?*%tp9C*a9_ODWS2@psm1m zoh0!M8&R zF9Wh*Kx|(A7C88Ia#4V}N|d!HH9Rnwlf#C@>;5jeT49i@a@O5Q3XK}&T`2Zy{40Z~ z1?K=ptTyO3!(D_ABU$pn-jTwX$aFyr^oO{3t6mO3kkT6~Ho*e5vcc>Z$PrPBM+Qc4 ztxa%c+rY_XzglT#HV1+tuoNYjo0X&Ac1(c<#9PL<6Rnc zp|=Q{zQ~dXJ@O$scz2}Y7J`p^upd-k4~AdLGJMbj7X__u+p6O`3=EAuJp`qtrHD9GJ=RMb*D%25*HHJD;OB|-vf$@a}PIedZ@uDXg`1PoP`9c z$HKQuO4YmVtWZE|Yh2U@^zssY5f2@&^{>3<9g`qo^7A&hJChb&4rbk|$+q_eB5?dG?8W7fiGB&nZdUVr!Q-Ns^}?aGs13k$OltDB%&*j~%8 zvzaEjetiZg?pwfai2w+)IPp(7KRrYyT8@|JhlM~`V=?~@ba8<7oj6Xwyb<7V7}I3? zy*DN%4Ha*f2&t%Y_7VV%Np#(P01PG$$KqtHG89STE;okrUk(S24NhZBRDaNf`f55v@28R10h4F7ZxT5 zj}LoPy^4z7M!h@)vRIHWT~#sDmz0z|IzE17dlS4co zz6)@U6$X&_Y~Y_`4Z0-H6Nt*#B`!#>Wr0N_5mtj%+;~w3{3d?_kI%ajxc_z!%a7^1 z%eHbyaP(#yeUSmQFGU_gP?S9^ZxOOxCIl|8=FmWg1-quErb5{2Mm+nOVS!8=glw^KkiQ@Tu^TJcK$B>$rbdSJMUeC31OBSf zqxHQY9)>+!{CD&a_iuGTkoDk6Ays1qr$Vji(h3P($8eDMvbeaY{n$0-UPgED;B$#d z->J7y!H*Of5rC2anuEikzr_A zf)pPiYao%oYg(W8`dmf*$X|Q)hWob%JYBbie}CcB+n!vxss2+xLnX)f{K10JBo*Y*8?qUyG6dYTPey%UP-tQsEp)M5buw;{1pB$OT) z*s#0MVSRpLhb)s|mfu%UXhLE|kVGygC@VMf2&nq#r>|v;x4@>3->YxrT?l=V=W68s z>HFtgzV4zj$aD3LuIO|3jJNVx*7)Ubj9Da)EXo}3Ei_Q4jI8)!o}xwEzYQGw=!ng) zAST)enPhUtQ`h4HTO&3DgL_Q&&PK(UOcpf~0fW!oOtM8=lt|?=EY>JRwaqO3^IS_^ z_cMq{gPpoDO}`&|J=lh>ct?_cIwdCL_-)|nR6zC(strCqKC9`%9%Y6PC6pa%Y&4%; z49F>2^>9FOl>nrZO9*ni8ULPtmc19UfnKR_)CyXiP&YGYbYgQs+@;jHbdyBk*Y_>0&?Kq7rA` zCp6&#z&Tn*Mogr1d`P*(7}^{~QDHr}ifQ&kJu~E}%=XvVX>G;EQUoPTVboT3wJOm_ zxC%i_#(Jh6rB8$tZl&Fb^=^2#l954T_TZb`=q1(kN6c9W1lHVxyVB6dfhN?SMhG!+ zNjEnyuk7>Zkwe@9r4<^vLqX;oAM42U3;V|xIekFP^AqRGFbER{$GZyw!NF*s14+)C z2qblZoePPz59i+cnAls-h5JxJ!FqrBF;d8qkWNGdToT0RA`EBfhW(*JtS&ZRQ@8H^m)_grC96LR9+z7`lJFXFWO z%Jpog4HVwyD(8Ll<8T&~3;RPcRTWH4O+zRJ@p+B9uOM(~B&a~EMi>&?+4c1hkXbWH zpua9(X)Ymk*!DkGEM>iRAf1sHR8zL!2WEg{%KYpfc0lApU`K*c*Ze4CGt6A6@Xv&m zZ8bJ}W(T{vgA)Fr8X|HVf0`Q2O`WnN_L0b%?Bv=jz`T}udoQq>oBaC1;P-uQwhM{q zex;Yv4xjwKN-aHv=hrBtot2ku#z1&PFlUUvRpN$<9Z9j*8i77 z`}9Vl-h;hrX=_8^Lc$IW=V(5^B?&uT8q@f;QM=$S^(6U2RtXX*!no98WB_wN2FYJ2 z{ys849b->daY8=T?HOqRw881pf^OYjNM$1}&ScbxoiBu##?c}pZt(M)(Y>`qP~9PK zZDwO56jZ3GB;BcC3AEqT0_hlLCPGVw?aSgt@-HKD7#)J78et=hyPI zDt=lB`?e!@gCl!{Y9Lt*%`L*4Hz#NP+PrD)wdo*dhQty7QG!UMC_}Mjv(HsxB#hwb z;xZ4;4yw6Ew8*jz2|^iL1|89)ZtX~A7wgl5NrmKG`~+qrqu=y1-XYL_y}9@wwGwGp zf#`2E?DNp2=?Tmc>Z?3DlIKNVV!J){a8&c08%-<=~_2Luf+*w@`0P( zVkN{CBw{l+KVM-Wb1Db3Wd>A6r9t=XXMaDp$HkdaRGcLZ7ObV$ae2|^wiG;`zomoi zDq@=!f3hi0dj$yxh;$+=CCKfYIy!K`a~}aXgkt;~4bUpICN5;cEjaDkL~d<==^bV! z+P;|rJGU|y)X`!$sL@bSBjV#jAlF4JuX`yYCFMD^cui*EI!n)IY42?i8gGKW>XXdk zJ=7JamkBkSUQDaTV#Gb-xB-1F z$Ip%%+K~hufUW@q`I)5bWm3&`AKTutcrYwSK+p8d%_nEiv3zKe00*Zlud}R-Oo79e z4x%1_M7y868<_QFm+uJmPnm%JRUbrc3(CscAfrMtE)5BRZXB|%uZ;3-XMUCl^BUHT zxz~f-a__)E^CYK>CBfKN4%?Ud!z4`;6I7s6)e0kpg0)47f=bVZPe%%9FUyn!?ji1ExY`@e+$6&pL2x#j$g>WZ`&S#fj7^4rw3v_`1bq54HS zT?GXk&~-ZKPN82az-aI6#07jy#58$rZS8$h5&^=>!NLC#L;r~mNd12PjDU6DhwTobS>bHPku;$HDh~S=k>f=G|WDPfRmk`LTQLuCi>RP#@#Ua6SzS3(MGK zuT(%-?e_Wk`RvwKxU@G$a(TJh(kbX^LM_|S)rAM}kH|D2d`)n9^l~AD)rOEHlgT+; zn7nW)U#|hItr5=5r>)$O9v+?M8XK|0aKiJdIZz@Hw(7tcY^#fhIGui9f>aa}Gc!`5 z4cx`}c^E<9-NtcUSeNV>8j5FTW(Mt!&wFlw!oWl(ASS*@ngjC?;w+|r_WU^=J3Ag! zX%pPAMh7})0Q;Dd*EBZDq<;OHoR#&EmEh}>A1x7!{n@<5HL7pkWOXAyxW8`;AA~Xt zF*BSlu6T7$&npCOys)%X4#pSC1JRFDLqj*fdSqX}{;D&LLLvK9O)Z0@y)Xp|cc|!) z-=33$>)Bdgh*1RpK-M%%#TT^)m!tdC)YMkCw!gw6Kf-D^)s%_~^)+g!<^e5e&?fD* zofPEfFB!i#`3ZndC2bR#jFO3-r}>w`UrvPenD=)U2%EAB)*R9R;ah z!;c?V;W#UM`=Ql~=PZ%X+e2)I_ZLk&*iKL*FbJq|O-o=gA$ literal 0 HcmV?d00001