From 0ae2c4d8ee89a207f7357df16414daabc9f5c250 Mon Sep 17 00:00:00 2001 From: jsclose <jsclose@umich.edu> Date: Tue, 6 Feb 2018 17:06:46 -0500 Subject: [PATCH] refactoring with utils --- crawler.exe | Bin 100288 -> 91952 bytes crawler/crawler.h | 4 +- crawler/spider.cpp | 67 +++++++++++++--------------- crawler/spider.h | 6 +-- crawlerOutput/example.txt | 64 +++++++++++++++++++++++++++ main.cpp | 1 + util/util.h | 89 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 188 insertions(+), 43 deletions(-) create mode 100644 crawlerOutput/example.txt create mode 100644 util/util.h diff --git a/crawler.exe b/crawler.exe index 667f57e74c03682722b27b595c47d8f0756ebdfb..3897f9acc8dad78397e8b3f699470a56c3e2c8eb 100755 GIT binary patch literal 91952 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 literal 100288 zcmeFa3v^spc`rVSV<N(16bPx>Qcxkim7##bC7@tJWU!JWDuEJkG0@b81Q6w=Knx1h ziInlc93Kv-G(%NNTD66R+GbtU$58Q@bmVwhs!Ks(aY5}ZR8U&ZfcvjVX(A}a|KDSu z(MUEay?w3Q6)%sz^L=~oZ@<31_qV_O`pkF!?tAAI3LQHNg~@XYg+dp8;}0qn%9B5i zuR`I6@r&>~aA0)LRf8`byygX@ZvEG>6+J6PJ`;%Gz=0PH?tjr%FACqYjZ46hw!%*Q z2>I{8fg4{raihPDZ{@d+43JZ!!~BS!yXl?CWIKA`z?*M8^olpPNZZpl|A-FpdqqfI zj^_b713wg*{+Zu_u~)us{FQG4WjntMFEqcWv#{}xc=$BojP$+wy6X<Sa^kvIj^B9T z#+SchJHO$J%x`Z<0P!vS%(eCRz=7-DeB+y5^M+Rk%65L!k2b%qkYD2M|F-i6zc;?& z&6^dno!{(_ncr=J3GprU(as#-2M!#1!&_hThU*W!<_)iUqwuZu`?SZH-={*dh;L6* zJ4?#lD*PTeuy@ak_O!V`zQlq8&ws%6FW{6nv<b-`=?4zH;dKYzeADY+@y6F37{BpN z-<My`j{F!t|Htatog;t;4!rt}o27PU`nnLFDVhvnh;Qe2d2k~*aNu<>zrXZN2YxII z{v+PbkNF*ui~pQiuUpG+{Bcg-ObA2#{_FMnm*4pE%?P&FN7v)cZy~P+;P=OGvtJq> zdj3xj?j3qj;N53Fg@c<ozZx$#&U}U_M0gyExQ|~5*9*`Km?7e>OFPhq6bdU(2fedU z*m!nFp$7#<S?k7c?KvHV2g7}OUq_+usfEHrKpVx6|7OGQBEXO0_d@)>-@ow}b`&aS zaeO#vJ@`Eozo#5}^P8UXy4SqoDc9fhy6b`S-;d(QbiDYNFMj>wAA0GpO)c;J`yIc& z_xy`NlMFued;~tf@Pr%(<UizblHu4dw*O;1{rJ(%?dkI<g^ta*5&sKsdh?C1eEpN3 z^JJvsHLq}JhGY4)!kzm+Q7T)*UH8N%KKYUm=zqX3qwYreEd%ZfILq^ae-D(v110c4 z2|Q2&50t<ICGbEAJWv7;l)%4t3G9pFzlo+!ac*%*<73oX<CDYb&hkS#3d3nS`p>6N z4=0a$b+Mx`l00HK-nX$-z7aI0BCe0)D~fAl^c1I)0_6!3lbW!^SX`U7Tg7g~5N?LV zq%07ZXN?KO<vC*nBk>}*&yx@@A=t!sPoIuYWG{w61M!$;T_CQF!z~+n3`{gho&Ml~ zq$oa?O~L;q_l6usX}KQ^qqw|4kQl_}hB1M-yezCP5Z70X3B>hPV+2F-#&BF-BOxx2 zF$JH1!VjkW25CcHs{(Pg@I6Lo5LY{m3B=WP_*^QV!e16}sm`w*#nKajBqGO)2ufek z(zz$;$K+C@BbIw}`83?p`hI}y0@P`fo<LYYJQ*w5gyiz4Jq$@qFa0gd*)rH{3P|Tc zBscgk7Z^ue?q>4Rok!sdSeFu;iWsN8#Nu*~h~<Fwnb>bIU=R^34QPf1h}k3JTjF1o zQYr@VXTWN|$}1gZ5gvK8(iFAQl+@*%)aZ;-pi6cK3Q9@N^T~`yX^qLxrZ7Ft=^{+S zH_Bp$4AR;t{k%120Q$V?cCMOJs)GAk8z(wvS0b2Z=JAOTFnjK6H)A8G?7eTu3CZOr z(40`(*L0$^-;e1eGCKf2dFm9&?;{e>`&;y+PCpP~lCm94d|d8pIfqL9Cj^VjKb4ac zea7Y6K=|18DB<`d^NJdXm$H%XiAPWF88XUmu&odzmp{hoTsjZwyay9dxO8uNuGv?e zr0n(P)s;Ihm5<<)by}+P>-u8)m#pCHL@(a?hdY@F#PRX-!F<pn*O`Y_NhI<rVJ3&> zAD}YhyOD+-R8^cl8h@KeU|~D$8_ec5e}Brj(>m*Yn^PA5Gb-kH?LLEew!6QE?up%5 zliS@tMrnBMrh7KWnhVwONq?&WuK2s3f_5R8!jFWmli$hZ7oZ>#b*E8sMYQ|yMqEA@ z(G|--4c>{qqp9O;wAbF1v%j{D{S9sGYv0{u|J(dd>MXSEi~m$8WM9Ic;$x41YoVb2 zzI3W9iVtr@$>EJ`H!Md{>3G+*cNHJIx8>d=_xR8{{X_}j;5uko#6I}YTJ}{86>!Vo zw#M%DTo_=$rsvwbUd4Y;-WK0Mgl)ioBZ@boQlk&(f?3UHzl-F74e&!N@G=j#Wk7r% zT8;<r$c8R%xvzr03imZYM9b*$D=qcnn@MF7m940BMMtsxNMslZUqFoGh%MWNnBu{? zKtdvxvZsmkK_vYkOCT?w9x;mdf#C=v0aJV@BU$#NY`)59dwGq*KNG*QnLlK8Df`TK zm;z=S=}tzF_7S8VKd}Yt(jwA6Le`85(eU?Rd@dtfeevKYv-gU{2#NwF1nTiol=1fR z9Y+N7h-iK@{#nNV0tAi+KY$zq1%qS+Ohy`jND|^m7>|;G)Q=$bNFtM2x~x#V?bzg3 zI*K2?r}RA(<>OtHvntAD1aPqr5k&E)vp@ef<CtmwGW%Xfgd#)UTKPH|L32O};&)AF zl-$r0E&hM!N6CfvM9EN3H1*}vkmTf9N8`hHAdx7a!)w{O*Q@FnALGg1g-G@$gLlM( zx9yD^D1~uW*FauhT?3W%C_QxF$7nS}mj^MZ4BiJ$8`;lOQiFhR`lk;$zx~`z=S}(V zYPtXJzu^85SSEA!dHAVQ^DM6T@H8@BK{-sKJn)Tljm+SOx)_<mZ$4U*l`mS_<3SO_ zU}=eQH=?D%1@I^!ji@Qe)zTo%gTz;&bZ{93g_<H{n`EI45~2{)FqpTsDDDTj62*JE z0Ve@_BteZ{)m&|i6&9xl1w7!z<xybSTM&~6r=+Zbu+->hm_%W+JsY|6)N$tY+Pl<8 zP9SKU-iW_V^ak#dH)-gS#QT}bMV+x`&-XVyWlz1YP<Yk!8U54C=;e(5X|sNQ^<QxR zKU>{LvmZg?qxjs5v%f=xXT-<$!@dL}_u~wi?);qxVeBq7x=^AZpXao^YD@o??0nR@ z!BgJ<#OH05PcUVjpugRkp6&T%<k=F+gVAL_gCypeKZ1ave+Dn~0qy<IW_dj1Ec~ZV zarr8W>z!h3P`ZMY0w~2JucLEPCW7I%OTJQr3m_pqqF1|3H<oT_I4=jHu-$t)i$}P! z1zsY=<z9yoC@mtHX`d+qaoTUpV6-zT9Ygs8#?=A27;F{N#3Gvnkxj?xGp<UU6Jv?7 zcm&eFZ?gF!@e27vqj9%~)S%02@AeXq*p@h^9YQCj!G&eJ?%EH73x@0D>CvwHqQ%oY z+?@BJS);YHV@&X!9GV7w0ddcR(H!W2>~;?~vRnTV<ui4hHFE7;XO%xSHp}1_zs15t zvo5L8X8#NYL6UJHM)x3!XB%&sX3N{z<e`21|F3YLIyFlni4UWs@WV_J^^@H#!O=II zP>_T84L}qIQJ9BOh#a{GkTY~?323_qE5#$XTG}iEgYznB4`>VcMh)bHU25?_xCA9? zjH6vV=)RTRe8N6;-wG8E(AQCY8I>K-0S8^4cm0DrPNPPYw5Fm?oP{q@C7U|V+_mdd zQ>Rwk{u*jCb%D6P>=q=T`Yo@RA`q8XjS0l{X=2dSO%%ZNRhZl~-+_lY`K!*ixm?A} z#pM~h%o3!=($wD5Om5{hg(?e6Qel|D$}L^Dn=sZ(VhS5QRE2v^SE}!XkE3P&orB82 zZ3@lLvVKx0D$#5T37K$nG++&<6N;id?kEIQ;M9hycHFldDsvh2)4(_CjtV0+7C<T+ zXtN%*LWI`!AT<#>mc?_U7!XZ7c|^49?r8Db=R{NArh1JOjUnP<`A3;p%-fX;20_vg z0{@|rMV;c^Tyz?z2`HKz*)4H1_=YsI58x1=9<)z^e7ai>;VSTh-_=OXP-nF3WVHAl zbS2gO4kA$6IH&jyw0|aPLG;vtsZQ*}54se_Yo((aIiLX&Tn+S5^^IvnuvBKBsvIY& z9Fm$GFw?X*wUM}XP?)R;sAXfJU$vayxvo?>Ipt1zPf~-c*@v@Ad&Q*MV@F|$vC!+s z)jqqq^EVb>-P!!S^Aflh?8#tzc@5aBKq>1$dGv!)Jn}fo9)2vl;CK!k`{c;A@}?D9 zSI5#o4;OixMF&vCq)|4ej<fBuHBZ8|rEj+S*DxR0GJjHUg&s?Dp23ECvE&8NdYk7* zi(lRmbu2@2X3?!cN;ub{B95HxzPfXuc-slkAVq`I1C>MXIXd{BR#SQyqQ9g86A<*t z=8ppr1NLT+y5wpo(qEw>9W8$4oTvj00vaE+zEoq+8hlN=(V)Xi_5nYH1_YIyle`!m zT*3~H6CQ{p`#lW82|Lt%3ul>c^dgbd=)A!)^vvqO=pR4LG&o(UtBJ>D_mKgBZ&mai z&+9>oDo8~GslyK~Avsjh<Y4h{QB2=tR^c?MgeHfOz?)G_H+SwS-qwJKjX^Z_R?4pi zII6#`vZAfYWtHxSYqQ721!e{CtAsfRDg#A@%CM3fblp^qcoh;&{z$?KGPI0>0Erz9 z%LvMWmF{&HRu{lpD6<)S&th!uMY(x=pE@-F8A5Sn5?6z`zHZ?)K-UzzCB>;_J#SaS zV2Dv-f>su=`WjiZMv5+aNzzpkckk(H>0%;m*TuR~fS~~jY}duQf-cteAES#Y<)!{Y z@d&qspqV-=tqv8*qgc0fsApBq;O%~uvvfrzR9zPE$eVbam6WD-KpRP_4f)wOhiYDc zY|jr<<KP&BMmij`9aAqrvw;yJ`@}bp>Z#+b*t4_`6xsv&*S|*p`W-h=l<mG1m-F}0 zzn=SbN(;o~Z2H&FeFu{NU!{M^9(Pv#>(&2t`q$sET>lgGFSLy;`^hYfz6-Fu6fk0? z)wx#NV*7d%l!Oy#x`4?uY5m;wy(mVvS{<XeUy1Jfc62!<;s;d8{ue_fxoS0yUgQ5Q zmCVBbZ&S&h_%-#S(p|zp^8dI>whscZT_saVZK`CO_PhnUP&cAFlB-_SE3ScvUDb2R zy%@J=;(Ma|z8Nj9?a;W=K}~8FeaS34c#xKdlRaI-n9o4HAg5`J@s+)mk#`;)eCOFT z3o0?q%MfoKImdlWE;##7uI#x4BXgCSPy8K5``VM;7-NV>9WVr11;Pp`37a}v1!-DE zyyyh~RXSR*1?2XGJ|+KOrJuDj;WQ>sg~3jV+ws;OjCx2IERmdfC2v8I4ps&)Y3z-U z<ptUSwe`>>=#%ibfx^V^2Iy)xgu*OaS4)2YUG35>B?_J>(ZLF9usX`pR3*AJiMurS z^XuPPf$KYqeI_gZHQL!$d*q%M@A;V*Vi6sydt5~Cr6ivGSU<t1hheK7M)eM-`zD9e z+pSS<vBSmnE~Wi;f%x`rV*>H*J;ns$+k1@(#J3L^6Nqn*fDL;>HyqbkGQbFimb4ds zXz9vMB&h&M?YJ<69vB`ElF5=3U{Vo=lwmBl5@1PPpw5KD&DiY|!URT=A038t49C|_ z4ky=EM&d64oyJyynPFJMuxnr>eq^-t+#WKIN_X`}@wIa>X3r9bk2wUIh3^G0fWk#M z(ip~UU?h1k$SXk6EJs#Guq`3pw+c0E4QkoiNKzPyJFxOT#PxxttNK3tyT9{Pe0K(u zrnd@gU|fh#V2=SmAU@QzhvQ>dE5}Fns4ug}tQL@$6VK^K;*O0&<cWge_$PjE{#l;M zej%yRKfE%0_NBG9U=!2<S?@2~^K*L+<nl6gY7!(Qg>`~03j+exeu6ONPV211>_?FX z&r?&IN^O9LB(vs@c2?5!2+RE2>Vj_LEHBN?w2q_9T7yQ<T0>}IiLo&K@^lGqtiybA zlU#rvGK)H}dYZCQK^Ms9UC9tC49(qHNXm+g29Y5IT1G!LhqgJFOrYFrD((8WP)13a ze}95Y1Er0gV);k#frwQMJIX4CST?36w{_<(CIQP-+Nr$<3vtykqf>edV!kIY#^l*i zatjDhAE>i)5iv|8JPV4e*8gi%^RvIlZg=F6-^uSyBWhUrKLJ{+WVK?Ql<9%<yAy+d z)dQw$SX5cbp7~d;szUFq8S|z0auNV0-Ec$9oIt2Hj}HD7;_-Z9#4Ax;{9@|+i+3Kr zFRp)5QG8)<QubGE9)!KvPLRlQclxuH@<+(+iA*JGXK*<lIj(d(f^lKxCjpLaGw>9r zAD~xk(t%hYrR!fR6pku*@y=z4G_w=GhxtX}D)SX0m6Mg~ufhpFx={5;%S84ni0Tqa zS(CGh60L|unY~t$EnO=Y+)fM5G(E>Q1I57-zzJR%31-Y^$j<cA;JaufL~c0L&Mpmp zAfU6!Xiw?nP84nY`RsopJBrGGei0$OB#&sZD*%6+TvHOQtvEo!DmqIBRY7{>Hisnk zFl3n_v)L~){yHgH0TJQb=`32txi6){eE$YKDgoJFDTuQ(b(}5z+PgwgxKR(&>t8Sq zR9sn+DVf=aavt^`qP+}KN1sb^dW12(<Zn)&-nzatb!rW<?5&`|*=QWs8q82!T@Xkq zJlKOY2T&=0n6#2SqVT;29z<GI*!(q4N0KrF<x;u}tZflaf&qDp^*I@UvTpr4sM)*a zyZG)OLn(vTjCn}}c0qTNrLy@DIxZ<3YXkn2-q11>C(9OzB`6f%{dW6WZcABGl^2&I z7<Z#wk#R~a__1(hpdC7hE<tXI-QuOwcSpNbcf})*aYD#9Bt%ifE{}JkKXr|iWJyOt z-UoBwCHH#zax6;IaivJEdyl$=b1P=O4{3lE>M2S}=&npWYGQ27-opWWUS*%71bL5b zV{5EsQOMvyxoOk|HU?}c{x-J3jfXHuPPXqaSfsfHcRxtQJFDcK{VHAZM62sVJnGlC zb?>ykC5J0*%Hj<0nc_#!E3I{uHqfVO>kvXmWPju-t{)=olAz{6ZeSnVvW7O)1^)x^ zqGpLo3f^boZ5G}!WZ=iuZ!U|K7CZ2bzI)4J4TB@3fDCOmedlIvnk{J`;NA?HE&I^1 zLIAjCR_|BhuvRToFmli*0`$|9kai*v3>d@kp-K;J(L307OIV9XqWcq=rSd@pMvE*o zpFn?Uo#LU!KE{vqdi>2E_vdhbE_~TLJmx;L^WcOr8otVnxO_2S@yKJzj-C<`V9fU3 zy5f<)rwbOLgN(KsuG-SS*ofTX@<ybtIv5z^>IPy)If<x2osFnK5lig$uV_R=dHTU{ zj(p?tI>C~Lb7l+<q9hSI6R#~LVciLoeAKmVE|}=1j<e&#_9wIfFv}kP1?&+xW4$vz z{N4D_Msn!8yAN%^FnlpKtu)%##}|;J(_7c$2EZ1w;^GKdt{J-zboVX>+Few4*J2QB zxImiJ`^0q>qx27MYT_&jw!#>_AX-Om+izRtDSe0SYE5NSUv*Kf02IqzD5YSvUIwAr z=Tf61<Q>h7zo<*=3Fu`Pzr7=R&7!8nUi)C6ydZ-anCk+qO+Aaf_+CSr*4%W^e0E$A z?OKV@)Qe>vT|=gru<R#TK0$BJ*8w>cHt0C>O+=ICONN<JC*2ra(HPkv2RhY2xpJKZ zb9OMVR^7GP;vRa&t@<h&IYlsE&<`v5oLC0kG)z!I3Ef$kR>%9MF>9tO!R}?2Gk&CI z7Wth4J`YW9p2}M3e=BdUfUrTqz>BbbY5-*ctS1>W;F=)1tIn3;H@ENiU~vX=)B7z} zfB`p>l>0<5F!z2_1h5O#m;l;4F$@zX3QSG(sDiPS@(&P^TfadSHZ6C{OG=uTe!gyB ztnGBvjs`=WTD?r$L&WKZy%@BX?7II^<=#b*q{1+oikSA=t;cS{u$(6%!lNRX6s#!R zM^Nr1NXo(}u_#ATssg2B=mDw&rU=B<$e6(H^ATX2`7Qq=G(s>U0@3e`c6S!v@d^kh zo5=zO=|X%AeU_bX?i@}YG`wrc+cN4s;%HD>Lbahns$*pIE9_7BaUauae^(;#m0iQh z^E;y_rXpdbZm8o=;9&!dpk1vCq?y=?2)Dw9GHQ_03kyL+0jSLkfZ)9#0wZ9g0%<pi z*l|NFDHB6c$_*X+;s%z4%bg^a>I8-2J1%yY-~jfSROMyyEAXuic~8fpySfono;cR* zflF$fIjOYbpFuxTb>45r3N#kPxiX1HesgE@ZPXCc^4PZ#b((fES826N84sar{o-5~ zC@rBr>jS0;K!}YQT+voBi(f-k)WvM6OxCDPw4LfGBZHzrfaPg{sxYji%dNWKZo;tp zN5t}^KssSB<ML7##<jjwgxwv*Qc#3LsDr5feD-PXWs*<{21rr4n;AwwzSukmMdebf zE;9lP@QR~cB}i*)_tG~;kJ^4R!c-1<(iim(eq|rQY2S8XPOGa5RGk;6bdCTMK=W;w zxL~3&?3zStN~;Zro3@vVy%?*`nmA*kF@&orF067fD9k%d(6eD{v;LEom3|!gV7;Z) zd4bxRK)nmRAiFFANNbNGD0hpP5`$*iYm7jqo77=a`GT%&X97Ay^7s{_q1XHHg#;Nu zQWRt;zRc#FCG3doWb0!}u!2gE)C0C*%-{+*E4_(*VR$!Z18^3Tp|~G)RFG2uPX|Xa zj-Qb?kJ1TrT8tZ@)^OYliY;KZWn%_Uhc6XbQj@Q^wrXbsMqnn-fK;r=DS$^HMhCfQ zQ^;l<SU?LUwOLaH;@X@sfw(*=tS;cDSTRKaJBN%3z~DzLuJ0EyV6`!02F%Q;3G#(A zH^vN@88bm<(s4Nj@L*)dK_1SL_K$H9K=a9L-f5lUB^7yvAL*y?H~V$Cqdky<<`zM^ zn(w(Vm&nlRV~(bNClx3yqNhn$O%Z@5Y0O|0^;KOKC4gElF(g!=Iwnv%C@&^rv!E~& zky~Q|n8_+YwIWcPl$(i|n%bv`ac$O^K%6cpKy_ZAHYc}KSW*=hR~sS*@Q5geF%GR; z+m52H=Iha8p>#a3me(Y(0l*hkte^w7{ABhcfEFXHD&P)l!xRCWMB-v8?4JS<!$P#{ zn6@EZc6YJ#oCmi@-YGw20gP6{QUO;;w<!WJuNX6cNDOr4DJ^{)>-`lEVagW<J8B{r zG8ty6+zTL01~WBrsgeTsNT51EuvG2`0GC4a+LRQ^#3)^`#h3tk6??afKLsCYtxGYK z1+deJE>}JRQub1q!}IcOrQ;yO!yFC}(jf{)8!=8N1ghiqHU<#VK?>6`NtdK90Ii3y zec(@(j!vgTAgRmc;Xh25a>3e|YdWonLjbw@w$;nDy%@CAw|P?I>YN>gLDWP{8+Kc; zo3NxR3_GqcK83g^{z=6*P5`kIkoq>M&#HihsbY#iT%9&1AoZ;eId7?NMD9m@v-39f zZA={N0xk8emyD>s=|k$9{cTa-L~5yTJVk{8gr}%5PVoR0vZkX|=yQx2r1XL+oDfj} zV+I2t_&5RjBzXx(`_hAU+fO1i2Z3~qpryWz5-ZgSHq|!=uun{P=w(xVd+TybeX~Cw zdDD(4s&6VSt8dQx_fy~IxknfyItwzb?pJw+(6vd%2{Bdbq`p;55x|&X%m71YORu*2 zCT2@zvJUFo3?oBtNsy$%lB%#cos(O2)^5TQW8sixoHp!bL0-Z+Otj8agf{g}JfMO= z4s!L)+(kkq(1m>&&NDK@E%nW%R_)?!)dJk@iE9r*TI-c>s&C!oAoZ<FUsT`tm90No z9fmk@E|OMz6et|+OxKn8{Gey2*rx>osOZ9S^{vz4R+Z^=#o>%qGZWWLG)DDJae)zo zCUqt<y9KKQx%#H`r|AsqEv;?{)OyJT$3X!o$p`~U9#aJ6gCeHHXjn8xVD-&mQuzvp zdlQ}Uwfe?jR^KM@g#;NuQWWG2^{t=2pzGOlzy^#NTmfgL7pkB=kJ{M)oONc`>RTkI zngJCO2ci0=>e-^cb(&qlVT{$fj2TelQIWy?CC{}UI~y<p2c!DdEvEpezBvfhH^m)S z*VK4w0#@HLQv~ALx-kK?0AY0jt8Xi&2;iu(F#)K4#Nzs_hykn38#7>LW=xPT=&!~M zm>Dyn`nDja0I0q>h}1V;MwF{>6fdc7-TX)|#NTYKSM7n6Tzy+PKbJ_08|dARLBQHV zk0}C}I2bdK`qm{%)u1*m_UVE^bzY!0M}Xczz{JEv<W@uj=!yzZT@k1)%gw~Z#Kgq7 zmN}dNOr%T%Or#FC?r_4e4lH7|)9ExgLw);gYEY@Sw5RDZyOOlJLXgxv+SYp2Hy8vv zH6)ot%R#@~gGIYOV9el(wi77slEr$d%!oplyq^J}87W*UEH|L1V{)q=w41QRSU6&U zHg7Kz@=_M28MO#)U9xz<PJxK?F4^2gLYGVz+30g!c3LdagC?l&eDAy0kV*|GQCigm zn4`b6zRK|NVmAImk~eFNII6KUxMCd*-&_t@8q9<*4X#Nk<FO5H_DRnjfcpk#Bo`b5 z3s`NKR{PO6NE`Pskv74l>9nF8nU^gQyA?t_upwgm8dpBJXBkKI0(}|uhIdXcXcur= zo)?F(idGf(d@<U4PB9@@G1ONGFe8=GGZ>S@VT)jy&WSeED{<%zXAlFr^Gv~Wd-@tM zxCJ5&)bP?P)?OaVjoV&G!>~dxFiY7BEw2c$Uzkq~z_3FsF_wnS4Bj^q_66WvvjXru zk3PYWEWoK>4q6UlFHIu)aT6!xMTXsRQFOWxF$qhJap#eb9Y*mb7^fKsi~ZAVMf^+- zPe$=gnDyNNle5<}!?74!t5K(+Dk`jzAWdnFSoU*|%Dbypg{?_LE(@S=tuG72>AEok z90^HRNr3D)i~xj7eTBgig{(Epz+Bco4KOdl<ejNX0?5_yWk)2y^EF4_k0zb_Dm5U= z4v@Ev6WQl*c1051{0K@#J@p(o$LR<0xA{<7QPY$K5q}<m<y4~+GSS27HzeP)@LppA zm`4%Ad<!6CL=-5_@|Fsqi!o-vg6T7X;Sk-du&My&C&mO|04mk#nXPgiO|W>xO-cx8 z^YWYuV6-wOz-cl@TvA{l6sYdEyD)BTshNOD6!zQ6OKsc%#_Ur>*!G0gM1&42FV%`b zZPGrCr8C0n1ld9zW&V5Kj3XIK(>@x+Vb){GrnPBd^#;IjT3#pcObZHELENhwCK3a& zlK|T`0j!0EF!F`9Z#xrM3u7>7VQ6PvauUGaDDYqqY>`51<6uKu+E9G=5DE>RR~TuW zE-UVUl~;`skONwe3G#)OV2r>KkO?AyF0zI%G;V_{5F>+7PlHy-f`AciC|*GlAn)~A zxPkeM!w>^;&X~a!AWWMeUvYiGm;obTFe`%da;h0nwQ&$Cf{Gi~9QzQkGB#<7KwPUB z6Nsw^g&BC7FlLGX_H!B&z{W0OakbyXfJMd(pcYj7Opq@e@iJyW_0hpDf)tO+DF7&A zW=tb#dB02q2AJ9y6TopgVoT+5fV{UM1$~6Pr2=tUF=oI<I%WdH!SkxHssL12V*+ZV z^vp(@wKq~Cq{(wCfL_v=fE%eIiqjc7z*Jy&VQQo%sFBXgOKnadowZL9VaX6y6A{8I zFV%)XZNWZ`r7Obf1lc1$&aO{7MD`Ty18H8s4ml7WLjw1pSs9o*&UHL4H>-z4&LYY$ zb}$e?eR%i6+18)2^>dWH02Vzwc^L5IK^RXg!JH~eS->jJep3Wcp~eJu_andxbjxD7 z;ngo9_hUY>^EUH|rdTjDk#Wm>vP?!apXfv86Z_j@J`t&9KIx`LfeuC>?WDGWl_~;E z!;KlF^g<~XQ2<Sq0T4VQ$hU%oeI04P-TD;3+cgsH9N9FV^wO<VC)hNfIDma7Re9Mo zpY;Dx%Y0&g)~{RU6P1?DC(ipB<`Z2`lj4+dn)a~x(rT}&N0oxQ*{}501+1t`1%_3e z4zac>pp3`l4c*l?+liPh=~A1Zs9XC9CzQ7xV25@Swu<v8oIkNw4hz~dP(q;w4MORH zZh#{XZ92KNq;doG?Oj;fm@OQ&M>3kghQx}Ey3hGDFt(Us(JOUfahuJ)%w`i_gTfPV z+|S5uI91IcW30kz5}ExeHhp2*vo78apTNS%?F%uE@M;SKkMiP}J@)egUjv_2>dt9- zbxR<$8|)&Cd0qt2igyF}0`La#1u5KNGF??z=P7&jkK`>nEi02@FBIlqtP|W1Ma?nI z)lp^=A}Tf48Y{+6Vi+SM0_(mWk*&gNn-`q-+nK;4GK1MJGKw!qfdQmILC&y?bkSGq zVupZqJE*}Ga8`O@gRp1m>M()I7dUGtu!qAQ(WKOKf|v*4aHy)>Vi#GnxUNc0!-kYv zX3T)51Ql7Btay_zm~F@xBQO)%Mb<?NfCHNt#}`3rEk@q0h~+MN^ibSzYyz=&s$o7( zVweOb^;!9riE>W9>jH6o-k3mKn^d6sgopvFRg4)hGvg-67px@4444@+p<QHJP65y^ z;vlk%WSECGdpwL#yrgYs{7Aowzu7X~aj$zARj|MXDl)XLR%SDyEg>7G2tXxtoCdOl zWOBDj5Q+jZ>>Lu&0HeBy)k(We$j!vWL?qpA({j^Ye8}LOh`|c0yZF$8MGU6d#KgF^ z;BW%5jg?qpGtY+HQejwHHqTWNs|MTcBG@{^!BTs=SZ3KXe-C5olegTbGIi>p$5VAk zvCWvU?1?YB>)p>rF)Sc(v3v>6HlRl%qQx_`U&k(B4Q{{`0c<oeCb0YbV(HgVQQk?y z%k{*_H}Rp;Rb!Ua4F#(SV6tw>F@WT}4R(z0MT_6V7K|;X!_o;T$m<w#aiR^wrFi6t z#q?#oD@rD?=|nC=uvH9qU<XIIVXxN3NYFP}EV_mHx;!jbIRW<KO`16EA)*6788If{ z4Vg$>zqr`Qgf7Wk1_*ZHWE3`(g^T@KL+(DvdDu+SYu|nH9rlZS8azet)=HG1m?fKo zF77nK+PGT4=i$t+?6!}n)<Qs+`5u&qONcg`9edFI@9Am|YbOc}F4%^`(!(|sSA+xQ zyI<K&2cubgzl&vVb%+6+ITni<wxNKh$Krh$aj-izf$2vh&PW(>05#%p*x~^#o>Jv) zArL<7f91%_&3m9>R4UIQkNL2R@WPQfk}>M65g;H;qt1$fu~K74<e}FYyx*aBmYg*7 z@+%wluANo!4<=m=y%nT)5^1X-50e;GXMj%wp8-DYp;sz_hj86RfMo)f94166Kx42F zis(aYKHP?UO~{LP<zXC0$FCGr#nbuCKF1YTln`};H9Ds@NTwbXQja^SHdvxPF!LCa zHN>IaAOZ}a#4zUe86)tJ%yAOV@&!RRM&Kct!8|1Q;|smK0fa$8&KQz6DBt<%{9t;^ zN8o}uTmk1yjlpO5bDLV&Hww-=apWPnQ$f7BR73K*_;W~B6>k}mmmPOQ%)>yKkH9M; zaui#zvwVe}q>0CGMPMczl2_$101n9x!Xa64$JJT05^zU1XNmwCt}%i9@)_;c53Oxl z?%{Hp`iwCFTntMLTiVUSSUv)ei^$CEx3heOVI0@T2IrtfV_y!IWkm~sL$ZTtNZyCm zmk-GlFYh$rNBSxJ%`T<;kGBoU&VG4SEie`Eki2G!K%8dA3`Tji$p(sbMbrR1Izf36 z(ZK6z@Hs{z_S~4wxWkEv<lAjR#4t#E{WPvt>^3R4u&8RHuhs?6S%(vdy-pfe=N)d& z;e=u0ETTu}Fi7J}rFNTeLo0FwQ~cC%j=36^sjg(d_1nBOGQaPnN2fY<RR|^m+C<D# zo`=@agJkFe*RnUGgmEsi2OF>PZ~J&Y@E<cj{^$eqV>XJ`U>$ac_PM1D2yCApch9v3 zbo<*Js<k`R%BpsU_DhV;m>=)<nEb%}_y?FDC(py&_gGd#lfuZiP7p%<r_YM7#>_k) zf;W^NA8UGGR=i~hUSq4ls=FG`1GC~Ecvk$`&dnj1;<bHN{QGooAA;S{{Oe}L+z$8O zcxKFDa&u<f^PAzmv6g*V9Wo|d>X&P+?pgC;YTL!~PkKHq)tj41Vb+r8s(|OiktqV$ zqi#&#%=xew{oCfly-uyb*7>kqf>n~+0b286y8L&Z4_p1@e3)O^k=ge7u*+QYVU<w( zeE2z=^WiR*YZ~?;d5=&0Z=DZ!ljl;Itp6S7!}G{v`+S%<=8XbromL>vhkF=1wj>DH z7O*)VcB$OYd^ilX&*LImm}KIlv6%m$v*2a<&I7UajB)n%e>V$W6SJy#I+xj}(Z2H` zSlPb+Suhj--+vaYD%vsxFM9}XcnCK3A2SP9-2ZK6!7tzhw?{@6wJHt4s}Q0%{T%*g zPoet{@elmKSmmA<OTTJxKj17_L-5&W!hPg}iMl{_TtLsmK<5<^J1rEIiJ0vh6Tteg z!%aI}MQ&Sm5{KtrunE%P1h(!ShQ-3+76ihC*yidafV0efTPA6iR`%idbM8CILfU>m zclLJ9WVhb`6O~SlV?s`Y6uJtUo1j0^8inp%06PSP)dXy2p?wN{oj~4ghu$0aD`6M1 z*!V7ka5oILmxzcyP-o(?y^Y)6bjX%=$TdvNF)7Cn_Q)eEtm4$iSaGIG(S>Uh-h`fw z*BIj0I#vvOWH?@{OMddMFSqW6Rmpr$7OaW5?Marzk!di4Ws%lIeDeZNU3q<I4(<&k zX#w~=+!x?J4}2LAKkPuji2od%cWHD+F<?mRmK$(*w}Z~ZbT;p0Z=ies&thLFK&ZiB z0=dLaoBb*#Z#u*3fw27QSr<eo$&*^s3>QaWX@EY%Ex9Z`n9E7QV>1Hb5**tP!<Yd3 zmDq=MJ{d^SWsf<40oDiFHpuaES6X4iPB!0nZM!T>5kEwXwO8NMqZ@{KJ<4-X5L)ts zt1ba89(g0v=+!?Ib%tWiP*~k4Vh9C(xisir)gYH64aClxXuxuVnhCb-*6RW=X7e1V zEj(-4muFZEx*?zm15bWBy%X8X`w)JkeRruCI-&&sUDjNZ=RLHt<fE$T&`V#r1213W zO{qK$%vE0ecwu^i9|~aVI4jlWq%-YFtnZc)HuHF~uJIzjWB@|-?|z>uN`ob?xnZzQ z+br#JzrXub)onu9b-#TV`U!Uc2LIOk?MGDyzWGRZs$$a%6Y9Av#K$)xQZ(2~X8=+5 z{4rTb%^8>8!|Q*|y{gx}4=HcmtJ*qW@A}?Q4F{Y21}eDVj0=<+y?K>m+lj<6+>vE~ z1=uzLiLoFzQb8f$$3l29u4n!_&RIP4Zhg1krHt!BLcgk=zic|X`vgsiJCAw)373KZ z*&WC1o{={8hxjQ~gD7eITKAE&Q^O#EXs_yl53CUaUS7ZqIS6&}*1vWQI?3U#1$M9e zF}>(Mx7_)K!#K#YFZbSZ{a1dSLRhp3SIGEQg;pms8DSr7_BFiS0I6|v3NJeZfZ3V) z;jni%NP4&(A@ruc63HttU=yise2o_^%=yJ$5pJq(`rdVZ9`8{zpY}hEx2^k<J>Izo z$NDcBV&e?+$<o1=eOD+cxa)_VOR@BJ+zPNT0C()ydK@zpFP$j=13aStaXFS2`=hif znZf2ovWUNchip)wY}na#zqF|!IfBt{tS$FMVc$q1+fepY#1nLRtqwVoLiPj%M~Ck| zBHSAiu4`V(o`gVH0t|zY3wrA|>u~+li_v}IQZrrP2Q@(rTspGH8|-Xlp2PKhzOygd zeNm<S1!YH<Kl$bu#Ku9)ua#k!juw@&4`~`1R>G>w3KT@bpmdCV)Hox_Z`TOhkOJ`H z6t7DNcg11RYd~pYH$H+p{iG1gv5UuzeKWv$q4GT3meI{OfG<Frm*I~4{swXH-{2}B z+Y{Q*z6|&p+%veZ0p9?`kE&a?@qVT%?4rliPWR2@-guwz&qrxyD*L<EgbQoSOr08= zKAU$zLzIThUL{U>Wu4xwL5Wc|wmD_j;Nr1+ElA;QgZ2wk?tp9a!Ia9p?}7}FarV;b zGxj%>PW5;_g&V1uMXsgb8`;f%ni6ux`%+z4g2&x(k9z&>a1B>WN9e-TCVB1AXApQj zdlBNoT`s&Heb3}t#~xgSV_o%C+xAyjUmBc^a6C|z7IqUE<l1X~!HpW8ckf5Z521@v z)BblF!mv#{q#@j$We{%q@)|8l2|W~loXO`q->7*?pde)2AvOZR3mT_(h*9(G3>|L; zu!0ue#oUIw6Vq^+SbpJZs}s)<2ZZl_^=mzOaqqGGor@Q+>TxfN3X`J)e+8R0G#2GU z(o%L=yVtOI9zf`1JDV>dpEeC>>v|gAZ;?FYf{@(OnH_jHdc47Jh3ek!e_*S;VL0Qq z3|?(MvYhq*GRx#)H&C|tMo+^1c^C@W5TDl#i1K(I#;Iey>?m;uel~!}-1n7^5BT+` z!L@kgFO_ZdyFWvY37+w~HuZ+t?dj>-6k>?}6~GV|?(7;|KRw!Y$)Ci_As_jDwxPXX zy%AkQXfJ?=*0Yy+K8AJ2&G(R|PBpAA%%K6Ilbj{M`7mMkL4M~&FwhkbdLR=mc0pdk zHSzg7Ei)p94$l|xC0BLo+UgBm(xOhKrlA^}p~c&}2C@_uxcyK^_GetM3|CZ!@o=}a zwBkF86bsz@smPYHkG-o64SJ4mQVLfr;+TMhExZWeshzuR4=;YNDYh~mbaHf{&>Zq3 zS7Bp-ugVO!JuZH|Bf<p$x4JV88l<)}G#eINbr`9K(y(?E_WCXUEi@S$YQmJ)yEV|l zIR;@QQBUGsl`R$6;~zE-DLcX9w&hha9IaMxl#g~?w(oQep&}Gpe)`P4ldqi%TaM8b z!#g&<tPRq@&Kc#sU*(-&iaM@%(8+9;5)L!NOZE?I@-A7xL0E;_a;F})&56jJHriz~ zhsHGvd7Xh+&!H8~f<6NrJr!p-=pgtwk@vGM!@U7IdMs{=<%ZZ?mE<+hn%u3yKN<^v zo;&+Yo~F<KOvCO9ZB5Qzj_S%4lyPREk4<IjINJsm8P0xd-9zao+_p9w2m1&6nXvZ% zedc3*Zf}zP){YcoXm8pHn%xc79>#LzNG%4Jxv<>a3|%Q_-E<SA^a5PcjjNh;-i^mu z(3&k&np<M(-GeH`E}_r{h#^0{1iQWyUfJmqF&IO_mZS5cU7wGzNqnedeVDJjX)h0M zg8WH0OS41K_+6WD$>ip)^G{Y#ZmBh(6jhyagP8J-*rj9Q8XFWMDv>Wi5+2F`@xvw< zbi^{o975gl2a5rp?|TNMVI9(dAKERgHQc$gs^U7<3I1lxt7<4wu((LFIKSr)$`Yp6 zo>ngd;zu^{d67g<B8QDMRM^nnhZ}Q8Dv+^?27)+DIPzIz=pwf2g<eydaFGgVvl*K} z7}taOBp>DX%c~nQCD}8CaK13Vr8pgvFCKy!<rfkd<~!}3fm=Ehd-qek6D7Z`jzpDI zID?pXL0j53`{&PR6{=h<-<^zZ>Nq7jzt6e-y|hnwyxH>JPw5mU6i`=T&1c}$+vJu` z069Ihz`ywSSV*cfW#CuOARX#+EdDCKaP4}GgN-`e$WxUx8u3Xq{P55xr2HT_;-MV& zw~CW{>)D+IjT+yO7Rn%Jr|M47gsoX~l$CCRalLKh;tC3wMV&9yAiQvtjB6lF=mMaU z+JEg`VZJucR&w^+OM@*8&Y_bHhAm$%55q8XLOBR3p4taf%#IH~4ftp$n*Bfl;HD#7 z_t<JEc+3k87dvnBCxdvGzhzwofI<j2*W-dW$j8%%cC8QLYBet}9%Ff`QK%iF)f`#? zse-8p?ld2q2E=9Nn7+Vjg6^gZ_mN{d!|Bb)9N-+b7>?jB@?DEV*gQJ~)7fwbx5T<m zbOji*r>jR<ikKwPDci^XGJibtEcVP$o|2c=Brjl+mmoG&okBqx<d^Vsz@sgZN-sK& zGoGG>7A0LF^e=4_tj&=xx6>U$fpVh8I)XIe7axKwqHl@Obp*2=3TmE5{7_g6_~v|$ z^E%w)UO=}qv}<Lv%oh=U8sYF`7X|U=W$_Z}R;75yF0NC{XS$&qI0la_$V~c4s|2^| zmu=$}lDvkbthV0=it}0nZQ~X0{?fqxpYR^j1NOuG(ais_cbOi4t6CN-7~OY1f9R4) zF7Gwo(oOX$>(bDU&QQxam?H0O?YEd!f3^WZb>|R&69Zx&I)-UYoYbl&vu{pf&Q<;e zws4)Vl0^gEhx*|Lpc_tUv3IlOpkF@g1IxG?5Df)~;rUiIr@D$y_c=}|8upXT+wkYa z;79B;4ii+plt=^HXis$KV#EKU7|qlMocsP3rp@!B<lMWX*PQh6YCB*akUsR9D192z zd3ZYedBhVkvc}Vng=Yl?(psbwheBA&zIO{V{yL@z$u1y89rxl_EdK<sCXT=O&idJS z1W!+c^F@;&Uj(wSPGIVp@|T)8u4PXJ&(?csuw%f>&UbSXlwSHAD55C)4E{2}87AR{ zC6s!4>38W-mpgE1IJ|Ls-};F`-Y_{heJ^0~$T50Iscd6<c?dxVE7{k$Hkhj4uVgnO zUS}|6Wgni&W*|G2!FLAY;rZ;v@Y4PU%#*<ru@ss^_@JF=a4sJCpfIv+QL@L7H!itD zUM~N5!h~EJLs87$cPj@4P5Ko}9@TPo>Sly^4kao*yqtZB*n=5<>NtypdxH+oW#@t1 zzCJm1O68?D)i<JK^XmG;e8K>#9n{T~-8Sa@Hkf3u0}Ir_90(}ZOP|EVp;TW$ay&Sz z1nCt6PGQdagu&qtz#4!jxd9GM>*a!d(|ERE@IAqZc6deQu#9&LvY%6I$k51P@aG!^ z!=}t19ehvm&UNJoSwq_yoXiS#0}^c38?Ef;>jC4kU+(<UJD7`yEgdD`@U+3{0G4o} z1_~g@zP~vl5u2gpRu`6E0#@@KFBq&-UhI-xhBWFz<f}PZPkm??8W)46e)bqzs`#bj z;`gv8GXXT6;AUNpCCS4sK7(=&DNqEgFOO0LON#?}h*Z}mA%zujeAFjna)go}S0^3S zgd9@4n}`P`a3@A`4VwO2&@e8%r1g+E&sF<f4;&eF_!)ufwAmPgJbWH;hAVH@nEOBe z1&AC(4Fy^zAzGS*#Oh!6kq<I&DarAao9LsS$b^CmSG6&cG6d!=rDMq1FVAt5g=U-m zEo@%RF))!)bw832r!T_a=1+l!()u)KPngUpHFB=e8A&ihb%S5T>i{`rr&vQ^AC2UK z$S}wVFZ*f!HRqXaclUS8Eu9rZ0~~)dCJ?9d!s-IJZors8TyGd77>YNbdM}fJgK&r| zyZdd7Uf&?C$*Zq_imRD10qmeNCV+z(z?RC~l);iM)%mrfSb8FmL}c7shM6A2ES-Cj zeoTg?DVBS4S$#yEa`f>|xYMG+6#Ww>Gp@fNxv;KM*76ryd>|GFRLC0(XmT^adZ{r2 z3?`+o?8IH=1I6lzflBQ&V1BgBzpd9&UaDv>Z?X}lmoApjvDFWYYXjbth(Cq|6tdUc z)Jjvm8}UjCy7-Yk6o0e(;2z-;8AO}C9T!|TAAwBZR2JM297co6A}&A%c6}xNW3Vo! z6v^m1`H0dRcTVS_zsT7cZVk!fhiLHIPel018f|U^y^DFx&tUoRRqKQvcc5)80NetC zLih-H;bj&4t(2J%<?*OKTcv^vOi@`(ttyKj&1b5z@}8uZF{kx|PQWbqWS2fz>7L1X zB7OY!#q2L*W|J~KZplbL7%Y{ahQH_y>4OAhDH46}CY=Ok=Oms$=8Gy{o(T1!^y|;U z^<WX>sS9f6b@hW&;2M{2%afGoGcKQt3_;}SB}#7UiBDwR=qJSlnPT;xC|`lU9a#^e z$t&iA^n<D`*b%ASc|jSYYD%x1jqV=YsHDFHra03HZ%51g)>Z!K{Mp@e>?>1fkVCd} zU;^j_?t2S_Yy*E<`a^*|58i@cxqD|$T>U8`iMMoMV!;_VE-3>skyGg;I@_>MLv!4? zx>q5>)(+2mw>}lS)g+N``v@k?EjGolxh70^!(6xc(F;mn>F|31GE~K08T2wm>$#0C z<w7eQ^BCh6pdMmu3`%A)#8IacUYgIe6a?=Tc&or0>Jz`*gyZKnW<i?;Z4PiQ1V>?z z3r65&C=AO<p8IYPv+C1Po*Wd9^f?mS)iChn4?(Ri4So(zsMx{P<k07+OuP*>(tP&! z@t-XXe$`?-m?itZifA|DecwXp4M^%k@Fhuo23Vl}S)DZS4|qS;)Tvo=mA)edeE~Yf z+$EpQ{_s#s5~bQSz^{Q<v_^jU=paU;ux|G%3WxS1wWS}KrjnSyvM|t#?+R!rLahry zZNIu3Pc-+S*d~kRUC!#H8{{Zbd-`rq1=JD}%?hxD*?dgPW7O^8AIj-yck#~4vQg-f z@PaE4tmt^J6^so~LgV_4EceTAhj{7}?W_w(D-&3OIWrS1RBQmJL&g$a8vIs3S*oRz z4+`!7#!yU3Yx8P^kggW=_1WxRc!;Quwds<Q>g@e_&}>zHFy+a$c&g41LzW;@^OX*> z{y)e>i*@#)Jg^)Q!EE-dH#=@Tesn!E{IkD+$B(w3A1j?2h|--mLNEJRLk)Y=9?cAW zIy;A42EU3M*;bL4Lh0~Vago#y<10D*RS5GsEDTxpGI(NTYJLKR{E|uF>7_3M+id4s zCHX5+>G10H#UnvwFWSdd^zqkkVedg3>{50EIi;6A3v{B(bV9R9kOHlTotgfF5Y|R~ z=#$8EgHzE`qYspMhQ8xXWOf)%+8wt7I%M(i3L9ZOct`g2OW|%e$RHB{ZNA-rTsi?+ zWghX%4P&KeL)agQ0)QmUYf6cjo`9IV1%)IeU@5y)qz@w52iw{g?VZV`mtpdP#B3lj z8-VNCxcDKKsS{Se?#pgx;=^u86xLbxOTP9=n?ClQ=`O}gsCmS)p1rD#-4U|O_h0rX zA<iWegxsDN#Sg;%neHfgxO$=ZT$}{OT)xo-zmR_DjEB~;Pl5-^03`-%r<Mz(Oa9^w zN>xu-&e*oUtj*rb%7T$?$5rH*eMzSG<1+qkNgw0fET})y902)wpQE{7|Ly$$7Yia3 z=h^vZ4`GJR*nc|U@&T`hy_Zs{xkwR0xt9F}15oS%3(cRvA2rDJc;uAI{CuVn{a$t+ zKJ1A;S!nl8PNTVD675c$r5FuFxWpTM;BxWEgXImgy5ELmG=F3(XLv?|y@W1Twb=cl z*<Bn6U^f=nHCpT%*-IG+UR-hD@<<Sn=K)QB*Ry_@LbmN^SXZ|YZvQaAg;=Ntu_@hx zcN%ezA@JgnTc{#p?#DWUNm^AEO+?9~VooJ+KNl%5;mf@`Es$13^pW*&GbU~~CJ}p* z?Q>4RYt7ipEH^)Uj7wGJrf1rqIw=NRq2T}xyDd0?i1|6~>YBZ*+RKW(_@+nPF(+a* z6VX^2)?ULyXaNhW#^FULFH?s{d2ms%xoG6iAAPz2*<UwZx`ZFTjC4^rM@;q{9POS3 zKdPrhpHdGvSK(b`aAMInKTaHzTi}}9jq;;5jK5GjXwpJe2w>t5k(-1h&Y&BgW?<km zz-Q5RXIsjOrui6{snbv;+BXjq@&e!j*N94oE2zVAANUuKVA9E&CIY_={Lrz|PIkD$ z<o^`tmiI1rWTU_!)C*$vg+p+8HAO1bD_sbQZkG~GV~H|@^sE3~$8Q7qW&WIG*fu6# z2X=bJE0hjj_>x88LZ@f|c(gPC^%y0j2EAEgtth=;DQsKHH=E`+A`GzPa4#c(qs?zG zid3XwOPN>P!uA>#T)sh-;ZRKb<+&=5pK%FSJm_9Va)-BWB)53vIZitf(8kPRTpU=Y zT7_k?UI-6o6l)iV*(6jNxu8<U$!6*}+bvsleUu)a@>=f}IdlB%+S0#%P1j?he|<Vi zI`0hI`pcF*46?yRQR;}eGKPjjEGST@4o#mP?ZX&%Ij1OoFB&p*cp)BqSN79L1;R{6 z@jE7w=cDg_FA_QV<&Mh8hoeL!RC)t^@aqTHNeB+G$<w3#7h~1&&~)V;3~_Yu!<@dX z92ItP$6jp4+I!it;*k;s%THde<r)j%iYl_T5nDqRq%P`$tgire11<yhgs>31!SxU( z6V%IFT;q%S@au(t3|dh?{ogyuB%vpN8+@7&y7ngo!e-a5W?4M)P&sH-DO>*e%^rFB zXocN43#39GFguS!qdf>X1~>r09#?Xf2F3_aOwxOy`A+<4kGVV&2#&e2Ke}wOc%*-m zco2ynmt!1_1unQQ=U{dvQsWL_&%lW(<)ayflxg@6;U>njAKUaec4A6{k0le4Y?@S| zZf+a@v44mj!pfT8K*q=*na{6agWU|)<h-X^8l*)6J>TG@AT7;$eH*v`>4C+YQGJw@ zn|ow(!%D;%wa3*7ZiBiRwRbaWk4ntV{rBFg402#XTPq%cI)%)Krkjt(YUr&h8->U0 zQLkxLnLOXCYJdc6We~<+br>xM>_oE9q4x6D>YRIZJKl3JD&2Ijv-plzZziQBUoz;G zw5E;8q9;H3MA-dIUT1~o<2J*qUf+Ni(G}R+RRbs9>8hp5lIOStG0C4b-UCtFbFdSx z7J}SUo|f`G3`o;I#vk@mscR6uH86(5$T1%VmU)aIbNFs}G~wi$BMSTcd?lUJK*WK@ zh*k5HV+O<-e$@548)u(j90^t*%@BFHjbm2{JIu{lw6a>781F3Jde))}QoFsV#<S<5 z>^F;Q?8G}Q+<}SMp1m371&M7y$UtlTe&rmN#>Q~+u(xAwqic0&ORufMas<&^0l-Zv z_`5f}*Z|`sok|~{1RDe`FUV(oUO-ol6w5<!T3|s#hr9h%^aka-JPR+`&l62{{uvei z<nlWOQo5kk%?Q9Y&DW5LWN(u1@*EwK%A{gU*MtRd0Twq-U(*+tkDDs5rJE*D)=z`? zQl0cd@jVY`*ixMt!jp%bBBDghx07nk)qPT9pbFE5JP8o<YC~tsSGO&dGlb?p)WAAE zu_R3jQeMC)1`F{9F+3#>3?^gHr|AoY@SE2&zSQpFb&R8or1>alrAe73%qKzL1!(<6 zEie&5Pl8tDf?2lPX6|xMTs|U~$J2#Pd`XXJ;G@udPYYE?JlR4~>4oO^$?AR%&^S~8 z5VA@NSKsO2OD?$&g_!q?Ija*$2DAD{*D0%ZuaX+Y&gv5=Yk8qhOoXZd%W>x5-MGk_ zrd`!z@gwCGh18=J?I)1NKyLL;_|EUO5feyG_QQz({;IN{315<O81hF7^4I75Ma0mS ziQ!FX0OyZZTjuWzuTcK%UL`fp-}5vm2BDgm$g1%9u?lj9#h+B03_dnV?9;>ffi>O3 zamk;c2)Y%yE?Y$r5yMkyT_#dB9maM}Vz{s!U?|4+6~FGm6AZd#7HqL)O3Bexcf;{# zu^Vnc1R02tsXk!YMan?9!nN8j54SR5dEM+}nvr*hWm_cM?6WVI7xDnfj%e0A%P#ld zxBGrE)b+1$=~SY9aRK)b+v_{+b>6HTBCv`W)vM*cGkXJLl!@4Hq#}h23^R3{{noX2 zW#2sr#j$<;p3DE7x~C(!U2o@y!C-`UT0>XI{d}nJxcX@P#pI1hRJxh-!*EI{Y^(K+ zU%v3twj{*5p={h=M^PZZpl9PbD`5PGQtShObdiEO<Jf?T=(ig&OV>Igpmg1Y456d2 zdzg&5^^72AmwdLBmWc^?>lD-ch^BS&k4~cYvPXi?SzAF!r$-9yr~wbAlN7dcvD8jA zwsN~s4RAWMkj}dgD4llqTr{-u4<Y&mN&PW*ql;0vyx->{qNydiA}XdHaYO{(1vnJn zgECrE9F*%-ePLf!bp>CvqT>E%d}UWUdisP+(VNz|DT{LdA9hz}A%x5Y*TCscPT7Ox zzVn@&Mr;$XE_%+-a%8{yb6j!X8|+bjj~&C;^Fu%hmTxM>It`Oinvh71;k#HaBBM*? zJMfK<LUUy&qbt)bDyeWV6t$0)H!xWmD-Xg?_H3u}H#9G~{JjEU66#BcnJ2c-{q*fJ z5%;9>E=Wu1%UybR?OSXUA=>a#LjIQYKp&(?=?QN`2m8S8J-x*vFF~5~a0zC5Lt`lZ zQAYLa??4XR`7?eIIR)hOKD!l;iDvqjooFutl<Vo{pPh?xP+{;-l!mwEordHWCrO-I zbO+>n<dT~Quzzo0c*m6oAqNt;@OHWvZGr@Cs$Z5#rWd-jH{_w)VXdM&2Y}=a5VKuK zbGY_<sqx?lq_H14*>n2tJs(He752uTkINqb1zDXIsH)78w+%$QaGcOqB4Xju`cS6H z&_wpWpGA)H=jb=(0SP$WY+&qHVU+6R4jug)07lL^qv+lX->vGv@X`&=YU10t{ye$r zbcE|X7luv=!{u;wyX5os6D$b4vcXJEo#>>X#Gir1oXd5$fQSfHHTO=1Y2+SOP)nA^ z6x=p}WT0nLmfRJEj%lcy*LvetdN6GMMVm0TG&*;8q1S6^bQ4TfUX)jlV$m_;R&H#J zfI~^fKJ3$eAyaf+x!rTi+|j4>4IyE!uy9B}@p0tj8YJxQsQ8h^XovUFhcsT&mPYR@ zN0xiUYoI$%QNGjM8_sv{=_wxh7L($!J@*wvI=Nv$$@d9vII5RPhPok)EPMztJE_nq zjwAzJ!@ICsGFa)tnG&CR%ug<cZSk$4DH%c(!N?bkgYHT54bHy%l_raz>d5A0aqmSM zAntMb#w}$YMNIgvd!p-Va=_OPm42uM3rSe=LFNl;F1|H3Z@m+ER+$xsgO=H0bSY;O zS=`)?BX$%xw1J-l^8F-K9RqAR;PqVa$|aH3={Oq2FM^zDtiXdvV8=8;*=uZmF65u# zrTK82Q0A7D{=kHFOn>-<=%|90CfTF%pBn6Dr;fp34<;!|%3eN<C2>l_pBr!@dmsjs zHH3%8^1S^VPzJQV@j`4!?PjaSW)rDG2El4gwa98u_LM1TE}A4XU-V#RTe@Gyjf@v} zU`K)jTaVHd2R>FvEZx$LA?6^G4Y|Bi-coxzhOIhSkUW9?I{@M4Ve6l9c(g8DcI-R< zA+jzJ*fsnZfXk^6%IRLE0@cU)u_ORv1tM(rurZ}xVop8NOEpcr6DnLGz7I0b6rlxB z2!Rox1@xd7wu7`}VB>Na>KajRLPc>nZa@;HisGha)R&d-B~3Lk(ojIGsD>uw!%Nu2 zz*Hw;|8KC9`|t@SX?82PJvth<{?O#}TVKOb6C73W{ja-=t;eRt!&g%0hm*(;3G7!T z1b~|N-Vo?rq+@gj$Odj<b$>uULv>+aDEEe<$KY@;zx&o<s#uS9Kd+})e)oeyp|>0} zIO6v<R9EhQ4J7=o=|PKRJW<C<)TO=_zl@~7vUM`MXCF&Vv9>yW_J=-4%)#EVhwZG1 zI@ge(6-0pFHMkS|?mUjx%a9@1GV+1nP*=3WQHRGOEz-luRTCJ2hU3L-kO_&)(@bbd z6KPE8f75j;Uagcgz!E>OY-M!;DZvjZ+2NaDpa`hYv}<4<+vecn8)J5ai_y7nfXfa0 zW@sgj@}pa}!-6I|>~!c7%q;8^NCvQ~-=Dqh;SgulTJt-QJ&2x@IWd6y%_7(*M`0<& z2!{2BlUeejHXrD{l2N$A7kbzZctAhKJ}rS&m6or|Fx^Z0kO8ml+O&f4A?*dN`H1#H zi4F!b;-@PH`Gb_a)Kl>^T)pFW6LINyNM$^M_$S7rCk8`KeUf35iP7O?AR69<$(bK| z3^&%ajsR1k!mu+S;SLK5KD3_eT-Ly1s~TZrGOh?#xS$~Lu#X75hR%!E`O%XeW)KCd z;#4I0W$JYK82jY-)1FpCm?<z7CER7dQyPs$E6h8Pk#73XIOs1w2?^7|`ZaBpGJz@x zH}7(lP@b}R`oJOxIh5)I5X$q|g@<xHt6Kkl=qOg}I}sv#HPK|}Non_&e?q{QoWqc$ zv<0=ENcKkh#&Q%Lg2*RVN04hJBBoxnO>MT=No^iQ_a1F_q|}Fi5saX{47&-!ZonWg zG4#q^U<8e4IJun;BRgI=j&639{UWwM3g|Q}`fQJwx|kZ)hIzPw&78b=J`}VM%^!MD zj0)~q8v0EJN0-mR7U@!OTwBcG$?db^;>Su<Ti&^tdMD-LaD3s#QT($PcOv;D?K%Bf zs4qxvsm{MUise#!yKuLaTs<I_Cb<d9f*&5lyF`j8Ea&<u2<*aBB7)m!7iB@-M%e*R z`m+bcF(H3J{d7lg!}+a_;A>7od*xvZv4RA!*%4lbmG$30Gs(Cj#{Lc3dO5FHqw?h5 z-q$HUpFBnqBf6u-3iu&_V9mp<TSTrk`Bfbc>iwpozTA$yunMe?4xzt03QZ*RcSv>H ztgcB7ZZl|)!UTJhOXvlypxf1wU?MfRY)@CQ{NgRl)={-k=rRCCiqEyp&(-`h$uAeB zKlG-|9{sr&_kCy3?Gp9YR;+A;g`P%*>}A0|uKT^Pum8{;Se2QFHpRL9;o0Jm3#im2 zgR@a<L2v+ZaQNWhhTrZz-Nn*3kiz8f9r580WUt3QqvY@h(8)X(U#-ntG*JgWYfFQF ziROpm#m+FEsE4Fo_ss}bGh^2nxMWZ0M0pQ>vUz(5lT<25MVRDk?<9R4fv=E~4M6;c zFgk4%@4Vr3)(^K<)I*z5uP+Ur3Q?~o+#Rw#>ZgdQ&V8+fF}}NUPBL;wJo3rr!@#JC zUm>etKNM1!41N-8v*X%gv-Nz|)TtE~9ClhmCgR#3N-})*J}A9x8$s!PCb^Z5gV6k{ z3@3V6DZA@DX3&o;#o<tX0Jrpl^_-cK5ioZ*0o>9L$}Aj`I-`#3*W+*YSuFY|`b6z~ z2ndVlxJt*SnyvQ-l_vV2QvWpF)AAoMmfV68RO+w>AB+s)2Dor|GQSk350co6fSUMX zsn!X~mY~M9*lk_JAL^@MjoF=s2h*i8cM5U@1f3Ik?-#^&#lGme`y@E{%IE6b0>NLK z#b;y<0<s2Cg{|iXYb-3ad>QQs`_E0a&jm_>l2Czjm{adthe+UeO|NvDumdKf6f4nO zjZSXrh5wnh(xPqTZ74<9Mo9L&A-fV;3U$7YcG!Fm{^VKEBrn)sTrp=IY@alYAQ&&O z%K?0|?=X&J=e3x2VZG`30%0SL_8!PCC>u9@pToexD3yBJ8nT)E{v=C!>R3eu9^{Wl zy7{}M7o!+U2&U#0oPJ!v1f~xo8c8D<bVibw42<k}$w8==4J|b4Ft1h4VW^zL@wHGb zrB5~@jg{TlP_Tf4oks+7;5f^JsKYorIh<Tuffz^NY$e8Dq5IabI2?vW_V^kW-$l>i z@`6^iO@jL*rVqWLy`6khtL$&Y)T~rzC=8?3vxq@Br5(V~rZCt*7v2kLiNu8CXK7$O z+OJ+N00~CBI|bwA=$s%JBnQEG(q`hm0FiGVVArP<LIGnBWCSg@4=$ThtFb+=!rWXp zuH?vE=g)jBp2)ryDQ1#G%zto0t5~jWMT&Utk{nnNw-v2#y9k$FB-fy^2lKz)9l=oC ztr9RXzvw2)`vf^^`$o<@l$&ivx#_6C)c|eZ4rXqbxh}Qhj5Dr%SDDpCB1u3H)peiu zJflx*YuTsATbZ0dzSN!TPhPA?Dp0XRX*I`mPMpK-7x~M>Yb53mkc2x?ymPI!J0;vV z(CYQBMzOllC+hCGyaUo%#t-h~!EWQ^oicB)b;6c}@p!se{ySC1AluLaHdxF9<(`Z= zLGAb+nMao!ikMs9w{4FZ$r*5eS*|7SxZxmru7POBO=!4WLP9qeAIcEr8amSrb$c;& z!+oGpF~syb9_?vDh6?ZiMq)Mwm2)iGal<&60p2tYW~*Sf0%pr#)_~tt1O_f<potlJ z3LNYN9~+-K!S%%8hdY`yY~Ul`Xw={aUfGidDjSu-)5VVto^I(cUGd@XCWpU^O{&?~ z-#`^)1A|-xUoAa=_L}U|pp@1zcz>&jA*hfHeixrfeydP!uNtVV4^+Ng897}U{9f_S zL#K;(9{%2C-@~0#I<9eMeK~HVs(2?7$?Z1V_S^7SEq2S~_1We6tQ5<SL;WM?6_nI` zs~(pIXOTA6>x^LQ?kDPZ)V(xC=Tx1gR>4vXH>>;#g8*#}YkLC$VJfYvPEf_Azwd}T zaQ9kUO>fq6A1VW5m}<JedBs*9uHghV+u{L9;9UlXRuK0Z!r>bm&&-1r-QVoXd2oB; z(qIE9^R^(Uu^Lv5O_^N?GF!1Uu-Z_jTlFjMUru-a24{@k4h<RQ9`5tJ^}H9twvIs~ zy9H%{bm{xIM$lk=5c-VznL4H3^mh;!&ZWh{LKbdmp(S2Mt;9grL~ZGd;&9W7!PbWY zdCA=&ls|vC_cpnzXYdkaSC;F&Sl+(xn>e?Oarv!1=sn%3tiwledhJQHHt&*!5lfdC zP%8-wk^9hsXc3|=z7I_EjXbnjv6XSF94eBENqFx8iyp6iF3Tjp3uOkbxWjP~MFz>T zW<Ljr-vzLoqKm^p%V2`X(Gb~E0jIw6B1rD`OB`3#C$cZ#Z>Up8R=u_wMnhlX$Z|&a zDtis4`Whs{^#@_E?EPKh_&8-CzxyN%F$UPDsV(sTrb`@^iv(?Js;PvsndR4|g!5Nz z`{&QPU%hpH2dx4J9k@m2@Eis5;^!deIQV?YpJ-nZj<6?}9(z7$xcmdk&)iVlH?%Y` zfbuB-vVSEU4e(%qV*!o_$e|4WCMOB;Z)mDf0YId<#skMk_=Fm^9mgZLWgUB1^iarb zGK!ayL$^U#X0mL+4mb^qn&rRErGOLKCZBI~JfW?Y;Lgq*Ki<!TlP=toay7YgLmKy$ zC6_iZ+A!Cj8{m2KU(yUJhShH=9(h;x!XdOro&kRx0v#RvrB+9M3~|F@UdfEPAsIhL zf(X{Z2@%XAf^|f2AVhEz$=F~W25#=Mwjkwf@?&Y0Nifgm>0O3T;ShbaDgG`)JAsA( zsmFDLlEKqgYtQS*TtzE`o5u?poDvR#8<WaR4U&@W1MB9KNfv*U%ux3wpN&8N@d7$B z<oq;zY8}x@&5ss2uS?naO4;E?wi7+?=6XEO2ZcL7;(eI6YIo%tVu9djYsaCLV)=up zH}HYDabkU{^yPm({U`CsQgb&tfn^+0FTV4043O?D%Og6C>n^NB9mh_81vF`*JVe26 z8Tbo_0Eo{SAIxzMNpOEgj!V$eolnSd$|Br<EXT);cjfqg<2!OZGJY?h;_Ej~-9mV; z@h|3hxAD7kyp#CS;2Ho5<M0~P<oEG2!3coEMA_QqL@+$XS5By~ibq}p_hb;oII<E? zQQCo&*3Qv_9oXs)uaBQ2CfEy^+%%DW7)<1Rv8X&lhlS~z#2W2;=_=;Bl?;eNlX$Z| zZKlW@2TC3Gm|=fOaSOkVHk?YQdZOUg3E1D}w*vR}@EP#-@C)0*vx968pU3%s3mJcV zSjOLuFK@$p5r3{<ZQf7Q$sFOeQG&!z2y)dkyfbLv`wiT|hvTE+^7;JwPUV|AW`dJt zF)Bo@00Vixcyo1^hNE34bw8TVqk60jH??Uk)$_x!rpNSapCJaS73M`<8oM=WVFR5J z)~)%R=;D`glAy_@Mddira%}sM83)sV$Jlj9-FmCT*>OR%YsF`vA4&o8O=?-M8faMY z4wDL)%4LMkUPe78^#WhGj4@~&(gm<Vm#Nd`vzQ}<eJ<ENs62#yCEi^ft}i?LK%8#| zA5#snN8Pfr!ILcc)mFZ1MK5mdn?}rY$lokFof*`_Eb==8d>(K<xg_pGak}Kgtk9s; z=tcf$uZO!pzIQBaA>+V~Lgq7m-1^3;z!5g4{JbpRwTImFev2FoIO>-BL@;n9{iX<D z`=c=dY=IyKn}dl0QxiSD%DF!A50Kznzd^Gc?m?B8lr-qpP!PUuU-(3^+R-4WL1}vk z+@fJG23I3@$53Z!H=lNaHc5ad4Frr~3CwOib`yp>FGWOn)CH4*)wBBu%Dn_AN&!eL zic_Ce0bkKEV2S|V1~4YDo0rjzGr#43^j<C^5PdvNjH$*ePy=ixepQ%vF5CHLtWmVy zg2x@Z;%HD>LhYeKs$*pIE2txVXf50Ru0-G~p#<T=<tL^h;j*!z4s04NZ-5cjVAciF zOl(DjTVX>PHAv}&g&?8;>{SfFWp@y{>`pgSwLscUB6da+!+unORBl*&$0cg;*-0X< zX8<S^-{BD;1h7w7B<N-HuEh5}qqRzH#x;BRTf7%=PhMKFULbVd&v=3GZRbkL#=Z@{ zco>+u!o$GIxXT(ZHz=)jfs$SiA23A#LTt?7infYb<n2LqF~b!U;ECEq+o_H+GOVHy zV5^%zRT!3L<W}8pH(^+h5wScekWSdkxV)5wVVx3M6bZbB?~#lK3oY_jJ_tF;7d*{f zBzT~UmpHqbVNA#tn|LmwDjCD6LWZ{huZUH3l_0IH-AmsXJ!<>O0b4$hCw+1GpI=$= zU2wqJEX4p}#vwxms?Lj3I!AyfoXxjk;)03BaMuu8Q(A2}+_b$^?8R7h*2EbTjUil3 zaiJ$>P^{H5LBEEZzNHzUOHul9T{Y`1t<DS7)&%NZ;04)b!Xd3ailE#rVoD5alD)<V z{A#enr1BM~{dOkstHBKBSA+ZTg#;NuQWWHjSA*A?61+%3fMWs1HjEiu0cWKb8&2%p zY0d`VTxKx88eEW5&EV<a=pfI?o5z;-k{V{WpxA20YRkq9o{nl)k>Sx{d9JP6*?<u^ z*fSs%D{=||H-?5F7i|jJi~|e!Ih$Ei1n@qOF#&9*6IK^+Q>>UGfYTAi1aR3QG3;s= zF<`YZV+PF3s0s3gr&Np?Ff(R?%%tOT3IIC{Y7T<4;!D|M?|^t|Hj>sUUYw_tSNM^B z3V*ZHzst%L1r8CUtNDu;2D511P7px-PAcFxgjY=wz^y>W3}D$q8x<vhS}!pqRG>O0 zP&+6uCc<tl%tYkYm;m<GC_uF$P@9ySiCC+)PZ4nqwlM*`7_0!*d4bxT+)`m!dbe9c z#Hs<VYJ{x=ty?C9sH^!#^jIhb53J=i32XrH)uscs{ABhcfbmLLRlptAhA9FtD(RGG z01(4MwCk7@R9sJ8iXPk^d8fRV1u$9(O9fmZ-KGe{X^$}jhy>PbgSM)zv57lk<qKAM zY9bgi83r5r0i?-b_k_4qN#U>{P#qw^xm*BnVgD}5;+M~XpHVvEsH?n|2iU<)T>?*O ztxJ)V1#sYkF3)`g1npW(k@6yLCFP*w*v~jP4&p$v7*|O_G!p{Vae}4t7(hshC{D^G z9h15MbRR}|Z=aIV>7)qYsdTz@{xDt21?yz4@3bNg0pv>DRxi``V$f3J=1Ilo5IYKk zz=@bP?6zPxVR#`?#C9cag4h2*1M@9F!YG*NX+)_CSfnbZ2w;ncF##!YeaK%+i6e49 zN}QdyDRE=sSQlt1alK?jB~Bkw;_PpW5+_nii5tMe3dXK}0bgE+O^d+T^AO-BbAgmz zSk1-=Fmm(}ph%1nAl#ThdeCnBi9vr5@C9})C2o|&Qk`H^iE{w^#5OK^*;L~0eo{+` zv%i`><Vu`M%SxQ{{{56VZ9K%d&Vo#<`&FJbhptU3t#yGga+tzpC=3$Q#tblkwzO+2 zabgCWDtHDZZbrL5!h`Bt-j>6aaB{285+ufOr@M&dWru6n%YwY<fE~Lf>=GuSO^FMk zdLRe65@+sZl28c-P%Fy^nc<ca=Y0Fbmj$@n6Vo1owAL%%RN}hHNJ?CnzNp0UD|;UA zmV`hkA}Mh_3RK;29<+4^S3Ni@onoIB2%xA7%ayoJhg)^H6@qZ=6ZUx%*Gx1<B~EdH z5rZamCNlf;=}je0=}*%c)*CLL5UBN%N$PWKPB<iaOc7|m8yC=lL5UkDfX)nHC2qe7 z2kks*jKE49gIS52z!wr^07=nxi)Sct{q%(!B<(q11I7%lfV0vIh0vZy?Q8(f+S6+# zE|OEtfNF_@P>ECZY*FGm&92}u#=Irbn+|nRd`(4`)Z`0C+3eYX5jYr?xNbQGKqbyW zsKhDm*w+-|4tZ9BmAFjJsU{HD){O~-TMv`^vV3bkwIcVr0M<{82|xiPhD|mi2CO!3 z%z#SVj0y4;`vqHEeIg<=V<uGM7DNkxN}Pj8iF@g9ZYpsUFDY@|{75gv-|U%iM|&WJ zT`458`Kj|al{gnhx!W-aSZC-lMF7(WV+K;<x<siO)W*d=T@a|w3)JQa&^rj2n3#y% zif9n0s|rwE5vVQ8%|x73vriH6<drc29M)nYa6ZK0)*Vh5c0-C-?Q}W~&QRh$L_I3? zbsTBB%uXY%uBh**d8DuPs&6pBU3$WNh{RoTzbOLYFcowd5wD=o?z%5pJPk{r=G9`2 zLm7x6bjkba6UvbScuNij8xzL_d>2pH^n^VnB9<%mGHEXp1c{IDs7n^1txFD}I$8f= zBeA)cNkUKq8sMDoa3l>qXoC6<w$ZRzwAAQ^EX_J0a|CI9m29wK{p2r*o%Ken|L|rH zscHD;vdq$8COkLFbNOa*4f-M1o0qaTV%H>i7nn}#ZTbdj<DN~%X*#XwM&@Nu<dV4K zfFY6h7;udVOP*XtHXX)aE`dTX-?xBeXUy%(^WxxzLW~FGo*%Fb##$Y`L_@TJ*JkLj z`ir}ARpP-m9oB+<5*4T8z#2W_3_)&$wV@UpFcA)JnF>!kVc>=4Zw_h#!Mq*LRp^K= z0t7Fk@PYvQ<umND({Wlfw1~ts>_V@3{nQvP7gYdm9MLBjk_9;R%fXL`w2tWp;)J}& zx;rj!TQ;nx#<YGNJ}*J^41`7PX>?Qi)V&`!K|Q?zHq7$8@~y4Tz#1yVyecZJkswKF zjac^RN9A2rtHRc#9hU`AxYm^gP$|X?c;U~gl;`q>!w5jQ)K3^JQOH`849sTj(*QFg zDAi0AnwCIrM_qPA0=xHg7LU9i%{li~YCx17Aa55ZviIU(za+Z(5fqSm={c~B(+}cr z^P#k(rYU8T2T;m#s?iCV=#fdNEC5+CCIAaHG0eCCLPkVEPcLt&0J;}r2D%B!1cpO& zv%;zZn41_Ah;<VZ2yB(>Xe7lWVSSzmX!G)%3Sgu%Ccud@Mq5%~A{40Zx4ST2(p)nE z6R5a4AuqLY2N<(Y5n<gERud6(etD@@1ZtD^X)K))Rwu|VdOXVf_ja&oEn|2>m?m); z_E@rMZCY5p0f5^G)(LDXhq6@=_v(g;#6avMz{xKFYhWRae8EC*X98<r3<eDh?W{{q z0z8Y416Kckd*1>dXI19?PLe_?DB+@ZS;VP;6c9Sod%<r>TT&XSB{ZQ{ety5{WHM<6 zlFTqOX;VZU#A;&=8!y$ab$8=swTrq2C2qZ-gNsskR|t6Px}f>Mk4=Hqh$vk}`~CmV z^Sm?jzB5TDX>ot+*Gb;<od3C>^PY2_b9v5r5%3%O189ltaGS7&-PHduKj{O<ql^@L zMiRH79S0SW$Z7r^l5A`#iQ^sPYE7aMFc3t5amW~SX!uI5LX7mnF&ajMEC}2M+tfdb zB%r?EI|Mr<VUPMDg5f?zO0I&zpc;rP2r?^D!U*V12Z6(4HKK&W8uh|Kpu~;!9CaZ? z2Vyxj5z;@hQ;`rHeHNrdrwE;DA_OOE6bb1cX&}PKxYW?lT184QB-kBN1963mh7>8` z&{4g;oLpM0jPSgUdf|S^CRrX(f@zH+ArLko!X0NIZf`>q^bz80KnTuHD^kKn+NlQg z2ge5m?G}RJt0E!NNa>i3biA~Y63|Q>4+udosYr-6Qi%w+_R#{%1Zpox8mSscBOMke zBm0C545>>o#43iM5ivyN6(_s%LPqwhOGN{tg6<_5zvWeIpE7<JANVl(!ZX+*o55`~ z;CMv`1Nd4hcJkyZWcHBA*;*2;4G4N*{FztE6>462u-l*E_svmhWhR13q0<IIyKqC5 z-W-BZWD=u;n@!@zJ@>I$k&r8w!^0>>m8b8>>+To96bmP6?OQmJ$rTou7;s_X<NyQW z!ii{P;Y8he7EZ*duy8V$;|X*xLi9+g-kgHM2`YP4VkcMKk!CYJVA!YL*D4}`zXl<4 z`X51uh%m1cq5{^1g_HR-#D}>-iVG*|L0#gIIh_<2PWGHzSU6F4I<l6p7d?x{CZ(kd zCz|)Ng_A}O=>{O#I4}@o@eS;rFR#bEj%<>I>eUcBMBl6?LiFk$lyRpRqO<a?nn+;y z%r3&TA-axzTw!lPSd*4v&Kq)MT-3_BRMqx34q;Dw4~C!^1o1Pl7#Tq1tz<N=W27B< zyzfJ&vbuA_9K#{0NJ<9u$QS(L4QT$9D7tSPn_dH2SQH_EAfNPxb_~J&pi%#BnLGCL z5+~}$FNGX8xZ#Avr2gfjq7)2*z#v5<c2RH;q73pWK8iF@YLnlmKj`s<c0)-k47YcI z>aaTxydO9ZykCafHjUQ1{54PG54;`OmX2^h@8KViL(OY3^Wr<P?+g#Pcg8T2sD=$v z;4)qX_ap*`<d7GLMEP+@4VJ6*CPgI5kLgWUM4F*PEl`45Acs)ORz&LQs{h{E>e$d+ zMM|!MwW9{&3hN_^lptieSVx&*P^|RU9e(9b1I7m<tloQ8M8;ScCYfp9y2JceYON72 zB1n<hr}p%^9t3t+TrmO-gexKwVrGPF?VyDJa&R%NM!WZG*g}*M=hZ|=zkLBziB11@ z>8&r?%=U?EJ$mH*$Y}paP9n1#Y7OaGL%Tti-ygH@H;(j)<B>fYyAozb1L2Cupja8< ziimoV6_K^?L-h)>RcU>bvGzDBQUActppMU{{VUP7-3g{<-#sih!N#U*Acv*h=_x!6 z2sKV6vIa6P_PQ8|VFD4p{wRh@z|+NWcTVm4#7+%yeo|eEVZWZg-et$IJ*%-;DN=v? zgxC_T8upLu*HDDuTq+T^*o2Ja#cn{5T@i*u31Vo(zajz&8Zt|{l$2#Q{*jl1qx$*j zX62{SA@%D5Cf4*MTy)o0;<C{Z_BQyIfgI)9A)S!!Q7qTkh3NRLK~01}&_t0C9)$iI zyeO3<;U_^PAk<}XG$KT6>R~kz0*NuLIZ9A-Zp8}5ALJ`}-bF*X^<e@m_j%l3;~uHD z#A5Q2s)r;Wgige!>Ao?1-3}+J?3Rd;dPai2L94}FK?6ZWO3cYfvltpt4|a4(uU12t z4dPvorD6qELs_o=#O~r>ia;5b;%Hc4xwsxc@0l=0i`PK=iywyQ8RSVI+-pl#0~)5D zf8AANx{zhX-Z);C-U~(D_;c9h1;@8kXqm4>d1wit9M;yZMEAe4{?Iz*#k^y3Hs1im zQ1nHpr;)YV7Yfl%qO{+|Hn-X<Dd)u!7{pKzrt;z&z;WIHj)R4t>0MZP2Lx=%X2F$q z>_Z-1whN9W7@4Cnx{NUrVY_oRD@ybeDR<<tk|(TJGdLyd9b!nrdZ`;9PB46zi)t;y zwjR&B$tOcWc@&K|Ko>?1l$ayy)sca%0AG)?w;PD<pqbr0<jU{$u~gm9l&Yw+`xSfC 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 diff --git a/crawler/crawler.h b/crawler/crawler.h index 3ec2cad..4de20d1 100644 --- a/crawler/crawler.h +++ b/crawler/crawler.h @@ -4,7 +4,7 @@ #include "spider.h" #include<string> #include "../ProducerConsumerQueue.h" -#include "CrawlerStatistics.h" +//#include "CrawlerStatistics.h" /* * */ @@ -28,7 +28,7 @@ private: vector<Spider*> spiders; ProducerConsumerQueue<string> *urlFrontier; ProducerConsumerQueue<int> *fileQueue; - CrawlerStatistics housekeeper; + //CrawlerStatistics housekeeper; string mode; }; diff --git a/crawler/spider.cpp b/crawler/spider.cpp index cd6ecae..4bf8c7f 100644 --- a/crawler/spider.cpp +++ b/crawler/spider.cpp @@ -7,6 +7,10 @@ #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> +#include "../util/util.h" + + + string Spider::getUrl() { @@ -19,14 +23,23 @@ void Spider::FuncToRun() std::cout << "Spider is crawling" << endl; bool cond = true; + while( cond ) { + string currentUrl = getUrl(); - if ( request( currentUrl ) ) + char * fileMap; + if ( request( currentUrl , fileMap ) ) { // markURLSeen( currentUrl ); - // writeHTMLtoDisk( ); - // addHTMLToQueue( ); + string HARDCODEDLOCATION = "../crawlerOutput/" + currentUrl; + int fd = writeFileToDisk(fileMap , HARDCODEDLOCATION ); + //Write to disk successful + if( fd !=-1 ) + { + addFDToQueue( fd ); + + } cond = false; } else @@ -37,50 +50,28 @@ void Spider::FuncToRun() } -bool Spider::request( string url ) +bool Spider::request( string url , char* fileMap) { - char buf[100]; if ( this->mode == "local" ) - { - ifstream inFile; - string in; - inFile.open(url); - if ( !inFile ) - { - cout << "Unable to open file"; - exit(1); // terminate with error//// - } - int i = 0; - while (i < 100 && inFile >> buf[i]) { - i++; + fileMap = getFileMap( url ); + if (fileMap != nullptr ) + return true; } - - inFile.close(); - int file = writeFileToDisk(buf, 100); - fileQueue->Push(file); - return true; - } return false; } -int Spider::writeFileToDisk( char * fileContents, size_t fileSize) +int Spider::writeFileToDisk( char * fileContents , string locationOnDisk) { - int fd = creat("/Users/benbergkamp/Desktop/398/eecs398-search/test.txt", S_IRWXU); - ssize_t bytes_written = 0; - if(fd != -1) - { - bytes_written = write(fd, fileContents, fileSize); - } else - { - cout << "ERROR CREATING FILE\n"; - } - if(bytes_written != 100) - { - cout << "ERROR: Only " << bytes_written << " bytes written\n"; - } - return fd; + return writeToNewFileToLocation( fileContents, locationOnDisk ); + +} + + +void Spider::addFDToQueue( int fileDescriptor ) +{ + fileQueue->Push( fileDescriptor ); } \ No newline at end of file diff --git a/crawler/spider.h b/crawler/spider.h index 4490a2d..bbfd42b 100644 --- a/crawler/spider.h +++ b/crawler/spider.h @@ -26,13 +26,13 @@ public: //Makes request to given url // if successful, writes file to disk, stores location to memeber value // else return false and error information, retry if necessary - bool request( string url ); + bool request( string url , char* fileMap); //Where to write to disk? What type of data are we reading in? - int writeFileToDisk(char * fileContents, size_t fileSize ); + int writeFileToDisk( char * fileContents , string locationOnDisk); //Adds location - void addHTMLToQueue(); + void addFDToQueue( int fileDescriptor ); void markURLSeen( string URL ); diff --git a/crawlerOutput/example.txt b/crawlerOutput/example.txt new file mode 100644 index 0000000..de2e0e3 --- /dev/null +++ b/crawlerOutput/example.txt @@ -0,0 +1,64 @@ +<!DOCTYPE +html> +<html> +<head> +<!-- +HTML +Codes +by +Quackit.com +--> +<title> +Food +store +is +here</title> +<meta +name="viewport" +content="width=device-width, +initial-scale=1"> +<meta +name="keywords" +content="store +food +dinner +lunch"> +<meta +name="description" +content="The +food +store +sells +cat +food +for +dinner, +lunch, +and +breakfast."> +<style> +body +{background-color:#ffffff;background-repeat:no-repeat;background-position:top +left;background-attachment:fixed;} +h1{font-family:Arial, +sans-serif;color:#000000;background-color:#ffffff;} +p +{font-family:Georgia, +serif;font-size:14px;font-style:normal;font-weight:normal;color:#000000;background-color:#ffffff;} +</style> +</head> +<body> +<h1>COme +shop +Come +shop +at +our +Store</h1> +<p>Please +come +to +our +store!</p> +</body> +</html> diff --git a/main.cpp b/main.cpp index a7b2f0a..1ef7b1b 100644 --- a/main.cpp +++ b/main.cpp @@ -13,6 +13,7 @@ #include <string> #include "ProducerConsumerQueue.h" #include "crawler/spider.h" +//#include "crawler/CrawlerStatistics.h" #define PATH_TO_BLACKLIST = '/bin/blacklist.txt' diff --git a/util/util.h b/util/util.h new file mode 100644 index 0000000..42910c9 --- /dev/null +++ b/util/util.h @@ -0,0 +1,89 @@ +// +// Created by Jake Close on 2/6/18. +// + +#pragma once + +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/mman.h> +#include <fcntl.h> +#include <unistd.h> +#include <stdlib.h> +#include <iostream> +using namespace std; + + +size_t FileSize( int f ) +{ + struct stat fileInfo; + fstat( f, &fileInfo ); + return fileInfo.st_size; +} + + + +/* + * Takes filename as input, maps file into character pointer + * If cannot open file, returns a nullptr + * + * + */ + +char * getFileMap( string fileName ) +{ + int f = open( fileName.c_str() , O_RDONLY ); + if ( f != -1 ) + { + size_t fileSize = FileSize(f); + char *map = (char *) mmap(nullptr, fileSize, PROT_READ, MAP_PRIVATE, f, 0); + if ( map != MAP_FAILED ){ + return map; + } + } + return nullptr; +} +/* + * Takes integer file descriptor, returns char* map of file + * + */ + +char * getFileMap( int fileDescriptor ) +{ + if ( fileDescriptor != -1 ) + { + size_t fileSize = FileSize(fileDescriptor); + char *map = (char *) mmap(nullptr, fileSize, PROT_READ, MAP_PRIVATE, fileDescriptor, 0); + if ( map != MAP_FAILED ){ + return map; + } + } + return nullptr; +} + + +/* + * + * Takes a point to start of a file and string of a location on disk + * writes filemap to disk at location, and returns the file descriptor to the new file + */ + + +int writeToNewFileToLocation( char * fileContents , string locationOnDisk) +{ + int fileSize = strlen( fileContents ); + + int fd = creat( locationOnDisk.c_str() , S_IRWXU ); + ssize_t bytes_written = 0; + if( fd != -1 ) + bytes_written = write( fd, fileContents, fileSize ); + else + cout << "ERROR CREATING FILE\n"; + + if( bytes_written != fileSize ) + cout << "ERROR: Only " << bytes_written << " bytes written\n"; + + + return fd; + +} \ No newline at end of file -- GitLab