From 53234af7abfb5ee33498d5d911e0ba065561f64d Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Thu, 3 Mar 2016 04:07:26 +0800 Subject: [PATCH 01/30] added library build mode --- .gitignore | 2 + MakeLib.mk | 92 ++++++++++++++++++++++++ libnethogs.cpp | 185 +++++++++++++++++++++++++++++++++++++++++++++++++ libnethogs.h | 18 +++++ libnethogs.so | Bin 0 -> 701128 bytes main.cpp | 32 ++++++++- nethogs.cpp | 26 ------- packet.cpp | 5 +- packet.h | 2 +- 9 files changed, 332 insertions(+), 30 deletions(-) create mode 100644 MakeLib.mk create mode 100644 libnethogs.cpp create mode 100644 libnethogs.h create mode 100755 libnethogs.so diff --git a/.gitignore b/.gitignore index 60400ec..0824e2e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ decpcap_test TAGS *.o *~ +nethogs.project + diff --git a/MakeLib.mk b/MakeLib.mk new file mode 100644 index 0000000..14c21ea --- /dev/null +++ b/MakeLib.mk @@ -0,0 +1,92 @@ +VERSION := 0 +SUBVERSION := 8 +MINORVERSION := 2-SNAPSHOT + +#prefix := /usr +prefix := /usr/local +sbin := $(prefix)/lib + +all: libnethogs + +# nethogs_testsum + +LDFLAGS+= -shared +ODIR_BASE := objs/lib +ifeq ($(DEBUG),1) + $(info debug mode) + ODIR:=$(ODIR_BASE)/debug + CFLAGS?=-Wall -Wextra -O0 -g -fPIC + CXXFLAGS?=--std=c++11 --std=c++11 -Wall -Wextra -O0 -g -fPIC +else + $(info release mode) + ODIR:=$(ODIR_BASE)/release + CFLAGS?=-Wall -Wextra -O3 -fPIC + CXXFLAGS?=---std=c++11 Wall -Wextra -O3 -fPIC +endif + +OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o +OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES)) + +#$(info $(OBJS)) + +.PHONY: tgz + +.PHONY: uninstall + +install: libnethogs + install -d -m 755 $(DESTDIR)$(sbin) + install -m 755 libnethogs $(DESTDIR)$(sbin) + @echo + @echo "Installed libnethogs to $(DESTDIR)$(sbin)" + @echo + @echo "You might have to add this directory to your PATH and/or refresh your shells' path cache with a command like 'hash -r'." + +uninstall: + rm $(DESTDIR)$(sbin)/libnethogs + +libnethogs: $(OBJS) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o libnethogs.so -lpcap + +#-lefence + +$(ODIR)/refresh.o: refresh.cpp refresh.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c refresh.cpp + +$(ODIR)/process.o: process.cpp process.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c process.cpp + +$(ODIR)/packet.o: packet.cpp packet.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c packet.cpp + +$(ODIR)/connection.o: connection.cpp connection.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c connection.cpp + +$(ODIR)/decpcap.o: decpcap.c decpcap.h + @mkdir -p $(ODIR) + $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c decpcap.c + +$(ODIR)/inode2prog.o: inode2prog.cpp inode2prog.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c inode2prog.cpp + +$(ODIR)/conninode.o: conninode.cpp nethogs.h conninode.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c conninode.cpp + +$(ODIR)/devices.o: devices.cpp devices.h + @mkdir -p $(ODIR) + $(CXX) $(CXXFLAGS) -o $@ -c devices.cpp + +$(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CXXFLAGS) -o $@ -c libnethogs.cpp -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" + +.PHONY: clean +clean: + rm -f $(OBJS) + rm -f libnethogs + diff --git a/libnethogs.cpp b/libnethogs.cpp new file mode 100644 index 0000000..655ac74 --- /dev/null +++ b/libnethogs.cpp @@ -0,0 +1,185 @@ +#include "libnethogs.h" +#include "nethogs.cpp" + +#include +#include +#include +#include +#include +#include + +////////////////////////////// +extern ProcList * processes; +extern Process * unknowntcp; +extern Process * unknownudp; +extern Process * unknownip; +////////////////////////////// + +static std::shared_ptr monitor_thread_ptr; +static std::atomic_bool monitor_thread_run_flag(false); + +bool NethogsMonitor::_trace = false; +bool NethogsMonitor::_promisc = false; + +void NethogsMonitor::threadProc() +{ + device * devices = get_default_devices(); + if ( devices == NULL ) + { + std::cerr << "Not devices to monitor" << std::endl; + return; + } + + handle * handles = NULL; + device * current_dev = devices; + + while (current_dev != NULL) + { + if( !getLocal(current_dev->name, _trace) ) + { + std::cerr << "getifaddrs failed while establishing local IP." << std::endl; + continue; + } + + char errbuf[PCAP_ERRBUF_SIZE]; + dp_handle * newhandle = dp_open_live(current_dev->name, BUFSIZ, _promisc, 100, errbuf); + if (newhandle != NULL) + { + dp_addcb (newhandle, dp_packet_ip, process_ip); + dp_addcb (newhandle, dp_packet_ip6, process_ip6); + dp_addcb (newhandle, dp_packet_tcp, process_tcp); + dp_addcb (newhandle, dp_packet_udp, process_udp); + + /* The following code solves sf.net bug 1019381, but is only available + * in newer versions (from 0.8 it seems) of libpcap + * + * update: version 0.7.2, which is in debian stable now, should be ok + * also. + */ + if (dp_setnonblock (newhandle, 1, errbuf) == -1) + { + fprintf(stderr, "Error putting libpcap in nonblocking mode\n"); + } + handles = new handle (newhandle, current_dev->name, handles); + } + else + { + fprintf(stderr, "Error opening handler for device %s\n", current_dev->name); + } + + current_dev = current_dev->next; + } + + signal (SIGALRM, &alarm_cb); + alarm (refreshdelay); + + fprintf(stderr, "Waiting for first packet to arrive (see sourceforge.net bug 1019381)\n"); + struct dpargs * userdata = (dpargs *) malloc (sizeof (struct dpargs)); + + // Main loop: + // + // Walks though the 'handles' list, which contains handles opened in non-blocking mode. + // This causes the CPU utilisation to go up to 100%. This is tricky: + while (monitor_thread_run_flag) + { + bool packets_read = false; + + handle * current_handle = handles; + while (current_handle != NULL) + { + userdata->device = current_handle->devicename; + userdata->sa_family = AF_UNSPEC; + int retval = dp_dispatch (current_handle->content, -1, (u_char *)userdata, sizeof (struct dpargs)); + if (retval < 0) + { + std::cerr << "Error dispatching: " << retval << std::endl; + } + else if (retval != 0) + { + packets_read = true; + } + current_handle = current_handle->next; + } + + + if (needrefresh) + { + needrefresh = false; + } + + // If no packets were read at all this iteration, pause to prevent 100% + // CPU utilisation; + if (!packets_read) + { + usleep(100); + } + } +} + +void NethogsMonitor::handleUpdate() +{ + refreshconninode(); + refreshcount++; + + ProcList * curproc = processes; + ProcList * previousproc = NULL; + int nproc = processes->size(); + + while (curproc != NULL) + { + // walk though its connections, summing up their data, and + // throwing away connections that haven't received a package + // in the last PROCESSTIMEOUT seconds. + assert (curproc != NULL); + assert (curproc->getVal() != NULL); + assert (nproc == processes->size()); + + /* remove timed-out processes (unless it's one of the the unknown process) */ + if ((curproc->getVal()->getLastPacket() + PROCESSTIMEOUT <= curtime.tv_sec) + && (curproc->getVal() != unknowntcp) + && (curproc->getVal() != unknownudp) + && (curproc->getVal() != unknownip)) + { + if (DEBUG) + std::cout << "PROC: Deleting process\n"; + ProcList * todelete = curproc; + Process * p_todelete = curproc->getVal(); + if (previousproc) + { + previousproc->next = curproc->next; + curproc = curproc->next; + } else { + processes = curproc->getNext(); + curproc = processes; + } + delete todelete; + delete p_todelete; + nproc--; + //continue; + } + else + { + //uid_t uid = curproc->getVal()->getUid(); + previousproc = curproc; + curproc = curproc->next; + } + } +} + +void NethogsMonitor::start() +{ + bool expected = false; + if( monitor_thread_run_flag.compare_exchange_strong(expected, true) ) + { + monitor_thread_ptr = std::make_shared(&threadProc); + } +} + +void NethogsMonitor::stop() +{ + bool expected = true; + if( monitor_thread_run_flag.compare_exchange_strong(expected, false) ) + { + monitor_thread_ptr->join(); + } +} diff --git a/libnethogs.h b/libnethogs.h new file mode 100644 index 0000000..68942a3 --- /dev/null +++ b/libnethogs.h @@ -0,0 +1,18 @@ +#ifndef NETHOGSMINITOR_H +#define NETHOGSMINITOR_H + +class NethogsMonitor +{ + NethogsMonitor(); +public: + static void start(); + static void stop(); +private: + static void threadProc(); + static void handleUpdate(); + + static bool _trace; + static bool _promisc; +}; + +#endif // NETHOGSMINITOR_H diff --git a/libnethogs.so b/libnethogs.so new file mode 100755 index 0000000000000000000000000000000000000000..c08c244cf770ebc5a25398059da741b92abd698d GIT binary patch literal 701128 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∨SA=W!3{prgi^A-xH<%8aGB7Zo1i7Cbd_4`ToIWE10|)3j z8&-wI3=9km9H8rISQXcSm<-Gu;Lam6ZZf9iRV^aei zgUjKujgf&(!k+^W4nWqL6c|iHbw?L9-*C#4Ej7)+Zh>*c&v6ZG8ps7ZewJ)!@#4ogOTAL1JCSj zj0}$$cr>>$GCXJCk>1Y8@P>gWWd|ce3nR~p9gGYej68)q7#aRE@`&wVWN2Vw;1%Gw zJe7%ofe&=-JjYcqbIL3R29E1XL872z=Q(a{1?3=4Pym7i!Qsl!z}d;jzyOi~^Vu0V zLE&)}v?dA^?#vAA;KS`XF5UxO2J$16fq~-|C_q3HZUqb?oY|m}A%W0I3=Eukpg?6| zkzo)JcVuAT%!hC#7&ty%VqoAb1;r;L$44;+2F|j}pp?S#W(orXXE}(?!m(#I0|RFT zh|R|F8`Nj11*zxYIOo8?z*z@kb8@@}nNtr^!^M%w$iTqaunH6@9OZDf00aBi^$ZLg zTrwM(85lUi(-|1Jz!A*Av1$!T0|S=|NS=YcOqGE_gG+*ug@J*?<1hmQmnz5_1`ho>3=CXq zpg`l`@MLFT;8F*%B^cN^*jX4D1VLGe>0u@V19#Xx1_lOp@Nz?*uhUr>7&t)74SBv* zfHMPVxgpQ*-JnFx0a|Xz^9RHh-~cT*i9ArB*%V<7}uZpgy~<~Rs}mK*Z0fH@vQpyh@hAp}}( z$iu;So|S(9f+z##H;F9QSneKiIK3El;cpfz75#SFX)xxhu3>{bQ_-bFm1%lkw@Hwy4B z2C+pL*f>rwfXwz~V_*;z1PzpNM1YteQL&xr3=AxM3bWW476OfTilXfsN@R@A@ zo4yUSl_p4-GzSjQ$OxYe$UqMcZ%_`i1&IeRuyKHbi*qR(1A`?f zHU{=L+ZY)H7*8()nR9nLBLm|ZP?^ra@dU&^3t}^Iyaut)f!Hh@pFr&MAT}GvPZ0Y8 zh|R&l04lF9g4kRf>>&0f5Sxdi3#8@>h|R~qF1Hh8+3yb^%OXM5^dFD}1Bd=jMh3>e zAT|?+8%V=H5SxXg6J*eTka9L5U642fBS?ae0bFGqcJdmiW!JGhv4RA@+Dc>?wuV;{dUz z6l4$c#2xiAnFS1t0q*WE&K-EElbqM&x6y6ypz>m+y>7z9B@ok9f2U(Ag6p;{2m+rh)Ypa@P| z%#2X?DS{I*Gb7Z2ir`et%m{O#QgKcW10yRVNGH?83}tWvV`GH6Q5hV9?BGHQ6ogVD zkN|->QW>1+A$2+^b1|@S>;t(HRQf7>0i{({#`#b^u(L-Q=jie>FepYtWFZzsKwPQH z=nl@a0T5TJf?dfp(L)*RC3UEmGL%_B{?~>%l0jt`i0=Zfus4cAT<8Z%P2du#2V@)A z02i16ijwUN42%#BOcPTSy+CepftnYg7y`OY116impppkN-V1E}f2i@G4h_f##yPj( z#(TkxSIuN#geV6Y4ldNZz^x-t5UCsiS>^}k>xe-di#YU?hYuEkelXJ*)V6J7WZ+*3 zYE>}sE&}xnf9k;ZsYFXMf%mCg5C%C1f>&EHFfc(og3#U{q|3(y>GCl_x_nHKE*~@K zQd547I0gm=Xzz~+()(iu-C)XJZwKl!f;xiy&8Z+Js3XYV0%n5lD&=nl>12ZR2|>NT z<)8*Sr1!_1Q^m+2kOVrwgc-D`Wnd6E3_6sI8Fas|z!8vP z%%BN4fukTR*g>W-fVzI54LHmUOpuNq6SSiTQq9I832MZH6mo$!LKrg431eX37V?Hr zLC3(n&<9{D`Wu*v5ex?@i8TOIaeiPbJ{L?Sbb~12vWf@>25#Z<6=15GGZMtBQv*|t z4q&P&223>J_Ocd$RPG0zP{A#7&=Jf#lnAB{H-f1n3&GUU17PadH86Gj8<;vF zRtVC5(hN+U3IkK8bHUV^7BF>o5tur65KNuF52h~sD`a5c5#eA|Dgx1*jJ9B!i!l~V zOMp+z;1Q8#1O*O{h#Vs*Sa?Jf89@QUBcck`rv}xh4%WvD+9x7v_JEavfe*B`fTuQ;F)#>$WrRWdL`1>+MCw==7+PSm48mP? z3=E>+eInCY7#QZlB}72`L`1>+L_j8NVPRm{1(IwoVt{T`5shLz#lpaF0VE2ti9r-> zeGDUPpNb$zRHzf7A)fI!3j+fiD+2>W3bdgEsw}9wN1E(cup9r_8 z6^LdA?Gq6@&|k#BAO+ed!ug4nfkFCSD+2?gxT`-K1A~lT5F>-Q`??|q24=6z3=HBP zAlpP_Kuj;bRSXQmYzz#hYzz$6pnlh8P{_!}hZHb?RLRB1mw_1!44i*J=JtYC^ozSL z$8D}79|ME9m!uE_LpB=&LoXWx!(@=TJF%O~$iNxG#=syC-q*tAqX631qGcdmoz1|& zDDkoxbRCE#BLjoPYfzcZ952DZAn^tiwu%Yyj0_T=x-A(PzJpdb-2kPBs&9x5J(bCFev4eFi8A*>I#uGLzPr!|HHr_!Nlm}&AXjls8XeWRT!u{LRI{08&2#CL;t=2eDpR8sv07 z#`|du46lk981{hFfEYp`9bknF%H~>(3=%?&Z{;Cs9$-@g4gxX8yiAB177hjmA+R}M zyFkIfplk*TJSoOyaSRL~0XdMG58z>w;$X^s8JP0e2&O#ufGMxzV9Li2O!-EFDZdmj<)06x z0zZSPpt~SS%9N*sfq`4f%(4_jnFp6LFffDmCyDI^wLqA2m>C(w!$Ap}FM1{;10!e5 zUrq)FwXe~j)}{JYcLoN|cu?dps$ZPXz`&VYP|Co-sD2v6PALPiMX$&*GH@0$9^qtQ zIK|1pAlO$5Di6V;#f-N&85o|zM1`h+q%=A~qnnkCA7R3fl81q_mXm>jTRQ17r~;Qx zHZ243QXRllS_GI%&jnK%&0s2XCYZ`v2d1)*fT^6PU@Dij9HhNa0ZbLSf~k^JFjd+L zrpi`>sfvSOs`5IRs(B2i>VAT$X6_1*DJ=?Ms?`ciwflgnj$|;^-2tY0r+}&cl@$yO ze5b@288~DLt|>DxXlm(z*aD3F+zbp_ARjVlH?uP`$cQp71XWNvAbA-f#($umbqh=F*xTH1A|QC%6Jf)QJs-NrU~R+Ms;=&yZN>< z0|TSj+PN}V`Pvu2eoEp{;g+Zkac3LWMI$}QDkJ0*=kYE z$Z)5Efk9*oFC&A@{@=GCSs2tOlmqp+cqE+S2N7#OVKlEN2r z85v}b%XBd^`0+3>gn%Tjfx4H%CK8McGN(N}7#Y%e7#MO95(cV_3^M19QW+TeI$1yU<+0Q~BSQ)w0|RK(8EiI04M;0Qp#f(VBZEvZrwx~cdJV+~4J{BZj#&|b|kwFEtdmOAEWV;ZkLBU{jwv~}Vri(Fm z0waS9Tpkp*LLdSv-^X}HEi~)iS3<+?#r=Xo~5GxWuA*sZ~SSZNAPy>ZzfPBmVQDe*0 zxEZSEt{?-$3%DAPPoQdinUtO|K8=@ly7!ld_v0it`E5Cg*+kTh7gne;sd2AN)_Rz^mKCQzk(REUA$G)Nk( z8zMc8NrRD*p$sJbM2Lam6-XMQyL}@ggUoy;TL!3ZW?=>fPGM*WFqna*S1=uX!vN8( zB+S5|0g{I3{`H@ML1rV9{sXAf9EBMe+!4~(K!xs3CPqW3zY~NR7}5~ZQXrQfV)AN) zI;~!qfuR*4-3D^nX{O_U=rX_UXJla9D#F098z#?S z_7>D6FlB!A6Vh~H1g)OA1(F7vY~}+>sV>ZSsu&r9K*`~=2m`}Em^9dP3=lP;%%^WN zFt~x#h>J2XD2YPT1VoK_VhMvxHnV~;)EFyK1_oD<5|AxON*bAWeutV8E6Tu-0aAkS zhuPglj0`f9nE#qELTqXjWngHBsbPRf&ti7ehuX40l!0LxNE&1dgBhzdBZJH$=9%_T z-TOru7>hH|G zbD$>P7h_;}4_6IxJ+i|8%p4|Ag&d$$Q^a9G0a6GxjE_ad3aUm&oPogxt_D=+LfQoo zTg6%U^f#Tgh9;0nQhwO|0noGyz{6(a*c$W8#)T}~-a-8e zI^zR$zz4*Qknqx9%*Y_KndPJtBLm}72?mB;aDzZ?EwHN~p>F|Jd7fpqEh7Wtc?kxF z`=~0x#+iW?J!Yw@gSzd91Oo$yB+R2=w?V=ftnepGd?-|*q9g-@HKsy{13>y1AZ81& zdbUEfgh(0aS$``yrtK zafCPPhrbNq);{A+Nd|_OaMj>2gCsPwG*Ba%waox(EEDLE6e*OD02#|*23A(0bfoih&^>MGd5BY>@@3HYc)1gfKENg0`zv!4xr=71=W~ z$Sh}F=LdDrWGM!Q6)ia3h zz#uG*;ccYu0>ojjSm(nshmJG@gChpAPzZxV4_Xp}Rjaf8bAqbgEzQ7i6^m-5v=haOE=qMQ>d1$G7Jpov1oyN2&!c&+kVz ziyAY~_^=EcyPg2F>Gf3>v<4B{@&iW;Qcke|%|pltvh&XXEuofUV9=6-1skYy!eAB- zYEMbCfAwQz0J)XXS&o6h6Ql;x$T$HS)lg-(Tm_W|?K#OnNMBk28na;kuFS|_1!`$E z$}up2c8Gun2N=viL*gJcnh=T7iMVKmn!@ z-JxLB7ugfspsGC;7#JckRWq1@6+U6lg&A9CNUl(ZrP zgEm|tl0!c)VPudo;^>5V-9?dsAq1`v$)R9{&Ky1~p;qTAGB7m36{0&7tU8c`M*^xE zw4G!%rfLQ=u)-t`QCJ#1qR7B-1+Eauq4p0L7-R}Lx~D@;e5=U7@E5KS$)R9{O&q7c zK)o)e#K54fgb_y2GzwNdfx`$oV#nyB#J~`OshYtItZ*U6_Drb#xk?NSwQz+<4vmat zWRTg&@z{rv;TRVK1LHI$28LyDh2SC&L@=0v=G$bBa6~CUM!*>ND={#ff-4012&(1@ z$ExX2HIJ1T7=FOjfXo5=16r$sP5j5v4{E`HCSC-U85j(dVO~d74bcY@gW4j%DU=Ph z#Z#GqAq1`u6t_?{8k|~E$jpbFDR|uub?4mMHL1HA&^oAQLwZVV~h#|LlR7$K@2o{A?IFthk*g4im^(C zfuR8;`x`WXCI%W$lJj;lWMlvt#5hBRfngq8)+RMCg+b2WhYKpZO@)DB4_sC@-W41G z44j~>$U>+06qVFJ}iiUd|47 zyqqm)IEO_ceJ;p3;N#`&z{ktkfsdE710OGE2R>fT4t%_v9qf2HTk!F63jL=*8o|fQ z*@2IjvjZP5XXgnzUd|47yqqogcsYfwA3=)2$IID)kC(FpA1`MIJ6_Hnbi7=k1_Ofw z=-@a;1yLr(05t{%N6_(d3bIV8r3?&?pyTBfo?5n^&) zZ_2=+zyaa0xMZYOFeq?CcpT24UAGDX5T1ZD=y*8=5eQGg1$4Zef;fcd;0!umPC**N zYj6b}FQ*^};W03}-US_vsRZRRxq^y}mq1_fg%*TETdyqtm=guB5RbiAB`C4}eY3OZg+!3M%(VRQo>FQ?$e2uc8q z&YK_IaAdc7@R@J%P9mxgqWN`$IB^%L3k|A&(||BC`3Yd3~r#~T7_GYU32qU|?_o9WSTQ4-sN?0p(GJ zNe~_r1Gi$3W+ejyw_>mymun9A&^WMHr_jACGzr@_F0S)ei4 zUcJr0z`_=_U4wzaZX;+S)2^3?k%5sxdX5Yug92MjmL>xO{~sns2DU_y5e&?=(Togi zamy<~#{_0GGO#6`*I;1a;OCKKWME4Mu?6^DwHX=MQb248=5mno__dV`4DJ_yF)*;D zpIpMo0FqMDWMB{iF`yE8Gwv`j{L^4yum(wh7!2-iAbU&qtd{lJQmfh%W`CIiC? zO$G+R&7cei5iHoQ$-rp3k3hI_~wz+nYe0u7dJe?SKR*J5Dc*JfaljSn?sFs}tOjKB4o_#e!^nh!L2>~X# z1H^Zoq|Lw}eMAz(b}P_kVDJL5mEAJ585jhwS28eoGcah`f-b(|PZVHaP<9Ihv3)?A zyFp6sf?|cicN54eRwkxB+6)YSpzvj7WwMWCWMJF?QuG)URWHFR{qw~b7#LagSfqb` z1*a;|!La<1;8e9Av_1!#szj<87&w@(XfrZ!C4s~ti6w_whk=1phk-#*s+xfTnt}=> zbQl;kV1hy!)eHjSYc13=A=F8Gn!-Nb;E{c!-fft(t+M zScie34z2>M7ouX>*E;g+7#M^=F(I@$gn>aw9Tb`1 z^aBcGaQXoSJOk%ZZ3YIu8+=Tll|G>R2h^s4Hm5Rzmzuy<`e>*zFmNV4H+0LFS0T)#2SH?#c-zUGB8Lxd}m}}RLRuWV_;xjqRzmek_~bP zc%>hR!62P?4WwY&RFDFYqg7^t9L;>)jDbOAZaOCegZtxR1_qTC4|g*%fR^iJ=`k<} z1%RB!%&o}4pt1n8kQ2(>AI87{WhzuNFjzjH$G`wGjX`s%E@)w*1lt)s28IZbJH#c~ zK+#~ik%NH&#EA6LhfMk~L>`EQvKV~N#euYGvGM9NFt~xW>9Z{YorP`broq4fT6{&o z083COL_CSj6>dN#+f9%G;1B>A5a}cfv5qnF;Ti~wfk89k6v*NxwhVm+h6vDRA@OE5 zDSc2m6H)-SmqFT$i;01eH^9sgy1K;ps7&arHr3gnHWF~92nRT4 zA2eiOP}>bkBG__vUNvad7bItc@*6y7gQBj_kbyyP1}Klfa`rq!28NX|QK5MtDcBmm ztuSFou4a&S76T8L-ZL^VvX==PF)&y@U}pqp zB+F+oM%`U#a@O2-8l*0tF~W#}K?`IqgMnN#0|R>zr$`3<@Hb;7`B2WOF&^^`T8#d1Gqfm1o?~;RFwIO z9|YMI#Te|szz}W9!^B{~cASxEoiPK07D%2!dzn2W1KUYPki!_X?N>80u$^KAIf_Hu zKZB8h?KC4utww;*Tt)`Avy6(y3=HbV3=D!xKsG`|FEN@MGcdTrM1@v?e7^x9e}ggH zn1LZ3Rel>t-s0MG1_rhVjPD*ZGBDQ|GcYv46fwjI&ShliH)dd%1rvhAtYua-BLm2> zk>;}@q0Y$Q2Fmnod5qv*I_Cjn28M`pvWyIDv5a$485m-ZM=~(5y=1%wD$tqSz)j&K zMo?>p$qn4lO=bkObeY`DK>kf*1Qn!=ZlFZTmd*$YPDV~f69xu1&{9*jY{tEyH0w4g zoRNVohY=JhjBY(3PA(%T5*Xb;>mS()7(p3=(G4`Jz~;dO3VcR4(2xO}C(|8A1_nkq z(DFt$Z>F8jAP#8VBbyJ?J`l(31jy;djD4(342MB>O)+6$m}SDiAb1iKWDx0c#^WqZ z44^P(+-$*ieHQj3MLE; z;7gjngQUTRTNtllWMFGy47?0FKEafMLEIE-uMkKzgN2DPBLmwe#($p~8JKiT85ls9 zRD#_FkvBV>%gDgCo3Tlp31WPJDJa#!%+NJqU|=xY{Fi}&?JeWZ7mN&7s~H%WN=z9T zs$lj&r9U#J-ezQYZp^^IG})AaVJ1i#;=fV{Mh3R8j5E$bb#F3dVAuhY27AB^Ed7(Q z;0#pvMNmX@}ZX+8;2DZP9Z>~Ufe=ucW_y&@O=mtwOGX4Dx)y;3lz#wYIz#s_G zeeym70~;$-5-9h90uOYrwFyWXq8lvD$@KLCBLm2%Oul9e48b62h;D5KMg}$krUpJ} z*yNZoFcg8LA-ciRB21^wLv?qXF)&O7NrQFAc?U5vut_j!UT0(w2HCyFjDbN2WDP^y zK1)UhHW{Y6M~n=hGKc9nLJBmF!=}J=gb8ZrBaqZBV+IC>IIxrolROI(#I=7xQlJoL zhyxAyuxT)Pe1s+v33CPpA&4%plnztlW2h^QK~fN1U>6!NJ?3YExX=$F1$Lnc)8>6p z7iJ=)!2L@LreCKS89+8LwSc5REQUC+lnqm)1QR4B%m+z9>;iWs9hgcFLv`%}NkMdh zrCgXEUV_HqRge@|m%%+{Mh3RotTp=?89=?4x8@8CKg?l?^EN2^aDFjnU@(X=0HtD9 zlV1>Zq81Dc3Kl5p4D#nNGO+z&jlBXZ_Y@R^`D7pHw@rW>itxT|B zU?{+*Zo(o)2DX`Or_V4lxSKFAbXYJj%!R81c?=x>kX&XEk-*5nwvz4jNr>XD77PqW zQ5A!8t3e+hBLmw`Hj{l2b$2Zo7+%2DL6m^jh_Y>F5k3ZqY6eRN1_4W$S3$`OVx_)u z8Y2VSb(W7$7#UP785s28Y9Pk+RWdTLy-XaV>%*43Nih*GpiX5_LMi$27RtyZ+Q5AseTayHkpHDF{zOZ6o_zY73 zsaV0w9NFAijvQlT_yVeTc&r&1#I0cg0CFOO*}5f+3~ZN}UOs}`59XP_skOz`}WzE3w0VEC44O-^N_MOS}22?kv4d@~asOKT8AlZI19rzE`tzpB! zpl1WG7(h$z*#0w#J%hGL+-(>bd=b*1p?)@I=D+Mr44}poW10;ELk>b3)cj^+XXbm! z2$62JVPNQnOM@q%*-}|2A7W%+Twue%uo@%<@{|xLni%vi`7tuExv=Z)W@OlJ!@zI~ zE)B|DQ0XA{iaU%9_iPv#-l0effz^Q5wy=dV|Al5>Ms`~U1|eIh?~&CcFlWGGN86Tx z!3?ejRA@ogzp%x#mz;IAquVroS`9hRWNUT3614qTLy+^xEhdqAQoDH7TmC9 zvsVi+F)+@sWnfqVSM&?izyuMHb&zab%*(zqGBED7WnefAQv{jhW-DXY6^E1@jCX7q z7@otVAq56_#+w;!5*bL;eN51KV%5EgzvlbHtv3;hsGML*V}D3=AMnkVGv5Ll9^%D+oN81!wU&YAKAI!jD zsVxC1A>kcP2I-63Obi@sYe3C^W^gBD8)#UZe={>91KYcJ2hg5>(9Slt^`J34@Tdpd z2GF<#$zM531ZZIxsM7cVJ);3d3&r?a06& z2$B5M$H2gLlK&ASLsAU`gOVcyg9bb{PzDii zkl8oFzCpAnIx;Y%!&E>e?<;+SXs>f*VCaNNLbY?9VPIf;9{CrN!WK9(Fsuft069%4 z1LSy4ki{Z-{)`N4udUBRlpS|uV7P>;4BX)d_2w9)rEfAaaIk#>b-f@F@eec=p$(1* zJH{7|@R;}t8jXd-#5YiPn;G1l`vHy#aHRYNMonG71D8HU|@h~;9#t9Vqj>7OWgtK;uLdYU@&k2b+~vKy$>-m zfcOhQm+pboJpw5)07t4IqxnNd1_mbvhJ8*93`Y>M;8+!9bbiFh!0p7qaL0*(;SoX> z9CMP4hkr9Nyr^Md_yux~Gt9{bU|9u5rr(SVicSm+63z?^$}m|-%ou|W@KP#2Pxq1U}t1t>AD9xrAZw$0Kk$A?*FUjaWOKmq=1I1Aw$nBkfCSwmG+Db zENP$t2uAQ$N0xMOPhaZD59lHSmZ_k+kWn4f+h>^uDt;g%Uo6wXbw7AtBg;&16Ga`= z?`N3>ZjU79CKfQTEMjbOVPNQRVPFts00lr2Sadbx3>OB56);iA01F#Po>SF@fdQg* z8{=LV28I)GMLZyRh}1#G8!ikCkKs~62&oH!*S7@Xl!AX|lyL7#QccGB7NMD+E~t*}lVK%DC_WBSg&sR|baDa5W&yplbXXi~d2?JaJ`U zcn?U$ymX|!~hCWMh-Uy20k|i20?jHP=On+EXj;V4lpv9xqyZ&-53~j zLDJwzf=K5u=3QW9Z~{rYxiK*KfTY2?!3|fIQbv!*P~E9+3=G*IX|QgHbRFZ;A5h&b zZVU`vAZf5}aKn|Qol)s7BSRF(@WpNn3@bs>VBHYu35=mf85z<*(udp_7*2qsA-X~B zT9%oNS?{5`AG$FxJO@cbbc3ZAF}^qi)y?3}z`*7X_cv&F56c?Hyj@VI$-6T!s3N36 zyL(u+GU_~lO53?JFt{M3LA!fc_A$Oa0X00pf)wjEykiRQ0bfQ z3=H=X(x6Q+EUy{UA22egg3{IxcLoM#4_GG921PpOS7!#uP8gQ|j3Sau5QT~!3=BGO zg@z!7pq(%*5=_T#Ld|mVU|{fvD*>AYR-(vc_==Ii0%Tpf2LnS9NC_yCguqHT8C@74 zi`-dCnaWNxGBkTLFfdN=U|^UHQV5DJAv=(DoV+d!4B%D%EL}{`_Jj8ScrY*=fGdI| zXwbTSmgP(dqD+t!d((q~;U!!RD3wA?12@N6t};Ek2u++!o(v4Up0JPrDTFlZS#C4+ z--D`A^JHK!gsTDN2&kH$Ob#!g0q*6=zz_;o1NI`sE?(v<0#HZgc``86!PS855&{tn z;4Tk~E_3@0Mh3>oo(v50;EF&c0i@N>V#WLbB){2{fng_19@0Z)ab|x0mXSdclrAoL zGBDf#NrQr#!HnC5k%7gV`Th?^21AhaM^6TZ?+9todRvxg=8PXup9**}Fi3mBLIdIp zu$nC953o#O;>EyV4^jiN0TP*Jpgsdj8FSM^XlO)uF)$>fsR8u|SX!CC3qnJq#*2ZW z9i#>v*ATnFYNjyD{fFkT1zrpct3hgz>;m-%SmrS^-h#UMh!+FHd5{_;bHHj=Fy}sp zn)AYof#EYq4U##a{s7Bv=4B@tA$r#~ zTGHBkKoj~0?}99=KElAjdUS<11H(Fy@p+&uA-=bhfr0g6stW@H(;;sLhO;mkp%RdE zKSH$4A(i7&urPkNYq%@cZa8FtDzx0;#h;C&|FT+RWm^z`*6hz#v$U z5Nwn5VPH^!2|_xC5apf5J`428IZ@OgBPiLb?wFLpfXqw0c6w6*N!o zF4Dljz`9agj0rrFJHZDuF%QxQkyul{6Ec9h5+nh(3hp-s%fh(~U|o@n?a(PJ22N0r zNpI%_dH1=s9|MC{uQvk&gBnPfftmSrI|BpjTaXaM{EvruAQp4_GB60uKv?|c+-Zo# zN+5}OUEU95&um(v$bbuv(alK(=SXINo5CW0_>)?Fq!@yt-j=w({ zz6=a`z6=b48$f2og9RBF>wFm)I$@%aKn?&)aWT&HWnfqWmjasyk>X|C;>*CWA1<{G zWS{|P4G(J&V=_Av1ISU=eHj=Y!Igk@LzF}@ZsdR{`Q^*N!0HEekr3Dv3vjZkWaQk( z$iO7!$H1Tpmj@ZjfC&2(P`U~NcdHpV&-gGf_zHoOSR13JKLdjrNQ8mWL~Jqx18X-U zW2zqmLpI2$y&$)mf`$7T8EgC)7}{aN5Z^^J-w7*av22n58V*$?|OFr;ya$FZkxKF+`(9?QO_ih&^=w68`yj(w>=0|P_k^kPV^ z7l{001YvP7Xo|ToGBAoiVEyC|Taxe)%x2&OErrq4XJ%qx6u-kN7yy&L%L?)#gXSZ9 zkj6W#+DJ0sVFu}Yw?S(^GJOKzi$g%OuVDXx7!1-~-#`kcZ2~C(EoM-e3F^ROE)EHP z%g7KBz`)QRz`!8H1{$bB}G^;d?iJWA$%o80%#f> z+>_-^I~f39NihlJBuOoE6)R#Mn0-wCs}O1NAY^HwHvtR`46v0HYVQ~s%;EAN!=Pq>nw`8$ z8E+qFWB?f&2vP%HrvO_?apD;x18Cko8!ls%ewLAex0liF79#^_WiUA5fCehS16y;0 z7#Pq8qacn34GjsQjYt{U|7K+1oyC~)pON8q5Okpp$Si~whKv-DeShp3nHZSWgOSvL z?c)t5#lB1%kbRPj$_z{l%s$A5Az26>0t5M(K~o|Ll!+d&76ikx*F#p&L_CA^4PGV& zM)pkb*cpE#BX}8uC1~vhs0?Ayta|}kd*ROfDVTvl3#1#m_QIQa#coCh?OFzgUBL_t zM}rv{1Pwtk3K~L#D)DEwehyJ`H<*Fp1zZVeY=^;eM?SxD2d zfb*y7X3*j-aK=&H0xDgYK|^$^TS13USqg20Y%*ieAOm;R z!wuYrFmOL;_W;De1E3SEzy^ZE7&HSwgWlo~SZ5*`2nmVSW1uxv4_HBq>mX~Y9nDs-D1!3&db>_b+8+;PCmlije`7 zh*(0QDFMV0y41nIz~CNt7o_6fH%10frJ@E?0V)rLgg_@7yT{ySVBqj!%VA^yjjMXV zRDjAwp&+n|S6@IXs%A2RSFUEkRDhPN3h{#uEOlS96J$%|A4c%X(;k=#(7IEhKT|;N z_;7)Nfg@Eco`GTQECz;kFcqM-9i)Nh?g*-FeI9Z_S}zx1DnK3;3YZOACiQ72BLnM8 zCLw+%hO;3I3`}7R407@Dnc(4DMAIpF2WaLNT)8XnzRk$M`i&{-10z_6DT?1g;IUK(}{u`Gcw!Mh0fkk!xxlO&Sag*{(Yn82D@*b}%qFg)uN>iyJX8@Yx9& zLAW`f8@~CxeyK7rWa;}eFeqy_hk@6WgPMi82iG$&u$r+LZGw-CKw7pciX7X1t0wdI;s^i zB3A&q+eSSGEDAcg6|xr+q>CXRbhnNAERgA-!(0(E5DVQwciX7n0+Ar)po3n)7D3Ea z2HkC=4!PR~Bn>(M79tJeF}Q>7wo(5IB0+r6xv&sfki!|2L3i7zL+-W#Nv{fLV1P)2 zcnpPm*_jw57&XMcgflSkKl#SUpdpz9TDi%;mxqZ#L#mtsw9tLcYeohQc>@Lp1_AzJ zE=C3o1x*If5m=wjF*0Zr|U%EVB@p_z1dJp%*iyj%WM4+aL!WU&8AL01TBrhwQi49xe|GcahT21hV3 zln7{MO_5+=03D1AQJ)Q3M#lhAp95lZFfdP*U|`V9ZHA}^Um*xOrxv2VoE>!Z6hwUm zh|R&kY{JaIpjo*&f`K98StA33<};@E;3K)eMldjxf!qK(fESXSKxvAh05lt-$<73l zl8G?6o8KFg(%1e-5aPmAvBVK0ffQv#lXbDBHPWt zkPo^(P;)X!1L#Cwh+IDC`asQTAYXyb_k{=+fUXbJ{LBPu|A3DBMYs!`>LA492+(yF zpz8xQMVUc?3px=PobJE`LjmaeKur@SQ0WaiB^YWn==wlSab{5Hf({K90@(~E7z#kw z2WrMMgB%DtNEoaEY!^cT==wm-EM`zPFppwj5CRjRbO@1W4LFCn#77=E*QHXr_U~BOk65B*Vb_gq49o_$cI1<&&Tk%q@Hq!g~TaV)-fLY~^Q= zvz1>!4qSc-I$~J~6!pU3E0RGPPl8MaC3YbY!N4u@19H+YBlN^xCPvUnzY3uHowZfC zxphEm2D!O)LA5ep_)JCyMs6$TSm?e#Zd;HnqdKV3&TS70LPm8S9tH+(2T;&LjyL3X z1hoYq2T^i6fvRyvQKmWu25x^w-xvml;1~u5!5YwMlMvBB#^e|V2GBh`U{RqauoNRm zLl|RS3&xL z7^GvNt``DX4pzt@25RGS7oIL)WB_SoG>&Cpumq_Cxd^h<6;zNiaDqO#~_!6g8EjbVBs4~j9+3I82-bAg`z=nW}t~R-KR`#lNcE`#e$C0jbmVt zi(_CAOan`UX4Z6HGTGZOGVBLQo5wLQ*dnAslV`ebnRFc(8FFeF7#PFi7#Lze(qN0t zz|vosm>d`xK;gnz8ppuU0F#E~MKjRkn(j}g-h8MLGvgQ-=EKx5K%^O%cjQ5h*b&FT za2O^HH3Brot;@=MI}z%KJ8=vQ&p~QHeh^w33z`TA9ZRIk$(&RJwT2;{fq^@ofk6=D zQmC5xDU1xdyv)k47$DA7iDzKY2dP0aXUzfz23T&KB6)yvCn9--fD(ZlGd;9K(}`Z~_B^986fq z86*cw95>GWdg% zM`;2BLp4YmY%wf(e6V0-0Ht}xDG3Y=^I_7^xP>MUt_-LVI}#We_QBM^lLtpS)QIZ| z3=EH8(oiFy$>X6M)DOQC7#P?R85jgXeh@kmkCZ%SmO!nMPh?=w0;vJH6siWAJmz;m z?Q%|JVDJN}K{5xLJmxQgnvn?aB`-e^R)T7#L(gmxbx1gNhd!aG{e0E_8k?Gcf36gGHyh zFfi!kfSBO&XLSZ>u=p%!Eu2n@4>=})s$vFd=QCh8^pRu28L%7tmw-$#zW_1;Qi_5) zgV0hG%mjM~Ybgq<&l#lUK{s*em|EJi#C>x&Z78&^|Ay8x|o<05fr$0BW=_NM8YM7vr|Np2EPu3>uz-RM6n= zIk!D%K!h1mJ%bl(fO0&yBWNUm8MJht+X>X;w}#ZsFOnG;-X$|I2pWMFRzd^=|0Xjq zaHK#5g)G1_keXRMg@Hi{CIhLMMIaUP(zlEZYm*rmEK?X5TtF)9Kx@+ugSN6kRK)gi zGcoK)W?+a;VPHsut2hT%0jZXAUqQ^MO<`c@1*rfzN@!6stX39=)XHD)GBPYkVPMz* zR|2vatd2nhQYrgfWMly8JD$S8a2BKtpPu-~@%ebm~h+21dPj(5@VAy?D@u zB5u8S(8eKdy?D_6AT7{-Ee3ZMe?|tq?%1c0tv@oUuuVaVpqu^l`m%pAGMIq`!JCml z1cRP!HzR}IL_;RXl&xOYBt{0kDGui#>pS$Ou4iP>o1V=Em9@`cWYC*sD+uMz_GVglZn?L`6)XMhJ;!GlcT86@cd(9R=n ztDpi&wG zgDy-^s0S93P$GE&O4HCp(sPlK;chAe zLqi$^LpNN-XRr!LBH8*HV#cC028K-_6(C0m9S21KxT6M5BpqB#3`f%#7_P#VfGh^9 zgC&wqK_&)}zBg$M44**CK(1jB1`R`UmuG%vWKd6MU~o(ajR%DmfCu8hBZDAO^pQw# z$OwTl9{Nb6FlZ!_yN3SfB&RgRVl?Tm!0-Ko}v-z{J9G#E5|*A9N$S=6Xn#n~z?=we(DjxE9E{9m3=9d{pzAFS zxEMLh7#K3NLDyRv@PNC(1=?Pq?HU4LPKh??dP@T#M$m{)g*NDVO9L@R(2!4qHt2dw z193)I1_p*EZO}a=1`>??Weg0>+Mw$#4P+SQ%NQ6sv_aQf8mKZhF)%Pp&<0&^X`sgl zN@+8+LDyRv=z}>6v_aQf8W?~%E3`q^TN)UGIUBS=*IODGf$zH9p$)p;(!d1lwgcLr z>n#n;7*)#{7>+P7%dTW#(02ewgf0W?m)FW%0;U=#w0^24hc7>r`~Wr6OyVm35nU@(f?l*PcnYz$&%flMp7w26Vi zD3KB5M9{rOkoIH2s@)6>MlYE_q88Z<3_>7+fsF%{rV2I&GB6miF@r`&KzAEKMm|9H zK~xo3g)uM~eFy6WU3w%08U%n!F@-ZQ81aG!2|yPi34w!8wcoqr-Jw`3=BrOU{#>om>?boHANxAIbfv) zv+@}jj55IqA`4^`h+tsjD9B-8-~^kZoXo&rGy`nPERX_F_z8ho$QFW(EwBcK;1949 zK{q`ihu|G;1_q;lU@6e;PhcsA0^SNx{DVUQbQu)HgVhn5?+w&M0IQQf+Fw~ahGFTY5f^OpC zFJNR~Fm4Aqgn^$wn}NZ&1H@+G=bg>KVB85}bMW7v$G~9R1!D8?znaCsVB8I23-Ir2 zWneJw0kK8+CCeEYjC(z+gNH)MU}%&oO6U zFrExbsRj%MGDZvxM)Keg2Hgt=b~Qu(&K(R4M)N=+0lFm&5fb1W!;o*x!N6d&3}iCs z_Asy>2m$gqL;m*+1_q;PAl;x_#n5#Z+^Yo{4z}`1K5SGH%mQhLWnEA-7H|nOFc>j_ zm4dD$gIEHRVJO(4!oXm3h!NC_Qz&3yfJlK@3~U@As|)@)GB6mOWCYd7pbN~96coGy z>6KyxDFa<du^!3DbQ451ZTqN#(*-<#mg$e?S`(B<>FK!JJ$&oDD%&wSn#TW+=D? zDjk}@!l0|$pu+B7A{iKr9)L)Y6G6ARfn^{CnsSy0sE%O-Q6Op1EpHHM5RbuKS)YNy z=oN?r@j;irL1aO$VNkYLW?(Q9WCT$lY0#x`5NQyPL3!p31_mP=Mi2!O0F59+q(Qo& zVKs3g1B20NMo?o5bcY;79ul{&`4||C9y5ZPdZ58(gcLMx{X;-*10C4J0KSI}WQPz) zD@2}+19UeT8wcnPxjHaeA0ErV(7*^5uLF}zj7-)1pu1GRvobJnf)>cKaeyu?W8(l_ zFUAS#^z%k*FfeGDgKqa~WYn_Q0=gi&jstX)RUHTD-Y+&N2@wI^Zp9qy!N6c*0Gb+O zp25k$U}6YrJ~3BzFff>aHu^F!mzXm!n3#i1XAWJ;z+mDCYEm(86J}sAaRPPnnUhQz z7)+c&*_Ju?AOnMmD=2|8hk(@jfX&?sQtJygHxZ;3v`d(QIR~UR0Br7>^9&3oQDAfX zvKbgmV!$RCg4D)>ne}rS7);{8%+(;Z>0onvL25I>CK!O!W`UV?Ahp?G=Ijs#29t8I zwpk!%6IPy<@O$epFqpc7*b4ktKzcnuYz=+~ zkX}y^+koE;q}L0?w%}j8j)B3{8^m_tpXR{8VCn;6d+35QrVjpKQRuU>X8qhwz8&Vqh>01F=K-g*P)Wn8t$GVf;1o z7#K|BK{3uG9XvG*>LY-shC%K>RmuRFFb3TY1{M`&VD_8Dz@VQ8a#`iu zOa=yhE9Rgw1_mJz!NA4=x=t)VH;#cp|1HSNpc}*>QUw8=3=H}<;5IMlLNTc5#y$oH zeLJuy=zcMXXueG-1B3o2kO83E#vp6mfk9smY`}e(JA^0;pYSj5hhR`J_u9AP~Zm&5)rW3pbOQ&W;0aHJ;cDE zF9jAY_y_WR9oYAvOV+@?XQ(XlW?<0wV+P%~26ie#elN%un?S(=x_u2Q_)MOGL4ONK z&lhgH1HhFr=;}6v z6xjEWTBeDy(2apX|1c=L^20$10u&|;pv&E$rcBIYV9?(O_7V8jHjtCRMlrB)fG%WX z<9MJ9O0b{b~>y~3``6~EY@p4t4!_WZ!j=0 z+Wor5z`$fDc!Pm~#cuvh5XpRV85k7oq^~nD9AL0(y9uhj?bcpr zU}#{n%L4IO>~4a19Co1~o`78=h^JuZ0pcBCu;T-98yM{pLHq_LyVutk7#bQ_?8 z;{eTGuyKHf0NFS|2O`yh*>zwx8wY4mu#N*Xl*^264 zF$d`IpE?dc6Oc6^HX8?MmmeF)VP}vC=pcLSoS zggOq;p1V2@(4N5tMh=J&h-3o`)p0PofJ_B#9BN?X_zJcHw5_L(1GHzSj>D^lfq@eg zpbd=RkYeKiZD(NP=u~^)pxvx&9H13^bzqVcv}lcu1GGZFj^nrw*i#S=gaoZ6 zuj2r%<*(xaEvT>K0IjfR;{b^_FoG#I4$u<4Iu6j<^9DvJ2PDMC0a~bC#{t@D%EqDR z53*m;2}FYSU9xe2mTt3gfW|r5I6y0%uNcyzaRD`@c&1A`D~#0qp0^_-2h3=D1HGoF|xX0$WL#}_a#P67>zF-=Th=wM_8 z%`VN@u#bVEAF7oPuJsvMD@1KZ8+fn|q^Xth$PGpYCSzd+$Q*e28K>X z&=JZ^#-Q?#X<`OLD#BmZ6m~?gAqNllx*0Ch&cB_n;a;3y(n>80VZpnClKV z_Zd`~8%PZU0|V4t4^ZLDG%<&Pp@;Dr$d^H&%&sTS1XlJOOoBF5hSY=HnwG-A6a>=2 zJn=|v7o$5=*9Dx(9#D6riq|MDBwm^N+H&qM_%yLZr4GauX4Gatu7&BuT7(m4V!$d}q!gL-chF$Uy*T_L_ zVVqOfz`)Saz`!tx5u_26DEb*eg)*}o)6512hIJ?=O<>I5$G`w`62nABkS>Fdj0`t0 z%)HdVz;Fj_CddeonUfi-Pcbqu)%-Zi$WR6KsXRQ~lN&+d4yrboYCuVodE$=xc1Car z)gVHs2da++s;`@I(-B4nrdm*8$22jbi}3(d!3C)2x*0>SFfuSTKoo$I^kl|fQ03b7 z^Bg0?OesiEfRYJF1LK?}jqr%+f<%8rC*w@81_(ERVKSq_9!3VHDehMp8NNad=z^HT zz&HmqXa;rn6p#+)i7V>57zLyu3KAd`LpS5i-HZ%OQ$ebkCqAg_W_0|>$iOrm)UE~j zyq7U0vxtFd)}|%~2Ih$y>bn{5ePd)`TDAksUr|4Wu_2FvVP6vi11IwWPl%yijIW`# zM8ZQS4V1IjKuldw-_6MOgOP!0?P0Jf8|u0l&w+9%xQ)p?aZY_V#HX7tH!(1t^h}#K^z|Zf`PAY^i5}ra6$az?~0S1~v}RT2(d<(DGPLP|5^nH;@Tn1sagv%8Moj zhN+C8^{p%uC)BesOlFMy%E-WU=+!qyhI(0u`xk*?09@kQG&3-CF}6d+LApRv-HiN_ zObkqiL6$R3%zy^TDNvAr3RQ+aMvudc3{2My1(_H?(XA*4F&8u(0@BYoXK^z;ja>t! zF>s2}g(~|AQUfl>1P?PXFx>1}*c2CVS8j2S_{P zoau~3pxuBMni&{wH^VX@h{eDO+L1Vs@nACp!>fCY4Bwzyr9k??zGi7*VBl*3z|-IMW++Urq}HgGLL?Fc6D@6SV(u1|vv$L0Oj#`q42^KZK&+XJ@$nf9tZi*A3=9mM^`N!`s4Xyq5u`uhFe8J20wf?M zK}Lg}y1s>h;Skt#ka0{CGbS;XfUQYjn9c~=U&nN@g@NHE+!_#T7Gs0~0|P4q<2$fD zpbdE7HpfIpkV)d)Obl93dko?Bh_^B@XtjcZ1Y{oAp4)JHKwH_EEL#~E0$X8W17gi$ z)Zk%aVC`oNYX$iSw5beg56C2=LyQbDP1ASvdF4fS1&)1g{n$#5Pc zX#GFS2S(8TW#)+!>KPa~L7Q&pGlCAG1Rave+s444)CThtgat2iIhRy3Fid3p-O9kQ z{wX8FDn&@#Ad-=H8v{dV8z{^`=0IZpu_XfoQ%V~HLq6PC5Q~BHB-k*Ja+^zx3`Z~w zo6*L=un24zNH@eV&;ege8`~Hdj-eQaQZIn?fZ7rFpe95QNwVVFQ;tP?w6 zX${1h#kd=EP$mcCG|*-oPS8m*oS=hYW-w-TFfcUpGBMnPS}Ow&f&Co}44}O`lNdqf zf%8vu2PA&#IG*}5Ff3#QZ3rs+3CTW)1~P9aXt_s70eCME$ekq&96lgHaG-;Xtm9w_ z0O<#96#50V7@^-6rXSSJfawPbg7t$o3)OMRf%Sv75lzCdzZa$-)F+4O2ML1pgSHaQ zW}IZtz`&slNuA;l4=^y!Io-*?5ZMJix(UQVU!wv^4WMiWs?ZlPg2oKl{;+`#W&zdc ziy7JeunBd6x)vZ~m?y5NZ)1$>0#)}5>f0ET!K@ke3|)-sP`lqlgBw(UR57sqV*?#P z2(H4ipejJ?Q9z28Ft%1PGO#hRgT@}fEky=S(Ech;(0(dT(3Yv`jG%i|n992t7@E3Z zu@5R~7$!1ibTKga?qy_9P=WZl8Du25*k9Jgz_6hURJ4FJg0j+dM$oy)O#8bS7_Pw0 zfv^xI7U(SHiHsnPoo^T!mOza~B=Nsp3=HhuAY(!1fI@yYBj_;5eNdGta0jS&GcaUy z!!iRXY?&rTfO1v^1KSN2NO%NvF9=t#BMjMYXA3|&wyh}ODJ4+Dc0TnmT=)&lAQ&t?Q2 zYq$cc1vEYbacF!G14Axc3pCsqW;24$F}nm+{RpHK63smf3=F-{q`j;Mb7LlI(q7ES zHlOiM4=5#rbb%6g8zXBkC?$i^G#8k)0F;tHLao{cwQ33DizEgHwuOw4nDbyjPo{Mo z$-$t^58B~Z@)wf#5Sibr7g~6LcJ;wBFGvs^9-v)*(-~v67#Nt+dl?wIz=}hS!21Cq z{UVSMsPR+5z}3~?%fJ9)S2A#QO#$r>f@}mAgN2~J_QZrqjJ04!1jBSj(A^tM%zX?DYJDL0hZ=&N1ixGZ z!)+5l>Y#3$pbhHhf?WhACNhF7{^-ldun+1i(1B7Qmod&s>tkSO!fM4NMv(Pj_wn|D zi|I*>l3)hNecQAc7?@`DF)-{!){Nn-R**E*S*?c<&H@G5L`IOs-9H!@nEpXx4G~&j z`WP4l`jLD-i4kNO*fmSQj!2lqxB<+FV3^GaIskWz8YG{3vVeRB8a*)RXJEM456d>7 z1kF70M(rZTFFv4imRTW%?1frT(U8r+_Ky{$mU-fd+AhYcP_yKqW-Wmf%nWRx)3cZ- zHqULmke<_!|Hwph9!(zpp$6%p~^ngGITM{)r6?ifvQ`=nDLo`flVH&<^gCO zA2{sc>)7N z+XQ4UGfnh>>Yl|08ewFb=m6puFt9=Rpn3-+Pz4eIWie3J>|%6=8V&1jEn%#7V`N~P z!v>noWttezz%ZK;bpG}ms5-=`#j*(u3`fwM050zeK!_+UUz&^dlH7(vFlure{&=|KF8=wk>^WMEL62&xr8CV`X3-3j2t z$}pX=!jOT1$#fzEgTq7y=qLxM)?t{)2-4EY&cqM_H4stFq)cRB$O9V)(g-Re7BGSi zhcAMv1f9PJ3T?(YeG?fN=72D`Z4aszL8_-Sg4W+Mt)9rhZ~$&AgoUWY=1!^>+yni{7f#EaQ5g>Cw#x7(8oq)X$suEEZDNKSV4h<$q^ky(DWCR_ueE~zU zFG8^bT=4=%&?(@LFcjxbVqmDAgqo7Tm7FC5!xyM(P!R|TjM)Yvplw{x(%2?lNK_+Y=HDa+2A;_<2Z30ifZ+tKlAXEc zY`EF)CWA_+5TrH8t0!Ytf*>y^f(}psDTg*g3P60&vSg--0m~VAdl}mpKTigwS&ufx zA7F+<8{^-}psH~PsNV-V1p=*QHk%Q2EWVu{B#cbqj#8S!z~C?i7DiAHgWOO6IyfJa z_dvbX4kreN5~ywsxbB203=Da2-5?gIsNn>ic({NObWZ&os1`)}n>>YqVIf=#)Ix@3 zjG%=R>!7N2;1-;l0#B_bOrTTGLFO-D1RX|v3#u4l^t&kx44^Ickah&D(No7^9RjNC zL7Vm8K=mM^(0nR1Qa~H@VU;~d5ESp6Ak(HZf-aw8ik-^9&;VA9e!CP#6*d8+4pb^t zGH^|3oeCN*0GZASA|^80Ol4sBd6|*n7t}3?n)Sd`28KIWt(e3JvL0MmrB4M#e8MEg zVlV?#mw}Fix6_BjY%a9YV4U-3Dg#5&G~}3Np7^5<6t&q5Y;#yaQp^)S)O9iXLA6Fh zwStOQDy(D_jy4UBV+PGexW3|9>*@gb_Y z9T^y2VW|E*je&u2I?UTJ)yo(`cMpgfLIMdtjEplu42L#Gwwd?}!exx0lW;_hASpo? z?x%>Ea6i>Cf;dn=6)^DDF@lc7VVal#imN;jAL7RdNZc%A1T7|Wf|`g(TU}5SD;U@e zpk)`RIs~0B9|Kj4=t`}c$-uB{gQ`aK)o#pWV0Z>s4Pt>JmlL!F zXc;5u6r3ecEr>*CI14GnK^{qD;FV+qi6T5I$p{HrXri0V2->@I3ThPSq%}}zG0q8_ z#lTQA3+7f(Dum8p<}q+5gSO%@O-yKG1Z`UZmDURxL8q*V8bbmck>pm)0!@j;$Cog$ zeh0C^J^-Cn(!j{E3|wOOgfcK(ItD3~5c*!iJOVl}1(YO87&uZvf?xwcf(sczhtVlR zZ4?AK8k}sUWe@R-d+Mv&&O4;dL&K#fME7wb6;41RM!MuUt18_hEZV)SfA&_1hk zP%V4l;X7dt1H+{`AipDTv;v7@AH)Ks9MAw2D2NIexXVF_k9p#P`W1}aiaMyr*3@R%ZFoHI?U4fb+0uRvxa~T-U!7T={z!rmcxJ_pS-IB=kZ7u_Y!aN2B z@STVs=fY0#0pE!TX_$ay!51UWVhnd;WMFk-0S#)-V(erEb3h}M44fc`Ok}(~mw`e2 zA0xvHs6!AlCb9Dv7@A<#M9f36W)dUF5lj;!CNVP11Emm#NsO#uM!+OSAuxl3VF4p( zZ<~}UB!Up(v}hg!!-jdV2!aLeGDgs$M;cJoh=}+)j{)a7N1!sT1av48ND(-gKsj|8 zBj{`-Ck&Gu<|CT~Isa%r%v(^SzA=GRfsFzkh%}uMbonGx<9r5&4fCNPo($Imy-Tum zJ_7@myCe}&F^ln3BqIZ>FAKkh6x)J!yKq15mDB>fPtZR0jL}S8378+ zm5iq+F)-*sCn~|KUBSiki3Ol(R5xV?2Bz=L;*&2g9juHuVc&(1I?2cKvk||ECcf$ z;qo0|z7v$co{@u%f#DY$1H*d81U3eSKYAcmNGt<`+GY?dK9+$2w6<(Lv<9bLzE_nC6~;=@Fp6>(oAMxIAsK4B_uO2 zOx_A&WhXN*6dHh7_WleEL7@4Um<6B>a@Wln7&sWGZew6zSuMrHFsX!r;Q?%h=%!^eF4E$=KgNs;LSTplV z7??`U85sCAvOu~xSUEuVo`Kfl^BaJs5||k|B0=VWmgMsrf=2k5nb?yG85o#AvpoF9 z3qZP9*vmJAE>i=UW4;L_!ogky5&^B#=XV6ThY7S!pWg}O5GK$%eSXl20R|?}I(>du zkkw2fOF<{%g6w1ht<&fC1zE-fTBpzN2eO3;v`(Kt0AxH9Xq`TP6xdwQI(_~aunC}b z`uwqACTN{LKWIB31JmmB3=I6~U~@t1^!YQvCV@1)@(j!z?75p67??R&nL%-|bvgrs zkQ}%}IyIJoK|tuDGZO;?mw?a}(ADMKzgIIb2wepUaZj1Wz#w!zn2CXbJ7)m{gV2p+ zP@?Dg5em9FjR(YLU-IJ69S50~6?yLSYa7GzJEKnad0e!d`r<7#OB9F)(arVqn(yd@*8N_8lo$iQI&;(!2m85 z2+}3fqshP^Qm|T`fgwDNfq~J3g@GX$t^{l_L`ey&6I4ky3j;$LTnX3|=}-9#3?kKx zZ7d876Jb&Up!Cil3%UYZq)vMg0|Vny76yh5FlkAUeGGC%{0s~tUBXrj;D~2D!NS0B z4x|Je2=c3&7#Kt*8@Vws#DZM+2rk1Q?7_^yz@Q*v1)`Y_$}lj99`H$HU{IWu#=s!V z$jZRL1j;_5dqCNTNvDK?L3A%Dt1;y;GcpK=gJNGi8gz~pN6Z>l1_q_XNKl2N3_7iY zBc7X;fq_vObT9`;aw*7S<gu&_p*Vr5`Z+Xy=0M6H(xwB?F( zjtnD%0&7ey8v_H+A0|cy*2Imh3=9lRwb6_Wta01Z7#MhTvKbjzlOC}$FmUkjNHQ|8 zCWF`lJg(Y|46G?2wgeOC>QL7By=e>#>Y$4XS<_E0VPpVFnX)l3NP-wpiM$zi7#IZE z7#RFO5+DYHI_Q!@*3y0X5FP0t39t?gutZHZsDJ_qf>kpJgFL}`mIa}En7H3#!3=Ci3(pL}~8<^P{82H$srb*rc$?$_xH`hGVFh+(4X$%ai>#R zG_C(IFmO!};$UD<;s86qkl|r1m|+BFKs11aBtZnIkTqlg#e!gbh!L2$3t={b68gLK&EvI1x-uS_7sg9|u!Y z9)qc=|H0HW(JYWD(-pzg40kX!GY3q~>IGA?cYvumm%-G$mtblES2jrBLNze8$Pr8} z0i9o}AilgE%v-evOszQsrq+SB&MSy-V9EjM+o%MlHrarw&0%0_3uq&|g80@hFmKxu zFtt4;7o=fF6`0yN6HM*e0j73e2UB~P@<2-V%7Ur=puN-z;s+zayhD{>>hMf3bz~=) zI(h?49eW3+j`QV%w4cxeQz!kv)Tul$b-EQyotXos&h7$J=Wc?j^WVYL1+fAK25oT; zMk_GQ$ruWzxfn~qv;-r_J=)^ZjG(~L7MEiL1&g-0A|oh3w8d4S`qZHM)WP~VtFu9e z#=ZQ;&A`B9$;iMU@fy_7V2YPuV32qND!+9S;u#qvK6P6%Fl2EtFi1`cgO3=ANF=P)%4dYdOPGDvVS{^nv}0IBEZW?(>Qgjla9 z4RSgkQ6LX;45h==~65V31H@ zbPR)p(s_^!NTVc(V9-y^Ph*hKU~El*Xf%id*`vcK?f~IKR52(>f;Yn|NE(9X%@rh# zd_i@iq%r7lGzCdhK}H4!1xYg*Fl7!}lc*qRVFcz`f!6veNLn8OYp^*FrfhG4Df@b` z5{FDM2H8vF_T|wI+6(rql!Ad+lz?5e&nDUAPQ$A0@`g}p-UkZ|b zzrj3zHn3b^7nlkv0Z~$>2MZV&6r{}F6@n;pjv@vI1?e(RFjZa&rmAm&sk-lAs!^~Q zq@+m=Of_4Bsg?jR)m8A4%hym=SE)PiSVY9U)G$dr#O!A|;S7Y*WlR|E_Gv;kAU`oYxiKrrt=x>%dgm6);ut3QScpRDkr=@PMg0B{0=&0;XC#!Bi_~BcOsz zdnuUL(F3NsH-f3&Jz%Q;Vg&<(_$hHl1`f`GW_1PzLoFQ;TYzy7XlpsBeZyef%+AQb zDayDX)JQe~$#V)ZuI6K45O`C;z#s_{hBT8Hz>P1?N_$Y_%XGaABLk-_<5fOT!yjat zae6!>1E(TmJ!p(c8FYI&X9dUtNIQ+Q+8d+|+)m@H2?w)5x8QNs$3%nLa-dtzI2)@$ zhhQp$ZZqR-0y&pa8FallXLE--0|O)Htw2Tw3C<}w{0s~{Mhc7!oYO$|GVoZwWnkc( z4q|igJmh9z;G7{@#K0iHz?r%kq+zy#AOnMuH9rFb1K(YFMh00UkfZs8+!z^T%?r{P z82J9JXJn9d(x_x$FcVQ^WZ>LtQO(G}Qpv!;zlE2Pfph=wTae6ul%Ij&G(Q7_0BD;c z1OJa=Mh4Eq&uSRKP2)%W3=A*el2R9Q85uZ_%XBd^{01EzD8RrV@UMb_fkDbdf{}sq zG$<>I2rw{6AtVe`85uaw8>KQb=n60}SimGCK^|k^mycs);Jo)Xn~?z&BmM#m452U; z4E()yj0~KQ%APWSC36HA7;0dW;J5=540;E385v|1ndZ)BWB|EkfdB&o*mMX1ZVO8> zrZX^bzWrRs$go*}fngttF%0JOlo=Rg_b@8vF)~~dU|_h5Ds8dYosof)iLtE>;>xcA z3=F?vN*F9-GZ-0U^O=M*A+r2}&@chJ4(tX728*MXj0~JAjAvUQiYx>f80a?1syl@8e@+;Iv}gv4D}`ydVR^RgetGVg?Im zE=C4UN5+&eMg~x9y%l6&_zRK+*$MWTWEQBoYtGlt$iV5%D5}ZGASlGZpeDq?Ab?N< z(h5;%!CA$~z!}VVdNRa7J0S)JKTO387T0|k891XE6N?~eFinVop%AVPY^N3IW^T?D z#+m($3=@T585$%7b{K<|1Ss3)GESbt$gmNcd@M-5jPY&^Bf~|wJlLtArU--8*;Ymd z&MwB>35*OM;qsucl>`w``98+;OBopig<J3=D>Fc~BY$7d=q< z>5SKIF)#$e<-zU;5e#}Pe;61z=P(9rW(2oW3P5VW&I1t)=E9#D7&uolmbWl6v8WQ3eK0m;y-e+YZz<U+g z;c7rWW`L-%Woq0ERnsNPz%UiA2ILc{8eb-*Ckzm~)`>DO?1ZZUdj?`oB$KoX)SOGA z3=DVSYCxW1usd^~fq^rP>030U{9ybh%E0gkrUoiq$P^O9$N)X>1j+FjEoG*AnA!>3=Gpj(h%LC3miG;Gubjgb#D-3VAuwdhUf-M zuV6a(h5@4cych$+Rgg49H|Tyx&W%j^51>waC&s|=1tAT(-;r}C6Qd#2-@M`s48r0t zf7^lXcjP?8Y{MoVzS7GN_UDgF!Up&LFb)v-e)Q?fJ(0rXJA+dmv&%@VPxQZ%hbG(k%95B zI0M6FkQ69LAUO$~dLW8^F=c~Bt6qpRFnmT)#Nd#0hk=2UfjM9@BLgFc1Oo$~1T-r! z*x7)ZE`rSG+M(8~OE56#f~3LW>QHuM2X$qMT`ublbHXSFhXq7lVo5pfvI7DNY7$+)Q8&QE6KnR z43Y-f!eGZL&B(yHh^eX0y2~geLk_-$JLDCT2prgwhCsL)NLYZ?c(V9!f!dQL&A?C!R|6@#!D`}I)=q$`>62z)SPWMKGDi~ZauC5_ z2UeZOQql%hy+@jX;S5|gQh0$CRy@UGINQQyI7OoJSHXJ~=v2t!^IqAg6z!)UMz>p4?2eq{zegKCYMCEyw z*|v-fj5RV03_YkS!N%EvjeE>eRR?w3QW*w@t#E~4w}HZj0iy6HOMEC);W-%wh8LI$ zAr1iPgK80A^=yS|VU%TH5R*mmH&RG~U82NVcn|7%eOU$udrZ|(V=Ylh_F?4LbX`QGcfqWwZKCU+2`tP|D2$zGvpZ<716w&S zRExd>1A`|PEnshe2&lul*%q5ZwInGpFw|ht0=EyUWh&c)cBq!A3JeVEv1kD`P9eQB zh{M*g*`z_WoKRq3xQj&#xInQu?8nH!d4Nsi0VErLRbXJ?SA=;S96|^J999l?96*yyoPzB9GZ+~d&nPl5 zTnDKHw-7*`69&6*P|IJM{i`1%Ll$Tf@`EA+!#9u`kZBBdCqSbbs_d4lpwj$G3=E=5 z@D?!W+IUVK_V3D!49`I=Ej=X$1`~udXfU1AhP~Y$>QrAP28JY`E}fUmE+PjG{({suY+4RkgZC>0G@$ zNDi$mVr1a_%&zMJHPJ(bfgu8}5Xqrng)AI$tDp)CRTvoB;0nI7DG-6m-Q)BU~YpL+u|hFmM)fbWewx zI7^j*VHI2Y~RR)F|aE0g&1*@LGVFVqqWBjPfz`&>m^FLfQgB@7m zLXPd3Q2V9S7#OtR3XvQd8Og}Nxsl_s4NMh0O}xQahn!^j{Y zr(dMOz@QA8l8`e4SkeXEhJBM-4plA!iDjPh{kYe8#{aXT41wbcz6I+Ct78 ztX}iUZ3YH8yO-(=3_n2*l&NH3kUR$(>jEidkOoUTF>-2v7U+RiK7oeFWI&@Aa_*&f z7#KjR7}Yfx7<4rl7zC8SvY_!KId3OJMh1{UjIJ6C4Bl{AXV7?&oWBnjR5n?Ifguwv zD;Vzz4gdyWP}MAQ)sTUKQC?j{t`J1KaK6j{(XLlC7#KK@NP^gIn=}|0TtIAjw^blx zK&LReGB6m`gSMUVBnmJv$h%DjvE4wL&w`XVfLzJoz6lh~>`YAmG#D5>Ks6;hE0cXB zBLm|nkRmrwK=^=FdghBUFfg*~u_!2b2URjKC@2J#f~nAcFcrNNOvM}kQ?d8KRNP-M z6)#f-(vV+S? z`w#{O1+_K_&;g2S@lgy64UB5X)fgBWnAC2GGcYu;sDVySXy8!e*vP=pAfUD_l7XQ? zLGAH228M zX)!RUg&4ab7uL0ob$OBCV>z{23wv7Le8kPZWb zw@wuU1EZoS6XQWG1_qyxvlti@Wtl)zV?Hj13=E2LOrRBfHXv1sl1z+?v=|sxXfZGd z#8ojcF!*X$frciS7`MWNAj7f@$}_h!Fev_a(_~;^^aE|PQeefk810 z!ejA!zMg?WF%rUK2&{=?U{K6t1f^_7|HOg<2E`mkYaOsj3OWo7{)r{242t;>Att{s zs~H#+OCUTJ|I9oF#c~LT!#}^Ygh8=^x%Qqvg} zdl(mhEMX9C1zD0@TEw8(4-sPY2bD95lOQ}M1_h;{d{9nQ3Qhr2A>ai_N-?cqUg~@> zm9Y~{WuB{IVDKu8VqoCcWnjQ8lo>cb1%nr(9npg?M(YI?xX{IDptXSRw5Zi3~yatr!_Z^%xiwVB(Pc6?|YiBLlkwi;EruL!=%9Lr9rA&E149HTSQ!|=W<{P@z{tRL795h2)wK)^lAw}W@<12^gQOJ)WX-Q311Rjl%hA9( zg+Y-i?l}uIoE?*`&%mIRk%+N46Ld8qMTC<6mW=3*lT2FHu6 z3=I2?K^qi=PwFu+a31hyWMEXzoT$&hz_di2fk8PN1$#;1#&Ow-gn_~fbPTNHez6qRH$KKkdy{(@PbGeGs*{wwjT_A1)6v3~B~w{)%@gWA|o829TkdAT{88qu1Naz`(na(O!s=0hAG%;WA9? zIT#sukLnvUFgSu5#UNP*CRuX^2H_~sVt(;5&>#m#jIuEUgHkW(enCcX`xmzC8WgD< zi8?i)Wjm0Z4a#ruoc+p(f#HJ@1A_qQKoAC4&So%XVBj`}ib{e`Ut@qRyB3EDLvl3( zXDS;b10%1!FKFk)5_JX!UdK>%WjXl0g{cGht9s=HC1sWLFg9R!0Vg zxaBWEoa2m40;Ztbf{Yj#7>t+MGcvHAWCS^k!PtH^BLnLxMv$X8jQukh8CXvN>WFtiM65~u028NX|QAyBAa+094C>bE~HyC%CFfg1%l?QG0 zWpKFmoPmM$0ppYB3=GWoOc)rRz!WhA3C?9?_-Mkw@CPOYiCM?2XhsH*V`I!`L)NP> zG6aG$J!>8#xN9Y>WXix0eNL8iy2RqGcq)Q?D}TP!0^YEfkB`R6yy-;a>gSs85lre3_i0= z+Khogpa(1s8Uhz`$r?#=u~OkWQb>$iUjbIC&l;Lz5{30~6>lm`IQ` z*l-8qHH-|bEsP0~j0{Y9W(*9KFeyopY6b@rV@3wnO^mL885o%Q%orGEqRQJH&Shj^ z-OZ?73^jg}83V&!xSD>@$t8B1|1vPJzGc*?U}OMo-)6dI#=vj~riK9`{gJWFf|0=! z7R@{zA->_gEseDf}|n3jcgbh zSpPBxCqi`xnKLj%fTY3Rw*yNvGVQm9+FfYQz)%j7hUh+dpMimum8tD610?V!m@_a; z14%=4gQYo{x~mu&Kt5$!Z_dE56(kMOt*yYwz$(BL?+Oi@bLI>TS3uGb-C$`ErgvRX z-EYkq7(Rof!MYQ?gBTfDC77NBGBT8cf`!k5fk6^v4MV~{OGXA(8K&wcMg~xs!=#Cj z0(D$j6_~2Hpmw@|q-;RZkN}oaVVbQ5wJ#nd1qyM71W*r`RfFje15{TPND870ETzM= zwG*mqDo6^V3+zGzCJz~?3pXI7z%DdlTI&jR;c0{vc)N-PQ%NWz1IPxZXCNsMiy;9l zWy4fl28|6yO9lo>h+W{FDGp3)9H6>nKvEE0U?~?S^{r4{<{&AsE{l80j0~)^S=*W! z89441H}o3MzHfpsQZ@qY$}m8J{~uPhlD z{=?OQJSGVyz`4*OB7u>CbtT);&5U5h;#Ld{>Q*p+AgSx)V`O06$=0+5qR!rmfx!!| z4q_B&VIS*e7T*n!s7|tCU?_qs0VOX;#y2-kV`N~x&f>X(k)h3sfng$C4aAtfN=63O z7c3#l5Svz7F)-{yQ35swQX5);75`w_Gn+T-6eg0*KriCdT#F3=F&A za$wC6xeZK=r>z+nZo}n3`XrGQ>|tVjW6i+u9j;&%!r;S9j2t!$3=%f5Kmf@hYi49& z)U;t>utZe=u5WD;Kz=^O#OP(izz_;k0I68PYtvZWS$MxQFo4csX3Vo;V5o$tkpwxB z!EW6WMh4bPOwX$zbui;38wQ3MAT^*6hOA9vy~gyw6p{=WH`*{TYzIk$gBHB9jrA_m z)rFAgVZ30&z;F#D4b}}_y2kp1DOVV(`@IbV!&i_rST{ua1ygDuR5zb31A~Yyyy62b zU1NREG;b>-!(mXxr)$f=U<{H5>jp1fWBttZO^cD?0!Z4&mVqG%Bn`IP4zxCn^*d8{ z7F2h(EdxU#NE)IWEd86w&lak?%a(y*0!SL78?;V}^*_^FF=&fqr7Z))dW1A+e3q4& zc~t--1E?{@c*2%};T%F5)cj^;Xa0Jd0V4g}mVx0dTpB!U$ePMpb)SKOk;#sMf!7We z^Pp&AFu&x-$iV8t?kdH|plHXypaYi%WiF_65c`2yj0_HT3=E)q&A=@QNsu&{fGjp( z4Q0*&U3U)(9MIKeC8*|r7cH)-v{|f>4X>>=_t5VbYMI2t3Wn+RSbYOOZ+T3=Fv-HK2Hfs*!AG zU|{WMKhpvARGU2m!$dSS6G7$QJm&oqp?0mZXJFV0QUgjpkgC8AtY#52&ld)8vB!AM zo`K;eNDbI7aP?#N4^-MMV}A4oQra>h}kt4|pi zSm&{y)`ceQCI<$F4wxDSyCv0(46KGMsn$^Gg$@i1Ye3RqYaq$93e>;gWx1cg$Z)`c zf#Cv*w4@?vx2ri=jRK4Ma|VVd4h#%mP}P8X&J1>b(u@qOzuEr#K!aG#k%7U%k%1v( z|8xch5GV9-EdxU+XfP`jJeY-)%0V)crJ#YSlc4iA?N)m;GO*5P)V~F7$Q3yBOoJ!otXJnF%^0W|Kzl>3N*fpsgW55WZPc5DarIy6`DgDQ7n zCk6&dCk6%q7Ldmzz=C@W(#9T^zXofsH$5t5(!7#LVjMhG%82-Gq#v^X&^bb%zn7V?87FEIaL zV0h=qz_8GXfng0yQWCV|kAdGCWcH1NiV*FGofsHS!c;&d?<*=Yg0(+zVqka;lZ0yL zI>W%g`ur6yB!w|KGcfQvGcX8%+$|{va=b9eV*WgTMh4c`9Ayw?n$Dn$A5oNnJN%&D z90TX(Hc&)-0(HG05%CYSv)LFN5q6ATpdCC{e9^}kMkP8#RqO6Sjof#NT!9*qdK=wd1a4_C-W?*;< zmud&;60UG&V6bojb+~vK1>Z0*fcQ)<3=AAD3=9IjASD*yNEKuhb!22na%NyqaA9Cj zL&$<-Rg}?Mg^?lGnSsI1g@M5ZAq$QUT035aE zj3!o)NW164!0-~J1mri#nII1egY32d$E`JE@+ycrHdh7)L04!PK-3{3SFv{*BZJ~? zRYnG3Z4(BDq<{wu3`x9S85qRddKnoEm=kXMFfcIfPG)3aZU-sg>0oDMVD55oWnf@X z1`Pl(CxiR{%6VLj49qE@K~>1mGc#o9S$U;BBLj09XaIr{yg!XO9o*AbJn{oN^UFLH zR2MQTgL?bS(?InZWaNu^I=Jo!Z$@LD32vf*H>okt0=Gw!a}x^~m=`fVab;k51@ax} z^e~1Lu;^;WU#<)cTy6{u0w7UHV{{LwNhsXz%D@28x{XoZje$W6uILa*9wK#+(aMd1 z!4)ob0wHyQG1QHLAqy_`z=weW$$W_YHyEqj7#LdNiojMwjK0G-)s2B+DO?IA z1IDeONp!e8$ZBNyXN*_f7#N2oxdI9*aKn{3nbC-ikzod?s_b-UVCV-)gQ5e{>}Aejl(^5pummK%!kvL(9Y`9i z8{BYZE@gDIhw47=&cJXMBn{RLk*;Gb{0G(j%$1~W3807Bn=7{$p@fF7Y=u2fNWo2{?B+u52~=)lYyZRuJ9R1A!u&`vjkI&5md=C zPX>mKa3x@~z)BRETqGD7-hiw->B+!w1*8Pz7pQf~AnQPDjhRcCK4~*DfbP>{{N%~N z@E4>I?5xA=N85qDzvzfb?>;)JZ7{$F97?ixADMAvGpuq+$XL_p$O>@>>3=H0I zHK0@~2{sMf9B01D)La2onBv92kdLAe(yV8`&BRv(Rny_cz%UuE29zV9YJM_J_{ac> zk2PKl4BO#qz@Y%KiwH71|4u6O*z-qFXyA`3SewsG}!$Oc6kPVQ? zv;*}Sn9G>gu|SjGE^h{gqiAYC{Q>4y=0#ReyY6{2FuVk*L9z?1W(xD=*U++o$%lb~ z*9V#jpmu@!1I+W77yn~`6i#YB3=D=KHAv=w)vRC^5{0_i%ZGs>6r={p&7l4O^KNFP zd(b{Zo(}^E0W_5zKlELe$K=mktu!$=JgJMJuBSX@0M@9x=P+QB;PK1$xQTPEXr!NCTGmC{P1Jc5f#G1N+5P(Dhq(z6=bW zFd0cDkaWzfHIRu@#;~*Dpp%|k1Q{7P*c;RQ7#MhbbQu`f*J*&%X@d6Zus1jOGBC7( zOwdILwoUbAU|0YXlmsv2g(&Y_@5{ij3oc`f(9?C&mx195T*eY1GvTo>1H)&yOt}UF zgJe5sxs*E3=F*f3=9IXAhQy|@y@^~>(9WT0TYG9 zLois1i_yZLfx#Ir1vU>N#mgA%&%h7|mr4d1XaU+Z${xh%*T%>Ia#Wc=14AQR30OBo zNfhHAPKc73{tOID;7Y)zIDk`LC1XMsBLmY;e+GslaCwlS42fkc85!8w7$5mFFue6g zil4B#poM=Ruc1d$8Yqp1f?|n*K^Sz=nY-s|P~@~R$^vQvEOHubAzfm62QQ49zZDO9HQ7|3G}SS5pCdLDwyMg~JM7m%I@tj0((AU1%zf|j;qf)3|{u6+SbE`vh{#9-j;Hv%b`_Bn`w0o+$so(USC zz+C&{s>H}JGl+rVL=XdmB}y{@{b}&p7m#TToN`k^^Z5bOL!l=P@`j!> zf-e*~WW)epD8dyCUnp`p2qX+yD53}whAb4>238H4Gv=LZ5sX+UlFrDmy_SK2IW-t* zp-8bFBf~wAIn@x+Ch$U$sdbECe=tvkh(Z>Mm@Q^x0Nc47A_`e3vV8+1!xE4Qdm*Bb zg(5*OpbJGVLqs79MFN?ii$7jML?H`Be)mH~|3gF}3q_U}LPbSGK<dZ3pmhceoUBVhYezD{ zLxcQ{jF6R#b$1!Si{cmzy%<2!?##wv3=Bpf-O!~a-pm^V85yqDGBErOWnf?nV_*=t z4T@3F2q9F7KXZfzM2TD&1A``9325kw!Er}E#4ZM5kky=7n;97xRo3T+F))Dhr^;r~ z+B9&kRoMdCNd_MGQrTLX#=zhxv=OrLiNTPy1mdsGFoeG#xpFP2j8fSJTImNda38|J z{h$@?5Cac@&Qt^&2ohu9+`fd7fl=(-xiHWvbey@mj0}wIcJD#10u`t1_Mlc2xP$>$ zcIr2a85vkoSH&}p_O5DbULJV+I!22)Si!pOklBQT2*+=wxTsQ^_El9!qp7#P$) zTwq{eNfnD{U{D0zg$YvuY6e2ug6hxHL1u`pgqTqdQvq^<b%bqM04Gn-mId%^2AE(_fAs}qd(})v2GCiANiefP97zt)EkEjM@*p2b=rS^Z z&J%2bsQ_^#zfJ)K#%*Ip2KJXs#+r-_x55}0wnZ>72*t-|g4ZD;+LK{BOc)p>!7U!W z2MZV(*uOEoN`mNkiJ}7>kdGr^YgEC@NEvcK=iG7mgK98Fh8%r=1_pUeX3*Mp24PUs zIQQUs1_pLB7BPqrXy*WvZZQLcYR6|C28KM>9SjV7whlWO7^EW^81gT06DOV+ZH6ts0>=R z#%&MEDU8ZIJPZun4xj`LIh~5z5tMBh!KYJkJAqO>qcl?;0|U1|BWT6={zwJ}fkw~? zJ`mAB#`BR347XsSlI>tAMv#Uu##fOH3}0bVknWR=U^xQ=cjVm)Mutj|e|e)A7$iX3 z0eV5FXHEp2Yzk2ldmx*Up%tXWAc}#(8m?q6SP5u3A$PKZ9@LcJCHEB;-`Kn~>w!o`SV1mK@ZUiF(ht^Rh&@p21+$$Lw zv`#RABAkIK5VV|E>jINY7--EFXs$-QjA3Blk6~aCfJlP|>$To8>4G|7bqoxQ8ZitEdLU`A#dcunFHB4h zj0_;pGP=hwFa*J*A!G4&puv2tpG>{^j0|ERBeG){7z$x(7$DLN%scX+Ms&q6FieF> zLyZ89scEq?-%f=3VOK&`nH!@zJCqz2?tsG9mI zj0{@5%*wAAAkO_3!@$4@I`A6FoHYv=7_(@ffk&0ztPz9+$GN%({jwtgUeyE%6 zVi_1bL28i90d4Tpl4SO1VPpVB1Y=Sx149N(4WbHkbgzf33uSPRe8T`v9<$;Z7+}c* zR0bfD$5c=v2!tk&)nE=Zc`N{N;K}1$ECa(8kX_GFlE>3n28ItXVac~3Iau(^F#Kg;*Z`8&h+|;TLr8<;|1HxbOGbvDwG0f5?r{tZ zz94C^#jxb@!Ge(il;#=J;ushTVbajJg(eTK45$%ZaSRL-U~1sWgCiYk#L74Z2GITR z0w5cpMnIFtLpi7)&c-n?+yEH?@`L2GSfu1Jvjl3*$2bOtKOi+=b0BJ<$zy&8)GpC@ z1_p(AXjnkafhLdni=gIM#xpRufYczF15FFlc6jMW?zj zFlgq0nBd}!8B_yso~;HIh$(UjWSHbBXGXUIP z=C%j*P?#W%0Py56D93XCV~1=tc$dV$0NK2w!;#6zpxyV>mXU!Y z8MgTWv;%^{%(k16L3^U99At{fENc=YgZ328N+@^gdPWBA>0upEu6+h0gZ3;gX()HL zHzR}g+$;AWjc2p%4;dJ=7x=$|a5=%dg0xpOCo?dBHwJ011nqqQ_esE`9^hs*c*L5s z2(;6I+sXxW#T!N<0dRG?Cm-W?*=l%)lVv0-EQ6 z2nK#hW?=Xa6O{A<%RmwdUkU?*WC~O{N+QW#z{s#9nSsF|g@M5uq#^*6NOpmCVL%f} zfG8uw`eX)%pcDp%Sh$L#U=@%=V!;S8qa=lap#`J@ za<~$Z#b9-?L?Zi{fdQm%UkU@m5s)&FYZ#IR>;O7bU~6PI0A)1$&vF~5F>*CkM`44 z1_q3_SMFRzmi0>_}x`*awn?=mbkTi~NM_;kcU0z;GKR3DyZtVUWB7 z+6^KMs*#03tu_W`0TzjF&}|?rvLK3u<%kgjgD`&@=q3@SYJLU=HV)8@9Bdq*`!j?= zrLb7E1_Oh-Ip~Ur0(A>B&{Ya-9H5&N*f>BpUKE1KqVQM-hGMXAA(&+2U}FUtmYK%D zP{PImDyxM-C2}G7){;W702>FWNngkT>L0N|Nl+iNkOOqh0vpFtkgHf&St>vVf$sJa z28pn7fcBNJaeyv6VB-L-z%JxC54y+!G)7X$0lG_|7%B{sWSTjhfkDUMV;Tbk=hW#8 z3^#PY7G^Lo@XWl*z@YmLyts%bc^3nN?r%`@oP+1n6b1&}KOnXMk8LFbgYI7tTY_g( z9Rq{zKM-4iM=OYdLH9q1tzj%L$-tn?zzE_P7{8y)z@WGJ!b`#y-9b z47w~}j)$=_$UasuC%~8~n}I=>4a|u!j$XvTpv%FiQ^vrMV7ySDfkBsx(Ws1pA;UQ9 z3+3=FygU`~l~@;(LzT_MH=j0_AF#wy(m47y^BpnF&vjDKBZV9*t3 z1npR9GLB&do#)4BQO3Z~Z2V*g1B0#%qemG7Lx*uX$N*Kw)r<@b6O3=qXJF9PV+1AD z8OD!59DOinf$>Wa#{kS(Vf+EaF$8lq7=H(Gj2O=_GBE5g4qnE{plbql+X3S{3=9mq zW{iGi3=BsYm}FNnFz7gdqr$F`fk8r#0kmP4$2pIIL5~4+RSW}9NG^=c!lMp44jr6n zIC$Q2gTz6u5@3ja7{tIJn8*myQOcnotZ&G`z?sRwz{R2;_8|kbuA!cRK|cZ{&CMIc zz@Q&<9dw{Hk9a!+gMJ7o1Q~b^uV!G-kG+@yx&n#G(2#*aKkjG-0|S#Wh?xa4O&FxG z?9wI%2K_`vkUK&589-X0Wvg~GFzCNz0*MA>GB8Mj2nIF|P{JzP7|6h&&&E7Ije!Al z=Yb@M0oDdlRb~~&z@YyftQT|{f+Q$SL#3F)85s0=nL!qVE=Z7E1L~85%`OAoajNgl z1d;+>ngG@SHkF}leJ}%qeh^p+bddr?3Z&JQq3kBe`_*7M(CrE+a;rg}cm;L{=*k7K z97B2jJO&2+4`9)<2^I_t`W4`Kb< z0~7}v!K&J^s44@UtFB)NmIqzLfaW?$uu)~QAQ$chD+1kK0kH+-La01<3j>3G4p<&^ zivvU+qV=U11B3ofuoUR33uLJ^pj=P{4s_7<7m%Z-zzGr@!4=0V85s0ugQCJF2NrH1 zOBpIQXEQM9F9sz?&`lW-Ga)i7_AxN%9{|aKF3&)gSy;}%pg$R88t6U^h(95EmTh2Q z(EkI95zrMINP5Z^H8C*ghcknuPQsl4;z1OF#2DB(&gU>N2w%xzV5ls~Ww0=41>MlW zQ^3f;V9*Y72m=p)HUon}2Z+tW!#kUS!Jrew=HR(MkAcCU3&iH(c{PiH!Jr$&7U0>} z%D`aI17eHtNR~4&81#bJ5`Y2{DwJPGw-wPX(7Xp!-z7IhLVp2`H_*f<-~st3V6|`4tlAWqDf}81y~C zjt1Skf??`w4F(2%Kd?OLLKY19FCh6KusrCd7Kl7JFF{qCnE1%VHqXARdF>%oz*}`ZkOp3M2p;ZiPsL zbVI{x;zR}p{nLz~Za(O48HhY60vXC)^D!{!KV}3Cg_eRYfB~5SPB+lF^$!8LjS+M~ z-Bc{{g&d$eQ3^RgH^{I-Nr=cqZqPKW!1NOg49qM73Ue43IA=33FeDh7f-V8!xlzc# zU}ykK?D9SjVHRv0q^p*+Hy85j&>LF_P| znt2QihH)TvIL}IuIf)>41kVAGImsY)Bu_lZoKz4yiYEYMPCAGk&BG5eClADq;i&+b zlMiCYGE}6BF)$d`fE*3FEd?AK;0m3g%IpLKgJHdJ5vZ9Bx>tp%u#thmNC8y-lyVp+ z-CfVX0J>R)C)I<2!8jQt%urpFn#*9E0%Ef;Fx^|vz+jxJQpCVeDqx&7MS_6=bOj4U zeKshUL)C+t2MinxOj9Ko7>sj6AnMDEnIS{y5cTDtlmk^?0b+A7FqtqjFc??16frPF zKWk)QFn-2#0PNUfMGOozAUA-ndI8TkfC+{&0S5*KV|H++`cTBcAPFKE*f_owF)-BX zUD?3EV9dh=qCk2Di(v{XgxVPxj3^1QftMAT404 zKr99}4p73Zr~%1u2l)$heGbGcAbD^AF;tYqF)$eK22~57Yjx12%K{4+7>v(?V;ywg z4p^R{tU3vl*ua4Rx_$@J#sQZ~pjcrjnToWsCiJQtKcK{G@Ut11%h7#NH%f&@YHMPNZmB0oA9V`6YxjL&ZW{1_tBxpwjj*$c2btD-|#i^P0rK@S>D~fu}}2+aXFp&UtV>lR?yeEN{FI5~J~MHm=#!L1Mh1~!i0rJ&;BV;X36BqIX@sOJd2 z2k0^*sOZK%(4IuFDClk@h-igPC&01!p|a4M~u60x}wEz`-313_1dgAoqi=PJ+Y_C@L7r zLX{a9bdEBC(o-JDY_z-r(!x;oSA~H=M+~eVblDO@Kh*qrb3lOsb~fl1Ca@?ti$fBB z*~Ntn3_8kS51a&90y0$+!~(T{%NZDi!M^Zw0)+?@C<}pZZvvabQ04~;5)rW3pv#;f zqUCcBF)-*zfkn&yfqY*F_C4r=C$R4s>Ol*ab^Mq?cRhjK%TUn^^2H`luz+rUf(ky9 zXJF9T0ult>0|gcY6AblL)(i|f-j(D7jeT@eKqf!I{`cO3(RP5`*v z09_k}kOKQ2T;?!T6}mAn=o|)lydoTw9xj3kjf?R6cFHDZF)--t1A7R3VHC(kV3Qcw zI6!wnv2lP-k7DBhE$Cq503FU)2qi({#bEJ5Fv-R-Ngb53K_@Y?g9;qbHA{_*3~U@p zU~$mlgKQk2HMMLUptTf*U{Zb73$h$2r2);4gn<(h6+z11_smVAOX-h zgWzBS6AWb>2@DLTbHM{aptA?T9%m>k?P6dsjRA{-jv@pH7eqtF1CWMUAY(zN6Cz|F zp`{+J!@yvA3q*oa>0i*%had*TT)mUp3=F24j35dmDpLjP--CDz>Nz3|45nW}B!~|> z=n!lvRP)4k1_o0XMi2#(jzrZg3=(7G0IiW=I%CMdU}gdeL8h~{3=C$ws;WTY+EB&7 zAPhQ9uwsil1B2OmPObi<4fqSYM7@8QC$%a~YTz7({rQL>L&%^FZdQNQ2BW4`KAI zW?+b{W?&EiX_W+Nkp!_AAo8({nbiyom2mk()eH;}d70Hg3=HOJjJqJS1dJ1_85rik z)tvy%;K+lOq*um5m27}ZUj|7tuyMQvha<>sg&gOq85o2?_7`&81TjIPY#gBRUp5ZV zadw4Zb|IL}#sQj5DdYgnMzKLj&IY1j_3OPW#UiI04>NW1;&LOpe>th9EyP;^Fdn`3pqd=7}+>LOODw% zKm+(}9H6;{LXL_cP@w(~0;z-qGiXs$F}Uz4C=|Aic& zOv=XbDix#`B*Ml4nh+@D;I3m}5C&xhHjejTNsw?eqar&41LLHNb&w0EYqx?%P#GA6 zK&RP(4%nL$UB|%C0zNB=X<|kzV|;u81LGu6#m6);fuW6&6*Ox)W5YfMhJL74&|Q2W z-HdZ4fVD!@X0(9EkU^T-8O5cT7?><~N-;5PGX>u-&QQ++(!#*NIOkA3149SnRvC~A zkZYMIuBho`JPB2o236O^2+F5S)}VaKG%>D=@dZeO4Jbn}Pi&~~Vk`#nZ6W**bzO`f zq?s6)>_LVzPux(`#R$sUaDHtU;}uCJ1}4y&I0oj4Z|b@jvyk{N>be*wft>6JG4DcM z7h^k!?*!o=sOw@B{KLS&tf6X+3x`=?wBU}bTR${aqB?-VVdaB#b|hy zfq|(W#ATkiqrQvL{|W;GQv-y*p}vdp49K;UK!ps`!~kfU>ry@Rdi8pSZboj9_49U0 zGl4H4Gqr+*BIq<%P&hKqv26f_;`3dM3{3Mtr8LXL8~f`!8Qq}@K^*3Q1Zfop2~K9r z@?>C0fa(O@ZVIxDagJ0Y14CRR1H%-!>zF5Y)K6uMkI!ac{?7=K0;Qr(#!{$OAxN%Z zn8pZNv&hWC1lq;MJaIxj1A{PVSKo9-&{1Tp#~GPQ8yOh78etxXu=4jYFo2eAFbIQ= zL7Tvs+{nOCEXl-h2_pzLH!?8nZDe4W$OtkA1_rJskYOO*5W_&nyf8^NF)-*g!Q2Qkte+9?#tDodJ>t?#3~V-# z7_tBb8aQ%;niv>jz$Su>0GT+M5wuV3-#1A3sKQm&G%+yDYC;ZSrimG#0IpzQZe<3^ zfJy>k&=$GLjG+B^D&HYSD8Y@`-^9Rh7H$NH#WXR3K^U}kY%(M0yaG3<7FoEKPfZLA z49zfGK`f9Pg+aUjCo^^!Gccq;wP?b%s5Ub&1jDs}Sa6536){FMGcYhsOaM8&5_EK5 zESMj`APhRPPZ)IQ1(=x32-?5f2Q?g#qMMo-7$(3C2jvHlduA|#PAymgRgLiQhGqta zvvAc=*Mrh^1q17IkOVl$K&KcKa@+_6BTfmXR(8mbcB*pZ#g@Hk+70F`omMDnr zAo1CZ5e5vPy;I_?3=DG^+1VHwghBhIpl$%!a{M6!1H%u9S8YHJ0H=1pRtAPN41*^! zf-D3(W7I3^q`A7=RRj-EqB@f#CzpNDv2N0Y%3=Ef!L4pCHEv5~coIs1;p~)!~BnZ|I5}d>c z+JjgHwNMc5@Ls5eNet{OL2R%F&^E+*jQxHL4Bb!-i2Sk-s-c8|{UeAC)&O#0A;%|h zf)5R6U|0&(hH&9Omji9n_u66}49puKQRrR@w1t#B(q z5iSYhG6;hf?oVI@X@1qr$iVOu63mDab6q2 zQ5UpBK)A7%fk7B_n#fE>#tsGs5lKddD5#|}ARED{F|31u0kkP$A|uE=usfwXAVE;b zp$1Mzpq&n7P>qOKTG9bcN1%NTuvh{Kf@29}WFdzuSU+e7L<@%gCouh>CN)eyND!mN4IX&%fIH`Fg+Wc|aovJ=#f1{uRVaYcO#RT9pfmt)^89EvFL+ySK4Q^0-ql$s`9~;frT$k6k?SOtoNWQG8hw7m?d4TvUFL=OW)S`TW#MKDZe z1Rbw6399-L+za!27#M!`Kr;`BgFo{uU}T-oc(n(VS3tTz*{6l^Uk@m+fN~9UFNn1O zlvg%Ft=a~)Y9Zr`BnAf7g^ZB2;laQljG7S&IhKTisyR?EujDTzb`Zsrb1$@b0Bvi6 z6%QamaEODpIrT9Xurn|)CG;{dG=mj~8Zm$rL+W;r5U8P3!NAqk(aXR9VplS7b@hTa zNC_VXEnGVZB0xGOFnaVdFibUIWN3oA!y4)d#yR_Y85nLO8$Xc|WFxqs&FTfm(L}~F zFe8GYk8uXbNq>47807mv?hiEtJ4rAem)jMYQqQy`Zy&WZ11V5r7w#Y9Gs^X*1h2K>V#Rq-4>8>r#>?< zoPb&;39<8005{sxy#D;N)>_0ywcU^fBHtVqjp>o5;XmIT2<9s9s~3zzEWE zUy_Nz!4~3rL`4=mk%1u{Y#>M@sEnAw2s*Po3aS!xiXO;z#yRa185pKcgatLI;svSh zV+1YJW?C|lfng`yRtO7Gn}QZm&twE?PLO6|m;*H$QKLMX$iVOh>KP|RHJE=7#K<>!Mq2l zr@_^z6$8T~sA^CV2nmcSlNcB-p{WK(dIbaPOK6=P07_<+2tGJnW;3w9Vgc!7n&`j) zt)4(Ds0&yju1Cbo_er3`@nH^PoeYZQ3P9p%BBwAg zq{DTCSfHXt7<3Td3`WrL>0MAQi1gPpg@IufTnj9O=P_=uU|^U7RjmVZ8#v64Pl2aa z6DH7M+#vI3FoMp=JpomWF#7ov1_sa`V@M+$)~qVzs0jmA_MqL$x1f3uQD`s~8Y!S1 z%CO2FBnZkw!XVT77(aq)uCS>L43%KTp@!hS&ET39qzj`8n*dS=DwQf3xF*z11=Xw| zb;2NG0wZXx+8cI8h8Iw`AZpf~QyCbpVzpu-BglGiVU;iylnfFkGUk98pt=lnQn?O0 zBxZA=l?LOSuTvQqvZo=(Ec3)4b)cxtW?-Ge3X)=;_@Sp3De30(1>jwKhBr?3>2Ga0ad#RN_NagN_<~g`xV*GzNxW7^>$nf{w%& zg%)s#B0_ySJbg(pL8{6Oh8c{Y6B7)eiV^9{eL4d}>U3C$f>?+VLVxD0>EMWA5C)yJ zAPm~WHIMN}2m^x?)EqT4wCBZP0ao2PP1`Qb|hGiJF!Vi#>W`OECkVa6b&0tJVWnkdpf+QA1 zHc*c^fWJ6A)$LhZ#sg0N%EBo*#DV&$fPuG;5p~nPV^bIyEoh?c5E?COlV;Q zt%m@W){_}Qo3~_mAb!{bH)Z=Q28N$tM zz!*G-fuTEsk>Lc?4WMhNK+a&Cb7Kwz!(W&Umr-q)$Oy8ZX=21g#)dhd;(%cyV=I^u zFp+T*n8Cp?gAud|?-$fyMA0WZmw`chF3fYV=$gj}I=h5}4?XA$=HfoC1eB{v7}#Gj zffRv52sC0nj}dgli4ulMyHQL6A7ip=E-c`nMtx%fsRA1XI?=3;5p*jb(;twF=RpJe z9$XLflD!Xev0k!=h=tjVry>~{*nL?*t5;_;UWRZC<}olJ-Ml9ZvQHRv9p41T19KS| z=2kK?*g*Z@0g4fDNzgWrfnf{GB^mQzu7|p$Y93aXOk@Ok0Nj{in+J-mgo%v8U`E75 zMg=f~VIrd{n8CrYgb{R3By$4O(RmCEx8}jJ3}^}sWv&wBjGxj>3>%=eAR@Q?o5#Sw zF&~s$Kt_N9b1CELNem3y(0S5wxObfAgXYTJlo=S9PC+K@b2=C&nIX6t49ghjNHH-i zf@&3oYhBJb#gu_TXO&SI1H*DgyQ>TgOsb$+`xT7OKy&0eprtCD%njQih0RJvzk0|r zi&c!E<7_yYPk2I7+A2oS4nvr6wKcMHEA_t7ZU@+FE$2-)r^mr z7#RNOfmqk07#P$xgIJHE7#KLgV#nhd7(N~ViE$<{Fet78vAh!)7=DX`SiK1h3@u3@ z*3JY5hA2%C>q7zq!<%Rj>vsYJ!zm*W%P5h7Ve(cG%QlgLq0j)tG74m12m;L;Y|#L1 zt}Ae2VBlb!x{ZN>Wx6aA!=w_>&AHHkVqjqCiDY14;$Y=4W?*2RZN%a`Gw6mk0r1{dwin_I z3@j@dofsGx*g^YJIf_eC7(^I;@-Q%PvKm)_4mV(PSjo@8z{%Ea4yJk!fT_M~V5} zFg0&3m|Cz8Of9?xrWSn#Q%j_UK>C(jgQ-;sU}{YRm|8a*Ol{Z(rZ(OIQ=7hlsm%hy zAbnf3z|>Y3FtsfXOl_AF0mrjB0&QzyQGsgq)2AbqFIz|?79Fm)ycOr324Q|A_fsq_26 z)P;Lu3=CXs9E?*XK{O}h1~ARVcmYgHFoN8}#U{-N3LGvrIYv;haIq;ef&zq#O%@scU3=Hfc zrY;N&AhX$-85np$CrthY4L1pcEsA24WoBSd28n`fVt|OoFoL!~*ug{vm_el#L@J)q zkC}lX5-w#08c>8tB{OC+GcbTo2Z6Yn6QoN7eClYyYIOz%ekle9#vWz{hUswKV1pq_ zN?4tsO4c(oFzkXW0h=QHDW8FXy_)e9GXuj_m=ynXP_T%C@6@i-Uc|t__>!4{;R{S! z0AwG7SP?%11ACXS6$67P$bKFc1_mJ(1_pj`Ac(JSVqjpOY~;qkAOn(BgUc{T^ngk{ zPIfC0&3sUXfq~-yXjy>dtTYA&30D>d1}SSj1_nkoA8Bn-1_p5hnd)o?21d@8YHSP) z%$AG{44kjsc^Md(<0TjvINyNWDw`0`$iVrj+meA{77GJ|K!_9rgFqB0lq9lP7#QSI z3mG`S%`kzubPq@cND`t#E~kWn^Vd^Xh~!OFNqP1^3=Eu1j6U8B3?PgCf}|5brh^HP zix}ih6&M*f*%({n7#KhT;;ak|0w8Gy`OT9U892EZe{(S~fCQ{zG6EoV5bNcoK~Cpm zyr0IvkS4{z5D!uVVt|bRD`b#2*J5Pg6k>cU4^h*MO$|5*#2E83A!?Sx)qw2+1p|Y; z87T0i7?;H{Fn|OOg4E=IgQ=8-fk8g9g@J)nfl+Ha0|SWv03;0xC&vPXwe+yTOesDhOG9D6{eJ|~w!krV?1CzoL@ zm@?`BQ^u3Ql&O+5NX|?bOqpANDGO&XWpxUy#QG|jvUvceY+r*Z`w3tr4pm^vX&zY6 zc_o-~*#f3q_k$^SKd=&yNHFD@0;at3!IaN8uo7QJFwc(%O!aSp`PDl1n;pW$HY*D5geI|oet=>}7OkANuN zq!3;P22S4O3Pli=+6<=BW`n8p4PYwc7?{eu1E#V*f~jnFC6I<34KS7K0j3I*!BkNP zm?~KTrbGB7A_2?AX%YcI#Zz@)s!l!1XoIX#nsfkXL*ECYjpvV8~x zgMxCK1OvkX24&E#h7F9$$JH1Z8km%Ci8C-XuqX=}GcYu8D06INU}z9f-WJKg(4e6F zcpC#l!vO~6jjap}4GoOS9!D4$HZUsBi(+6n#h|Qqnt`E(NqI&VNRov?X`V0x0}Eez zBgi?SmqE_q;RHEnmLJGDpo6A3lp{bV<|+T(269g0WT?iXI*`Wxbs&vTK#M??!$1f6 zDZf$xY4>adX$LLBZ)jj)P+~a_QoQvlNU<|$Mo3xP3}jcO8%VJ*$o&m03@RPl85m4? z7#LJ_su&m;`9zr*O}H2s)IQE)VBnKw(v=0>9b?GAz$eE9ssPkMs`wQZ_)VV9pz`&;jNsX@6cI@}u>82B`y zTn-)30gZe*P_BT^vuz9veELwXg3gv!1_nN3DAz&D`v?OApBaR^L2F?Y0|TEWgy*HB zd76QN&j!L{VbnEa0-ZU@2uc8qT9J{UgQyu(xWS>~$<4r^^;Us_fiDmu#H8iZ$iToC z2H~-2Jzvkjz!wSOG3eIBF);9DGJ;Yzqjq9J0RvwS<2r~*lerlfv=d8G8Tj%cLQGm; zR)bCtgYa0iGxHeu${`#M?flXb2EHl?Pe6+S6l=8*o`P=BItB*5PDW6&W7JMcO=sZi zVH5@((8wV117t~ZX%PcoKSYR8J2fwbfo~Fo$Hc(NA0)2Az`)5L%mb!EzzuZ%7+o+g z)g4S_B!a2TG8F~}mBJ_nh9({c2EE&E3=E(qfIjHZ(l}5 zFfaNAn2KRmWnkbGh*bhpaSmWAJ|0XZ)T%Nt7=X?VRr5awak@VX0|PVYTu{M|G#&;9 zLvhgg&vrsa3=Eff7#NH|=YleO-QxtE{*%|mz#zaVZNtmJVC;95fq_vG#AIMJ2JJLq zRPy5mb%{(ssu*P%wRssB_(4JfAVmTo76XGRhZ8RYg9OMsOpI(vh9D78|AiTJnvIY_ zJTC)-4EQt~;jj1k7#Mg#r`ZU912sk%ctNMx2>-q&#K6G83p&k4_z#FJzzaIfM))s? zEx`*q%|`eih^@d2I?YD-KZvctDlf^vAk4rB;ux@kPO}ka1amA{L8sXWGl4k{tf13u zgjv8G4_44=Ho~l6P5>+DG#goJ1b<1<)6r`ZVW zgEgQ&9w9fTvw%M8*PD!{-X04AUoMGG)6NPyJZg3iPd^=1O80`4$#1YE$B=f(Oj@9&@ccbAkdWBg3iPd%><_{GeHIh0T97p z%3&kOz#suO1#~8k=nSwaX&?pQ-~_XfEd&{B3px`=^at39pdkk2zyzI%Bl-_41sZk$ zOEK7j&cqRo0f)jqxY=N1p}_PH48H^Ks14P5Jey{ z22+ksVFm_?K4At1N6^VQVy&QoAl?E-1_rTqkV6=FK_}ygb%59`yr7eD#5zH24&M9o z7#PI5Kx`gf(8)Mr-5|CAFX&_(u^tdxgco!&j#w{uaKyPClPbTW?UJWxo02B{#P0)?Ic z$Y%@=pp$V#mw`+M4PJruKnRF5=wuwxX&~L8K`nIMwxE-7MCXC6+$O@n0Et>K3#1(u zzaZ;uK_}ygGJutWM#LbNfMghKL2U`qLyVt97#KhpBJ~qAKf=TTK2^_@1LOi*&;dE3 zCmE$g85lqqSsmoqJzLN@IigaGAl0A|HYE3gjk5)vlOuYC5fpf!p*MsH&{7U`PLAkJ zMo`}wG$w~G?*KX{NAw8DZ=kU{B;!Fs47Q-P2coIq@&`1C2hPO|wxDxzL|wt6pfNp& zp&*|_qQDk(PL8N2*wLWDJ`7Vq=j4d`f#pG?fEe$-kpB8JNPqnWq!a%V)NPjook+q1KFu7Y@f652pl#CvAc8^0 z6?7i4R0@v-1A{YY#8E08WS=wG6*ls`6ZAEkYKd|1t26?!A!7+um&qAk1@!A&m)#H z7mM$@NUaap z+^rzBzF>0`L2CWL=H`IZ27t|7bDn`gItpxVUp51SbPU)8Ly+27FtdIx1A}xNn7JCH zHXUqkFGy`B*aQQR+AJ`$4x~04%$yyPOQxPp z7L*-8M{mie+RHL9mU5e@=Z#1P^Wd?;RXe1pHX&@^YY(YnF$(t~N;`12D>7a%xgDvRj zEqQTfP_Tjq+XX;2g9!#((9v7+@!)PMXaFAU7O-6mwxFZ8u7bI_nXq?H3Q5GoHk zdP_bDtQ9m`k1p>AI(kd~FB518UjXDQur>$*_J<$n=q-6wCeYwM*bfZ$prg0s%fJmc zKhV)z@)eAr!F~Zyp~K(+I(kcf2`GS<%QG-QoC;zwm~wzT>;O7?OMW}ZbD%i^ggnG> z2hh=5^1DF=257DTUD_6O^p^ZtaIAwS5y0{cwxFZ8_MLE%}QeK~Uoc zEGPi-9@P1uqqpR*fod&KqX$D8bo7?|8c<6G)EGiYGdO^b-jZJrYCqfqxey$KAafba z1r)$XZ!s$}Fz|vl_9=*i#;h24K}T;XNPq@YI2f2gM{g-eg0%XBPTmrpB?CTrOLzfj zOpF(F@|N&I5R-wo8*~!xBGBj<2XCzi1A{QQmm|Pn$|0%s!Ia~r5(9$-*cYIaw}d`1fpQRNMha{SgDvRfEg=!G z*`Nt3h^Rg2WR$$*V_<>H|67pjP&0m4t%isVyc}r*$C|E$V zSx`aH$y-8OK!TvTEwCV%VDJM~`9j~BKyzIXOZ`A6ZwdJ@f~LK|A`qKwK__ns1%QhU z&{P;g3haAGPW1qtyd`uP6r2vAledH}g31igTp835(8*gu`@kLoP4Gapf|N6ua)8Ff znL+13DVl)F4`$FgP>Q>hR6yxhLxq7sf=8Bt!2xs*l;V1jPe5b*;J&B;XbOPA0dx+O z;$6@X6KL2UA_JNuU~mAP1EqKi#4b~TmT3$QpmU%USA(>In$wWbkN~yUBtTK)1Uj5c z34BBssJ;UA?$YzLV9Y9BPDNP3nfaVLpCV&YBThI|*N^`-Z+n_lFus0cOK}U2c z#ehXYQwrc9foO059nqyU3zR%TvkV9sh)qtQ!?~2eM|6RbGiU|^tPf(YJm_pLCCCw7 zAZgId1VkFdV{if;&ZPuCq6@?aO;|u=K@Mk-2c6BO1UaG$Bt1tJ8bDw*49vV&7#Ngg zKuuGbHCGuJ1XQM;QDtD@1)ZLwG99Ftfj9OF1B1#8kT4UZjJc!AzyK~|co_m%)U|`u z7#NhRWtkWll|^Kk7?_lg$ucppD1VVVi0wJL0JhzH!vzQ$}urCG%zv97+zywuuzq~ zq{hHt!J(>NtH!`!nRE>_83_`yRK3c;psEXEGVu0-*zz~j7#J9My+CY5P?F`~od#kn zf$Bs7UQ3Wx6_9!f-UT3WRS;W&_Xmir7pKO+pusB!Vq1W!U;_qIj^(PLR15NXpgb=F z1JfHd1_mB=28JNeaW)`E@U^=P42-g%AP<%W&0@-eCv+r0WXL@=1_ntvCWbzH&|((` z22g?oErny8W1`N$;H%ES5DGGoX<|m`S2gfj$WR7#5FNn~<_`*D`P;Hg3?QRULDw~= zL3e2|&bg<~zz}{FDjWnAj<^CkKu8f33ZQ*@k(p_U3`}4y)5M5~XpoUwAmf-O287qz zK^z5Ibpvu#L=#Bb4AdKAn&=;A8roq4v4PG+|ZXGgB z%!!@^S~3acWiZ5a$TBfhK=mP3OvZwiK!QR!?jUHH9`gz>h->2Bg1H-^3moHJ#UX1M z;{!m;67(1t;=hYSRx-w0N`3q>%+Zg<--n2w_m@KtfLzA(+SKDU6ViLzX}Y%OeXz z)We*lfGL$C%)p??#K_ENBMI_}l0E}72Pg=X4ZsW;ZUzPwVFp-?Gcc%HLZgC#K@Hh7 zh<0_b5IE>SZiNVHfCWK`gcTvE366J=N~jmJIa~h9QE+09}xQ!4Q$OjJO#XjF8O%X#@p;F)sr+Ie-m^37TN2WMyD5 zg__0+3U>wuGkpeTK2T_yLl|SV=H2Fj&hlcnX6Otqnxl zL=qxt3y%U;1_nDzsB;(??5#j)6PzF&pb^H#z~Bha53Ha#bwYN&jU>oN&S*kx3=A#? zV7G!~U7<`i1_n0>Qx2@l9pPmQZcu1>KwN3XZOsaDC&)5Sgb*aMA&J-vSs13)+Z3GJ ze4xg1gS-wh))%gr8)gOrgC7et(?TNLAEL%Y5)>a0I|7&(nK>XC8=@ug5ZdrH+4o3**@%eE3 zNj#DM;8RAxj{HliQmZ8JYP&u1L`b zM`kJ{8A1|F8r%)gKuw3FZ%`y>fE)yJ3@8d27&74&aDzOJup$c~0Si)uWHz#-r!XYM z5z;wK44{IIfgu;H4wMqWr42$w9#{etFK`K1u;#<1ps9y}p#UKS3LZ%DR){JHG8+^g zMQ~wOP`M8hDuxSjL#jWJU(pxYAl1O0)-VQ_b@P&Lj*uEiW*)O2no#a zszjE=46iDLw2dSz9IC}(WiU7))d({{QWXP3Ehq{>E&vsAb&ymD;xaJQL(&BULj$7; zw7vkD42^IRP!K}e3{7w`kSYd-W*DCp#0TkWfr}t?wK9TQv~7%VM{|QzgTk~O zAqF-9B-X(w3@JcZ^T6q~lhK+1lxezP;@lANZboP>;szb)2+y`)a~K$U8HM4649L_z zn7hDsg9^`nMm=cD0OpzrC?cTkHUiLg%_K%AC~Gn!xFqKWH7%wv!fgec3fg`NEBruq zPGf|Y-rxe0fnhqMD71w$gAvqKkYQ-%=(gCR}7DHSBHU*N< zK~0Y(SVTcKE`^AL-GxxSj1kn}gH)-@8TA<5g%!9V<+TTK>c+bS%#H?;RIMa$PQRSItdqn7z%aVDQM(_ z(&lN9L*e0YhOwiGkr7nvf#l9Iax;K5GBBJ2IUnR5R!GF2hpS^?xBxZ*qz58*5hlmY zz;Fqs58U&)408@E%z;-xYC)|&ZU%;{Fg7a#!!>XsG?4_^4o`sBK^7r7;s&E012Z3z zA_j(=ASIx@zzu6U-$D@q#r18l2uL2(7-3+z!)U_b4o)a{!7NY!=JA14-UIXV_!t=O zGm3&s2dsTaSP=_~S!QT|j*o$X1ykM8exApjIhLKN6%7RHf@f>syrmp8>LsV3n+h-XygDX9Vf?F)$cI z7@+>238L<>kpwkuOko0`D1tcN3?>Asz8M(I;m$@1U<**=2dNhcQVNOqwgbpXc{IQl>aL;94^&K1Z=P@fVc3okUB5&4sW z!3Ea9afP*S+z`zhcev5e){O@=c%gaO6V{sX0ySp5!QKHU8IVIjcKd*ZK(@0&QiCrv zD!>MSV$l!TM38_#a$6w)(NqWoF+rslsE7%|S}6v@>ckMZwcuDlDQ80w=737UFjz|= z91)Qq@d#)m1X@E!LX?606a_A~SQ!|iK`sTk2v*+5pt=fL@5N$s3{)Z_u!AZS1_ln~)Xs^T zDY%fU4Q{AO;F_2RR>kmwql%k>fe&gj2Ll5?WZX~yWC18C2_n}fLf|R{T$>1knc&(4 zG{y)@!{F*e6keWzxnhXeMbswZph^T(n@E5d3=Bv$1gIp2lyGP@1eW>%R8&FKVyPV< z5-4>8LOsfOBc%3$)h1ZR96_yn1z2sOh+LZ}A!-vuEx`@)11L6CzXLP}i0-K8n z4?T221_pg-(&7dM4+8^c9l_1OURLAeW*-4L~j1xyH3fHE*3>I`@V0U3J)2PfE%5QWe&NRVM50Z@?JqV|66 z;30q%SN71rgI5g>i0sP1;0UW4oFJ8wGpvSiLDUegaF;-92scn&2O50@MK-vUXJGJv zRTG||Y63F82$F_-3Q}``{R4?+A82rLGcfof_oqR%1xOj#U~p{#jUl)|0K%W32m>W; zq_IUr{}gF#5he%133m{csg?Up!Etfuv9Xc7?n&G!d!bv zkdfIS0YoK}1FBm<;<+HkXe9$mmBX)+K`(d)+hi7E@LLB~6hZ0ygFfEFhZ1{pjrS_ff>WI7X3oK4#EJ{i}qkMK;Z(OUIRJ90W1VE7F<~&>~lnIAvnQW2+p8p0mQ2=ASQAP!4;a; zz@ZKbU^lSoAPd10DxfL?RAGSyK;;m~I#5Lq>+FCv!UR2$O#=(EGB9{S(+IToM^tBE z=R@3u=n6pv85n#)Sn!tzX2Wbg~CsXi*U>Ib&5adymsW4D7hqyQbt^wL}M@)jTf)X^y&?rQ3K*o*{ z6JOwz1_~jNx)_ktK!FeG4S}N;BnL?rao`Yu3&N6JJXn|yHj@G}Cjl~B0b(XXX0eh$ zfe4x%fKG6Msx**viUEVCFvxeQ5CtG{28J| z1Iknu$QK~{au6m%Vgw|Z3#!{dHiNP(sLhuL698ow$Ou9{ObDcgfuR7(1vidBS`d>~ zU?GsPMTqPS(S$Tz1rh+MDM4-jmBJcxWst^PIjk{PfoRNC!i|MC=BhxAxoYGl76U^K ztT9&$YRuJveGQ5^xZ~=Kmxp21yPK3=_b!9TTDBwI<-U&?K~>b7<3TGJLdu z3UqKAG|>cVlYttD)4&$O+yvD!9c(YeE|8yQpbYgx6i)*U^n<3L+=W33A%gHhhgo2k zfg~U;#MvmJg4Xt%15yl*D~RH`D2gE_LtQoxq!bjk(9!n!2$!+KLL2O|1xWsa2LD2k zuRzv7^)3RLg~SKVT!B3UAA<+YS|QJ$Kn+?7GYH%`Uk2hqodi1iuA_+&G;Ghxz_0=| zY!99?U|?8@hg`G9I|q;+AS`VJBhnuvlP zBFMm?g-Ao7-nlliIUqHl`WQ4~1I@Db;3YvIL0t@$tPBi#P}88zDt&0p2(Fw!HKPHt z00V;|!acA`&G=qGKWQH{&UokM)!0KdMNS$m4tCJyX#lXXmh|ztpTNxM}L3J`{Odo7A zWMa%2RwuiF>SR}NIDn+V{snmtsmTj*wmURvxxu3|ASH;^VDLH*TF7~U1~Eb9hc}iE zz7L{G11a&v=A_>yo@dpVYil+cjHy@-m5X2y^aDtBJQh6E@d7z00mQ8q(N12h9 zt1>X~qb3;vL_$EU%@BkPHp3RKLdUs<5rHoPYZr^6wz9-fbFH{2qq-zyX)NZDGDrqg zh{LCnrBLHU8WiA&dRzu|W&>#iSsgkf4Xq=Q29aSh&=esL8>B+4Qe{O`q6l>Zw4zpm zS_et;W1DFDuxJYXhxet;KwwwVuJn1X9genheWExQo_=S`4Lxe@&jK~M$*O&17( z7z_-;2t|l$2Wi?G)OUb&z(f&hK?N+NWJVe<0;xqvpiFBcgwZCpK@zY&7|PTIq;Cjn zSxdpD3#1VR8mJVJL3kIE+ht*^l;t3+4MBzdKu%ag24_H(lR6@0fVhY%4nDA>3HKX# zU`Gq0mw^GPS_8!?(o{7lRu~vCDl-NKJ$M}itqd3#kd{3oVi{@72o!T5^FYChRJFl` zL1Ra-<@?})B9Jb?ec&nuWG+GiX%q?8 z?E;yPs01OkA!wWjGFAjl`VeCwqeLKM!J&dM))uw+vxAk!_MprKslgmTOyow3BQ)v3 z8!b-otO4~o0|RI=HOK{EH6ZIi$}Y2kuVRqPCUlU=81TNW-@QzPPp#X>n~6VqgH;_H9NQ zNooO)Btgf6KuHIj-5~8CXalAVKEl%u>ZgNz16^p*fn|6CstG(81U3&clFLoy5+z{}y9k;Z_yA!9%& zt1?0QS78p+tcFO$75dp;rWHB?SL;w|ypkX0U4+tc)9_v62d|My1JO<}1B9~-h zwr;_t27GTIp2akXd<<&rfZDpC=mIxxk@`cB)*e4{Aqgt8Af>VZs9g(c;0nT8gF=Yb zAZ#Nas9XnEYTOJAqKI`TV#tkaad_-WQ52?Z0Lx@E*;L;CLE+e&MLG?1IenAY?fSVqmM5_g= z@fjGj!A=8rV-W3F_zEA$Y$rIrAx438A}yvt2J4fYpQ2&A2X0n%y(3n3DbEj;Ce8=J6(2V&U`I9L$sA+w(F z@IpvH=03ruBe$p>Aq{B;1}6vu)S`9<+X*rQ9Qz0}T)+|_Gr-Z!z~BmMX+j5qK!pv+ zv+nS`1da63pF@;#V15Pv`A!utC#0-TrgrV(R z28M7*^AA*egQO#14dF;owt#FGW?+bdCs%MoI2z#s28I|!Ll`or2@Y;hS^{|uWM&*( zH#Cq?HuiyXI?~oYWQ~xPEyz4pM6s3xiV9H3LfW$6SO?hzNzN(Y7>5hOl3yxV7-a@E z4dQVIhIG_+Zw8{>n~4a11_qQ(eIN@#UPH`)LK6!}5T#8EYQ$o;YGJKjkZ&P12KwwL zVm7i6)<`UZG!lzpqoXCDws9$HV-~vU4pP5E(r7s%=R)!=q)iJ7R&a9?bxgJ3fiy%&3ZzTH^h`q zXgi33p$n;j0&0YSraD0@2vD5`HKqsBnq&oSvxA2-^1v|z1E|%D*!9&9ay_^e2%7oC z+NhlfZ`6XOL1FDkXzLEt&V>oVo0e1HhJqYC6~qGt5VQd}4dfvtKBRdIN+PhPC8&vu zFcfMNXhIarjNvSp>ELG9Y!DBWl)&ro=YU#^&>6$IAU1Tya2{sEaz2tqkfRsCm4njb zLXeZ8#)4!QL1PCb2XD`EGcbT=HBmbapj~(v4bx?q4b$Z?8{iGo6(}MgTUUZb5Dn8+ z;N~bu2Gp!|7e*hXhc`@d4ZA|~Ds($1`l@f_Qk5N&*Ex^}T{*!`6maW_3(N$!R=APd zg*@>32;44&?Hhu2ZTS%S3sIi(!`h_a#wi1XAVLwS?uQhsLdb%kQUoH5G(Za~5g~$T z1GESUq#;`58Xe0ZEv(o^8Ky-Hx=KJsq$OcZNGVX20Ir3(85pDyO=cN*#RCovq!E6Q z&p>GjGPDoM8{n1$q`*Y13??u`DWSGcm0|5u6;QlD32}45TVRG-jbq29Qe;jajH51A`_s!9Z7TqwFUFg*vEN0UDwOI~tUVVS=EU zM`-4P&OEXrb`?RJ6?%~76$67lgaK-2q0BRaDmFvRddvtW1WF}{1}!)Rf~tB%lNR2n zH-&9MFat3d7|fyB1iIA4vgY@j)hgMk65AqsK|C=BgD ztv`EkL_)m}YDXX%n&8R~q!4r(1@g`z^wbYh0~%ef>EEs675GY`wgG-Un zxh^O-3d^i%G{Om>Vl@V1)-)EBoIq(8)V^h4h=Yv`#Df^%^7pU=0|OI72`lJ6mEU~4 z42+D7puftxD=f_7%}jK2GV@9+bkp-n^^>)=^-c6F^^-D7 ziWyLp!emk_O0Y^`6~r_LRT+l;nD$~QDXxUNEGIKbKRr1a(-R;MKz)d6U0!NQW?m|G z_v@#mCY7e6sxL@REMQZ%D@2fILLH11e2YCp(HaGT|%)E4v6Ozl5 zGZKqHtkjC+)B=z@L172+d$P86a(-S~W;!G$K_)@H4blM82<1YRL);IR1BD^P`^6(-x8&lIl*A&4n<0J&DJU(; z%*iaN1T%|Mi&0_XNNJ7FA!iFVza9V?=4u}lM;dzPRq{RkKPI-wr5Sh#ZNRr7cFoQ5k zlA$7{DNsgI0Vo-AGcbTk0KE(bZU%;w)MO}!0qpp^RB#S}o_)WOk-NaC=$!GlTk$ZOF4%x0}~4q z8^;MY!gr#4nxmes<#?LGWGj;4!(6DRonZqX* z?1K_Ej_Y6shY*~V#>R1zNli42<0JzU3p1ExV&gagQdYti+S&ZM?D{E=<{P^~0&El5 zKIb$u$E;yiU(?#`&GCiFR>TlQbJ*!!11m^l5oKeZSU-Vg9%$R?m6{&4-;5|m4TD#8cgCQ z1LL0O2=Om4@g_#bCMGVBIUwb1+n}~KgM>Lj!fXtjOcF5R=ZuUTc1+5`5QEqmIGKWA zQr{UEzkCL#f(TIXussEl9CJap60vzPFtM~nQMpF)h`W8h>u z4wE>|z}O5)z92tbg$ZA0VdM~FiWFwz2KfV|!)q7Rolj77M8Jd>Ffo4NIOz?s0%Ug& zOlArPV{0iwd>%}^myvNF$4zEFjx-L>MI4zB75t#++YPnq13V-_!bULRA8=uin|)xy zCs-Ice3`U`A=w4w=4mh~gquMwTLKfl$IkeL$yON2(LZ2Pe;61c1w{!*8pLG+44h0V zd!Q~m2TEArTnrM{g9%@S3xix{0TbTI#K_?Tav8Xs06C!!CN-0t@iWIMj`>JYd<7=A zii7bBhd#%Ai2WdKB733se}XuViH&0(G%bOoy^y65X{i7vypIDELiS=DC)YBm2}7bC zq)%!e)Y#3ejCA5C82-=P!ql}Fn)sMQIK#ROc;@}1Q|G)I$*+&nPBAwNO%)W zxQCgMqlL)=ltVz`%m<-{|7Bw2uw{}2iGxyy0Zbe<(OAKR5s3z*+65;3h=GyAjw3ya z16urotmubH{$^z4Xogq~()0i({)Pc$HMsBri8CF7I_U!_)AGPvBnA`y#=r=zN141p zfyj1^Lx{-;qzn`+7huXhfyzr!kT573zQKg2Gs6lxkg&jEs9o<-gtcJ8f0-FMyqQA8 zIgWEEF;_(}sY^g&7Ua%vFhv(YSsR?MKt{40ff{)op07Z{d@$j642-*(%wX;cfC+zL zX8gnicWxO>cqt34xCRB~6qqn57VQwF`x%({Ot>jR44h1#V8V8cyCDe&WC+hur~^Uq zVGA(?q}l~0Zp7FEEnPs~41x)R!o3+(bFndLfWn>WLKs!)sgCoo||5f7?g z{=tM>7#TT)_mn>d-4C>Zzptb|JBm(8tOE6(XUInRs z025vTR}B(=2NV7PYTtm<8AzDpIMnPOM#j%f5+I*|gbm=rOpISSY?(A*5;ZW1S@1v> zVc=w11QVXf3yVRJ@Nt;%c3#FG9O+LX1sBNi%qO7sB1#lcmKQLiXsex4X`<{gw zj#l@R@{<170eE4nDJCspNPPj)kO7mKz{0qXNlBPPpGgJkOpx>inDlHG#;+U`Z$O)WARh=^fm-zm zRGWi4NFW`0Fkz4jAUz=z7d9ZvBV4!)CXC_2Comc8F7&wybq1;nK~Cv`NqvL2RX~}3 z8BBO4s7wa8AV9*WF@-_3!v~n~6kf)?9MEbWWV*;TsKuzJ>%oLkO%KKt1{qQT6Q0A& z*aWG-KyGP+3C{qvN#RahjVTPOWG=vjU$DZOEg<1nFyXIoVUUMdu0!2DkC$;Dhb=Tl zL5|Ue$)GyM5+;o5m^e&fQ0dkJ6aEcK@?fWfgjb;mgPRl};S<<}pJ52E1zo7eV9!iw z8Us2vfiifH!oi#)Kuk1{K8=8TN&-6TppSQ=0bw;vIfj8y4`EK9z$a+HBd(}^glPiJ z&@iA5j6!B6pz{y#;d(~!kUL~}9yGdNSpXiwWCjaEM&elzL-n8me8@mNNI`ybc4A5j zXapR}0}s|SGcbS${9wZMMQqL;^ z=}v|W5rdhK0bv+3Gatl48gmC}gp3nIB|yX9VE=*~1(~)184Mc!28}&KhrgK^7{G3Y zC_onT+GHX57e;&ldPaYPIk6PL&zWm2Wa?|87#vBl3`lMyn0T)_&OceS9Pz#_dgf@OPp6e}n*!Wg9%5iTf(P2R$aK3GYKGJBew zpNBHNf-;+mB#EU!gH2?C^FRuCP75RJLgw1^G8mXqvODf#3N-DejhHuNMK7j6@}Sa$ z5m8LR<}eu<7@!k&jPU7ECeRF2QYmQm4KxpmUe16f+0bTnK}8Sxyc;{HWPnb{ zf{MNTnjlbHl5d|)~_85qz?N{E*rs=)OD7sy`Z zk{4b&u`nnjw0c3x5@5>o8C#Ham%)TB7*C<;0?h_(f=R0~a@c`Q2Tf3Mq=So2@O%;58>sbK zjBN-}0hp*hV+(YM9AumlOxT!l52W}7n_&YJHfL;s4hn)Mm$V*3jaFgg&V0Z(Da@WqzGHX#$3u|$jHpi5y7Fqh~s4G+LmaJmXjw-*Mi+Vf$ekD^=9UxHOvBQ zY|A+ez=9x;Fc}DQ?B>|LcH4!ud|!0LCgeFn|HF@nMu z#`to*If^5r`E%J9sG$?sI8>UM^FJ|*tf~0SA^d|Qoui8*nI9x!os`+ zQT8SZfy&-VEaWs6;ms<{A`Di%f?8F`#UG^YMS5|KQEI|0z-=|SfdR1(R%~LJf~gxr z3GT8Nw15TFPQzF1!pdN1nG0G1k(&sbE@xt3fUYzFm$^CdB}J*wG6kdvwp0XC8bDT% zfR@mpu0KgiEY3`hhpgd%s08VSuCahDu|a7>F@u(@pe;}Vi{<2_E;B%G?852>P?=K# zsT)|(n|1KIffZ3VKuT%Qni56^2J|K@Xek3y-2hsyQdy7+UFra8e4@5!LCT4*Do}!@ zBsm$h+9)$Gvm`SyC$lQGC_X2%7~C?31YBAPD30 z#KY`>Bm%T$Nnkb5>Wc-b$&A!X0X3GBGg3hT0TP9DSTJfb(25XPlNzK9+VerH$yh*1 z0OU=`TA<>RM9@Me4rm_-xlUt2UHz4rm!FbqR8W);s;)tm8rD?>44h0@))athDwZ#d zU|q~NL32CcwE&>HgK$-Zqtd}ryMW9SgIRNgfsv#1KNzL29Q>K38<5xc%8X&4Krs+ zq{;3trDeMfcbDzvP_i{_zHY!_`@YhQV=ae4*>xrd;e}sHCowq)-(*q}Vdmpllg?ql z;ml+p46?wRnQIq^KB%w2#$*VZ+hJj2G8I{WgCjmF5=~V2Mj1y1vn)r+4UXs=OtzxU zr5qWhOg6$y2BJ(l!pvLiCxH4NY#c&t%z_*UwlzoEWFJHqLx7EWF{qkj(iCLA$H=4) z?Pail){9ttg{F~(pcM?@u@%sIksz2bVuT%}Isqp9kC~CfpCbcY(K8u=Jpu0CuycUc z#&Cc-Ib0EJlO8j9i*m@^hO7|)EjF3-4Qkyn_^=vCcnwT=IxB3#5F~sICVUb!3I!e+ z1-arMOt^)e@iSx^4VUQtiFyRA?jJv_Bb3n^iQedJV!Ber|u_llq zeK7GaOtA4VkRdBz!p}g#BnFzI0R_`3m@s0-0kmud%RCQA_y$ZhVh#)>%B~Z#_WNVqoF^NN;V;x5shkg_jI21sdcKm`m{|qzZDJFN}|FES5 zpdo6T-%v@!tPe;}7)pvG8QDh4<-&; zZDq@(4-;ql2Q>yX%WTU8Ru6KW9ZdW;HzUV4ju<8t5e{1>GeL0C0Uj3t6&9=!Y(7k$ zA{?ifj76`5TIoK*Om-q1%}jP8Ova)JVJl%KE0C~`2$Q-f$0AVa2bz)qFMk8s*3JaE z9G7`E3*&CcoGD0n3ru(hFC#}g$m${x0qP2|uz{DRv4LmBIY1>nD|EFR0}~4eXvG=_ zn>~oR6GS`%5gfK)61wgLWPTYl)Y^^Aj2t3NY9g>jY#_-KFv&fj*o3b&dju0k%)5eA z|A7hLXJ%|!yZiHJNaEsU;AFC6f!czY69nn-fC(>0Npn#!;rS@SIWS>tPTdESL`}XI zV8Z<TFKj&oRsL*H96y})pt`b%~gJxt4SfMV4&!T}G+yxW;4=M0w_w7kS>**x7%5ADJfy=8b>S>-#&4fLdmA(}se)So;3UTcswr7^ zvAIp-(9d8}7v}h~he=HsoB|n{)S>feAY*26K#lo=;`B8z;p>cydpMe*vr8Zi*I_cK z3E~w@_yoEJQBJ50(?OvCZUlhpNCTMgIX1@KkO?MGggC*35wldF)R_SjMoeUb98&}n zM#L&exB(`NDB?h7&w~jg%m%4G0ux4!>z^=TL=p$3Ivy^lcM!9&AhV@l!iWibkgy9( z7&NDQ9g@C4;_G4JNE7xTx7>k=uZIT~NcbB}_$n*oUf7B}kc0v^)HO3f*&ke(gN(O> z2_t64KyFWg3Bz*?NO2uZ6rmU-yci~o6*$tR7q(uWD2mXSI9|A3{0;d&FwIIR^HT6DdMi(p$GDQz244%;g3xf>t zfe9mG2xLeUOc>RW5|}W;5RloEV8Tc)1c`5fi6fRZfLbLdV8Z)37{9~1A0Ws4f=O7w zmtuj`bMQfZgqRrx2`j;b5i_G8VH=q6X%5hWqI6ga0JSMwU~+J8yCQTWNQqzi3i!)%`nXrwpfCmg9BP=u-eJ6ed z1!+zYGK>T2&w~ayl8Yhxa6sc;h+z-t_ys*j+fnzrppCH?!?rqPUaJT`JvM>aziYR*%)XETqR_+l)hw54W5Vhiw}NXxEK~2-qM4j&viAbkG(irQHS`k-O(}JT>6Z z=O{IV?pc`44=Pbp={0PRqfkRhE*QlseB_+;)QVvithB|*B&g{arVLVEGeAe^kp>o_ z>0bZE_D!K^_!Grdcl05_uSxJI2?hfALiy}h%k$5tP-{ECH2LnS&W>G4* zoPv~DkZD_xIB1_Uj^!$#IHq7=9#o8RAj&+9ZKB{9gzWEyR0mweY&9<>0lK861inpaBg=wh}f_v!00!yzGRD4ZJ!9w2qf)K4{Q` z$wUN1ae%h>fi`+FS8;f8L~~?M;t=Lo%cLPv#j%hhok>%K!=Q{qi788REr)P4XiKJv zSSeGCFq4w-I>@wd6C20%lgv3BpP0osp6q_n{H2s5abkNqxV@RXYpz-@%^3d>-g>A?HiQd2v1r6$d zgNY(WutAM(EMu@BVF3lG$*rK?7KfhOc*hU3sPMK6Gk1x1uc}`0+T`v;(~PSg9#(X>_Ea7 zV8VzIE|Bmem@r~M79{)yCX97J7Bs@rqzm;1e0T|@Zw^cpF(3;PJ^~X)4BdgoS1!SX zkp^Tz%I)-^W+MjaK*A+3VZ?weNO%rR7%?CV5?%)rMhwV;gm1xw5d*TIWd8;xj3`Jz z$@mvc7->KjWQv_W)P>{^$byVnV*oVO!P3Mv%*$VB&~jP>^s8Oc;3>6eQ6GlRylEf{b4R6Gn_|g1mGJCX7CU396MvjiF9L zOo4(D1C}XJkZNU^YQz*MNZ14>jFMMx-c^>KK?X@)RgYVg*bBF$D^8|2dd2 z?mn z3bhq6;0aQ%0TV_Hc!GqTV8Vz2Pmpj7Oc*lYX$#xk4Qe~gfyu!KJng{Ub0vCp&rv(U z7@cQCr#qmZiG#+ktLW6YL6VW8X4RNhYg2)(!eli`Xv5*ng*9Hx?CU@b3 zpgu7hlQMWBjE%`!0>r-_#pDH=uw_D$5Z<w~5?+$Bd@r>xuf(lhEOR_+n zVv3ezfeP|VFzXN9;7-7CXCsep97OZ^yWc2u&lrV31eBW0usiuyb2_Ye|Z(CA&iDO&T1adi+MNJ@Ktc#jJ5?B^BfsD6ybdpu&qY|$q+~w%aS3GFs>y-pf=A2SR#P; zpxc;16WlDM?FlBmdkgEHVs>1K@8hEOzF{VUJ2BX$h+Hy+GP@31zrlcVU@D9Qo6?3I zCk)=N4?PkX)JKEt%>vB;BYKkP9Z+V}69qtPelik^5S=oRJfyn|Hi!5V1wa}RokXl# zbwTEWra)N{Q=qKq`^#Y6GQ?>Ltf2KExOet4Gk_-lQ8vF3+Sv=TAJ)+W*#lkQf-$EG z?${yD)kWUK3*P+(8VZ0MnG2s+28{|Jj($L%Tm@~5f}cPDQieDq8FVTH=saCc$oy-c zJ+!ixVf+GHa}3(`bPASrfEPnFRqE0p5m&pjAWh1=%GTDMbO^84U4J!6oKt`9+?gQ{oHqGxJJPix}cd^Gb_TQ;fhmLOgw4gMu02<1_O> zW_9FFE-?iUIeB^pxRsT;y1F_Wx%vki#WSR*mV_ndfQN=B0p6I)=zQdpHKg`#MH27#eh~3CYGeer{<-A&4$I3qnm5I zTd1FNh^N0_FvyJHL{C3>$eYG{<`(352A3Eb#XDu@rNkF!<`(3ndb)u<1@acyV`U7< z`MCv&MXB+r70DTidFiR3t)}^T>0kq4(P(G@HVwSH(b>qgj3KQ&GbI(Y6~830Bo*u` z=Xf7SKlk|H(0~B{pb&^|Lo@i09kiJ7B-xFw7P*NP@x_@{sjflZ!4~lh0Z{+@hK9IC z#QXUN`8xVAWagE`7sMB*7Q`o2#upbPCZ|GN08NI30|Ok#rtu8%p{_Zpxv6<2#SEY` zL(D+NAmXMN8aDyK@eJlUIVqWC@g)q9v${*-GZOPsa#BINM~hMtOA^6u1_zCkb9}I~ zqmL^%J=DP>njt@vc68mhtiFd8P5m6%~d?@jm&< z+3^MWIho0ou12n|uC9jW@xibx7N3!tQ;=HZS_KNN;1WaQ_;~2jO;FDAOmek^WZUA> zB-bQRip)*T%`d8q&o4>=<ia%-Y$M0|#Q0mRgFUcs% zFOLW3JS1y5YutmIQuz9?zt7}<6NW4pde~3XmLwrbqA;b}mVXiLmo-Uv= z4;q~ycYtC6M;Ie#b^^&DF&LC7P2#~efs%Phkf)zJB&i0+7Zl|eB&LIkuKYYu!CaD< znU`7=53U9hi$M!>K^YC2c%Y8LT4LZ!+wcMplx__Pr&|kX=1Fx83O0++g<5M4sw&cp z5_3TAEG|jREAdS7NiuMCH7!fbDNS`{$S;6w@KyjVH;nge%Si+m z&0*fbC5DEuT$Z1oW0I4fnBoeGR@BTD6nWiP^3}NthWlH$D&4ngx|a z!LGiJ0UrKAuE7lD$;Elexdq^;5AgJi_w);K4f1mhi4P75a&`0tHwp|5a}%>up;?)< z6z&;p7Vir3j{#Ca5EAbSOW&b+g{6r(nQ57+DGbOyh6Nu(Nk)81L4HvQ1A4>5rnn@< z$_imBgbxX0J2g9o_~3Y0rRM7z9PH@s8V@RfJ^kDn;(g;wGBS(f3raw3ja)-e8E(W7 zkElBn^HM-107Dw6%7+wX7=Lw;FmQCd!Zd3<6~dVFG0Y9c5AKrvjJ2g=T=De=XrIjPAd`9(H4 z`FZIInRz8T3MECQsX7X2i8;lo(DoJfb^+1;BO;fZr=%8_6y;ZX2Ajsax|V^mdO!%I zm~wFq^K^EN4-Rm3_H^@fh86&ZkcJ%imKV=tSCh2NycE{}@8sN|U_*#LXtM)CL8{|A z^z02vJ9(*~>LanJC^NMPQlI;{hPnC}$2&VZd$`62dq#oVyJ*?h0@nP(RzZSmebg!u zUhLs7P#^`gaXcvH7Nw?v8wU(Usp;{>iDjv<7|c&gi!WgSHL*aganSW6#U-$+ogqFR z^@@^sa7me3WRsa!0?sSoiU_70xiANH18}!V;2r>#+XPdrtFw`3utB^lsJcn?42gFI zW$*m7G;rwyiIVt$Ab)4q;NbXR562)^7qAR+xde)6Z`{={zSKujs~Y4VOHd9Bj>pn& zLbPVfKn|j+t>z$Gk$i~JYJ)U`A-O-eAReh~jxR|}XGlqf)r|}#`Q^zaMTvREpbU=G zSc}idNrjiNb%;&@qJ9JyuHZC+T$_S>SCFE>&dLg0r-G-1!MDhOinn0r_)t&35OC9> zBsV^@7+Q&PW0QE|K5lZo{U*p=qZ8hM@8%5#&NpqX-@~NS#8eW&|R-FD4eC?hEz?YI1%-Wjsa$72dls0hRix zN%_$5_w>m$a0O+0SZCSQC&|#&)hs?ZK0UPrQkf=}J-H8&}>2v&x};tv#ipeO^iG_kjj4P9N6%aUBn z7)pu~lT&l^Q&JgW9_T#yHKHgemOq)NaQTF5%bhk&~W!I6*_1Gv$JYeWVVORi zAa{ktGn8lMrR0}0#Czr!$NLwg=7ED4)DCxY40dGzH4fuJeFaz(F}TD8)VcBu0+(a1 z{-9zEbKETiHtgmPF0{an3mn}pc>EZfLmGDRC_OoFMgf--ps>%(&jVG@pypCpK}nGw zxOe~$8G-9!AAdjhcqh*gP!cIh&Hy!_OF@kZhWPk`{9=aU#Q3zt+{~Ox)Yg1rav`X` zVTg|hbx%MIZ%BaysRf{A5ZDqO1r7Lsg_RZZfQ6<}DX6959PjMo@9Z59>6Ux?`!S$q zWE%q=d{qau_F{;SPe}z`hX@+i501kp-A{BXFRA3fe-0`TM4i}11Px~#fJvCG8CtlKqnRAgUdmc zKsmIO1*c@tU|0z_r8s)}$NP8&hj{vfn*;H|@zB;ha@5f^Lz+Dh0fVrYOgFamCMp$zO^QEZDUZHqoV+AEI=xo z;Q0LH5{BaZ(xT*41~cgRDkuTDdHT4<2S)~nxPk^2K;;^02$EDd(4lqXNa@={>H_5EnvpTapbV%No0pDlSO(TF z_3`wBjuboQRhDFcZu*S(067~R8^<4 zf)LO!GAQ(eOAN8J`Eq=64B<^Fa9QmaY$pi1Gs^W8^#zX)uGzG^6+cr{H*J4_9aJ0Dn)v5b#;C z1iP>#q!-9oCa5o71nMM1${Rv0J@Pt6pej0J2s%PzPz21ybGd$foO64a+I1GmaS zofEQ4EqGjmdSphR0TE(`VGtFdAw~7Qp#fqH#Wf(<0zSWhoZR3}bcJ-!K@DbKNb@!^ zB?UA=4h=kvlulrf&@2FanT3UaX-Rs1W?s5$8ABa%vy`DIH7_w2Ix}jBKH>>#%)168 zgT_2T_T#NJVEqE*(JW9K4WtoQZ;zxZ+SSzv)IkULEl_6jp=}3vXWTG81a$LuJZN&; z((+UjYiwlx-;LAclgJx+3hM@Wd>`ib371SI6 z&6t4(#WHd-p|f#llM>(tnGt9Z3+wDQYVQSHfa7X5Kx!7eYa;NM^pFhe2yzQ}&Kk7j z0W_voo?KiEo)SWwKpkJekOsb`9<($ettc@$9x~GpO;|W8Y49=x<9G(}+5%9I1k`c@ z(V*N_lwS$bjk~adCqB@Ul`_zhlZ?dT49E&4aBU4v?uPN6kf{hrdXI-X473CRQeEK+ zJ`!48#-O1u=mGj!1U4_wJW2Xi5PQFqr6_n`P7@B|CE z--tTU>Ei0<80r%O8s90&&xTMr4Ds};8csXW+t)JL@Q1#;sb)sA(ar;CN~M) z70{d@Xru<*oL~UW?dN6|Cxg6;lpa9?bD(8fpc$~zw6xSB(&l_!&EkDQLp-3Cx)W%E z9n?c*KwTFGUS|bsv)Vw$b&TSj=De_YN`g|8%NXJV;ZyQ3SuF<0pd4(> zjNINRyl4Z}tGL^Bh@Pf*FlaSbd}$`Q{|*||g0{)ab5nCcqofQVMsX@=4N!0isJudH zKKKQfSjL0;qM-H|C>0wTgL_HwsgUJio)IDOu85U_&`BZa;4+j73I>hdMIkMu0*%mN zpHB5mb~ObLt{_HKY(bd|t*b&>aR9D4Exrf??-m^C2b*W7 zN+E~R*Z{44f=+ILA`SOcfhE~f1)yTo6*MFt>;|g(5fc@VY5_79jW(18&ZX4wEeS*K z7V)6L^@60LY=)e~;u6ReXbc6VCE%si47so+iX|D~bwtIW1P1D#QlY{(E6vL+ECnrE zf-Hwju8c3P%uUMA0l5e?+Fx9f4_PY&9?EkJ2?_Fa3Jq}$1~tfwGxO4OQc)LkLxL8$ zCl2b~Lsv9HBq8ArZ4f|&2E{0hZ#<~u0q&AOMk7o?gWbuXg>aBI4Pt#XC^s3z!#gc# zxjiJ_HOM=}0F?4VK)uBH1gj_ij?^)~&TAB%NZ-W{ppylb1p%)W)XB^!AATX)~ z>cAqFV}TZ$gO{v>W_Q5Lw4qDQ;!`q<3ld9`L96h|tz1cp8&HzPy}kvx0tSusg0ljs zI~$)DpIjVYP?VaSnvx1Gc@XVJJk??jJe^@AXUK#D(%N=dPY|~7fFUO{FB`n12{cy+ z?};Eq z;)^Tul2cRS%QH(d;=x;97~mNcw7v|KV4;IFhK8BN{y8bBMIjl9d9LQ5p@}l^-U8Sx zJanJ~qy=q`0n)Yu*Xp1~J@VjUVz6rxXtWf3#v=o?)X6UbFV}+%c=!g!`v!L-2XEVfu2@E2zUvnpk1~ef3N9pr zU47&If?a)~DcT9w66T#^FHeu$|8AAe`Z z5Kx%Kr)9!s;GwHoK{kM9vLS1QLG}khmf^!z#-U8Jy8HM$Ir_xM7ndf*d&cKvCc&;m z25mEp2d@PL*&6KW?&s(Oaa1s5s^1f|Xd*tjvpfI?Z606je&TseYPg%oAx7iE?ZJ?4cn_7M;a8c9mY1Pwx@<|U^> z`_94fXhKNEEUaV(^#u{*W}wYZpry-D1HdbtK)DasFgLuT>gtN(prByG_<&%8_*~H5 zud4jKRB)0oGl?%@D9wm31(mRn#EvoQ5AB^-kqU}2e}9$wegIveGLi~%-#e%Jn)aK7JxUrLAKANrZMCu6(K?d z$AUYOS}o{{@+{*SO3LC(L7VX4t+Ij==weZL#Yt9BfhKARw@pA946-&XG}tvL-Zjh> zy80E83ebu?Gstp8*P!GeZ}dSov>7XWl`lLpK#e%uqbQIGO~_y{fq^E-bY@9Ld^xCf zinN9g5_Iu|Ye7}$zEJ$R^vpgHSc=lBS4|0^QE9kL-E&NT*? z0dTGfD1<;wB;+a=v3ol?2Nqapv!$R##KDH~pmoHct#Y8{quA!P@UJCeNGwUM08NpD zV*{-&GKX$ycMbB+1iLxN)zJskVvUD27%>V3aDIa1A1z3(0QG5cP2EE}xJK~|d8z4; zPA6z{86-TQfsWjba4~Q#V@LrVD*&74$SjD5PQ+nuMTQs-+94Z-Xy#`Ym|;EGAhRGI zJc$Wy8k**U23lM}yT5U?X^lX0dk~L;%PLSbYv`7P^A$!*A3S^$?~)2Snj#atG8cV-holvv5HCP;3?$uyM~%Rx z3UpI0Xzq~M1Or=~PzPCO1Tr2}krGHSpt&IA)c|NKb_`uTUBMgYK_#VYP%tQIfd&yk z$4Yhl5=zmXnzaFOdn>kKh^!a{dWY?E_AAXr;MP zP6=!<1ynVIjv!%3EKUXuNTMCJ;Tja=9|T^m2-+_OT3AfDv@kM=k58^h1Z|Lp&Q*iP zV?jHHatqQjb3jLjz|S>79`qr$tOO;lf|4RoQ5ozUALJMwAMEe!?HU3)?I1HBv>JyY z-Z>+&2z($3Vq9>51}sqq1OkGc<8$HL0OP>3z4%-RP2HfSJwc%5R}7iO&_kC%MOlPX zuqo=Mjd;XPLC|1INl{5rJgDXdjRZkjjgWeZ=msrxxROL&3U=Uu4vY8_hQiW(@ct_B z1SQDPPR{Y5jZDx%Gi>YpKxGW>78n)tED?Pn5+-6@VC5`&Cj);Ro9 z5Ns5m%TSP7RFq%DkWvs2nWm4=1UFeh6+TA006GGgn395H1Q5Cd9yF^S9~|Q7?Ct2{ z5(KVdz)c(@lm)J!fb{eagXTKe4n@cS6yn$+uqSZTGekx-5z9&uF%DW33ZBM+RxB8S zfctNV3qohR_Lj;pIHd=nutWtNl{rGiFrA?J<6d-_9;R{-^j zp#>O*Zwd-Pbrv{~k^AECi~>IJfb`8?U<0wn8fm?JQu?$IJCR5FKprPB1_Pce0(VTI zYu=&30Xj4Ssip%Rqy*Zb4+=&LSo_2TbW{aMJ**82o-rV|1OPR-g5!f+1AHJk0{a$9 zhN9HuGH6yUMjC}lEK0|>ZWOvq6_SLo#tYGjmx$bCXn;H{0y_D`FSrEH=4tbI(2hRn z(qd>k5$~{wSv;uK!T>&s4|Lc|Nq$jcda8{DXd@pbtIr@gBxw8va^N5$2_WYPqFZ_3 zbJ5Ur4aT7QDF8ZD0?M%X#&|%39H3QFpdI6& z&Kc4&4$x2m+U5t)85yws*U9;Lpo7Ffevb!oR{}cz2DG6T zv?m>Wj37A9Alqc)T^vIkL9J^B_}CDrScW%Ia5v;g@+PP|0xqO;QqxKp>L8s1(2^0* zIvMa@YRpss?(&1X!twECB}qA;F$jpe5Urt9(3W@5dAOjNcF@W{&^lev_CFl42CFk% zjX;Y-L46#wg*2eiS5RUt%1;I*Rx{8Nu0-%4Dtt^f*uxhbfFbel<`JlFgBopQkdauF zQVu#QGdVvGG?bN^ms|;&9!|?CEe0>Y8Z7O05(cE>GxN;iOBrCx1i%Be$Rp0MB_HrL zRY;45z}=NJ@bXevc1LaW8X6+)uLlhmgO_X!f^itcwnI?80GeiD0Q&>HE{&X6gtyy3 zl@k#)HNI?*eOU@P{Xzy@@7$Q!HfG0KV%KeuOEgsSlBZ9LfhiCKfbi zN9q<=L(o7As9;6eO%2K&xOVqYu|_1K7zNn|S(c48+k<*l$m`??Y@`G!$7r#Gw;4kk za%e-CsGAN!XGp+mwcz-q#1!ye!ze#c%D{6*D@qC?IGzkUUnagdJF@`P4)81v%g+JT zexQwz3`i$?AvXe0`@ZGL#h``R&`lx8!9&t0Gw2+GI>bOMLvB3e(DFR+R@314{8G@` zp!lN9^o$aa1Hs*L2FT@I(BsT)K*a{M*A8MryUk!>$Sfwf9i5h$nv=o+-{%4?b8u7$ zpcH|1zaY{`F%kO#L9s?e`a>&Ff`VP*L5F>y91sYq#h~lgp-v}j+QzgfwKx^AS_ZT~ z1v2jiJ=GRV^9i=95wesIW$7lKrMHk3l9_qn;|js&jbh{p$m$Q|`U2XEfK?l?K^Elk zT&~TLXGLfhGg!_)yRZi+QQZpsiaVrx_Z6cPE238x>i=TDPu2-WH&$88i_H zQiN@tJN{uIaN&%zqyo?7fEwOlWhUTtuBoug06YVz*ef+OfE%9g8U%`9wh8@((0G(L~ny3YBmw+7-TT~3$ zL7fRYkrbRC;48DiLa19OK+CsN3&AtEh$EiR!V=tyCE^4p(7}N4CT4_lDEx4Uywq~f zyt34yl2js>bs!J1AQdL4B|NwV2QFh1LC3IyxsX;lfhEPDgZeELk40Z0?=*Vht zV#2Yk6cOd%?LW>&pvIhGJVS0$aS`ZPRIo$w)@RTTqbpLi1lqlYv|b7$_aaxJu(}h` zQTF8P?(B^n7$98~g7^E!~s7K&}I%#NQHt~?j8}Q0t_aOh!fZ+Hbq(Ns;lLAz@ zfO>MMZAiq}4azDA{L_wxCh@+YVI5C{LCQ5xU-RKfMrSnbe~dycQSaj7C6JBH5|ZYJp9BPU+_jc zP`d=Y$SW9f1|8xMxWr`e_9y6|C-&yBp%HTH&$SGEzys)P6VRFI4DpatF_DS^(10B1 zAnRiAIrX@jn$Tt*_VxdW5i?MHF@SFuK{PEvV{b@vn~?QI!3FV%(`)e`dP!2=2c7c{ z+7JXkg%orX5F$Ymkv?3BsAZkw8B#I}%y6Ge4!&&zbU+T|YzW92d&ImZXw82y zG6QrM7IgC!#Awu<4zH&0XDYDG#_yAosHaTC$QSl|V?Ztd?Y9C=f)|7K6_w_tr5;kiKx@M^)7gE-MG#H|WJHlRMBM9G<0zPaP%U)>)q*MSI z@Bpuui3e>i1MlW4E=q*nG!kYO?-Kyu=K~tP0kvg7x933X2+&bP@zA5hz;mMD9t?cr zD|p=>(nJelH8H+hx=azfVIhl6kw=PfPs)R;3XEPeMgbX5Zqo+Zn84a%A<)r*Y9*o_ z0#!+lB?@*7X$A55X=#uXM)1sB(08E9$P_d`h`KEfI%WeJVU7o_`-ARigf1!x@^=ai z4v7aH0Rz9~2GU*t-A@yrUX)*206KIu9qwJw+$1RL!mpHbaSaX$3Uv zSOy+JVTgAFPus-@1i6Cly@Fk677w0S1tlWVmQaD_6?4Exje^(6fyc@~;{nKb806-s zfbNYciU*(n2`OB$mV1c2PE_TEXX>dWH@-3@5ww*txFj(Tlo644K7vPE(2gdBx)Idv zfGlGSc8&+F7xfSJjCb}431)y5nI*~KrWw2(MlO~>qxMCmd9eO7wCn?ycXjY_R8SU# zl>Ufgt6(Qq8MuPZuyQp{Nd*l9qOP~V*Vbn!t}HG|1??jDGc*9*cm`>c7=rdz`Xm;Y zfaZ)LgP1Tgv2U{hkNXnXt3bU71f8XfST%{9ElP`1p^XNxi;$LW6%-UOfSO(@sc8!F zuu~vFTWC>v43K6CavK5^=AZK5r4f73P?z_LMPloN1m1>XF%Gm;4KQd`FZgv zsmYnSi8+u-5s-zTsSV@;oP_0WAnmy3#z@U6#<1i5AudZTLJDkfrHeH`g7XPd`x&Vl zjab7@WIF^;W(76GK@o!-PLPpq@aA>~=&S`SJdi6AP>Y_>$|pj-Ezp7_@MiL0hIpS; z@Kpq`ol@BH4|ow3xVFc?0}C+<3%alha-jlr+6I09907w$ia?vFp|wPSqq{3)=LEc0 z46ZBCj|;=t69k&0SJ2Q>15XivmO8-3Js=|b8Tq-X`nmbJ`T7Ax`B|ySCB^#CZR!l* z4G5rFe9+o>$nr^8WWeic=o}Im7fzBjH;c=AVBdjy_@Mps&OV@v91(pHa7st+F_4yx zK*vrbf{wp(g`R&!#A)zgD{*8lX!Stc*{g`5I`qZ#q za)-=6L1wXt9+JY>c_Z2oLSx!mpaCyLk~7K5&xE(Oso1e2xF!_RKXEn!-S31sGzLBy z33LxxN`7flPO2TE0`&vk*#tVtD!)9r7<%w7Xhi|!if%}_!`Ba@B?bJ=ay2{DYh#L2 z3*(a^cU|Ku;1S^n@ebaDnsMGh44Oxe&w*Sq2fu6_+Ps8#2$GOs>q)_73_art-2DRE zYDnsQrjaq|Rs_f)@sMQ(&_y4vWuVg&GaxrmL$B@wT}_=)l%JOmDi(@BHz*Xt2RhYk z!9#0#;MHRRo}LVKC=ozn0hA#j z%jCcN*qlt-02S94+Paw zM2xHAYqf$}*H{-4gBqp*9+AQE;8r|noFuUVHfaG`s|8x24N54`Edr42Lqs8suk0l- zItQ9<14k8d?~9}bX`m3t*ES&`^+H-9WyR1%Zt|z2RXWUI>!gQ z28FqTrtQF2Z$a1mfqL5*gP@RE7{`+Q+|1HJ>Z(0Ri3i&C3*Vk$ zY{XCuo*DzKb5Bgp2KA6Fi%WA8^HNe$bC3?1L|mBx>vJQW=vRi+`VTHKGKJYEg1xaVn^jTA7*%cDHvh(#$>hoW$UG zEGt4m8)x7L1%rw;$Yn&(`_38Qi3U`bVlBk*uAqiaK|wFFhjdv$b&zKe&b2y3wfG2M zXbC!U7QWaHel87UCIh_q9sOFLXR&K;K}n@weu-Nq=(eQ9lKeDKS(9H1It>*4 zW?%3^kJKXQgdHdVg9AMMV23z@FEL<9DoxKQ%_{-l*@-;b4_>EU3crU3qkhQEb4Z6-n+UBM-(g@`n1l$qiRK3&5zFC!InmmQ?u0dEjCjEA0q0=i5NGMWdr z7@ONbyM3HtLwuf5t}dYCEkR?=B^mjp#fhNPUW!wpQxe$j5X<$+wLsh<2HM^OJ`oc( zol%+s(~GNcB_gTdA6o!-pIw7cFZqM5?*Nyp?yeyL;mCK1fTzwuXBdD-ThS^Ra32tB zE`jV31_ve9Vh<5JM0m>86|u_P9CV#zP_PAfl{x6t)$&A8uz~i6Ku17f8{972c32e--CkVNLKK^XUGNth}LWf1=}iSfb)=D(99mF zJqo$d3F|-@Nx_LfjX>vDz$=9zy=Df`v8VCL`8lPzc?{q+Lg1tV&Ofjlq~O^nEwv;$ z1Jn~mJ3}SN)j2dM*fY!(|An^DhBne%J*=XJEegcn`34o+q}JV_TZh3u^7Dxgag7K8 zEhZ=~DS|b+a#O*xdANst;T;y(-W2C}AAfgGzj*j~H!O=o+bEz}P~@=%(o!n^=tH!s zz?lzMQ9?pjz}d*tFW4ZShq;?ho_GVWSwFt=pIm*Wr*=Sq<}^V0MJ=U z{-B{b&;%H^4F@E3!$1a=pc^bv%yIg(&%<{cJ>eT3jrN!104s;EC3DJfzSH{ z#dji7h9#VYTtQp1gS$AcC+<`<-b_d_Hdl z8G;BSc)_Zx%TSz}R}v4IpD$(ro$rU7XFyXY@UEJxpGUl>p@knq9Xu0*qX*J+i}!Yo z42D!`*xibAHy-R7GF>|c(3%DC08(Z_Jm|I#PycxEq#bCzC(^~W_}4ywYF*GwKDaCf zT}uopoAg+vCpy2Sgs`hxbj_&a&II)l!m1Gyaca4$)*2`YpMP6-j3?ggc; z;1Wa9me+wUk%pX)=?cDI(l50Fw7b_i9(4YQe<;YG!OrpEOa(i13aL9uYCjfnNDy== z0aVz4!jbe%=cHC(==-J6?mWf6W6GTD9aEqKcHF=_rrhJf^U9#xvOpye{O}|5^wbhi zsDpMFDH{>&{4G?EoyO4f6tRbjZ>r&t!Y!(l` zqz}4F9pA_}5!E98#u0eDoXja{3T8XB?2wicf~UX8OWq_GAEb|w!p{hy;tB7d$sY9b z0#OIYmzseSxS<(Riypbhh+LiE?+~kj+g-(_;M+HH^Fi~TplNRKvN@znvLXDE-1vLqZCw&;y#NKxi|wC{>JbNuR-U z3T%o6R7651Rl(clF@}8Mg)#mt1vAb#9=19qz5slXpKp9-URi#2D)=IB=;$EmG`!Tb z#L^t-z1Ic#Iho0ztv7z4kRYwU0~+OkZ6_)L?F0nR|A14Qr%$jUcz72S1D>$Un?MZ~ zVpg9)lNNZ%D9TDSX!?Np7`zP%9!iGBDCZ4>N`+wOc;7(qbR0O|L1_$hhAKUKn&7i) zK{HZ8pdG&<@u0~K?6+J)&R{{_1OuKs^M-p6bSz(dW(w#+5BR~z#h|++2En0m$Snf! z@fnWsprgrLU6I=Zpo29)X~EMEQmf~rCKi`~CJy648;?QNJwtqaW-++RONGq9LUt(o z_`8EvT%nw?2F`xaArNr>4hZrOadif*ZUc?t(yRs}V`Bll?f?&=f~Uue5_7;)-6e^6 zC6I`RoP&^qdi+6YMm(rp4(hy;TRfoGxS)Jav%o=In*z#fqz<5ff)-W>fEu7Ch|8Zr zw`E#_8VX3Kw}Cd21%$+-+yWhivZW5~)KwD8A4rvnuRVcOIDvu{xlY2|&5OG=Oj7&G z)s?)}j5y~@p_LYCWk3Azp!j&mC=6)lSpm3z1phOKm)B)b0 zf$m3w1UOt2!iBV#pj84y2w#+dPilh959LF9sU!~LIU9ni4$$3d-~*h&ZV&bJ2h|{+ z{$Zfd0>w3!Mne+#zFWw$NJ#Rh#Tf_$hyMm4&%FKh@*jkcY zfLQy8yRL-SOQ5Vu@K8p`7y)PzK4=jfI4>9?jVu#r^MhAK7Z&G3uTph#j(73&1;q$M zT|B7i4;c!}1x*cs7juJ#EnwX?&>}F<=F^ zS8yY=qi>3VhceOv7tnRepn8=d-ZP~FG-p;}!~p3T!Wxn|x0!&7Si^Wv&<$w*A)v9; z5Kt@Bv)DDSG#6CG7G#1FI1wY7h%wM0Z_p{1&;$=EqQNb|)D&>@jX=DDhgZN8Px+wJ zf>Sb!Ku2Px=Y#glLrg?2Q*pNQi%WBZQj;Nrv7iPXw4Df@>;w5QED;p_5F@eXN}|UO zh?w9tvVia41#RTS+{OzUvPsDV6;JTr)`N(-R$71d9dGoId1^BFH7{3`j>)g0>8xG;J}b zWf8#y>WqMfG(crH@@WA6A;Aop>3R7@sSJ=>0d!ypbSfFNoX#{QvkYWWaC~}xKIAys z_}u&ya91iLr6{=sGD!;>TZ7!51R92cOxwkS^piaxMN*{?Dq?ZpoCO|T1s!=(TmT-t zEg*Q^B12+Hd|_#3a&|oIDnlG~8mJ@e>I&`u27_+1E(iCVAv3bjbPSo0b%q_f49dmO z5C#<~;1*j^erZW&UMi&AL@9YeIYdE23$}I(T-`!i{g7K%+&q0kKzj$kRR-;|F8(7x zzzg{ToPrrri;6(G0&iO$eojOV{;?nu+BUdrAyN#=tNIYn84K#s3-lP#IXBU;`F(fBK2Ae=GBzemo*e|f5T+o;r zXft5JeLKU2~wG~YCEcJ{ObaP8e^HOcoQ}a@bGLsc_b3wBZwiOm;x@IN{y6FnK z{ss!V#U&}W$=ce6hA7Om08eMo{8(vTW(lZB19=B}Osk7)7)Yk12z&|=XfVw&0JM4o z)Z+_gfV6&LYi}WEIe-Hh?I=M*L!^B!pz9Pte#J8zhKLU2nJ&Y42GANH(EI?X6%T5T zFu+beV<<|@EKUU(OY)ix@XA%#m;ElI6lD26OZK|0mE7&fn$S`eR98DCtGn4AjM4_9O{{gfL559xK0(3GLXqODF!=!%|SY4-#t_UW1Pkfx2fHvXId=P`?$qQH4G?*!gK8gNfv<2BDn4j;tJ4qH%RdUsY9UGo+BTIhGlDJKo+P!3XVo3ICT|-^L z&IR=V^TG2$DLDaU!Jzh10nVFkp`|t?0wAZsy1B&ry8DKJLm@cQ&)Fl$-w(Ej4OGU0 zx`@al3D}3YsTDVbiY}zUL_UQPJ_`g|Ljo?0QHyenBlX}dLgW;QrP?W>!@5e#_+YF@ z?12jrX#3v+c4`A;9uTza3$!a2v@j_OzMCi|H7&IWyf^}sh_Dr(_$x<0#DFBe@ys;r zAQq_dNiNAL1&vWT$2*20AFdGvncf7=@Mfgu z6r>h;`s5n8g0GwPgj`M;51zd%N=@?&F@T-A3)(V`Qlm$NfZFE9@h$}+ph0qQLi2Ts z_i^*uc3FNLOQ1F8@0epk8V{ouP zs4oUNA;3S_6FI?vk^$~RZ_xPRT5D zt$-aij&bk}q8vdx)CSTdqenEL%&(Zm<2rr{>9h(^ds7WG(wGjZ)ZIiH?dQIMJpx}6A=jiHS? z@G=xnKM&U+&kzRiy;Z5n`FW5t0l+yOR^34}I_zi=u+ROV3D`d8zE3}`dUC}}8%As$qmxj`>Z0B1jEAMf}OXK#=< zz)No9K}|EXL16gmT3cI&GHA&JU7CeuISAw|kL0pk(BKWOB>|9Vha93{#}J>EnUk8A z4~lK91uXQolf=9fY(rY0%MN_vgI&R=6M)-;*t;wwB??zp5W+Z|8N5gl z(VRo>78BiKPyn4G0IC^7A?+{62vEczb+@R0&n4J1;O-;nb`bEYQgB-VYa+u}%9ETX zh$u6W^ALD>EbMkUGV&4l_EbTSOU2O?s44t+Qi)VvIKjt?`7ho7qk>H(*x zmZ0|m?Lc!2h>@}UB+wz{pfnI%g6-TR&@uyfmlJUSQoJvCVK8_>5kqNFI=B%8xhx

+C0WH6Vw-SiCOvyB!A-=2xbUr40 zWDb;|5aWTM*>P7_W5_UIuyed;K$sbx<~FDm4cZn28t{YlMzM{|{M9L(g zV+C$qfwE!{Xlx+>5(lQ>ffY}rW^)kuFqO;#@OtA+(3#4J15s-rho>M%J7`U3e5N71 zMuhB8!CVdj+B5|l4?w*UDmXr|0CX%9Xt6f-W8P6b30g-_>KQYxptU-A(4AV~wW;7y zA8dh+w`MKQPtFFdEsD>~V<=9HPfN_r%&7z|8iEfeI2*Z|XF_%ymjoNcmt>iPhJDHs zb1YLbiy+r~fbM<wJ4t<6SUi_s03m>^0bq) zk!u#{zP8L_aMuFVJ@UyR!6wAJ`}jLK`ozZ}Yx zn}bDhToh9VrM7T!?qU-T`|I8nU1Ogb2ce7aVv= zMfr&-5D7$bGh>L4vPe%Y0Y`LzcXAR#Zaipj57(lYZ>KyH9IC_J+y!xwb@aAsaQRW>g?n18sQ3YR6vk_L?l=WK|VotJjgSMaPvdejU);3 zWIWP=r{HDO@lhtmxP2Uyng&Vh{zYgJM1mgh;U?hdg7`2u9(2YR$VaY0LEs51a2PuK z`?+}r`GVQL{y~tSbOY^}Mcu{$4-Z%WAW%@ir)J?2AwiKIjzKP9lOV|yw&%u10elW6 zbbJ;xR1RJF0~WS}iX$e0Kq~A&TkoS#P6WbeubLDjW)^vR2N&nMBHv|e3~iHH#0MqC zmlUO@dIlES^nw-f_1#LnDb*+lc z5(^4a^HM;E+ZN}74>JQbTa018hgymp0Is0T$7P8*kX65F`9lOaowZ{jRRAM&|Lspc&GF#B@;5<>$qN8ne*jy+Qr( zD8Jz1%nH|B2Dl58^K9@Y;0m;9^5?){9TeEGjOE z&rgGd8$)qMQD$Ctd`W(MT4o7DT`u^%O7K{o8M?zflU+?fM;SmpQ(_2rA~>wUGoIir zBe|J*nYpF8t^uGL2{K9nSBjb_5dnyvI887Tr%Al4E4Y|;4FV?

YyK#+s%UB^IZ; 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 B51s%3 literal 0 HcmV?d00001 diff --git a/main.cpp b/main.cpp index 2a417d5..f09fb57 100644 --- a/main.cpp +++ b/main.cpp @@ -30,6 +30,32 @@ static void help(bool iserror) output << " m: switch between total (KB, B, MB) and KB/s mode\n"; } +void quit_cb (int /* i */) +{ + procclean(); + if ((!tracemode) && (!DEBUG)) + exit_ui(); + exit(0); +} + +void forceExit(bool success, const char *msg, ...) +{ + if ((!tracemode)&&(!DEBUG)){ + exit_ui(); + } + + va_list argp; + va_start(argp, msg); + vfprintf(stderr, msg, argp); + va_end(argp); + std::cerr << std::endl; + + if (success) + exit(EXIT_SUCCESS); + else + exit(EXIT_FAILURE); +} + int main (int argc, char** argv) { process_init(); @@ -111,7 +137,11 @@ int main (int argc, char** argv) handle * handles = NULL; device * current_dev = devices; while (current_dev != NULL) { - getLocal(current_dev->name, tracemode); + + if( !getLocal(current_dev->name, tracemode) ) + { + forceExit(false, "getifaddrs failed while establishing local IP."); + } dp_handle * newhandle = dp_open_live(current_dev->name, BUFSIZ, promisc, 100, errbuf); if (newhandle != NULL) diff --git a/nethogs.cpp b/nethogs.cpp index 3f20df9..3c30659 100644 --- a/nethogs.cpp +++ b/nethogs.cpp @@ -227,32 +227,6 @@ int process_ip6 (u_char * userdata, const dp_header * /* header */, const u_char return false; } -void quit_cb (int /* i */) -{ - procclean(); - if ((!tracemode) && (!DEBUG)) - exit_ui(); - exit(0); -} - -void forceExit(bool success, const char *msg, ...) -{ - if ((!tracemode)&&(!DEBUG)){ - exit_ui(); - } - - va_list argp; - va_start(argp, msg); - vfprintf(stderr, msg, argp); - va_end(argp); - std::cerr << std::endl; - - if (success) - exit(EXIT_SUCCESS); - else - exit(EXIT_FAILURE); -} - class handle { public: handle (dp_handle * m_handle, const char * m_devicename = NULL, diff --git a/packet.cpp b/packet.cpp index fc69a9c..7e37aad 100644 --- a/packet.cpp +++ b/packet.cpp @@ -48,11 +48,11 @@ local_addr * local_addrs = NULL; * uses getifaddrs to get addresses of this device, and adds them to the * local_addrs-list. */ -void getLocal (const char *device, bool tracemode) +bool getLocal (const char *device, bool tracemode) { struct ifaddrs *ifaddr, *ifa; if(getifaddrs(&ifaddr) == -1) { - forceExit(false, "getifaddrs failed while establishing local IP."); + return false; } for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { @@ -81,6 +81,7 @@ void getLocal (const char *device, bool tracemode) } } } + return true; } typedef u_int32_t tcp_seq; diff --git a/packet.h b/packet.h index 7b28eec..dc497d7 100644 --- a/packet.h +++ b/packet.h @@ -39,7 +39,7 @@ enum direction { /* To initialise this module, call getLocal with the currently * monitored device (e.g. "eth0:1") */ -void getLocal (const char *device, bool tracemode); +bool getLocal (const char *device, bool tracemode); class Packet { From 5e28001c7034701ae3c478f15f2e3028ec125dad Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Thu, 3 Mar 2016 04:07:26 +0800 Subject: [PATCH 02/30] added library build mode --- .gitignore | 2 + MakeLib.mk | 94 ++++++++++++++++++++++ cui.cpp | 102 +----------------------- libnethogs.cpp | 210 +++++++++++++++++++++++++++++++++++++++++++++++++ libnethogs.h | 48 +++++++++++ libnethogs.so | Bin 0 -> 798400 bytes main.cpp | 32 +++++++- nethogs.cpp | 26 ------ packet.cpp | 5 +- packet.h | 2 +- refresh.cpp | 104 +++++++++++++++++++++++- refresh.h | 10 ++- 12 files changed, 502 insertions(+), 133 deletions(-) create mode 100644 MakeLib.mk create mode 100644 libnethogs.cpp create mode 100644 libnethogs.h create mode 100755 libnethogs.so diff --git a/.gitignore b/.gitignore index 60400ec..0824e2e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ decpcap_test TAGS *.o *~ +nethogs.project + diff --git a/MakeLib.mk b/MakeLib.mk new file mode 100644 index 0000000..6a19b9a --- /dev/null +++ b/MakeLib.mk @@ -0,0 +1,94 @@ +VERSION := 0 +SUBVERSION := 8 +MINORVERSION := 2-SNAPSHOT + +#prefix := /usr +prefix := /usr/local +sbin := $(prefix)/lib + +all: libnethogs + +LDFLAGS:= -shared +CXXINCLUDES := +VISIBILITY=-fvisibility=hidden +ODIR_BASE := objs/lib + +ifeq ($(DEBUG),1) + # Debug mode options + $(info Bulding debug version) + ODIR:=$(ODIR_BASE)/debug + CFLAGS?=-Wall -Wextra -O0 -g -fPIC $(VISIBILITY) + CXXFLAGS?=--std=c++11 --std=c++11 -Wall -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) +else + # Release mode options + ODIR:=$(ODIR_BASE)/release + CFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) + CXXFLAGS?=---std=c++11 Wall -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) +endif + +OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o +OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES)) + +#$(info $(OBJS)) + +.PHONY: tgz + +.PHONY: uninstall + +install: libnethogs + install -d -m 755 $(DESTDIR)$(sbin) + install -m 755 libnethogs $(DESTDIR)$(sbin) + @echo + @echo "Installed libnethogs to $(DESTDIR)$(sbin)" + @echo + @echo "You might have to add this directory to your PATH and/or refresh your shells' path cache with a command like 'hash -r'." + +uninstall: + rm $(DESTDIR)$(sbin)/libnethogs + +libnethogs: $(OBJS) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o libnethogs.so -lpcap + +#-lefence + +$(ODIR)/refresh.o: refresh.cpp refresh.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c refresh.cpp + +$(ODIR)/process.o: process.cpp process.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c process.cpp + +$(ODIR)/packet.o: packet.cpp packet.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c packet.cpp + +$(ODIR)/connection.o: connection.cpp connection.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c connection.cpp + +$(ODIR)/decpcap.o: decpcap.c decpcap.h + @mkdir -p $(ODIR) + $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c decpcap.c + +$(ODIR)/inode2prog.o: inode2prog.cpp inode2prog.h nethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c inode2prog.cpp + +$(ODIR)/conninode.o: conninode.cpp nethogs.h conninode.h + @mkdir -p $(ODIR) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c conninode.cpp + +$(ODIR)/devices.o: devices.cpp devices.h + @mkdir -p $(ODIR) + $(CXX) $(CXXFLAGS) -o $@ -c devices.cpp + +$(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h + @mkdir -p $(ODIR) + $(CXX) $(CXXFLAGS) -o $@ -c libnethogs.cpp -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" + +.PHONY: clean +clean: + rm -f $(OBJS) + rm -f libnethogs.so + diff --git a/cui.cpp b/cui.cpp index df8fd06..f5576cb 100644 --- a/cui.cpp +++ b/cui.cpp @@ -32,7 +32,7 @@ #include #include "nethogs.h" #include "process.h" - +#include "refresh.h" std::string * caption; extern const char version[]; @@ -277,106 +277,6 @@ void ui_tick () } } -float tomb (u_int32_t bytes) -{ - return ((double)bytes) / 1024 / 1024; -} -float tokb (u_int32_t bytes) -{ - return ((double)bytes) / 1024; -} -float tokbps (u_int32_t bytes) -{ - return (((double)bytes) / PERIOD) / 1024; -} - -/** Get the kb/s values for this process */ -void getkbps (Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - - /* walk though all this process's connections, and sum - * them up */ - ConnList * curconn = curproc->connections; - ConnList * previous = NULL; - while (curconn != NULL) - { - if (curconn->getVal()->getLastPacket() <= curtime.tv_sec - CONNTIMEOUT) - { - /* stalled connection, remove. */ - ConnList * todelete = curconn; - Connection * conn_todelete = curconn->getVal(); - curconn = curconn->getNext(); - if (todelete == curproc->connections) - curproc->connections = curconn; - if (previous != NULL) - previous->setNext(curconn); - delete (todelete); - delete (conn_todelete); - } - else - { - u_int32_t sent = 0, recv = 0; - curconn->getVal()->sumanddel(curtime, &recv, &sent); - sum_sent += sent; - sum_recv += recv; - previous = curconn; - curconn = curconn->getNext(); - } - } - *recvd = tokbps(sum_recv); - *sent = tokbps(sum_sent); -} - -/** get total values for this process */ -void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - ConnList * curconn = curproc->connections; - while (curconn != NULL) - { - Connection * conn = curconn->getVal(); - sum_sent += conn->sumSent; - sum_recv += conn->sumRecv; - curconn = curconn->getNext(); - } - //std::cout << "Sum sent: " << sum_sent << std::endl; - //std::cout << "Sum recv: " << sum_recv << std::endl; - *recvd = sum_recv; - *sent = sum_sent; -} - -void gettotalmb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - *recvd = tomb(sum_recv); - *sent = tomb(sum_sent); -} - -/** get total values for this process */ -void gettotalkb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - *recvd = tokb(sum_recv); - *sent = tokb(sum_sent); -} - -void gettotalb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - //std::cout << "Total sent: " << sum_sent << std::endl; - *sent = sum_sent; - *recvd = sum_recv; -} - void show_trace(Line * lines[], int nproc) { std::cout << "\nRefreshing:\n"; diff --git a/libnethogs.cpp b/libnethogs.cpp new file mode 100644 index 0000000..cbdba1b --- /dev/null +++ b/libnethogs.cpp @@ -0,0 +1,210 @@ +#include "libnethogs.h" +#include "nethogs.cpp" + +#include +#include +#include +#include +#include +#include + +////////////////////////////// +extern ProcList * processes; +extern Process * unknowntcp; +extern Process * unknownudp; +extern Process * unknownip; +////////////////////////////// + +static std::shared_ptr monitor_thread_ptr; +static std::atomic_bool monitor_thread_run_flag(false); +static NethogsMonitor::Callback monitor_udpate_callback; +static NethogsMonitorData monitor_data; + +bool NethogsMonitor::_trace = false; +bool NethogsMonitor::_promisc = false; + +void NethogsMonitor::threadProc() +{ + process_init(); + + device * devices = get_default_devices(); + if ( devices == NULL ) + { + std::cerr << "Not devices to monitor" << std::endl; + return; + } + + handle * handles = NULL; + device * current_dev = devices; + + while (current_dev != NULL) + { + if( !getLocal(current_dev->name, _trace) ) + { + std::cerr << "getifaddrs failed while establishing local IP." << std::endl; + continue; + } + + char errbuf[PCAP_ERRBUF_SIZE]; + dp_handle * newhandle = dp_open_live(current_dev->name, BUFSIZ, _promisc, 100, errbuf); + if (newhandle != NULL) + { + dp_addcb (newhandle, dp_packet_ip, process_ip); + dp_addcb (newhandle, dp_packet_ip6, process_ip6); + dp_addcb (newhandle, dp_packet_tcp, process_tcp); + dp_addcb (newhandle, dp_packet_udp, process_udp); + + /* The following code solves sf.net bug 1019381, but is only available + * in newer versions (from 0.8 it seems) of libpcap + * + * update: version 0.7.2, which is in debian stable now, should be ok + * also. + */ + if (dp_setnonblock (newhandle, 1, errbuf) == -1) + { + fprintf(stderr, "Error putting libpcap in nonblocking mode\n"); + } + handles = new handle (newhandle, current_dev->name, handles); + } + else + { + fprintf(stderr, "ERROR: opening handler for device %s: %s\n", + current_dev->name, strerror(errno)); + } + + current_dev = current_dev->next; + } + + signal (SIGALRM, &alarm_cb); + alarm (refreshdelay); + + fprintf(stderr, "Waiting for first packet to arrive (see sourceforge.net bug 1019381)\n"); + struct dpargs * userdata = (dpargs *) malloc (sizeof (struct dpargs)); + + time_t last_event_time = 0; + // Main loop: + // Walks though the 'handles' list, which contains handles opened in non-blocking mode. + // This causes the CPU utilisation to go up to 100%. This is tricky: + while (monitor_thread_run_flag) + { + bool packets_read = false; + + handle * current_handle = handles; + while (current_handle != NULL) + { + userdata->device = current_handle->devicename; + userdata->sa_family = AF_UNSPEC; + int retval = dp_dispatch (current_handle->content, -1, (u_char *)userdata, sizeof (struct dpargs)); + if (retval < 0) + { + std::cerr << "Error dispatching: " << retval << std::endl; + } + else if (retval != 0) + { + packets_read = true; + } + current_handle = current_handle->next; + } + + + if ( packets_read && needrefresh ) + { + needrefresh = false; + last_event_time = dp_get_lasttime(); + handleUpdate(); + } + + // If no packets were read at all this iteration, pause to prevent 100% + // CPU utilisation; + if (!packets_read) + { + usleep(100); + } + } +} + +void NethogsMonitor::handleUpdate() +{ + refreshconninode(); + refreshcount++; + + ProcList * curproc = processes; + ProcList * previousproc = NULL; + int nproc = processes->size(); + + while (curproc != NULL) + { + // walk though its connections, summing up their data, and + // throwing away connections that haven't received a package + // in the last PROCESSTIMEOUT seconds. + assert (curproc != NULL); + assert (curproc->getVal() != NULL); + assert (nproc == processes->size()); + + /* remove timed-out processes (unless it's one of the the unknown process) */ + if ((curproc->getVal()->getLastPacket() + PROCESSTIMEOUT <= curtime.tv_sec) + && (curproc->getVal() != unknowntcp) + && (curproc->getVal() != unknownudp) + && (curproc->getVal() != unknownip)) + { + if (DEBUG) + std::cout << "PROC: Deleting process\n"; + ProcList * todelete = curproc; + Process * p_todelete = curproc->getVal(); + if (previousproc) + { + previousproc->next = curproc->next; + curproc = curproc->next; + } else { + processes = curproc->getNext(); + curproc = processes; + } + delete todelete; + delete p_todelete; + nproc--; + //continue; + } + else + { + NethogsMonitorData::Line& line = monitor_data.apps_info[curproc->getVal()->name]; + if( line.app_name.empty() ) + { + line.app_name = curproc->getVal()->name; + } + if( line.device_name != curproc->getVal()->devicename ) + { + line.device_name = curproc->getVal()->devicename; + } + line.pid = curproc->getVal()->pid; + line.uid = curproc->getVal()->getUid(); + + getkbps (curproc->getVal(), &line.sent_kbs, &line.recv_kbs); + gettotal (curproc->getVal(), &line.recv_bytes, &line.sent_bytes); + + previousproc = curproc; + curproc = curproc->next; + } + } + + monitor_udpate_callback(monitor_data); +} + +void NethogsMonitor::start(NethogsMonitor::Callback const& cb) +{ + bool expected = false; + if( monitor_thread_run_flag.compare_exchange_strong(expected, true) ) + { + monitor_udpate_callback = cb; + monitor_thread_ptr = std::make_shared(&threadProc); + } +} + +void NethogsMonitor::stop() +{ + bool expected = true; + if( monitor_thread_run_flag.compare_exchange_strong(expected, false) ) + { + monitor_thread_ptr->join(); + monitor_udpate_callback = nullptr; + } +} diff --git a/libnethogs.h b/libnethogs.h new file mode 100644 index 0000000..7f16e3a --- /dev/null +++ b/libnethogs.h @@ -0,0 +1,48 @@ +#ifndef NETHOGSMINITOR_H +#define NETHOGSMINITOR_H + +#include +#include + +#define NETHOGS_DSO_VISIBLE __attribute__ ((visibility ("default"))) +#define NETHOGS_DSO_HIDDEN __attribute__ ((visibility ("hidden"))) + +class NETHOGS_DSO_VISIBLE NethogsMonitorData +{ + public: + class Line + { + public: + std::string app_name; + std::string device_name; + int uid; + int pid; + u_int32_t sent_bytes; + u_int32_t recv_bytes; + float sent_kbs; + float recv_kbs; + }; + std::map apps_info; +}; + +class NETHOGS_DSO_VISIBLE NethogsMonitor +{ + NethogsMonitor(); +public: + typedef std::function Callback; + + static void start(Callback const& cb); + static void stop(); + +private: + static void threadProc(); + static void handleUpdate(); + + static bool _trace; + static bool _promisc; +}; + +#undef NETHOGS_DSO_VISIBLE +#undef NETHOGS_DSO_HIDDEN + +#endif // NETHOGSMINITOR_H diff --git a/libnethogs.so b/libnethogs.so new file mode 100755 index 0000000000000000000000000000000000000000..1353d2b6fd10041ed08f6444e70ccb4da803e613 GIT binary patch literal 798400 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%0A3tb613zdF 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 =Af$!K=+Ur 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%0A0iq4BP4j8D1ke>49~NB!NjK zQe(!*Al?^tl>j7;K+Q_`5BfcS|D`?oMkQ|MNK;dfay(hvva ziWIaC5IimklP!b@kXO4bm1DQLT$U3kEoc#uJ zUHHJ+O`r@Rw)#dtuLCXl;xE)8Dc&p|yd5wlvk20rp;Fo;a#n2ww$(Z*9cDP5K}eT*xGUjR zlUTwFToqBbuZS&Kfr5tOZV-5RF_EXCfR31ho=ruKD9KH%0AJn>Y1iY<9z@q)pj%=f zjb7;C;@AdQL7qUIlSle25y~=QcnL&V+YEIC7UXKU!AM0LxH}4$pv*?t$=RUj#JX#E z;PO1Qe=u+k05zxLQ&P(y^QV;OFwkf>>dIeyxd*xQK}_I-OReP6qN3Ei64;VgyrYyz zEeB8!5c%E&wz;>`f zj#j~O)`}ued$i0Wa|AeErH0$(;GwrvO+K>)XM!9$@qrzgp%`;bat zSJdl`L1%~u1e?X@f>tFVj_V_FgaN*}5cOUm4Dby1AvO``y1F7S zGsIo1Av{gok`Tm@W@%n_UVeEVs0{;Mv4<qc zA?OYd8eDCMUd`bNbx>soTDOR|7l&{&ap8<^Kh|m%RNRB}6g-3x*1%>JNuIib*bKf$ zfFT|-fPimUispp|*aFlcS#Xb>t_#P}yE6250i-@8zYTxQA2ED z4r=Lw4l{wQE5uTm2OzGvBXbIZg3T82Tm@=GB6@H^pd&^CykQf&SaT*yNenso7Tgqp zwt|t0I#Q-S5xE<6_Y17UM`3JW9A-zxyeLwIPu21eJh}y5!VKMm?nuNQbZ7;Qf4&1+ z-r>F95_IB?1-P?`I|HJo7Wj}@5Nw|x#XT>|XM{mD6*aOg$=BRd%VNrh*N82d5bd1w z)RL0?lEj=OhLZg3B!>7XGZ0-+oW)R-np~E`5Fcfcn3GtP8=st%3A#Q$JE@=;M1wVf zWMKxtb8kQv=NG*y_$;dA*VMxi(OJyj|$%!w>E&(043s>jr=j@0u$qe&qzTxx1=;L)iymfFSRH$SwS~9u_!si zw!*?p*UUsgH(f#3-#|e(Ex^-RK{u@|vp6#;Gbgj8(l#SAB_%bFAvLKq4Q`i&$^RrV^K%&K|C3*RI;F|_O zT!^B~0yBn!#N_N$NEoIR#6!fvA)S|6!jP7in41a>c!U>HGK&imOOi9-ZV7dP#SS z!$(89qp08-f+8pL~~ zCZ>Q7!0`la$_et$^+_^tbpWFyhQ)fKW7n8>ar zjwFqm8;I^E5@i~!%ZF&zQ<6Loy(`QGDBwmRuHhS;qw6TC1bJp2G+qY1B+Sq-J_K|l zL_FA1P?6*r}JlsUosb7@AI7(s^>)Kr^WhEl^ zXFx}mkWvBuVmC9dIJKw*RG68eA2#9{Y!(kbvJ!bLg7}^>k`r8!d&a?#jxng1!?!CN zMLVRk4qC1W?mZ&O;q@Kz9Gf>nC8+H5&IKRb4Bh)+gOT;2g$AhD$CSjZbD_$y-g1Cp zHl}v?Gz56rE`|o!B?|Bf14tWzSjT~vNclQO#0Pk~#QV7VxrcZ_%6BYv17x8gY+JD@ zbU!e-bZ|Cu1@(d;RV$vMSJ*HMQY^W;LQZGM&nqs8Pfjc@fy|;(DO(_~wgB&oASsc+ zR%StpTO1{$vyrPmD8YdDm3z8Cf)8iI4iQpR@*!#$8^_u_c$fg}4t{}ol+K{}U220`K^kxIPQV6;lBOZJvIw-uURYD^M5s04h zK}pHzQ$HjnHYCeIr-^{N=D3O%$e|w8NLmf;tb>kHI})4BG>ZUcHc7 zhJn%ml|lnj$blATQ7sIRS42=HP$46r#2oMg@&m=qMC74SNCl01P?gxWr=ewhFn9@K zJg6rPT}<_tAB6_M(~4X2V9UYY^I9M=$R5vD+uIu za8e>EKFy%*@gQ%|Rhu|kgU}3wqp1Qajgdx`z;2+5=OK*{0{1Dngv1BAx`SLut@;{c z0*t!p2om7n&LDX43OuO5Lf}EWVCQ&TTlvycLF+}+Aww|Gd<|MTNm}KGvPg@nt*H1Y zb7=m{&4fk@N$C;kC_<#^QG6>wP})kaM4fm94{}NxA?V2@B_0wfQAVH%op|uzR#Ihr zPG(*aI|3W;Ms&{TzYjvYDzM5T5&cwb#GA(Vhcl8f=wr?PlO#b0;J!M}zwIp26{`Qy#9tPVr@~uKpqM{vih7BdkHns2CPTAh$#2B0$5E@ko~<#uwxl z6Fiv@RzgxMYB29RFf@ZW4>45|0J&}ecUs11nqrMLjG=nOVkUT`QBpsmogPB15CUxq z15fTi4>1e^tqp@6_g+$zm|0RxT3ZNoA`N&Dk1D>#>?(jVG9}GKqsJp z2d}WNqXYF1@D1Rq=_nYK=70}&MI7D;9*2dsO&~o|YSnP)JxRCwwMPDt`4^73{Pn+JwyLx!*xEu~&WJ|@PL$YWxHfElKcro^d>bTfBd`pKDNjfO`;hsSZhb3o(`tO>mI#flOiG2xK+T)CRl- zfz%&`6dzOxDPp@)SV9JMBS=87DP$7}m1;ypfPn|4ND6F7XNACUIJ~z)lF{H^38c$P zmGH-Uf+dxL5Zs{ovB9B@caH>0h!qq-=IhA_ivmy;2DXkWc?)GJ50(@RDn_Z*B1S&1()!E42Wp|@s(mvbOybRo%uN@X1SSR47{9#lzk zAm@PF9k@zOP@+H@&m(?t9Pb?(R0>R75lHO;QshIEsFeZHdmykbDWyFS63zgIOofBS z42WBj>kV3y3u#M`R1Kng6<*@wndB=;%*=5G^^8F4x1D^zg%kCH9?OxiB>4!^U~>g6 z3TGgHSsW;DQ7I=Nb*Uf`M4i$BzHp+9=#9CcCIP`U{8U|M42cXx>ly#NHMH+UYI6m7 ztO2P!#F)at*6%=U?t3b#ecsVwK5&FsgM$1 zl$s10-l9$@U-4{MNX4lH+K+i^i;>O|Xw0lg1{)Qp3e1%w`rPin43Zsp>QZz8>gI)nfocLN{N z0Xp;;BZ`oQP@yq{W629t7QVz4GSmW27#M~^mXsnH4LKvyB_!U(GYDKrgEvpbCzXPR zSxGesvOfifrLZ-dB-NC#!SSR_)I)+W?7*^xOGhCoKOZ(rK$Qv&ykiMGJPO(?=?a?9 zA#ksFa0%%0Ht^0i$Tkwt8DsIV<*lBeqacmJgJSWiIjOm+c_p3^A@Qz=Nevh1T~pAr z#UK4Rc>00cHk23RBweU&0ozdrE`w4si=ag^m6{_+-8dZUxxu-SDsgHA z9y`q~$Vp62MV?b7bMy$59^mW9VI?T!Zk-bREeps1Q*wS@NopSKN;y0_u#T?4PO8V9 z9I)3+M)AS%*l%VpN=?elOMw&waDRas77!tlN*U_Z*~oJwW<<}C7{|LpE^Gr$k+>qC zrBA(4c++@a*tz`R)e!hP#Uxin$ZctmlSyiNAlf;gJ_l^48;;$q#8zfTplk}>;(#;l zfF~hy6AKD5^U@h8N<(J2UYH`;xhB{b9240^BTKou#Y$W5!?O&Ovq!yPH ztQ&xA1O<%_6Fo5pUo%Zkk!1+UI7Nwh>8a3>Rq&D%Qj<065_K%iWzZeM zLBR&`;LC%9ONkcMV8vdl|fV8s01b zc>y#SkeZj6l#?2tndTW$TohaaI$Sj`CEnB1FW4g9&@3L_p@5uL;~4@g0I-}hZXO>H z>=Mrq?;D?r*`KA^W@KfIewy~n3y78REir6$4#6o{_rL3c`Hndbnl z`vw;$@UWp|RX=WDfbGClWMNM#@ZpyrZ|GzKi8VNQq!e`ojQIW!(U+%EvJM?|eg|Y9 z9f8cukegTm${wKZGHBozw!{-hyB{|2k85HLQiwrT?1N7~BeK!}PhqBHg6<_@K%63n ze?72{LRw-@aVq#&H#bi=e`t=QN_vCs2gPzN6Ge?{aM@-KDw#6#N)W9P9IGF|OaGvO zSwd18$9MN3Qbh%tr6BUW0wN>Ql{}jf$8_P3bMQV9YK;`Y7ZAgz+wh$z1MZ~Z$QBrr zaHxd?xdTsz1}Ujfx23uU1e=3bDI@noy>sz(FpXgCOHj_hJsA!?#Ru#^)J`aD&I8gc z04pFW0FY+uNZvt;nCOKR&aj2~i(;nQZ|qKlkfE@(Cpr9w^t9UF^3u0V@>Acr16*DWB2FQ~tf zgFNSpW5Ec>5YXAAu+butN*3^9KG@(kq$A^61zMRE>gVm}AMOWnKdC)+XCu(zpe0zx z=@9}1<374y#aE=lPWb3V$(X7I*9nJ$PgbDTw-Vx4<43; zL>G7lJIFiN)72H!#X`(rgZ2?YMx=t!OAF9UHs~%cmx2(`J|lSBF$C0h1WjR)8sV^c z6;SJ$=%yx>7g>YmypVP-!lMnT5s%S9!jax!?IO4tlr(lBtJquvf(_$?oxojG65FRx z1Mm)`n#H?iJN=-;ha?ri_!?NCnK0-W1f839_-&?2w!oa&!QSl*ruuP6MxeFvpg9)kybgG~ zK4grVgx&gvhDfLAz$TR`97e@n8yBUPr4|*ZqK&}7J1*olrNEsRKN8C#*hx=>3M0r# zP%a_y;T|ENdYHuVA7XA=A$&eLxKRaZla&<3Bd?c%HpBCaAnilqD`09&$>=D+o1Ih| zzJiTlP{}yh#gIcyeuyuLVu>&;! z4ZnXJ)c%1R3-%{s^bn~sCblUGYBfR*M9BorAcF2kgJdR>D#y$USN~k}+cm%j8Wj}f zr-LupC`!$ZFUT(fUF_k99O1#muya_vgNup1@C0da0n`TrEwu1SGIWJ3i_XbUP6W-O zL+!%5sv2aaD`Y`@VoD0g`=A4{7!p%bK(}1v<$*l`2@!axqh5hbsguFo!OT3fcu>=^ zB$WZg1p5FzJVBS8fSm&l&iE)p6I53QBvZwmVE3Tq5VGP3R%9ThO5$5}ka&R_VQ5yA zng+V51s(*T`4U4zq!1dImc)6nK`T7J)^ag8Us_oE?Khz&yv$5Px4+7f(kp&(A+3 z$kEfsH7FR&4eF4O{=?rEEh5Gq<`hgE>G=sPTG+*JJ91tAOz|_mg z00M=55PAxf-UFpUa>)2WJw#p61XTJmlnt&u5*qy&%6|f-WhX)GhtY;mK8y~B@?rF3D1Qo+zJNwIPKKD* z1f{2=(FdXYLs0rDlzs-K#il^?!)OyIA4dB@`7nAils^SZ??R)`L-`k=^gA?~V=BZx z7_9{5!)O~QA4YpY`7pW|$}fS^b!hYqC?7`egYseY4JaQ*e}eL1wAM6;`(Sj;bO;|t zw?O$YdJ>cmqaQ)}F!~Ra52Mp&K+J>DB~U($ehKBn==p#@*jAobvwI50wpwV_vK8*H(@?mr=lnagbRk5)8I*QFql2J)7@Y#;!|1J0{x&GhvCB~<<~&zxWy3jU~~?Y52Keu`75CGYbgB&N~(MzFx7|pi|q8~=fK>08_7s`jx)lfc+J_F^$=xb0u zjD7&+!)UeD5c^f#`?PMo>PCE{5_;pmY-&y&TG40j2Lk z>3dN60~%es7Ghr=l%9b`?}zeXwAMO^dKeu9<-_O{C?7^ofbwDVA}Ak5Z-DY)^k*pl z3zSaW0I@F#N|&I~^P&6&Q2I0){S?Z72Bm+X(F-?1%wGhhub|P7pnMo@ya}S-1WMbX z(aBIgjGh4H!{~WXK8!vA<-=&>%@Ffpv@ewJ2c^rQbOn^2hDI-e@?rEQC?7`8*a9&h zMn8n|VYKB|h`be)PC=vlpnMp;2Fi!g=b(HTEwv3|9*n*Q<-_O?P(F<2+YV6=qcxy> z7##%V!|26OK8(Hq<-_PFP(F+n-2pLQ3`(n@(RxrmjJAOCVRSQ;52LR@`7rt$ln*=qu)XKFq&gOL_dr+fbwB<4U`X~7ee`qp!9Jxn)v|4JQytqp?ny<63Sl%r6(MLsE5((pnMp80?LQcpP+mg z?R*rXA4V5I`7pW)%7@V{P(F-459PyXg<}x&V6+pI52M4Nd>Aco9HJgZn?m_!P&xpO z&Vuq`wAl%Wei-cn<-_PqC_f8Icc9S+pnMqp6v}@Fr5R2_%!knyP(F-ygYseYE+`*H zzk~8&w8JTgc`&*W%5Q?wE70geP(F+nJ`K??0;R3c=n5zwM&F0>A3$mOGZ6g>P}&ZS z?uYUxK09w8k7&CcSHFw`T>*=qklp9Fk0k1#62+D8p?;!o=`rF&V%w{^kgW13Y6XnrFTK; z8))=5C?7_PT!7fmfCgaVg0~>@LQuK_jeY~=qiJV=iT6B$=!cCv!N!|l;#;Be+n_Z6 zV~BbID6I;m)u40|8od?D-v*@*pwSnh{7X>!4I2Fq%13uUOuYX!#65(@-zGrSErilA zcf#BUa~I4#Fn7T0Sp?Om@CITZjE;cvVRSx}UjU^KLuo?eb4Q@+?m=nv@h6zLz&nWj zFj@=BhtV!jK8&t`@?rEsD1Q-@K7vL+g!0kHPaZ+V|De%w?;-9PZsR8~e_28O2OCF$ zjhnz|*tiLdhK-xR^aXx^gijEZ-VCL;KDg%XRw#cPls=%?DJUOC zoBoH`2cwgqd>CB=<-_QuQ2sI~eFTku3FW_n(ku*2;Hn8mYeM-jItvcMNm49 z5uzVPH$eF?dKQ!qqqji$F!~ad52GJI`7rtyln~ASXe%fmM*BheFuESfZ-CN$ zP?}JG9j5LYR6UIT0Of-N4T*q>b8tZ1hhAS(yZs=|53#3Q0zwmNKU6@~O+%x%K>0BG z9F&hfe*hDI4wZiar6naH_Dex&dnoMyrPHM#@)=ON35}iu<-_PJP(FEYz<>x`^0C|XhO6xS44$lpg@4qtNIaC?7`GLHRIx0+bJSX!K1e{}zDNb%D)Ar-8CWhc|hqX zG`bbaZ-des(dg4q{uwBJ4~=Hlf|$<&rTNfk87Ln{yFvLddLxt%qwhiaF!~3S52F>e zA@(UjX$Leq70OS8(i_p}{ZKyo{3A^K0#qJGzk>2%^baT>M!V=h+ykRCq5Lc;t)>f+ zhtVETK8#L+@?mrVln?j{R7H}(H43T_rT~NC?Bcn0W)FZ z?j{iRgz5tisJbL5O{l*HQ&$6352L3+`7rt%lt0>EgS6X-o$sc0e+?E7fu@l35Co-j z(C7GJ+W&%u zvja4|2fDvR>;4a|`!BF?jDm(IxY9r(VB)eCkn}DGrQM-4l2Qm$uedU|Br%CWuehWL zLTA8OdHE%&dg*zkdP$|3IVrlCDGXp9Xq6{}UP@(Nab+%qE-8Y@fOdRj=I5bs;)@vc zic)hDK^mZ}f}9ctJ~40o zz4YYd_|%Hz)Pj=u63`hp5HsQvi;5B}A!fkXS;<8VdLY9@6lA!^sxD?nQ=max^G`bL&&&(hLrqKyz z23d3=FrS%04ossH%nb7ALSQ~Kg94aFCP1lxh2i6WWHAt%hk=2CkpVNDB^ekPm>4kA zj~-N90lGFCWCjR3Ld6Tv#KXbnBf<^j4v_jZusCMC_d?CtfM(82uzJk&vx9+w0h_;$ zgViI_GtAycQ1fAHyI~>t8!G-EYOgBDkqitBLX41bP-%de0E=l*_5_8G9aLNksy+j% zJ_9Q53>610rDbH`WoU%vFNkRj44|cBAn_(NanKSLMg~cSOVIQNQxBR-2C4sG3CUj) zQ1h=cg5r^vp&8Ab=TPw$G;z>SG{~G*G;tm#kU5eJ51{r6K+OjYMS$G%0V)o2k0Vq) z!(K>!fu+1SsJH@D+yH7$0a%=uLBR^*er>4uY9>fH&+CVnydNrl8>*fIs-6WZ&cqB+ z9}6weVa2opGsyiS3>%>300&fkAT$1S5?}*y55#r`23Yt!vmcY z&V!oc!wLzXDyTRtd|>Ht2UXo7DVd3ya93l>jmv2z@8Bq1Ga)XNv62CcU;!|>$nh$k811x-2qKU)8XBC<_ESv+-!Wrh@gT@g57DB_p4eEX)=vWfE z`%j>`Kbe60JD}}7nEPSw3B=)^1LhF-z|vtp)IA)~`UU15ka^hZ>n?D-@H0rDwHs%E z#WC9_Aa7$cX9?6^*w`bizJ3Z7hpmCp1UZC(f#E+?95y!zYiXIYL(&6m%$EyfAp-+L z6I2{FHw05Z87dANdxn+6$D!h|v3i&}LL3nDVSBVJq2?QMfYPS~Lk6^-h1FlaQ1#7x zkZ|^cs*i+G zhpk;Qhl=lnio?d-v!UXvxgqAj$LyivZ=m9^K71N9d{}uP>S1$lFn8ua#bI*@u=rg7 z6^G54s6);F1r=X$A7b!CsJJ*U#C+J;`5vhF8mKsIP72gc1xZEmLDa+6Jix;F1WX*d zmLvtFn1O-8j31&NJ=|9FL&A9lS~%~3s)x-5f!g07ql^R~=D_BlVBwGk6_>gU@mCLo zVrYPh!^ZSQK!z|dFkFU;!`4n&K*gWK#IHjPfGxFT7KGRfTYCoUW=je}+`k0P{c2G4 zu(@qWt;E1k4;6oL17dz1)ZQsj@rrv8aRUg&umURn4qA_}LDlbtitDgJ@?A1i{1#Lk zwg%1yD*hTOUdaqm?+O+F0u}E^Ge=Me;$PStGpsyOf{MfDNE4yvbV9|^-9Hy94qMYE z2vxrsDh}H_3KKs86^E_afR#(a!VvfDgStNuYK|OK95zQ|2o;;^+8d{FUDs5op64i+zmpyIH(TUhv*i9zgzt&xP)ckWQ}Eu4__pa?ZT zKn#?gF~=X$pz2|BQ51VlY-&KMTX0Z?(++$}6T*Fwc%Ya(Ig*kP!6 z8nk}|tJm&B#nHfr`I@h7YX1m=6_)?P-C9^A)H#Y>fe| z9-ku%u@|<6;tS1fTgQ4ah zhKgH4^Tjl%_y?%?8tAwjtRCl8ftbGm8jsN8mO%_E-hpPXq6);Fu(d_7dLa@jz6M%P zHAC%fgo?w~;=$D4f{L3%>&*_R`Y%v%*jiv%eEFzC?1ilqsmHRmW) z9Ja<1mai4nAm+fc-Pi?nPXJULwr8mX8V&_eao8RjSb5$96^E_$%Z0}8H>fyl4<4)> z^EZIF2et+sCcYIW4qa;pE5|qtA?jgk@nHG46e^D1A6GVlsE6$hfT@p$ik~)ucyv9~ zUwKe**xE^$doCG4;(Z2M{N918hpiQajn7yZL+pjE>42G22o;CzU4q4L2UHxk<`X7< z2P$sR0trZ1I$^>VS%)_m|&8#pgiB$HbxW!eIt62ex(=W_}4& z9KAg3hKi$)3w?r$!}j*T(u0~g#QckGkZ^|eYdoRi=t)YYy5(W!_I_)_4frWAmO|YTE9bF#lRqI0dXh#IHV0!d<7RIJ$FLG%@Zn) zK7Mr%Dh}JD2tB%l;T=>Qy+5LA39%PFy_G=4(Z?nBL&afxdSLx-Q!9u$f-fLG`T%h* zLkLtHef(iQR2+T0Wdl?keLO+Z8e%^Bc&`>z{I?*)LYRB3q2jPL^|16%0u_g?!H2ag zRzk(m%e|veao8S1Sh~Fh75@YsN7@OEm#}(X6f1{w{=pyBRvwl?)x-99z`}nw zR2;oupyCKIAGRj~*50m$ileu~d!XXz?dQ9WAooZxq(H+NnyeU}LDj?dn84aUs!kAl z(Z@ZUpyKHDeiBq1y&u;E6-Q5R`pyvZ(aYOpsCYcI{T2#M&jnC%*xn*oc{mX&jy{jD z04fgKy8#>b;C6x7TgVH^U!Zj%AS+~CK;eVA?no7?9(`Qp5?H+?!vtvj!qUkdsCs#{ z^7aK(9JUt=R_`mhGB7AHa5KR60K(dJ=~Ym1*co21e(@csIP5GwSpQVZ z4Prj*%qBOGXBik6s&R;)absYB)uB+OVCpqgeFt=aA6Bn*x+ z?y>NIsE4ijhV=(qq2jQ!reNuOqX%~PoWLRe5NZx=jXtb=(DH=X3)|ZS3;!HX?B+K^ z)x*vPf|XZGaH!t_RS!FR=ovWF7#Q@tAojw}s)4zu4Jr;h%fTM1Ufdg^9(E=ItbCXX z6^HF5gqgDnDh@ki11A0-Dh@j<4OXwU`(XF)JRgX?u(MQP<<(iJIBX9)Y?e~VP}=V z%&~xq!_KmRh0kiJIP6RgSo(|&hL{68D+#843sf9-Mh>j}Q4fKrM^A5IP;uBEeOUUL z0TqX>jfaK*ZKycx47xCA`jHETn2(+xr$EKg?L7smF$Z=g9!%T_Dh@jn z4Hga`q2jPJ)L{9JFPwovkwJukVHKo?g_V;I;Slp-X9&W||7xgs7PP#Dh37Y@IBd^7 zY`n-K0%8vAEC*P)w!-E;m7wCVvv5qH>g}Q8 zurqUD;{dCm;;^$AVfKnfLClBk1%suxY^XTw>@nE9&#fp1EURD{7+&HK{|hw-cIFc- zJv2sRPychHA?|^lIRgu~Ur=$_-Y!^u=Nto34?9B@)(&Zbio?$KgT><~s5tBlJyzpj@5%`f^{~C>uzBQCsQ5DI8LzOm#Qg;9_I`w_hn?AW25NqA zB6jt8i4c2XXI^GP)%QZhVP~Pi;&B&L9Ck(?Y(0Z~62u(zawZWf4m%EH=dg-~(W83(ZT!#=1uY|l8X+_;_$@-OCk{<~21urrTf>Mx`~?1i0u z2=lLCD##pYpdeA&sSx$Bvu0uWHwK6LMyPu9^!y$w4m(Q*QkpR^D5OEmhwVj$g^xE> z9Jc2dmM@k=#bIZm!rJF*=@4_^XGlT)-~knfogECbcQ#ZUcIGiG9G<2#Fu?LA)Ce&3 z2dW;nryo{+DrP|Jg`I^8%a1Woao8DwuzC6E8Q8;lB~(4^%wNS&@(1s z=3LLh?#^dW_2}h>OE$!O*qLML;8q=U<@Wu)Wc+_?6Frm;*bj5T@Q5 zDh@l74K}Zumjfyfc^MR->#_Br_Abo9?*4mFbI|)=Lb(uo(c1%dP;uDVB(U&V3KfU# z;fA^YEmR!6{X8WPVm@q-Hq2k^pyKH5Mz?&3`ZdtANMZ4{5h@PbTMcs$ZvjL-?2Kbr zyZu}N_HeibRS!G!0#?rdgNnn>Mu(a2SqL#7z5QGQ6^EVa4pToBDvsWNc~ywrJ={eQ z^U>X-UxZz~Cl2u$P;+2=#bNc-0;o9b3~yL`U4x3Fr+=Mdh z55mf~%TRIHnfI{%7h^d@J^ZXh1_(F_6-RHs$yY$s!_H8G`RiT<_IUY-LtLy9Vh-#q zURZhP3KfT)%?vYNt_pkm(5ebz4(u##SUEopDh@j%5|+Q-S7CRjNj0e45MgM5uDgcq z6UnKDm=8Ov8J2!-LB(Nbio()^a1BH~Y)?GQUR|g->}+FLJmx^fVS8g??UwCOaoCyb zF!c(x5c6H2{RNo$^Pu9eGmt$Y(a7)_DvsXHG_He~gFc=U0~Lpz*$Z>eNvJsbxWqlE zIP9!f*m#0%J;Z$29&uQ>bwkBrcTvFB-OY!J!|t?zwXe=X#bI|Jz}lsp4cOyRp#fqq zdil8nDh@kS7#3eIq2lQA#oP!n2X>|gteva@6^GqX04s-!q2jQ!s9^CT(F8FEcGfSf zonHeLM;{No02N0czY=POm;*c07Uq6$s5p8(lG+Sv7fCW)L>mWgZpI#NQ=#U-&a8&H z^E*@=cJ@9j95PxU?tz_=8U#&m^Pu9evpQk!{MLfqUanS%Ik3A`VEIm`6{Mb4RJyaZa z<`^t|HbBK;XX(M(x1t>ob6{sS!OC0R4v@dVPCy|%q3Y4cMN4t0@4_KIA8HPIzhehf z9DN+4yc6P1*xePd_?-h4husYUi^q*narE)hOHgt2@gLVNi21OymSOAMHg`eGTeNYK z^HBA$vx{N<+=y<7Iq2gjlcD0UGcsZGbO*Yzhw~+<`X|scoL53)A*BamKJ1JTSb4Pt zDh|5~1Ll5)UWj_wnU1jZU;q|}8j3{ufW^5PV0R?I*2}d+#bIY%!^+P!P;uCuGq8R= ze;*{=7C`GMSlV{#gSZF1pFRaD4m+zI7LOmG;;=KBVg2!veuz1+v#VkC&P}K|dO7(S zDh@mQ9hQDXCP2)A-3bFL4|Ad7usc9t;rtdV4mKk3RnY7AlS& zzd}S1S2!qP(xR2;oMe`5-Ed*4FUqxWAFr$Wp}pARa6io@<0fraOKs5pB0X*vzN zy&lsb=ELq3g3aHRL&afdDZ$d)4X8Nm&Ka2aTc|kf3`>}J$aIMLuruvp;*Ha>yJrSe zJ$ip(4^$j|+~zG*9KAgtHv?Le-;}KMSGau)9NG`y#J?qTI^DpVZ3e0T{JM<1WpnFBEgJsl=M#nH?Eb5L>gdgn7#9K9TKoeMD^cE=g4 zeHb?v5?>FX@dX=)nFdu4yVC$x4(x`CqnE34^C0G<*E`Fh;;=g=VBvNhDvmxc!#p2i z4(yJLUC{XLoR7U7G6Sj}eLmtgR2+6@8O&b31t9;5FepIFe^`6TVFAQm^zqe23$UlF zLs0eT^H3k5;;_5VVEHa*A;f(2^79{59DV*vYY}#Py>N)f;SevuAwB_z_?ATwcf!tY zhtq2jQ!vSIs=e3xT)XV!9vIk2;gVddUFs5tCSIav6xtbnLTpEpTd0ZHc!XzBb4 zR6Xpj6qq@ZD^I=2Yo)s6DkfnTMo8QWIa?I zef;OZD(vBN4XPe}yk*{Mh`s3L)nTZ(5%f+q*g9LbH4yc%GlpU5JRB+xyQ>Mde(5Mw z9KD_P3@Q%06AxC-2(HEMe)+W!d(r0&ZJ^@l?TucjIQo1F=Q>FICP3pC){a$O2QeRZ zcNnbSlmHcn-N^}SFI7RsVRvuA-2W16J}*N9^c)h{KE#;y5cAQ~Nd;6KcE<^<+*a5C zQ4hQ02i6Wh1{H_h2?cBS>TZOnhut*?%h!{j;;=g*VeY&Q6^ET24$ChZn;_<(*CXqo z;;=hDH$v-|cTjQI9Xl}d)iy)SL2v(rL&eeOYc@m0(c7yxHiP1emtg|5o`uyrU!dyI z%RQ?t5PQ+*iBh5B=;QV?pyKH5s8>*N*jf6p{A;}xVm|u%sNAjC(`^q_J?zdRSUkRj zilfh$No|9e54$@O)-SVxio?$Cht2QjL&ed{;oDGg*xCEA{j(|CA?Cx*T!zKhVwgB| zoF6tWdI>5HJJTJOPX27i?q7i&5c6Sod{#lzN$3ucdTxd$=zfp}W{5;NR6Y9onY~bP z*xg~U@K@RiF&};WxeqFi-j5L31yK*XBM}x3+o9s<aA?jgw{K5Qt4=Rp6f6clF zq8`0JSg{A>Ux*)($$qGM^z~ympyIGQ)L{O#-3u`vb|)`vTr?jlj=s)h-d^nXZiK3b z-LV5}mkR9zP6HsyV^?_phA?jgwy1~XRJE7vR zyPsg<3I`zSVRz8N(q{xz9Co)ZEPT45;^_743#d4HyRqsZ#C+J@hOm14H&h&UccBq9 z(rgc556|dBAakIKkf<`SI5z|AZbaBP&oihv>~1tz{uMe5GKZT1z1%ZDjNM-E!=U!O zB*y-`aHu)3yK-UegzGrWQ9A;$7kyop6I2{_CnhZXcR|HrXZyp#P2ecR9N3wpu>PP8 zR2+6!GfaIpR2;pZwf89YcJimA*uz2j7{p%KopG>!St(Q;y+1w^DvsXo+jk6-{tM9B z1Gk{+(c7PEjzjE49}j;D6-QqOC4B;-9=(553l&EXpEXc%*d4I2e)?0WIPC6T*t%Aq zlOXr=GHgJrA2Uuu?1kO!3LBrC0ToA|U)T#3NAGtepTZvg<)7+dcWf?R2+5(9IPCZIs-BP3iOUqSh@{`ildLqJ%);-uNRd$ z3o!?Md|vY$_Hb}M2T_mSPcMdw!|pnRt-pN$6-N($*7Fc^V0RkA++Pe8N1w;J4i$&p zJq8PZ`3n$p(Ay7=P;vD9I~^*HUa#$gilfhON?pW052Ak&VlV72C|G_^fQrNJ0EG4L zK10P}ckaUCG4T?_9N3+gF!5ztmyzMIX^e`8y9(I=}tUi^z1~CVH9^4%&jvoGbP;uB@?Xd8i z0~JSKuhoAYVm|t~qEebP-^)B{wB6b&I4(#qiSp1ek#bI|T z+CkeE7jc;L6sjIQJfrSG%!l1I3(H4apyKH36L{}K)WhzchP8WZpyIGQ3Ss8lf{LS; z^Ii|I`#0tR#C+IY;jnR!*-&xVoro~=vmQd!qqqOhL&aftS;E4{{}Dtz`h0ZeBS?EG z0=jP+8k`JyQ1$5f^wlHm?&o+6F(18r_yQG2ua69$K-8m`V`)%v*qz+4eacUu;^^zi zqn<*{LEq={;3;-@eu1io-7x?gAMkz#F$aD8Ass4?9*@_d;^^zZC7(mgL9f5;pyIH* zwPE8AOQGVhGyP%diu(n`9N1m)u>6t&6^Gr)3`-BSP;vBik~^T{=twKI{%) zSoo}c3vv%E_aNw3Q1$5RqQ&1q%t0?#v)^GiryZ&uef*#4J$CgP?;+-+*YBNBao8Pq zu>AEFDvmxM?fC&>4(!f6SUQ{s6-Qsk82=HX9)11)W2iXnjy~9W43AF`^{_jzVCGMQ zileU+-u(%?e=kDS!|q;&jjtAehL{h#(;XIHub|@S^P%2fu=lg#zd+1EUzdIeD!yV3 zBpt%WKi$4U)T6I=x(5|UA8%Lr22qbb{$KJ9yMOmU)uXq6UO~mt*LiY(hnOD(J$L|C z&U8V=VR!1m=2OIeK-9zTE{3&RGJarpPa9M{dVBjER2+TXk=jp)`RLPJM;|x42NmB1ZNI_R#fkrcn1f!PSVG0o z$EzPg#nJb#G5m#?gT5|34l2H210-F++Mi3H;^_NLbpJujnXnF`9u~h-pyJKYiy2_; ziu(T$^{~66VdbqN10#4pEc*Vk%TRIHUD&X7d=^9i$`g&$XCXo4v@)X9hW`dZH-hP`36^Gr?3mZ2(0~LP?ogajypQ})D z*c~~rb2~kmA?BmEyChg3;;=h+VBuWLg590-pz2|FUc>CY4i!fqpO=1L%=Y!;-;^^bgOQGWE^M>pCVt#iv8v z39F}8K*fWg>&apHH zFYHc1*q$jDsJQWFh+mf_85sl_BpEKCt-B5tg_y534HC|<{q>8W;;_4>VeWhcHV0ZLAW`3->T6a*%z>S= zZ6gLTAH7|%0xFKaF5Oogq8@#pg_;CJ9K9YFl!S<*x8LSM#eL>L+yhHjC!yl#`RIit zD4k&5i}Vhv9(D&bEMAmO0iU(c!1-Y&(J~gkTsFDG4129#aV^N)w zSzM4eV|ndy1?MX3;uMSOf_J}7WNzA=a0y#@&l zgOt>?)S~#D{N!wiVnf4{qRRM^d}JYm#FYGk5}1gOp+#e%Si;e$p;}>no^Khk{X|!n3I!~2)5S8&BbRFt2gi612Dd?9uj8f7Hr zrR1cB7NjJWq`H>58d}E32L!o>gha->h59*%c>4Rr$1}u7nHa{$7ndZKWF~_XL}p@6 zW>sQIW_}(xW>QiiF%IGzUC#Vc$}dZ<%g^iq!a2m+&YYn(lYZ>5XOgR zmSp&X(r9L0dT@SeQF3Yk0W(m2h31ulqWt94VptB2@-q*B2$&{kq$X$M4yvdqKMRmj zSO~!M;rBgEm7#HZYKc!`aS0@9@L6MM2=YJ3s?_4*0E>d6^!U8|lvG>+hU!^l-xZ~% z6{QwuKq3%T8M0JLYH~qxVu4;VLng=`qk^LRbcmiPA4_oYm6n;43MzY$xB=eD4DnG> zhGyxhCGnYgY5DPK`9<*snJEF@$+%n^lhIq;OP?Y&KxthiM#ut@lKg}De=Xbpk|7v zTYy_xnQNIV2%w~z;1Ua1GO=ZC)h6eG$sX3|1C5FW%p1~&ZuBd)6iFb81j}MN| zNlhzp4G1nVgqsLXZ1G8n#h|*}k4jb<8pZp@7iFerl;q|Ymq1bmEDgh=m&9NPCrW53 zm6Ms932IXLVGRstLr>43V1sy9PoG=^S65G0Pghshpx_eIlG1{lR8LQrf{=KSfLT14 z4T{v@5<{bS&%Bh>ig>7^h~k0}15k7ayTyBYf_O$C9w@y)6O;=y+XR;wn!$5jd`VGa zW=XLpINjjP(MU-R6xoJG@xh3uqGzyayl0SiaEXy2mWE_}3Bn^m!5}vUyTp5feCX=x z7hGbQng_a&Ha;`WGorXCxCB&6<)y@Xdin)h#Df~3@D^!&Mruw$YLRD1JSadwUNtGH zEJ$^Abu}$Z%qaymfFJ@v!RGM+!QSyM1^&T4p!N^`bdEJjT+QQsL2Xt@F=%KBsv}^{ zAZY0eE+46t{18PcC~J8JTg3Y$8M?Y6MH$frTR{ON`BKYihVj1fAn$`}R*1>S?IDbM zfePiRB|OeOgUyIeTE_9Nu85>n77zkT03in81VF8@Fp2k#PcBLYHP%7F;ps(8viAxC zm&2fZ=>^I?;NlDs;b4P61)xiTe+Y(agNxzm6S-Q&Q+@^)gDU}00csH+3@OyWRuWNy zQfQlRd}>i*aVpq0EFJ`vMR4CB7b(t0G%Nt2?Mb8}7#~;2lwX>c zg3HsvF7crF2m2jVHxpUL!rC~{vfI!wFSXn=uPn8wBsB$+3z6G)t8R1sj6%p9RcUU?0UtnUv&bCuK3jM@kef$nK&Qxx9Q1@&&i5_3@F7bF;(2~9^-h#{y;%s}B(Pz(ww91R_KK6iC> zC8E6mY4`-2L)tx{Dj$^U;C)yVM9QUtC!mo{tynVxb$meeW@cV-YEemiMrK|~d}&^0 zVQFf7L4GmF`-pf2S9tM=9*ar5E3D8!%VUr>oS_M*gN+zqfDI>rf(N;-qo_PbDydM? z9U^&yyCF!K71o4@Rza}tWpFXL0(6CjuqCKO24%%OP*x!+w&Mtj z5#+8Ya!66oO))f$_l*aSqUBeDJ14lR0#NM0%NB5+Nhts|GLw_wqXzzNZo#f0@ga^* zKCYm$$j~G)C8Z=EJ~9vh8nZAoDM|&8YUCys6lCV5gM!fzQf7m?)A6A2Ed~kV$c6Ck z1|_+WN`Yqt>UgE*7UU!*ry}POPhxu%;NB3Z%L8s&;TQn`cQ1|b<~LaD%RD``Bs-}9 zF@yoD7K}i324tWpsWLt%GcP+YF*h~9J2@EA#zZQDK%E#;hgyP5%+vCV$`gxHJcB^} zU4&ynRSHt49(kwD) z75(t~09uC{8iFfP$jBtDDkY^u2u{oK@KIZ5BUkgxJW$FmDhW1-FUf)pURb7N7NvrR zWI=913NW(UFYtCjZh$v5#e)kaq}C;@P{KMk0%>M}N5|2egeMMzi~S5OP{-n35=#EsINY6Z2A1QghG-cAx`t$fX^))J!ReFGwsZ zP6egA(u(-x{QT_H6o&XH^Wu^sqs+V#&|oHLh#xfCZ;VQV$k0GHBD}quiH0tt;h#P`H4iZ;TqcA=gR_KBTAn*<*c!38K%s?|4 z#U(}gm58APXcoaShTsA!f~nOYFpCe4&rYp$4FJ_w@Gc0r!hnxv!5ZMshOW7wk_Frz zwScu%5iQj$XiF8jC+=+IiX59rxeHrTh7Rqaj&p!Z5)$JDDW`!-VC25LX*{w0W7x0| zq<`!ZlAMD&#FSPLpH^THUtEx!11}{(qg`nQpyJ;ZJmLfH?+1HOGs?hyJZSq3R0@MD zb}UgB>>Q7+$To?01r;i0kO3o5{6NNnERo0R0|CS@^{6eT97!U|NXd5M^j3%tE|)Zz(NA(B#w zBAV6k6h_JT1f*s|O=&dg4q&D=cx6?R3|eAPMti2)Eq%H(U2zAK}8f59BmHm0fB~WU0p%LuONewGblw-Ph9we z`bm%mW--Wi_$Uad>_x6CA;U$)Pt$`8Gc*9LDaiphYb}!V^GXsk^NL-Ayt5d}GE>Wa zK~22UyzIRE^1RX%XtGBto6cL1`@vg3A(546|u!zjQ zC=Dp&%o-o!>kOOLkMctu2LdH%XzvY@mi?f!lSuIk>-gXpje!OUVu~MD?7(vkku7|9 zRSs{Tx}vxC@pQdmgG4C7;B4dynpwd*n-6PXAg37$MsJV?5s^)#sIYQj0*#%uq5ccyJsZh33VnC4Q+Dpeb~4!Bef_m6+BUZTVP(V{RB;>Fr1Y9WxPg5M$IKWuT1hEF(|0O;L z!7>bT&ERb4ngz{~Fw2~ckUDdQhM>{8)Z*g!%mTB3i~w&#L(tNt_=4<`jFh4P?+l1b zsL}*PEo2Qr%c4N*#=so|=wJy|>@hS%o(F>sTtg$!*$|YK!HJKI!WK2@xuW(8LH&O6 zdYE_?9zezlEaDOC8xW%fUM`R|7Lai@9D@c(3lGdeBQXJ%gM|G4S88+7RTq6<|d^Ufkvp}qrijpL@#AX zEd-?`|+)>HnxDyA+zSQF4 zRB*?c3Nw6JPZb=$1g)ViWl1~Ya926(!re@|Prlb_XVj~!%R;IB011~@Z4=%z3 z7`6CAt0Q4O4H^dlG>Q7*j~%3bldCIit%sojDAho^JGdH1q!GQhnFVGb zwMYdbxg*BNvubcA z&%H>SGAQaj;3_F$7Qt@7 zlPRe=iIt#on({`m1$1piDtN_0E<mji=R&tO z!Fz(R$`08Yit0A7fyMbnB|)jl;F8-LI`pT!TvtE#rd=;&T(TQ(+D$NlXv&M)i;(4g(Fr8+i@lT}d>s*etQ20MyJ5@J`Nk zaB%nWbaIY}h&R?V!Iz2=p+d|SaaZIPig`R_p^z&XO%98A$mY&qC+Gl-p+UR{=#U!F zrf~2cYX9J3pCkiFiYNxBAFww-MUas(D0sp9(;#shpP2{VeSj3lMEC|YXki{tAOV0= zq&aBsws&x%X9#3DC{dFx;KUD^I>kQOVgxY^squ}`VT3L51(&9vUPXRRv1<-y4Z30@+3vJ0E?QDQ=1@{W_&UFPx46f}9Cdk_tf{Q_B zVYm=mMh36K2iE}wMVWaeX;4k^MtVkirr=aiVrUW%%Ua-c;E6vQgK{bCCoiZ;DUItg=h&6ULb%>Hz1U#Ac+$msh}x59OjagJwbL8OwizY z6VTjJN-F4>sv^*wWeH-g5*oZXP8YzP^H2i7kWc`)x|+k+8ba4xnSn|Ki0zOn2V8rA zQvoR9gJL|mAU-uIA2yfolW73jB~4NYxk9$&Lz}k9%?p$!C%%3zaoe^@8By{J2IcBZ zXevi3vT+>N;cVy$sUm|7!RZrPhJw2l!Ns7K68I<)Xg-E@lfVTM=qM5YU}*mbUZZ=W zc%Rt90i2YOr{IWNzu+HS4B6%n8MFj7EzlcfM)9toaZHfEkcu8qfrDqalo3jC14=NY z6cLD&1}$_UnH1lVDJ}-E8Cjx29&AH#9*#228#WjlTQf>$DPri-t_&1A;w4Suxm)s3-$foZxvmSkXpGN_93Oy`AF} z@9Guo2s%v$N9z<@bw^aH2G#12RD!#5AgPQdsuqJ}PSEN&@OT_FAA%Z(NJHC@4jyXp z2d;F%ojv$@P02a=#i`KJ7tzMR)-VC*VATC`7)>_Zp@33F8iA_F;CMrf9tV2O7yvs^ z1bZ)(q@YFLa|deI;?EM6@t_@n(7GB{^M=3*S}e=wEaC%#!P}mx*jz#xWCYc}NIfyq z{10jeCVB>&gK~ozp4@=ZSHoQqdxHC_NEI}WVp3e5Sl}4|k0#f$ppbY-e20XQl$Sv1 z6gD&pYQn+Wl8EIF;L#yNPtdx%U=xf%AlwBdN$w!3xUtYH-`gx3na+0zB|Uu*V9n(}GKkjpE~>2dqJhy|kkI-1w4=%wkx1j6X-0 zfwy6x_m?9;=h0O`A`zO%k%z^=)g-uaf<+RR8E_XyiI zka(Y9<9H)i@V;vA;9}F{_+rperO*Z#O83_UG|oqrE7lz&%d{YNmpRM?hsS(o73!U1P`u z2B?~V)~%qHatLJb2~zREvL|>n5_HNds3i|N`jq&y&rDIzKBM8NBd9+NTh^aiky!!_ zQbeZ~U&O-8El{Kp9Kr^j_XwS{b47H1;z6}bQAvDSVkT^s0&Y31@floV8Sj`^84o%X zAJY5;$0KM7D9-2x4K$S`X6Cqpj-Lfpr^qv!7@39af(-R6MdW54{2*UY^y8iMKm42`gs+S=V7H8DDPp+Y^%Z-8nT#IP)An84K)b=6gHi3#X1JWo*93i~<CV6(-L zg$>B#RTwQ-aFGr=6%y)Lc-0B=DfUoE40iPgmwHjbC7|Pd!AmD#3r9dhyNLcO$Pi=j zN%QfkIjOm+c_p5pek!6Ah3<@oou>xt+nR$qOu;3og`UZv@;*5u5q{iTGH3!e+0`{E z$U8X6GbBF5ARg4=4e$nyC>56!IpP92V3?8 zX}RMap#zmNWK0y}OEY*%MLgv?_;64xC&nYyagZ!aS`7!gbOdV+hkHdmK8J!zM#3Y^ z7%9gKG$v2zt`#px%5j4&Uci=eOdw+w@eJT%KRvYsa-0yT{oi>Nie1;35L>D!r=0a zm_v3Qu^zGun^lE&`9NbAh)5@*-f|_PFX#;F#UKvT$JN`ML&P&I)yCz0enSB%wp@SOpm`WeSam#1H_C9d^$u!(fwITYz1m104do=nfJ_csH@* z4>{0KHIBv{)NJZad_#`mw1DK2oMKS>-w<^O2XsxLp>a}Tab|LSesM`rYGSTua!9;u zuxWgNcQShF2mzTu>cAGnS2(&~_>uyV&1=wcSs16#kXD9)astGe&?_4u%~x>u3*2yp z_d`L|6MSHXn5qY|VVB$)D^PiYJ}(8WC?UljQsWZtECMYn!d+(Ypx=PZErFWb;N%Kg z^Fv~X7u*g3E#1Mpw}q_b8c3xb&Yfz8o}dX4=na5)b5?@b;UCbVJkWkcXiEgzgEGoYf%YoF4XF6!+yc-o^x!Gw(xTM( z{Gyc9B2dcDP0h_Os)X<%V`YZO!<_KE02}fGl_f}d1$CCc7!+veWgVz$Lti(CKWBl% zlJpT5Pm-7B8{()T;J!xR>4aLU8Np@^KwiWcD1eNuID-^HCbtMroZ&0PT_ICykYbSh zHWlhTDri_2PwUdlFW4-e#HH(?O&sv;sHlYmBJU8<9l@VO5CsXOl?7@Dz-vatXf9|{ z%-N8%oz*D4LTH3T;u7B?Rn%RYiKH!{L0TA%Vj)uEF*HHFXUPI|xmj*zak48zT2U(I z#tTq)2hWa3cnSxpBRnSpT8IF;bub82ZNsnfmNyIuu^f4!A z(3%F=T17mCn33i=9t3{B`x2EZ^H)5Uxe9!~zN^IB!5-8CjlwjGdg?_CD z6`CAK7kHst4H6>f$BlvKL6Mfr zgK|B3cMG!X6&`lbVSH@MXCbErKox*WX{1ITNx9Y)w0{Y*I}EZe6f|~E@Fb7m5<^q) zq6W~7;t;Dzt3pAA1$;vqn)^fIT~QAqK;EQ-(u@c7UGb$tDwb@x7Z8)uwlTuKF9=j7 z5L}}LJ{Ax>;|0o3NN3f9nzJ-(xsjDTaF?&dc9TH$Fl19?Ir7gT#NqXn%wAz=t^RD(zHa3>b%paV5##YsG|54W2@H>`u|<*dRW*#Lyz%H!&|UJ+%mQs#{TF zNoIZ?G2@@`^^nL*7)gtGM9~XNQAD1xg>`ld9unyL;X!#2l;3bqSs9T!s9+c$5DXhk zMcX<=QV`%DQ~>pINp87>g!vg7#K$LBR3s*4mKhqF$Hymwwg<+;FD`LKTLlhU!iKvc z0S{JaHH6>E44{Rsm`!0&tCw0bu_^fG=2ao4Zx!bU>;;NA+IDq1M9RZ5vLO-2D`fCLE1Z%CNe~;4brhTi-#O+ z1?vTY*6P6ePKb()LR-<6Ya-kL>A6GFHK>7tIiL(pW=M;{AOp+bldrHIR)}E+B$t3@ zhaeR>*5nKtL;|Nx?0b)h95jc7Vn{Ga1vDgLp@Hsf2+0(;5`e-oetz(H>B(q1RXoAUT5Z45vXVBD|>=TH%1^;ex!OBh{c}Q$k>g8fBhDDbR7RQa~>7OhE@R7{^0f z0^r-lL9K3sc!mPVO6hpWNs^!xfG^|;`3n+eh=yh{5zR|*VzIKVp@JdK=;x@e!Fv^Xa<6>XyJCtY~qUN{Fp>puOy%4U*tt zOOxdMQrLkL5C=nY2#y3tQhypWfeVTqaJ_;z1n@*BzKX#WWyLPB*KdJ)8^JEH{W+kZ zfEH=sW{)A-ggR{6Gq}XqFy1$@GAT8_G%pdngeg8L6U>75BFnsRZ81hsRBUJYQ0QIoxEjV9 zUkWC?Vf|+^V-cWIMs45>gsMJp(GIu})qBqM%y3*ntL*X_B+dq5)0yU zQ*)D2i{cCNGxJJPi=fHYGCn>fKOQ8He~SpX{{R~IF2)%4hL17hn27+b?80+t9HFz& zpv4O8kSp+jzhOM`EIz2X!&96S(fh`g`ar|1;JzTX*+)ok7*wZ154?c1m*L3(Qsv-l zfFqidM5Zc&JosP*=yWt}tq{->3(#pBp!0XYiw6rp8@S3c zi%LopbI_KSAZmE<5gOo~Tt)e%C7F4t_(BZSv_M{=;1>)#iW)S@@9G~6-bx6X0ECt+ zh|>$foAr>F1^9!sfKDz0=QU_DgH51#f|MhzM+`2>DIxkmG>9wU`2sRLVhEjk0j++< zz30IMvN{m!@CeeL2T(^IZFq#j_%;G9{saxYLCT;7bxwdrl;t*#|zftSB`n71VbF7Y*neWeg1<^BbT$;~@i>p!xvc z{0u&ig7XyE9-3B4u<%6MSc=b8ph6f_BYkUcGRjTn6-ywxt-)j6L#6 zekdJTL`6inz6NDR@NKQ|NqSIyL}1HEW?pJZd|pX@B9?(097&JZ$r9My08NVqs3pNA ziFxR)OmLk5YFENHX2<8|r(~vOrWQdmIPQsk^a~9Wa}tYS3&T(gXy|5}eE2D(!KCh4 zMY>`ObOTmdP%!v9T88*2{72uzTXLWRoM6)nY8=Uf2au409)5~{S{G4DqYZ)~5;5}7 z4S}mXU~NU3rXK9)pps`L!k0v3RZyJa9uPotmNWQ-aimciNRJFp=M$~bVrT-H+Jm=| zv3F<7D4krwS1F;~UQN4QQAV&55IQ`JzP1%FNt|6@kOagi8+aR$*D=W1||&RgM#CsQHfZ?fURqbD0yk- zRU^=;MxYLuUw%qzJiOKecOgI(FUHvb{=vnhpA2Axd`T6KSzwetQ~`L?KWG9QN3#i~ z#(|tk4Nipc#(gemiU8cN22I%$?k<2<=|eZlftb+l0^05sBZK((;!HvtSb|H8OyfZ( zbLN-FCncuD!;0tlnN_;VBSyL)xm<)2ToS|hr(!qH^X@7K~&&IIjlGY&r~1{)F84pzKR!=>ViN+E7%s}LkeBw z-4Yn75i}SN%W9suM+;#qhq2CBLbC{>--fTvh^HTn*PkdIWHXWuZUik*0v#laJZN8B zQiO2>0=O)sS)~D9CIhN8K)$~;i=C2H3tsogPHzXRS3BHWq>FGm5N zl7q1r4RJ^YsqSz#1mzp>W=;6=VWgW<2_KpVFW+&D&Om3=N!)en1)eJ;?W_&Z6d~9n zpx7s^or`GM;9A6hyI>@#fChEQh}blPc}Nb@g?@OZSRpqlVLv1XRzc%jih^-SPNHWr zxG96tIK)>9!QvZ|uwb)6xPuR#0YE`RaD0Kd!wxZ;8qj@o@bz5qqz>v`A#KJYDK3fG z1`a!c8Rt+1;cQQ600X{y4c9mmXig(DuPi@1)f3eAECaWrk&lrAZ}kK%1b{T6V4Wdo z)5{Zd;}yyz5Xdv2;uh(ySpVQ+Nb}GVv7MLTxx?tqaLj0fHX*3{2gKZT9u40YsHUrXdBIwwp zvY=q_LBfy_Bl4g|$T7XJ_1ln^9&DNr(p3Ua6XM*=OztXbGEXU`W)z{HWQwD0L~O?e zDH=f?HqhQV@ZMT?V*vDy&{bX{{T?!-lNLx#rgpcJw#w zpd6x3(T8`MdhBxxsJRCU-(e2K4bwzAbCnkL) z27`Jju&xG<0*2Va65kjjqKrrG&m)$$Qn3OjxLOx9hJv}P8(uskFBtIy_kT68vV~MLvK~lWR|k`DmLB-}U|4M6YTgi;ungk~jFzAeLxTFQ z_?t!Mq#k}}79S7{8TP>)+u#}#$5|TiNCTCFxT`8~M*>_m;|?2=5*5fgg2gUc=>xVO zI$ne}SCN{R0x4HPfVhR&B_ufqwK1Dk5T90H5MNx7oC9B93mRlfD*&w& z2Cozh0N?8x4DHb5=M=jJxCI602gjqGUI2DDj&>yFbv(|FDk<}bZm>(Sa5Se$>Zp=D zEnoy{a3hVTW4)Uao>Y+wR@itB?LyZi-WPmD0CbrH()w)BOdvGXkv0JU+SCEN!UU8N zObBn}3kZovJ*FBoTZ=DaQ$II?n_{5VeDJ1NT5?W)F}8Dxal{6(eJ1qNU15<7&HJ!X z2=E?N_&_arGjQia78Zce{kx2m>t$ zBXl}0d=?}CG(C-cIwkgnd&Eq5Kz8SWvJfmgfz~7hc?Ux-lLu`|A#t+-qEAL{>ju0Q z1yU?PTE+O56BvSzXvbJifU6cm>duiidg_W8rU#9k=R(|vBb!oQC4nc-pamw#q2P=F zw+(z~0QdrwU}vnim4atTq97$4tm1}63}}r6nR|IbQ&VM$IRzy}ux=9d!x^;=;TcTk z)rxppiJpGJI4`+{E#AU8>xy>CEoknV&`dg_^$+TXmw_t10Ps2EsPO}9A!6*!G0I5H zOUX$MEl5c$0req4TTl&+<1tr!K~~n`TJZ(*8m<*zu(|;jkgaKw5R{=>{IBDFZFN zD|2=A503W?iT4RMjyH0p)-9DtS4P3}DLB-?tpxDEE4&X5S|w>@Sdf{ToLZh)4BZ$D zIvFCqgy;i!LFIG2M`~gU*nIFd#~|-q$ZCDa>NarC2K(9hxEc-gExu8<(*y;BruZOR zYCzcxN1cw_h42~-)RrbFm!zZ?VL9p%*I`zaXJCQ_ zC*@Xvmy+VW$pF?8E+O%nUT}_v^@$+k+xYkRCwc}ufsR3T1g*@%vA+n%7z9$hp_j$@ zg2)wqd^Ob?1CYf6!6hcCc_}&Ajt&4_d5C@ycSt;FR4>>Jb5}}m2{E(9;N%G&;X_$$ z4$o0=Z{nMLx^NB%YM@ zFHX2l?j*7(A~-(?nJfo4{=fqoxSD@NELQ~WtjAog2tEMUZ80LaawL5@ zqA}90Af(0(`~(Nk;z>Ns7_`lhxPueXARw|BAUGygO8QMx>L(p|N(AEP|mk8Du2BkUTJ4LXh zhTbWHPnKZYFN9e8gf9iS!uA>Bs~PAL)X>1fbA%E;e-KwiBAqn`8Wsk3!$BwP#+MW& zW|kC#cUa>&9uZ!h6WKtDln8zEES@3|SgWbRdk2`F=AIW_I zl4}ei2AdFrh@j<-W#Ik_bP%xwdmTWME6^v}L9bg4p|%u8Ma0rVKpr-Nh~S>&7cz1UWJs~kU9c1ynv;{4Ld##?KYzLRM63-5dF|? z3V8A*+9isJG6`h5D`?~ne8y5RXx|U00KhV!h&!B7vLnGpBBbSm*!$}pTmp4J{=+{| z4`fTp2`CGOrT}=Lp^hdJ-PHw+rRC(8rxwL0<(KBAfZOfp<2<0PyH4?-@ped%W6vk} z=73Q`iHKf3=$0$QLSzD~RXqKIDOjz7vol0&5EAb4#HUwO#22I%73YKQ(=DltFEhX# z7RI&G3m$Zk#Rg{a!JtI|(32@ZJIskV;t=-*1MpT5bao4NUnr;xf_9l1G@+88(V%;U z(s15c2q_A@v9H|&Z%M^5+y-yNfktjY#|L1XHU@P({#=GW+YdQ1n%E7^Ij*oPd5Xd7 z0bn;NKn|CH95H}QGIp+?%1O{?%eQ>cWs2u=0ks6dTvQsNv13(j#@L~aF z@Dem4hjvi~VhaK^^n;7>IR$ig4XB~)g}=*S2085wv_1(uh>N`K4&09gwcA~T-QqpL zJfw>rP=+o@t9lXLL1=8_@d$xB0bvySq0X@N$~cP+JeCp}k>ELNLS-^24YB-&~9;6Y71SCb%` zbdc3fL7*ZKTYnV1$=}xd|4jFp{H3ndd4}!cQA>j|JlS;5`TLTs3;I(vE&UL0%az{>T7V%!epbio8 zu^Hf~C3Q~05V6n!TKmDqG(bfxwiVo1W(+Vw#L(3XyjBj<8=&2M4pJI}Oprsj!hrVz zW#(m;WG3c7jw6R1ABlbh7bvEQnGpalOLq-|-256`Vq_8@pPX9&Izl`?Eip3(bV74} zQA%o&5vYR)I}9;F{;2-^ciVLyuS zZFacN(}%Tu@=~!)iGs&pT$6&lgOfbLQ=uV-@u18A>4ni{sMH`O725Plbp>4-9}sK` zSyF)QSU}KF5hN+&uIk~K|MT3P@r%)aJUnf^#mUtqE`izxBvh1VfuGK^~2~N!Vq=L5Q>2VO2a4%1_lOhB>Ojr zLS$g{17`>yWG~1Ln0^U}FoOdF0|UrxkQ_*8LL`V}V1UtIFG2V)66!n{m%)R9f#E-r z``dINDq!>qR)|uN9UvCW9vB_Uz`*biNxy*+L_dt)0Mf+3zyNYT$PAeKp~4I)P&t@+ z51{&C^afDmK>Y~P1Je)le;!o76G)PQfnkCb#C{n4Km#HHvYU&60UrJ^{S^!h3?LnB z5M>Mn$sisBoR)%$!zhqHU~CXwjHZ7AR6mRk03|SxLMRqMqwCQ0Kd6J)52G7)LN!1s zn0_dip#@EUf(0ZbVKgU9A(TdUe-~6gL>B`?15`hZHUK3~s9q2SN^c+)uZ#TK-~{YpCBt1K=m&mQvXdf z{Rg1>4?y(`K)eAm8jKadB!YOxz`y`X`!M@2tcLji!fL2SC!vN4qmV}I04fKqyM7mkJtmzAF&6bAC}Ky2Eg>e z_{@xuG6ClQ2B`i5sQw#}>4(vQQ2j7@7@boJD(x8<8ldGrOdO^U z#ur4&yD%{j{bnvie>|E7G%mRAKy@KVHv>b!e2D%TSrEQ50|Uc+Xj%h_z|tkCe1@ex VkT?v#;Di*sm!wf`MCCCs008e>u3G>A literal 0 HcmV?d00001 diff --git a/main.cpp b/main.cpp index 2a417d5..f09fb57 100644 --- a/main.cpp +++ b/main.cpp @@ -30,6 +30,32 @@ static void help(bool iserror) output << " m: switch between total (KB, B, MB) and KB/s mode\n"; } +void quit_cb (int /* i */) +{ + procclean(); + if ((!tracemode) && (!DEBUG)) + exit_ui(); + exit(0); +} + +void forceExit(bool success, const char *msg, ...) +{ + if ((!tracemode)&&(!DEBUG)){ + exit_ui(); + } + + va_list argp; + va_start(argp, msg); + vfprintf(stderr, msg, argp); + va_end(argp); + std::cerr << std::endl; + + if (success) + exit(EXIT_SUCCESS); + else + exit(EXIT_FAILURE); +} + int main (int argc, char** argv) { process_init(); @@ -111,7 +137,11 @@ int main (int argc, char** argv) handle * handles = NULL; device * current_dev = devices; while (current_dev != NULL) { - getLocal(current_dev->name, tracemode); + + if( !getLocal(current_dev->name, tracemode) ) + { + forceExit(false, "getifaddrs failed while establishing local IP."); + } dp_handle * newhandle = dp_open_live(current_dev->name, BUFSIZ, promisc, 100, errbuf); if (newhandle != NULL) diff --git a/nethogs.cpp b/nethogs.cpp index 3f20df9..3c30659 100644 --- a/nethogs.cpp +++ b/nethogs.cpp @@ -227,32 +227,6 @@ int process_ip6 (u_char * userdata, const dp_header * /* header */, const u_char return false; } -void quit_cb (int /* i */) -{ - procclean(); - if ((!tracemode) && (!DEBUG)) - exit_ui(); - exit(0); -} - -void forceExit(bool success, const char *msg, ...) -{ - if ((!tracemode)&&(!DEBUG)){ - exit_ui(); - } - - va_list argp; - va_start(argp, msg); - vfprintf(stderr, msg, argp); - va_end(argp); - std::cerr << std::endl; - - if (success) - exit(EXIT_SUCCESS); - else - exit(EXIT_FAILURE); -} - class handle { public: handle (dp_handle * m_handle, const char * m_devicename = NULL, diff --git a/packet.cpp b/packet.cpp index fc69a9c..7e37aad 100644 --- a/packet.cpp +++ b/packet.cpp @@ -48,11 +48,11 @@ local_addr * local_addrs = NULL; * uses getifaddrs to get addresses of this device, and adds them to the * local_addrs-list. */ -void getLocal (const char *device, bool tracemode) +bool getLocal (const char *device, bool tracemode) { struct ifaddrs *ifaddr, *ifa; if(getifaddrs(&ifaddr) == -1) { - forceExit(false, "getifaddrs failed while establishing local IP."); + return false; } for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { @@ -81,6 +81,7 @@ void getLocal (const char *device, bool tracemode) } } } + return true; } typedef u_int32_t tcp_seq; diff --git a/packet.h b/packet.h index 7b28eec..dc497d7 100644 --- a/packet.h +++ b/packet.h @@ -39,7 +39,7 @@ enum direction { /* To initialise this module, call getLocal with the currently * monitored device (e.g. "eth0:1") */ -void getLocal (const char *device, bool tracemode); +bool getLocal (const char *device, bool tracemode); class Packet { diff --git a/refresh.cpp b/refresh.cpp index 5195983..05136b9 100644 --- a/refresh.cpp +++ b/refresh.cpp @@ -23,10 +23,11 @@ #include #include #include -#include "nethogs.h" +#include "process.h" extern bool needrefresh; extern unsigned refreshdelay; +extern timeval curtime; void alarm_cb (int /*i*/) { @@ -37,3 +38,104 @@ void alarm_cb (int /*i*/) alarm(refreshdelay); } + +float tomb (u_int32_t bytes) +{ + return ((double)bytes) / 1024 / 1024; +} +float tokb (u_int32_t bytes) +{ + return ((double)bytes) / 1024; +} + +float tokbps (u_int32_t bytes) +{ + return (((double)bytes) / PERIOD) / 1024; +} + +/** Get the kb/s values for this process */ +void getkbps (Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + + /* walk though all this process's connections, and sum + * them up */ + ConnList * curconn = curproc->connections; + ConnList * previous = NULL; + while (curconn != NULL) + { + if (curconn->getVal()->getLastPacket() <= curtime.tv_sec - CONNTIMEOUT) + { + /* stalled connection, remove. */ + ConnList * todelete = curconn; + Connection * conn_todelete = curconn->getVal(); + curconn = curconn->getNext(); + if (todelete == curproc->connections) + curproc->connections = curconn; + if (previous != NULL) + previous->setNext(curconn); + delete (todelete); + delete (conn_todelete); + } + else + { + u_int32_t sent = 0, recv = 0; + curconn->getVal()->sumanddel(curtime, &recv, &sent); + sum_sent += sent; + sum_recv += recv; + previous = curconn; + curconn = curconn->getNext(); + } + } + *recvd = tokbps(sum_recv); + *sent = tokbps(sum_sent); +} + +/** get total values for this process */ +void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + ConnList * curconn = curproc->connections; + while (curconn != NULL) + { + Connection * conn = curconn->getVal(); + sum_sent += conn->sumSent; + sum_recv += conn->sumRecv; + curconn = curconn->getNext(); + } + //std::cout << "Sum sent: " << sum_sent << std::endl; + //std::cout << "Sum recv: " << sum_recv << std::endl; + *recvd = sum_recv; + *sent = sum_sent; +} + +void gettotalmb(Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(curproc, &sum_recv, &sum_sent); + *recvd = tomb(sum_recv); + *sent = tomb(sum_sent); +} + +/** get total values for this process */ +void gettotalkb(Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(curproc, &sum_recv, &sum_sent); + *recvd = tokb(sum_recv); + *sent = tokb(sum_sent); +} + +void gettotalb(Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(curproc, &sum_recv, &sum_sent); + //std::cout << "Total sent: " << sum_sent << std::endl; + *sent = sum_sent; + *recvd = sum_recv; +} diff --git a/refresh.h b/refresh.h index 152907f..a1cf6cc 100644 --- a/refresh.h +++ b/refresh.h @@ -19,5 +19,13 @@ * */ - void alarm_cb (int i); + +float tomb (u_int32_t bytes); +float tokb (u_int32_t bytes); +float tokbps (u_int32_t bytes); +void getkbps (Process * curproc, float * recvd, float * sent); +void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent); +void gettotalmb(Process * curproc, float * recvd, float * sent); +void gettotalkb(Process * curproc, float * recvd, float * sent); +void gettotalb(Process * curproc, float * recvd, float * sent); From 730a5c2624dd4696675c6fb4a3ffb2f8557124f5 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 00:09:51 +0800 Subject: [PATCH 03/30] build as lib - work in progress --- MakeLib.mk | 2 +- libnethogs.cpp | 5 +++-- libnethogs.h | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MakeLib.mk b/MakeLib.mk index 6a19b9a..c077fe5 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -23,7 +23,7 @@ else # Release mode options ODIR:=$(ODIR_BASE)/release CFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) - CXXFLAGS?=---std=c++11 Wall -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) + CXXFLAGS?=-Wall --std=c++11 -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) endif OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o diff --git a/libnethogs.cpp b/libnethogs.cpp index cbdba1b..b6125df 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -81,7 +81,6 @@ void NethogsMonitor::threadProc() fprintf(stderr, "Waiting for first packet to arrive (see sourceforge.net bug 1019381)\n"); struct dpargs * userdata = (dpargs *) malloc (sizeof (struct dpargs)); - time_t last_event_time = 0; // Main loop: // Walks though the 'handles' list, which contains handles opened in non-blocking mode. // This causes the CPU utilisation to go up to 100%. This is tricky: @@ -110,7 +109,6 @@ void NethogsMonitor::threadProc() if ( packets_read && needrefresh ) { needrefresh = false; - last_event_time = dp_get_lasttime(); handleUpdate(); } @@ -149,6 +147,9 @@ void NethogsMonitor::handleUpdate() { if (DEBUG) std::cout << "PROC: Deleting process\n"; + + monitor_data.apps_info.erase(curproc->getVal()->name); + ProcList * todelete = curproc; Process * p_todelete = curproc->getVal(); if (previousproc) diff --git a/libnethogs.h b/libnethogs.h index 7f16e3a..cb92f1b 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -22,7 +22,8 @@ class NETHOGS_DSO_VISIBLE NethogsMonitorData float sent_kbs; float recv_kbs; }; - std::map apps_info; + typedef std::map TAppMap; + TAppMap apps_info; }; class NETHOGS_DSO_VISIBLE NethogsMonitor From faa5a99c9c7fcad3926089a0861832c515b646df Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 19:03:24 +0800 Subject: [PATCH 04/30] build in library mode - in progress --- libnethogs.cpp | 82 +++++++++++++++++++++++++++++++++++--------------- libnethogs.h | 44 +++++++++++++++------------ 2 files changed, 83 insertions(+), 43 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index b6125df..9bd13a5 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -7,6 +7,7 @@ #include #include #include +#include ////////////////////////////// extern ProcList * processes; @@ -17,8 +18,11 @@ extern Process * unknownip; static std::shared_ptr monitor_thread_ptr; static std::atomic_bool monitor_thread_run_flag(false); + static NethogsMonitor::Callback monitor_udpate_callback; -static NethogsMonitorData monitor_data; + +typedef std::map NethogsAppUpdateMap; +static NethogsAppUpdateMap monitor_update_data; bool NethogsMonitor::_trace = false; bool NethogsMonitor::_promisc = false; @@ -106,7 +110,7 @@ void NethogsMonitor::threadProc() } - if ( packets_read && needrefresh ) + if (needrefresh) { needrefresh = false; handleUpdate(); @@ -148,7 +152,13 @@ void NethogsMonitor::handleUpdate() if (DEBUG) std::cout << "PROC: Deleting process\n"; - monitor_data.apps_info.erase(curproc->getVal()->name); + if( monitor_udpate_callback ) + { + NethogsAppUpdate &data = monitor_update_data[curproc->getVal()->pid]; + data.action = NethogsAppUpdate::Remove; + monitor_udpate_callback(data); + monitor_update_data.erase(curproc->getVal()->pid); + } ProcList * todelete = curproc; Process * p_todelete = curproc->getVal(); @@ -156,7 +166,8 @@ void NethogsMonitor::handleUpdate() { previousproc->next = curproc->next; curproc = curproc->next; - } else { + } else + { processes = curproc->getNext(); curproc = processes; } @@ -166,37 +177,60 @@ void NethogsMonitor::handleUpdate() //continue; } else - { - NethogsMonitorData::Line& line = monitor_data.apps_info[curproc->getVal()->name]; - if( line.app_name.empty() ) - { - line.app_name = curproc->getVal()->name; - } - if( line.device_name != curproc->getVal()->devicename ) - { - line.device_name = curproc->getVal()->devicename; - } - line.pid = curproc->getVal()->pid; - line.uid = curproc->getVal()->getUid(); - - getkbps (curproc->getVal(), &line.sent_kbs, &line.recv_kbs); - gettotal (curproc->getVal(), &line.recv_bytes, &line.sent_bytes); + { + int const pid = curproc->getVal()->pid; + u_int32_t sent_bytes; + u_int32_t recv_bytes; + float sent_kbs; + float recv_kbs; + getkbps (curproc->getVal(), &sent_kbs, &recv_kbs); + gettotal (curproc->getVal(), &recv_bytes, &sent_bytes); + if( monitor_udpate_callback ) + { + //notify update + NethogsAppUpdate &data = monitor_update_data[pid]; + bool data_change = false; + + #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } + NHM_UPDATE_ONE_FIELD( data.pid, pid ) + NHM_UPDATE_ONE_FIELD( data.uid, curproc->getVal()->getUid() ) + NHM_UPDATE_ONE_FIELD( data.app_name, curproc->getVal()->name ) + NHM_UPDATE_ONE_FIELD( data.device_name, curproc->getVal()->devicename ) + NHM_UPDATE_ONE_FIELD( data.sent_bytes, sent_bytes ) + NHM_UPDATE_ONE_FIELD( data.recv_bytes, recv_bytes ) + NHM_UPDATE_ONE_FIELD( data.sent_kbs, sent_kbs ) + NHM_UPDATE_ONE_FIELD( data.recv_kbs, recv_kbs ) + #undef NHM_UPDATE_ONE_FIELD + + if( data_change ) + { + data.action = NethogsAppUpdate::Set; + monitor_udpate_callback(data); + } + } + + //next previousproc = curproc; curproc = curproc->next; } } - - monitor_udpate_callback(monitor_data); } -void NethogsMonitor::start(NethogsMonitor::Callback const& cb) +void NethogsMonitor::registerUpdateCallback(Callback const& cb) +{ + if( !monitor_thread_run_flag ) + { + monitor_udpate_callback = cb; + } +} + +void NethogsMonitor::start() { bool expected = false; if( monitor_thread_run_flag.compare_exchange_strong(expected, true) ) { - monitor_udpate_callback = cb; - monitor_thread_ptr = std::make_shared(&threadProc); + monitor_thread_ptr = std::make_shared(&NethogsMonitor::threadProc); } } diff --git a/libnethogs.h b/libnethogs.h index cb92f1b..6e6f02d 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -1,38 +1,44 @@ #ifndef NETHOGSMINITOR_H #define NETHOGSMINITOR_H -#include -#include +#include #define NETHOGS_DSO_VISIBLE __attribute__ ((visibility ("default"))) #define NETHOGS_DSO_HIDDEN __attribute__ ((visibility ("hidden"))) -class NETHOGS_DSO_VISIBLE NethogsMonitorData +class NETHOGS_DSO_VISIBLE NethogsAppUpdate { - public: - class Line +public: + enum Action {Set, Remove}; + NethogsAppUpdate() + : action(Set), pid(0), uid(0), sent_kbs(0), recv_kbs(0) { - public: - std::string app_name; - std::string device_name; - int uid; - int pid; - u_int32_t sent_bytes; - u_int32_t recv_bytes; - float sent_kbs; - float recv_kbs; - }; - typedef std::map TAppMap; - TAppMap apps_info; + } + Action action; + int pid; + u_int32_t uid; + std::string app_name; + std::string device_name; + u_int32_t sent_bytes; + u_int32_t recv_bytes; + float sent_kbs; + float recv_kbs; }; class NETHOGS_DSO_VISIBLE NethogsMonitor { NethogsMonitor(); public: - typedef std::function Callback; + typedef void(*Callback)(NethogsAppUpdate const&); - static void start(Callback const& cb); + //register async callback to receive updates + //have to be called before start + static void registerUpdateCallback(Callback const& cb); + + //start the monitor + static void start(); + + //stop the monitor static void stop(); private: From 6e0f1e7bc01e08293341a01ecea78d3f36108b6f Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 19:30:08 +0800 Subject: [PATCH 05/30] build as lib --- MakeApp.mk | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ MakeLib.mk | 8 +++-- Makefile | 83 +++++++++------------------------------------------- 3 files changed, 105 insertions(+), 72 deletions(-) create mode 100644 MakeApp.mk diff --git a/MakeApp.mk b/MakeApp.mk new file mode 100644 index 0000000..cced7aa --- /dev/null +++ b/MakeApp.mk @@ -0,0 +1,86 @@ +VERSION := 0 +SUBVERSION := 8 +MINORVERSION := 2-SNAPSHOT + +#prefix := /usr +prefix := /usr/local + +sbin := $(prefix)/sbin +man8 := $(prefix)/share/man/man8 + +all: nethogs decpcap_test + +runtests: test + ./test + + +# nethogs_testsum + +CFLAGS?=-Wall -Wextra +CXXFLAGS?=-Wall -Wextra + +OBJS=packet.o connection.o process.o refresh.o decpcap.o cui.o inode2prog.o conninode.o devices.o + +NCURSES_LIBS?=-lncurses + +.PHONY: tgz + +tgz: clean + cd .. ; tar czvf nethogs-$(VERSION).$(SUBVERSION).$(MINORVERSION).tar.gz --exclude-vcs nethogs/* + +.PHONY: check uninstall +check: + @echo "Not implemented" + +install: nethogs nethogs.8 + install -d -m 755 $(DESTDIR)$(sbin) + install -m 755 nethogs $(DESTDIR)$(sbin) + install -d -m 755 $(DESTDIR)$(man8) + install -m 644 nethogs.8 $(DESTDIR)$(man8) + @echo + @echo "Installed nethogs to $(DESTDIR)$(sbin)" + @echo + @echo "You might have to add this directory to your PATH and/or refresh your shells' path cache with a command like 'hash -r'." + +uninstall: + rm $(DESTDIR)$(sbin)/nethogs + rm $(DESTDIR)$(man8)/nethogs.8 + +test: test.cpp + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) test.cpp -o test -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" + +nethogs: main.cpp nethogs.cpp $(OBJS) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) main.cpp $(OBJS) -o nethogs -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" +nethogs_testsum: nethogs_testsum.cpp $(OBJS) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) nethogs_testsum.cpp $(OBJS) -o nethogs_testsum -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" + +decpcap_test: decpcap_test.cpp decpcap.o + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) decpcap_test.cpp decpcap.o -o decpcap_test -lpcap -lm + +#-lefence + +refresh.o: refresh.cpp refresh.h nethogs.h + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c refresh.cpp +process.o: process.cpp process.h nethogs.h + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c process.cpp +packet.o: packet.cpp packet.h nethogs.h + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c packet.cpp +connection.o: connection.cpp connection.h nethogs.h + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c connection.cpp +decpcap.o: decpcap.c decpcap.h + $(CC) $(CPPFLAGS) $(CFLAGS) -c decpcap.c +inode2prog.o: inode2prog.cpp inode2prog.h nethogs.h + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c inode2prog.cpp +conninode.o: conninode.cpp nethogs.h conninode.h + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c conninode.cpp +#devices.o: devices.cpp devices.h +# $(CXX) $(CXXFLAGS) -c devices.cpp +cui.o: cui.cpp cui.h nethogs.h + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c cui.cpp -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" + +.PHONY: clean +clean: + rm -f $(OBJS) + rm -f nethogs + rm -f test + rm -f decpcap_test diff --git a/MakeLib.mk b/MakeLib.mk index c077fe5..4b1cd4b 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -11,17 +11,17 @@ all: libnethogs LDFLAGS:= -shared CXXINCLUDES := VISIBILITY=-fvisibility=hidden -ODIR_BASE := objs/lib +ODIR_BASE := obj ifeq ($(DEBUG),1) # Debug mode options $(info Bulding debug version) - ODIR:=$(ODIR_BASE)/debug + ODIR:=$(ODIR_BASE)/lib/debug CFLAGS?=-Wall -Wextra -O0 -g -fPIC $(VISIBILITY) CXXFLAGS?=--std=c++11 --std=c++11 -Wall -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) else # Release mode options - ODIR:=$(ODIR_BASE)/release + ODIR:=$(ODIR_BASE)/lib/release CFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) CXXFLAGS?=-Wall --std=c++11 -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) endif @@ -91,4 +91,6 @@ $(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h clean: rm -f $(OBJS) rm -f libnethogs.so + mkdir -p $(ODIR) + rmdir -p --ignore-fail-on-non-empty $(ODIR) diff --git a/Makefile b/Makefile index cced7aa..867ab68 100644 --- a/Makefile +++ b/Makefile @@ -1,86 +1,31 @@ -VERSION := 0 -SUBVERSION := 8 -MINORVERSION := 2-SNAPSHOT - -#prefix := /usr -prefix := /usr/local - -sbin := $(prefix)/sbin -man8 := $(prefix)/share/man/man8 - all: nethogs decpcap_test + $(MAKE) -f MakeApp.mk $@ + $(MAKE) -f MakeLib.mk $@ runtests: test ./test - -# nethogs_testsum - -CFLAGS?=-Wall -Wextra -CXXFLAGS?=-Wall -Wextra - -OBJS=packet.o connection.o process.o refresh.o decpcap.o cui.o inode2prog.o conninode.o devices.o - -NCURSES_LIBS?=-lncurses - .PHONY: tgz - tgz: clean - cd .. ; tar czvf nethogs-$(VERSION).$(SUBVERSION).$(MINORVERSION).tar.gz --exclude-vcs nethogs/* + $(MAKE) -f MakeApp.mk $@ .PHONY: check uninstall check: - @echo "Not implemented" + $(MAKE) -f MakeApp.mk $@ install: nethogs nethogs.8 - install -d -m 755 $(DESTDIR)$(sbin) - install -m 755 nethogs $(DESTDIR)$(sbin) - install -d -m 755 $(DESTDIR)$(man8) - install -m 644 nethogs.8 $(DESTDIR)$(man8) - @echo - @echo "Installed nethogs to $(DESTDIR)$(sbin)" - @echo - @echo "You might have to add this directory to your PATH and/or refresh your shells' path cache with a command like 'hash -r'." - + $(MAKE) -f MakeApp.mk $@ + uninstall: - rm $(DESTDIR)$(sbin)/nethogs - rm $(DESTDIR)$(man8)/nethogs.8 - -test: test.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) test.cpp -o test -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" - + $(MAKE) -f MakeApp.mk $@ + nethogs: main.cpp nethogs.cpp $(OBJS) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) main.cpp $(OBJS) -o nethogs -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" -nethogs_testsum: nethogs_testsum.cpp $(OBJS) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) nethogs_testsum.cpp $(OBJS) -o nethogs_testsum -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" - + $(MAKE) -f MakeApp.mk $@ + decpcap_test: decpcap_test.cpp decpcap.o - $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) decpcap_test.cpp decpcap.o -o decpcap_test -lpcap -lm - -#-lefence - -refresh.o: refresh.cpp refresh.h nethogs.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c refresh.cpp -process.o: process.cpp process.h nethogs.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c process.cpp -packet.o: packet.cpp packet.h nethogs.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c packet.cpp -connection.o: connection.cpp connection.h nethogs.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c connection.cpp -decpcap.o: decpcap.c decpcap.h - $(CC) $(CPPFLAGS) $(CFLAGS) -c decpcap.c -inode2prog.o: inode2prog.cpp inode2prog.h nethogs.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c inode2prog.cpp -conninode.o: conninode.cpp nethogs.h conninode.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c conninode.cpp -#devices.o: devices.cpp devices.h -# $(CXX) $(CXXFLAGS) -c devices.cpp -cui.o: cui.cpp cui.h nethogs.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c cui.cpp -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" - + $(MAKE) -f MakeApp.mk $@ + .PHONY: clean clean: - rm -f $(OBJS) - rm -f nethogs - rm -f test - rm -f decpcap_test + $(MAKE) -f MakeApp.mk $@ + $(MAKE) -f MakeLib.mk $@ From f032e0aca1109ff946d82ebfbbe8bbe00e569c8a Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 19:47:36 +0800 Subject: [PATCH 06/30] build as lib --- process.cpp | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ process.h | 9 +++++ refresh.cpp | 101 -------------------------------------------------- refresh.h | 9 ----- 4 files changed, 113 insertions(+), 110 deletions(-) diff --git a/process.cpp b/process.cpp index 8f55cdf..00ace70 100644 --- a/process.cpp +++ b/process.cpp @@ -43,6 +43,8 @@ extern local_addr * local_addrs; +extern timeval curtime; + /* * connection-inode table. takes information from /proc/net/tcp. * key contains source ip, source port, destination ip, destination @@ -293,3 +295,105 @@ void procclean () //delete conninode; prg_cache_clear(); } + + +/** Get the kb/s values for this process */ +void getkbps (Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + + /* walk though all this process's connections, and sum + * them up */ + ConnList * curconn = curproc->connections; + ConnList * previous = NULL; + while (curconn != NULL) + { + if (curconn->getVal()->getLastPacket() <= curtime.tv_sec - CONNTIMEOUT) + { + /* stalled connection, remove. */ + ConnList * todelete = curconn; + Connection * conn_todelete = curconn->getVal(); + curconn = curconn->getNext(); + if (todelete == curproc->connections) + curproc->connections = curconn; + if (previous != NULL) + previous->setNext(curconn); + delete (todelete); + delete (conn_todelete); + } + else + { + u_int32_t sent = 0, recv = 0; + curconn->getVal()->sumanddel(curtime, &recv, &sent); + sum_sent += sent; + sum_recv += recv; + previous = curconn; + curconn = curconn->getNext(); + } + } + *recvd = tokbps(sum_recv); + *sent = tokbps(sum_sent); +} + +/** get total values for this process */ +void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + ConnList * curconn = curproc->connections; + while (curconn != NULL) + { + Connection * conn = curconn->getVal(); + sum_sent += conn->sumSent; + sum_recv += conn->sumRecv; + curconn = curconn->getNext(); + } + //std::cout << "Sum sent: " << sum_sent << std::endl; + //std::cout << "Sum recv: " << sum_recv << std::endl; + *recvd = sum_recv; + *sent = sum_sent; +} + +void gettotalmb(Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(curproc, &sum_recv, &sum_sent); + *recvd = tomb(sum_recv); + *sent = tomb(sum_sent); +} + +/** get total values for this process */ +void gettotalkb(Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(curproc, &sum_recv, &sum_sent); + *recvd = tokb(sum_recv); + *sent = tokb(sum_sent); +} + +void gettotalb(Process * curproc, float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(curproc, &sum_recv, &sum_sent); + //std::cout << "Total sent: " << sum_sent << std::endl; + *sent = sum_sent; + *recvd = sum_recv; +} + +float tomb (u_int32_t bytes) +{ + return ((double)bytes) / 1024 / 1024; +} +float tokb (u_int32_t bytes) +{ + return ((double)bytes) / 1024; +} + +float tokbps (u_int32_t bytes) +{ + return (((double)bytes) / PERIOD) / 1024; +} diff --git a/process.h b/process.h index 728649b..abd1440 100644 --- a/process.h +++ b/process.h @@ -143,4 +143,13 @@ void refreshconninode (); void procclean (); +void getkbps (Process * curproc, float * recvd, float * sent); +void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent); +void gettotalmb(Process * curproc, float * recvd, float * sent); +void gettotalkb(Process * curproc, float * recvd, float * sent); +void gettotalb(Process * curproc, float * recvd, float * sent); +float tomb (u_int32_t bytes); +float tokb (u_int32_t bytes); +float tokbps (u_int32_t bytes); + #endif diff --git a/refresh.cpp b/refresh.cpp index 05136b9..b718f8a 100644 --- a/refresh.cpp +++ b/refresh.cpp @@ -38,104 +38,3 @@ void alarm_cb (int /*i*/) alarm(refreshdelay); } - -float tomb (u_int32_t bytes) -{ - return ((double)bytes) / 1024 / 1024; -} -float tokb (u_int32_t bytes) -{ - return ((double)bytes) / 1024; -} - -float tokbps (u_int32_t bytes) -{ - return (((double)bytes) / PERIOD) / 1024; -} - -/** Get the kb/s values for this process */ -void getkbps (Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - - /* walk though all this process's connections, and sum - * them up */ - ConnList * curconn = curproc->connections; - ConnList * previous = NULL; - while (curconn != NULL) - { - if (curconn->getVal()->getLastPacket() <= curtime.tv_sec - CONNTIMEOUT) - { - /* stalled connection, remove. */ - ConnList * todelete = curconn; - Connection * conn_todelete = curconn->getVal(); - curconn = curconn->getNext(); - if (todelete == curproc->connections) - curproc->connections = curconn; - if (previous != NULL) - previous->setNext(curconn); - delete (todelete); - delete (conn_todelete); - } - else - { - u_int32_t sent = 0, recv = 0; - curconn->getVal()->sumanddel(curtime, &recv, &sent); - sum_sent += sent; - sum_recv += recv; - previous = curconn; - curconn = curconn->getNext(); - } - } - *recvd = tokbps(sum_recv); - *sent = tokbps(sum_sent); -} - -/** get total values for this process */ -void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - ConnList * curconn = curproc->connections; - while (curconn != NULL) - { - Connection * conn = curconn->getVal(); - sum_sent += conn->sumSent; - sum_recv += conn->sumRecv; - curconn = curconn->getNext(); - } - //std::cout << "Sum sent: " << sum_sent << std::endl; - //std::cout << "Sum recv: " << sum_recv << std::endl; - *recvd = sum_recv; - *sent = sum_sent; -} - -void gettotalmb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - *recvd = tomb(sum_recv); - *sent = tomb(sum_sent); -} - -/** get total values for this process */ -void gettotalkb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - *recvd = tokb(sum_recv); - *sent = tokb(sum_sent); -} - -void gettotalb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - //std::cout << "Total sent: " << sum_sent << std::endl; - *sent = sum_sent; - *recvd = sum_recv; -} diff --git a/refresh.h b/refresh.h index a1cf6cc..d7c06ae 100644 --- a/refresh.h +++ b/refresh.h @@ -20,12 +20,3 @@ */ void alarm_cb (int i); - -float tomb (u_int32_t bytes); -float tokb (u_int32_t bytes); -float tokbps (u_int32_t bytes); -void getkbps (Process * curproc, float * recvd, float * sent); -void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent); -void gettotalmb(Process * curproc, float * recvd, float * sent); -void gettotalkb(Process * curproc, float * recvd, float * sent); -void gettotalb(Process * curproc, float * recvd, float * sent); From b0083a256a52d74b0f1d64b4a0e4549d0886359c Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 19:56:04 +0800 Subject: [PATCH 07/30] nethogs library build --- libnethogs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libnethogs.h b/libnethogs.h index 6e6f02d..552ebae 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -1,5 +1,5 @@ -#ifndef NETHOGSMINITOR_H -#define NETHOGSMINITOR_H +#ifndef LIBNETHOGS_H_ +#define LIBNETHOGS_H_ #include @@ -52,4 +52,4 @@ private: #undef NETHOGS_DSO_VISIBLE #undef NETHOGS_DSO_HIDDEN -#endif // NETHOGSMINITOR_H +#endif // LIBNETHOGS_H_ From c6ceac7bf8e3276c6a5729de104d33d170256e59 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 20:45:10 +0800 Subject: [PATCH 08/30] Supporting library build --- cui.cpp | 8 +- libnethogs.cpp | 4 +- process.cpp | 205 +++++++++++++++++++++++++------------------------ process.h | 15 ++-- 4 files changed, 115 insertions(+), 117 deletions(-) diff --git a/cui.cpp b/cui.cpp index f5576cb..1e188e6 100644 --- a/cui.cpp +++ b/cui.cpp @@ -412,22 +412,22 @@ void do_refresh() if (viewMode == VIEWMODE_KBPS) { //std::cout << "kbps viemode" << std::endl; - getkbps (curproc->getVal(), &value_recv, &value_sent); + curproc->getVal()->getkbps (&value_recv, &value_sent); } else if (viewMode == VIEWMODE_TOTAL_KB) { //std::cout << "total viemode" << std::endl; - gettotalkb(curproc->getVal(), &value_recv, &value_sent); + curproc->getVal()->gettotalkb(&value_recv, &value_sent); } else if (viewMode == VIEWMODE_TOTAL_MB) { //std::cout << "total viemode" << std::endl; - gettotalmb(curproc->getVal(), &value_recv, &value_sent); + curproc->getVal()->gettotalmb(&value_recv, &value_sent); } else if (viewMode == VIEWMODE_TOTAL_B) { //std::cout << "total viemode" << std::endl; - gettotalb(curproc->getVal(), &value_recv, &value_sent); + curproc->getVal()->gettotalb(&value_recv, &value_sent); } else { diff --git a/libnethogs.cpp b/libnethogs.cpp index 9bd13a5..191261e 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -183,8 +183,8 @@ void NethogsMonitor::handleUpdate() u_int32_t recv_bytes; float sent_kbs; float recv_kbs; - getkbps (curproc->getVal(), &sent_kbs, &recv_kbs); - gettotal (curproc->getVal(), &recv_bytes, &sent_bytes); + curproc->getVal()->getkbps (&sent_kbs, &recv_kbs); + curproc->getVal()->gettotal (&recv_bytes, &sent_bytes); if( monitor_udpate_callback ) { diff --git a/process.cpp b/process.cpp index 00ace70..a5fbbf6 100644 --- a/process.cpp +++ b/process.cpp @@ -75,6 +75,21 @@ ProcList * processes; std::map unknownprocs; +float tomb (u_int32_t bytes) +{ + return ((double)bytes) / 1024 / 1024; +} +float tokb (u_int32_t bytes) +{ + return ((double)bytes) / 1024; +} + +float tokbps (u_int32_t bytes) +{ + return (((double)bytes) / PERIOD) / 1024; +} + + void process_init () { unknowntcp = new Process (0, "", "unknown TCP"); @@ -100,6 +115,94 @@ int Process::getLastPacket() return lastpacket; } +/** Get the kb/s values for this process */ +void Process::getkbps (float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + + /* walk though all this process's connections, and sum + * them up */ + ConnList * curconn = this->connections; + ConnList * previous = NULL; + while (curconn != NULL) + { + if (curconn->getVal()->getLastPacket() <= curtime.tv_sec - CONNTIMEOUT) + { + /* stalled connection, remove. */ + ConnList * todelete = curconn; + Connection * conn_todelete = curconn->getVal(); + curconn = curconn->getNext(); + if (todelete == this->connections) + this->connections = curconn; + if (previous != NULL) + previous->setNext(curconn); + delete (todelete); + delete (conn_todelete); + } + else + { + u_int32_t sent = 0, recv = 0; + curconn->getVal()->sumanddel(curtime, &recv, &sent); + sum_sent += sent; + sum_recv += recv; + previous = curconn; + curconn = curconn->getNext(); + } + } + *recvd = tokbps(sum_recv); + *sent = tokbps(sum_sent); +} + +/** get total values for this process */ +void Process::gettotal( u_int32_t * recvd, u_int32_t * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + ConnList * curconn = this->connections; + while (curconn != NULL) + { + Connection * conn = curconn->getVal(); + sum_sent += conn->sumSent; + sum_recv += conn->sumRecv; + curconn = curconn->getNext(); + } + //std::cout << "Sum sent: " << sum_sent << std::endl; + //std::cout << "Sum recv: " << sum_recv << std::endl; + *recvd = sum_recv; + *sent = sum_sent; +} + +void Process::gettotalmb(float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(&sum_recv, &sum_sent); + *recvd = tomb(sum_recv); + *sent = tomb(sum_sent); +} + +/** get total values for this process */ +void Process::gettotalkb(float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(&sum_recv, &sum_sent); + *recvd = tokb(sum_recv); + *sent = tokb(sum_sent); +} + +void Process::gettotalb(float * recvd, float * sent) +{ + u_int32_t sum_sent = 0, + sum_recv = 0; + gettotal(&sum_recv, &sum_sent); + //std::cout << "Total sent: " << sum_sent << std::endl; + *sent = sum_sent; + *recvd = sum_recv; +} + + Process * findProcess (struct prg_node * node) { ProcList * current = processes; @@ -295,105 +398,3 @@ void procclean () //delete conninode; prg_cache_clear(); } - - -/** Get the kb/s values for this process */ -void getkbps (Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - - /* walk though all this process's connections, and sum - * them up */ - ConnList * curconn = curproc->connections; - ConnList * previous = NULL; - while (curconn != NULL) - { - if (curconn->getVal()->getLastPacket() <= curtime.tv_sec - CONNTIMEOUT) - { - /* stalled connection, remove. */ - ConnList * todelete = curconn; - Connection * conn_todelete = curconn->getVal(); - curconn = curconn->getNext(); - if (todelete == curproc->connections) - curproc->connections = curconn; - if (previous != NULL) - previous->setNext(curconn); - delete (todelete); - delete (conn_todelete); - } - else - { - u_int32_t sent = 0, recv = 0; - curconn->getVal()->sumanddel(curtime, &recv, &sent); - sum_sent += sent; - sum_recv += recv; - previous = curconn; - curconn = curconn->getNext(); - } - } - *recvd = tokbps(sum_recv); - *sent = tokbps(sum_sent); -} - -/** get total values for this process */ -void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - ConnList * curconn = curproc->connections; - while (curconn != NULL) - { - Connection * conn = curconn->getVal(); - sum_sent += conn->sumSent; - sum_recv += conn->sumRecv; - curconn = curconn->getNext(); - } - //std::cout << "Sum sent: " << sum_sent << std::endl; - //std::cout << "Sum recv: " << sum_recv << std::endl; - *recvd = sum_recv; - *sent = sum_sent; -} - -void gettotalmb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - *recvd = tomb(sum_recv); - *sent = tomb(sum_sent); -} - -/** get total values for this process */ -void gettotalkb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - *recvd = tokb(sum_recv); - *sent = tokb(sum_sent); -} - -void gettotalb(Process * curproc, float * recvd, float * sent) -{ - u_int32_t sum_sent = 0, - sum_recv = 0; - gettotal(curproc, &sum_recv, &sum_sent); - //std::cout << "Total sent: " << sum_sent << std::endl; - *sent = sum_sent; - *recvd = sum_recv; -} - -float tomb (u_int32_t bytes) -{ - return ((double)bytes) / 1024 / 1024; -} -float tokb (u_int32_t bytes) -{ - return ((double)bytes) / 1024; -} - -float tokbps (u_int32_t bytes) -{ - return (((double)bytes) / PERIOD) / 1024; -} diff --git a/process.h b/process.h index abd1440..3783928 100644 --- a/process.h +++ b/process.h @@ -95,6 +95,12 @@ public: } int getLastPacket (); + void gettotal( u_int32_t * recvd, u_int32_t * sent); + void getkbps (float * recvd, float * sent); + void gettotalmb(float * recvd, float * sent); + void gettotalkb(float * recvd, float * sent); + void gettotalb (float * recvd, float * sent); + char * name; const char * devicename; int pid; @@ -143,13 +149,4 @@ void refreshconninode (); void procclean (); -void getkbps (Process * curproc, float * recvd, float * sent); -void gettotal(Process * curproc, u_int32_t * recvd, u_int32_t * sent); -void gettotalmb(Process * curproc, float * recvd, float * sent); -void gettotalkb(Process * curproc, float * recvd, float * sent); -void gettotalb(Process * curproc, float * recvd, float * sent); -float tomb (u_int32_t bytes); -float tokb (u_int32_t bytes); -float tokbps (u_int32_t bytes); - #endif From 8638379ffd836727d98c4c4d82bb7059fcc820ba Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 22:44:30 +0800 Subject: [PATCH 09/30] Support build in c++0x on linux and osx --- MakeLib.mk | 4 ++-- libnethogs.cpp | 16 +++++++++++----- libnethogs.h | 1 + 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/MakeLib.mk b/MakeLib.mk index 4b1cd4b..7f9b340 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -18,12 +18,12 @@ ifeq ($(DEBUG),1) $(info Bulding debug version) ODIR:=$(ODIR_BASE)/lib/debug CFLAGS?=-Wall -Wextra -O0 -g -fPIC $(VISIBILITY) - CXXFLAGS?=--std=c++11 --std=c++11 -Wall -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) + CXXFLAGS?=-Wall --std=c++0x -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) else # Release mode options ODIR:=$(ODIR_BASE)/lib/release CFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) - CXXFLAGS?=-Wall --std=c++11 -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) + CXXFLAGS?=-Wall --std=c++0x -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) endif OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o diff --git a/libnethogs.cpp b/libnethogs.cpp index 191261e..3f3ae6c 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -154,10 +154,14 @@ void NethogsMonitor::handleUpdate() if( monitor_udpate_callback ) { - NethogsAppUpdate &data = monitor_update_data[curproc->getVal()->pid]; - data.action = NethogsAppUpdate::Remove; - monitor_udpate_callback(data); - monitor_update_data.erase(curproc->getVal()->pid); + NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->pid); + if( it != monitor_update_data.end() ) + { + NethogsAppUpdate &data = it->second; + data.action = NethogsAppUpdate::Remove; + monitor_udpate_callback(data); + monitor_update_data.erase(it); + } } ProcList * todelete = curproc; @@ -189,7 +193,9 @@ void NethogsMonitor::handleUpdate() if( monitor_udpate_callback ) { //notify update - NethogsAppUpdate &data = monitor_update_data[pid]; + NethogsAppUpdate &data = + monitor_update_data.insert(std::make_pair(pid, NethogsAppUpdate())).first->second; + bool data_change = false; #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } diff --git a/libnethogs.h b/libnethogs.h index 552ebae..1fe03b1 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -1,6 +1,7 @@ #ifndef LIBNETHOGS_H_ #define LIBNETHOGS_H_ +#include #include #define NETHOGS_DSO_VISIBLE __attribute__ ((visibility ("default"))) From 7cd7358c6c99589586ba1e75d9ce204644d4309e Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 22:49:40 +0800 Subject: [PATCH 10/30] Fixing build on OSx --- libnethogs.cpp | 2 +- libnethogs.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index 3f3ae6c..a44d941 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -160,7 +160,7 @@ void NethogsMonitor::handleUpdate() NethogsAppUpdate &data = it->second; data.action = NethogsAppUpdate::Remove; monitor_udpate_callback(data); - monitor_update_data.erase(it); + monitor_update_data.erase(curproc->getVal()->pid); } } diff --git a/libnethogs.h b/libnethogs.h index 1fe03b1..fbf1f4f 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -2,6 +2,7 @@ #define LIBNETHOGS_H_ #include +#include #include #define NETHOGS_DSO_VISIBLE __attribute__ ((visibility ("default"))) From 0c6e2b066db40dd98c4a36808177bb2d227e41d7 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 22:49:40 +0800 Subject: [PATCH 11/30] Fixing build on OSx --- libnethogs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libnethogs.h b/libnethogs.h index 1fe03b1..f9a2740 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -17,11 +17,11 @@ public: } Action action; int pid; - u_int32_t uid; + uint32_t uid; std::string app_name; std::string device_name; - u_int32_t sent_bytes; - u_int32_t recv_bytes; + uint32_t sent_bytes; + uint32_t recv_bytes; float sent_kbs; float recv_kbs; }; From 872c4649fa03c83ef51eecd39dc45967c3c9bc35 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Fri, 4 Mar 2016 23:06:26 +0800 Subject: [PATCH 12/30] Finally fixed --- libnethogs.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index a44d941..17bc599 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -193,8 +193,7 @@ void NethogsMonitor::handleUpdate() if( monitor_udpate_callback ) { //notify update - NethogsAppUpdate &data = - monitor_update_data.insert(std::make_pair(pid, NethogsAppUpdate())).first->second; + NethogsAppUpdate &data = monitor_update_data[pid]; bool data_change = false; From 245e152854828de2454312986b30af847c0e5013 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sat, 5 Mar 2016 00:52:57 +0800 Subject: [PATCH 13/30] improved cpu usage --- libnethogs.cpp | 30 +++++++++++++++++------------- libnethogs.h | 11 +++++------ 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index 17bc599..1e6076f 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -24,8 +24,8 @@ static NethogsMonitor::Callback monitor_udpate_callback; typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; -bool NethogsMonitor::_trace = false; -bool NethogsMonitor::_promisc = false; +static int monitor_refresh_delay = 1; +static time_t monitor_last_refresh_time = 0; void NethogsMonitor::threadProc() { @@ -41,16 +41,18 @@ void NethogsMonitor::threadProc() handle * handles = NULL; device * current_dev = devices; + bool promiscuous = false; + while (current_dev != NULL) { - if( !getLocal(current_dev->name, _trace) ) + if( !getLocal(current_dev->name, false) ) { std::cerr << "getifaddrs failed while establishing local IP." << std::endl; continue; } char errbuf[PCAP_ERRBUF_SIZE]; - dp_handle * newhandle = dp_open_live(current_dev->name, BUFSIZ, _promisc, 100, errbuf); + dp_handle * newhandle = dp_open_live(current_dev->name, BUFSIZ, promiscuous, 100, errbuf); if (newhandle != NULL) { dp_addcb (newhandle, dp_packet_ip, process_ip); @@ -79,9 +81,6 @@ void NethogsMonitor::threadProc() current_dev = current_dev->next; } - signal (SIGALRM, &alarm_cb); - alarm (refreshdelay); - fprintf(stderr, "Waiting for first packet to arrive (see sourceforge.net bug 1019381)\n"); struct dpargs * userdata = (dpargs *) malloc (sizeof (struct dpargs)); @@ -109,18 +108,18 @@ void NethogsMonitor::threadProc() current_handle = current_handle->next; } - - if (needrefresh) + time_t const now = ::time(NULL); + if( monitor_last_refresh_time + monitor_refresh_delay <= now ) { - needrefresh = false; + monitor_last_refresh_time = now; handleUpdate(); } - // If no packets were read at all this iteration, pause to prevent 100% - // CPU utilisation; if (!packets_read) { - usleep(100); + // If no packets were read at all this iteration, pause to prevent 100% + // Pause 10 milliseconds + usleep(10000); } } } @@ -230,6 +229,11 @@ void NethogsMonitor::registerUpdateCallback(Callback const& cb) } } +void NethogsMonitor::setRefreshDelay(int seconds) +{ + monitor_refresh_delay = seconds; +} + void NethogsMonitor::start() { bool expected = false; diff --git a/libnethogs.h b/libnethogs.h index 1e202e4..10eb132 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -36,20 +36,19 @@ public: //register async callback to receive updates //have to be called before start static void registerUpdateCallback(Callback const& cb); - + + static void setRefreshDelay(int seconds); + //start the monitor static void start(); //stop the monitor static void stop(); - + private: static void threadProc(); static void handleUpdate(); - - static bool _trace; - static bool _promisc; -}; + }; #undef NETHOGS_DSO_VISIBLE #undef NETHOGS_DSO_HIDDEN From 59e2acb6361f890921aaf9b63957289610ed71b4 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sat, 5 Mar 2016 04:53:03 +0800 Subject: [PATCH 14/30] few tweaks for library performance improvement --- libnethogs.cpp | 29 ++++++++++++++++++++++------- libnethogs.h | 10 ++++++---- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index 1e6076f..b4e43ef 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -19,12 +20,16 @@ extern Process * unknownip; static std::shared_ptr monitor_thread_ptr; static std::atomic_bool monitor_thread_run_flag(false); +std::mutex monitor_exit_event_mutex; +std::condition_variable monitor_exit_event; + static NethogsMonitor::Callback monitor_udpate_callback; typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; static int monitor_refresh_delay = 1; +static int monitor_pc_dispatch_delay_ms = 50; static time_t monitor_last_refresh_time = 0; void NethogsMonitor::threadProc() @@ -117,9 +122,8 @@ void NethogsMonitor::threadProc() if (!packets_read) { - // If no packets were read at all this iteration, pause to prevent 100% - // Pause 10 milliseconds - usleep(10000); + std::unique_lock lk(monitor_exit_event_mutex); + monitor_exit_event.wait_for(lk, std::chrono::milliseconds(monitor_pc_dispatch_delay_ms)); } } } @@ -186,20 +190,25 @@ void NethogsMonitor::handleUpdate() u_int32_t recv_bytes; float sent_kbs; float recv_kbs; - curproc->getVal()->getkbps (&sent_kbs, &recv_kbs); + curproc->getVal()->getkbps (&recv_kbs, &sent_kbs); curproc->getVal()->gettotal (&recv_bytes, &sent_bytes); if( monitor_udpate_callback ) { //notify update + bool const new_process = (monitor_update_data.find(pid) == monitor_update_data.end()); NethogsAppUpdate &data = monitor_update_data[pid]; bool data_change = false; - + #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } - NHM_UPDATE_ONE_FIELD( data.pid, pid ) + if( new_process ) + { + NHM_UPDATE_ONE_FIELD( data.pid, pid ) + NHM_UPDATE_ONE_FIELD( data.app_name, curproc->getVal()->name ) + } + NHM_UPDATE_ONE_FIELD( data.uid, curproc->getVal()->getUid() ) - NHM_UPDATE_ONE_FIELD( data.app_name, curproc->getVal()->name ) NHM_UPDATE_ONE_FIELD( data.device_name, curproc->getVal()->devicename ) NHM_UPDATE_ONE_FIELD( data.sent_bytes, sent_bytes ) NHM_UPDATE_ONE_FIELD( data.recv_bytes, recv_bytes ) @@ -234,6 +243,11 @@ void NethogsMonitor::setRefreshDelay(int seconds) monitor_refresh_delay = seconds; } +void NethogsMonitor::setPcapDispatchDelay(int milliseconds) +{ + monitor_pc_dispatch_delay_ms = milliseconds; +} + void NethogsMonitor::start() { bool expected = false; @@ -248,6 +262,7 @@ void NethogsMonitor::stop() bool expected = true; if( monitor_thread_run_flag.compare_exchange_strong(expected, false) ) { + monitor_exit_event.notify_one(); monitor_thread_ptr->join(); monitor_udpate_callback = nullptr; } diff --git a/libnethogs.h b/libnethogs.h index 10eb132..cf22643 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -36,15 +36,17 @@ public: //register async callback to receive updates //have to be called before start static void registerUpdateCallback(Callback const& cb); - - static void setRefreshDelay(int seconds); - + //start the monitor static void start(); //stop the monitor static void stop(); - + + //tuning functions + static void setRefreshDelay(int seconds); + static void setPcapDispatchDelay(int milliseconds); + private: static void threadProc(); static void handleUpdate(); From 0690c3e2b59495f2d5dd39ba588811963c385f7b Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sat, 5 Mar 2016 22:57:01 +0800 Subject: [PATCH 15/30] exposing c interface instead of c++, for more compatibility. --- libnethogs.cpp | 169 +++++++++++++++++++++++++++++-------------------- libnethogs.h | 58 +++++++---------- 2 files changed, 122 insertions(+), 105 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index b4e43ef..56049ca 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -1,6 +1,9 @@ -#include "libnethogs.h" -#include "nethogs.cpp" +extern "C" +{ + #include "libnethogs.h" +} +#include "nethogs.cpp" #include #include #include @@ -23,27 +26,30 @@ static std::atomic_bool monitor_thread_run_flag(false); std::mutex monitor_exit_event_mutex; std::condition_variable monitor_exit_event; -static NethogsMonitor::Callback monitor_udpate_callback; +static NethogsMonitorCallback monitor_udpate_callback; -typedef std::map NethogsAppUpdateMap; +typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; static int monitor_refresh_delay = 1; static int monitor_pc_dispatch_delay_ms = 50; static time_t monitor_last_refresh_time = 0; -void NethogsMonitor::threadProc() +static handle * handles = NULL; + +static bool nethogsmonitor_init() { + bool success = true; + process_init(); device * devices = get_default_devices(); if ( devices == NULL ) { std::cerr << "Not devices to monitor" << std::endl; - return; + return false; } - handle * handles = NULL; device * current_dev = devices; bool promiscuous = false; @@ -53,6 +59,7 @@ void NethogsMonitor::threadProc() if( !getLocal(current_dev->name, false) ) { std::cerr << "getifaddrs failed while establishing local IP." << std::endl; + success = false; continue; } @@ -79,6 +86,7 @@ void NethogsMonitor::threadProc() } else { + success = false; fprintf(stderr, "ERROR: opening handler for device %s: %s\n", current_dev->name, strerror(errno)); } @@ -86,49 +94,10 @@ void NethogsMonitor::threadProc() current_dev = current_dev->next; } - fprintf(stderr, "Waiting for first packet to arrive (see sourceforge.net bug 1019381)\n"); - struct dpargs * userdata = (dpargs *) malloc (sizeof (struct dpargs)); - - // Main loop: - // Walks though the 'handles' list, which contains handles opened in non-blocking mode. - // This causes the CPU utilisation to go up to 100%. This is tricky: - while (monitor_thread_run_flag) - { - bool packets_read = false; - - handle * current_handle = handles; - while (current_handle != NULL) - { - userdata->device = current_handle->devicename; - userdata->sa_family = AF_UNSPEC; - int retval = dp_dispatch (current_handle->content, -1, (u_char *)userdata, sizeof (struct dpargs)); - if (retval < 0) - { - std::cerr << "Error dispatching: " << retval << std::endl; - } - else if (retval != 0) - { - packets_read = true; - } - current_handle = current_handle->next; - } - - time_t const now = ::time(NULL); - if( monitor_last_refresh_time + monitor_refresh_delay <= now ) - { - monitor_last_refresh_time = now; - handleUpdate(); - } - - if (!packets_read) - { - std::unique_lock lk(monitor_exit_event_mutex); - monitor_exit_event.wait_for(lk, std::chrono::milliseconds(monitor_pc_dispatch_delay_ms)); - } - } + return success; } -void NethogsMonitor::handleUpdate() +static void nethogsmonitor_handle_update() { refreshconninode(); refreshcount++; @@ -160,9 +129,9 @@ void NethogsMonitor::handleUpdate() NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->pid); if( it != monitor_update_data.end() ) { - NethogsAppUpdate &data = it->second; - data.action = NethogsAppUpdate::Remove; - monitor_udpate_callback(data); + NethogsMonitorUpdate& data = it->second; + data.action = NETHOGS_APP_ACTION_REMOVE; + monitor_udpate_callback(&data); monitor_update_data.erase(curproc->getVal()->pid); } } @@ -185,7 +154,8 @@ void NethogsMonitor::handleUpdate() } else { - int const pid = curproc->getVal()->pid; + const int pid = curproc->getVal()->pid; + const u_int32_t uid = curproc->getVal()->getUid(); u_int32_t sent_bytes; u_int32_t recv_bytes; float sent_kbs; @@ -196,30 +166,34 @@ void NethogsMonitor::handleUpdate() if( monitor_udpate_callback ) { //notify update - bool const new_process = (monitor_update_data.find(pid) == monitor_update_data.end()); - NethogsAppUpdate &data = monitor_update_data[pid]; + bool const new_data = (monitor_update_data.find(pid) == monitor_update_data.end()); + NethogsMonitorUpdate &data = monitor_update_data[pid]; - bool data_change = false; - - #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } - if( new_process ) + bool data_change = false; + if( new_data ) { - NHM_UPDATE_ONE_FIELD( data.pid, pid ) - NHM_UPDATE_ONE_FIELD( data.app_name, curproc->getVal()->name ) + data_change = true; + memset(&data, 0, sizeof(data)); + data.pid = pid; + data.app_name = curproc->getVal()->name; } - NHM_UPDATE_ONE_FIELD( data.uid, curproc->getVal()->getUid() ) - NHM_UPDATE_ONE_FIELD( data.device_name, curproc->getVal()->devicename ) + data.device_name = curproc->getVal()->devicename; + + #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } + + NHM_UPDATE_ONE_FIELD( data.uid, uid ) NHM_UPDATE_ONE_FIELD( data.sent_bytes, sent_bytes ) NHM_UPDATE_ONE_FIELD( data.recv_bytes, recv_bytes ) NHM_UPDATE_ONE_FIELD( data.sent_kbs, sent_kbs ) NHM_UPDATE_ONE_FIELD( data.recv_kbs, recv_kbs ) + #undef NHM_UPDATE_ONE_FIELD if( data_change ) { - data.action = NethogsAppUpdate::Set; - monitor_udpate_callback(data); + data.action = NETHOGS_APP_ACTION_SET; + monitor_udpate_callback(&data); } } @@ -230,7 +204,56 @@ void NethogsMonitor::handleUpdate() } } -void NethogsMonitor::registerUpdateCallback(Callback const& cb) +static void nethogsmonitor_threadproc() +{ + fprintf(stderr, "Waiting for first packet to arrive (see sourceforge.net bug 1019381)\n"); + struct dpargs * userdata = (dpargs *) malloc (sizeof (struct dpargs)); + + // Main loop + while (monitor_thread_run_flag) + { + bool packets_read = false; + + handle * current_handle = handles; + while (current_handle != NULL) + { + userdata->device = current_handle->devicename; + userdata->sa_family = AF_UNSPEC; + int retval = dp_dispatch (current_handle->content, -1, (u_char *)userdata, sizeof (struct dpargs)); + if (retval < 0) + { + std::cerr << "Error dispatching: " << retval << std::endl; + } + else if (retval != 0) + { + packets_read = true; + } + current_handle = current_handle->next; + } + + time_t const now = ::time(NULL); + if( monitor_last_refresh_time + monitor_refresh_delay <= now ) + { + monitor_last_refresh_time = now; + nethogsmonitor_handle_update(); + } + + if (!packets_read) + { + std::unique_lock lk(monitor_exit_event_mutex); + monitor_exit_event.wait_for(lk, std::chrono::milliseconds(monitor_pc_dispatch_delay_ms)); + } + } + + handle * current_handle = handles; + while (current_handle != NULL) + { + pcap_close(current_handle->content->pcap_handle); + current_handle = current_handle->next; + } +} + +void nethogsmonitor_register_callback(NethogsMonitorCallback cb) { if( !monitor_thread_run_flag ) { @@ -238,26 +261,32 @@ void NethogsMonitor::registerUpdateCallback(Callback const& cb) } } -void NethogsMonitor::setRefreshDelay(int seconds) +void nethogsmonitor_set_refresh_delay(int seconds) { monitor_refresh_delay = seconds; } -void NethogsMonitor::setPcapDispatchDelay(int milliseconds) +void nethogsmonitor_set_pcap_dispatch_delay(int milliseconds) { monitor_pc_dispatch_delay_ms = milliseconds; } -void NethogsMonitor::start() +bool nethogsmonitor_start() { bool expected = false; + bool success = true; if( monitor_thread_run_flag.compare_exchange_strong(expected, true) ) { - monitor_thread_ptr = std::make_shared(&NethogsMonitor::threadProc); + if( !nethogsmonitor_init() ) + { + success = false; + } + monitor_thread_ptr = std::make_shared(&nethogsmonitor_threadproc); } + return success; } -void NethogsMonitor::stop() +void nethogsmonitor_stop() { bool expected = true; if( monitor_thread_run_flag.compare_exchange_strong(expected, false) ) diff --git a/libnethogs.h b/libnethogs.h index cf22643..dbd35f0 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -2,55 +2,43 @@ #define LIBNETHOGS_H_ #include -#include -#include +#include #define NETHOGS_DSO_VISIBLE __attribute__ ((visibility ("default"))) #define NETHOGS_DSO_HIDDEN __attribute__ ((visibility ("hidden"))) -class NETHOGS_DSO_VISIBLE NethogsAppUpdate +#define NETHOGS_APP_ACTION_SET 1 +#define NETHOGS_APP_ACTION_REMOVE 2 + +typedef struct NethogsMonitorUpdate { -public: - enum Action {Set, Remove}; - NethogsAppUpdate() - : action(Set), pid(0), uid(0), sent_kbs(0), recv_kbs(0) - { - } - Action action; + int action; int pid; uint32_t uid; - std::string app_name; - std::string device_name; + const char* app_name; + const char* device_name; uint32_t sent_bytes; uint32_t recv_bytes; float sent_kbs; float recv_kbs; -}; +} NethogsMonitorUpdate; -class NETHOGS_DSO_VISIBLE NethogsMonitor -{ - NethogsMonitor(); -public: - typedef void(*Callback)(NethogsAppUpdate const&); +typedef void(*NethogsMonitorCallback)(NethogsMonitorUpdate const*); - //register async callback to receive updates - //have to be called before start - static void registerUpdateCallback(Callback const& cb); - - //start the monitor - static void start(); +//register async callback to receive updates +//have to be called before start +NETHOGS_DSO_VISIBLE void nethogsmonitor_register_callback(NethogsMonitorCallback); - //stop the monitor - static void stop(); - - //tuning functions - static void setRefreshDelay(int seconds); - static void setPcapDispatchDelay(int milliseconds); - -private: - static void threadProc(); - static void handleUpdate(); - }; +//start the monitor +NETHOGS_DSO_VISIBLE bool nethogsmonitor_start(); + +//stop the monitor +NETHOGS_DSO_VISIBLE void nethogsmonitor_stop(); + +//tuning functions +NETHOGS_DSO_VISIBLE void nethogsmonitor_set_refresh_delay(int seconds); +NETHOGS_DSO_VISIBLE void nethogsmonitor_set_pcap_dispatch_delay(int milliseconds); + #undef NETHOGS_DSO_VISIBLE #undef NETHOGS_DSO_HIDDEN From dd99cf85503901a5cc1de9f898892d0fd56cc330 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 6 Mar 2016 20:59:24 +0800 Subject: [PATCH 16/30] small bug fix --- libnethogs.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libnethogs.cpp b/libnethogs.cpp index 56049ca..05f3802 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -228,6 +228,10 @@ static void nethogsmonitor_threadproc() { packets_read = true; } + else + { + gettimeofday(&curtime, NULL); + } current_handle = current_handle->next; } From 4ea5c77793db8c8b3928924360db3d663ece068b Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 6 Mar 2016 21:19:05 +0800 Subject: [PATCH 17/30] removing unecessary functions --- libnethogs.cpp | 10 ---------- libnethogs.h | 5 ----- 2 files changed, 15 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index 05f3802..6facebd 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -265,16 +265,6 @@ void nethogsmonitor_register_callback(NethogsMonitorCallback cb) } } -void nethogsmonitor_set_refresh_delay(int seconds) -{ - monitor_refresh_delay = seconds; -} - -void nethogsmonitor_set_pcap_dispatch_delay(int milliseconds) -{ - monitor_pc_dispatch_delay_ms = milliseconds; -} - bool nethogsmonitor_start() { bool expected = false; diff --git a/libnethogs.h b/libnethogs.h index dbd35f0..64e9384 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -35,11 +35,6 @@ NETHOGS_DSO_VISIBLE bool nethogsmonitor_start(); //stop the monitor NETHOGS_DSO_VISIBLE void nethogsmonitor_stop(); -//tuning functions -NETHOGS_DSO_VISIBLE void nethogsmonitor_set_refresh_delay(int seconds); -NETHOGS_DSO_VISIBLE void nethogsmonitor_set_pcap_dispatch_delay(int milliseconds); - - #undef NETHOGS_DSO_VISIBLE #undef NETHOGS_DSO_HIDDEN From 9e9b77f144ef033935ef3a21e1a525f8327614f1 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Tue, 8 Mar 2016 18:58:48 +0800 Subject: [PATCH 18/30] using select() with libpcap and better makefiles --- MakeApp.mk | 7 --- MakeLib.mk | 16 ++----- Makefile | 10 +++- libnethogs.cpp | 123 ++++++++++++++++++++++++++++++++++++++++--------- libnethogs.h | 8 +++- 5 files changed, 120 insertions(+), 44 deletions(-) diff --git a/MakeApp.mk b/MakeApp.mk index cced7aa..3f292d8 100644 --- a/MakeApp.mk +++ b/MakeApp.mk @@ -1,7 +1,3 @@ -VERSION := 0 -SUBVERSION := 8 -MINORVERSION := 2-SNAPSHOT - #prefix := /usr prefix := /usr/local @@ -25,9 +21,6 @@ NCURSES_LIBS?=-lncurses .PHONY: tgz -tgz: clean - cd .. ; tar czvf nethogs-$(VERSION).$(SUBVERSION).$(MINORVERSION).tar.gz --exclude-vcs nethogs/* - .PHONY: check uninstall check: @echo "Not implemented" diff --git a/MakeLib.mk b/MakeLib.mk index 7f9b340..ba83870 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -1,10 +1,5 @@ -VERSION := 0 -SUBVERSION := 8 -MINORVERSION := 2-SNAPSHOT - -#prefix := /usr prefix := /usr/local -sbin := $(prefix)/lib +libdir := $(prefix)/lib all: libnethogs @@ -36,15 +31,14 @@ OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES)) .PHONY: uninstall install: libnethogs - install -d -m 755 $(DESTDIR)$(sbin) - install -m 755 libnethogs $(DESTDIR)$(sbin) + install -d -m 755 $(DESTDIR)$(libdir) + install -m 755 libnethogs $(DESTDIR)$(libdir) @echo - @echo "Installed libnethogs to $(DESTDIR)$(sbin)" + @echo "Installed libnethogs to $(DESTDIR)$(libdir)" @echo - @echo "You might have to add this directory to your PATH and/or refresh your shells' path cache with a command like 'hash -r'." uninstall: - rm $(DESTDIR)$(sbin)/libnethogs + rm $(DESTDIR)$(libdir)/libnethogs libnethogs: $(OBJS) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o libnethogs.so -lpcap diff --git a/Makefile b/Makefile index 867ab68..feedbf0 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,7 @@ +export VERSION := 0 +export SUBVERSION := 8 +export MINORVERSION := 2-SNAPSHOT + all: nethogs decpcap_test $(MAKE) -f MakeApp.mk $@ $(MAKE) -f MakeLib.mk $@ @@ -7,7 +11,7 @@ runtests: test .PHONY: tgz tgz: clean - $(MAKE) -f MakeApp.mk $@ + cd .. ; tar czvf nethogs-$(VERSION).$(SUBVERSION).$(MINORVERSION).tar.gz --exclude-vcs nethogs/* .PHONY: check uninstall check: @@ -15,9 +19,11 @@ check: install: nethogs nethogs.8 $(MAKE) -f MakeApp.mk $@ - + $(MAKE) -f MakeLib.mk $@ + uninstall: $(MAKE) -f MakeApp.mk $@ + $(MAKE) -f MakeLib.mk $@ nethogs: main.cpp nethogs.cpp $(OBJS) $(MAKE) -f MakeApp.mk $@ diff --git a/libnethogs.cpp b/libnethogs.cpp index 6facebd..77b2c20 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -12,6 +12,8 @@ extern "C" #include #include #include +#include +#include ////////////////////////////// extern ProcList * processes; @@ -23,43 +25,89 @@ extern Process * unknownip; static std::shared_ptr monitor_thread_ptr; static std::atomic_bool monitor_thread_run_flag(false); -std::mutex monitor_exit_event_mutex; -std::condition_variable monitor_exit_event; +//The self_pipe is used to interrupt the select() in the main loop +static std::pair self_pipe = std::make_pair(-1, -1); static NethogsMonitorCallback monitor_udpate_callback; - typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; static int monitor_refresh_delay = 1; -static int monitor_pc_dispatch_delay_ms = 50; static time_t monitor_last_refresh_time = 0; +//selectable file descriptors for the main loop +static fd_set pc_loop_fd_set; +static std::vector pc_loop_fd_list; +static bool pc_loop_use_select = true; + static handle * handles = NULL; -static bool nethogsmonitor_init() +static std::pair create_self_pipe() { - bool success = true; + int pfd[2]; + if (pipe(pfd) == -1) + return std::make_pair(-1, -1); + if (fcntl(pfd[0], F_SETFL, fcntl(pfd[0], F_GETFL) | O_NONBLOCK) == -1) + return std::make_pair(-1, -1); + + if (fcntl(pfd[1], F_SETFL, fcntl(pfd[1], F_GETFL) | O_NONBLOCK) == -1) + return std::make_pair(-1, -1); + + return std::make_pair(pfd[0], pfd[1]); +} + +static void wait_for_next_trigger() +{ + if( pc_loop_use_select ) + { + FD_ZERO(&pc_loop_fd_set); + int nfds = 0; + for(std::vector::const_iterator it=pc_loop_fd_list.begin(); + it != pc_loop_fd_list.end(); ++it) + { + int const fd = *it; + nfds = std::max(nfds, *it + 1); + FD_SET(fd, &pc_loop_fd_set); + } + timeval timeout = {monitor_refresh_delay, 0}; + std::cout << "--------------------------1\n"; + select(nfds, &pc_loop_fd_set, 0, 0, &timeout); + std::cout << "--------------------------0\n\n"; + } + else + { + // If select() not possible, pause to prevent 100% + usleep(1000); + } +} + +static int nethogsmonitor_init() +{ process_init(); device * devices = get_default_devices(); if ( devices == NULL ) { std::cerr << "Not devices to monitor" << std::endl; - return false; + return NETHOGS_STATUS_NO_DEVICE; } device * current_dev = devices; bool promiscuous = false; + int nb_devices = 0; + int nb_failed_devices = 0; + while (current_dev != NULL) { + ++nb_devices; + if( !getLocal(current_dev->name, false) ) { std::cerr << "getifaddrs failed while establishing local IP." << std::endl; - success = false; + ++nb_failed_devices; continue; } @@ -83,18 +131,53 @@ static bool nethogsmonitor_init() fprintf(stderr, "Error putting libpcap in nonblocking mode\n"); } handles = new handle (newhandle, current_dev->name, handles); + + if( pc_loop_use_select ) + { + //some devices may not support pcap_get_selectable_fd + int const fd = pcap_get_selectable_fd(newhandle->pcap_handle); + if( fd != -1 ) + { + pc_loop_fd_list.push_back(fd); + } + else + { + pc_loop_use_select = false; + pc_loop_fd_list.clear(); + fprintf(stderr, "failed to get selectable_fd for %s\n", current_dev->name); + } + } } else { - success = false; - fprintf(stderr, "ERROR: opening handler for device %s: %s\n", - current_dev->name, strerror(errno)); + fprintf(stderr, "ERROR: opening handler for device %s: %s\n", current_dev->name, strerror(errno)); + ++nb_failed_devices; } current_dev = current_dev->next; } - return success; + if(nb_devices == nb_failed_devices) + { + return NETHOGS_STATUS_FAILURE; + } + + //use the Self-Pipe trick to interrupt the select() in the main loop + if( pc_loop_use_select ) + { + self_pipe = create_self_pipe(); + if( self_pipe.first == -1 || self_pipe.second == -1 ) + { + std::cerr << "Error creating pipe file descriptors\n"; + pc_loop_use_select = false; + } + else + { + pc_loop_fd_list.push_back(self_pipe.first); + } + } + + return NETHOGS_STATUS_OK; } static void nethogsmonitor_handle_update() @@ -244,8 +327,7 @@ static void nethogsmonitor_threadproc() if (!packets_read) { - std::unique_lock lk(monitor_exit_event_mutex); - monitor_exit_event.wait_for(lk, std::chrono::milliseconds(monitor_pc_dispatch_delay_ms)); + wait_for_next_trigger(); } } @@ -265,19 +347,16 @@ void nethogsmonitor_register_callback(NethogsMonitorCallback cb) } } -bool nethogsmonitor_start() +int nethogsmonitor_start() { bool expected = false; - bool success = true; + int ret = NETHOGS_STATUS_OK; if( monitor_thread_run_flag.compare_exchange_strong(expected, true) ) { - if( !nethogsmonitor_init() ) - { - success = false; - } + ret = nethogsmonitor_init(); monitor_thread_ptr = std::make_shared(&nethogsmonitor_threadproc); } - return success; + return ret; } void nethogsmonitor_stop() @@ -285,7 +364,7 @@ void nethogsmonitor_stop() bool expected = true; if( monitor_thread_run_flag.compare_exchange_strong(expected, false) ) { - monitor_exit_event.notify_one(); + write(self_pipe.second, "x", 1); monitor_thread_ptr->join(); monitor_udpate_callback = nullptr; } diff --git a/libnethogs.h b/libnethogs.h index 64e9384..a37cbc7 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -10,6 +10,10 @@ #define NETHOGS_APP_ACTION_SET 1 #define NETHOGS_APP_ACTION_REMOVE 2 +#define NETHOGS_STATUS_OK 0 +#define NETHOGS_STATUS_FAILURE 1 //generic error +#define NETHOGS_STATUS_NO_DEVICE 2 //no device foundr + typedef struct NethogsMonitorUpdate { int action; @@ -29,8 +33,8 @@ typedef void(*NethogsMonitorCallback)(NethogsMonitorUpdate const*); //have to be called before start NETHOGS_DSO_VISIBLE void nethogsmonitor_register_callback(NethogsMonitorCallback); -//start the monitor -NETHOGS_DSO_VISIBLE bool nethogsmonitor_start(); +//start the monitor (return one of the NETHOGS_STATUS above) +NETHOGS_DSO_VISIBLE int nethogsmonitor_start(); //stop the monitor NETHOGS_DSO_VISIBLE void nethogsmonitor_stop(); From b566871d6b61b029cc4244ef526b3155a2b8e83d Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Tue, 8 Mar 2016 19:51:19 +0800 Subject: [PATCH 19/30] fixed lib make install --- MakeLib.mk | 21 ++++++++++++++------- libnethogs.cpp | 2 -- libnethogs.h | 8 ++++++++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/MakeLib.mk b/MakeLib.mk index ba83870..bd94084 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -1,7 +1,8 @@ prefix := /usr/local libdir := $(prefix)/lib +incdir := $(prefix)/include -all: libnethogs +all: libnethogs.so LDFLAGS:= -shared CXXINCLUDES := @@ -30,18 +31,24 @@ OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES)) .PHONY: uninstall -install: libnethogs +install: libnethogs.so install -d -m 755 $(DESTDIR)$(libdir) - install -m 755 libnethogs $(DESTDIR)$(libdir) + install -m 755 libnethogs.so $(DESTDIR)$(libdir) @echo - @echo "Installed libnethogs to $(DESTDIR)$(libdir)" + @echo "Installed libnethogs.so to $(DESTDIR)$(libdir)" + @echo + install -d -m 755 $(DESTDIR)$(incdir) + install -m 755 libnethogs.h $(DESTDIR)$(incdir) + @echo + @echo "Installed libnethogs.h to $(DESTDIR)$(incdir)" @echo uninstall: - rm $(DESTDIR)$(libdir)/libnethogs + rm $(DESTDIR)$(libdir)/libnethogs.so + rm $(DESTDIR)$(incdir)/libnethogs.h -libnethogs: $(OBJS) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o libnethogs.so -lpcap +libnethogs.so: $(OBJS) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ -lpcap #-lefence diff --git a/libnethogs.cpp b/libnethogs.cpp index 77b2c20..adbd5ef 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -71,9 +71,7 @@ static void wait_for_next_trigger() FD_SET(fd, &pc_loop_fd_set); } timeval timeout = {monitor_refresh_delay, 0}; - std::cout << "--------------------------1\n"; select(nfds, &pc_loop_fd_set, 0, 0, &timeout); - std::cout << "--------------------------0\n\n"; } else { diff --git a/libnethogs.h b/libnethogs.h index a37cbc7..674e5a5 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -1,6 +1,10 @@ #ifndef LIBNETHOGS_H_ #define LIBNETHOGS_H_ +#ifdef __cplusplus +extern "C" { +#endif + #include #include @@ -42,4 +46,8 @@ NETHOGS_DSO_VISIBLE void nethogsmonitor_stop(); #undef NETHOGS_DSO_VISIBLE #undef NETHOGS_DSO_HIDDEN +#ifdef __cplusplus +} +#endif + #endif // LIBNETHOGS_H_ From 81218523c8b88b3db2fd8faa6f5354161b4db5c4 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Tue, 8 Mar 2016 21:11:45 +0800 Subject: [PATCH 20/30] added call to ldconfig after lib install to update the cache --- MakeLib.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MakeLib.mk b/MakeLib.mk index bd94084..8a26d6b 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -42,10 +42,12 @@ install: libnethogs.so @echo @echo "Installed libnethogs.h to $(DESTDIR)$(incdir)" @echo + ldconfig uninstall: rm $(DESTDIR)$(libdir)/libnethogs.so rm $(DESTDIR)$(incdir)/libnethogs.h + ldconfig libnethogs.so: $(OBJS) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ -lpcap From 0c6fbfe10cd430bdfb23bc709a4cc88f3b238660 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Thu, 10 Mar 2016 19:21:29 +0800 Subject: [PATCH 21/30] removed multithreading and c++11 and used a pcap_loop-like api --- MakeLib.mk | 4 +- libnethogs.cpp | 182 +++++++++++++++++++++++++------------------------ libnethogs.h | 20 +++--- 3 files changed, 106 insertions(+), 100 deletions(-) diff --git a/MakeLib.mk b/MakeLib.mk index 8a26d6b..1795950 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -14,12 +14,12 @@ ifeq ($(DEBUG),1) $(info Bulding debug version) ODIR:=$(ODIR_BASE)/lib/debug CFLAGS?=-Wall -Wextra -O0 -g -fPIC $(VISIBILITY) - CXXFLAGS?=-Wall --std=c++0x -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) + CXXFLAGS?=-Wall -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) else # Release mode options ODIR:=$(ODIR_BASE)/lib/release CFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) - CXXFLAGS?=-Wall --std=c++0x -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) + CXXFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) endif OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o diff --git a/libnethogs.cpp b/libnethogs.cpp index adbd5ef..97302e9 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -4,16 +4,12 @@ extern "C" } #include "nethogs.cpp" -#include #include -#include -#include -#include #include -#include #include #include #include +#include ////////////////////////////// extern ProcList * processes; @@ -22,12 +18,10 @@ extern Process * unknownudp; extern Process * unknownip; ////////////////////////////// -static std::shared_ptr monitor_thread_ptr; -static std::atomic_bool monitor_thread_run_flag(false); - //The self_pipe is used to interrupt the select() in the main loop static std::pair self_pipe = std::make_pair(-1, -1); +static bool monitor_run_flag = false; static NethogsMonitorCallback monitor_udpate_callback; typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; @@ -57,7 +51,7 @@ static std::pair create_self_pipe() return std::make_pair(pfd[0], pfd[1]); } -static void wait_for_next_trigger() +static bool wait_for_next_trigger() { if( pc_loop_use_select ) { @@ -71,13 +65,20 @@ static void wait_for_next_trigger() FD_SET(fd, &pc_loop_fd_set); } timeval timeout = {monitor_refresh_delay, 0}; - select(nfds, &pc_loop_fd_set, 0, 0, &timeout); + if( select(nfds, &pc_loop_fd_set, 0, 0, &timeout) != -1 ) + { + if( FD_ISSET(self_pipe.first, &pc_loop_fd_set) ) + { + return false; + } + } } else { // If select() not possible, pause to prevent 100% usleep(1000); } + return true; } static int nethogsmonitor_init() @@ -178,7 +179,7 @@ static int nethogsmonitor_init() return NETHOGS_STATUS_OK; } -static void nethogsmonitor_handle_update() +static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) { refreshconninode(); refreshcount++; @@ -205,16 +206,13 @@ static void nethogsmonitor_handle_update() if (DEBUG) std::cout << "PROC: Deleting process\n"; - if( monitor_udpate_callback ) + NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->pid); + if( it != monitor_update_data.end() ) { - NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->pid); - if( it != monitor_update_data.end() ) - { - NethogsMonitorUpdate& data = it->second; - data.action = NETHOGS_APP_ACTION_REMOVE; - monitor_udpate_callback(&data); - monitor_update_data.erase(curproc->getVal()->pid); - } + NethogsMonitorUpdate& data = it->second; + data.action = NETHOGS_APP_ACTION_REMOVE; + (*cb)(&data); + monitor_update_data.erase(curproc->getVal()->pid); } ProcList * todelete = curproc; @@ -244,38 +242,35 @@ static void nethogsmonitor_handle_update() curproc->getVal()->getkbps (&recv_kbs, &sent_kbs); curproc->getVal()->gettotal (&recv_bytes, &sent_bytes); - if( monitor_udpate_callback ) - { - //notify update - bool const new_data = (monitor_update_data.find(pid) == monitor_update_data.end()); - NethogsMonitorUpdate &data = monitor_update_data[pid]; - - bool data_change = false; - if( new_data ) - { - data_change = true; - memset(&data, 0, sizeof(data)); - data.pid = pid; - data.app_name = curproc->getVal()->name; - } - - data.device_name = curproc->getVal()->devicename; + //notify update + bool const new_data = (monitor_update_data.find(pid) == monitor_update_data.end()); + NethogsMonitorUpdate &data = monitor_update_data[pid]; - #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } - - NHM_UPDATE_ONE_FIELD( data.uid, uid ) - NHM_UPDATE_ONE_FIELD( data.sent_bytes, sent_bytes ) - NHM_UPDATE_ONE_FIELD( data.recv_bytes, recv_bytes ) - NHM_UPDATE_ONE_FIELD( data.sent_kbs, sent_kbs ) - NHM_UPDATE_ONE_FIELD( data.recv_kbs, recv_kbs ) - - #undef NHM_UPDATE_ONE_FIELD - - if( data_change ) - { - data.action = NETHOGS_APP_ACTION_SET; - monitor_udpate_callback(&data); - } + bool data_change = false; + if( new_data ) + { + data_change = true; + memset(&data, 0, sizeof(data)); + data.pid = pid; + data.app_name = curproc->getVal()->name; + } + + data.device_name = curproc->getVal()->devicename; + + #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } + + NHM_UPDATE_ONE_FIELD( data.uid, uid ) + NHM_UPDATE_ONE_FIELD( data.sent_bytes, sent_bytes ) + NHM_UPDATE_ONE_FIELD( data.recv_bytes, recv_bytes ) + NHM_UPDATE_ONE_FIELD( data.sent_kbs, sent_kbs ) + NHM_UPDATE_ONE_FIELD( data.recv_kbs, recv_kbs ) + + #undef NHM_UPDATE_ONE_FIELD + + if( data_change ) + { + data.action = NETHOGS_APP_ACTION_SET; + (*cb)(&data); } //next @@ -285,13 +280,45 @@ static void nethogsmonitor_handle_update() } } -static void nethogsmonitor_threadproc() +static void nethogsmonitor_clean_up() { - fprintf(stderr, "Waiting for first packet to arrive (see sourceforge.net bug 1019381)\n"); + //clean up + handle * current_handle = handles; + while (current_handle != NULL) + { + pcap_close(current_handle->content->pcap_handle); + current_handle = current_handle->next; + } + + //close file descriptors + for(std::vector::const_iterator it=pc_loop_fd_list.begin(); + it != pc_loop_fd_list.end(); ++it) + { + close(*it); + } + + procclean(); +} + +int nethogsmonitor_loop(NethogsMonitorCallback cb) +{ + if( monitor_run_flag ) + { + return NETHOGS_STATUS_FAILURE; + } + + int return_value = nethogsmonitor_init(); + if( return_value != NETHOGS_STATUS_OK ) + { + return return_value; + } + + monitor_run_flag = true; + struct dpargs * userdata = (dpargs *) malloc (sizeof (struct dpargs)); // Main loop - while (monitor_thread_run_flag) + while (monitor_run_flag) { bool packets_read = false; @@ -320,50 +347,25 @@ static void nethogsmonitor_threadproc() if( monitor_last_refresh_time + monitor_refresh_delay <= now ) { monitor_last_refresh_time = now; - nethogsmonitor_handle_update(); + nethogsmonitor_handle_update(cb); } if (!packets_read) { - wait_for_next_trigger(); + if( !wait_for_next_trigger() ) + { + break; + } } } - handle * current_handle = handles; - while (current_handle != NULL) - { - pcap_close(current_handle->content->pcap_handle); - current_handle = current_handle->next; - } + nethogsmonitor_clean_up(); + + return NETHOGS_STATUS_OK; } -void nethogsmonitor_register_callback(NethogsMonitorCallback cb) +void nethogsmonitor_breakloop() { - if( !monitor_thread_run_flag ) - { - monitor_udpate_callback = cb; - } -} - -int nethogsmonitor_start() -{ - bool expected = false; - int ret = NETHOGS_STATUS_OK; - if( monitor_thread_run_flag.compare_exchange_strong(expected, true) ) - { - ret = nethogsmonitor_init(); - monitor_thread_ptr = std::make_shared(&nethogsmonitor_threadproc); - } - return ret; -} - -void nethogsmonitor_stop() -{ - bool expected = true; - if( monitor_thread_run_flag.compare_exchange_strong(expected, false) ) - { - write(self_pipe.second, "x", 1); - monitor_thread_ptr->join(); - monitor_udpate_callback = nullptr; - } + monitor_run_flag = false; + write(self_pipe.second, "x", 1); } diff --git a/libnethogs.h b/libnethogs.h index 674e5a5..2479d8c 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -33,15 +33,19 @@ typedef struct NethogsMonitorUpdate typedef void(*NethogsMonitorCallback)(NethogsMonitorUpdate const*); -//register async callback to receive updates -//have to be called before start -NETHOGS_DSO_VISIBLE void nethogsmonitor_register_callback(NethogsMonitorCallback); - -//start the monitor (return one of the NETHOGS_STATUS above) -NETHOGS_DSO_VISIBLE int nethogsmonitor_start(); +/** + * @brief Enter the process monitoring loop and reports updates using the + * callback provided as parameter. + * This call will block until nethogsmonitor_stop is called or a failure occurs. + * @param cb A pointer to a callback function following the NethogsMonitorCallback definition + */ -//stop the monitor -NETHOGS_DSO_VISIBLE void nethogsmonitor_stop(); +NETHOGS_DSO_VISIBLE int nethogsmonitor_loop(NethogsMonitorCallback cb); + +/** + * @brief Makes the call to nethogsmonitor_loop return. + */ +NETHOGS_DSO_VISIBLE void nethogsmonitor_breakloop(); #undef NETHOGS_DSO_VISIBLE #undef NETHOGS_DSO_HIDDEN From 761e153f30a2e420301d88492779164313bb7c29 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Thu, 10 Mar 2016 19:52:43 +0800 Subject: [PATCH 22/30] using process name as the key for add/remove events --- libnethogs.cpp | 17 +++++++++-------- libnethogs.h | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index 97302e9..15e9833 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -8,6 +8,7 @@ extern "C" #include #include #include +#include #include #include @@ -23,7 +24,7 @@ static std::pair self_pipe = std::make_pair(-1, -1); static bool monitor_run_flag = false; static NethogsMonitorCallback monitor_udpate_callback; -typedef std::map NethogsAppUpdateMap; +typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; static int monitor_refresh_delay = 1; @@ -206,13 +207,13 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) if (DEBUG) std::cout << "PROC: Deleting process\n"; - NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->pid); + NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->name); if( it != monitor_update_data.end() ) { NethogsMonitorUpdate& data = it->second; data.action = NETHOGS_APP_ACTION_REMOVE; (*cb)(&data); - monitor_update_data.erase(curproc->getVal()->pid); + monitor_update_data.erase(curproc->getVal()->name); } ProcList * todelete = curproc; @@ -233,7 +234,7 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) } else { - const int pid = curproc->getVal()->pid; + const char* name = curproc->getVal()->name; const u_int32_t uid = curproc->getVal()->getUid(); u_int32_t sent_bytes; u_int32_t recv_bytes; @@ -243,16 +244,16 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) curproc->getVal()->gettotal (&recv_bytes, &sent_bytes); //notify update - bool const new_data = (monitor_update_data.find(pid) == monitor_update_data.end()); - NethogsMonitorUpdate &data = monitor_update_data[pid]; + bool const new_data = (monitor_update_data.find(name) == monitor_update_data.end()); + NethogsMonitorUpdate &data = monitor_update_data[name]; bool data_change = false; if( new_data ) { data_change = true; memset(&data, 0, sizeof(data)); - data.pid = pid; - data.app_name = curproc->getVal()->name; + data.name = curproc->getVal()->name; + data.pid = curproc->getVal()->pid; } data.device_name = curproc->getVal()->devicename; diff --git a/libnethogs.h b/libnethogs.h index 2479d8c..c5dce0e 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -20,10 +20,10 @@ extern "C" { typedef struct NethogsMonitorUpdate { - int action; + int action; // NETHOGS_APP_ACTION_SET or NETHOGS_APP_ACTION_REMOVE + const char* name; //the key of the set/remove int pid; uint32_t uid; - const char* app_name; const char* device_name; uint32_t sent_bytes; uint32_t recv_bytes; From d38f62f802b8b62ef9335fce75c1b4040aed3913 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Thu, 10 Mar 2016 20:10:03 +0800 Subject: [PATCH 23/30] using a more unique key for add/remove action --- libnethogs.cpp | 17 ++++++++++------- libnethogs.h | 3 ++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index 15e9833..2752253 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -23,8 +23,7 @@ extern Process * unknownip; static std::pair self_pipe = std::make_pair(-1, -1); static bool monitor_run_flag = false; -static NethogsMonitorCallback monitor_udpate_callback; -typedef std::map NethogsAppUpdateMap; +typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; static int monitor_refresh_delay = 1; @@ -52,6 +51,11 @@ static std::pair create_self_pipe() return std::make_pair(pfd[0], pfd[1]); } +static uint64_t getProcAsKey(ProcList * curproc) +{ + return reinterpret_cast(curproc); +} + static bool wait_for_next_trigger() { if( pc_loop_use_select ) @@ -207,13 +211,13 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) if (DEBUG) std::cout << "PROC: Deleting process\n"; - NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->name); + NethogsAppUpdateMap::iterator it = monitor_update_data.find(getProcAsKey(curproc)); if( it != monitor_update_data.end() ) { NethogsMonitorUpdate& data = it->second; data.action = NETHOGS_APP_ACTION_REMOVE; (*cb)(&data); - monitor_update_data.erase(curproc->getVal()->name); + monitor_update_data.erase(getProcAsKey(curproc)); } ProcList * todelete = curproc; @@ -234,7 +238,6 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) } else { - const char* name = curproc->getVal()->name; const u_int32_t uid = curproc->getVal()->getUid(); u_int32_t sent_bytes; u_int32_t recv_bytes; @@ -244,8 +247,8 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) curproc->getVal()->gettotal (&recv_bytes, &sent_bytes); //notify update - bool const new_data = (monitor_update_data.find(name) == monitor_update_data.end()); - NethogsMonitorUpdate &data = monitor_update_data[name]; + bool const new_data = (monitor_update_data.find(getProcAsKey(curproc)) == monitor_update_data.end()); + NethogsMonitorUpdate &data = monitor_update_data[getProcAsKey(curproc)]; bool data_change = false; if( new_data ) diff --git a/libnethogs.h b/libnethogs.h index c5dce0e..2eca2f1 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -21,7 +21,8 @@ extern "C" { typedef struct NethogsMonitorUpdate { int action; // NETHOGS_APP_ACTION_SET or NETHOGS_APP_ACTION_REMOVE - const char* name; //the key of the set/remove + uint64_t key; //A unique key for the record, used with set/remove actions + const char* name; int pid; uint32_t uid; const char* device_name; From d33acbe3c7558d9ce326cf05faca30060bc64a3e Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 13 Mar 2016 01:48:33 +0800 Subject: [PATCH 24/30] building as static library too --- .gitignore | 1 + MakeApp.mk | 4 +--- MakeLib.mk | 19 +++++++++---------- cui.cpp | 1 - process.cpp | 15 +++++---------- refresh.cpp | 0 6 files changed, 16 insertions(+), 24 deletions(-) delete mode 100644 refresh.cpp diff --git a/.gitignore b/.gitignore index ea374df..2cd66cd 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ TAGS *~ nethogs.project libnethogs.so +libnethogs.a diff --git a/MakeApp.mk b/MakeApp.mk index 3f292d8..9a82ebd 100644 --- a/MakeApp.mk +++ b/MakeApp.mk @@ -15,7 +15,7 @@ runtests: test CFLAGS?=-Wall -Wextra CXXFLAGS?=-Wall -Wextra -OBJS=packet.o connection.o process.o refresh.o decpcap.o cui.o inode2prog.o conninode.o devices.o +OBJS=packet.o connection.o process.o decpcap.o cui.o inode2prog.o conninode.o devices.o NCURSES_LIBS?=-lncurses @@ -52,8 +52,6 @@ decpcap_test: decpcap_test.cpp decpcap.o #-lefence -refresh.o: refresh.cpp refresh.h nethogs.h - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c refresh.cpp process.o: process.cpp process.h nethogs.h $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c process.cpp packet.o: packet.cpp packet.h nethogs.h diff --git a/MakeLib.mk b/MakeLib.mk index 1795950..ab71646 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -2,7 +2,7 @@ prefix := /usr/local libdir := $(prefix)/lib incdir := $(prefix)/include -all: libnethogs.so +all: libnethogs.so libnethogs.a LDFLAGS:= -shared CXXINCLUDES := @@ -22,7 +22,7 @@ else CXXFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) endif -OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o +OBJ_NAMES= libnethogs.o packet.o connection.o process.o decpcap.o inode2prog.o conninode.o devices.o OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES)) #$(info $(OBJS)) @@ -34,29 +34,27 @@ OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES)) install: libnethogs.so install -d -m 755 $(DESTDIR)$(libdir) install -m 755 libnethogs.so $(DESTDIR)$(libdir) - @echo @echo "Installed libnethogs.so to $(DESTDIR)$(libdir)" - @echo + install -m 755 libnethogs.a $(DESTDIR)$(libdir) + @echo "Installed libnethogs.a to $(DESTDIR)$(libdir)" install -d -m 755 $(DESTDIR)$(incdir) install -m 755 libnethogs.h $(DESTDIR)$(incdir) - @echo @echo "Installed libnethogs.h to $(DESTDIR)$(incdir)" - @echo ldconfig uninstall: rm $(DESTDIR)$(libdir)/libnethogs.so + rm $(DESTDIR)$(libdir)/libnethogs.a rm $(DESTDIR)$(incdir)/libnethogs.h ldconfig libnethogs.so: $(OBJS) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ -lpcap -#-lefence +libnethogs.a: $(OBJS) + $(AR) rcs $@ $(OBJS) -$(ODIR)/refresh.o: refresh.cpp refresh.h nethogs.h - @mkdir -p $(ODIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c refresh.cpp +#-lefence $(ODIR)/process.o: process.cpp process.h nethogs.h @mkdir -p $(ODIR) @@ -94,6 +92,7 @@ $(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h clean: rm -f $(OBJS) rm -f libnethogs.so + rm -f libnethogs.a mkdir -p $(ODIR) rmdir -p --ignore-fail-on-non-empty $(ODIR) diff --git a/cui.cpp b/cui.cpp index 1e188e6..ca7aa90 100644 --- a/cui.cpp +++ b/cui.cpp @@ -32,7 +32,6 @@ #include #include "nethogs.h" #include "process.h" -#include "refresh.h" std::string * caption; extern const char version[]; diff --git a/process.cpp b/process.cpp index a5fbbf6..0e92ca9 100644 --- a/process.cpp +++ b/process.cpp @@ -118,8 +118,7 @@ int Process::getLastPacket() /** Get the kb/s values for this process */ void Process::getkbps (float * recvd, float * sent) { - u_int32_t sum_sent = 0, - sum_recv = 0; + u_int32_t sum_sent = 0, sum_recv = 0; /* walk though all this process's connections, and sum * them up */ @@ -157,8 +156,7 @@ void Process::getkbps (float * recvd, float * sent) /** get total values for this process */ void Process::gettotal( u_int32_t * recvd, u_int32_t * sent) { - u_int32_t sum_sent = 0, - sum_recv = 0; + u_int32_t sum_sent = 0, sum_recv = 0; ConnList * curconn = this->connections; while (curconn != NULL) { @@ -175,8 +173,7 @@ void Process::gettotal( u_int32_t * recvd, u_int32_t * sent) void Process::gettotalmb(float * recvd, float * sent) { - u_int32_t sum_sent = 0, - sum_recv = 0; + u_int32_t sum_sent = 0, sum_recv = 0; gettotal(&sum_recv, &sum_sent); *recvd = tomb(sum_recv); *sent = tomb(sum_sent); @@ -185,8 +182,7 @@ void Process::gettotalmb(float * recvd, float * sent) /** get total values for this process */ void Process::gettotalkb(float * recvd, float * sent) { - u_int32_t sum_sent = 0, - sum_recv = 0; + u_int32_t sum_sent = 0, sum_recv = 0; gettotal(&sum_recv, &sum_sent); *recvd = tokb(sum_recv); *sent = tokb(sum_sent); @@ -194,8 +190,7 @@ void Process::gettotalkb(float * recvd, float * sent) void Process::gettotalb(float * recvd, float * sent) { - u_int32_t sum_sent = 0, - sum_recv = 0; + u_int32_t sum_sent = 0, sum_recv = 0; gettotal(&sum_recv, &sum_sent); //std::cout << "Total sent: " << sum_sent << std::endl; *sent = sum_sent; diff --git a/refresh.cpp b/refresh.cpp deleted file mode 100644 index e69de29..0000000 From 4c5c87c1f392f4eb0c14906ee1b8e08e28d6ee99 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 13 Mar 2016 06:38:59 +0800 Subject: [PATCH 25/30] Proper handling of versions of the library --- .gitignore | 2 +- MakeApp.mk | 4 ++++ MakeLib.mk | 35 ++++++++++++++++++++++++----------- Makefile | 4 ---- libnethogs.h | 2 +- refresh.h | 22 ---------------------- 6 files changed, 30 insertions(+), 39 deletions(-) delete mode 100644 refresh.h diff --git a/.gitignore b/.gitignore index 2cd66cd..881125f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,5 @@ TAGS *.o *~ nethogs.project -libnethogs.so +libnethogs.so.* libnethogs.a diff --git a/MakeApp.mk b/MakeApp.mk index 9a82ebd..411d6b7 100644 --- a/MakeApp.mk +++ b/MakeApp.mk @@ -1,3 +1,7 @@ +VERSION := 0 +SUBVERSION := 8 +MINORVERSION := 2-SNAPSHOT + #prefix := /usr prefix := /usr/local diff --git a/MakeLib.mk b/MakeLib.mk index ab71646..d90f89a 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -1,10 +1,18 @@ +LIBVERSION := 0 +LIBSUBVERSION := 1 +LIBMINORVERSION := 0 + +LIBRARY=libnethogs.so +LIBNAME=$(LIBRARY).$(LIBVERSION).$(LIBSUBVERSION).$(LIBMINORVERSION) +SO_NAME=$(LIBRARY).$(LIBVERSION) + prefix := /usr/local libdir := $(prefix)/lib incdir := $(prefix)/include -all: libnethogs.so libnethogs.a +all: $(LIBNAME) libnethogs.a -LDFLAGS:= -shared +LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) CXXINCLUDES := VISIBILITY=-fvisibility=hidden ODIR_BASE := obj @@ -31,10 +39,14 @@ OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES)) .PHONY: uninstall -install: libnethogs.so +install: $(LIBNAME) install -d -m 755 $(DESTDIR)$(libdir) - install -m 755 libnethogs.so $(DESTDIR)$(libdir) - @echo "Installed libnethogs.so to $(DESTDIR)$(libdir)" + install -m 755 $(LIBNAME) $(DESTDIR)$(libdir) + @echo "Installed $(LIBNAME) to $(DESTDIR)$(libdir)" + ldconfig + +install_dev: install + @ln -s $(DESTDIR)$(libdir)/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBRARY) install -m 755 libnethogs.a $(DESTDIR)$(libdir) @echo "Installed libnethogs.a to $(DESTDIR)$(libdir)" install -d -m 755 $(DESTDIR)$(incdir) @@ -43,12 +55,13 @@ install: libnethogs.so ldconfig uninstall: - rm $(DESTDIR)$(libdir)/libnethogs.so - rm $(DESTDIR)$(libdir)/libnethogs.a - rm $(DESTDIR)$(incdir)/libnethogs.h + rm -f $(DESTDIR)$(libdir)/$(LIBNAME) + rm -f $(DESTDIR)$(libdir)/$(LIBRARY) + rm -f $(DESTDIR)$(libdir)/libnethogs.a + rm -f $(DESTDIR)$(incdir)/libnethogs.h ldconfig -libnethogs.so: $(OBJS) +$(LIBNAME): $(OBJS) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ -lpcap libnethogs.a: $(OBJS) @@ -86,12 +99,12 @@ $(ODIR)/devices.o: devices.cpp devices.h $(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h @mkdir -p $(ODIR) - $(CXX) $(CXXFLAGS) -o $@ -c libnethogs.cpp -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" + $(CXX) $(CXXFLAGS) -o $@ -c libnethogs.cpp -DVERSION=\"$(LIBVERSION)\" -DSUBVERSION=\"$(LIBSUBVERSION)\" -DMINORVERSION=\"$(LIBMINORVERSION)\" .PHONY: clean clean: rm -f $(OBJS) - rm -f libnethogs.so + rm -f $(LIBNAME) rm -f libnethogs.a mkdir -p $(ODIR) rmdir -p --ignore-fail-on-non-empty $(ODIR) diff --git a/Makefile b/Makefile index e2974e0..f4c32a2 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,3 @@ -export VERSION := 0 -export SUBVERSION := 8 -export MINORVERSION := 2-SNAPSHOT - all: nethogs decpcap_test $(MAKE) -f MakeApp.mk $@ $(MAKE) -f MakeLib.mk $@ diff --git a/libnethogs.h b/libnethogs.h index 2eca2f1..3f6792d 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -37,7 +37,7 @@ typedef void(*NethogsMonitorCallback)(NethogsMonitorUpdate const*); /** * @brief Enter the process monitoring loop and reports updates using the * callback provided as parameter. - * This call will block until nethogsmonitor_stop is called or a failure occurs. + * This call will block until nethogsmonitor_breakloop is called or a failure occurs. * @param cb A pointer to a callback function following the NethogsMonitorCallback definition */ diff --git a/refresh.h b/refresh.h deleted file mode 100644 index d7c06ae..0000000 --- a/refresh.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * refresh.h - * - * Copyright (c) 2004 Arnout Engelen - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -void alarm_cb (int i); From ccaedf92b5ae0458b7439e1593565c9a62adf447 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 13 Mar 2016 06:49:10 +0800 Subject: [PATCH 26/30] fix build for osx --- MakeLib.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/MakeLib.mk b/MakeLib.mk index d90f89a..2dc6800 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -11,8 +11,13 @@ libdir := $(prefix)/lib incdir := $(prefix)/include all: $(LIBNAME) libnethogs.a - + +ifeq ($(UNAME_S),Darwin) +LDFLAGS:= -shared -Wl,-install_name,$(SO_NAME) +else LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) +endif + CXXINCLUDES := VISIBILITY=-fvisibility=hidden ODIR_BASE := obj From e0b2eb996b313992eb71066cfbf938dd842479aa Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 13 Mar 2016 07:01:12 +0800 Subject: [PATCH 27/30] fixing OSX build --- MakeLib.mk | 2 +- Makefile | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/MakeLib.mk b/MakeLib.mk index 2dc6800..27aa061 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -12,7 +12,7 @@ incdir := $(prefix)/include all: $(LIBNAME) libnethogs.a -ifeq ($(UNAME_S),Darwin) +ifeq ($(OS),Darwin) LDFLAGS:= -shared -Wl,-install_name,$(SO_NAME) else LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) diff --git a/Makefile b/Makefile index f4c32a2..766c960 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,9 @@ install: $(MAKE) -f MakeApp.mk $@ $(MAKE) -f MakeLib.mk $@ +install_dev: + $(MAKE) -f MakeLib.mk $@ + uninstall: $(MAKE) -f MakeApp.mk $@ $(MAKE) -f MakeLib.mk $@ From d8df3e8160ae9ddbd13d15087076216403fed49b Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 13 Mar 2016 07:05:37 +0800 Subject: [PATCH 28/30] fixing osx build --- MakeLib.mk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/MakeLib.mk b/MakeLib.mk index 27aa061..c7d0725 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -12,10 +12,11 @@ incdir := $(prefix)/include all: $(LIBNAME) libnethogs.a -ifeq ($(OS),Darwin) -LDFLAGS:= -shared -Wl,-install_name,$(SO_NAME) +UNAME_S := $(shell uname -s) +ifeq ($(UNAME_S),Linux) + LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) else -LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) + LDFLAGS:= -shared -Wl,-install_name,$(SO_NAME) endif CXXINCLUDES := From 99e8d618738b506d3d4e33777bff289cb4075d17 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Sun, 13 Mar 2016 21:36:27 +0800 Subject: [PATCH 29/30] cleaner API and better doxygen comment --- MakeLib.mk | 2 +- libnethogs.cpp | 21 +++++++-------------- libnethogs.h | 18 +++++++++++++----- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/MakeLib.mk b/MakeLib.mk index c7d0725..c719eba 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -52,7 +52,7 @@ install: $(LIBNAME) ldconfig install_dev: install - @ln -s $(DESTDIR)$(libdir)/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBRARY) + @ln -f -s $(DESTDIR)$(libdir)/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBRARY) install -m 755 libnethogs.a $(DESTDIR)$(libdir) @echo "Installed libnethogs.a to $(DESTDIR)$(libdir)" install -d -m 755 $(DESTDIR)$(incdir) diff --git a/libnethogs.cpp b/libnethogs.cpp index 2752253..1f43164 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -23,7 +23,7 @@ extern Process * unknownip; static std::pair self_pipe = std::make_pair(-1, -1); static bool monitor_run_flag = false; -typedef std::map NethogsAppUpdateMap; +typedef std::map NethogsAppUpdateMap; static NethogsAppUpdateMap monitor_update_data; static int monitor_refresh_delay = 1; @@ -51,11 +51,6 @@ static std::pair create_self_pipe() return std::make_pair(pfd[0], pfd[1]); } -static uint64_t getProcAsKey(ProcList * curproc) -{ - return reinterpret_cast(curproc); -} - static bool wait_for_next_trigger() { if( pc_loop_use_select ) @@ -211,13 +206,12 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) if (DEBUG) std::cout << "PROC: Deleting process\n"; - NethogsAppUpdateMap::iterator it = monitor_update_data.find(getProcAsKey(curproc)); + NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc); if( it != monitor_update_data.end() ) { NethogsMonitorUpdate& data = it->second; - data.action = NETHOGS_APP_ACTION_REMOVE; - (*cb)(&data); - monitor_update_data.erase(getProcAsKey(curproc)); + (*cb)(NETHOGS_APP_ACTION_REMOVE, &data); + monitor_update_data.erase(curproc); } ProcList * todelete = curproc; @@ -247,8 +241,8 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) curproc->getVal()->gettotal (&recv_bytes, &sent_bytes); //notify update - bool const new_data = (monitor_update_data.find(getProcAsKey(curproc)) == monitor_update_data.end()); - NethogsMonitorUpdate &data = monitor_update_data[getProcAsKey(curproc)]; + bool const new_data = (monitor_update_data.find(curproc) == monitor_update_data.end()); + NethogsMonitorUpdate &data = monitor_update_data[curproc]; bool data_change = false; if( new_data ) @@ -273,8 +267,7 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) if( data_change ) { - data.action = NETHOGS_APP_ACTION_SET; - (*cb)(&data); + (*cb)(NETHOGS_APP_ACTION_SET, &data); } //next diff --git a/libnethogs.h b/libnethogs.h index 3f6792d..269a567 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -20,8 +20,6 @@ extern "C" { typedef struct NethogsMonitorUpdate { - int action; // NETHOGS_APP_ACTION_SET or NETHOGS_APP_ACTION_REMOVE - uint64_t key; //A unique key for the record, used with set/remove actions const char* name; int pid; uint32_t uid; @@ -32,12 +30,22 @@ typedef struct NethogsMonitorUpdate float recv_kbs; } NethogsMonitorUpdate; -typedef void(*NethogsMonitorCallback)(NethogsMonitorUpdate const*); - + +/** + * @brief Defines a callback to handle updates about applications + * @param action NETHOGS_APP_ACTION_SET if data is beeing added or updated, + * NETHOGS_APP_ACTION_REMOVE if data is beeing removed. + * the 'data' pointer is used to uniquely identify the data beeing update or removed. + * @param data a pointer to an application usage data. the pointer remains valid until + * the callback is called with NETHOGS_APP_ACTION_REMOVE for the same pointer. + * the user should not modify the content of the structure pointed by data. + */ +typedef void(*NethogsMonitorCallback)(int action, NethogsMonitorUpdate const* data); + /** * @brief Enter the process monitoring loop and reports updates using the * callback provided as parameter. - * This call will block until nethogsmonitor_breakloop is called or a failure occurs. + * This call will block until nethogsmonitor_breakloop() is called or a failure occurs. * @param cb A pointer to a callback function following the NethogsMonitorCallback definition */ From 12d578e9e226bb9aa502a08513a5d2fbe82cced5 Mon Sep 17 00:00:00 2001 From: Mohamed Boussaffa Date: Mon, 14 Mar 2016 01:32:23 +0800 Subject: [PATCH 30/30] added a record_id member to the update struct --- libnethogs.cpp | 19 +++++++++++-------- libnethogs.h | 11 ++++++----- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/libnethogs.cpp b/libnethogs.cpp index 1f43164..4fd826e 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -23,8 +23,8 @@ extern Process * unknownip; static std::pair self_pipe = std::make_pair(-1, -1); static bool monitor_run_flag = false; -typedef std::map NethogsAppUpdateMap; -static NethogsAppUpdateMap monitor_update_data; +typedef std::map NethogsRecordMap; +static NethogsRecordMap monitor_record_map; static int monitor_refresh_delay = 1; static time_t monitor_last_refresh_time = 0; @@ -206,12 +206,12 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) if (DEBUG) std::cout << "PROC: Deleting process\n"; - NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc); - if( it != monitor_update_data.end() ) + NethogsRecordMap::iterator it = monitor_record_map.find(curproc); + if( it != monitor_record_map.end() ) { - NethogsMonitorUpdate& data = it->second; + NethogsMonitorRecord& data = it->second; (*cb)(NETHOGS_APP_ACTION_REMOVE, &data); - monitor_update_data.erase(curproc); + monitor_record_map.erase(curproc); } ProcList * todelete = curproc; @@ -241,14 +241,17 @@ static void nethogsmonitor_handle_update(NethogsMonitorCallback cb) curproc->getVal()->gettotal (&recv_bytes, &sent_bytes); //notify update - bool const new_data = (monitor_update_data.find(curproc) == monitor_update_data.end()); - NethogsMonitorUpdate &data = monitor_update_data[curproc]; + bool const new_data = (monitor_record_map.find(curproc) == monitor_record_map.end()); + NethogsMonitorRecord &data = monitor_record_map[curproc]; bool data_change = false; if( new_data ) { data_change = true; + static int record_id = 0; + ++record_id; memset(&data, 0, sizeof(data)); + data.record_id = record_id; data.name = curproc->getVal()->name; data.pid = curproc->getVal()->pid; } diff --git a/libnethogs.h b/libnethogs.h index 269a567..afde2a4 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -18,8 +18,9 @@ extern "C" { #define NETHOGS_STATUS_FAILURE 1 //generic error #define NETHOGS_STATUS_NO_DEVICE 2 //no device foundr -typedef struct NethogsMonitorUpdate -{ +typedef struct NethogsMonitorRecord +{ + int record_id; const char* name; int pid; uint32_t uid; @@ -28,19 +29,19 @@ typedef struct NethogsMonitorUpdate uint32_t recv_bytes; float sent_kbs; float recv_kbs; -} NethogsMonitorUpdate; +} NethogsMonitorRecord; /** * @brief Defines a callback to handle updates about applications * @param action NETHOGS_APP_ACTION_SET if data is beeing added or updated, * NETHOGS_APP_ACTION_REMOVE if data is beeing removed. - * the 'data' pointer is used to uniquely identify the data beeing update or removed. + * the record_id member is used to uniquely identify the data beeing update or removed. * @param data a pointer to an application usage data. the pointer remains valid until * the callback is called with NETHOGS_APP_ACTION_REMOVE for the same pointer. * the user should not modify the content of the structure pointed by data. */ -typedef void(*NethogsMonitorCallback)(int action, NethogsMonitorUpdate const* data); +typedef void(*NethogsMonitorCallback)(int action, NethogsMonitorRecord const* data); /** * @brief Enter the process monitoring loop and reports updates using the