From 86e2dae4c6a6fc48a6c06e1b00e3c81f2d7c7680 Mon Sep 17 00:00:00 2001 From: noah Date: Wed, 9 Mar 2022 15:27:14 -0600 Subject: [PATCH] Code cleanup --- .../HLlib.dir/src/HiddenLines.cpp.o | Bin 42040 -> 29000 bytes build/CMakeFiles/main.dir/src/main.cpp.o | Bin 5888 -> 4704 bytes build/libHLlib.a | Bin 44210 -> 30288 bytes build/main | Bin 48600 -> 39160 bytes src/HiddenLines.cpp | 102 +++++------------- src/HiddenLines.h | 9 -- 6 files changed, 28 insertions(+), 83 deletions(-) diff --git a/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o b/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o index 446f9348e0804d8e4d067405b264be0dd64cb8f9..928d673e32b3756b30695e1e022a073fe31dae2f 100644 GIT binary patch literal 29000 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 HW!L{-Ct6x( literal 42040 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

#fCm~#4RGJDOT!IYtaoDlODpOWgz+bXdSGa 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 diff --git a/build/main b/build/main index 2df4b949fd27a547eba0d2d673f1c2f0c0d7829c..b722624f61f12b783b6b2619b970ad1a239fc12d 100755 GIT binary patch literal 39160 zcmeHw3wTu3wf~tsAo9pe6g5S}0S8P(LIME^4^1F}GdRIW0&*3YB$EjQlT1ub!b8EK zNi5?yO1)mC*7j1b^;&DM__!1))$kD1+uKH^R`C@r;u(V#Q4kTG|8MQbQr`;MGZeqeHN;eVFCFCS^5o&7#ArY>L z4Q)c7GL-rx8R?!Z^l1(YIh$y^nDea^`OIOl$R|T8gRb%qwVJ=ByfTq5tD5sMhYr!u zGL+?AhkR01Jm=|ug*ugaqP#@ya9q?|hSJW))z?)|${$x>Gq%32v32Fxm6Iopos^%` z;>#J&3MRS8l&BeJ&z-L%`IRoh$@~_@!eC(@N|JzOI?)cnO~q6G$a$|7JW}_^%JV$A z5AIWjJW}%PkA6usR1eBSG;|S;Zh4WpPsUB{$;z^As2rvA^KTfku5wSxfEuOHQfOC- zmBJZ?O2$S|tXFdVgGOxlUasOFoTB(=jI<~t?K9KB)G{)~pGUl=;HGOT50q&loR07+ z+*jkCfx8%Y32qhl9NgF7rptwUF79h_Ux&K__X6D4<6emSA8_A*dlBx%xR>Cr!cCWl z2Z|SAE$*ebo45Cya_QQx8!vl*LUQSj0WU0_tNq}@?Y{e8dUx1B|IFgMuPV_0@%)X0 zW-dQx=Idi_`q7EKkKgs9O6}+K2Ti$u;E0#sDmuLIvAZw6aP(W>{PF$|Zq9l7HwPAY z-ul5sZ7+?v>EeM8Zz{aUv%Y7^^4lJ`HT|n&uY5Xe@z$PIT{k}YNliuR>azJy*L#k= zdGo?yzxne$w?2N&pSyZ}pXN=de(RH)PQHEr$Z5;}@bZ5=yRdZc@49D{{P9rH)x~$O zAK{xZd&)N_uNyMwuJ;dadj6k>HEk7DiW~eJ8uQ#ZDZBc|$JfCa;?e&y0lp9h7LPs! zh8qw6^91zoK*o6V)d}ctNq}!fy++2VZ%zXF$!6k}dn^I{Qwj8TEPTNCJKLV|X=DFOa)0{wiEfPPW}dG;m1PfJkWZ3*xJ4ASx1>yZTfwdPxFW! zxB03~Q0~YC`q`JDzHcS42dE)#xmP5>mn7hSGumZ@a)FX1)=_p*k;cK)F6qj*GdNJwWvH@2;01eSypU(4iO)*G zf3*q!EEWc&hxwB@hp(Yuy6yqJJr4inqF&2|{Jor9StIZ+!C$CTSu6BeCh!*s`jyZp z)ob7PIRfUvu6}~g6hSY?il0Cp(%Vx)pJMx=d@AboE-fl>Z59o1T-3{~e@);A&F1v4 zh=x2a+C|~ZDCMNk^N*PQrz_vf=k)yr{z-sjZ!ZdaE91#Z0qRR~R?|WTmz47pQLfnz zGf;8jlPT8mewGVsBB6(Kg&t5%b`6K#i2o#-_;6hzo{KievFKSe?#b5 z;@^cl8MJz={yM_Gs3HdJ){O=QbmixZZg3(n%&NP#p7l1#>d6E`(xTf$xc}LKf z6>!9_0MnI(a!3ywg&yn-t0+%_581i7UMlRI_?!FD2El)rkVp2%!J_}x3VgcYf4^v# zEED}Eq312-oX{!skcs|5a;l=;{eq9;b}w!4HM(20s%FjYR@}~tQg@BF*}Jr^Me{aS zl+LX8HF_(ms_VTxEq=-kbIY|!^*&Eky|*~8q)l<(P_B*7b-T4?&At`xdT--WZJFEK z-0W*EyT*f5kQY=}wbXgsb-os-r(Da+^DL`sc5BU5bs7*QB@;dM-m2yjq>OhveJylr zRT_l2p<)4$`6731i`ML|YKY5%moph9xIyhL9?t};sV{45U`f9EmXbPRSaIeI%e8!O zV@-YB^5%if1TGhZWnxvhD{|c><&&UT(nx`OUN!3I^}6dCTf9(sRb!32*;`#zU)AXG zR+oXnhSq|q z8(Zs2_dLj*K$7x&clktjMV`B)1W~H`HE5ObZfYr*Gqnrky0Wgt?Q8Njims3cX1ps@ zS3%G9=qczUsA-kE8a=Ji?Wxi{%b4JKlZ>REsuqoU6Xc2NcP6*vGgNIp69al7+hINF zTFBJ^+oG<&a;3Y;+uY)7gaK%)+-8Mkyh}B%Amb$ce#hVkDm3qR z5aqLa(wGsam%=_dlc?FSZaI?=&Sz*lebfm$L!74O-I4|!5BikmEt%KAd*t}&c;jo; z+`d|Ob5-L~ue-K^#+%iw`3-|#T_dvd!3Y(MGbr-f{k3wj;i9IlrAZEu7|%VBhZWy9 zVHqW4O~<+_27Y5l?GviTD}_xY>-@$Qb;v!>+kz2R^!(a7>UFEVN`tqd!PiD;9L{;f zRNPQi*C+^~#g%oMf?lTiYLvE?#-`@FMy;0ed74&%2or0g&rQ>>R_CK!m?}LtxjoBn za@SVX)hl4zqSbiDjG=SBNdz`TV@o|Kk)S-ndpMpCIC3U(=DRSGVitl)x}E4@8paAI zV9d_>_1+fr1&UX(pky+d-rJ1%wuDS`f@I>R>5Nf8*ApAO%}c#lGPHR;ny* zR?YZhFs)$;44Tw}!s=?GW5Rg%0wy4vhGV4^tBJWRUjgN7smD-TGOv#t!>;mpn>2w% z;RRG3nwVO6A=mJ72`kIxC`QOxvT=_~o5!Wi8;{Nblfh62)g-Pyt8d;UkFOEN)9TUO z>h(>{zG_*&xJtuZMKda!q~wr3XWli`#3dzda|UD}{LpN=zs%xex3u_y>0+nq>En8h8nv0854~vb8 zBdtVKGOm4~^51P6ywWDi$n~@~H)BX4^N*^168bx=h1;pY;;_upeD0MnW?B@&IR4u4 zzXVIh3U}G8x-zWGv05yj>@LF?N4jcLXd+8`$3IZjf{UrH21DXD<^DgC3k zG)8-lGC&!KSh6xGns+c_1PuT-1%JfVf_?BHhQ(7QfuUI6AJLrtk5j~_i^cK-BI5Qf z&PL?9VcFe_@xH?i$XtypJ%|! z^D@GVBRiHV&yNUS$uRs!o}UuF$birEa{#6V8|%C5ejX=0w|EX`8SwIqlTvaGczKpa z_{j!5l`XGAKaUZAc}7JT)la|FGx*H_{FM25jPTMX2(!>nznoSar7^hD&jQ9ro*fcq znE{U@uISZdz@rO9uayS8JTs$2zX4DELtg9sJVtWLvs=P!@Y64s^E@79zZ?A=Ao?LZ z%6>QbIY9XHd6fM=>gNFAV6IoemIY^-@|?m5dIP#WxvP$ z93Z@%NBQqM9uR(n0iR~Tk2K(I2K=Q4e5L{KFyQS5{3ruH%YYwkz~>t9ml^Pr4frer zzR-ZrHsDnQ{&EAp%zz(bz%Ml5uQ1>%4fq@bewhJ3&VX++;PVXll?MEH1Kw}Iiy@n( zt~cQG4fJQDXEktE17|gGRs&}>a8?6nHE>n~XEpHug9bjg4nLu`A4*e$sc+(aUA41I zONw->?Yq-HvPNmlPsK@G?pZ_e5}w+E1{B;BE%LN-%Ay!(9x1nPA#V zhc`2LC&4KMZ({H^f@$j<-oW6e2&OG_*w5g{2&QdNxQW3J5lma;a3zBuAegqs;W7r_ zLojWL!-WjKgJ3#J3Fk8S`vean*v{b91k;u{Y-4aU!L$_)D-2#vu$AD$-vTkJnqb-z zhkF=&1Hp9k67FX3Jc4O!9PVQ99D->}9Nx^}83Yd@coT!C5KLR(@CF8tCz!UrVLyW} zCz!Up;U)%;B$&3k;YtP%C78Cj;W7rFOE7J1!-WhUKrn4-!?_GjBAB+aVLO9Q%mqwa z*szVkM+l~^Ygl3M#{|=sHGKFRs{aQB+X?Pr@P2|v5Zuk+R|%%AX}F8QFB42#((q;m z?t{ z6(xCHc`vD<>H9$wIsYGBit>DPgQ8cLl*LBVnDd~~fg5K-4UC(>iR z#7}g)L``C&RvQ8aC4xa(q^H(;NpW9(lFvUq z6>X}tPMEK@Pd{=EqH5qnZLk`gzNM5z>;X#mpzZdgzKudGi+Ai4#g2t}U216JAD~J#ba4kbtAY3QVbGBp*sFJ(r0^sCv2>2t2o6o$ zM${lX%98i$iy8V>hg}UE)ITQ1p<5k=YN&!^T(E28dO+lQUgWw=U;0ra_n5K@&QTNiQrl@;o(`ZH^J7}|ZJWbHn9y9{3+th*=tUvf6 zp#q=kzeQnc0IVmdftEDYa#Ri6WOD{xjx=X*nnNx4N`svqR|7{rxB3)oMiK(mX3dym zL!``Z&6sCb+jr)w?OnNQ!H(AbYN)7N%|5Q~&{NcHzkG~c161o1JJoHx^oUg*(XEDx z3zO9yJt<_6RBYgl8y6QX+NE}WvMN>IeKY7wqN#-i(s78K2A6<&8}Bd`WL z>Ts+F0;Uukr%v^ySvxjiu5bpvafL=biC*jqP5c#t@JZ3oHhn$D4r;E-Bi4*!N17|} z{x+2ogA;8|{C^apihc;=*%7M^YN)m53|3)2tCO^`wW_u8YoIF_`UFtZw~?x0VRKOi zy54itfX_nq-da{f5xtg=gu$0nda%N=j8#gX1-18XR)dfN%5XHP1$(u0vb82P)MU}G z1P4kiq{K2LT07|f8Hk{a5nKR*FuiI?rP%b>Fg&6WL({LK@|~Iigsm@b<2vGh1Tbe5qZ{e)b1+X!r3!L=m&@e^-X<0WA>i@6p~$mi2eXzXR!Zs z1Hck+q%1eEr}r6>cr*AU)X{mw#;7B%K(3!-l(YSXTxUT8EaEP3hP^IUtl5hkWVv3O zHM_=PN36ka&8~Okay8PdgEn5v`?bL^zMLfu<26i#WCowZE+%H7QLT48f?jOx+{F4a z>Q}Ut)*`OJXQV=vH~00BHN2J&2H|6v1=S!o+rE+ITy@=UvTW)IMT?7;6uEclm8eCG z>2HN;tATG~tp8Eq^1AjGJJ5PaMI@I+U^!Vd%1)-ALc*(@AnqWc?oFX7l;uy85jK3N zp$8qCC?&Mru?ZHZKXwfAhf=SZL9%o(oVvHeu@Z97wWq`3rzpa86jIuHkw)+CKd%#9PP(PYPWTEwWgE=@*Ql+KGnk~T<^YpiBXT;iZKYF?D1BY;k`g>^l5@I== z<*UFbj#WZ`j3vDnt3jI@oTncvw%Jo#N2~4Ixr(iw=V9WLWo)~GDj0ZI{|OlM{!R^Y zIid|jGsLqrzMwm>7Nc3@GsqSG7sA47$Ev|$4rkziTCm8GX6;NxGr58_7#(Pwa2D*g zcB}=;8F(SQm|9SFD}#v(6MhSI>V0b4ViG7c@sA@Zn7#+yQ{RE|wq4Hg7o)bo{~O_d z!Ss{*5aKj_V8wGki$0iin22F47cpZQY27jt#&Q_>+9==qpP{5t`ZmfA8@ZG82pd_> z*col4_hp(bzJDYVd7f4o`ZA(`ahK_jl3kNsFk9D;Vp~Ic;7aKD8XR50G0>|E&G9fx z%y*DoVA2>$>JJX5lshPe_|eG!AGJI8ai!jjzOC0I zBf7qq`Z-tL4T!pe4>RSJb{^2|MgChI=xY~a4%Qre5)Mtzr_BF+7#g(eE5U<=$R#1r zBg9nu5ua**Ps%HSu3bT|;+pD(b)>)qwoT;1{AL8nH2pvk_`L_J@FQd&OuLJq1Geng zONp25DB*rVSjY**vZFNkOez^n zY3DIocC1B}Gg0L>R%7D(n0 z($sbx>jZS5yTRPqzB|`d03CFkgmIJxKBC4P;;?3;&r%fY2U1S%DCa8Ln8xeDMi5Vd#PG*r@$3 z4K2?@7*e^Nkh%I5I8~vMkd|0|E4B00fR4o)t;LLswWpDH19oKXhp^E2+OR|`c4T6A z5`S-oX@Exc3u$Q)oT>&}AWn)y4J4C2U`m>qMiCn#w$rT8untedyrU~5K21bGV7Ja^ zBmHBlDY#_zRbeQ$kXbh_#uoMks`duzdFViPXjktAdCa1dR;5^Us)5f9m5T1V64Wbr z0bdb)Vj~q|bNQZrFUB}Ec%B^nw1rrH54C0tM^KF|Wi2htmt!bx#(K8e*rq<3x(n`oy2qf+KB9QL9Cnxio0dexoL{kj9K$HR#I3BEW@dVv8$t;d++? zuPA@eHU}hEWYU(T3^6SegAHxLf)$x|HBjMb!sw8hwH_mcVNx3a0eeTGs!nWLc~$ow zqKw4r3 ze?8 zTNG-IsGehSmHE20eGD5>hqb9Y{+t2@O@pe?TM@gJRCTK(mqjrw(?%@R`Yo|4K)wr+ zk0o_e66yBV%pQtXvgl!oHW_rf1yv1yj-`_;aD=Kp8mCaeMBeleS=M=?okV=fTQp8S-|m zb=)rN?RT(&4VBS1;hY!=Yj@KqmaG4egN^%+SQmAprEze<6Pk^5mAZ#OYu1azb2n&r zpqW8?#JVIV*IbbC6qLKOt%31EzMZ-sDFjs_83UKToH6vdXhAd(6V)PG4&8{sjSesZ zGubS+aQ)0IJ_A}aT4`296Ie6WfJp2%0wtj1>Rw-xMdMi}tt6tMuN%(``tPwnU|F;b7zMaBlG8>fx=! zIMq;~ivp~*D)qqx6zpyt#5Aezqao}fPWK|>25!$%(vT=3SAP_UFdY$53+_YfbX#w~ zSIAmfYyGrKe*+YZFN3;?A2my*HDfWwG}3+Rck5ouWlBb~=CJ%|R;G6-4ohE*+*0p! z`Vzj4b=RnVdT_+k`vI#FlcHG21fGy^8kY%nYt5Jn<~3w9o>Oh6&k(dRAcN6iyg>x* zWX+gMM({9eCrl|qp72f7bJ0$fRJKiD2sy&n14r6A0DJF2->8v&V}UhB*Ru&U^$pOX zZ^Y!f0%S0Lq(J+-`})RieF;*S=0)GAU<|Q#Lp{$sO+ArRPjzdc_F_S zX;y7x`eC{JOloX4h=PABGsQgYa`C&2-Inl)npnxG6S zn`c90Ayjq)8vO4(phwBBU<>XsrGYO>vk$ofJ$RbbcfkJ`9q>EbPgbrdwRYHONZeb3 z8n6&e%tG{Sgq>a14r?k^?jwEXpRq$K#%Ns1PW=yj03G}A!`6-AH0rUK3+*f)B3Uw$ zDk45C={?^S z_<)-2E7XwhBat?NSgORb4BZ4Q9S&>8Xo}QhE1A*Ac+#XMMo%@j7uLwPNi<{?(u1u| zI>Z6ej|vhJi@}3>6GLM7Q$zQPBg|(Qh2FvXgdoRW0K>*J{8$J*D<}$(iCx4P ziO;dbV(<*mYPQ(13=y^mX+i{iu&#=Bv@*(ZC(A)wCOY-{f?6LH&ZVTAkre&_7^*G$ zb2dM?BM7}Zn~TKKFttU$W6kbxbP1^OFi~~`QbT>`wtm2RG6r=q zcJZ3)Aq-c9*(>#_-@-ACUt)~j({_VYDNO^r_3e~s^>HDw!Dizw7ZMPk8#kdOr&yOf zig*z%OhjvOE=}OlyD%144P0zlb9h-D4nHxmW|UCL+gTd{;%lHyNHUiNst%?aP|fOQ zdAc}(qDR)01Qj582(z*oR%+K0WWL=J2dQJ<2^E52}@s1BT^;oy!!7S zky_KjcR*-9RA@9*oS8T%eI%q<262{?I88t_|5u1}>aJTOC80%h$k{gmE$3$kG;vz6GPn+lC0Y5!pEmzkaB8k~^W$b)jR|7A*0-a?L z%@qhOM9|TtjkacYRw8Q64mGi0zTcX?c!M?DyUCi}u-Tg3+GWjN(`}d$JF`HC2{AP5 zLbbi;u$sM_Mog=-{lmk1J8ej_qs+aXLlDcQ(nA<(0-c!v)lg?H1%XaGgF-}&LAEIJ zs>{=(hHe4jR9E2VG+$r}vaTq^ucfsf2ZJTbdYqaBJK0piPEyX>lahqtiAmGfCbRMQ zSq*vh8|lFt&O}20PC2$g4yLw?n6>X^XEKr(RvsAX|Ds?0HoC}zbO?KY?;-t3K*kjU zPJ*0)KdC_@NGDehS5IvmttG3Y)N2*lDjs2rb3#D)?O6$TV^oeM(92 zmH^%mpoK`m8}ydI%x>Pp^koF6WiK5qTb;pHn=AVmtqq>oPiMehr8KaHO@dHU3e?n-;G%Lk9hmTYYVbzeb7g1@eE}Hb^s)6_a7e>JoMBzr zeh67;!G{gFE4UQ*IMQwQ$2e6=R=0u^T~@VVr-nznU#p$3vR4*hDmzt6ck@E$bDSb# zbrl?TS!W$~1*bVmvp@YUH;^vv`rZ;4$Tw*aW89l$ASYnTB<1@MYHsM(>6k4X4jA=q zWu=yn=uFa;{g>Wq!KRP>oY1tR#8Y1dE-FqE$&RqcQI5>Oixt!9^?=(RGV)t%MMczL zKF*IKdI~auJr;kORg^(%r|FE>7+2sHtagi!!ferp+jnOgMoX#Xuhqa&HF!PRq%94H zJla4to1N7RCEd2)l!k`Tg?eLqWtuZ^lI3;VTp?c?wS(Oi=ygr?WwsWU2L4j?JoUZa zrE0J|6Y9kSo4{*osKrh?YDW@=zynCL^?rb-w;i<2cH*HLPO<1c0~%>JzCnEmC(0O1 zZb7!c=q{Gc+R+ILGO{(ijM9RmtyRx6i^xYFWPl}?pa&JwnHCNoGSpl|=EJtj3NfUi zvBK;`YL9;4bsF%nF1Dac@WFzaQq&kBK(C*E?skT-F^BB*n6xOcxA!g=Mi^uQsPw+X z&#a*=gFeyM`tuC4Z+lVvlJy%W(k}hL?qCESFk_hGmBornVn|+aTgOAhEDkiI}X_U zy8va(CSDn{?JUKHE&Xi#*sg_)i{|2I$&Ou+D*A3JG)3^)>#PROYT&E}&T8PlP6PBk ziJ9`VH~3hHy$s*IsrNSI6uUC2RvBB@SgX*d zkL=E3yJE)&N$SADUfYb<^;S+-?3#~)oSbp=$r|>P<7sKbcbf2(CYDXHFRN;?vyb>7 zKfd*6ud=TKSA2Pez6xab)!G&Q1*9ocPWk8#*F_0^GtpkxXrEcWz)oLdn_{2a+EDFn zrp%l(KAzHC=WVgq`0&%{)9elOF*&=o%xiCqk{XK@8FK6>q6}YIZ1LJXK7545qp?h~ zBqp%dyvkm+6yKuC;qr`)y~=&fnzzPIwQaFiui_F-iKW3t58qPwTQ1}?s)v0q%(Kkv zxoL_WpB}Pjtyorviq^H*N3CwnwqG?J;@7o|y{ZKt)ym2?C3Eo=z9_{5W_Epgo8_Y9 zsSd1)E=BtB|BOTyB7VF(5-CLZ*(;Fs#A-x~lgzzea9SB_rHzJ&e@Nt9-5q2S@3y)dZWm!E>v8=RN zE*jK7joz^%Jf7_;oBt4rj3$cW{x%96xbtyu{2g?KIwW+5`Vh$&{p(q+Y~y_ElRhw zCl#kRCA~Z#-By&IRy2_Dp*^V${IQx7G_@#!U-UxT+qkD7y_Zlk(rtGp6{Tn1o?Mh} zZ%-jsnczEvapPsuQTYOx5c{?&(r! zS+)v(>ruAja3n(Sk&~>a;a8kqnfzx-`HKxG{S-4$n2W?Axirz=y1F809gC!A8|@|ZH4Ku2$KvG4ePS3L`p_9xOBwSx=1 z3ejijo4qOHV2r2dH#_}sYVw`uB;tr~7lS9gCj0;nT4*zqaw&K+I}rLSOnQV{4Yxtk zbs4LC8JvAp|$I{~{k;&k8+nQ$k8d)I`sL6_aY(Qr!_mFobo6F9td zz%If~2CfS@s4I$d0k;`A`5hRds|4;T;P9w3N~Zz$IB-V!X#V)A3HKmy^zIa1%Zpx- zh~;~u&&SxF{f$M@Qjc4dcFTpYSd`B#AjXCCk*@5QQk7p>LP^__m3_&;zny#uq6bqj zP(GiUibT-;xWqE;>7>*zQ)BiPQ87A@(Fp{cs=#<4^ovA{T4#b z{rw9N-*C=9rXlr@8L4k)SZK^3J`u}+NvTg*l;4s7fX;Ppu)JweJ|ghAdk)H+smo*@U3---C5=Fva^yh*}n7-jhmxSq?eRK`t zLDV1GU;#gP1CPitQho>TB9YFH4G|wIVEKJJnwRL3>&2trMtlT!i2+@XI$3y|hAuf) zFB1uJUb;vO?DSSTU9vn3(J_~tClo(NV`gO+`_FR3#=h>iO;0}Y{n(! zeo-h2OCWa1^6^#;tB)l8R=}CVIUTl1EM3Zlr6+@nu^6Z8D*;PAaP0s7@76W(Wtf!9 z@v}s@K!mj-#23)nb-M`f6X7Ew+#Hg#Ge3p9@4dT7;8CI7@^JL|7}r zHWA(~!uv${hzPfcaE}OI7vVt>9ur}|@uGYYjuzo05zZ3f0uk1VuuX)wi|{@XJ|e;` zBHSaw*F|_xgvUhKk1g==tveBNX|P^fCu2OsXHciuv)~0T+n$$~GaesAJ^e*yoT7Xd zF;h{$r*C&YC=Asu2xyHJkDkmo9v({{Z0*yPGLzhw3%uWipDys``J^0p3%x?MUGbz|0E*u6&X;CBubTLJgmrMfVGUzg;9T%lHSMgr}}rfh2b&F_$4I| ze+c}!u_y-p0{D^8v)SKFe+>Nb=p77?@8-_t%%mTn*#d9&2UDGZ&t~AsA57M*oR6Ic z3cV*4uUtF&RXqG$;N$tZnV*1uLjwF041cOWrx!4R#`EX2F9Dy=fsf}OC<%MGc=BJy z@TdCO8lQmvTHr?tT^WPrf{)p6(@P*CKUHQwOe+)ce_rr0`;mGj0sYs&ll_?e35~#n z9Iw9DCct|cK3y^UL%Id{cz%PPNxkmbj9qi>oS2i`|FyL zfKP*DiS4za#;^B?10d3GiWtPgl(T+bmd! z#*=4Q0{qGZ_(v1q_a)H(hY9E>GkpqW8G=Q?$Ma*?oPd58@bUcHbpucBYxV^E*{0{R~cdb3|Z9I~)-A6;jtETT^XPjXf-!dmNpa71T|1-51?NAl)o!Po`wxOA zG#7ko)%mCfidt6#?>+2cZM-bPJq~%NAR12Mo;9ziw8UL9x0t*Gy0KGpm#6}%7SE#^ zwfNl2@NgR*0*kNDY4+CU#CI%4wNzLI6nF7I%q=Q)&O~l_7?jLK1+JYns~k=`DvD;f zO1MW9;qt4H`O4r9FS!4eztK}lpP!b5E{aS(m3Yx`(?M=H{!afzf3G7zlN!#zotP=d z8G8ScZUoJ_Pw($8mRkC1q9V`K!CEYbQ(WJflF!5oR16Pt+!V{h>?Df0$vMSeUu+(O zCn>WVzrsFWE3j|!@h3ffaTZZ4;x2}y2dcl-v!q!r?oi6$$m%qnIL&!c^V7Mo;f@Ev zFY3xIj_b%6o>6CIajR~2n|03Dx9 zw_)GyxeJOpz5ha^Y&mee6ZJ6^cR*57crIhk%FfjN7c)NYJub>lR0u77 z1}+{GJC8J0h2(>R{*U?@V@7o*V~?py<=WriD>^T@(R~%r#N7XbsoqwF$Y!TSC!n8`p`$D&QGlm@At(Yu*RsT+Rk;eR7OaZZ(oInVGjq6BftXW4Yvjgz^naJ5!ni)P zjm2a95(8u`FEtGx~*)00kj_I*(ij5+~*yowLfczhGJ03?;Ot@wzNMJLOS;0bcj(=g;(5pcRKA>fP1s7s6erQ!`ccnUaVj0Q$$sA zT2?h^Rn-XL_LzmsWQ@H)-=yTQV;VT4&4Eu_crn*j8Bo=&b@er4>uLlFzAwkpK~4^l z0tHMijwAt(m8^!52DtP-bKTa3ihRTVF*PM69V^Q*zjeN)B8zBhHRCa+-b2 zGjWc0nK-gpR)f3}0#mqJ_O7Hi|8b~9YGyq6X%6Qh9=_hC4e)5oy-(I(zUL#uhe7APLL&fMm#o1`Wwia!UCTWmgEl)F#pV;yon!K9YP7 zNtQ43%lh9h^3P!06s5<`BQlilK~a8sm&=_0XTXt8B>(91{9GV$$@jfDbgKP4hy-JP zyT~U)R%w|TA&#lpCBuIO6q8>(K#|YsR$V4Ch(P9(*k76Q%l8yyh{qT)m)ZWG7Wt+A zl}bS_!mMZl$4mVQD&;qbko=NNzHcEz`d=C2WiJ0EBpUOVc{sHUH{&_5@iLeH8WN59 z73vUliIDxPH^;DFbNL?vi$^8VW|HsCq}B6G(#|;4XFpPo&yaveA<_KuJsrEqFXH(TJ!63^WmmNq8kZY(g?{1}2b_h*ZIo$z%eflbJYk!b{X> z0%aUVsh6s?*hX7h>$S>lsh3i#f$)-AjW47=@r7p$3ce^>HUHn*kI7`15!(CzzWaUm z277UlB%oKAe$ zE;?Fx=`Q6__oXUJrU$TBUF4`?asb`mY-1UwANh<%q!b_OPpYdmdqea0lmV@q&bg&-clw}) z{K^q!9ZIEAHlwUHXDcw)DTTMKAGP7a!m`%0(v{X3BU6-7=8E%M)0LDl>8(XXYbrkU zOyhwv9U%>m@8eU3PdPr7_^9~I#%C@*)%g4XA9`x=A#NAo^Fw?V;d2c>b@({&X~4&Y z&k}r=;&UxNP5AimX~u^hQjY*WI>nzDFlE$DomYSF?eS?<+XwAhGFSi6Eps#Hp7(_B z?x)`zer9V${q>^EcMT_V*SzU;EJo%bp&4-GyiV zs-x`Atxftk=emQ}Tzm7qtFyj5_WY6Ii?<$J*?IMUebi8EUsZj@WwS<1_=CrJY~wjA zs}5YhaCpVI=eGa(-8)x5GUwgS9^a9o@%68LbnVx#-#sephrb#*?b_$|{q;`^tM)w8 zJ;VC);qvcS-cd1N`_=14_-4$S^3B&jIA`|lZy)M->gU6ow?0w6*nZ)T+doCqlRl3^ z3C>QC`~1Mfa5t1F5&nNBftNus6XB;r;S<3hOoIOgcua&}p9KGgB=9!0Yh;4<79`>S z$|Ut3OM>5-L~h5D$obwR_2x^J&~SlNkV^b68vxy`P`kPT{Dx&;oKzkHYTZ8PXd2ENxh-e#O+<2 z1pY=6y}dIDpA(Y6zfK~bmLzgGo&-+wk{O@)M^94k$RzT4DM@=@OQI(bL&AD5O#-(j zp?^L4WrT9Bk|+E!vuMamXxQ0Gmhvo3Vt9s8g?Q@Em2M3Wo%u*UBa)5*n z9?a=)ilZ|a{gR_xpmg5P@v}v{>~IN)&Q6+y@%&A|+dzllI|O~{3;4i)wlYk)N6_J= z6y+Yl|LnMWJK>lRo!i|UGgZ)^EckpN4!;ZhkbL${=J@|a|Iu?j>NO{*_YmYj_}>aX zKjP@h7)hU;6g&^|K>1SO>!M!KjmjUhIGq&&ey+fO6a7eXd+7lV5Z$FL7j)_czO-F~ z(O=YFvyYP%INl1OSgF7# z`s;)ognB8z7W};4!12Ep^8XDRr&&t=1P&i6;Qxgrjf=fvTvYRHr5W-e`j?Z#hDY-M z57A%o<0S`zB09NZ{nE-xVZ9^THATn`N%nLKecS8d>6wC`Dmh@NYJ@cw0Dxgx1fKiy$2dOK=xxu*a6kX;cJB8Xgrae?-6n~ z3p!7Le;TLpa(EO?BKq-mV;ATVJbt`iF6ylm{7bu3DeT+r0*>ae=Ru*L)p7U(M7{eR z9M2}?mW%OC{HsFWT6wl|yU>UDadb?``LGb!n*v|av?WbGuNKf9eqGZP%~o5bHMsn) zCGLRk^4C^Xczj-0t)t%K;(3X4u9{n;PxAPj4v(v{$hu6?uBy?C3pGt&>h~?zJTC7N zeW~X1`+ffEIZosPy|msDa62`(FJN=l=tV`&r4GNQ`yFl_0IPMP)8lgZt;i|XY`y?} zbcYTmuBu%C-~>^+F`)Zhj;4epcs(VkK?Am{vY0W};Hh5L#Ik&zfYnU|YfqhEjXuHU zZSW+lZ$8M3=X`-###XIXTc}xUCPAM=81%W%f4VvFo@9;RhPFH<3 z2$V!oyuJn(W4xwNn_oi|AT?P*qub-EZ)r@(2Sn!!xL9N7*7!=bDp8xQ!D^jff%&Ec&{Rv+gqD(49{uUi*daEcuFVNcdH=ZY0Y zMMcHYn%&+diJDpCAT=o}MDzTvW{<<^vNkn=b?Vz1eex2QjvWYB@{%#V1yzsjt;yPa z@STK{nh9FXM6I?+vsw|Qrq4mI6l>H|P-p5F@HN>T(0t7+E4Ut?qG%^DHXs+$9X68Yfv+a$77hIs zE3{^pKj8C10rZvHvO?6wI$r4Ucd1#FT^|>p)UrgQIY!t5+ZG)f)pKgbYaT|exFojm z4!_^AQuDf`0pWu1jc;zzt;~o(@)Mo<%4U){8ds$)cQ?4a;KQv8?LV<+qN?Vb*yw2q zER7l50C*>shp2YY83*CDXqzSB@WHS*>EEGxKiK1JQ>!%i|75_B~mmSl9C7*o2-I==~xW~%OYu`$4VI%<7^J&C*=Lx;w!S=P){b#d63xlC=iY zK}04RI_2c>98C&q%l`d@VEjP85DQ0 zz*+)DaQQL&T1ipIOClOgZVUsmp4jB_FLA+vSmtu-KEJ3y5U45UMwZoDG#+MMTL$CG z{1rKNqq4WT!9%md?YGTwvjXHlfK!(Tl#2qo4VEU#rkgPdfEDH$TsE;uL~HT7uWxbL zW}_7#SBz{}dc;8q6N8+-;Tt)KS0Y$%t!$phW>t(U*$Byqo60s|<|T;`HC7ph22BFe zWX|UGESp;jo9u02Qy`St>+?4`JepfpRt+>vI#yYqtHGf=Aiz?l0$RZ5fd!Hb@NN=P zgzq*FGHbw8(-Lqs&~PbM?S13>e=5Q6?qATIvLep#&^+pl5XE9lL986N^5d7bA~u-kwk?#v_=tG@Ay3MHlym;C&;3{ z@j!!5=%SP-hFO0l=qngEkYs=Lesa8~^m9z0lW(tB# zWV^t7ja8$ZX!XphG1Z+9w_h}@Z*Y>_G#awpdQpC#e3&>-w3;Wi2%-lS4ILnAL_c9c z*I)cm^5nP@-W-g7)}e&hr?Vw&Gz45u^c`zKABRahqNrHf&U#EVu$;_j&PO2hN~;eD zi`~D?4QMYcW1sOjS!)|=qU^H&J(-stEMJ%tW&)DRzhb;5^fp|i#B$5c&*j{1N>Ct)7N zDCfN&GxK0Eqx-ZKFhaESf{y;Hew7sqvs$fsrn?%$0Bf?E60I6@zqZT)^Bd4L-Lb^l zR5L>(KW{DZ47=>jr+%uFx%9)6zDTAYB({aBfm8Ay(o{m4Fn}YqR z!3>JibpfGR>>pvB`X9&s?lSSYed)p2>%z8{V#cR>%u4K(WhrkF08a{d9wzdukv_-m z#?I9l$_L0Nl#M^W3tMRel}|)^3rlAxUyF3hFgJGa(v*QYM2+ZWDxYD`mdeu8eEe?g zoSmf%K|aB*XX(MpNRf81^qESLNC$7u2mT?3E3eLNtu=W?+hof`*#RO|zqAk<;aN37N1ENoN3>;gN(dR%6T(Hja4#vQXqS%UJ#K7gAEM*^!fs3OFR_b^Ryd;Ls zLxTSlzzSmE^1O+*?dh(CeB}No!RgL}eD(_Y5d10$L@4*w3BEW6F86^6F1D6gt~~c4 zxHvjs@Z1g-Kok4!t`NlBLEogI)a!juUI&j8JgpC`6vn{iUO8o##K5U;`IL3=7}1e? z$^=n6=$qF|dGe|5;4y+pogm1<4*KT!7%M!!nw6iRoq^b3?Gmod`G()%b)u3}^} zOYfjGxrmVtmfl9`3`%cc>EBbDT*62zOFv9$n&uy< zMGms`Rg|WsMWmah=Tn+ozep!b&!#lFe38v8J%iHZ>P0$OdJ3h7QhEbR7gL&CyGScb zUqWee=_1W6J(AMo%0=o}dKjh2g^N_P^x2dq*DX@U(t{{XE?cCKrBf+Qu3E&*(qG}G z#!_<8BH1kcDW%CZizqDpA*IPBiyZxi+W!uv&6GaK(yvl_1f{!K`UOgp>lNu_>3x(Y zmn*WFrFT%8T&+k4OK+nzxmb}6Ed6^*lWP@eW$A}0O)gcWnWZ0~G`UidI+nhd(&R!# zs#*F@N|WmpDP!r|C`~R?q>!a=r8K!p5i?7#qBOZkk!+UsQ@ViC3QJ#0>B}g6^y}VU z8ZSj3*@DksqXyqm+ul1`U284sEP7fEPk$9Sy+hkPit>45f$8FQBr%}E(`_K2hBIbR zP{sqb^E#t3H+or#B9inRRef=yoH2u*gVzC<_!->A!o$(A1 zQxfsG;=HBz`s6Zg~h{QKuT7_$RzGpoTB>g1#Dj z%NPL3slh#l7ZOv$t1V?lJv4}N7BR@g2M8a@Hz)~2D+@nR!#Z#qVNIx%nMBMWmzxPP z@m5jlH=>k@5d)&p3xmUo7(ZsLeP9GBWL3XLu@GmrK^@DvZ~6XKfED$Yoz$qSyVPJ8 zFaHCA20t)t6teO^W01Fu?W|E9G6T<%KwGi{` z|LpAr_0T}-?p$tZmuIW_yQ$T^$YiFrYr_>aEHC(t8vIOMb4(wph61^2@QCp)WDiNH zp{ui>TnJ8#eN<@8Yb|e5$*UK4)u_RLs-fj&YWU_tGqaa)o^*Yntxo~ZltT*{_|n>3{p*x?NGPz>U&M< zh;B7pS(c`5KbTI#g6a((xO#Ey2W0)UH^eS*r^7;5^YsO&Dm?j(!z_QEeuaXWvHoN^IT||aTE+b#hT{@r{!0cFDSo) zwegn2_W;~)q^<)1BQT@EFk&o-uF?~7t} zpPF(iEt&S<+uKyi3{Cvm61lnB6hP@rRw7vRg?Fh0M|0` zR{%}lMyiD2`*&=dkv(*ya3vbh)5xkQr*|5Van>IxKU8a3%KFTBn@~2ZP@y{XwWV1t z-J@rzA&P~YQ;Z#GJ!O_rW;HTR?esDTAyhMj`+*Rl`0y%hDo2jUpV z+eo{?+AOLXBl35QXstz6L$E|-p?*dXAd*J{#LEO?yFgq@h;@YM=ZIG-6v^7~QG(eV7X!a#RDn%rL(1_bX87jM2 zG376^(7<$MoAMhhX2hDzrhJd3kc;sGtm@InH!*Wr7NZ!qx};*3HxC9~fc*ozFBtw_O-!e-e+4VG;C)CNngsr_LL2n+)p zn;@8e34%xiK-7%Cl6up9(^aEeMycT^EUlm;TkxeC+Q_)%jTnbU*g{R&gw_ExD!?FXEj21Gf8!Bl2t^9 z&oV**HxHp+&do0f@julN=S2;-TWGSQag;;CWeFNe%fBFL^M(=D299NFU%&>G01##s zFe7DvmWNu1pBvHX#yzMeW-R>^`$43c4n~zrM-6SUv=UWlzK!60BkB!-UM$dweM0XL z=)*X=7*}fO5jL)1<@Maw8!@bAnjUY7j;h6;;wi=H#iU^HKrW+9 zj|aG1!qfKy!zlk0viY7djCc%oMZTmVhQ{w>ElU$^ev7vmQ_ddaAPUfEDI^=0X*|b_ z$s$Xk9mx_~>6@nZ5zqvCc-(T3$EX>C4Z;W;eJE6I3@s#sYsZ|qoK?9?8rxTK;6n7v zsAh(`8~!y-u2}++jIEu9@E+rWDAI2PQiLGET~R~(s|;#*)tdM8;pMHXEok~!SX$j8 zl;Vh?eu9P<8zWdbX15BBYoW7|V-TeszTO@*)P~txnAZ=u3_7X$*HKn&>w=MdQ=bG| zIF?LdH6j6+M_7KuZh(1QZE2Px^)ob^8eI>fkx!W&BN1XAfCo;K3cRlYB-s#DFbXyk z_y|>ofk}p{&*}|>)g!6KSUu{$OToPH5lU zL3KY=h*NDq348DmU^}9)>I78UIh8_?NP$-~*wSdaY_DnUe}l8~wvSTCTAua6XH1UzWG+O0l)= zDYTbjJ~g$IZhls7@=Yf7&!*VT-~($giY~`cK-uzeORwrY#)K2!`2D7~3u#bbv5~)&@I|JnyRySdh3|8kJH05)1%QB9d^0)BW zOX@+Hv12S6{uUX{a4iNL`suw9fQ)9Mh+h>BRf7hG8|g^Qa5L6^9Oqxt0I~&pZNdHh z#udq&##N;y8!@b&DlNG(VrG%hMQZ30b?P;cW4pnkZ??+eS()34M* zph-XdvK`Bs7%i0BVcdos#sRW1Y7Lzc^w~)%&V+U>vXq%}uFmG3cCf+>jk7FVSCPjQ zr_Pkq!nLZ|lyf7H+AXbUxf-+rk2`ehta)S!bJeN3#cXO{hinvOn`C_7-f{`0p4x2$bmf;-BLgPQk zdaKSjj}oOjTLv>p8gJ%-+65f%1;k^hby3ziQ9z;bdjKLYlT^@yFF`B1m$@00M$?f_ z;}CNDQbe~;n0g_TANuJcL@?Q46q6t^9b;t22$KB%$fIl=MjQOMi@*mqT%c>Lq8mj; zJk`>_BI@i0*r=Q_hN>>^90eQ{oR+s2+b~h=IL`^rr5Fd zbIZ<$pwBTTm1cCN6mK6!Au#6r5I$Hb+W1p@7|XKA*|5(>7AUfvF>HnXQw@F*V{BoV ziaO(Vsnqb5a5Sz2@|9-nTtQ=La4ajM4YkYF;53UGeA{?|9Hrn6HTb+5nvWK|(DJz& zoP#m~guOEkGOM907OKITJT+LsGzF_kxqCPW+cEIAa~6Olr6|HrD5SjOB9G$of)B+r!8<(^&zA8}#^M@5 znyRJMNa(Ej475I-aRTgIWU-Ra3q#?LPOU!^7@3WR{ zVTow->R4fpA-(UraFSpwCv5Duq6bBtY@zf7vIk z^Znl5_D<89pO6G3Pa^<~Tn%|KT^5W^qhg^9YixtKT&6Hk0=a}U9;+5oBx17jQbC@) zl};K}7%FHCTq|SL1%&&SF`g>IM)aNZ^=DeODOD*(ys?_fZDb@Qw;(Zq1`L^^1mGghR+8@2&KGjnnmFRNT$S< zkwr|)hTQ_L)DVmUsM4M|jG3wZHq42}5>Q~LZy>pVNS@2eZR9&9FvaLku}NTBvkIL;J69!Y7pD|pG$5G!lczFO!tmp7w68z^(L>YI}kY+<@=z13I+iSRh zDbGmL;}uYzqo8*kmD~R|Y8q`kM#ZsI4U(e)ozWP%Se@zFM~m#`?_eVvGV3)K69$yM z+So-0MwoD_neH3AA#oCEE10wgj~Rz(|CS*>3Pfl<=@Vw(TJm%@TF8M%Y7tG!o7j39 zDXg1JIlrLwMrO$g|XGJAi2qxfJ_U7qs#$ zsNS}ToSAi;83)l@1Ok!$q?hPC>LcS@I5cb@zMSQ=R_@w%CNKIK^*V@;rZ&hDn^1yG z#Zh7=xN937j-$;l3fwQjNECOOz}?Al#U@czXp7h+I!3$kH(`$`7j0k0wup%I=(o`9 zi;ZuoO~HQ{k0Z2&28jKjfAIaF7m2ZFfM_qhQPHo%>NZntGq5v+5&RplWNX`rMKXlZ z{uy+kD)<3)@TC@7q*KFrcVh{%#nLH~FzU2??M8B22ENd!!_X6SP2xFY{A^T1 zZUNJ!SQjCqPGpg%K&_+DXrl_wqAvS8V#Z6Tfb!UM{ynBK84GQkq%60P%3VN+p^Wy} z>i7h{l7SLV;2*=3F zM6!&9;aTuaXQ}v919c&T1wWu!EuFT`>A;!JnlX99S4JG3DI#WyV8^8*PfhN#VqX-y zW8WH|y-tKM8_SJSc1-;SgQ5w2!ofzs&OG?tYzsJ0riO1QG@fJ~dPA=99~6O@tyyRc z#`Recx3L#Q`t6FYAVmpI!=#F%xR+yO)o!7iOb}P-noQ;aBgGm^9&k*Yl#s#4USw)N zj+nX?2Xyq{u(-?gqx}Q|8(G9Y9TsCN6-6i{GHMDIGu&6Vh34YmctHPiV=TYU{{M4s z%s@KlCcZdOg0L zA`+3|XgFn@W&8~=n(;lLVN|mO4(GS9MF53tsHJ>Ht*1)SdfXAXDej6ut|@027PEB_ zLp`l(mtwZO7HjDL;S~X1JDOV}noCWm#?nLn7{O^2t0JtX5IAHP=&^~Vq?ZgyAw%NE zTMe&gMjUHMBS7==AhyVeq>@~MaZAnhf_~g`bG?PCvxOF5$+?kLNvyEGfSZFo?JZ1& zjE|0@8%9IM#6&KN7{4GpgM>l}J0?=w@xB`s57Uhb zTiZ8v%O{)Keb|dsLxU~q9uT2cmy4xkc{WS0=`^)J1`y4arGJObSwE1lFuXZBMyQOK zWu#C>ge}3^mO-93XnW~X)pSYcr>09g)qCt=OPOu^d+D~6*X^b6>Z(2L!H&f_Y7iSB zM~q2>Q4>3XdA;BM$3bYucx<`Qwg)tY9YM^2rp$$=fStmgedL+wc6;z$+EFN^EfBV& z@;-?O1XbE?U^^-$bQAJCG%XJ-Fp1JDlyBi7x4&-5TU{ zpm}_gS$5W1mIHTI4R7Qcf*e9K9%Xwaq6|zPCJDYKB3t;uDoRqvI>-UP3v_o^bs1BSwEU+rKfj+i==OQxrRb z@*pcR84&DU>Z2+{&RjC1v(MpxEC31#Pzpc~1l^TuE2X{c7l;EP0^?guYLVZ9U7|rn zFmW6)22c?!*}4jQ{z@6=B3frFeM28o8G?a1V!V%HJ?j8fdmbk4F)d(^<#-{ssoIXK zI6Z4So~ut+>8P|P2sa$nk${Zfp&YIwwfkwbfuoqLJ4M!&CuS{YSuL9*Q;{e3-*|Tz zCCGy7e$%dKi)I57Ov6nd+=St~h70+T2+p(G;GmIjhXWDbx0IkW5$^9&Y98FY^~|Fp zb5DmmnYPeHnD#rsKSnt<1HK(Uj9{zX0}`^CMX>%oC?Q)V#E_6q2|0=gZL;r0xQ=fC zsKLD?M!G%tCwbb2fxjJ)R4gt{x8Di&?cqx?0N>BBrM#hrA7Si7mH-}Y|D|Vhi7=zn z0qVv%0@5d=F@T7+sKH10Dhp=*Ah5}JQ5(s%zAzigv5jPA@(nTNZ)7q+yap2E3v5b2 zU>ljhNPM-HZb}jbO6rz_Bx)i|$<>ylBx`DWR3(~oz%RCw`?$M?L%c83;R$8E5^db{ zSY)ci7)ubb{k)4#P-qSJ3LT*IFPU~iNqU`=ka4R6XDSP19R%8A6f?3uu4Sg2sc_mi zF%O=frnIvLliw8WLwHU?%Q=M)LB6N9KkRkD`q#6Qm@xT%#YAh$8HG4sf|zoygE>f8 z4_iQVqw(R4#XDTXqyz+AG5<`NZi$!r+S|Ct{{4MNS4JHb46Gd#@A zh-J%`@`XLP^nZgb+V^OtxvUlJ8Dn1NMua&_0FpanK@_Cm`8F!dEh%4_)oGYeB4wj(v)hk6T z+o%$;zJ@FoMfx>FC7^5wS|{2-Y-bpwVjF@?(FUG5fHI+JUZGudf0J=YJ73Seh$-03 zArS`;du}ySQHJgt4=+b+QTF#lBRurA?^BZQ8|Pn+wt1eT`^Hz`!Z+OorAym1O|Uz@ zpQ^$AYH*)DxTYFJ?ZNOu1nr&r7*qb5Iz&zR;bsM-RuZ8qh%bei&S z?2cI`t;qu(R!QNR=c#Q6kE;1Q$z?Oy+TK69XH7Qp%&2qEnsX2vYx~-?ybRwdEgo#vSe12j46}x^U?ef# zhU`vHMaMI4qUz8xi;iZ(F5_ytBZy^U_>WX#8~9*iJF}aLV@a0QM+=8q@7RMM8y7!| zfxn4%$nNerZ2TCh4M}cpTakx#Xl7T}hUl$ZT(c?t*3|wUDzb;X;P0ZU;9*<->qH`S zC6=>0aFN6RLp3xHp3Qc9>D#7T>1sNvGu=-6M_>YXMEcLu&xg(o;@C600$(|0ES60% zTqo}0*NNLcOu>QG&9C$8QS1&cchdgKn!nN3*=};TF181c!Wa!P zkasnR;a)NbA{%#;$&NvVaecgnt-*hYvi4w$Qk8NDLAE^&dwxNzEP{p{X;EZ$fR|>R79yrVU^>eV3z4(TGe_ z&LB0Uq7k!2BXG&ObWh8Bkp)1AS@X9Y&a(wyQA55=duTE^x98)niulElx{cp8e>hbw z?bfZhAI&b~cW#4GQB;$)TTR*FpP_E;!`h*mW?~&jzH0C&(L^-6{0X2#gfHmUo&xOU z&A@uY(Emz8JQyL##NfsdV^o;i8=h9CZvP*JU*Zs>z3E2?3tsm3~{wo+_N#nru)(d;T$U5MJCzd#WxhW^aT-ki^635Ys`d z8g~MY?x$U$=)K@mdY_^ionfp3Va)Z>_bK{m4OTzc;Sb`fjXkskpUX(L`5!W^-U=0? z$E23-&`V%q(dAo(s_alxy8R1nPjZZ2lfCq)-8A#49UEL#`A5j_fP!@DSN2$;AS2EI z8#Papf_w!tL~Eg;==!Q8>I1ZPrV@1M}BsA+80FAxDQlR zx*G`r!E7j>&cOZs>2wSI<_BWw-DDzbgVPH-&d)<3kgvj(T9c@Q7TyjX}spez0IbzHu*|uGmNydWACARHi?`q@TqAmC} zE30MO!@f-F2eUocW1s5FZ7Hh?eq8<(3AASkEES#0<0K^bq8bjEiTHEaGRO1U4eD|Z{2duX!4VO$D^1UD9}tx++7 zfu2_Sy2BP;#&{nBCdz|*dTzJlbsrQ0FG|nT(Yb`1o~IT9YU~4bbSW0emBBjVr2%NqbD3$=o}TGomG{PYQ0eKen%a`9_W;;40N1i| z^&#YxRH1BTX`T7T*NKZq7(TAfw*0A#N$eAB!B8LU-$fF$lE4fmFsV~ra@@vf6s%33 zMtx1pL8A(jX;f|kJKy(`4cqimw_U-X46^f;Oa<}MRew8Qu5Rta5_Xu zL9gf;hf#bry3`1xVO7B+k^9hdF}N|bf*?XJJU8-bMh}UCMl4Pd$+VvbLtZ-(8-cU3 zvD%uLO&0xk_TYzn)+UR7;)HjA-YBZzliJDOD5?st-i5=eJ(wwb^dCg6c;dO#0BL5s zv3YnZq^B{%jkmvWUbP(zj!>Ka;(qyFXD zI&H_L(qVsS2Il#hz@L?gBL+BtZAR|ZUBuQYPg*1+wSfAC=n7*#el(V!9B&&&`>QGuaI>{zCHz|@!UYBlZfSW{CO8-aT^_ay|;s=6F6)~jQcTU zj0UtH+!)WW@GawWgz!hWQH~laxR$fX)0~$by?ex%k>^8Q8!)L1U|3x;mQAr)ne3a# zb6MQnWqN#8Ue|_DhG&AJgsW46L!F2O2X=)9GCDJHYp-Bdrs-#$%>0?GJE$B%F9Y=M zPNZ^X5v`nAW|jlbchM|-WzPeTi{|3%n(bW>S@a!tSY1k=eokEi^ncVU)l|AE=L)aATxiW&cW)||I|soS{}?3zcf zYRNZWKHaP@bqB^>9>BjT&dZO>7NWD#|M)k%z2=IV1!ns1;Zw|WTbk-!eqx4miho1s zce?`S1|Pn>KHc0z|NI=ZU1o0-HMSX|K!F)`RO43x0xq-Dhks}2)L9`}6BB^$UukwM z!GB9G;0%rH|J3;Wx~suV(hHdDS8|S~^vA)Q3yKm4I<+LqamV$D@L!MIoN__hRQgT6 z%aC{cFTK6w=w@#3?d?FA0$Z~PC*SA7`m`gw9N|I0>kuACcrQXT;QJAFAlwPt(~a-} zObm3!{d4$R8xd~8LNgBsQ4b?LfY~$^yCaw4C}P$A-rf?NH<@uZ(SY#RIP~6%uoHJj z41{aJ<}_^WJ&KU-EFM4F+q)X!uuqVWa0^}+DFfZjpZE5zNBAMaEeOxWJ3#aUezOtg zA#D6dFLrM5wm;5tHzVAHuod-R`&Do6GYC5n8VC>JRA(XT%lx{x*MsnEgsljNBix8^ zB*KRf<{^9nVFAK!gcA_Hhj0qQ;|T2t2gCQTMrcOZh;RZz9ifVF6~aXbTM;%Rqz8v6 z>`7TQUrAY!opQn8fted1V}j!zhf?=cZ|@kws2s?q6APlSx=P6ty}j(-W>)shtlZhA zGnZ$!D&HSA^^)-f|GK84`rS=nn-%d>LZ(kipe z*JtG-T@E~&CN|;Y2i`P+*Os~pIeq^ZEM---opC+zXGKuX3ncGU2Yv1X??cg+^b63b zpxc%@E2}dl_2ogVit;nrRD}H7I?-RzIvQCWbjxly@(NJ@N0c`sD|x`_-a=L3o_;%nQ2L79g@c+^upZHr1{9hl&WRH-`q2jCo_Hf$z^tO!DuLhwf z%Fm<)#8G_w7!&l{Md>~$40yRCbw*b1?P)Wz%;EGIS$XR-%CidB4k*tmX&X2zt2-s_ z)zm>*C4iM@nLb_2wLoSvy%74r~SKv%ji<* z#AevO@8Xwqr~`G-DwBTGEPV(HeK*guvW}*tO-@V3HUBNp&q3>1to~QPj;6ni#K~wL zOi3%wNKTXF`ZZWP2krUWspwC2+LmN}Np?g9Uw7e!P`r38Y)#W3G7WYlHh7%(T5 z+kmuLgObaQ>|85o9>S%KVbmU?8EeDKQs0f|f#$w$+})wyB1`|>De$m4E$!7alk-6G z-b$wFgA?s`Hu7FV-df0e1mg4%jON*mfI$rGA=uY|-4+MS##GS?7_y>x7Qp;*F!CQ7 z;$U{b7R15o08;^j2%_}pHw~u%h6C;>Y#m@FfI&N=uuXvF0Y>*z=^>ss19k~u%oYmR zPQWaH#qxXruyf;JhXKn33>S@~Pj7F^`InxjC^Pf%3zDld)}|_pPi15v6IhoNA!A+2Wk=6YK1%sb>c({CN&0Qq z-RWjT4`sBaY#yL&9N3=v+f2ef+ZIZBDMfiF1t_1T{2?82K+nAX=Vv@SNO^M*pm=(J zc45lUixFS7A!U7P$}dtgFcUmRjM0Fl{2!#)9#75qDqVRqHRFqP<+Id!{2t|}X&FBq zq#UK%|DJKl`x(k@0~g*gQ2A(JDdN98~ z{7uT1^OY|$GwwZKx#NtC)?DQ;gSyinIA8h5^m;lFesVr=Pd}$6a9RSVC2(2-rzLP& z0;eT#S^}pfa9RSVC2(2-rzP-zMFR5od*tu+JnG;rlfTFFf2E!OSK7gMKd>2tJtBH! zIyJL@ntr2-9+^K(q_MTfpF$qs$~=2^dU+`KoaFC3;lEC>hn>M7HcX`D?>7w>X+d83 z;@e&yfjY$oncPO%OPgYNuJL z(nDt^^a$}N*fQhK7#>J?iG`;n-+P6i#Bp1+ejNF+_5hoq;z~J7myF`&aZt+Ak}n)N zu=MPaJRh&Z>5_`37$zpFJ_8xfe0H#h+o)d&sq`QCBk2e@Np6D7U6yo z9una(5e_Kgbj}sw7!ghq;Y<-O5MiSTmx*w#2=5Z%uSNK{2zQHczX%VB@R$e(6pQ*r zI7Wn%L^xA~3q;r`!et^{E5f@(_-he9F2da++%LjIB0MI-0qk%Fd%q$aBSOv<&SvhH zF&^TF0H>JqX3f1K-&|BwP>i1h{O*U;IbHdrHy(?|KmA7CCZVuqfk1oLiSRE>0?z|H z6~ByC7svM{0=^**K3%}$=am}3Q}D}D-47tb;ylz?e5fMr42R;p01>KJ&RY_GC&ND{ z`ulVe{$GeBY8PESB06&3qxR7AEI!1~^KtyV0eB)hbmmNSr1JN;w=p>Uf zy*`qnoUJ@^11gGp64AMcI$p_9^8Edg>7NazzI(ES{r8979+0z6eQDRN$r z)an=%^uPO4U~S{=ijTpEDVy(?6nJ<8gJZVo=nwxf;Ai&-vD9w?9|<`hXylpf z{1?%IsfqC|44$Q2Qo-@*Jd&PS0$wfVJ2@ZKC!w<$@DcdMHTnB}W=2I(-T|EWx!uhH z?3@-+FUA$YcV5fk?939;Hvv!7uHl%s62WH!o{j#Bm)j4L;M4t!LyWo_;=j& z(A@-j?!v@x2K{^P=V|%forKO2z;ozitC?dW$)0bM;E#g5&xRbHr2&qI&LHV2U~nFf z{hk9j$!*<44we1;dj^lif{vI@l!ubgc@1#l)9mEj zOSzo|gG2JK6m-yh_Kae1k%$Q<3jFwfuMqGT@LC)_bfkT~3?y?}d01hMZzbTIYdojKUUMS|lF}#>U_qnKl0P73DaE+dR_%QQM>5BL?nVYCV}fo`u&$l@Q*QgmanP@2E#sYrsq5pc5e@pkxrz)3zEuI1&WJM}Tczd$+g0Ef%(&yvv3 zMhB4|8nqmg?sm{qBH;A<2K2DIa0q8JI0NzJ%H0V%Ds={xAH*wCBx5BR(Lr;-pSYkIPv2b^w}LP zpcG?DOQb&wlE5EjaLoIHKGH!B!XC0acYxmtcp`p& zn*{!sB=7@(lODb#^hD0rA1A@jLZzf9i$uFHU9!i_;35$d&@Y`)yY@Rckll?$^z9`0 z{{Y+^Q(i`g3`yMHOOn8EWbiCyf#6fxrMm=tb{zbXBy_%qjRLTA!ZR0e^9fM=)^ZZ~ za==Lr@&3SlfRldSBlJ_!{2H`L&hdWH%fL^>kK(9zkHaN%SAkQ}G$iQ9=M}fttpnin z>jAw5zue_i8eD$Y68tv3%dhE8n$zRM1#uK;@M%jtzIum8YtViEfaYjfp*Vd_%^nx7 zkz)~=5JPJOea+$bJ67V?>~SMqY4kgqTv|g*Q`1TmiAib1Nk7yky1VXdZdSBe_IWeP z?V1*7sn={8!4>VQ8r@!^X>K2tQ&e|DgUib{e8H)!Z82_~sVf>MWaOx6P;z0i)f1as{w1y&eG-2iLews( z*Az3Z=P;Iv#xHT{8eY}V0=mPmL$uT<#ih|Y-QIx9k1q8#;C%}yj>GG8)e~FMwlTJ} zda#T3%&*bn#8A5cZAPx!iEa+qoG4o4T;EzeDr5C5n_CKH^R{Tt6)S)S zQTdxN_}sFxYM|9j0F9XXipFzk(c32VEsY5!HW4El>ai?da&yq8VvRZj;wAzR?__kY zui52|$9B6J6gc!nV&=# z#W0aHDo>zcn+L^gaC^0ufUAM&CW%pB>h~>2tqq#PgCP)KFEbP17Q@83!lBi}5_&ZZ z6z9@14A1fzHm#^&yr^0#05s#@QMB(Ks!&D21B?qS%_sqey9_XjE1;wRYALE2Cb@Bw8BRWFV z%ediET&6U+nw-rmqdXV&wXLFv>se8;-__(>=E7tL%b$E~veDzvT`Syrl$;PjpEiD% znVP`t4m5($H5)9&JQ$)TOk7Z5e|%4WQO$VHpPbR@L8^XI@g!@Qr| z?qUuh3mvt)Vm2go?3)dv8hI-AF|J89x(BoRiIZJ|f$XfsFrKKzj~wkP@A9TNs-%09 zNz0lX%}hKEp6X>yF=nkmD$*&;BG89^TF6Fr%*5W{azasPOrsqM=KFZwxD1P=3}MTx zBtgbA8|OZcHAdU|l)I>JLZ#VTl;Ju~}XX&0b$%%A6{G|;2BJG>MNVcBfwa!(w4j7hB9}zzY-J_6~*g;+bi{e{EJgigc==_ zG`T!QMa5BDj@O41wFX`kTtN7ARa%2P(0qbhQ&3F&Fq<27Cz$4g6^N_Pz&afP{X})1 z;PkZ!>(ys%PU?|Pp!Epr$OLmykrwB%YUD}rd4*U_VzByLg_Amk!Z;~dZm|Ibisb2g zT#0-zZV|lXX2p&!HWq5XCGW^$H*)&DW^;>7D5l?GX1UO4#fca5+&8 z^p(vHei!S27z5N_0)1mV-f1qD?s+|ixAd3i!zc@rtknm^qNG2?2DAyz_o+*>K}rDY znyA+j+g`1)iM*CovF5Cx7%M{VjhuoZjV(#sa&N$Oy%qD3SVcrf&A+x3go;-QQy|wd zVvduN#V|;;iorBkZ;h^DqF(w08x%W%-G|ctTSM0GVrwjGQxhcEZ?Y2OmW#pzZz?JZ z>BoMT=a5Lz`^J^ffrKsqbmQdHKi7%q&TmSt&P7FJ3dv6-ABSvdtRv1>58T3%uSUy+sicT=(aq|V%RkgK1`!}3rQ15S|PGD6j2&`<<9rXyYCS&1J8Dsw;q**Co`=Z!w zDZt_ZyL%((lG~nO-}+w#(S1KUvJ%$>6#9V* zdSoc?`*A48m2nD3;e(^zX!#ORUWR4Ji+yk$*YBZoqS*2)M0pun`eD;un*NV1uDrbG zBtvt5^b^WoiG2K95T9(nyvHcR*GV{dkFe8OnQ-Kw*zyM<$i)5u-bavb?;9D8r8hrsQAZ$?zuR(;Y{dmiHWG$e0EW z@lSk8{t;zQ7~j+<(ek3hO}q7gpAnoW>HRt@;C5gc^vPtM~1&aDz>~l|Ciy9r-}k1kmV%w zcX8$A{VN&bn77{(um67#<)!@PeH|I*MKd@VDL+Z{&vE7DJu(^6{{o7A;_H7puKeZz z$ChEV!vvA|`d^GMe}gD5Lj5H5zYp{*e1zGE-UrNF&*?}#+0l%gg(R zW>H?^B`g08GKfW4zq~h=C(6_R?1_Ei=?y|Y>8>m<@6&CifrW>DVTc|YfAq-mQjdn9 zd~E%Df5Gwg-oe8X9z?%oc^T%$l~+0h>INR(L&ReqSx$x{;>yc=4fp(*7fL37N%DIr zPqbwF3p3~3gh6ieEb=!Bo`aT4G~6Zuc-f^7=RZ6N*~#7*)Ckm oiSo`0im!)6KYWRE-q=UhD`7c^$hJ!uh4*jasflp~;*!e$16e8zV*mgE diff --git a/src/HiddenLines.cpp b/src/HiddenLines.cpp index 87a04cc..76cd1b1 100644 --- a/src/HiddenLines.cpp +++ b/src/HiddenLines.cpp @@ -17,40 +17,6 @@ HL::HL() lines = construct_HWprob(); } -std::map HL::get_map() -{ - return line_holder; -} - - -void HL::print_sol() -{ - auto sol = get_sol(); - for(auto itr = sol.begin(); itr != sol.end(); itr++){ - double start_range = std::get<0>(std::get<1>(*itr)); - std::string start_print = std::to_string(start_range); - if(start_range == std::numeric_limits::lowest()) - start_print = "-inf"; - - double stop_range = std::get<1>(std::get<1>(*itr)); - std::string stop_print = std::to_string(stop_range); - if(stop_range == std::numeric_limits::max()) - stop_print = "inf"; - - if (start_range == stop_range) - continue; - std::cout << "Line ID " << std::get<0>(*itr) << " visible from x=" << - start_print << " to x=" << stop_print << std::endl; - } - - std::cout << std::endl; - auto lines = get_lines(); - for(Line line : lines){ - std::cout << "Line ID " << line.get_id() << " visible from x=" << - line.get_vis_start() << " to x=" << line.get_vis_end() << std::endl; - } -} - void print_sol(std::vector& lines) { for(auto itr = lines.begin(); itr != lines.end(); itr++){ @@ -75,22 +41,24 @@ void print_sol(std::vector& lines) //Divide and Conquer Strategy using recursive call to divide ls and merge using merge() std::vector HL::gen_sol(std::vector& ls){ HL inst = *this; - auto line_holder = inst.get_map(); + //Case 1: We need to divide more if (ls.size() > 2){ //Create left and right half sets int split = ceil(ls.size()/2); std::vector lh; std::vector rh; - //No index access for sets + //Get iterator for the split point location auto end_itr = ls.begin(); std::advance(end_itr, split); + //Create left half for(std::vector::iterator itr = ls.begin(); itr != end_itr; itr++){ lh.push_back(*itr); } + //Create right half for(std::vector::iterator itr = end_itr; itr != ls.end(); itr++){ rh.push_back(*itr); } @@ -98,31 +66,22 @@ std::vector HL::gen_sol(std::vector& ls){ //Recursive call auto merged = merge(inst.gen_sol(lh), inst.gen_sol(rh)); - for (std::vector::iterator itr = merged.begin(); itr != merged.end(); itr++){ - Line l1 = *itr; - - std::vector>>::iterator it = std::find_if(sol.begin(), sol.end(), - [l1](const std::pair>& p ) - { return (std::get<0>(p) == l1.get_id()); }); - - if(it != sol.end()) - *it = std::make_pair(l1.get_id(), std::make_pair(l1.get_vis_start(), l1.get_vis_end())); - else - sol.push_back(std::make_pair(l1.get_id(), std::make_pair(l1.get_vis_start(), l1.get_vis_end()))); - } - return merged; } //Set with 2 lines is a base case: both are visible at +-inf respectively, and intersection is where they change //visibility else if (ls.size() == 2){ + //Get non-const iterators to the beginning and end of our vector std::vector::iterator bit = ls.begin(); std::vector::iterator eit = std::prev(ls.end()); Line l1 = *(bit); Line l2 = *(eit); - double isec = (l2.get_ycept() - l1.get_ycept())/(l1.get_slope() - l2.get_slope()); + //Get intersection of our two lines + double isec = l1.get_isec(l2); + + //If Line 1 has smaller slope, its visibility end in comparison to Line 2 is the intersection. Vice versa for Line 2. if (l1.get_slope() < l2.get_slope()){ l1.set_vis_end(isec); *bit = l1; @@ -136,14 +95,10 @@ std::vector HL::gen_sol(std::vector& ls){ *eit = l2; } - //Insert partial solutions - sol.push_back(std::make_pair(l1.get_id(), std::make_pair(l1.get_vis_start(), l1.get_vis_end()))); - sol.push_back(std::make_pair(l2.get_id(), std::make_pair(l2.get_vis_start(), l2.get_vis_end()))); - return ls; } - //Set with 1 line: Just return + //Set with 1 line: Just return - no comparisons to make at this point. else{ return ls; } @@ -187,10 +142,6 @@ std::vector HL::construct_HWprob(){ Line newline = Line(slope, ycept); newline.set_id(); sorted_lines.insert(newline); - - auto line_holder = get_map(); - //line_holder[newline.get_id()] = newline; - line_holder.insert(std::pair (newline.get_id(), newline)); } //Copy set to vector @@ -220,6 +171,7 @@ std::vector HL::construct_HWprob(){ std::vector merge(std::vector lh, std::vector rh){ std::vector merged; + //Get non-const iterators to the start of both vectors std::vector::iterator litr = lh.begin(); std::vector::iterator ritr = rh.begin(); @@ -246,11 +198,13 @@ std::vector merge(std::vector lh, std::vector rh){ if (l1.get_ycept() > l2.get_ycept()){ l2.set_vis_start(0); l2.set_vis_end(0); + *ritr = l2; merged.push_back(l1); } else{ l1.set_vis_start(0); l1.set_vis_end(0); + *litr = l1; merged.push_back(l2); } @@ -289,33 +243,33 @@ std::vector HL::get_lines(){ return lines; } -std::vector>> HL::get_sol() const{ - return sol; -} - -void HL::set_sol(std::vector>> &new_sol) -{ - sol = new_sol; -} - std::vector remove_invis(std::vector &merged){ - std::vector tmp_vis; - tmp_vis.push_back(merged.front()); - merged.erase(merged.begin()); - tmp_vis.push_back(merged.front()); - merged.erase(merged.begin()); + //Create separate visible line holder + std::vector tmp_vis; + + //Since we call this function from a merge, we can safely add two elements. + tmp_vis.push_back(merged.front()); + merged.erase(merged.begin()); + tmp_vis.push_back(merged.front()); + merged.erase(merged.begin()); int num_vis = 2; - for(Line line : merged){ + //Loop through the remainder of the original vector + for(Line &line : merged){ + //Pull out the back two lines Line last = tmp_vis.at(num_vis -1); Line seclast = tmp_vis.at(num_vis -2); + //Intersection of our "known" visible lines vs the intersection of the 2nd to last vis line and the original vec double vis_isec = last.get_isec(seclast); double merg_isec = line.get_isec(seclast); + while(merg_isec < vis_isec){ + //line intersects before the last line, and since line slope > last line slope, remove it tmp_vis.erase(tmp_vis.begin() + (num_vis -1)); num_vis--; + line.set_vis_start(merg_isec); if(num_vis == 1) break; diff --git a/src/HiddenLines.h b/src/HiddenLines.h index 36dcab3..c6af5a5 100644 --- a/src/HiddenLines.h +++ b/src/HiddenLines.h @@ -10,22 +10,13 @@ class HL public: HL(); - void print_sol(); - std::vector gen_sol(std::vector& ls); std::vector construct_HWprob(); std::vector get_lines(); - std::vector>> get_sol() const; - void set_sol(std::vector>> &new_sol); - - std::map get_map(); private: - //Solution is in form (Line ID, (vis_start, vis_end)) - std::vector>> sol; std::vector lines; - std::map line_holder; }; std::vector merge(std::vector lh, std::vector rh);