From 6db271bd7e1c510602d2ba2781e4b5b0f09b5514 Mon Sep 17 00:00:00 2001 From: TheDoctor Date: Sat, 12 Oct 2019 18:04:36 +0100 Subject: [PATCH] New version --- TestsVS/Tests/Tests.vcxproj | 2 + VoidNetVS/.vs/VoidNetVS/v15/.suo | Bin 23552 -> 34816 bytes .../.vs/VoidNetVS/v15/Solution.VC.db-shm | Bin 32768 -> 32768 bytes .../.vs/VoidNetVS/v15/Solution.VC.db-wal | Bin 3374312 -> 902312 bytes VoidNetVS/VoidNetVS/VoidNetVS.vcxproj | 77 +-- VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters | 197 ++++--- include/Config.hpp | 27 - include/Cookies.hpp | 100 ++++ include/Defs.hpp | 256 --------- include/Enums.hpp | 171 ++++++ include/Handshake.hpp | 29 - include/Headers.hpp | 33 ++ include/Http.hpp | 20 + include/IPAddress.hpp | 108 ++++ include/ISocket.hpp | 74 +++ include/Init.hpp | 47 +- include/Net.hpp | 40 ++ include/NetworkBuffer.hpp | 24 - include/NetworkMessage.hpp | 32 -- include/Parse.hpp | 67 +++ include/PluginManager.hpp | 13 - include/Request.hpp | 52 ++ include/Response.hpp | 43 ++ include/SecureSocket.hpp | 43 ++ include/Serializer.hpp | 17 - include/Socket.hpp | 84 +++ include/TcpClient.hpp | 98 +--- include/TcpListener.hpp | 32 ++ include/TcpServer.hpp | 64 --- include/TcpSocketBuilder.hpp | 112 ++++ include/UdpClient.hpp | 63 --- include/UdpServer.hpp | 34 -- include/UdpSocket.hpp | 29 + include/UdpSocketBuilder.hpp | 152 ++++++ include/Uri.hpp | 78 +++ include/Util.hpp | 37 ++ include/Utility.hpp | 94 ---- include/VoidNetClient.hpp | 39 -- include/VoidNetServer.hpp | 18 - src/Config.cpp | 29 - src/Cookies.cpp | 84 +++ src/Handshake.cpp | 60 -- src/Headers.cpp | 22 + src/Http.cpp | 120 ++++ src/IPAddress.cpp | 62 +++ src/Init.cpp | 23 - src/NetworkBuffer.cpp | 9 - src/NetworkMessage.cpp | 110 ---- src/Parse.cpp | 0 src/Request.cpp | 31 ++ src/Response.cpp | 97 ++++ src/SecureSocket.cpp | 163 ++++++ src/Serializer.cpp | 20 - src/Socket.cpp | 511 ++++++++++++++++++ src/TcpClient.cpp | 275 ++-------- src/TcpListener.cpp | 54 ++ src/TcpServer.cpp | 290 ---------- src/TcpSocketBuilder.cpp | 52 ++ src/UdpClient.cpp | 123 ----- src/UdpServer.cpp | 57 -- src/UdpSocket.cpp | 64 +++ src/Uri.cpp | 188 +++++++ src/Utility.cpp | 280 ---------- src/VoidNetClient.cpp | 64 --- 64 files changed, 2972 insertions(+), 2222 deletions(-) delete mode 100644 include/Config.hpp create mode 100644 include/Cookies.hpp delete mode 100644 include/Defs.hpp create mode 100644 include/Enums.hpp delete mode 100644 include/Handshake.hpp create mode 100644 include/Headers.hpp create mode 100644 include/Http.hpp create mode 100644 include/IPAddress.hpp create mode 100644 include/ISocket.hpp create mode 100644 include/Net.hpp delete mode 100644 include/NetworkBuffer.hpp delete mode 100644 include/NetworkMessage.hpp create mode 100644 include/Parse.hpp delete mode 100644 include/PluginManager.hpp create mode 100644 include/Request.hpp create mode 100644 include/Response.hpp create mode 100644 include/SecureSocket.hpp delete mode 100644 include/Serializer.hpp create mode 100644 include/Socket.hpp create mode 100644 include/TcpListener.hpp delete mode 100644 include/TcpServer.hpp create mode 100644 include/TcpSocketBuilder.hpp delete mode 100644 include/UdpClient.hpp delete mode 100644 include/UdpServer.hpp create mode 100644 include/UdpSocket.hpp create mode 100644 include/UdpSocketBuilder.hpp create mode 100644 include/Uri.hpp create mode 100644 include/Util.hpp delete mode 100644 include/Utility.hpp delete mode 100644 include/VoidNetClient.hpp delete mode 100644 include/VoidNetServer.hpp delete mode 100644 src/Config.cpp create mode 100644 src/Cookies.cpp delete mode 100644 src/Handshake.cpp create mode 100644 src/Headers.cpp create mode 100644 src/Http.cpp create mode 100644 src/IPAddress.cpp delete mode 100644 src/Init.cpp delete mode 100644 src/NetworkBuffer.cpp delete mode 100644 src/NetworkMessage.cpp create mode 100644 src/Parse.cpp create mode 100644 src/Request.cpp create mode 100644 src/Response.cpp create mode 100644 src/SecureSocket.cpp delete mode 100644 src/Serializer.cpp create mode 100644 src/Socket.cpp create mode 100644 src/TcpListener.cpp delete mode 100644 src/TcpServer.cpp create mode 100644 src/TcpSocketBuilder.cpp delete mode 100644 src/UdpClient.cpp delete mode 100644 src/UdpServer.cpp create mode 100644 src/UdpSocket.cpp create mode 100644 src/Uri.cpp delete mode 100644 src/Utility.cpp delete mode 100644 src/VoidNetClient.cpp diff --git a/TestsVS/Tests/Tests.vcxproj b/TestsVS/Tests/Tests.vcxproj index cebfb3c..1e194a6 100644 --- a/TestsVS/Tests/Tests.vcxproj +++ b/TestsVS/Tests/Tests.vcxproj @@ -101,10 +101,12 @@ Level3 Disabled _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + D:\VoidNet\include Console true + D:\VoidNet\VoidNetVS\x64\Debug\VoidNetVS.lib;%(AdditionalDependencies) diff --git a/VoidNetVS/.vs/VoidNetVS/v15/.suo b/VoidNetVS/.vs/VoidNetVS/v15/.suo index 2cb1999e9d2ebe816ddb234e5aab6362fbbc689d..b4a6ceb506bd3aa576a46a887d20a658a6f3c6ec 100644 GIT binary patch delta 4282 zcmds4Z%k8H6u<9LN~wUTfRsO_6h&ke3RH&-W}y{D`wxL?T+L+AO(F_P*_^|z%l2WL zx(O%CHl2SUe%Oa4Q!$w_ONP^Ai_3yr7PD_Naf_d(UvQfyll@NHSD#D_8b55i&9C>q zbMHC#ob%2-=f3b6DSSXaU^NM)r3;aQu?*aqoSbB`1e|RCOrl9?d+PfeuJ^w4qm&KW zSSjt6cT2-`Q}*hTK*#}Tczpp`M==-3 z0`h@OKnK(U$-q1y52ylohg_f%m<3pX!RBh|&S3NWL>nFq^j+Hgk{XPj0y2Q70p6xQ z*7LXl<2k@!^Td$6E%oxRzfG~}=rlGZ9e7O-zP})YO<;4l=f>u7pBn2m=-DKuv3cBc zQ=69v`gG=LV?0l&c)>mxSeVFGKZ3B9V4x?*;6|FC)-Q|lAgBgd&L#{>sREcB8olygbL5k&0^qOlmt^|H1p zb`UoK+@@GSCeLwQDd_BPMUvD_H?zIE3XnJw6*7ekJ`Kl#vVrzpJe-#4wp>CZF5`Xt zP^96IRo2HG!cMA=JLxDE+;!5}V$G-~?Gq{GWstW4{2J)YY*Psj6zs;tE5HD-2Y3~D z4G056DXTSnRurwJ{nVf0;rAi!qnjyS9iIS>%=m)6)Sv1}77IW#tLQY*Vwv7OV3@go za+`R63gwL_3l4rxHOlrB%HMZioxOA+!TOLo&tnfkc%*&t-sKE!T^kLqFGp(9)40DB z;lT&2R#3gUCP9cKDqmkx(* zN?Rj~9HLuvfoVHLDQquVGWJ$x+e|OFrS-gUEf|il z9dVnPt*}jWLh}9C`VH52B-I`tGG5Se$|(TiUYjubbg*^OpeBY2qC}I5sO9AOdlKFD zuF-K~^%cki*=x}y}K{i!fWcBh0-gub=877 zdj=|(S}JYPITz1)R^`eAkx4b1ho>$!<;SKLs3bZu<*W(#d%8M3!BD`t(*JCer_uXQ z8E%%LYsibqFz*>yYFQrLxjx#kAkubq{cz%|v7?{UC5QEtX|<%`>=(BzRJdY*P?RZ!&kKQiQ%BMd z4w^ZA)aO4TCH?!8Li*W?vwrDN+MT_#j*q-YL}gs`R7Gh zJzw7xk8V(>%7=OB|KX_Oy7Qo@;);_P2_(9e|Ly&gE|yRqK)ZvIg)u+Y@9AU}RJVC2`iSM+JTk0{% z#MM9A7LM(}fXhGU5ZoLijb=CI^9P?GYh!J~hH*U|U7JOQrbQHXm5{}mt>vpmji7UW zWB&B_JQQC#=UPD<9dA5_Em^@CZdpMi?(8Kqzy9Lun{K$8vzt)uxt^Dy;`6mw2>vXp zhMnt|kc@i&~? BoZ$cf delta 2556 zcmds(Urd`-6u^7G7Wmq=v;$=P9o<-<0@4Z$(Lm(u_m!2uErarBfehLL#X+f~KGZlizpm zIp^Nnd(S=h^e!%Qi?`Xb#mFh*#h_3mW0T~ETU%SCRU)_AKVh)N{JQ?1KKEYwn(Ze; zDTKK&`xrJk2Tuw;0@v#bz{2TZMtOnl1Exy%nNXdA(0o)h@pcl{IwTdLp=yNsq+y+o zWFXHVnaBYo3&}=ukX$4W$wvwhnitOGWM!4a1ufRa@iy)WH_*wV+*s<(hVx%N;RaHc z7m9G??>M!*bX9!DXX7>fES0_6;N!M`vkh{U5jlh$MrWSS(dCz7`ye9kNM1`B>K@)| zcd)3&WOxIG2=XR!8G#y&k-ZJ~bJFuyP<$Wx0J(}>Luigws^Oxhkl`#HEShImk*DJa zsAlg%=&*w)AJRc2)bGG%o`a|Jp)*aWuRtijP0i>map4KQihe2fTlQy6JBI3U#82ki zxkl48HfE4nB#g`oe^Cw`gG!=ev7qhou|GW#T zOER~m2udA)6SCy`{}8fy6tc8!D#5-{zh^Au9qN;Yh9}E?@Uy#wU8bcNWP>>2A08dq zF~Nr(pS)ri8OnxhZb_CkI{TpCJLwxdH3av)8K~C5_g(|lv6JBy2H%zz!ohjFyhr_R z|8id-V1&{VBis32fr0SV1#!H?b==w|`JBDgf~(cm6!49kho`10?5$Hav1PO>6tY&e zw@Y?mrp9BRoouy{P7+)V)^4F9G}iT2=|S^^)79t> zb&IZvPV2CHvcl6k-Ro(zH48Ojhtw!oZQ`-UTEXG5zB=RR5dveao#JHo3#~)11Z~#Y zj-!ILa->aYIVJl1HtUoyXbVr&9P6!|6})3dg`jVIxEa=7uhou=;yRNtLJMBOqS9+7SaC~_4Me*}4$D9w z|1qw5QtQ*$Gz?7QBQs9fFmtp>h29BSrh9Bw- z@XfiK(M-&ta(<^4Jet;%chWjMC~o5EaYB!m-7ITz^7J&I*H1#ZVZy(cw7O`y#8d3k zGa_LNmOHj>W>LL;DJUb$#$-1NE**r;O*}oD=zSpDV8gtw#_Xw3&}(8>Yl&bQmgxU$ KwTD~nQT+j_R^(6s diff --git a/VoidNetVS/.vs/VoidNetVS/v15/Solution.VC.db-shm b/VoidNetVS/.vs/VoidNetVS/v15/Solution.VC.db-shm index 4cd5c74ffc9f636fbfd86227988dcb9eca531e0a..12f3be4dd3b5a2b5146f36630acbf7e99e490797 100644 GIT binary patch delta 23 ccmZo@U}|V!Vr1AH$a~Xha{})v5D_B<0A0)n)Bpeg literal 32768 zcmeI5b+lE*7svN^U%I>D(cMUQH_|22B_Ji;EdtUYAn_y&6qK-#ZUdAMK_x^5i&juV z+{5qO<@mt&=04xOvwmyMS?jxI&pCT$@AH{+?wNmPZo2b@NFDt}AWBxkM-(ph?aNdw zZ0!)*y0Cb@YmKY)Sy*vT@|(LV`O*dGFI_!2RKGbz_r1e^-d{>=Vv)G0JSdh|#`elM zQpWY{cwQM_$^@RB&?^&3nb@eBxPn%7O$?#FwM@Y+1bR-uGMpBc22Q#Y4zNiokz3tik(lZ=l5)X4h6Jp1vOiZ zv|_9BE3DZ?Jlo&CsCKPbglom6ULwM|$E04;JEzK0nq6A#GFrW?W|tGYyjHKE*%dXr zl4e)d>?)q^&s)W=s$H+9+0`|>hGy5)>{_0!_g7oHUPrU*KEk)&BhJ;Aa}B)ns%)s) zjWqjl&2FsOO*Ffy*v+(hbIop{*)27@m1ej0Y&HIhmCC1$cTU-DHTwy%+iCSD#a6z` z$6xy2N%cPZ-z)V_srM%1(|*y(Av$eL^Nvp6(Pe_s;{=9Kiq0SKoX6-lBSTBK}Twl=kXbQY=)wsP5VSd*}D>Ds7^QspqF+ zs5Vi>iHxnkk8Xzj=ww@A%T{PPku zA5n9Vf+98NP;(76$MDY`)O?|oNRMw4?@|3n)~8~r=4u&5%FiFyKPM?G=hXLIeb?3Z zTz$XQH(7m)_1t<&{V7o|QEyQn(bJ;7qJEdM1w^`L_wgUMd$o_Cl$@AX+3^ELtLZQM6RFOtf6ILKH5_Cdw|# zA=1Z5jYm^aGf{I<3sFl^E0LPZsQeUr#a!j4cqv9I4;3q1R8CZ0R6$fxR7q4>R7F%( zR83S}R70fNDQ>E5baM)qw(f8Q905nb5pVhfIb+3 zId~DTU^8~%Gn~e+h{ajCI9KHQ{3P$PKy4mnvB*iSkc%a&G~-c1*)t-U>mfB2c@X2tRSl*E5&NdO2J0dMAoCVmUV*dWu0g@>M1Mb z2Fj|x;j+4KoUG!TA}ix&$m+cLvI=gAtauBjRrD&oPU~qCy-!oYd;}?mWSWzfE5;{M3u57%|vutnl4Kzo7Ja3Hud0%MhxCG@`@$~ zgJvCRxM2o=82T9mjh4%K`k5|8t7XhIDo8Kz7e);B8F|G_R*&jM?fhW#h)X?rk`aTq zIH}e5w5u_u+nm~`cG$CZd{4hqdgMk$)I%rq#VEXrx3L>%aT9Sk4QJ;{+>qPz7@o&# z_p}Q0Z z$&eZO@ffP25n7`gp1~wc#{#^B_4oiE;tO2BW&DXGoPi5)X|Bnwcw=7Gfpd#8!NSlema0xR0cqkqdGeuEni+6DNz|ar@U{k_&xkB+oV?b}*$Bb~>vhJDSy$-R$bi4tC9Cr?fV*gKG!by|BCNT-Q%_h+9K% z(cAPjeaKfV5nD$u@i&%Ys{u+v$qb`!HuMYDu=l4?JcpO?mmJHNFVeT}Ps^E(!(1%G z>v#|QaMZ$^P?GxaR3io-@l{S4Da&Au=KuQLNGtg~$MF@gltWTVZp4Y`Z9~6c@fsj| zIu4QjGDpk4n3H4=%xSXU^*&+#4ZAR*`B5?1o9K=9=@ zdioDp$?tEDAN*}vu~HdFea|wfVYG}-Th74@)?Fmxy!;qf<)&8htxW98WAyYN=4)0m z^mE)!tN2@s8Kj|OY3k8vUM`_7^!oDbZ(7!nPn&p>=@QGde>ju`p{5v22Y!9RzT+;qxhky9Y! zy*8v=9?q;W4dNL_IegB)at@1Bk5B?%5sUG&({IE`gfz&3q9}*jXpZ*ijp6td#r{EX T=Rax>GY|HenUvWgC!)Uqg-1m> diff --git a/VoidNetVS/.vs/VoidNetVS/v15/Solution.VC.db-wal b/VoidNetVS/.vs/VoidNetVS/v15/Solution.VC.db-wal index 3531d397917deade2f2d1bf03c9221680bd9ebc6..8345d96bb1994e882f567df60f44376f179dc9bd 100644 GIT binary patch delta 123794 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

J4L?uGU>?Qsq^WOv+Iph^&LmuRx3!m@ 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 literal 3374312 zcmeFa3w#_`eJ`%jV@FTRwk(fjCDFu*B8|0)qBtQB#W=DoQe#<8Y&j$~&a(EdrH%FS zK5VN=3M)B*Py)1+Hqb&#X@LeP6nc4-LQ4xIDK|Gal+x1jzg!@++?MuFfeV4OaL+k2 z=gc{0W_DM~%aXqP`B^H7*{^ORL zrheA(wkNg?{biaY8FKnBZycK3_m;>1^w6!NnS9zlF`J!E=ItG%c6D{tO}0(SR+E1< zw2t?o^=tVT@;_@&`W|*zU3JBlM_XE-uBu*_s#=$7eJrdH(trRE00KY&2mk>f00e*l z5C8%|V09p{aLh2R&Q9aL&V2INRC+Eudsq5+-uth5_~6LU_=r6|w0m^K_7d%0JCm}H zWhOE+d3)@@xIK1wbkrU`Fm`DC;LzT&aeMA$!Yi5}1#daHcmL4AJM4WUcf?r}Gs)?+ zoll?jE642f00e-*>O_F<5!7%VLHi#$U)htG{b(cot=Jb> zop&6+3J3rJAOHk_01yBIKmZ5;0U!VbfPjyHq9b@;;~x%R`Ztfgzl@GR)(ud;f&6_* zI)a*(pEDf+`41l;00e*l5C8%|00;m9AOHk_01$ZL5jb9BT01(8VjZKK7fuPnIcME_ zyz^R*?SFV|@2!VN?7d@qMsBx5irWXqxE7$7H{n1>a9-;O=$gKk^94TgMtjG{Tk7rw zU*LuBj5s3@00KY&2mk>f00e*l5C8%|00;nq7Xbl^1LqkgoCTIA7rJ3*Vi;@jKuATkr*eP5D)fmrhsf-lhgL`z<32Zula z2mk>f00e*l5C8%|00;nqKh1zRG{F}@oI?9~ic=V)9gXt^#((gY&%f!Nd-owu;c|u_ z)ByrO00;m9AOHk_01yBIKmZ5;0U)sA5TLeylkW@M`}O*Ndu7$t`=KLParY4y3Zd;b%Vl%~_0ox`e}ZNE9W-#0 zCk*8@=U8SUGn2Q+4vgDlhgA=4Cr&2(MwChiM_x8^aAa(F~D@2J0>V3p#@3K#4j)00;m9AOHk_01yBI zKmZ5;0U!VbRvZF~j-cnx{mmD=VfwRWbOcS(ucYw|maQXbYf z00e*l5C8(t27$Ro)7sT#6kC~VyUf`L7QLXhH+ekfy<>YuZnq=LQ*yni(<}4w9q0&V zQt7j~Q&R+=M6!^dWynjoLr0*fJfI_hjv$-M%+A=d_9t%VCTGtil2cO&s(8rR`OM6` zTA(nKE6mN!X7lM(AlJFPI%W-Z8da?G1v(=aU4-cf=o-I?^93&5{k_+H`NRMEZtw-3 z%}WS%fdCKy0zd!=00AHX1b_e#00KY&2&@h3lcPcpA{$7g5q>6tup zTqhqlEAF}EoJxFj$>jr%x@6@%YQE}7 z-SmlMVJe?EF`M;G%0ctjwaqbWUw4%GOZhzm^0yZ71>kqE%UEb*y-7UU;vlBfB+Bx0zd!=yf6qX+|XiLj$@qbXZ&00`6xlSRwV#)Cw-;Gv*{f00e-*3xj~7BiMQF zn#Vr>P}{4^=m^$Jmqxb`maQXbHD6OwM?kXi0Rlh(2mk>fux1b_*0!3~UdJe2!sD&0 zJoAK1{Z+Hpdkjnwd0ov`YSQrQYPK4K9XbM`n$TIG&=C-tKjIOP4kVcIYTqfIt~af& zE@N?!(WFHwanPVprA2ZjWNA?tIs&_JN*dA_Bb?k5F+BFt6sNeYj@=8yBXHje1T)UJ zXMA~rnD@Pxes_-7nAVO?qgcn@K2mA=vY?21rE9%M`0&`?TMv)efyQ}p`kvt@;Azgn zF~fw8;Jnol&^7*g&KG!k>;D+)f93I0;0vsoDJXs@5C8%|00;m9AOHk_01yBIKmZ7= zZ3Gm)z_+*Wf5#1Pee&aF_yQXx$ePIUviSlVVz-y!3&d_WUm=|hhd=-b00AJdA`vLw zv);7Y+l|E|B9JsS?QBp?XEdb}s~Iy2>HdX;rHGo+G?!SKgF04JDZdoAbYaelSYwij zIWse#nejusJ3Sj>)?j;-ODfd1VGzJTU7O1Vv?Z>vgxkc^4sfmq57R@>2y*^8?*X4je>60r$&FzK3`YH zqz}FT{0=4tyoaTROe*WWiRA|RKj#a)Z0q5^Km6$%-wwZn9y<6B2mk>f00e*l5C8%| z00;m9AOHk_!0JYT+Wt54eSu#X{m#3;|G{563mw7gzUlaNKmZ5;0U!VbfB+Bx0zd!= z00AHX1Uv*39l_&&a{LGXeClI+%jgK&B=nle@v?OU8|$8_Ku16d;R6JK01yBI&o=@` zHpZ-L+Ks!p!#hS`^jVCV6g_V9*onfqU7!?Y*wRGJ85eW}&=G`&WLH`H&&Hpc){^|_ zLPv05?9lkZp}k|{_T0&YqJ>zBASZ5zaimk3+}u=hJ`tAZd&*#r_v{qg((uv zdp4U8Wl3CcO^9=CbIjV;9VNt3e$RmXt!1v!w03nF#a2G7iIXTo6Or1a4{#z!DGwb% z8ajfhG-LG##;mY@0387xo+&c$JDAK)q{)bvC19MH&7Mr0PG@tO*%@1w9>(q5Exx(DsY&M@x1#+Fst7FzsXVie{$p=Dp1aytx#`yx@dg4d9|Gf5( zc7QMNd{4j8J`ex`KmZ5;0U!VbfB+Bx0zd!=0D>-6(c(zd`}4JhRQw)J+lYg~DraW4^6e z^W$tAAAEta;gLg9q$?7)iQ=_qWOQVF#2y|xG(5CtB-~=k(1zc^5iR&(B~BzYEB{ig z*P1&?ttEC(SQ`8e%1D7PFrCQH&!rXnzhDJ`FHrFqsBu5wcMyIDxgDBw1L*tHOY7xn z;0v7Jd;z+~-^BR>e=vOD;7{N8p*rvd*3j|;KNSc70U!VbfB+Bx0zd!=00AHX1lBSF z3SXe<_aDCL&E2~;mEjAtOMtB-$IIpmY^r^*LcRbghz}3|0&5R};^|GM)zf1v_KDzj z39|bgmju&K$ky1R|VlWfeBwes?DvohkzIhAlUDWb`|3*&r*Q2pzwnEJ z01yBIKmZ5;0U!VbfB+Bx0zhC*BB1aEzIWr3Pu1ABzNQRcV6%i&D>+^^U!c8qYsGv4 zQWPH`00drC1WvV^*3KTI*u)(>Gh>5pU{?}1dxjC!dA(kRYu*JFz}3DJ%RKl3@Grpj z*kywk_yWQ-shXPC>%C3QR^-&Q&#Bpp!wF~Mh8ELu9OGO+vw5mT)o<$*>!+Gmi3wD# z@oem%T1(3|hN|t@dBOv+#}2r`6ymmGYiE{0-EIoLfCQIsoDRbZ@d#`IP$iv36n-}S z#BXHTT_o&Yf-eBR0GZp}l|D{zQ7ND^RM3b)*o-V z0{#VF)WsK04g`Pz5C8%|00;m9AOHk_01yBIK;VT!K;a8~{U@(o|Nf@e$I9>pEa~Fb zljCLc1vb~bX$gD*QWzf~u=Wrr)^9egn~9aaU$GqPCU@bTUfA3%&x&_=Z11gyM{L(( zUpN)6qIV_mUfg-ngy*w9lXBhFgD*ftr0_4G8>N}aNwGV5&yi|?F5a`=wA$N^#UsL1 z1g*3|F*ehbN~~t=bkD+ZJ*&_DFw=0*jRdoIEahIa#^7H7{srJ)K%-aq#_2E{Gx!4F z3-osx_bRg+HYn4lMGVpPrDijtxF8*U4^*$1(8!t5$A^msrW|@QMbAG&DWzhVaYL zt@#rLG9S=xUT!j(O_S8j%)IROh`0*KOs5mMd~$kD_g)pZNu`0r`9pFS}CP6fyCo&TuNn4cN z$dCeLXVR@q_Z>CisH}444(#3iVtz*N#I&yD-Pdg}%KRu@MBt1L_yUMWaF)|N_!$m~~CNakt_>LT-T`w|S>iT}H^I_$j~_@Kxzf&xV*a z*dFDgp20Uj|86YSwwl&n$0%OHZv(qWf{LJc2~e}(Uw{~-65&Y6!?Ac+qef&ER^4_4 z{{m?p62v1QU6-dkMJHU1XC7x>$sKJuT7SN?CrBaoJ! zI0OPf00;m9AOHk_01yBIKmZ5;0U)q?5m5L7vCs9--SyeYZ^ol9r)^MnAx9>&V(A7uNK)#AYFcE%_ZW0-)AG?dHa z@~-m+O|T{`CT^}qOmT8;rnRfxD0cB}d-fBgPUYWm@CEL$_l?{Ucki-0S_F7EVN4$x zP5m~rE&8S0Yu1=BRR{L=!55hE$rJL;Ai*WrEfdfMW?d_T4S;FYux*y>Vh700e*l5C8%|00;m9AOHk_01yBIFC+pAU*NIftA1n1{{A19 z;R|e)F0hRpFPksWVO+Olz5uCm-hPTlJ6OQyg@W(+RG7ip_N(}|RoO09^Oh=a7mZ4m zcF8nSTG<|EEMb~YP%ubMxo0Sny&Z)%gESF!BP zBB1aEYIpzNjonXz*=#(yC6FFWsUtnw1r^>h{qXLsrZr4FIa`VXKE$HV zj5{K|)7yDhJ#33?$pp+L?;=lDyMr%~need^MmOJ<4*vovhnj2mjEs(qkJ!UQhlYpt zjFi?zBOZZ?cm#+?pfGiaiP;^%Q??Q`S{iZ!yqhqlk5XRZSc!D-1svmCKV#~sHf{CW zI>mCW=2c?5R%{e*xl3T@Tj;z5w_F;0uf$ z7`Mj`kB-Le+~msS3(z%wC+7?7>Po#V>)d}U{0r#Y4fqZOfB+Bx0zd!=00AHX1b_e# z00KZ@RU)A91unhu$g4i~ z2p6-9D!nwtDQ>G{u^|@Pd=Evmc~LB;u$@G5B}6AtIKXjY7o&Ng$!Dh1iCjK8Js0Fz z#A4P+S5&BZ|1<;Q(7dfSX7zO%1&$lH(@zvKDet&00yDWN<*$0*dudhYc#Uc8=roFT zdczbn`m?;!wPhOT#pM(5G{hq~KjRUQMfHWP5u08NCKvBU5 z2mk>f00e*l5C8%|00;m9AOHk_z^X^!Li!8&zChuQS6}!3$$$FS7GjWZHD9wV?f(m5 z%P(eVa^jbduXe!J9sXy!hPf?c!q0!A-mVb)0@B-SRH(U)~AhLtG(S= zJR%G?^ikOm=#Ld!YDoWte}SoVLPS9TUx3)Od^jXyqDrC@uZ1Wc9W`wE?SL-;z5w_F zno}fZ5!a?i@Gk)W0%QtzSNeD!@d#G1e*vlqxQOoy^ycon_v<6ZuT#E2bN!a8R%6}Y zue*C)tfi&-?ai%C+Z!Kh_(a1X$-oB)00AHX1b_e#SThJL*qx@eYnQQjAjA&H`lNM zgG^`?{{q{l?|b*-Q=i;Y#=k(9G!fcNj^ST`==VuCaf*mXfOrH_KnD01Ad>^|1@K;G zGi5S9uI<-t<OvOc7E^$Bs;%Mbt4Ws2qi9`p2@pr z@TCxM5RZWMIRY73#frrh{0mSI?BEN4FTnS7X)ocMJ$yTsr@_C#`R!kT`4HrMf!f=r zF1V&6|EH8M&|;p9JIOG>TL? z_7f|`xe`KSDLE0R1){i4;0p+6yquDtZq`-4F~7DA7-Tv_ZU0?-U!c?e;P*cJ?H_&* zaSE3|(L+rj00e*l5C8%|00;m9AOHk_01yBID+mEaNAUAEIWPbC*4KZajE=yTexF5- zp(B8fz!%g}exi$q#CGK|{5o`dR!AAY0lw?UJec@r=oM#hipMMxQ)P#-a8h_O(+Y>2 z0DcF_rZcq{Lf@wZzdLc#-J#c!k>w!RuP4t=TWBwqdKzQcGN|N4=m;v6H$q3SY_z;zw|KG5v+?nP(nvQGVuWdKmZ5;0U+>vAy75a?fREXQX=xzk?oym~W?t zY?TYgcJeMc{2Rf)5&Rn=9@5x>ahrO3h}-ZxNK9btolA6Z&=I%~1=}na^CLT-nVHW> z`@RmD&e`-I*Ad+E;q{+7_dg%0hmPR+n&_fkAOHk_01yBIKmZ5;0U!VbfB+Bx0_PP1 zijLqHujqc@TlcSn4zi-=+IGo(@0Ubejh#3j0RDhaStlw-} zH}@FDer`2o#dW&7h#Dg#0`U6-zdvckCA%Au$O{Jbg2xF$Jc0_tBtb_29f8%|Z7jO- zI5~2FeBA62UdD%ZkB-=K4q;rB_Hl-I1k-LH2Kmh^Vhc3sLMf4>jHZ+&Byv<2XT{U? zrq$JDEDkb(qbMZ~8kBn{k}J7!qA(4?dCS4Q`-eDpUH&opG(wI>K@@X-BT6OB#a&6M zO{n9|frgkh(iIg8&OhsbIBdMrj9L9%#=XkyhS_-O8N}t)N6@=O0p;c9UO8>RDQ>G{ z_hO+<6`P8RG38!}*#K3>_^pU_LXQPUP~*={f!GI0La#xcR4Hf%MpqGjFSn zS$&;Gf#b&c`xAvs$~&%$z)UVmpJMNOFRkhvuOZspPNP_-H%#vd{aIe=+A@vv;_?Z2 z8sZVGARWQsLvM?p_@|Ft+7c^Pt*?8kq>iBOso3q({s0bv01yBIKwyO+kiCdS=q=tX zLebM#_QlE!iKbLCIilq%m=`%cU8Mx}td#-!mu@`QQyifqkl6K-ih)5Th=5WV#3Psy zF!8xBSv*Or9XmF+A|W@;xg!>P+hQc zWW)(*#BLJh$02O_#8yGUeGRABy2Z5i?=XseY{il}E3eXn7vV3a#1+CW5&qaqP{A(2 z+%CD>JY1`$?>!N$L|EALJvi@ZeH_uw00KY&2mk>f z00e*l5C8%|00;m9Ah3!Npr)B^d|zPd^ToHDeV4SrzrZTKQx=&82$y|Um%Q3$ml9A$C#7+z~cjt zFPtmqY2Jlz1n~HBZKk!W-6(c(nI8jA>QpJ=QDRes(l5LQZh3BEgL;M&!7Xa{z7Sp(%1B z8xej6;9r0V{Mk;35ZZ55?u430;CFoj&}XAG`f5e^7a+T>Y&+36lZXu{KWR%4d-fEI zo3qp#pw?c_U68IaaLXO|J%)dQvxQUc7MlE|tTeks1(@XH z6hHt700AHX1b_e#00KY&2mk>f00drq1QZ=X{jdGPOMYeeSAJARN6;-@_EvHX9RYL% z{%*LxT`lc#K}X(i)hdcf&Mj1}Z_&4-MiFw^Qj8$--1V zabh;>2ha=p$%c+#+$JNRkLI(mLi&w}u0ZJ_OX(ua6shq^9Oww3BgoF)MVV-H2xZR* z;iK^|Fgy)9f)%7Ac=$cr{^BD)`}@bJj-ai!rve>8ZBN}vX_o+pKmZ7=6$BQBE;g-> z4&&TWPAkr*vt-~We=k)SS8iG*oGZ6vAm-gtSjFV*%cBs7F|G$|W{Hegt2LeC< z2mk>f00e*l5C8%|00;nqwSs`+U*LVO|Kgkf@0aWDEaP9`G6|ecat!|h@Gk)W0^sq@ zbJwekl}Nb%%u&E*Pg1aVY|qH;cIK>Gi0ASuJa!)96mmH|{0nG&R`?eNV^v+|XiLj$@qb=Q<%tkD<1^PS*`dB`eeqNi_mG zqEa+x`LQ6xYW2F*-@6p?wAzj?5~AuLA}vbf=jYO)nt2Ct3WZ~kxb2JC!!+seFW>`I zNoVoVgnt3JI+`S|py}yvXV4idlp0C7daw-AL}+NKdM# zy{VYE(6r`vkr|y5no)ob{{n2AfNV*69yq!}y0Wt17A1KNI-f@XHi`iQHA8SH8j;uO+wj=E*Q-CpC5H_x@* zt;$R)&Q_DB+D&U`k5Oz=x)(3ZjSLKPo(Q`{CYN7^H_%mRm#EzF@0yQONNxX@aUH=A zzV?Avocx#X{~L4!bW(~B5C8%|00;m9AOHk_01yBIKmZ5;fmM%yq9b@?UDv<8a^%Q= zE2AUmkx;pS979I{9RYL%VfF@zxLVpPvt(63oI=DYM4Uo9=#E?_j3Z8A+GWgVpd%PQ zFm`DC;LzT&aT_`UPuoxl1zOQUEQOJdIEAkLpAl^YsbAIL6i?SP?)u^&BNB*G;-Ep{ zu8ZVKZk#9_;I5aNM##e_=_h_8N+oH=BGRKmc``-8ar*_Pb!3-OyqPm&)dJy4iO4e05rhgQ zq}5KDK|n=TpUf#s>Cj~nbOf0Rx?GhIFTEoklpDo8p+v|AdFvL_+P}jn_VLal)~>Ki zz%Bv*M$>71#3DA99CQRUQZdn4K}SFhPTu$`<{-h~*<=|*ZT~%7M{q~{BX786%sL7k zLDT{d=|BJo00AHX1b_e#00KY&2mk>f00dSQ0*a1cY**LJr{8_gg=KUEj)cI4CWyM)_CRWr8YWnaxgJOXMP z61ETpDcOiE49!vOAr)5L3|F2wfOrImM?iewLr0KLCz6HyEE~xr^}>J z<6c%I5MV&`)cOb>r6?fylOhH22qG}^SW}6Kg8Q!KEGqilIbK72X?7aLI(|cVX*woS zevkLPwoK!^IQ47GPr%a#c@PyXnc>qb9Dbp%$`7nY(U_(IJ(X}93KI6ODf zZCd^P#_O(U5-QeI+C4hLpJaC^qvb1M)CSrNNWesi08LI4fQf?n z^t7ub6)6f$&r6M(-_RLMGBcBznGg(g_G2_%nCpqz4oyuI<_H}rF`1dk>+>Tqxa%46 z#7WP~6^^k0PkQ=9dM2Gs=4Z1BSA3)AA1h?0QW1Hn^jvx-MMFmw=4NN~nk08>c7B>> zdlwcU&oC)aHk}G&I764kti%0LUev`+5w~d|kmNu|K=cun^dItQQhkN4b`^-0>oi_{ zsk}sJ^-`mHN*JRRI)V!C8s+KP&=E*0QnF9zJ#dP^hYr4eDd-6NCAf00e*l5C8%|00;m9AOHkbF#=Q*;P8Ec(W_@SedhDKXW?I972k3E zG#~&3fB+Bx0zd!=00AHX1b_e#00KS&ihqG`-Tv{|tGoW%D&t>ZyI;NPB61A>0`M>3 zv*ajK-^C+@Lf7F*HC!kAnX|I~bB5Ox4NzfHNF%+XfKxnX5iQgXW8oyzii8vnNdk`# zJU;OFs4zza1sZZ2$RCFElCxGl67%cXeFRnFiP;a^~|JxY+o;2WTS zHx}VvK-HuukCsN=*O<7f5I}yvDC#@WViYM?ZD;9%0{9nze*yRxI5kC-rtmK?Zo7`) z^O@;%B9~82&*_R?XCM}{M!HJA9N3V=-Vlr#Z{AiLv-&!Xg6;-@ItlRPQgvlq0KmV1 z>oGwe-x)4iY$_6RFidA0Cp`S9yShr^6h82+pM7@Z_22(K^)Ilc>iVVn7r4Hv*w|xQ z`}&Py51&_h&!?}_=b}rZM-Aj{*XNso5>jo+n}y%H6spaEe}O$Cahpma;a>p$1%LBH&O0j3qu#1R!4_%?kL-oaSOPAFZG&qU3Iu=6)M%?U%+?M zsL2$1A74{({jBw`963VAm%?K)%1USwMB?Ib=PzjtX`@M8VG zRpeELodW&^6wd*Y(jEQ<_-p%uz~kk+T2KIke*wC6D@5vi$J})i#`ZKsp1ezbw8OL< z$5<%%yX2yrT5GFvC)7MLP>Y>+ef^^C!l)Ic%aq)@xNSx4zl3>paa#>|mT-!QQ#cxS z1Kja9#I92DU0{gwVO-mIbBgtwP3z_!qu9@1JghjGoGUVT_9jwttcX{VQi!YQRj+}( zac}RM1bC$nigT*nw04p!Y2xdP(595c&E7?*rYPP%KRe&ZrXv;mRql>95v3PTZ!)c( z9%Hf3?^L{ya-#NNm*V9}k77kh|JA?^yPdq2xHjoF(q@*@mEd0h{sjWTE7`MH+P?s` z{cqf00e*l5C8%|00^vJ1QZ>?>)!l% ztNZDvH@4-&*DxO>0+|QEcUAW^oc_1Q4lB zx{X=nDCOxuDsnW*)aiQDf{p+>g0udZSBh~C9l`8f>En4qm7xDsE7S`wu@b(iS2XYf zq3L0-Y&yz^rLSon!Dh0izmTr+IbYy^F5LWyGoNn%t(MlOt2WoXscK!S^|6+px4gIc ziI#lxY}0V_jg3z>6dNC^HyietuZb07x7R&WcYp1JwOec6RQ+)E7UR0APm!uopXV%w zPt*xWdh64%&kvKx&lZ0Ju!(^n)A>v{HN8`R5vbXIH9n{I*TLZNsY`z!D``%~Id0e& zz`g)`EXY8ukPt<`;u+xa<=V((mN5Oh6!xansZuL#U!d}Z@!EDo0RIA7%uD&9*H_^3 z4#SDS4uet?`vPN!#t#nd9UHgFUW~kQ4osvK+yd+Pu&Hz^lbf4L&buprO`0nf&)65B z;f(2SQiHPe5dc-P_z{Jdbl0?g;y0q)>ZNoM_7rH(hBMGmN+<81bwC_8-f70H{x0KQ zH_$7xhO6s5;Vn?%oVrQu|1lFHeU%qb4ANB*soJZB6|KihY3}wSV(>|Lfa-{yFMjU?cG_(6qhr zp@vU14AyTkPsSdody4D>JXG6Lce3Wunp>;BP_wS;`qq@}Q2_o0IMi&=V`G&ryA>q@ zc42Mc76s{>gf%5n6c0*XYLwlBzWw1}0R9EwUw~_tqk2l%i@Y$CIaMG+-xM(pW=>?% zS>13bER$r+CdcxKK3m8hPqW!~b~b8Uclx%)tX&;ZBRA>x)ZN0G^Dofc>b{_gi3?3@ zewVS(#^;P|AQYg}-B~^=^8Yg_&H5Z!#g3S0Mph8#3Y>$^MkA}izW@gg{sqYESaQlM z>=m#}$U`SvYz4L0@Go$9^u_QmP*qiP82$y|Ux0N>c_RdNiHf(5^krbS*wJfRhlwk` zL2kho6Bx1JV>1e}>L*jcNwQrKDA4CkV1(<8KnZs$JZ^_Q{m>E65E9Jv#=O|Wzd-tI4*mrc4k2^| zw13di!&x|Hm{w<}abG7BcX&o@??3n#822JuzR)@XvYfw=`WH}i1h;);OYXr3?|%)| z5wumPBUtwyKQbY71Objl;Dswn1YWn=yj2twv=Wg59YJ1aZKu+6=^4uQP88;dNJryz zliaD<`DvQ%&4vQAb{1+hEIz3-bXklNeySMXC-9~dH$~hgF4ys+XF7#TiB!Bpl8Tez zQH>bLC|Pc5Pc*$bq>jg6COHaSnT@?iFCoF`JN#hufwQ^^h*QXXKZZ?qp(Chdg+U%8 zsr38aY>_A9mx^!k?WJyl#r}wRt z2to-=YIl-xY?rZkfX(G1+m6hDj)1&=pd*ky?gobmZ+9=a9|0Y~i=`u|{!Qozpd$$E zq`$a2g5scKS|+_bp+r1&ZGZ$$FKC<1|0!G1s@;)1b_e#00KY&2mk>f00e*l5C8(J9|1*2 z@SbZ6Kl$OEpWj$UM{v0W%f;jvIs)hjpd%1Iq zgijEVhYQs>zh1X`sM&!qYihO{Yi;3%7SnPZ<6M6TJwUCv&O7b+(C*O@%>!e_j1&L& z>D&|f_v);6jb^7_m->4pS(j)rYD8As(Fte@2cMa|HLgA46v~bSh3|R9BcSF<#3M*2 z5RYI&_B@Yx1c*m)KExv+%lV*=U~+iV&tCaY-@2IU2sTx$BWO9kkB~Wf2+bNgf*|)q zpW=uT&=Kg9t%>wZI-AUs7{>Wzb|M|n3LGnBrcx1k&=EjK;6^D^wHET$jMw#|Rsvy+ zR_F*SUe)OXT@X&_2r{X-y54k(+b=M!BfE^^&D<@qT0qhWNHoUCGSCr(1*llUAfO_v zzoE)+2Rvu7n5kGjY^#}QKG>dy$U~fDcFzPJ{`|*K9oaAN1Nv^6g#-Ss4Zgm6; zH*Ghq{(fc8wLpZhS?ZyJOkvnFEhk(a+9nbIjV;9fhfKPX^>~Epv^;UuKt4Y~`dJU)UfX1Y+bAsZF{XN93r&6!Ov% zIjRPycpC8t5RX9T8zCM6B^yvCA>t7*N_65xmVj|)HhVI0I(^>i2=;Dy)y}`UWxYdn z1no=E5i~yn9l_YRO@e0y2se~cqeRjYC7>hFM@{Gm7=;Y+2$tVzJT{ut$s|^qmm0Ma z2om4pHgp8g5fFwlf1ddN8P6fHSlN|y=^yk+|5tDw!Tf00e*l z5C8(J7Xd{_@EyIh5sv`z2&~Rdi8^m&x$!waWYU-vqNtsS3a{1)+oZjc+HmNj_m`vs-_10Y1>MKJ> zaKRxX`=x~+e1qx;HZMs>(7Y4z2%sad$GjI=+?E-adY8x*jnsM$7#7gNe{O&j)4$a$YV^&|MQDD3b!VKj0WJ-efj_bS;;_#SC zB9x0tw(ee9)j3{cT01(8Vx8VFee5X>(5qcrrg2_eJ^@cdJc9E#9zh3L(_cu}_?$2B z`h4?;KhXH5@3yo)UDaV+SG6wH`dG`)Ti)CJL`%MTwrRNe#>OWbij5D|n+$3meM^GJ#~&_t3xH0wurH9G-yGVt$g2f$3Mt_%KR=faRoyzdHWFNm zF#Wsu>zR!^?2p^yQmh_L*c9=G4zIz-Fk6|*#+kg}$i|p;O}lZoGJMMCq{nTcw^T00 zPobQ_>Ddso2HT^wr>s7k_G~QPv!1CO7LPEM1I?lTHhAZCY3MYilJyU3mvlx&<-ig> z72akLI%&)%-?8SI}lG zBE96$ra$-aFMxf4?Cf3XJWbA>ur^pV#L$y71Cu<(9xwYyGHS4ObZ%wUxPs{P${kg4k6*@VeWMV!LrcbWjM@>-xw zPYDX*5vQ=Sl{Xzw0{1KkXXX9{8a`3QUQorvg{C#X%UEdRdn4>rVihcD(#7Z&h#?qR z#rDQ~-Ix+tA^IG2>JwQls52Bl0C5Th6wYz@1;caSDrjFE`nZ+s|&C=V&SI%9zz}S1LD7&0E5aQ!6g##<8A4?zFx!0RIBs zt3dI3AjUH~n(gtw~pU*gjR1f00e*l5C8%|00;m9AOHkbF#?KzfqidiPuy|f*AAEQFEAkC z(M^uwUjY6Ee7l6d_biBLekS|@FT)>jv3|2zxj$fHx+R;_jHGWx7)05P;e|Zc*DfiY z^S?zC9@m^WQm2L;=Ty6C?d&m%O`H!D+LV$A9YH3Sca4i0om`M@!cC8>Pe-uE{q9oHXr&?FqLokpBO2{Na6y56+9x{Sp^#sCmQ zy*Ox4?EWIT5>l!t9N=h)r<&$yhJ20b;WwgGl8C4xJ*tZ^s)u$K_!oeG0nUw}Los_s zd}sYMS_Dgje}VJczks46=ox;`fByVO)m2nS(7ps6LE{ghBN!V;oI*)aC^If~HYRig z&=K&6mhx$JbF@@F7F|5qf`(87<2^7i&IE+1UEuQAT$tSVOxn^;_fR< zOL0sU#k5z`2lNi7X8T4G+R4;B*)bJ#1m3G3aSF+(NC@?8Y?PGn4Vu3_616Q%68;{{vh{u;=T2uR3+~ z_5Y4Ig%TqIhd=-b00AHX1b_e#00KY&2mk>f00dSq0*a2{siVCwf8ylW?lL-p9TFUu zkz?oxpd;|NNWkOE8a z-xE^X2S6sSx>k(vtxwO>l6&C+0wCfPB2FRV6e3PxgqM9bY6$KC;t^1KjDQ0=f|C2rtSBH@aU#W~#uc~KF-^xpn>tAp#bV(T!b&t9 zqK!ZgVhnnXeuy}QwC7M{pd&bcbp%_5DW@;nu28t;9Hm&si)) zDi#wfQE911UIlC{5P9+{^=OCdRu=w%C&)M{jhQ@%A^Z!#zW{qI2&W%$3MpX^aSHjI zkv$iPQ%GWfBTnJ+qe`mVB-j_gzQA0%Wv-FvU%HH9D|d?{7NyDqB2t^Yg`$w-h#aLn zwOfcB>Z`!P{>+{MpYvP5ldOCjJE~ zi&EJ5!-hiRBaM$BPT@&aqr-QVmB87O^jUM+B5&uP2y05JDrs=asHUk^0C5V_b5pbP z(?ldrcX)_&Hy==Xvo4%Xrve$y&}A{}aDS8pT-+48$YXbWAdut~E+zAl4k;8pDTp|Q zbmWvDdiWR6%`4txviAH73?fb;{0q<+*p+w`k@*2+yPglf{D0C!<*!RNf(yEV?lVL& zu``39_6~Q5spSSmrmh+hd;^1;-Z^}5;XuD>b#xf#=9yKKoQkjz-M?2U_Dnae5@V)Y zGGNJ+fYB~r9*xNq#H%lruN=rQb7}f?a;lKbGq)KbEQDO1lKEsJ+OitAQ}d+p z@&%o~D@*xq@qXNZ`~MF37syasj@(sTWTGgJtfvIKr-L|!h*KDREVPk@Jv_311kb&M z_5`}~pYSIT{so>-{{mN0O#t^V@Z~R^`RgtBcmEyY6jD_10Rlh(2mk>f00e*l5C8%| z00;m9Ah7BYpuPfj@O^>rTEFwohEM*n0l$N*{=VY}0s$ZZ1b_e#00KY&2mk>f00e*l z5TFPseg_}_@x+tyt@r&)8NY+qNYM3=<7N9DtZw}gZR(oVXIg*M{6tH>dA4b|`Nqa4 z8;Xq&)te1_%-6(jH(ycrOx^vp57ut2c~kYn)mx0~sy;>BA4GlNUto!JurR)#%W(`a z{hVU!7Sr0l!zlJ~ogORcGRn9M0nR>ze}N^C@+2HXV6We7S~vF?#eT&z521G|5`E@& zhc(1=tWutOcp+CYnMtW$dw8zx$|f_ZIDJr@Q|+d;lUzxY@&NF{yeZ`(HtSkVC6`wb zE+%fAVPch ze-D)hh;Q&Opego@O?eq^_ zU~|5}&MV$#9R1L?Gt}>3d+pYh=y$O7>6*my^nD{k<0H0kG{Xi(;akvO>x%V@$b;WO z>#y1(_62%+jKx0Rn=s!zV6gEo?TQLl$s*Haw?hZO z4O=Yo2F0F*bQ@_iCFe=njF{})ky7g&k=0{I%U6;Mz21IXth`iJieJbB%JeEIqx-tzU9 znsrs{tG-axT3GkymY=m;)cme+4}{H+H1BLWCHWmB^&YhL^&7<=KCdKm?7Nu%AmNrx zq@=_V&)crgHv=VvQz3Uy4&?WWl$3LBq}#Om`;FIK&nA~5ho3Ew(5t*=1KE|lYXg-6 zFI-Wg+!93;MQ4n7;dgTx8vF#HbMWG+NpCCVLaVd!GlQ`S+| z!Q2Aw-%FLQxo==Jx)-oqD>8!p$5UabK zo|Bs`WRIumCQ&{+JH^(Hq>OGu?%P(%HQFEFhmyNu$^{Eev=kS6~)BCitlxE|FzK2^?RdZr_b_w_$d{O-lR#nwCD>rT;J(JER^J#B5A-CR*My;j~ z=p9bYmTUxMgi!NjgVNs1-9T3RS;tb#so$f00e*l5C8(92pk%eI|gLaJ6o64V0ti4L4CHFDxkv9gOkMwJ{!X{g!C5eKGCpG$yjkuw_>v z2Z-w>DQ>n??C3LTMCRh4!d;R}`y?F7V$Gxi&0V4Q=0FL(3Bgv9&*OJ=_dL$RP1_my z_gueERgx=V(>dSstwo-D)!b9 zH+ngDL24!hcK8>7e*wawXAg<|q^vam0>!oMHlT9%3h+Bvx!PSDkl9%53r*zi0{;RB z#tw}i9NIfJZqJ>huPNb~FQD8~aMRW-@Gs!L@Zn!zI<2p!;dc;z2l=iD?Imn^LH2dM zG`b7L(wv23hG}(n8uxXwwUU?b{a3B5j=V&&EDFk2Y3J~Nv= znK(^7QO(ZSnVGyjCiy3rJ(EaIMd?uEc3~!0n46o;62Vj8(wxhyW7be-l#?3{)_{9J zR`R~zK^9wp^964B`3>o9mtOxx$`@!cpNQlOkSu(F01yBIKmZ5;f%6-I!d1j8K!@bO zGGLKs8%%EMOS~zW?sOr%j&I6WoG8#Km;=5*WEu))nI}_AIx7w=<-r%&JvyQ({Fh*WS=oAg@CB$EUAFdvFOWIwucA4v!B6qLYLF!- zp_)vRVT>;#SsV+xoQ``h3gN0fP@+U@^t}-%ue?I&DH8ta37Mr=BeMkRyMBfII)MUx zwn+W%p!jE>+s>D&%EhK>L_0^biPH-uzT5*Lv>3GL8# z>_W=;4ba`XkOHzJ-(!|(?bu-~xB;C)3Wp@YQ|Yojm7Z!ht(`qav56}X8N6g;R&jc& zByJA9<$4uyt9gbS;VzSMil;Z37IXyA5yVuBJXGqF7gWODZ3j}ll8mPD(A*OJ-C30J}mXw-Hxxs2XIt!E- z`+W{RBdBTydIxa|B{nQGGUn&!(r&y~4Xe1FN}os;rU~Epv^8G1FxfTls5CoJ0v^DN>vCcb3Re%F~yY$WcSG7EjlkR#%s?ILK(y zqLesj@J=y4M0pG%xe~IpDEw^tiQmYwyGZDBk2r;hQ;0Z)k`7=M=m>u2nJd5bWNqye zE#@Ott#v;up(CjKnfV53cL0Y#00;m9Ag~G$SZvzCHe&8O%%-#+-#If)MQqBKYn7?3 zl2ys{R;dt};_}=8C0bht@^b9*q%B2h4d@n$TH(7tjIAew>}xkOGc!>#KQWP=EzBjR zlE>0h`U=u(zEmDtf<_1to$IfTS^IlRtcBQ~wEOGnV#xnWx9?dvV(18V!0#Y*1ke$X zZ45Tn$b@?M9b`KsLFtY5o(TZwv*bO$h0+@*z+jJh`H)uOcaWf z;3J^;7kJINuTE|ox@EeIe}U`$>Q&pxG5ia_zX1FTAWq>t*L*X@B6k!3{{op@-qqD= zfp2_?XQ)y$*G5FK?UEaL2CJ+FMVvzT7jQ#}3u*p(T^Y^zuOd4jk5;o)jr76|EiCM= z95Y`|6oe=Hl>JTE>fPVpk zj^slimC4ObCFhqh(!sv~{0sDV8TT^h58RIq8xiPxQS{V$Z;a6+rHBIVqbK{M>ZJ`h z#cg%W*TX`aA3mHmFDk~A(Mu#(GH{8)fia7{)3rB#bVNI6AQrPmx}x-A{%Hopp?Of00f?U1kPMzT0_LeV;lFCrHIFU zCB2e-z4xjX!Gn}szY={_D_N2+Pxu$`!w18^z!=p$lF7RFwD1XKCM9O!ZjK@jWz%uQ zDMXw?vRYCj{0-;>l$y;SGqT@DMkqB;8lsAOFK0Ve3;WqhPc5f@yV5(M>)%h!BMU!1 z2$pkWqE?hHQ`&2C+bX%y6qK<$MKf+%d;5*zC48W#YbPbB9(8Ww%FqK@{W_k35`JY0 zX&@W^1>j$RA;6vtX?S;^6vQbE##3AiaSEyJ|9Y+?c*igP;yZr5`Lj<#NATQF^U)#@ z00KY&2mk>f00e*l5C8%|00;nq^AG_=M{rZ}!K**8^^V<1ke#c zM*tncGzqSyvTI5F#vF76)Br|9PTsTLwA$N^#Up~yNm-E_6q6oJshGhD9RYL%!w1F= zjUOD^J2q}3PT@@6jq%rO2Tjwm;)2A6B<5{j3$c`r6t}}T($Epm=)cU$%A)HcPGS0N z?$i{qMJJMl{466w_(3QW142dDc&8b&pd)~eAbmXV@fE6-8G)Br$)v#NJE-xCX?ob8 zMZ0TQI@MF?Q#lebD4Qm!nVI>_jI5xFR)@sxh%iHOJHLW-1Ut9%KJ(g3f91cZj$mW$ zOUvpAYF}D+P}(EFArJrpYaW4x4KHy+H=lA>f9VtHYV9$TIc)428gGWH6p96i_gHv{AWor;IE9E)2pvH>>&Ys}WJAmtyf}lU zrwuNxekLVa@TU)mQ&={-p1WUG5UK>p<$$|aMB!DWXfEEOf>Z41HLb%$ZZpW`Hp=~D z#kD$t0)4vZCQzcH>s$*uf*a^EhU*9t@zdWJY~KDI#3@|!i#q@S1b_e#00KY&2mk>f z00e*l5C8&e0|BZD807l`m;K<|8@}^PfBHx8FR(UlK7J(-00KY&2mk>f00e*l5C8%| z00^vk1Qh=QJB_AWPG9uS#WMZ{Zj?}qlVkW7fPVq_7l3~O_!oeG0Y>E`+B`y8rH%sB zz<2O3U=6mH3`NDFP;D&Mwh|ZRj_#sdM9ov8?=i$h7UC3AUlsxm1u0wd9WSDNMd^i9 zSaq$bqRnRlRgH!046ch=2b`#zt+t*RP`|e>Y-%#C?rvl8B$HyvXOoYc6+xDqQ;8-^ zE+3F(34Cad_S@iJfZZ;4loK*}ZKyj9{{rwYpbs0-N_502oV^SF1v0ZUwyZy;{t0H! zB$888OyH0Uac)qU$q{+RY&IX_`oOuoI%W-ZM!kf%iekV$AS?Ncy2+ml+sU76$UmVY z_>Z~|-TeDMx$ei*zd&2fmn!lvK#Ji51c1PKjlf;knbu&JQ8c+YOX%2rnOsVw-KguZ zM2=LNE&aGKzL$?N#N`tF3&6iXh3gWwpXz!BAhYaS4({DQbnp&)-^d;DiUWv|)s55& z|E741a1)~zfNm&4_TCLHfDoq;aSD0VO4+f6>$cBxfT29M{y?ZdO>%wW=frzdrSj6Y zg_j!j%!awjN}oW86<&GZ9~KZ7^P+ZB+m$017@YWu&D z>j=L4fh~{xJoe$YK}T?2FY<74KmZ5;0U!VbfB+Bx0zd!=00AHX1fDAd6dl3G@A>zS zeeJ)^{!$qo!A|Mqmy=`Y2%sZ?jsQ9W=m?-AkQlbm5vT!;oSqFa=m-vs+hd1EM`hzV zF}|xj`X#a2<(3eq5OE4woJJO!LquV0nQJtyU4$;z%IR`~{jUg3L~4_6!4o-3d1|{8 zInWW%e(el2l#09~&_bNT%!JGshmHU`0us^s{L~Tr*{?tS;h$Xn@=a7nu&JiKLLC7q zhz}50?FbZaxZbo*lF7vxHn}LA3XOOtB~msync=!&?F18lr#Iy|Jhu1N!z1=y&eIhI zWcHPxs5GWf_?74`YK1sIy8|782ypI0Bsf(H>)cC?qVRG^b(S#V6v~8t=m^~9Z`}4| z3RB5r=_y@qDoGd;5rK}K>#vSk`+K5jfm}D?YB3O}5OE5jBbZ3fq_at)w`IFcS9K9fwIsM%#o*Ql5Flc#l{}f+DDM>sRY>o zlINq2fZG0davi}Be_r$ZzxLiwe;+!6)xOBZ?*jrr00;m9AOHk_01yBIKmZ5;0U*E- zP;>+zdBg9%;-e3&?<%7sc&UWl733H?0_X^!BY=(oIs)hjpd&a-=*x@{n9o2*z<}tr zgFfwL_CIt4h(~ZDS(wTvPRwRqcU;VKYoG&N+Z?m@b(i4I2;~5D1c4|La*rc=8=ujy zgr1OmUyAf7>Rf0X4(JFx$GKs?K@pFD&JQRu&cZRnv^qPD`#M?370-z7{a3A!e7wX; zIEca)uX!=1>0vj7Uyjb?n<$W1R-S~lvANe-8X6#(4RQJ(CqV+H(+T3&b$TvHB8{K{ zl1jGXN4BdGc4D^8qkxMVlg5wurdP_d4H6vbzaAW%GggK6#9 zVJx<>{_L}|llgo$bF7e0ha|mJ>E|H@NT2spOV1+7JIyaDPAa95>hjx7xXdT6@+kp- z&&cS=_=r6`bZB^J&q#R8CFkhjDJ6 z2mT|uZktyr?v{6^~{D%aS@NeQw~5!kSNTg1Y@46 zDafRZ`s{#?K%hc;xag^rMPGK#$u_(dT=n|F?(4gpkLt+&z0qQUYJ)}a?0!w@yl!In z$(-V#Lxix<5peNtXg~%R=s7MCpj}3}&osYRE3_JQ1l0EbQm!L--+kLZvD^N;>s#m= zcl{b!=;CJr0U!VbfB+Bx0zd!=00AHX1b_e#Si1-)I)X3X_e9O-`ah5@qa)ZQ!PQTW zp(B8f06GHb2%sZ?j(}~YyQV3`BY=(oIs(R)2!xSl-GtCoUCBuTIs)hjrdc3`N|-9X z1VATQ3F?1&`?ueSQb{sCi}Y~&v&Xd5?A(Y)a1c5ILfTIsCmeZCGawn=nW>$z$)F=x zIXZ$jJ-q*0Z~UzvT}5>Sn~mZUbOfX@KF=Kj#Vv!Tb!dlCyq1$N%Teb;@^|S3&5$xG z{hp9!Ldx{|X@rUo9RcDIkTKs|`U#PSAX}vz=m?-AsAPKU5ve^Mzdps~xzG_H9szU& z6=>g}BY=*8P@~z7lfri=DbNv+C90yXfQ}%PM(O~HZU4VE5Tx_r!bp+J* zzl-Y#GVee2sqYql@k+!ac3?`Rnv!A;Wdxsn`1M*tlGbOg{5Kt})_0W()YM?j*;6F0@s5kN-(9l>ba_DSo^ zW1_}AkK3sP)Mv z%UJMSWfur{fWD_hv6$j|R3ukIdJ}~ygHmyv8|E7{+H<`#5Q|wOT~TgS{nHGHL-V%U znAO*56gY0&q)(mcd&hMVn8`(Dnm?`T9Iqjs#XF5+o!&47js7gJc5Ru)d2#s!JPq*( zR!}^GlRs?vy~IuYCH&pYN`^}T0$Kg~t2$7EE`gyVfQ|t1 z2-1CeXAyH>E{@RE6VjH36kNjXV?tuF8g&FWktO_1Tt~3s-EaHGlaGJ620DWCYhwdf z0|bBo5C8%|00;m9AOHk_01yBIK;U^oK+zHG`_)UfJbqpBYh`oY;HnvRwU(5cl5JO{mo)E+E3)(C z&>lN5ZjT)vCB%4Q8YZy>@{EykPAr5sv^m0_X??o0k*)p(Du8 zGEgLG1#|?FOyaqdGM!Zsbx>kJn6QJ6!(r)EPoadA4b|`Nqa48;Xq&)te1_%-6(1gZ>oN{dJC!YDN;4+ zbN5!$8g`7L#R*gF6*lIat=B+g+llS#SLTdvOIxkTl{p7xY0a5>d(T06;=G${`N zFU*@_Re0j&&|A)Pc@=T1c?Lf(34pQ5w0e4s#XkQQ^Fqpr+Jm>1mm@dS`x*Mkt*t7Q z2F0~$>xrnPL|9iMcPN+1Zjgv>SIT_g8L#9=C#O^KasUwzcp&MQj^{!HCw%13pcc|*V(y#b{Ev5>bG^uol)~DxkqXZ z>U&crW{{p@PhDvUn z|K4~Oqnh8yvm4s9u@i9$5vP#Mx)7((+dy7H`vUnIvVN}j*47u%|M|Ya+WX+>Bw^n_jW?l29rn8NI+Hj^dweBAp zf7noHe5CP_nN(HHx~d1QeMBqO!{?R!8DYZ^d;5zN?i<4wZfw^lHKMH0e~6S6oz;kM zJik|@q?~gj-KN#wZ@lh$Hmwmkylfz$S9#3_vMU*~1C;_VTu~yh{?n$Tq9DIsc{5C! znR?}-=B4!QpUli;W+p^^dK>ihQJl>X!&4IlA*IoGy~Nu^&yXh_dS0$@%#GEn%`7|( z-)uJFZl>w=jukRfsffH(dM-Uf)%4_Isn0LfyhC!QX6L7Aws&D6+kO%IfzHrnG3#)D z)M_Spn+5_&PT^9r#Osijc;psP&7UagF7e#d9`7;KSM%X@yvaRj&6Xa1caeAW60*qa z@E3W37Tko(^lld@=buD6hqEwrv1xU580U`ibpyEyx9+7%S8~%T=|A3?_4$sElm3Ki zohEqYmG_jeWqn~LbE-gPq0~>qi3|Z*d$PoWET`w>W((QlY4*HjXQ$ZOk(AMwfPLFy z^vS4V<7HTwbNZN2b0Yb_`{j1b>TWkOe4~IQr`bH59$XUr*tmuGGSGF#l)Z?pyo)#U zdzYq-T&&->bcJ_~NoSQU`XHQ6PgkjZ0rqQ{<#b!ap!k)tDBjH9m}&v3 z8R_hiWxBkdBs_yemXum6dGShzw>!x=w#!&NARd~~9~^no3j&W2doYH3@E19|>h|KQBSGX==+3I7%Ej`9xK z61Ya*7ntn2@9CZI`@tVlzk?fy-@(RrHC|f(rTRapf0_A2-OtQ7)ZJJ6(z=5+U#e-Z zzQ8C}J+ZDpYx57Obbfx|cW~r(Tk$m~94Siv=g51Tj)pBlCV!pkBS?Cu%=dQu> zAx*qgnZSe;AX6AWwd@SSFB%;#*`bStUCNw=-J_Skg|TY$*&KQwDyo57%w&I zae?2#44DluUxC*uy_!#|SXL#w2}%XJY*4lpcy7713@_(;FXZ2r;1A6GEo?7AUp5g( z>a1D1sY(}RQTd69>}+8!F_k=)o>E5*-a^Sd+H@kqu;5&O^|JjAHch*`D}}4HT}clm z|M_QYTsQS45#v*M9Xb-ZIm$3Z_k^6I1M041panPKYVU+%DnJjpwrNG0>hL@DBHYMwM+zMymW6&m?7$}^vuKA_)iHJh){+{uWVCoRoZ zli$Irs+xNE9V8=Q$)yVR%v6Br`^ejElZK6zyl1vpztgmahK&0<*%0kd)4YLFO!cF4 zhLoW^y4-SC8~T+w}i)4UjTEE1knjtfXu3QVmm0NRfQ|q<0^cvaCqjUZU;;VRX{BfQ}#&>1Y4MNq4(R7Fv|h5fra} zsc9vLjN+l-;=vnq%B>;vV!NZ45_-`RD+;}+y0Czbprq(k2X8q;P}plDLPtPt|GT-4 zpytAteDK;=KRDk=7yHl=_*))00s=q)2mk>f00e*l5C8%|00;m9Ah0?SP;>+zp4{`f zKmN75{-unLU|51;2RVk006GHb2ttGuvMUmIzc0!Pt#J7?dpC3hh*Ow83mt*X`yio; zS(nlIf~ESAT%VX=SW%_CL>dw4Q5`mH>z!2+6!u{33FruX-no1;$jxNNQ~_Op3?yzx zd49Ckl2UUiH&|^)=b4hx96AE%2nc0P@bT3cpU@GI=ul?^0d@phi2-rgc&8b&`n!yK zg+FH@$e^RF=)v`#(K_Ib#o61;a@7lD~vlp^MR@1<3p z<2A&yc&AaU(;KE^BK=uj>Dn@l^WyRecp7vB$?QZrpE!{vc%GTfo=lvk5v@rmwakqF zmL%?CCuh$jl2cLftm1ZICP%`>&1UoIRB*;|d3DSh>Wq4*_(R|YP$Mh(i{j+Zg&pLN zq9gd+J&$aB`B(q=YN{h>t58SKB6tPR5kN<9tU#Qk3R#4pD~($Eo1kx5Y^ zS;)__H?Ks!8xYUQ;F)WPd)^+S=!WPc;Y2(pnMYmc-%|X5dCtGydsXYs-StZJRjpK% zoP94g?O+=*_Z^mew|gN7lsbq<;KeIIJc0~#1b0A3kj^H_^wizt;Uh&#W#A(ofxhcc z!rr|bI)d|BM^NnBMS{r^X1)j}D_+z5tt_UxJb?u86Z2rNFNiY3`dd1>sNWph@Q7?u zdVfPlFg~<f00e*l5C8%| zVD%%Q=m;je?|f|M`yc(CGCG1i5-eAfW9SH=BY=(oI)Zu5?Pjbu!cv+`XY=!$1DoTN zddG8l6}B5LXSlRX=Gl1@bOg{5jE>6N_|Opu*XJtXeZAh>)NHrAu{76nsG6;Ep%-pw zF)hb2&h<0mh+0(rw$3}PYpGH5Dxu@5H3FPmpGI5Ox}&wE)RYV>B0b8sqP7Dafx>PL zGdv+4fkY`sJOajqgN{Je+CWD@hgCXyKu55GbOb&7PF{cO-#qdN)e&r}SVz!&sk=`A z9RYL%&=L5oqx}3_n#^$1Gxi#E${V0e$JR9@P)@KU3m*|2pv z;t{OWcm!1+Ux7M;V&*2(di9X8(8X2gVv55@cEOuh_|`l(lXAoCa>_MN7q#|ydyN5q z0+BUJou@PnUkeH*UL$d~hJ}tm-)*k&UY75uAP+Y}p@gI+W<*U#UNQ?*^0s$ZZ1b_e#00KY&2mk>f00e*l5LmqkC^~}2cFkSa z_6z^9y^M}vM1q6*ErgB$Is)hjpd)~eU^=Z6j){~am&xUsX++Nx9+}--&HIg$Ycs7~ z?MBfz$WWrHAV3ofyK8VEshgrqE1@;GW`h_>B6+|7(Y#MvP$As3^^ zZ2|Lveja`bTWeV& zqkxy+iVs|~WUm$NEX88WDha3hLGQqbN8o!})JPu8g)H{ls~)Xty1nrq8y;wQW&MBE-yi#Q{l3_q+W(4esQuNNFIWF#^-abb z*A-em)3ToE2p*Mo3eKa$;_wiYCNGSzd1!7jnI&8^mpH0?8Bu1YN*0--N>snna}uQ@ zl~CW6KAxvj8EMA3WQL$q?7z{pj_xpuM}mwkLAp{YRJ7;$6ckbDrl{qEU}lM;!S+;6 zkSM4zuw35NmO;}xM6UQ+vAigAhLDTh6VQJbzXbZH3CM|_FY-K5grQ~BR1sb*x_(E6$e+cb&&bjxTd(K@(k{yWcJo+W$ znX}*L?C*V__uZtOwtd!k%k*gq+$ji9K!X4c0yKy;Xb|LRBQY?_Wb5lH-#k2Zvw9TH zY`H3C46G0Gl*Dx*EfPqV^7DB!R}#5ct0Wh*qn&+~$;GVDs{^(+|2%Z7uwv31oZ>9W z*r6^W8EbVUW1bSMfUDfwlP8^1iBv~s;}tRbR3ZO+lU<07#HQIoXWVFQ)$TkcxdyS) zTxr*D3Dc~w`H0i(8r%Xk2ZcH0E_Qw?{n;FDI?|v&oS*au@CYU=V}v+t&j)cH<^k|W zKrcRIofSt%j*NgxJ(-_wyp}j%%4&DDSuYL5$=r=_aDiE6O$<&))=4LFPD!(q)ZG&0 zk|ba9M3x|_vt82J)a?`@Ex=Y_P^}B#5zu%4Cg%~n`%f=^Y$|^L^Qc@PB>WGaLl=EC z1qc8EAOHk_01yBIKmZ5;0U!VbfB+D9IuTHK1UKKdbkdCe@~$~}1Usb$Tur`%M*toH zcm&`PfJflf90ZR*R;~q)VB4~wSH(=Ty^DS>u0`~?k;`bcwOrpy)oNF?Z zW$*|#r0c(nvJ_q%E(A$EZ$eH-+V8~^cm&`P^!I1F5;4PU4_f3L>Rgxj+Vp~W%;;>_ zUL@3E1&~bdmH%oCPze&0Ad8MiUs3Zc8!YwJi=%O)yW|UtoEte<3`Aeo0oKe0|}LxY4s-s~P-= z6QpdfgzvOxYA)Yv?oSh*s}d`#=#ynYiIa8qz$0L)PC{`9JOaY|1CL;A#BzHlG_@S1 zP)Rci?i5sgHlZ7~RXs&;6z6q{;E6q_2&W6?(Bl=&kQYHolgutCNR^EH$8guuA!*jp zo=;aL$7GqV?s|tkr%7Gn>$a1diB=$4_m}W>pX0Eh9D6uP)91+^=Ru2#{N_wgs zAYxog-EECbcm4D>rWznpi7yF7AwUGrM^i~8_Gl?7TJ801WIKf@nIt^|5gzo?lf8a) z)dC&?ca7usayD4wCDRqFtCGjL4Q0kOW9wynZzN`HY|~~q|AOlr9-FC-*x#e}C>zS> z_6(V6OZ|H0gwQplN$Du&T88v@=17>B=5Et!QFp;~m8Oqnr;f}~I8QEDz{4`LhqbuT z*2c{Y+C|#`G$@n94xG=_u#ZWsgHA-BrqMC3Hc!?QJJf3FiOpCl$VwS%u9eEj zSK}6-C#Gh6x^zpdQaw6qnVP;LZVV7V0~`7N%2LwF<%g9|WUHqy#e!E4Y_$d%@xuml zFED$ngSeX5rx7c>*sFOK+5u|rGwB7Xl|HaHE{_|1L?^qGFVrkKS?dUUeOlbch1WW| z>a!Tbeo*(W5S(2MZ(fA$%dR?N8S6f=EN)y&TGFfx0G`-7G!aX@v{QNDa^EiJu{?{X zV(XYicB$HJOPOBy>5Wbo^V~{B%e>vn(~%BkNxk}zu3LptplF-xuvGV)a%1rA;OcM#KIWG1Ml!)6G#f0B;mY3HBn2%8sjRHu6)cvA2(EODT0g+H?8b?GY1`PSv1Rxe{e&ufH^IbarZYcCtIar(vFe z%aoI_Cz^D2DQN$CPt^kni}Kt&4A_0u(3L_)u_fHYg|bpF$&gEF(HhpS`M<^nH~ zcD#F?=tu{LN`u5LFA#5G-4XI7+#NSHbJ%*x?~*CnyVLk&*>ZO6&UbjGIyw>%H&U6X zkiCYe56n!AkGXS_*wOJ*$7!_PFrU|80q@5$GncshM-rsyqQ&8?jxY(e6}sLYLvGQu ze;zt9tr%t1pqGoxp|z_2NKXk?z;oTJfhV0)i9EqJUR=+Aq+JM=-;hULH=A8!`Hwur z_bn1?#a*II8Y^r*GsUif>=}yvM+a2*2z5;lJHM2E{&T|bP3p{8^~4N$-9yJv^=P#+ z=^jHu_BQ2?nHry&v^@AtPmYhW^_!%rj-66$*4&tm8S9p5*0x1nVUq`_@PSiV8$4{R zM0O`uEX#uH+hazsMORib6TMwLxjJqvTc*|ec)wL>2u=7P1^~q{0yQd@UJ~EO}qU_;ze*^O6ghZHeR0Sv*|Xner?xI7sMFwec-@KpW_)V zzWL>|=v;eSU|sS9&VN3u#kr@aycJodI$d(#3=s)zmgNF()$V)gmh1lTv1H;Ep{2y` zVB%ooZyN88{d424Sa0Mvu|<*p6@IwkYYo?He~_9<{!8+rmPN~}TJ3-|4Cs}CX$9In%76Cx3=EN$j1Xr4xUK`X8i*&<+^2plnB4S_j2hv5s_lUdIDb5LZGLcR3!Q-Y%`l9aO9La@mm%uscX?1@v)!fq(kS zt3G_);{Q5I^#wu~$ya=Q2LeC<2mk>f00e*l5C8%|00;m9AOHj|Km-)KgCBhDE8qO; zciulWhuy&&BpjYczQgVy><&^@AzKnH1kw^mkw?P5z(|H_JoTFWX30$VWCwe)y(V!I z=a^aW=p1EgurIKFy$1UNY>>z!MOc(rYQH0LYwP;wpaYP`*tR2>))_Y-anoX=t-DOS zgDV7jN}vHt?COM~pC=Ws!exx>*=;reb_Zd1&{nZgH9cWppmKD0W^}rIlyD{_Du!G2 zyt^f4>{=H@rXlAJ$L0goJrTcPcaXSDckvDc%&H|t`K2d6lhl3v=+-0XO4PHT=hWII zzBaue9y2=IwHFCRMqaVl-$2yEw{hK+Z0)Gyr+=Y}cY0 zV~UD}2%eAnjYvEXMnOFbb+9|gY!cXNNU%FtO6SR(CHhh~kDn|Lj|Q=EI?^*^Q-u3C zK1n>Sdbv86HN=c;ThM~Zb-rxQA-Tz~7Ip^}9>H&pEP2I|kN;>rM-}^>#^J*-@r(^lXSe4c!rhVvk6(!3kql?6xvPg{SR3 z!kgYnE{eEL-8Z~>$PVIUBQ0@lmaZ+?Nh)fP9!^yZ5^3vh&MsoApKefX>lVU8CpMYE zBRDcmH*tBiDEzZUS6h~(Pk={Iu(qd6S9iU`o*1LVSTdg*+fHtd8(CtZ(jrxo>C451 zE{%C5c#B)$pu~zISm!BGk}1;D&6}8=%DaYSrQ0g2R>{+?%xWcSJ|{vYgXdJpW9M26 zcsds*V-$7d$Wqr-PzA9ONNpB_8{KEiDz2#-J;Gg@1)T>3@piv36%E`#p~nIf;mz?_6Xl@31?B3(IR8w-f$+R^rb)sqLhqBwjSJ zzAQ>~r|EHTbHPcS;_5$uGh{NgtFDV1!=$x?LbxB;66M?(+=?9wXs}a?>yX7CML?xs zo;lrkEjck{xq||y7&m&sFb2auOn2$anAvz#{;Uz=ud7ixBHe@)UJ6m$m_T1n^T> zxt*9XW`jf?DMHT@Jc0x1UFL!Md>psd4pk?W(UfPa2w#Zkon;axpuJjs;1PgF03N|{ zAH9_k@Cb+(A8P4$KAK8G1K*>iB$h22<2pvTmOrNuC6n~-QH0lB16{SiPa(HF>-Tat zSmOme0`LeXr-=2{wCuFw9N`gs{!2SrXAb>IhVlrOFNjCbbSZcQw}MAtd%3Tz*cLYi zi3f#luO^ewB2tuagyKzE#BUGQT@q=OGE_w?kw(>4s@(=20r6kOu9-r+j1!HB%AL~@ z@J9e10eA#sfmd0s$7eAB$T?i`FUDi%I-c`%;1R$dK}C>l93DaF-gBBqP`lA&PQPZ? zDx@9iN|Nm#TmzpEb5BH0QT+`}My|^|&NHJHWJjNHYj_*n7v~Ik1jHYt8x^i;?7sik zs@KPjmt?isc22r*jt+KLi6fYFsvt)U(UF!|Tbx4Nxq9uP;pSzWSv~6M&|MdJ1VoY) z3@msAmAQQ{$Rag9sDngmVh*^cn@f5Z+$GL5lHX@of00e*l5C8%|00;nq3l{-}N3iXfx%xvNPCYRP zkKjfLj;-W7cm&`PfJXox!6{2En+Tq%iZ*{$wA`cjA;EHNDV%om-KXB~{YP0)ILbsX@Jkh~8OY;1QTj=oSZ4OH7B|}3xS2t_Nc$i7BY1}V5nMs8^Q%_U4|>Pv`U0J=-tqJQe1GrT zllm`1D?{%OrAG8mCjTdSU(08c(=Fr8JuTNXeLhiZdShce(HnnhtQOlJ{dM&2$g3kO z!>?)htA-WY^Fr?@S%d!WSn09_%Z9kmeM${)^IR-~Dj?xcTOIUZ=+iWDe-UxACD22y zaU+w_W@juFWTg!Cp;p=tRm$$@H!U}HqQrVib8bBorHZFZx5R3yM`15h(^tfe0m2X1 zDEI;V{OpGnD~6qb#G}DaA^a4wVL>*4iOS@(5G9Ct#UmgWm|8+qbeCy0M^TebHfd6g zoNx98=1;JHb~`kzMfA9l%V@Q=e4S;hsJLk>gFubC$h}#r(MnD_=hSG`t>o<1B-_sJ z>}1=SnpFLjQnoWSZa$Q0H3#GZOPk}yx^>#=Te*6^kV423i53NQIc7eX%jp+{xUIPF za)L8bothXOK4nQsTya8o-&cmxk%oN%L2j6b5Y0i;&0dl>2e+ikb#inHQ8F!9HtOaV zz)zuV>c&rL8}$Y8 z|8YrT#Seb+hI=TFV0q|{Q0nWcE0Xz^ueSVMOQm^D)6bgT(6l=K#rW&uvDhuqcSfq= zhr&G#C$(RN-VwT^>EmM~p>QhnYGYTYR$I>xG`0Z9@=D8ge-XlET29=hJ;jYz#Ek8& zL1HtqmC;x8oPIZ3=!~D!^gFuUN-M4X=nHuVRiXTk;b~%!f|li4go#;-X%aW5cOJ6w zJ`HYs$c%Ob50ZNy65i!LjjGX3HhL6Q<7BZ)?lMcPGQdtlYC84T70QW7jaz_NMa?KR zQ|dHp%mwus8`9pM$<*Q<95+`gUyE`KLO<3X!8a-FSLZ@G?l%{B$oD zu)(f^zHe{c7&nGUOSbVj=`BpmNqRi-Y0u?zx5rh4f2&-HGPBoT8aFySHTmWtKZd8J zmnr@3i6&j|s=_^GT&E*X366JB3ksj<>#SFG1_kY3@35G&cG4a@r!)esK>x}zwQU*V zf0A@>m3Oa#0DC|YGGe`$B@S;%^KK>R(m?c?rT){UgVNNehpS`McOx&6cD#F?=wK2P z|4?a=xb+CcZOa`YU&7sSQ!|Gxn{%$)w7olxPnM_IA<~`i@Jw}dBp`02GEpIW&Db<) zEHP%~Dw)KNj-NVCqwR)ytYlJ?SHqKjPO)b$A@a&rNnT0tql*@Y({>DJg|4^9keej# zpU2)cNNLKd!7dVq*2av@t=b)Yne&uj1w7Zi8hFwR|p6*ixlV%KoS)5Fg1bixAWgx?i*W~_Q*hP)c1W2kzxN_xaKhJ=)I z${jN`J~MfQofW4i$AdhtXKqZ#jCIR2Yuh4Lb;$!%nAnJZSsOfTtVDJvRyMG)vA#WK zY+DwzIskSClyYxB4kK=a9kE5Ev zzxKd1?e-&yoii|{^elB7FHiK@bQ?2?a=IYKfbRnbR{9*zXz|T2pGD`|+XCy7A5c0G z+QTGhk5h|tPfvL(@|DwO$n}4-EEl-@n^Wt$A875ii=t}rb_Y$YX%CnvfNF`2Q%4$7Xrb<6+vZYK(r~ELLB}<7~ z$TFp5lp8t!rO9u9gry>X>ot5Ks$=*E9*?VsXQnHv4N-VJ&JU^dilc;H!A&0Vz0a}! zCB~V2Wv~K+P8i;4%MjfSdu>^F9uGu!b=<2x9-maZK!OjpOLVVe(oE=2)d}JCT@tI5goFbf#mdBVK z8Z^Qz@x}BhuOQDUm<|@j+I!~Y=D3k1XFBV`UKM6P?K7QNFZmZ{9CnNQNTu?D7^vOa#hS2SRW+EPz$tQg4zeo=bdie#Lj|u4Y7Vy(kef?mHt$s=F_K222a28 z*tsseJl%zAR(Iw~myFbYU}q4so3|Bub->ouZh7l=Rgdp}zL-5+L}sIcH7`hhfV+05&l|RylP{k-S$9vVp-g{mb9dqYfbnTr3Aw6 zV0CKR0#|v*DtXMZV%^<-;n^3cJ-f{Y%-_5M>dSK328T5AwgTFYw}&3zb_ZLD5yA7&?jULTi+YH~CZX=lCa$=bx-P9E z+-uuVx%)fWn5Lo<2e|;9>y$!d3j`n+u$eQ8Z3zpNpi`)_y|^!kkP8^=*K4OYI=ecT zS}@r7k7eH7okx)!-dYFdx>YCza*2to&qxylb)w%%fJknpAQxZ@#7JiT7vpEQ00DLf zT}BAlw6wOFxn?j+4U7``g&AB~pnm31znu!SlI`io^@*H5XCDDMab&g-j8)-?_#{26hKwcW`q2 zmdX)gQ_q$G&^r@3iP11-#0PSL{*JU|GUoiSJGk-il@I>q9TVTB_63$Sd@R)PvH4gY zd|K@ehC&UWfZahy(hj?W70U#RY9eqxb_btX*A%cjXxTcK%?LUiCTeVi*hGZgL1O97 z*A%5Jiy-?eF>B>7jey<33hWL#CP0KuKG+>3%L_e__L}`BvHsYT9qh^Wny@=aEK<<- z^RPQemsI<m(Hg zNcR5J*(=fpO<+GoD(Yvcq8?c@HP{^_cKoH=1l5V>eI^SrV0X|Z?StLHiSfy4eq3i( z{$O`7ZQGALHaR{sQ63#WTp3jt971ri3?kNxW0!1ViMy+O^YGNoY5|!G*6!dgA_5RR zg6Kbgf00e*l5C8%|00;m9AOHk_zy*x}wISHg{So}d zKTC3gcfNwy;eA8DAici~96&P_M!72# zuh&q-B+3OgI(%fy4!0SpySAt&ZfqnPq6g&Jz>~Xj_xa5Mp0@t*_p>|@pwOCu187zI z#$Gz+uX~fJ!2vWJKodnHd;SI}c*(j)o}{V+XtJd%{s`XMe=Pd4L$8>a!ymzbbQHLT ze1|`Rqr?n9;d;Oy0R@6@-6N7g8*Y@a)!u7z`CfB>ns|)$N#hhCj65=39%0!~w)A+| zh#Q+WX|uOFM(NbVJ{7D`HawpM^)@}1mb6c9sr?cq$U-G(wU>(V=w-tn0dv?3yMt_y z$RmZZduYH?dqfZAb9;u&v^BeCPFSty+t-9OUu=gHH!UWfahGX#DE=no66p6O zzOz_P#j9``<9c?R6P&-tQ45oI=1d*7or~xP z{(t}w00KY&2mk>f00e*l5C8%|00;nq3m5@~NATE=4_uSI`nHGW;1T2{Jgz0*!6N{V zpe(ff9kH6wcyc1aBk=d0B|+tpIfF+49zo^yKvn=9I^Yr5PNVD1BiFkdmQ+bEy|fYG z^M7sAk!G2M%cAsjb?j7i%<=t|0gu1|L+%Xj^GiTSolop8<_5CGg?B4cXK+dq9ZAbv zNC&IssAi}wZ->0blo8ssn$BO_If@AK01=_!5txJ4az+Pc-8InVj3(2Sh#6*k zP#+0|!6T?1Q#OaLSUudFQ3@V`f}3j}ku*1y4TOe!H7zVxM}FayPvKtkEoBeSw%$QP zj#tW4)5FIn+`B+Wnq=~GWI!?vpFcc;iSMre_E*08_lqcxpe5cEz#||L_yYn!00;m9 zAaFq=P}`G>8=aln>>gRY`N;6Z@Zl<<&T@aWPC#B!IJGqjo#+KvF7f1b1g`Q0*Gd+2 zboccJ2Oa^to{+Pm$CMopgWbXXX(EZV$DnhY5LxYYV&nF>aTC$Z@8cpqC$*haa0HxcgVTUVP(3^|T~RQn zJOcXeKhJpt`llax?z=|Imr%I?cmxy#`~d+V00e*l5C8%|00;m9AOHk_01&vK5m0yp z_k8$8+t+@wG#8JcAR%%c`3@cdcmxhrK$6lC4d*h`kQ5{X@Cd*oU^;R9-H2u1**1$p z#|w|J%sW#jAGa+9j{rP^{(hIrAR9(!p>WRfJNlUmR5SNeK4gUn6?TupA$SB5slwHn zsvbRf1mF=&RJ;=iJc3f1kZy#k#o5dgr;xK-1HmKUXIvNe$!~`U);Q0AM{rB!$TT_q z(SI5gtvfq#K0a3Lq@IaE!~Hsh?mK?r;1SR}KGzr6zP{x%-+yuAQK~PHjJ-6FM?j+R z2Lyls5C8%|;Auyo7QZoWtYq;=Dl`sXWTeR4E9?b z`7=`Tm%B?b<_~`a`JsN&Z42m-j7X<HF8s;g4Xq z^dQ^Gckl?nBLI&;a3#3hPSs4dBy>SiU`3bD^#%$42*4u%j{rP^vY;qfJ5qXt@Ud6XFm z#6`HPBqb;O5#$F;#cVFm)X~X~+Pq7!^Zd2ak)w&hy z+Tcju%F*GO(dqKh@kvKZ9z244p_HbI4Dt{MkHBO6PS91^yL9SXo`-CpA(`66(YVpx zuFWoC>zIfYUt-GYC4%R(aEZj8HOu>Azn&}D32f&eN!DC0g1#P5C8%|00{g}5vUFCiW}YC+U&4wA%AM3a-=#u zTDH93*ji$0;BMvcSYcU@@f?GM34!wbgEJWVui!S^TD8vVQDkx#_ zM*x2W_N6?4*a02^pEn-I$_wISWL~%Hg8z8g3+}(;L-*YPe+0kNqdqDF0zd!=00AHX1b_e#00KY&2mk>f@Ju0~ z@CY9Ki%0%_RpYMe96W+OQe&?t-@zjQj{rOZ@CZ(E=K@T*j$2V$?$&HpVtE$k(-!^+ zB#Z5tsU>k^`!cQ8&W%?w;AF)`%j+;fZK;j1uZpE72gjOt3g!xzL<`dL4}8<&n6Y`8 zb_aiXdmMAMsDEoW0`qnRs8QYcxY4x$(UG#HtEus^DFqS_yyTl@!nDG_Kn`-zCZh>atfgvsBaS4LOyr|qt)qC4rn%D zj=nwo5u|&vgFV?^ldC{0Oz=z%JOYI?U=JWA3_Jqx2*4vKn%R<>E@gN0n|xm)7dPg0 zq#orAJOW>d4v|GGR0xS8AxkXz4Vqlg>3N{n>^Dg#h!x!{kOq$cJc6g4M?l~G@8LXx zSDx7Lp7aw}KL&pU7vNO~j|2pO01yBIKmZ5;0U!VbfB+Bx0zklvfWjmA^XI$v`p_FJc1FX zK`Yn`;1PgFaEj>QZ%C7=QGWsvJqd>kv5<)be*|pK5y;50#du-sdHIX;2PVbXf*G?fyriD;#eEBn7iI`!w2k~c|TD!#8 zrWeFxMrXVBBCfXXG>Fz9el-TDt&0TKCQJH6guov`0A{vQLK!>)iy7fQwlQ23H9P7W zV0hBU=zl#g6D(6#`R3uNo82{77NW~XC&>^$IX-!7`8Ik|93M+pB`)bX;*a2!)$fk< zd}ikxlaXJA7KQJegGUg)Gx8xxLV&M800=y72+VFBh#TwHX?J$pcIS^DA08Vik5M5Ih1m;PS1Ub@~_;hQc2KgTWy&tDV-LTkuD)voCIJ-mJ}9z83lNG+jAP)p(gov|ku_1mF>XM*tqdNV$5P zI)O8lWnG~IkR_epvg?cDz$2)RIHH@%(E#m#V)aPG5vxahb++vv)i!RA8#iUOS|2BP zI;riX!_(7~)x$H>6=%Z?PSay|Y%bqx?oU^5F9#=eilg$t;B+$S^Q!CO#xQB^;5=IE zlvo{czPlf4#{wGclw!#+o!{S}V9q1>-fNen9_#wzm*9_pqJlpl00e*l z5C8%|00;m9AOHk_01yBI7d!&=4cQ=<3yl3f00e*l5C8%c0mZ&RY1z*=y>-{OJ~M}XfszE>4)PuL1z=wQ_61;H0QLo7Ux1Ta zZI-8tbPGR)@Kb1cV3J7_#PynLB*8;z5`c>XqfOeO#CwuhwRc1lgM zaQ3^JUmDob70hZ)(EZDo0Uy6HZsa<(+FE{&x1Y$5Z10JJpF+p0l`p#RQ^+oJurDA? zEZk_X4Q|))_S_P8Uy;F?>C#n?9k7W&Ffdoz+21-unH@A+rgo!AHregk>{@wQ6NyB{ zfo13XmN#$ydQ04b{Oi@(n=-ZKy>X+kQLAm|S2nxZe8@@g(WiIC-cY|c0t&It5^Oi% zDP+7Ylo$2Hjg6#X2V|6aa#u6@{1D}7pEevbFWeC~de&<-gRk`pdtY33t0PMIPP=h} z7p}xgxhO13+y?Rpw^WWy6FE?(){~7J>(^_uCc{HXr~H6@0p_yOy*>mJ)+L@ku`0l4 zE$j=-6S3fAza#qs^xc1n%LVR^ocj1f?>yWH9>Ilu(Z$mN0U!VbfB+Bx0zd!=00AHX z1b_e#un|yr1h=mF<$vste&xU%Jc1z!y&m!%JOc0tz#{;U06YTl2qX<#s{80tt_6<( zJOc0tD!03N6J086L7!dP%$(7jzLme%6|4pF>P>uaalg?OG30e_eZ~dhZpbAqh`9kj zh0-b~R1#cE9e4!b5qP{7Pgjpu%2U(B$0ywSkKhq7B@SDcqd{5N?7;b~X^t*PdUr85 zkS!hnkDx8cFBb=^Yl2+jH(yIWR(Ft(RjuTspZqU)1Rs0o&tLMHw=COBc?3(eKbRMf zfF#4;Zxw;r7w?W6Yu9Rb_3%Ri6+_Ui$yU#yUx$>LBt_Iy_>xJUj_)zH>DeWa!^ONc zg863YVh`4-gy)c|pg}<@$BHg~{bP^kX&haBdIXXxlneE*I0GI*RpG*UdQ<}U491Pz z18yF#ICZ)AQSb=BBe0~g_K0&R2H+8ZM?e;NTR$Cs3LRoUUz`QopPUStt48n$@O1RS#7qR(^i7j(Cg{< z2j}XwZx`SZkee5|KV0~J3hBH5A;L`v@vnX8=Rb#^!r$seAB6(}AOHk_01yBI zKmZ5;0U!VbfB+CUR}fHm1n+(H)Wv&V{pbHQ2ajN{)c9WV9XtZ?2*4u%j{rOZ@CdjH z5d0B%&8e?n6f?jh0FMAX0#*ME{sJ-hl&t?);n=wO0J03N~QRCRnTEqkfxASN@%PnL&AN11;3l;=#*k)9cw znwgjwpPa6Ycw#e`HN=eU+4BgdpZJr1o;p^&hVlrOYOChSBOnQ%O@HHi;>NXWwOTW` zpK5F8u@f=Z)Ekik_u5K0!gQ(>=UD2L%*ircdQnmaJc7ZVY_Hit>>Nu9>vL{=D#~h3 zY4?*0_1^%&BXI5g;1P_Lr-vtxRi>TkYmYY7KL4J8nXjgD3X#?THHl-#J5w9p6*s!O zwOQ~8z#}jRZR79$D;HORp033KLYq8aF*3)0gr&b``^oX1lPa)sjoi}{-gK6AHlOp(1B+K0zd!= z00AHX1b_e#00KY&2mpa+F#-yY;H4)f{;l|}k$dLg5$u!jGRb%F2*4u%j{rOZ@Cd*o z;O|DkBk*eVfk)tIEyy}Y#5O(~HbkqTGDdYN&qhDmRgzGKc3Jll;X#@fYB_FusN~hE zu>D{5v$B@imWmmLOpqyPwe&Ll5gZ+!8J#X49iMbm9J~{#yCr7qS{H<=(kET=ujE8i z+}Pf()hu0$>g`S?Wib%Q01;a5&2B|65u>E1?+rx^{1H%{3-AcI34FFHD4JRwWJJRs z!DxjdlbJoN#f`Q$?XEUvO`RyI+(Hzr?0?{oz+&5-BRqodY<%mz-(LE*PRb)#7JAS8 zc?9o~Bn8jN*J?3tY$3}1VL#=5wh32d)&70%b>CK@Vkzz9l2R`X*_x>myfIgkKh>*ZlF>i00e*l5C8%|00;m9AOHk_01yBI zziR{(9>JBL{rn3K{c-WhId}y7rAF=~-@zjQj{rOZ@Cd*o0FQvH0D(u~Rf7hP06cE@Q+@2vbZJF^V_BTZWi_l~5JZy?> zpao=V7f0hpd%HHfgsH5H^x{j*F1eK5(Ql?j@O=70B&Kiu72gov7yIB5Of#)()+yi- zFvHbHC&>ssIX-!7`L@bA>yO|s_y55=PMc4CHAyb}%R^Vs#UprCN^}N%0%eJlpsJ@p zS4Y*~E`cCFZ@qASHE=23)v1K%kgA|TL8?@)PIs&E)v3sxQ>svo@~;?tg1LHBnu}*J zZsZ<#ruhUlqd#u!>DFqSTx*%?C%{oHv!7RuhChOyGt+dB-$-_nPVY`~WO!ouaCNjg zeaeHp6IBSTz^#8y=mhsFMl)2##5N1ER1yQJEBG*qK^54}(8~{pmAuc_2+Fp=U3=JfxkO)gfYS zzQ>IwF#$l_Ev%I%nn)yy;QI>K;TI7(zlrC~UvB~~$Uy{n1iULegw6%w2p$1=1oXA4 z(Ed+vkagNS#3-}ZiH+Oi#!W;szmFfxoYZzwQIfM^2B!g!fKe_K%qfq6zWd+Lc?36) z#S6QjeYEM;z2ob%qEX;*v7 z8>xUt03HE*1MDFNh>-{$0nwo?cL_Y=dm}MpW1BX^apTrkkIhs^?C()~g>Z8(n6A=v0^6x0a}>^#%N6i2_#+rT$9M!;a+6!~Y}`IfJ?{9Q|>c}>&Ln%>Z~I{wA@>*BH4 zEzx&Is^N#iJ=(8G(mR?yJ~k2xr$Vnbb`b^8^<2w?4?wmvu-#vT@UiPy5x%si7z#Cf zVtZ>HS2XkrPMy$@e>cq*I^#xbt9IupzI~EVEAC47mPumfxmnU0++-oA(eu+M*c7P$Orc-}ip&+cr)zj8XzDqN$_Q-T``nLeWwO>@>6krwz1uAP)>=ah!O73g1C zrnW5;H*O`}TjkyBX{Pf`_7XBPK@_OVH&@5FUm#}*?r`_?LQ0bk08WW%r`Jb1EWAba zWN>b94Nh-;t~{Ou8|QAas|eqAS`KF%Xfm~?_3^XY%*-tD*CG~VPs62t@o$mHF_OtX zH%2FMh;{PR2|}f)l!s@gZMwQhNY$&^!*+RsGIyHm*kpV87B<;D2|NKCl*#6ap3ipb z$#mvBtG6f-qLAF|Q2*&dy`PLt4_C*kW5)#i6fpNp?O>~ye`whmBq~Ki)-8A4jA^x% zv1yA#?uwh5IqVy5Z;ixv-!wZ!x+^<8Qym=%h#RR)RLEXKYMhxEA9LpvK zV1(pDYh%XdR_zYH%y~+%0-oz$4Ls?bN~D!3v+?2>eX4*7W*0*3K#<0*o6WAV4xWej zzC}WNM5@E%QMCvaoOS&FXBD<79)a9vzW9r*9WkRa0$ZlGr%|Q%cWLxAF2spG~(h#?tA67z4f!99ZddJfp=ozkC+; zTu%Isp>uTB0_L;Yboca>w<1f5>%KXW>;Gn1F7W9;OErd-;^9~`F``m&G$BMZn{13lE!a0UKzVD`r~j{gQ>kl`<}Kkv@O(2OCo=;-H7I}5z01h_GA#^f`_dfIqJy(5r4EiP!; z8(D(I0i`2dp)Bm-Y1?tSYmp@9<7pCiq&z|#1D1mw5O<_UPLV^w+zBar>krQ@!C&qC zbfO^{FkgjdsNor3fhw|t|ky51fRfGqvuza_g z>xdx=;_Hl4w^M{vu@x9ptM{18-L@&WgiNjTnz(UjlUBQlpM9NnI1O;Z$eEND?F5KK z*9YwJK1mhNPGVd4N$8@i(wZ~172D#*AZc+ozi9eoRBG^v-)=WnoM3&@C}q&ot4|u0 z-dVeCD|unJNjq)ZNfREi1V}zbTo*8sMV>Pq!lD56L8KuhT65N;XzLat<80SzC%vOc zx-p6Rm^8({x=x=G!Pm|?gyt?x=_ut+B&uPxcUTwa=~J0oo)+j5VoKtw4Wt>6<(!zq6g zTMgCwPNF*>Gj^>D-hZ76>GtdV8id`!`OPZT&LW@G?wPe<%Xo3v9pqTT?x1wOrf&+! zp@x|Yl%@CLpd<7psw1|Ys-1mtWAkQh*3wAg%aUA>Ul{BT!tS8`Vw(%Xyc-XHZ{=Pp zGqvTtaig$Nt8M4<4SS67vCAj7Ego~l-Z1C=flUBcA=1H-S0hgmOBlAOCvI#c4Lcwo zA$f9FGy43Fl00p_M~~S}n<@F`twC-vi3T<)LK8(lx++vi7q~Ohf|IR=@!+7dZX8 z<=^=1L-F;LM-aM*e&7!X00AHX1b_e#00KY&2mk>f00e*l5V(L5Q0xwt{`%%?zPBRs z(K+l6K3~G)2J#(t2Q8BXncAUNi=98i;@T6-;>NY4CC$nJ;E8!ll=7GRcDXx?r(#}jrgqy> zrZ{(cqcf>^Zl$7S-frdTNQc^w;eNN{H=lSe{y6evqQwL$Jorr|@@8kMIyG%+IV-x? zk`ja!>v|!TnOZ`0)Cd={UFmi99M*udrTnBtOY3#CCkMyc?pwPs>;39Yi;0HXGKa;> zGRq~dmGz72v0zzlW>so&Eus_SB*eyy@c7FR6h&LlZlkJ3UF7Z> zHCo9@J4uaJyK8o9l5J<&`Gr*{H%x71hvlKOe$Pbo^*<8Mq29IF0I#!Vc z2uxSj(PNh+AG2Erm}%-eyV(Il)^?Y_7nNg%95bJjhMeAW*brmcz3RzpGV4+20i;Kh z4&zoyL02ug5$-iv93tFp0FQv#Vo~+^?H*GDce_T2Pd+kK=HJ;q`Ol=+{q)#s;1LL- z6?g>T5e)VBXKDv`#$mYW6kngX4!@9r=lqs8v2BQC^_I8=>Ay>2UH6^@9)X|4Ab^jN zdEpLX9-6#r5O%hM%v~wrJMHckFPM~A`F=>24<$||Qa2m~kAR%`z$3`_n)}m4Vi-(t zkWM#bOa-U25AV+(iW!%!(ulFmk;?7F&YpPNL?;LT@qBw2yWiaLcuVF?s^bBcoz34q zkAS}We?I3CtpBf`*ps(CxVMQa1b|0CQNSM%00KY&2mk>f00e*l5C8%|00;nq3mE~0 zN3i{Cum5al^qcq1!6P^*0YdZyz$0L<&ZtW`@Cb;HM=sJI5gK6BPl*)@9>GY4s_*ui z{U-5Y){`CV$@ZEZGFt*X0%lbSJOc0t>Z%N~)rDyLDf)ualH-|2F7+0cR7o#swutZ` z+ItiZGvE<8UO?o|Ao`y!z5280R#!=)Bf%r+cVSL;WT9#AQ4&*dbLon6 zkIH1IOI}?@s#6oA!>6n_Tnl1M5mzpiqr)?!)8(VYC!=`B@0~#45tPzovIvA0)N69@ z6YV~y5T&aZyau|)26zO;1Lc||0^W<^`JS;PNSc@BN zZQPlVU8Ma_gI#hdyQAOajhm0+tDWC7F=)8omd%^v)=veGfZp-BzQE8$m4BQ4KQCrH zg5?X~5u|4H7*v+LmQ$?I$?G7H#B z79_s#Wog`UL!(g(6C3^O`N7Ywi`^B-5z1}uT%5KfbN}rA=a+9F;I!zM)_EjH^VeMm zJyrVUm5r_YH4y#?h;8Hl77&a=8g1HeSY%@ZlaIC6e_#>dG;137@0U!VbfB+Bx0zd!= z00AHX1c1N=j{p^K9OQC=s~@=U`*(&1?}dGV3%=j+fIt8U00AHX1b_e#00KY&2mk>f z00bxkihY5ZKlymq=-XDmWe)oSha~83B;Vnu5Pk|B69SHIs6&c^eF0k)Hb~!Bg37~- z&eY(iaQ%7>ehS$jkw=Q9{RcmV16fY$l+kfhPF#BW9yDd`d{Iu&g!LmUvP`fqV7iT9tvHLdo`kN@sBQ zAnXgI1wiweEF$sQ%oC@OGoB*8;~strVPC*@7D$&+Hbx`^20RS*1-dC?`JGr|`J2*4Ghq!VlRS8$_a#i+sr83wT zfPDdVJd06cjWK5^OAKfDDeUjB;}Z(@1z=ym#rZD;Eb5K{0lq6J`-u}R%|6%{AbWK% z_n$9d)FuF@CBwb|S+D#I9(b?Aeiy4CcW&@g$gEz-BTg}q06&G!(U?y~*#rk2Ynj@j zp184bqgFd0n@i!zZEX3^XNP@(wXiQhmv}lnd|mGy+fR%Tl537ILMUf00e*l5V#N!Sfqv9+HR{%PF2Upx;9^a#T8xMf00b^11e(Ha30pis z9!t>|xbq*z_W#H5YZFvoph5o|qAx%`@CO8d01yBIKmZ5;0U!VbfB+Bx0zd!=oC^qC z(-2;Ea$ja`L|&O22h&J~&wDA1dVv`OEkAT;9859{K`5 z$vpI@SMMEo3)L5B(0>@xe+Z3%bD`tW1|R?gfB+Bx0zd!=00AHX1b_e#00L)=Kx25B zMr8^Os=h#smdou6eBoPzKTZ74YrbIF7q~y9-+#8XB0mrS0zd!=00AHX1b_e#00KY& z2mk>f@U$Y3)1rx5G}c3O26BT#+5YrkX{a|>IM`Dd7%1es59WH!gL`|(f2C}(&nyid z?7CvpCK9{*KzV1b-@JVPK)?3zD@RVx-u*afSDdzu%LVRQ-QDw}8&(Wk_642_=}$ea zEk|KM00;m9AOHk_01yBIKmZ5;0U!VbfWSF|KscO8kft=!=5V>d8-I4k%dhys<}X@u zfd@nSgXc(N(F`B}1b_e#00KY&2mk>f00e*l5C8%|z>UE5kyF#Upqkq(9-V62E}}5C8%|00;m9AOHk_01yBIKmZ5;f%6uDB;g<=RyFpF zPn_CW9j%b(SWKUV%LP7o?Js}wq7(l<4j#dI+rwx$5C8%|00;m9AOHk_01yBIKmZ5; zfq5Zd^9YvE#9S_L+xuSnvE>gvFa){4ydXp(AOHk_01yBIKmZ5;0U!VbfB+Bx0_QCP zwp?H-eE=>Oc(C%zHC^`}_?9IX_-RQ0>3REjXgCl60zd!=00AHX1b_e#00KY&2mk>f z;6%wh7~qQ9%eaxATAg9#=}ecqvqNW)fb5Aj}SkF`Y-gK=s(iGPk!JJ z2mk>f00e*l5C8%|00;m9AOHk_01!Ce5Qu~mT8w@~=|_Zqgy~0v%_A`A197>)uK#}h z>V~PI2Q0b3iIDy({e=EG{Zakx`UB_NgQLAb00;m9AOHk_01yBIKmZ5;0U!Vb&N&2D zMiSkcuhKxQHImpYqGX+cs2)kI(Hxb52utawF%Vu6No>-56b2fWM-p9%CV|iwxQSxK zPi{f&Dzc^X=Y{Pe+yP4_>X!=uxM?hoo2Lyls5C8%|00;m9AOHk_ z01yBIKmZ6_Xb9LmfK7mR?xU7m;IWYY*oF4gcpe}C1b_e#00KY& z2mk>f00e*l5C8(tN(7dMI}?8T0x^mPmkU(>;GK!r?T&nl@(3FAgCYHX@_|1f00e*l z5C8%|00;m9AOHk_01yBIKw!ZL>}!Z>wf0y;&(?!`bAvg#pME@e&Nx`2X?RcZ%ZyP5h7*? zCoYty#&ZAxAOHk_01yBIKmZ5;0U!VbfB+D9rV+?TYVFzrU-Snn5HwsLsYMeDEKboI zAb2dIm~gqk7p8yMIrBmNmlluU;gJ4>{_r!68R`cDKmZ5;0U!VbfB+Bx0zd!=00AHX z1m=%G8{sc#n;RP%_EpD5#!pW5j~^Kx?X4W1Id-fvnIs&9#Hz-g@rhGAtD_ZC>S9_l zmkWINUskTUxp>z@;1SFpZ=?hQKmZ5;0U!VbfB+Bx0zd!=00AIyej%Xn2$s;cbGg8a ze)hbN+!4EWFXRH}SC68#KmZ5;0U!VbfB+Bx0zd!=00AHX1m=%`A{SUn^KrSr?|-~C ze$UI|-?iidUk>R%)xSLda*+}U00AHX1b_e#00KY&2mk>f00e*l5I7eQSQ*haYraH+ zhL%WTRYKwsETiq^a)B$?Kj;6f_~SSIEwwMOIQiL-{yqI6{XP1<`rZ01dS1`yk<_E9 zPo&glZ_2SgJ!?k zm+d()kj-cN%wBG~Zo{Iewui(s7kE4{JFvUg+?gHfFJ*grNWNmWR4BGz6xFu7Qx5Lw zw=(7OeQWio*5^(zU>5sKGru=iEaV5wd}&=Os_i0)`gRW$&7Hi$9Yr&{tB}w3_m^%U zUwa4B$*7j)Ws$Tzq2<4?bYQo+y2W}hrQuRV?ae;T6~&MOTAQNUCSC=P$d->^2} z^CbHU#a-kndviszhrn@QZKF>j>Tocd@68tbhUn7{u8c>u&F)IBD!E;WV~Hb@5UayodqT;Q^QUjJub zT>RxdR9|4Reh>9i_zV3f`j7PQ>yPMP*T1BHUjLN-uf$8i`}Ftf@6zuh5`%kae*6Ie zAOHk_01yBIKmZ5;0U!VbfB+Bx0#7RfOxb@i`&`66FJhlM`%JOVB>QY(pUv#EiG3#6 zXCwQJN5Tm$Mn9tTBSJsI^n?2;G)Sutak;?%{-0~BfAqFnmom9P^1nj*tMn84=k!PQ zx9bn2#!_19XZl|K%GATD`%^cjF4a@1*ONr}0|Gz*2mk>f00e*l5C8%|00;nqa~Ofu z5$#$nP=R3ahKRODn}`0uqV|Zk-IY*QAGm03MC)_KyR`@ObrEfsHka~1Djm_Xc1gav z14-+Vf>Z}ud|JvC1gPpkb8AG~-G_UfwlHn!f00e*l z5C8%|00;m9AaDU7K&b`cFe4an9zi30EG`!~5Pn1Zx1NY@wB!P7L&TE6gueCycyK%d z5C8%|00;m9AOHk_01yBIKmZ5;fipv(KT>Pc7Wi&HNR=R*kJQ@FxG;|bLBsWtS~Ri1 zwkdi81d>G*7A_a~i$BnRJoTsVXt#I-?+fWq=nw1fJ2T*r3kU!KAOHk_01yBIKmZ5; z0U!VbfB+EqEg?YM5@=diV>rC8a(Kt&_{pitWN+p0%&}vY$u`1Y&^9+V__`@f5)MLQ zRiosma4~HmmkZqczkmO!UtIIZli(5jmii6F0s$ZZ1b_e#00KY&2mk>f00e*l5O@X= z@Zk|Gq0QlPf!F={$n_5bny zSW2tna)D2M^ohU!lkneOWyu8|4Cz1BzpOv_TWSo71p+_-2mk>f00e*l5C8%|00;m9 zAOHl;27wh3txNNv5`-;JiTkQ!BZOkmKYnC*l(P&PS|W*635iFrj5dJF1>(i4S3LaP z$^f-5ur&Gdkp4aWA^ko2z53nyEqY$h=#kW;sZXTdk-9roPHj!KCLd3JHu-Ln5Pv`b z2mk>f00e*l5C8%|00;m9AaGU)T(UH(<&uqI;_}Y+c*jlG@qbGPcAM=>qS|)fR5z4L zyN8PXs~1PLYm`^;Wm$c9BxZ4ZfO7VLOnc3^j}xidS|U&{9M zkbK2#sZeach*hPg9Ng1yWya{BaJh6 z@(Onp&Frp1KHJ}4x`BM{9ZV;qT9%hZ((;6sTR{5ct6QuGQyMN+)ZXmVTu}@uptUKg zZQ@n%h-`^G@(pVfK2Nf*P~1hHvNu;Wdk7o{);9ViqJ9js`QB`?Z-_qa;L3PZ+w88y zPP8%>O>`$4sntK~EO3Xpvrsf`zlW{SXoBS9aoL?EvuH=@k!WH~GEpoPN;?Y#{UR|e zK++~k1h`URi1d0XJJ?gmmq`698ls6!$waR?Sjy$IrCcFTYszN_OoLbz=u%@?VS{AQ zE~f*R%LV>r?Y%d>X7Js=ruqU)_1928g}=~$qW?($zW#{*b^S~F=k-tN|4O_Ryib3x z{x1DKA~Co}e*;N~KOg`EfB+Bx0zd!=00AHX1b_e#00KbZY!P5;{!7{C68hP&n0+o{ zpBJ%DoqeX*XOexku+L`p*~C5*?6Z-5#v|c`7NZ|g`VpZYVfw-S6dI(_hqzqeRVyC5 z=#7v6=($WTkbHAUf0ceh|D67){&xL=)L2SO{Y>AhUzvJ1b${x{)TMeV_4?$0CEuL< z@Yy~%@&f@N00e*l5C8%|00;m9AOHk_fDZzfM6?{y60fU5u(Um*ZTCxLYY;419nr4U z0u=}rZ-{7nG*v6WSASp;t4B>Js}EeXHlp>p3UX@?=<6cdE^RL5fmAx8W$luDbqA8x zBL%4rwD`1?D+o~4gXY$Vw#n5}OL3sd=Na630|}orZnc3%ON(D=pq(bZGLq=lxMF~! zG!SczBsPmES!W=sM-po^M`a+wQu=8OgjYlon=~JVfrjOgM3VVD>iL9xPP$s^8Ew-+QY9L zIeq%XD~5>Azgk-?yuebpu%S#OH)WgsA&Q-S>biZzUtq00)^Mi9GPy!|UoPKU*f;1D z{O;x)VFlEpu?3b(g%M>+EO3gt`*G5xaoVk1F3^zu&acMr8ZxQAKt%rm_`I zS4e+Cf0)=9eAjv0^=LW}00KY&2mk>f00e*l5C8%|00;nq3j=|sNL167G)5vsWI@~# zXj)fe*vCm>8{sc#n;RP%{M-~K2?rsus!{S&xR`>&f00e*l5C8%|00;m9AYdU7$Rk)nk0(Eye0TEY$y<{9lYPmK}Y{}eNEDQ|x++Yr58+0S8ts+tV*?iwnw$E(1Xn9m? zCjt5FfH}B3+haC7XIWJ1CLx1EyLT7O!NEb|Ij=Oddq*};N^7`eX;jN48^grqo$c|C zo37*kmJaMT+m}SO?Y^mQD3x{(75i5&j%wE?8ykiO&3>~l+jC$bnLZOack&8%6wT}|ifn)B2J*FcFrAEQSzZ=N%M)781?iKoZm}Lr zX}DBTd$Uh-MKPp+)+XBJ?k6viN4{Zg!ski$6^gsaQ;Ko1w$UdM^@f#^nWE9 z1n<+|tG`RXk4Oye(chrIMt_BVT7Qv#Qa?d5;SUG^0U!VbfB+Bx0zd!=00AHX1b_e# za3jDJ`B$>fR`$7qeH!d@Is05jKf_De=Mwtau$X-=VxJeWPn~_H*k_V`wy@7;_SwWf z6YR5*ea0i~A7T2z{S+Fsp5uAf z*B?lYrL@$~^u79(sfSbdr*2GLs;5$~PySc(&B+fZyOO!&;pB;Ajby?f5C8%|00;m9 zAOHk_01yBIK;ZmGpf#dx@>M5TX+*S6A7z48rqS)AO0Xgo(N;N%1cn~b+9frDn*Sj6g46UyoX z7p;wGeXfGs+5`H!h_*|cOL-ubj%ZoCBwyWur1eNassk-PEtNF~npx+nPm*Pd15G~9 z;MN;R_@r^G4K!L>{7M7uH1U;@M7PEj0~Do!SZgG)SwzV?15rJaSfe>A0}+f00e-*`H4WhA*?NFAhrmWYT-mD7f6%}7Ab-92oBN*<8pz}OJ09h zZSe6%sxQ!>6Z-;Bkq`U<0U!VbfB+Bx0zd!=00AHX1b_e#00I{f0*qk5c?5^ZgB{{> zfqM@8w6yd)rB_&Tfk#66WBMZ((1YVqfB+Bx0zd!=00AHX1b_e#00KY&2t3;mh=-SG zL|>p`X}B}tr!NqrfN;6Mho1Q8{nuad-3^pS5KY|?((l&~>e18($yfXV0U!VbfB+Bx z0zd!=00AHX1b_e#csdd2iAJL)rfHU}>l~S2#$S_=SA;!CbF-aBmO! z&$i5eu*OJxFO z>Y%_W>h8x$hsJ5Aa=E~NuDkupFZ@yOWmI1vs(+jD2=pHlD+AxAsqhB`fB+Bx0zd!= z00AHX1b_e#00KY&2%K*SP}V>+NRln? zk#Is^n|fF3`{&zJqrE@?2mk>f00e*l5C8%|00;m9AaKDUur+*2Ti{D_TfHE923c*T zf=GX)*0#`UgH#E^`ADt(j0^K95HwsLsYMeDghbIBAY)_^9Vc8aVE)7Z_b*>K@SUGB z9)W&uNPj|qSbv}XF7g$BKmZ5;0U!VbfB+Bx0zd!=00AHX1c1Qr8iA&0RMVC;Mx#W+ z(G+3dBM~C9XeHbSt*bE{-d8!iV{-iDRAsWaa(L$0vC3o{;V)>L8ygz-RmVn1O#k?i z;ZYu$Bpigqs>Yu2iBmhPqZRTvi|HeAxxmejeDr^w_{h~Q;1T?;I~w%?0U!VbfB+Bx z0zd!=00AHX1b_e#`0XGt2ajM0t(D6K`o8z+pS}7cZ}~jr0>7QUK&e0g2mk>f00e*l z5C8%|00;m9AOHk@*9goZ7g$Q$!{q`W+4!~V9)IM|vX)%nuS5Dz^)C|}1NZBH{kv{8 z>H`8m00;m9AOHk_01yBIKmZ5;0U!VbBm@!>ZHY$d1X1>lk_jR!B3hT`LnR2WjA)xR zUm`(6OC+%>A@K;7(K@(X;7xn`Zh6PcE_s;R7wBp_9n!z2Kcv4$zgNFozeUgM89kDE zH1&zpJ5qP2%BiiX*5u>K&nDlUe0lPgNq@QN#&fq; zIZ)VZ7Ixf7Y9l3Xv`QSv<#Pi=14VPs5NSs*$uvkyyy()X)=n}F4(%8`Fjz7N!b>w& zF_s^-fo#tWxx5)(y&`wmzz5NPKT@aCd+9 z07+5Ik|$mETq~HRDw?|s#S+OCUcJsLjXtKGwAb8i=6lV2PtF{StiHsG9~v}=@;M4Z z(Hz`O05YjZvcd3k)<(5%Qrpf#vBw-dFtDT0Uo>};M0xTv+;(wP+e~83{j@%cRqxKB ze2<0jx;0TPMwJsWQf9x+M?PTQbu8@w0o$;DqXpf4Y`QVkZV}c%7$FTDa{^o4XrDpT31qw*u%`+ zSu6|;_T2FQ*n1c7IEpjh+cjO?(>*iYC0UZC(Os5|@0Nv-g>8K4nQ4vNnv2{$V_Azq z3$`Ez#{wIN!?J`GW(m#`$hRST4#{T8=1T$zf!*97ESm#M64*QmCkaa)*v$<>_<#hK z00EXfIm!1{^|WS2(~1$xX1Toc!0VZ=>bI(Xbs0_dzpAXP8Dh;c>42b&nM)VVv=ypb zB3cXOOx-avX@%OGL_uj_K|_6w9JVUKk$0sN@BFRn{C^7*V^&uKXB`x4M*#}wWI7ki zWQ(qbpgCl$w3(d9nmNc$%6GD&UM9OBTIabaz4R zCW`4aG|gTnlk{9yS<6XVR&KZLJDRmLk4>WT(rch(I!h(~yp&n_&JK%ou!>eVARxj(Ll zOg4UJylT8?JZn4&N#F|!AOR$R1dsp{Kmter2_OL^fCP}he;olKq8|`;y|Delt`l~x zuxo@}E$k{`R|>mA*yX~WBF1PFNcylf-XdUNdQ*nN>_qPIrxjrGSGV$-pm(TAfnnu}c*?a`I!rs(;x z&qgneJQ%$$`cibwe_hq1XC#0GkN^@u0!RP}Ac1!>fjA|Df#QRKW=i@iA3c|z1FvtV zWaE6ogZ>C5O`hyvolZ&Htmt5E10~DnNDkI`o`MAjs~II-6>@`Bo&)c(U`cGSvV)S% z^GXd?G*Ys1uFzn)cd=S#aFXX|9+AN^FLWM>L0=ms!}ACXdWAeWP+qXKj}rSt;)0$o zO1Alt0;C1qp8p_WL6?`Uz^Cnc#R5kZqcdIAYSqd*!EsiYui=%i!|nO8ut zcm*Z9NVO^;P(M&F(y5MEDIcior6fJa(OmTaTSmz!Igxn4=%&Ohc?#4H=w6ZLlMciJ za$2bzh>FUsE{Q3G1Cf9-%+(EO0deNa22@YQUzNd9oNz1EhKVl>s1gk*ajFf?232YX zWJa|fQkD!*5i>|JAhl3!kOT+@LQAMNP^Bc8)eD@?zb*WEfd^LHvZnX?yAJVn1eD#o zi2a;B20IMg`%eBw!LlO(B!C2v01`j~NB{{S0VIF~kN^^R^Ac#J5?M>foIGC*HM>SA zEJ>t6g88v<2;PKXFM>uQY5o3$L?Q1jO5p1V_VTj%^8(w|Z)g6W7w-69TrWV`&-prn zm)S4j4Ze^75)MIFVJx1BkkY*)6f_BIs(PmxCl-t+za~z z-eX(}AMk|)kN^@u0!RP}AOR$R1dsp{Kmtg>C$L?i!I)R_bvrdj(c)TddWTs7#7U;#_v|thrk(exjT ziv0;D$L(AyKkk+t-xh^^JhT~k0qg}iJ|{5A4=5c1e_r4#*N#Tl-?gKG z>jf0{}T)+Uq}E6AOR$R1dsp{Kmter2_OL^fCP}hTZjN(FQ6#g$}+cs>j+d{ zAb(!qt8x3`tN-PfmY5eXjxK@|2`^y1#;wLv@Bv>)00|%gB!C2v01`j~NB{{S0VIF~ z-UtH2(h>67AEM6+4U|pNB@4K(QeGgxj$2Ej0-B*SZ3|6yJ}H5eqcdHv+gXi(Ahey% z$l7a1S*sg>>a6Eg>dy;&?I#a)?ElN(WW+iGcEuw0JbQ@U$!=wT3m@=>1dsp{Kmter z2_OL^fCP{L50{y%GdivgqW-+V9Zx>;>Yjf;^Znkuz_p9mi|i5DW8ll| z7Iy6$oH=xd1dsp{Kmter2_OL^fCP{L5Z|Gl>P_l}5u4`oz8J_S^ZNiy+njdJ@b&5>3&AHjmjTH-}yC+r*%4FA^2-$p!S8cic zE_W3_xi*z#F;gfyR_g!{B67holcSacY5N76kXqLBauL}~rJ&aG(2(+D{9jk<=$FYx z2+7#F(Sn_|c&(JG2*Rc4I+-*}Sm&r;9PucER#+-l{j_FKDO(%JmMJ&e}%RA6X z(o*L#&l@jhDQe1sMwYU2NvJ&9+2@5r<16ND4gp%-7yz<3bysTdmB}!qHj;OemOGJ6 z@|OP%u3oLb~0s+m{4zCULXfj zcQtNnCKfm^*S`;; z+;gOkcCX^fktz{M^=&fg0U!Bd0h+Ezw6#?42b&nM)VVv=ypbB3cXOOx-avX@%OGL_uj_K|_6wVvvyF$h*>s zcmCFO{=a-|>1q%iG9cED0u;{4bS{?37F`WNbI4d}GdYok!8dKCd?zdFMTZTE9qjyz zW_GMpXJ#@9_rWNace?6CQq?itT~ND;Vmb{?vzN&v4M|nG%34m^vU0m^2S#QqS6F6< z;WU(n%vmFTf(hsvqr5X`3OnF!%I((0DCPNrxPC;hXYrDE#=L@6rB;zpS2Q5Ivu?ma zJR%05>g<|@0`%HmEubXhd1n+#IXe{fssWMsp^RoOWjg61FRj}e<}G~=lTxHsMb?IO zm7f;K+hD?iE@_nxag58d2KV`4=19SEN__Zj_C5A3_6<-F+{wNOyAj?5GX@`JA7la1dQuNp5J&l*n}j~PEOzHfZT_@?nS}Zr?4HuwhP7< zLyLv27q(7VCafW>E^JKLsIU=XHDOg@!&K6U!i~%gOY8i0rieW>>Bu`|6TSp`!u`VIAjpxS8O*s*?7qKva!=x#SG(m{ipiJ^n3LI z-PX_6FVtuB=GfD*`y$UoZ;jp?>yI_Wreiy!4@YS<7rQRnqbt!((eq=Ujb0jgFnV3| zrRbW-S2U{Lq5e=iFESk|My}IVMo!Uw9cc&sz+Ku0wZhxE@nhML01`j~NB{{Sfj59a zA0;+9ff&JDPD%bmkwA;Ez1G=CjTB+qDoTpg&gN4hY;B@sHJK|!*s_e0(P{?)I)u|| zlbKJ3u(>wdwJL;7aY_cOQ!Pc>*h5LOHpG8E22X-dZKkBZHikRgO^I21y{tgkP@8B; zfH2fW$+qfStMmt_te|99b$GD+V6ZlclKS9e5fUUm7!c*Dc=TL)4!mBdcjplv^hYRZ z@?;0=bV}N0MF(peC|N#7a9C(ifOJakS9h7XIS8A}Lk&=~j zg$B#Li`6oNlRQ83hzyo_q4P)#`r0TNo=0HNE9A+6@`9zJIi5gV&?D-<6e&Pj(CzsT z5*BoM*$RBx-no<#>-UQaI=reWivTJm1?_c|^i&E8+C(D?k`uIwMpP>%hzmt`fRv!c zproTLBxn|`pe!R;B8n9(B4`pw1H=K9&%ql7(tt=M1wlh6C0oe60)oY&$IW?)9;6?r z7wJ?-tdtMb^-_{1)!}p115Av8ClU`BVtnyD1!@O$uSoMr2Vwy^tt1u|m0O)tPdE?> zD8pRcfEEyEu53W{RQy#LEX4`8Qf-*{!hkB#fD)(L&}>kpWmg;y02MKV6a!KV z)dop`U?8-FY6DeDf?2(Q!oQFGd4Y+C&v~l*Gx^K-I)bqN{36&{U@tu1zsI=L*a#o- zg#?fQ5AAVM;Dn!V5g}-jlGe+mp?Zhu**c*p=VAf4f4- z5k-0Jen$4dui>(XV;@P%lw6|7uieAI`oY1yu#TkcM1Lkpxf8lTC$Kbs*2%F8j~C(0 zznL~gTA&wyvSAVye@vEEf6ThQ;x}8z;k>|^E+zDO-HLgI$#FZE%8$Ec$G1goSQRiM zFMz!u$0s8u`4Wb*tE--a<{ait+MgHryN#i%=noEU<9dNGdxWnec$xi@{ha-b{TM#t z3ke_rB!C2v01`j~NB{{S0VIF~kN^^R3lQK-2*P1*6@^<_=9W@!C5hXRzm7oV#qs9_ z;y2#()9pXbTrTDXjNwJFlfVV6*BCZ#HJ&n#z6A=7SwsRz00|%gB!C2v01`j~NB{{S zfjff{pfEzkd&-X}gkuQ^8BnEwLkinq{Q?!oeJx)}dCMQ@EHH$DbG2 z(EK+ied9{)UAT_mKUc|kHxfVsNB{{S0VIF~kN^@u0!RP}Ac6l*0(_;wYg|Xr!1L+P z3w-~_rxcVWXT6N`0{@-0hiM}LB!C2v01`j~NB{{S0VIF~kN^_+&kCzj5}oi^DYMSx}&8lr#{&oIn=u_+kPoPR9&bN+5YBC5|6Bw14{IBbn)a zXB|vUoqhD&bEgi6VpQwUD%KG+@f`W{0zFed`rocjk8LfWI+{n{tBYVCS4-#&VZ$mr4GFv8;mIx2@LQh-qi? zxvcHFb}lX4t=cM+;v9GR-Eg!!WQ#}G4S7h|8M|OxZqpW-tcJKwF;|(#Wv9txbdC!z z-)SpnIcC91@#w2I*QNyL!51dRtely(?3{njx}DGUZK}RQe4|VT z=OkQ;)pM#$k^w;#cQ+5qq(2~v+r2?1Wh!k;Rz4bCY;Hq`GHnlr^sa6oSW_3 zSg}yLdt$|)Om@wQ;2l0+QGS=Zil1DYO0t+K6dkK|fCmw|;F!r#%Yn50f=x&*>v_2< zkEYL$6@aNLb@a<*BZOq^+-SkhTD(?DRRrNube&9^Aeh&NWUQ4*8+?GKkjT51)VM|_ z%i*(QWubZG6FZ?2z~gGqW7f{u*<#kQb`_y|QgD;YJ=U#~Nf+GY78CA-Td=ZH<4Vs> z!F1AAA!{ag*f~q;Tp^Rq5KkO04u8dun@$cIsOdsG%sZ~sv|J`DAv|TfV;OS-VmPKV zAvK-kT^6w%Yb@_TCrL}4%RFzqn5C#G3mO^pvm{g=?dP2@9Wvl#zq#>}OQX4(qXEfKASa;EN>nY2Rf zO`@PQu%My7Mlnc8aO7R-#5;fMI{#ljwsbX!4jB+@M*#}wWI7kiWQ(qbpgCl$w3(d9 z!r+^>QofTF^`gUu#13};MKe2Asxvd0g!^EW%R60lBB|<_?k=d^L@}L)rrFD6l7^(J zTxBij3RZ5n?ZC(kUj@qyF`S0dkU49_PcY$F=4c+i6*7e#@HXXk>tdAhd_i14qSv!{ z$vb0S!KzZLNT@3sklk4~;2<6m15kB#%|ZcsZLbzklJUGV3Z?Yh*+j1z5Gk3@0^k(% z{~|A~+X`C;49#Uyiqxve+OV$jUH^C+Ojyt*Ew6xXT$VMs&kr+43YJp}VpP_8bj``< z3*OF+u(1Hd)x_}PHEGjL=5qx|za=DVgSwWoTo^k{zl-rE*bKW03{;2Yp(-60{=`_q z|IF~`1)e{8^4^M8dE@Kz73)%T>icPW!=CUkHGm~v*L#!WW6na?)Yi9K<%4Fkr#;eAQ z#Hcuq%aKA?$KtPZD;SuzkYz3cFO;9$~wM z?GmB=Owh9{;wnf-xVV4No#I4jQYy-EU#lqGLTPG|N)(}<~HYRLT*od&2 zu&S_ODrrRFM&^ccBXQ%OQ`pQ~mOn3W_qD&ued}BHb}=uY-mr*W1HbgY%bsSRX15!M z3}XC>?Pez%4;f!Jb{eagVO+2ORR5TMuRfsL`q}!0`i$NjdpdSsZ~_J;9c4j6();Mk5fXir*yIFa1amnh z`4dF~EyDI%XCpOIgl(%RDONk1Pl>R#iIUZ1t`K3%GD=3P9R%nQPOD93J{iL1+HBXV z5H`gr8LUpV6lr4*CCSp)IzmE5+E1|Euq># zm6BjqFK{~la`xv14qW*+w}0ipzFYV@0-4>ui2a;B20IMg3vcm-1dsp{Kmter2_OL^ zfCP{L54W;$j(PI} zcP(PSV0W<}u>08KZ?#fmevtqYKmter2_OL^fCP{L5eqtw0t%<(&kLOX!|WM9PJAN6*Ab}t#}>f}g?nM2z%18QB9rO3NOOeIzMUa)~0pb`PR(@JqMsM1Lkp zxf8lTC-5_Q*2%F8j~6B2+@?qi^x|(?FbRi9OqNcOn00%_Z?=wyz-^ZjdcAJN{sfcb zb}p44cgv1%i`sCyz>K^A_Fl7qlMp8PQ3z#MS3L)fIm{chKQHiJYG3|$`+uF~dI6O^ zSh0?P{TTKcc#y}%7ZN}MNB{{S0VIF~kN^@u0!RP}AOR%sW+lMa2&m#Hf^e9>R}^l4 z&pHB?m&BhJ_~O~89q2v&t#65W0sYxU>~8&8b^+@(hK*Z|r|`tUH*2k9zK{SCKmter z2_OL^fCP{L55mP@bw z+%q|`j)3JBvFF)C>`rzo`&)JeI|3K*g#?fQ531iN9yqw)y=dwJJq(fJYB)SHeQ^KO;SL2p zZd4T|dtl$;=_AwUT(mAZy?@F)bk@O3jvP1=ks-K2mEj!KM1+d>l){un9M(RN0acR5 zr_N3sp1%0V)Zx_B*+!2T~!x{vw12TBQB_jt8 zPC-Ey^TPP^0w4dv@P~hPlJ-7aM=(zn<7Fg(1dsp{Kmter2_OL^fCP{L5)%>#zMkKYH}*-n_t>i`a{>+u+@BD#0!6S~kPZoF`Gdj0BJX52m$`g8hs^xO2S_4D*SdRkwjFOIz&dp!2_*p0E7*#1}| z))xJ3^wH=&(T_)uM-NAx=xNba(P-qQ$Pe8Jn`Nom_5lOecNa4fTs zFBZm%1=CIDa|J6`Q1rA+;t*)(;IgY2BQj}&k6twRYSFj5ca-S&^TUV82K4qCXGc)1ZuAR<7fq2;pcFrkg zEO+^KndDCx%PP2i+iKm7n06+g%i6AM=hDL6s;x39&T*IDZ8;8Pi${RNzU+jZu?x24 zHf@o~YKZF;bCr2qcA88^=eY3lowjn8V-~CwkG^ViZAwMgDol)7IWue7Ikz}A<^VlA zpX=LHn|G02tB|rCD_O`pke~QQnGDWJxD>1BRGB0Lf-3HA9+pXeKoqxogG|hT0Mm7? zY$C%G9;!_^lTY<-4N;$+kH+ixyM5dt$|)Om@wQkj|W3TiD64Jkjy|8=E~ewl29kc^!hE!bI$*Gj31 zAY6*BlSvZ<^V*P%wW9gT&=eAR*OD67$YePLI#w2%M?SF=DgivM_B>|ooSiLZ9cxz+ zswV|E@miGXR>`CbZgPtWcLGj-%Sw$aJvUw-%$ms^cFvMISMZ+7iv#@*{)!(rog6e! z(}i}JcU-AyxlC3wY6SX&M|fEeZ?{DDn!h_{CG8PAnX*Pqs5dV!kOQf^n>P|anwiPe#AxgCQt?^_ z1Os561ka(=-sxq~Z!j*BsYI31?i%bS|Lj93o#K~vfAz)Qb)q5)zTM-ptigSLSmif6qq5ec zYvnI?*jNDKYC&J?Eg@MO)U}l5!q{Q@U5q!uX4q9=pgJTERq43!N7WMkhm}7s@K^h^ z-~RCzdOytd0;7h-&nbL`y}+JjPqD|@kJ!WPd+b~68=xS#lYJ3(BfJS_3_i*}%&ud{ z*)et*yO>?b&Sz6>l1(s|Wm%e;Y%?2T{V=1@%Q{#yt7lOr8^1GNHC{BHHJ&scGk#!v z-}sL4P2+3ESB*Q2&l|TGpE7PVZZJM%e8700F=Je695tqm1I9k%3}f8bW${?;h2)kO?Rl=?m zc7?FZg*{2wWy1Ce+bir+VS9w_7Pd>+PGLKQZ5OtUTiPmYT-X+2n}uB>Y!kOqqp%I! zh87E3FKnH#Ojtu$UD%kgQDGy(YQl=c3PWKkX++^h=7w@3aTAgxO@n6C%$t%wFVHe! zer(a@cfKm-1;Vc`V%NYg{qM4;*{9j<#vy|kzhb-D$;Ly*myMmqDrOkh>p#^$rr)a% z=(c{gexW|2H^-ii-4}T#dTaFFSbwY`HXYj;eK<;^x!85l9$krUik=_)Z1mE|gVF1v zFGbfxzM@g}4)urHd6DTzF>;-@GIEOc>qtB32kz27s1?*3)SK16P+P*Us%NX0snehy zNWYmHKjsAqAOR$R1dzbnfIufDTR`GCk33ADv`$IetSn)~`&1GoSl*}7)0LD#Nk>_bkn}$Ka)d-5B{n&M7{OdlN&ZBUK#Q=w z*4apn6k*#cN{ZFa=2IeUZK7l~nJYxtvW$|^Y6k&2gwtx1nNNnWxi;IiDuhjON(QS_ zEk)YcLrJnW#D6{pPl8Wvrlh|%hCAF%iCKHStU%aMn`lXZFw{lKw(47}^arP`pk!Bd zc(D9nur`U3`ru>{5+ptt5ap?O^jvxlyk4kx=Mf(CM<{9XWC!a+1NB7*Ya1w8K1Xt} z#`6>`I9San>8g+$tnwUGi49hYZa1IQU_~P(E9VLgmU|bgWd!l=3s>A212bdTGPb3~N z#Q5TQ3e*nhUXkXL4#Wa-T1hM_Dz`ePo^T)%P=>j>0WBcTT-ku?sraihSc(&FrP?s@ zg#lHf0VPhgq1m9y?^~Hst%sB)160HeQVd8fR2w7#f`QNystr^r31;;Ir}MvN{CR~{EoFC>5jkN^@u0!RP}AOR$R1dsp{KmthM z4@;myk;rPLV*VbMFpY6lKpfTv@udKbR3dBXn3LzLp=Q?zg(ZnJNH9MZ4#Arc>_yN> zB(2|{kSOH6oB29|y}UsFyugZ|pLzE;^`E@N^#Tg}F<(dUGW#XW4*U#0;0p;L0VIF~ zkN^@u0!RP}AOR$R1dsp{cncBW%Lx>PTUq9oQf?)Q+mOGG;0!3x8UDP$a~EH=@x{~s z>c`%^z)g$TFJKRWyVwudeeChKP{A>)NB{{S0VIF~kN^@u0!RP}AOR$R1l~>r8l=@^ zj%GlKNO9sl^_Lr^wPdbhfQF?80)hdF{|kD7P@~kZ1?dG84$7YwxXA3d<@A636N9fK z(DeKwIH7Pa>=Sqo?Ebe=e;#%c$iJPiVp)&?5Ek z_aFQ7u8%md2mVZxqAt*z_XBcL9BMPkW#_X#ul$cEM#7X_u7nrp();~c_Vc~_w=0w! zQIyy2XJiljC@p(9_K~Da$t8;X+C2zV@JqMsM1Lkpxf8lTC-5_Q*2%F8j~6B2+@?qi z^x|(?FbRi9OqNcOn00%_Z?=wyz-^ZjdcAJN{sfcbb}p44cgv1%i`sCyz>K^A_JSOr z6PV;jA(UNR^&IqoFz*Hayuh7b`Njk5?tbz{t{2eQx2x6>z&-;H!XT8Jy-0c_KCFTY6 z&n#kh>(8O* zXWN0j=<*I6F2bJ?Yc`!}TBwge@qxNUx_qII%94ZduykYrch3q9lugnl3%IXRULe1Y zTT7w>nxQjo3r%)DDS?!uGhMISS&e`ow4Kh#3l*nS=?0+d)bsA+&kMZr(9%cN+_C%b z#X17Eb`g7?J;d&0x3a%wSFj^22bb`L1dsp{Kmter2_OL^fCP{L5PRmv{2-R9s#Ot^M~_@I{qDrk0|)oJ z7foHDhapm24Tndj5AL5j+@Zk7jjEz#59~WUePsHai`FHl_fMIJ&N_I>kpo8}G6XlM zGMuBDh*0sKQkb%c!`cTjpi0vC)Y*x{(-$9^I-Ht1`{=pnP91K8^$TQ34TZ)J9NG^d zndyCJ9rOcrSc9N-Kn5?kWaPlXDX7TByfXcHfvc|H@K=BJncwu_I)Zm*6UR~`0VIF~ zkN^@u0!RP}AOR$R1dza6m%!^>N6^4a?9U6l=g)rqt5@pPB{(ne)@=uvb0mNSkN^@u z0!RP}AOR$R1dsp{cxMuLo$~^XoR&W?u*1-9|Eb;A=gkXjTf|<3-3IT5QweTi*RmOQ zCfoMTWQ(On0!RP}AOR$R1dsp{Kmter2_OL^5I~@lk}YK3Wd+(&N-Xkw7Zs>6O5&un zq#)c*$wo5If&xXOq=E3|1hRO?7ZcDHN(M;4QUa-!k|7efkRTMJS_fo#b{#) zPedMx+!?tsaxC($$ks?lB&0p6-LHL8JFe~1hP68NRrLY&CiT7Q9yP6QP)|~qs7m;i z@V|xc58oWVI(#@h8QvKl4)=!ZA(Qw*0!RP}AOR%sh7hQCWYVjvnzbjHDW&3Hk zvk5e2WU^AEX(fvVGm#OAbdJhoiw+ADi*6yG6-P`ZtdYE9mCm#3*eR3E)#2ty!E#E$ z^)}BnQJs9g;BD}vwC#||5L_xamRZOb3uBO&o6P45R<5AvX_>?!(9XeSS20Fp(gq*B zXzBnVAXKcI|Wy3dGA+uyal^W4X(>%OrooSXRO9+g9st#I!T{T-J77JC_#jR&A9@ zagMwEZp(2XTRZ|B9cCx&j9q|@xSF=eWHrQfin+=>E;~&oqjOw%`A%Co%P|X9ibr3y zxi+PuYZWHOtely(?3`O18*_l3ozL}cs?EE|u2rZwpDeynCWCVlF2(9ORVK-Rpo+Vj zhh@?q5XJ4@AQLknz;sV z)Va*_#*0~s3geWOgMOBT%A=iqUN|(qV$S9epw*25Ad6FXrS@K#3`1%#lq4;8BAdu( zW(O!&YFjGC2-(`h)8njCBhVi_!pnMiyCt&M{M|7tX^+^+lr>^Py?J?o97x^Wypj0P z%uJ>xMq8Jciq|qA7y$Dmcn+oZPA`LggK>dop*WT>bI{$S-VT{q;JjS_K7{g?dQwNb zS8?S?m58MJHZeBJ-ryz@ZEY1zjs`TjP)l4iIa>BsYI31?i%bS|Lj93o#K~vfAz)Qb)q5mP4}Rp0J$ zS=Qh_Kdkbbol#lq(Y5jyJ8UcfakZeY^_GyV4eDCTa$)Q+{Vv9vU^DD0Fi;(mhpKd3 z_%mt=|5M7J7ua~l@dI861__Zj_C5A3_6<-F+{wNO zyAj?5GX@`JA7la1dQ zuNp5J&l*n}j~PEOzHfZT_@?nS@r3T%h+aYGzN{e#&V+vGKnuFfCP{L5nE2!fqFKo3LAj-6HI1!fqCJ zldv0wJyqCYVK)dnBxJzXcAcW4JEIRrX*3tRF506j(M{3wW1o#)8hJ2!UG$~sn#fl) zs@|dgP&+R&9Vtex(^f`K(S99i2mQcZ+6T3QdV_ki`WI?T_*M06^)huD)C1}8d%`~p zKN$X8_=fQR4qyFW(fH9P5ohpV~}Ge{BqRxSJBQ_Ig=?u%R~5k^o_-i;`{C zw^r#7PFX?8uIlh$`N3dq5+(J)$s#03d@vx&Q}O7z^c;A-Q18woJm`;5(&Whw)`?dSmSvL796Z*lyp_d4OV#$s>B8>MYo$zYOq3dHeBnEwLlnl=!Fz6NiJWyV+R5ZsEhzoi|{g)yINDI0>|3SinE-zbwPun|%Ub~`Z zYefYeUe%OE0F{!0b}^n+2nyOnBMOoew2DSlD<+5wMR$Odphb*avqFMq(F)2kf+eC@ z!6JetfiyrIQ289ZQ6LS7R8kN$h=G1y0l{L?}wJdMQbh>hQVh z0Vc-46Nv{5F}`@70<{CWSETu*1F?XdRuYSf%B{|+Cme_blwq!JKnsX7S2mz}D*mbr zmg0n4sWwb}VL+8=K#5arXf~+w`&MRD>mg;y02MKV6a!KV)dop`U?8-FY6DeDf?2(Q z!vF5^=LLSz_VNpN{Y`ckUq=wpql;i?fxYm2{~ma1zfpf4W&rYV5no6E2_OL^fCP{L z55#gv`j%YV`3bHjUKQgZL^B>d-1<+ytX z)(;Nub&~7$WHaQU_wPUU=l^(a1|;b-nzGO%z+RB!lM$1A2}9Y{RnI|J4)gBp&kKC3 z`<10%`Q!gZxLzQ_?&IqSUS_{!KW9Hx#myEOSdKx01wd$X`dG@`CvD0`I$j?MqX} zU-pW50eyNAyIX&jUBG(v<nTt@^a_lyUS;RB+4+5WSiPmmBv(iv@`x6Y9vXf~Z`TBwge@qxNUx_qII%94ZduykYrch3q9lugnl z3%IXRULe1YTT7w>nxQjo3r%)DDS?!uGhMISS&e`ow4Kh#3l*nS=?0(!)$>l|&kJ0? z=Wh<1-)#B0SVzE?E@IEKhhUGvTVa2}E7%b@kzg%c#1|4k0!RP}AOR$R1dsp{Kmter z2_S)Y3;_)eG9dM8B;q8yV3i2jqH6OVOvn!{AeIWp3QZq6=fJr~51)0>f$2lZqem{9 zes|*NfrI5Bn;m`sSSHq>l2|E<{xKUN+Ii4^gLvVvC^8*SaRJ^DBh(b7)fRF)I z3OJ;&4c0G^AvF|uOd%ZZp=lkE!P#>P7xSw0=LM{<)@{1zS6}*fTu1PZY2a8;B!C2v z01`j~NB{{S0VIF~kN^^R%M;-10$%qzf(BlEe_kMW!#5M(NZ)h?&I`Qd8wC~s2_OL^ zfCP{L5e_r6*_iwtXZ}$%m@%;tPls~wLJ;@$mUx3{O zu43oG?gA?rHJ *|^!b%9u1Z8FBqN{X6vq{x1l9$Rm+EBR58lMcx(J8tI6Hv`4l3wNGlt zwSC&KR;RwIKA_&DzE|C&rqvDVN$L_+3BMBlxA6Vpo5NR!4~HkiJHx}_-f+G0Tjj^f zmy~OiKUKz+A*EXh$&btT$)AJF;|mEO0VMD?AkccIOa^rlDL7_w)NZo#p0X*b+)x=c1gpkulDqLZ}p#ll#z zzz?j+nOQ5`{zozyhTy=Hp~DRmGFiq$cjU*%oO~LbxZ&vg+i(gT+~ zR=hBa$2bC2D;a$+F3O0=ynXD9PTFGL; zOk_mF&QY0c(P3d?(Jkb&;)toL!;L$3@{&}ASDtWOZ}VIewS300(zZji2{q`LV?|HP zBo6V#>G7^&jEI_0y`}-5E$?#{*qdofF;d>=(jm+WOUk4}C*cujZ@la>OL!OHEH9{# z!i3ys%EZ=HC7DlIX3oq^xHhk>ykqgQ73`c-%vkR7?Yt&W6w4~OecNi?jhJ>OpUc{= z3(Z`(TeVdt#X0WsyWwbe$QF+P=a1P5I|I$ga+|iuWHrQfin+=>E<264!Jr(at(@gR zw@UHot2WoB1n0pQCdNdkvU7fKf(F~SsW$H-yH=s1H^evcj$fT{DOS&^GD!vmRovY? z%!h`6ySq2Y#0&^9UDwJcG5{hzRGTmiJA8cTI)(T1YOkWjl^Z`O44~5_#8>8rSfyN@T~%Li5Ncc3R1TD|M{)Ji_Q{XNy_K+Euh2D+M>X z++*D;nRLNTZZY9b!0B&Usd1&}#yhtzYbJNVpe1##5MvG$$1)2rK8%}A4jQQGLOaYm zuGF-g_kSX%Y1m@Pav}138eoyTzA5DVmwd)Wm4(@>20yMtLOXIh5Kv zy$t#d2EI+4LUAl%=AgSty&d9vq@wndrxX@ z6-|x?G`UbqTr@da_Eu_gp?Hf-26RIGkzmBhXWiruD{F>Wvl#zq#>}OQFk*)4mWb9u zIa7DcOj@D#CQ(otSkO>kqZlM4IP$J^;+?;Bo&PT%Te=!VhYX0dqX1v(PNs9Q_!5GKC%RHsyBfVwCcH zL0mtg*Ry!ZJ7ZqKsxn@YP**e{yR&YQu<@; z1m8NKCQ|A9&~(y8URt*mwhkDYn@A~At0HT|y2^L`;|;&++dVGJ8r>HpUxRZSmb|btAW(+>cKFqFT z$JsG<8M~NW$j)a|Y?4hdmt|R+nQSu~V*N0q(91elGplD&CL6yqUNv4co;98{9y5Mm zeBbzv@lE4v##fCyjL#dl7@sn3G;T0HWPHGQpD|-xY8*ADjRVF$;|ycm*kz0wma)y) zXbc)_jpas<(PlIm%+L%;|G)Yx`t$lP^e6P6=>H0t#}^Vn0!RP}AOR$R1dsp{KmthM zok>85%Fh(`3}N>Qd%CcHBW*sQP_Zq-p? zcM59@yF=Ktup`1+!lt+lCxuOLtC+%W7j~PlTZP>s>}kSo7Iu@c8-+bp*kNHe2sLZv1l!n|U|!=LNpq`laLll-l@DVqQS$Uc|0}U;5u=PqR<6 z+l@m8F@D8%vy+X7j4vBIjaAGruGfF6e@wquAJA?6Z2dxgMsJQi9lI~`O!U_1y|MmS zLu@*>Gx~6pMsu<2qCL72-4s1P_SxvAkq4vKMPG`piF`$)>K*D2weup=kz(XJZDr&X z?bnfZ&=1_DeNZc?H>fwOf1$R7UscamFH@&MJ&+E+C;YSUgW=DGZwUYI@YTw{Dw~ww zgx4!~Do%Kh@^0nR%KMe>FfRhWkN^@u0!ZKuCJ?7&Fi^d4W-}%Im4blMQf-O+F zuvf_B=Fu&j-bTsrJgS91T1?5ZYR$q#7bV+%k78kuknsIpy~4OoN!zSiVfQjhMo*|! zC@!ZY{~DAEg$_zK&#O~#>nZ6al_~|Nj*=cyAyU{Sid>~p81wEbJuu^s>GKVgEQi0{ zDisPjFII&>A=^mFN}gJ!J|QC%kn_qDMn(QBgDan5>=e1J5GUB8(gURlJA_cOBuq#P zujV(im+`J zCB^C#=TjnVZK7l~nJYxtBHC9#Zv3Z@LWgi#Z8G!85H{ClyHtOl8U~Lj5 z^})#^BuIQPAj(tm=(#jvtrx@6Ji>$i2qjIP>|mW}puXr}t>}Bzl7ls#r(nUsYDP&{ zh1_73=b%b#uu^op`J@IbL`R+@G+6Fktd<#^VJM|LAU2WNLbM2Wh?M$d#4!eD{8h@RM6p7O<4p`DJf_d<5`8EpiMNQ zAUQ#+XhgMQg1At02S^E8#K<)(Bxn|`pe!R;B8n9(B4`pw1H=K9&%ql7(tt=M1wn%t z=;sv>EEYX(&QtUt{Xo4)r#fP#e4wtEk~FCfpQ|2VVhlWyc)$?ji{~j&JD__-nol|q z3&?3Dv8brr>YRGQfk;3Z=IREtfH-qy1FC4o)hU$Xgj=aLOnhNLm1sbTQ*CHAsPg+( zW>o7TWyt^)F@qEXQVZ1vNq}G=w1jE{RZ4r1k4toi1dsp{Kmter2_OL^fCP{L5fu;S|AG+Zm+8^W(+r#V;zK-B!_Dh%@_!;{#e8d+L zKmter2_OL^fCP{L5z!w#S!`vzgx3bJFrQAvqw;_KW!5L7TGyHjh z-!*K#@a|JmH+b^`A6mqI0ecAC#eTrhNT7qf&q#D3wnW2qtvej=>-&y z%byqcL^}G^pMCJ)hxs~!XzZUB!3l+XVV}TzVE4a`u&3Y0^t{e5;|mEO0VIF~kN^@u z0!RP}AOR%s<{_{HHlm*)N;J7?FB~^gG&9|9p_sDsd-;Oyd~SFz>`AhBcM|^dc5-m{ z4y+#>-0SV?ky*DVn;{RqfB&(oKK(Zd*h=DJC9*(APIA`Apa0{z8Q9u>MpLu}I;q&z zqwKBgBM$6=KhvbB3-spwfSeSE+DvlU`K-??|Ko{~FeR5O;RU+%et(wzeDD743MEGr z<+b}6*#kdH%N~w>Bq>vJi6Xyt52E7Wmu}gK{!Ef`Cv<^M;AirzlVcYiFG|3-LJ@Y#k4Q+b$*adfkc*6eh>*Tq-~AmL1;~wc&Ju8F>Nh1vx$^ zFv$-nD7(7qIq1k?-kJS*f&G6beg38g&$)u@1)}VpIqL}6gY4U&9Jq(yfiEP01dsp{ zKmter2_OL^fCP{L5}`6 z}zX6Q`YLX(|ON+9LvOxNpnRwEz?ZKpHxLd7Xn zx&i1(^}ILv^8!te-+Jj2(XYNotRrCZBKACch~3FhM_ywFm^( ztC5J4?1EJyWQ(e4Rq;{>4o~g7X!`JhsUy9x@Pk;Ys#Zlv9zAl=^t%&B4;!$~J+SZa^pWXvE?SqI-alm?I_uyiM-Ci`$PnD1%5aV< zEOZg?DTOJEIIMjj1F9sAPo14OJbm$zsl%zMvyYy8?$qHnSibQEzLy2;Vs|^ob80;QI@_kKDG1J;@$mUx3{Ou43oG?gA?rHJ z*|^!b%9u1Z8FBqN{X6vq{x1l9$Rm+EBR58lMcx(J8tI6Hv`4l3wNGltwSC&KR;RwIKA_&D zzE|C&rqvDVN$L_+3BMBlxA6Vpo5NR!4~HkiJHx}_-f+G0Tjj^fmy~OiKUKz+A*EXh z$&btT$)A%yDF2DPTizjWl2^#h^kw=ZdLO-&evE#AUP8~MHeE>#=_TpA(wC)ANLNaS zC0E)i^+|Q1S3{46z8(6<&`qIhLKlQ~g$6?nT0xfSfyJ` z6eh;3_zbL38HCHpe6C>HIoE|VSqjCmg6WRNXJCN}4>MCKyI^JEzp;#2u+l|4)i47K zR+dAUcZ7>m%oXgc)iDE0S2puI#>PqxEeGCb?4((+^SQPeSidq1;a1K}WUQ3s+G%m4 zI2fgUhR9?igr=+!vzRIH#76Q?wvf+fT&obDSyal7>sr}FX2P{hC%I$HEbMUOmwQ3} zrXB7?HUT&Bu!i?~8HN0e*y*ApGGbgNlMYD9Ph#<(%48XQ-t7W{f|<#{zAMd_%A}uP zONtDX1DgIsCaXmN9As0zy!eumk7W5;%m0wc07Na7h%>Qr1rEO9VlP``W^&X_TV|5; z>3ENaFY5{*rKW|2z7vh)v z@Oq0M_CQURuJOZ1c3X}MiT7S8lQhKk>LzREAX_OrmvpQwHi z#u~?TY|D*LdyY$Iqf|D4&OvH^{wJFwXNT6!MiHF$)>vK*i_mNV54|UcReZ0k4OqbG^#+ zTSBR^HJ<}%G?Az%bS9tXoH%f`Yf2{DIHf&MlN_5{$fvA~Rj~58WX3XcY`;vpAc9vV z5Up-sWv%6)iehKWBo0yRTmkAfc9!=kU*w;b{;^Cf4$C`Zrc~9Xo=`&4IO%m|H#M5F zUC8+a_u6_UuK^M%02HWv$nRju~)uJ%x?R;@>?)>do1TCZB`QEk;)wXNFP`hVt` z_ubuhcZ0;<|KH@J&%?em?;PJ}=9zhCo|z|NLlHZ2S%L-0FgWgD(wlje$OWQ!x}znW zOxo#Sbr%s6gtn(TQR)yQ*tCqm$E(oqQ}9YQoQ#Ikq?N^UQ3N>H+(`f^E~*>q)dm_{ z&|E6<^$;lnY9g1mgS+P>elh&cC84LqlF-UXLyJI;sWd)`(b`VQN_-096*SLKF~?^} zSLD^9!mHBQw-kF>zUU*Cpr93s6=^LaJFulHw3l>sl4n&Z`l9=cJgQEjE>O~TtDUx! z5d@+tLE{x+Gb)a9hdk{_E=x2hd3*d~>|UWFC&eu`=uMlpolL_bR4T>c;Z_i}8(bA5 zrRGEFR0_0hJZh)q`gUv+p={a?XQ|A?8CQ47MjL6ad?=QLrjU`%R+L1DMuXor{ha{p zL4n9-l>R2Zzd+cs6(JoHrZdpqNa-c3g+2gX3PVA*OPUy#_?QurBharv34xxEkzoQV zL^@+OmQ3g3c4qQHM3SEt%g$ydE-X*3H5`kll8IOb)O{N!x5t4JpDRf&1>G$T#Uc^F zky)%I7KdhJXKEIp%8+5uD=y=t14tXJR3dtPSk{h`=zGjB&k3{^(M6_((~aNKnz+wR2H3mcQM!uf&Hdyc?#&FVXpP z$}@I#W#c}mCVi=5i*euXnlfABmz1QQNJWWg3-!+sRa3Wjc`k0hA3FW2Q31jv` zl_!;{JfUGGYBiWACl`}h3z3Q|BEVeGW=MPuoTVkw5X|Y=d?jcKEvbwxjM|fQRbGNY z5t>J;Wf2G=BQ#8-DT4NlC31%UUHSbt3iaC-RWbD1&R-bNO(&a zKZ&MBs_8}r6>EcrOh!O>;`oU)92#FP86zNoLhgVu0W>H`K^WJJ+Fb%w0*VwTRCxuJ z5$bnC9U`1IN7I7y*v@B2pp{WT612-C(b8&4sp%f+i;=6vmCG1@sz>J9VYQkI>wJ<4BSGJrD{#M`##F1y^V!#SjTq^{5-A z!nh}l9g9s)tkC2FW9qQUiG|eMQ8rLFhRg$b(bEL2=~N;UX}1&MfK`k7PmG6?Z8^}G zff1vzwTJ{$n88Nuz_=Q$s93S0fr+C~NeJNb&h>cb&4N8nbW3A3cE}2`+OsgIr{m*C z;xH0`<`B2r!jUd_2IwU+r3yQ20B^AK9)=SguFS%b2)qZg>r}dN1ZL%rnOOqTg$ZLD zG|grUXPW*92|L|p+sUP|G-zfR3MQGTP6KUFIJ?!$um!rtVlsb;XWQYQ(M*$pT8gFx zalMGNXOWtZ*J;Ik1ux2|5v~Y;8J)j0`D7r0I=ChPK7;%b!r3hJ+Ge;m0Orj8ATk4o zT6#LRi(DO07RenC!|AphscmL#khJuYl-x*TWl4drCUWZ^Y52a;y-t!8c+U$f9@#BX zQYIKmVPJ=g1t6|cX;>cYUwsiM_z7`qRWu;Rn`x*4x$_)+^R8tzTG=TR*WL01JXUtefFB!fRl~;BxCC z>s;$}Yln4$wb|Ne9c}ek-By>Cu@Y9B6}IMEbF7)LqR?zLShZG_rCE~siTRQFzWKKK zy7_DKdGl%WG4o;b2j<=8ZRWSl8_cWBFPWE`7no<8r<#tr)!bzEnZ4#J^H8(XTw*RZ zZF8YH&zx;eHz%7D%zCrNv`obmjK3Kl81EWy8m}3@GM+V_G#)h`GVU|(G;TG%XU4KW^6GAjCIBuV})^ukuy?8%!n8ZjJd`vW12C^Xf*1KYQr#O{S*B| z{ayWcu-5Scz`_0)0t^9$07HNwzz|>vFa#I^41xa@1Z05^XxyokokH2kl$}J`4$8Ju z=1}%IG|JwF^hBg5AUz)GR;0%v-GcO3q??f*gLD(pL8Jpn`;l%$x&dh)()CE!Azh2~ zXrxCW?L~Sd(ltnrK-z$0Kb(Iu2<)q2gGibx6k`twlN-X$_&mD5TYd21X*S zLOKGeh15i9Ak~qgv%&y6D-58s!T>re3n!-v|C#k$>uT$}=6aJi|7b0>_BNj~Z#5U0dswDedPz_uWcvP4SRs;2tDlC`c zf$c(z@T8yw-V%?M&X#^Ea?o;`ZP97!l zlLLM`2ks=W>X{!H%FKb=0aiM51C^~Dxa|#K!V~aJ0!sFsImazYxs3z&xjHC64=<8s zRM_<{*f?yfhBAU7Qn87{iKfUm@OcY|6Gn>sB;IG>aD1)E&xA*%_6=JBy=mmR&%EI{ zH-RGShAn7Yg-WtA>pf30V3@aP#{Q8)&K(Y#RE|tZPVOo@9qb! zqjfD9G_0l27TYr%O{E7VLUV?rihhDMLoY3_Pu^sy`$#Iek~X!5CSPpIa73fXF9cAA zGGgelM844z2gF)kEFQ8dyb6udTnmPk^at#cz?%08v}oI@{lekUrKa+l-+ZAPv94sj za2VFM+;-tmv|y`fxv(7ZAHr_okb3ByLs%^wj9B?>7P=6tp)D4cVTFr|S8lJ+X^4D% z-dbVlB#~eIskREa$s(WH1xtl2_N$@n6f)RTimepVD9R!ug(X;JpN&EXeaqc2Bir;T z?9qM;g(QttWT22h!Is!3#IdUsn;-Z#FcxF^i-U{zFcx8Hi;NRuDD;Y^3GLVnUBiSn zgxoVrXr;egqXe7&a(7pv*thZq2@(3!Ge>BdDDpAhzmHvJj1WdyeM%&-ML4KDvDPwE zgoS&Ee9oWaP?iV>Vt+3+L|B0Bt3qkK-AA-TIG{Wm&^8s#5ayQ`yW9$4f9$`$T-`|X zCWw5*U!f8kg#ECGm%lr=N#w)jZx$>N_ASrUH9(kyz1Ekc&;DSaDI&kbpLAvOgW2U- zxYh@IV@M_AgIQRgqOE6lA9ycROG6kQ%v43bhMFDBzy|6W9Zbi*=QlanlcrSJ;9weR z?}E9(9y9@;vB6aAc0-vOOu>#^VrVd#KJ=Rz>`v1e!pL9}4TXkP$;4nHD&oop2F=*d zE1DPVhRyL)j0+~9{D(FzXrk#?GAwAM#j3d5J|2~Qkz~t_3L2>{ModHD`b$a;2h<96D770;2U%0I#HRE z4=NsSB}-H$@CB0r5o1=e7!byY%51)Z!9ZZNsLb+N66Ea#4k=z2=>6;WJ~{8ZcRS=9 zLC89hvwmm&8g3Z4-})|C2Al;C*dIfHA;1t|2rvW~0t^9$07HNwzz|>vFa#I^|0D$T zkia*DyuG37pukTHddEFsA)y0K0aSx6%QU&@cp)5N>L6ADb+B|t4h)VG1%A5d?#AWM z2n7X!uNGi^EEs@)1mG@$QM{nc^cEztDf%)wN3fh!#st^?#ecFR>R0Sx=C2 z1b?>v0ILJ9S}(%-z!M}c`(p?&1Q-Gg0fqoWfFZyTUAJuv9NahfCfp)$r}ez` zpml-u%71IES-BVj3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFba|i-0aP@SfE`s9KoDmlzEM z$+Hrh0a+F5c)IH^jS{Bwr4|EXP^jj?U_c-o>;(d&gqcbudjX!{=B*1ncjo2S?!Dx^ z1L25B?_f{U5qFAH``f0a%FKLTTga|720#_;=b zcUm7-N*14O9UH8TOy!;0-u0_{j_p0RyMNQ#p6=fD-K+Z6AJMzUW4){W&+FlCcDSv( z39bsamo@F=wWd_E$^YsUH|5^dQ=LQWg0)kp^4m8Ju2{LY#~;uCYpk0g-aTECV$+nS ze40%wd)M@?A8bmdvQ6Y-@g_K_40noye}Qb%5l0VMyQaMDNXAWT3Y3o&p5CzD6oG4~ z!%=(Bru8e<^)wCk99zg@Pq#R$OY@%USYv{y6(X(8+vGHNl%|TP#vsYSi?JwKB;3p zXoD+AeALbaUG|2DwJTdUF)H9gM#{BwYWS@_`4*=@{#{*Bq{XqkET|OS9Hu(Qj|kS* z)bKkF$%~S_R8=N8kXLV6KPVQ}22b^^Zt6(K65(`L(_*{J)m(0NyCP~|nTvXB{`qiZ zjW2;F?O8w2+qb@Huy_5IV%0r$a+O>=zlP@!+kuU1LH^wAL5HoI#52u-*=p2Lc!X` zMt;Y9>^u2b`F|)r+2tSais15*hb6UQ^$9b_LL#5Ji{R9;bkv%q$hCIkP%MVI@xD~R&5dw=JTq?@7)9U$69&Rvi zIjU#XVE39$y{p}SOG98*9F-vE{+>c!ow`bZIdwhnNTmrANJ+Ka*y5)o?nN)ozd(`4|s0w>p!~t7&23YX+!apfxO?hxqHRhwJ7m{ z3Yl+OKd@=ThQ9v63PqbbJs{VH>xb%$9$2$Bz^C(^Fp%*xfHc$rk>UURy1= z>mK+4xnDrnw{q64)^hM4a4&cTm30dBX$0kA>74FH3`OJf}tu4Kp>mvD}Rt(B0%XdOppQK76e;DDvCn;4qV< z`_hGU9)IW{S>y*~dDqivT?U)gg%oyN7Li1Li!AMW3a zj*X}1z%jd1FAKv=#k!&A)CYIY*#d-z&RczGo3c4s9*8Kt@ zQVDNeU{zC3@{_$6U4`oc`um)9kMXv(!D=?HGv^vJ%^UUijXv`YbJKsY;w)>107HNw zzz|>vFa#I^3;~7!Lx3Uhk0LN%*vb!c3)eGJ&=-mhKirp#OcS(u!sg+=P7M;&i0CN8 zeYM04L5Yb@&2ZDGXnYV_AZ#0MLIsn9;9Ox~7;ond4dnfWEyH-P*t|gc46nLI1!7!u z>W7={P^JVzQgj+Wb7Ex%1c8G@M;fkiiqCEUI#U(tP~N)0D?iq5sG0frL_9}ee#lwx zT2EPbST}-~!tK_8m9(Z?yTQ4Fp-=b!qrH>8&k$e;Fa#I^3;~7!Lx3T`5MT%}1Q-Gg zfqw%6nlABtO-R?{z3Y#zhqEaBoRFqP@MgMA{VN9H_5&-o`0=Ks=@X^N~PLy{0jmXXs{2Lk}%Yq@m5MT%}1Q-Gg0fqoWfFZyTU`yvtZbZ3;~7!Lx3T`5MT%}1Q-Gg0fqoW zfFZyT_%|T%Pg@rlMGEV!3+(?%vFa#I^3;~7!Lx3T`5MT)W+Ytbt6g4~^F3`t{{2adG(E=?b z@>M(>EKtXb`~rT+V+G1?B5(6MJyZ|^ryO;>d!!&ZPUPqDLmViO6_Kyz$#DV+|3wZH zh+{;47GL2gfq;dtc#t5Vi%J6&Ie(6zhJfs?3*3Ei{gsUu9rmyU&v@%EB&gf^3*0Vn ziggs+E-=*+&EJ|oGOsmHF}uzE%{t>9<1ynV<22(aW0}!r>}ibD|E#~F|4{#u?&z!a z7QJ5kyY`ZHul8l_bgf@YYX@k1Xqx&b^)>Yw^$zt*>JIft^+2^j4Ja=u4=G<)PFGeb zbCnUHk3x@zt_htOS{7;x?Hk%XG&&>)KL|b-d?d@ z1NC|QNM)|U>zQ0fN7~M0GT>1qo9k!^CzEzssd3=g$}}USlUqw-N$}H| zu#?$v+;rf?N*su9v4)*?HS&E#6LT^)9v17}ob!{bN_GKeL;f@H&)#dQuGP$6OAXf&3!6YyV0 zJe;-La^$tU`?lCLl-xeD!8ptd4MG zak$M6M+iO*$58kZ83e=?m3IeB*N9C-tRCj1a^nUmVpIyP>2SjCOr;ltv!2*uJ6$y( z@y!t5O^3*>uAc(c?LH%I!);8>8zsICVpG{9!bvDrw5ai6k!m+kP;wcNUQ4bGbWJ*( z1}8aneKcX$H%f5>7{6ZP7eKuVJO*sWyTW0X)>$Bk>CfO3Of!qz`7Ysi+;dvvw*OiQD0%wOZmEAp#W%L>sZH zSZYZSk-k#m>mW)jnFZPEE9fuitnh2M!zJD(V8xQrR3}jjZFasVxR8wMrd>G`T^x;N zpyXX7)v<>W3GiwbKmp-Hq4NzVIOb4NeO|?$422HIi2$JR!TRMAKL#IUL7jDDvfLls{C2hCbX*(G~AgU5HUJ*8<;wX2>(~jh_M1zvI$1le2 z6{6QXVS{b4L2uf$?PMAjp;9Rh54VD--QcPiDK#HTr&6G8<54>;*SBMv2xZfDI7?+7 z&bYcuHrhyYiH{i}IRgC(lo06o7#Sv@LZoilSTdc9+nLD+5lMbpEIXT-xUf9A z)^IGIN+x0%Q1@+^+#Ux?e6A$96m+*V6pKUve`v9mSR9&>ovB%XDno`ruegkp4j^r? zQiG}x1!IRhC4lZZasTqNV{vVwDqs{(q3WH7s@DgY8*9RT z5+5lk6A3DMyLK*W#`3qD_LcZ>g?Gbr_$4}jPI<ZK3`dqIT={F3-j7_hVZ)sD#2#cw;3b%IWxBxoTS6E$l_o>`U?Lo82c;#9pMp9EsssHF^h0MjorDG&&Okd% zr87d!WYYh6$yNHU1`%p@r;jlfC_We>;VohOB$^tjrW+MhtPL7683Eym<0sN^XneV3 zjDP?NxdX-o(4Zg%VO%q6cL`JpC{mnI&k$doGVumQZm&U+Y6 zbht7LMDbAou{3CA7z!qts7?cI zP&m8Q%diEy#$qymiD%p4pV3T{fm({D1#!KIv}ci;kJo9%d<8Gcs1d%kU`FRJO+Fb& zpbkE|;4{b{A)L)ZuWg3UFPJm?gUAdVYU%0NE^>81StNHngy~(5)HX9VNLqSHN^YdF zvZTOQ6S?(|G<@IaUMEQkyyt}#kL;ExDH9B(FtEeL0uWcJG^~#aNXl$Ofq4<=4xE*f zoJbR_gbdZvDi104xaZux^Ii2(N(^gUhXptaGi?tsT}0)@Ey?b+pxEbz5Cl#!6UiR@j}ibAv1VAWbxmIn70eqw%PzHh#5zHa{7eBON8e9U~<{DFD5d7Jrd^9J)O^GoKX z<^|^2=BcJ*ZZ$WVeP*w@$~@HUG?$o*P1{^(&NFA5)6L1|1hd|(F)dRu1>OJ~ldZ*r@$6!5VzP^t>UEf`A)W_&mx~dD>$J(E?-)pbKD#^3j z6WUL-A8L1N-_^dUU8{XXyG*-4J4-uRJ5k%LZP0qPmD(X%R!eBD+CptVZ5FJhG;8Cu z8qLmE4wzNfyazN-FG{ki&>`Xlu|^?T~g>NnJ@)GO6X)brHS)$Qt5bx>WW9-(%t z%hV<6A~m8Opw3ZesFT$uwN4$WYN`n0Wq%9-h5$o=A;1t|2rvXF0eoxuk zl)XjSo0R>Ivfonn24$~P_8ZDxqwH16UZLz|%6?7ROO*YJvKJ})C1o#A_B>_JQT8ll z&rtRY%6?AS)090$*^`t#LD}P!{fx55DEld8k5cvsWj~?p$CN!x*^elDh_VMMdw{YZ zQuYJN?x*ZN%I>A?9?HH?+1-@gMcJK{eUGv`D7&4q+bH`kWw%mx3uQM`_8rQ;P1(07 z`zB>KQFbF`-=ORU%C4vEI?Ar4>>A3hrtB)pzE0WKDElg9U!m;FlzoY^D=E8zvM*A0 zIc1kob}40FpzIRLE~e}v$}Xhr0?Iy5+4+>6N7=cQokQ8#l$}M{nUtMD+3A#>MwrH( zO4%utolMzDlq{kxNjPw|!n~)A79YETT zbR*IYNc)hkN4gH_TBJuKJql?r(j$?sL3#wz9;B<0u0pyJ=?bKWBkd+sJq+ogNS7l$ z1nI#@yO1tJ+KF^2(j3w((hQ+W8tD?G9Y|A1lSmUt>0G4yBAtVDAEdL9?oFsP3+Y}+XCj?} zbUM;KkxoOp2hyoXry!k-ba$kakWNI}jC41o6Oc9`ZA3aAX#>)6Nb3m|$0DsmItFPi z($Pq32o**lttK=u5@{9E5lAhhCQ<{bjuf302GChy0G$;ELiju=3JNb1A`v1IA`lV~ z1Vw>?pq2~<-nzhd)F%(PX!gFb06gQZXGqWrI7#qZ>uT$}=6aJi|7b0>_BNj~Z#5U0 zdswDXNJZE zKMJi3oe=5+>w&i5F~L`ZPXxaayfpaz;A!%+^8WJ2!M)@=H_uw7^oo)nb8TjH_O+0su%PI_K=OV}W-7UO}nvL@Xq&J^F4?iR-f zZWq5O&5#xd*9-RwpBJ`?KNWA0-VhJtFXZ0{H1V7GaNuD6cK(S#Ye3*Lfw=^xlD{gE zpAbNk09fhF<}%y`6GV7TCo6Wi4cnDpyzHX8Gu-FF`eZ(Rr!)#Iz;fp|gY`*3FRWL3 zkqS$s+k(2L%UlCuu#sOTO;yQ1A5wSi@~CHnl6%Z=YUjR#_19wKX$WMYKip(9j(#fDZ|K0CJWAvz2mE#p+)0S*P-YI?4yRcKyM;sQK@EXjLM79ygApsA z%|aJqHMGUTGOTb>@yhKLIt@@_yl1Vjbdty~{#09q++>kY?SiF37W>sub_yBnDaBR_ zX%uCVk-`$Jvd>1LgTCeJZPFc6*rS#F1|WHsq_K(&6cQ-d68nTWc9mlD1K$S5Vl01g zaPc0-A}no@aY77*UePq69h;$Rn9zohdu9o(^p|UtVAEgj?n)HUV1cl2d8V!b z!W`_iz9fD22m4GB`6d3OE1Mt8F3-ZXKG+*WDj6Tl!uk|#J-hqBd!bqy!th`w8WyA3 z!3=Dmp3%W{?0bHbgFR_Vl?@K2q4qAA8|*<7@EIFS#cns0slgQN$R&mblj%dhnZfQf zogs`2Cecu6Sd~l+CZZy)Y+%rg{k)=i!EV?bKgGCU0?L1A(}E_NekH?#Mp~?j5jk$3|4ioM0?AqH<$`I-GS?FeMm+nk#QeP>Zdg zU`8++t5w;EpavnWU>x90Hi=#sg^*T=cCGk9xzeA(3C3L4j8mbLzxcf6-ru+n1;gjmy{X~s1@o^YB!)%h*N4d z5W;5c&%uoo94jhwdCxGwH|EN9qB18RR6O2FmZ(hN3nl|1#;jy9AdC@}**q8wz*p+w zyE4ayc!!WLT5nw-_4Ny0e&FlZyi5EPD%K!p{m%L|tP9+4eHSbP&azH~N9>Owzz|>v zFa#I^3;~7!Lx3T`5MT%}1Q-GgfqwvjkRtFku;iaytcL`?A>{21RR;xrTF^W02@44w za0;LrY+0tsMaK(ax3_~>1=PXP9XT*KN)-6%qPrWH-y#SK0$(k_`dAQlw5tPf7r`iA zP-c1y64?}enXDfyCspy*1>QLInGw~w)ve?lfnq&E&Jq0C`U9*EylTA&>jO`~BlgD- zU29338a9`6C$mbU*V)!2A)EU&7D) z5#(Jnl-~qU$NUkLyI^7d2$(+t;@4)UR|hbE1aPkv^GCq^5oCwuj{pxLkaGmx#p?pM zE!)3`RMu74ly>pxH53Z4oR`ZV3t-qwDm-KKq2I|uIDU#&&8X<9Yhs{fMu zfO@TZzPd&2RTJu7YMt^I2|ke0(TNVYcx;3BVhQkw)DHK3gBLgNs&h2nn82DJV8LYa~I{4tRwmj$0SoU8MHldKLV>Ryp7q5-3eg)T%L|ncb zz~C`>g(Q#h@+23g3_J#xkmRxN@>XS{1I{3cOvt@h#N}72g}A5$&rDFIcq$yVqeSEr z9dHU+6fKt|VP(;p9Pkbajv#e#-|Pm~04I#3 z`1#h*?0`#1_zWnGfIY@*9LjDEIEjpu$MQ9nCI{R`f`h(FNx5xjtOHIYNe3w@4z`N% zPMnt2yB4q{5>y^MOOnbLJ97nW!Jj0-mb63n_A_tqCl*ykJK#@pnm-t`8|Q#mN%9`H zwrDIGC+L$PvIGgLqK&Ewy0iigexW_VWy8@pBndtyNs5I{2a_4c&8GM|_2*L92jAN&*@b3|wqNhVTa2wE{f{ z{SLfSl72_@7-?Af08pyLcZW^ zlH^0zFgj#}kNK#9$YvaXepyI$YB=Jq12zOB5ff;3_1I{2x*Mn#I1~J+J zzmKFWUh{MV0VnG95$coP{}|gZR16$Ll8WWR zkz977eXlk&5pdgiZ|JAxS6pLJ@`04mgLL4!WZNF0D?z170D)A8=l3L@{~Y8>$ID zAxZ7?N*`1{QMcd>lJv8Rt|FC22i!ptR1p++$n?_0;xszo36jKshD~o|Bsu{+D|>B6 zsduO+NWId9jQ|F?f&_G30Z`z56`g<_=Ln> zTE4~yq6P1eM6`)aGzG5Ib1nJi+~|OFNK!>wIB;H0XC>aKoq?tcP9jOu1$XbzqT5qh zxMUaZga#di<38v?a1}{<1j0;GrdOVW;sKYDMDc*zNs@4tr+4M0=SjTR`5r_adNiE9|8OX4+?&N1n>+zCKUT4fG3Rs@4ouHKZ3xc+`fUz{sSg z*(HAj!js&0Abtmo=I+M?{5u|t;9&6&`6GaoW03Oj{1HehH|n3~k3c+@yJeUB5kSN< ziGzgJF!+ThNWcW0Oj9fRBY?=`hvAO^qJy&p`UO?yj{pKk?y5fmjuWf@4gLt=7UH>q z&*p++NVg7nooz)26mSjg>>-*mUSsU{O+jRGB=r#iQfiI0<-l<;%xX@gZU*3+*8Rw= z_MQ++W_?xKvj9B#EXE>-M~NO#bJUH?yluPD#UUpBV|50}pn z7E6c9?*-Hy(v|D1%at>fV}+OG{p1JbW~pB~Nw|Pd3J*&& zf}abG3!ND_R9vhap~RKh)(gVlr8fd&l?L;Vfkld9tqjc(pAdg5-6X~NWBDsWZ;7Xi z1J;}3l_5TKDSy9kywDA+3W?BQfky(@2HpvrPLRxSzXaDWli?%U=g#j1a2nD^ z-T9IIAhO0%{zqT*?J(_9Y87{vxaWOYR^D6Uo&&EQ3j;&%EOF1`N5N40O58Iry`3H? z+g0LzfuB^B_msGw!<@A_P`snWJxw1K?I&?h!E6`Y7Z&d(aZl3hO81huCuk{4c4fSs zB<^wWxdAH=CBeRZB<^Q0A&->BDc(im9-}@aDkxLTc z9-*}@UX|c}LP4y!dBpvg`hYA7#B3g>?^N74;(i2Qt24dzouX|c?jf33$)*waAbd;B zqw6~5TSnXiG^>gmM%)i+WA<$qaX+B&RM;%y?uU;$JZ-={- zw#6ZKcDOIl#$B?n!(BqP1l`r)E~c7#=sg|oB5(j!>?`-v-2+oWR`hhnokg3Fe`%XG zN&oH(cMgT6Y$u7kkSf6PjU4V=+UJYc$mx^9o)dQg1#O7kB<_3)8VU9}45s3%xZY2P z%!1s@cc0MRF*w<+lrE6E<6!Z)_i6rOK~LgizW zGn(Yyp-P*mG1!CWeou92K}Wf3>)hLPTqN|1*Xh6ld6nBpa=(Ed-vF~hP|?Ifl6#H9f(Upf zaNMhO^znVGyh3MFB%=3m@-mGE8RcywxnI*#!?P00NbV(ywL81#enm6(Sw(U$!Z)l; zzGJ<0fxliPy%~*Nu!Ec!%AUE>NPWoY_+a6(`Pd5irq1Q-Gg z0fqoWfFZyTU1fBeQ(gUbAN}hxHgZY7j}MGBcJX;`~!*tln{I%ip804f#6(;}0Dqi~N8r?|M3| z%iz+xLJB)Bi%25BMV59w1#C;OrdLSBcq<~3M8shx0@v{66WOux^c-BM=D=3)S!-7PQdFuj8c6;K|@4WhnLCz5v)-4tM6oOZRd#&$55c^{YFa#I^3;~7! zLx3T`5MT%}1Q-Gg0fqoW;6H!>@iJ%_gz7q>nntLq68ahZ6oyC@ymf)yHoTX9`?xjN z;JSeREzY{fc-z`wH5=ENbB&qijr#jWpZ+cL4Rh0fpyDh`h5$o=A;1t|2rvW~0t^9$ z07HNw00^{*PLLnw2CUy)!I&>>9c~Jqk%GQZbok-ETx6P{%@Z~c_jPKJphiST8Sbkk zW(Z15bZUm1Mn&U;&;nuGa1$z+90cbI1H*VbZ)hOzFKijcd&TAj(r0+pH7XF}qEkQI zY=<%>5R#(P_?Z(cGav{YBs$V?jZ=Jf1JI?ah+^^91#-Qsk9+u_@%P|40`oP_de?f& zy2H8=JQZ%Y2CSqt-P#S#6?_Om?2jS95MT%}1Q-Gg0fqoWfFZyTUFmeMu{fQN;`uhen9Uj$$bUog?{^)u*i^9(dX>naCJzM z-~fdx;=e@^mMrSv>;pe5BnX{7D_i>eHbc##Ju5e@S<};B59b%4I)OlE@A}mc67O5J zVyzblPCpf;0SdTbOKb1i9uVM2B1CUpAX0PM+IOFC`wBZp@W0WtSt%I;3;~7!Lx3T` z5MT%}1Q-Gg0fqoW;Qt;1v zFa#I^3;~7!Lx3T`5MT%}1pYS=_$RLmjDlL{{S@xKd~f|XyM443*9FW^IO~1u8S5VK zN^pa9j^$W~SqrUwt$J$&1hGGc07HNwzz|>vFa#I^3;~7!Lx3T`5MT)WuOomSNQ;ga z7~qqlhR4GNI(Ryq!&f|7poK)fiid**DmXA)zz=z>KtX4(J3UkoLO-DHk%Az)I340Z zfvkvpHBXKcNcb;um_P(SkF)p+M+pQhe8qzV0bNuYpvd`i1U^57@t#*c|K(u&-^u*~ zruNiM{1ieU`(p?&1Q-Gg0fqoWfFZyTUoN>-q9`rKRmeDr=WH zNIUhYP0UYWnGZ(hr*IcNR_3n{L_d`$F+YVvdG*Zq!?J4z5xMREQa^>-2<5nG=f3n; zVlQA?H|@kvAq28Nh5$o=A;1t|2rvW~0t^9$07HNwzz|>vFa-XM2#^y5ruk1kN8s~Q z*c-Yt{>XLl>9{VSAMW}o)DLH#3jd8_W?3-=7y=9dh5$o=A;1t|2rvZxKSLlTIuky# zU$%0?1(W$HjAe4+cvB{ui^fvRBdJ6pl^k;CIhM8~*;G1aXJ#x*#F?MM<-2IxfG!UI zPx>i5=;1wkMku+*@f?Bq&`$gmLLmEN2rvW~0t^9$07HNwzz|>vFa#I^3;~9~e+L5N z;OGoLH)NWwYrb^Py1v04&o>|QQ@G213J-hqvFa#I^3;~8f0fB$XIRc-b!t~2;%{hI}L2KB$Kmm33FNOd^fFZyTUf>-@Gn^xAbtwDyDr{)>bo5WtzF&n__k#ipT8d01vFa-Yl5vUjWxqRgV1}5`U$Z?~I2)%WIbdZvDi1z`Dn}!@AkJ(YnU^igmelk#(+h zy0ybP!P;zXw2roVtZu8z%2)}j%?exdtvS|AYpT_3HCVM)m8Dsd`HA_F`M&wK`MUXQ z^Lg`W^D*;b^9SbL=56M;%^S?C%rBXjnirU7o2QzNxz*fc_L;rrD)UgY(_CUMHf?jE zInSJJPB$l;6U=(E#79Cq9@AU&`T9Qk zbbWWdQ6HmM>8dVhA8UWoey_c*y`(*>J)!+X`=NHX_Fe6p+O^tOw9B*$w6nC6wG*|? z+6JvxTd5tQWwnIXsx8#^(`IRVXwBLH zv-%D7D)mbB67@XwbalJBRUK5N0hSx=4+v2dHz@8R}%UNv%^ys+uY)e^dUf zyraCK{91WVc~W^qc|iHTa+~rk@CXP zr0jQ;{g$#fD0`i<-%$1%Wv^293S}=-_G`*sqU=|cy-3+FDSLsk=P7%RvS%rKhO%E! z_H)XfrtB%oo}}yv${wfeXOulg*-t5Zl(I)C`w3+~rtD$Leni7>dz9Tl+3l3wM%i~MyOpwAD7%@m?@;z_%DzR}Hz~V` zvKuM;24y!;c0Fa+QFbk5*HCsfWmi%5b;`a**;gt13T0oW>`RngN!b;YeUY-uDZ7la zODX#TWtUKPF=ZD~b|GaKQ1*Gs&Zq1=%Fd@3R8r0fjJPN(cN!Zhww%1)u| zWXevWYzJlADRU_M9NCW5wjn(c=?O@WN4gd1aY(lyJr?O^q{krLgme(;0MdS>8)IxPNYkb=8$HQW(ZZ%NS7e(K$=3DM4CVvCp5Ge=^~^tr0q!CkhUVVkwys(Mv%4; zDu1bRyDbq`M)VfV2r|Bhv9m8<37eT2H7r7HJ*QF-U8Xjz(HT zs4xm?HKBo#NUM;JKx!dHrvw25|E(j{kg7-(q#>k1QBZi95Qz|x5P^_@ASen9b=_pR z^VS9a)bxc3i7T6qBlivt2$MPMRqGM!ThR?H6Z$mW)ZW&9rroA}RXYd1dsk~wZJJgM zU$-x*52)9w=c`-PUNxcarPe8bfiKkil&h6fmGw$WnWu~i{WbJV=;qMbp|zoO=z!4V z(8%EX!DoZF2QLb)54HvO3f2V!^1JfW@;&km@LE`6@rRGK(<@8DXWP{gRa-0+ebO_8)0K@TE8%jf|bB>hwSr9^s ziILMbc^B%TjCa;Z{Co(D+F5eZangp?549tOPUqsbGR`@I0E2nvl5Vq)q@s4D-Ht3) zET>1}8%VB@8x*`PW?sS;#m|GcG*KbR}9+aVYZ=TINoIO=l)yXTwn_e!ev{I~@{l zL)Ik`u*Z0fL)pzq5w%km%hy<%oFrv^fa25RBQ4bK2>9*xI78Xq=!=f{6A4 zRnbOO1$2&7+J?qJMiUYZl5C|(Cg7K=fiTGi$CmhckQYIZ3?-x=7PX*pPLyWpc7(PZ zXsIZX2gw>5dW1Ig)?5;GY$_dvPB_+Sp`by*TH=sq0^Vp%p`L?&7pDD==rPi;VDy0h zlMy?k7|uZwUkAmBremO#l^SQE#7~9ana(g7>{`>QMAFVez6a8Li=IcKknaMTFDS4? z3p+rypVG=b*;3QwGjJ8nCtL8G1d6rK!>Y>Np#v1|rP2F-MTR|Ap&kP#UxFr>zr zM@!ajhe5RYH%2@A(WJ=p;ujj6xfE$ASS*oCr0pd+7>lD&%?#;^Bb>;5e1V`Mmn=;*Mn#I1~J;%o0i3Eo^BxEG>hVt z0fh&%h}hC_)~5Y0108TL+NfJ|@i>UREgdG}LxE$P8SBiXZ&wOzbY_r2me;*JvCOe# zYbu?fN@EcR&R} zlJT6(fvTKp+C|Bmpj5IslH^F5B$@G3rJskT3;RGu9Pd=o3Xu0oBLVzkvonGYeg$m3 zXa%$}vi!xw%(>`u>7>w}*tAINu^+k(f-R|{*TEkQGoF%PkBGM}~Xx9reH{*&My z*6yMcTrS4tivni{#)r-eE|gvq=gN)ppQW3HcBw&{9eh!EM0p{2yLk)0%{og9SSvW!dQ<#fs3CMK|Dx~(VXJ(++#C8$ z=oiBDz#D-d3R>VQ{Z{=EV-ifs6!SoHjPV`gJpBx#&v-(A-FVN4>qnJ+Qtl!0nZT}m zEOMWW68Xsi-8akRen}ttCH2BYk#7sYAcAxG$}>#vd0(W;^GoizCXrtl7aGM zQa~@BQF2ex>`Ld8+!M5vB{MT`HpxBSEb?}s(gY9{G>OOkY&VgQl*K8YNpg=(5czOf z6w-^`c_jDKu_8aaECx|Q+@rLJ-iTRJRPGU4+u|uC_Y(?Y(G1ZW4PsI5$D>7l8c5DR zedHdd?^K*Taz7d)@-qW&=P#N%au3nON+yongAF1-FEGTkk$Zq-;|O2 z0fnc+gps?yPUL3=^z!KHDUN+&wh6qNkB4_kEgMg=r#p zHwB_>lE~dffhd_Ga(B{phmVWqd))VEY5dbe?hcwr$>fl`ouXNJYRKIN25XI^PrDOC z?z^;3-q4OyEbi7Sk)HrMB0nkQZlOJ=XiCW4O!N1enj6G@hvHFTI>>#SHqId?gWR|1 zn-!*l+&3FVenB8VKPsIFayQXhc=IM40=XOg53wb3-=GyKngVh+P%)KF0J-ZaSo!H6 zcO4akfAYs&J4xhYfudCvuNe6;8HQW#8rt=|Fzl^YQ-K#Cq_bG=Dlj>m11VOR^>JUP zwerpRxUbPpQgOz|eU*YY)O?To3Jo7>w#R*$mZs8NkNXm>`_5;2+?7=S4>`}{uAq&! zFca}X_eHmhmCy0G%c<28TO49`$9;h|?vlA3cL~)JbY{n0Of~h; z^E&P#Q{?Ldy8B_qok3q1de+8$o(htTxu5}H(i%=@a~&;VSa?ixXVE59k4uXJFhp6qd5tBzGZIfaQ}p?p)gE=@brI=V|mwVcyAIKtUT~M#-H|K_kJjBp^%H zF2ix|Oe(%glfkp;kXev>`3#gh4~jgS*Sev~i(nCu6wSr69|lvK*W5vlE~j;3wUB&=Zq*ZD}T!1R=nuNi2Ol^wyd12o@q! z@uKHj-Kdd5)GZ*DX(TEvaTJ~&2d$xj*FgNK)7b3LoA!S$uY3SywR-Jk7=6BWlosF~WP( zUY1=A1(?cfndstZECcvtCv-D$2+U_2pH1nyL5GR?gAl&tU!P$WFDAar(i4XwKO z^aNF*GVH2EwD2(D4`Y z8kE~klGPCSZUtQl>&K~NByNY3J*XIl+$-V!UTG=~>Zp9Hg!>z|_tKpb?qh84l{QMa zzoG&tnWq=;lW>1QWm^)1Zj*2y?Jn|*1E01_!hMKyOgD*&nb` z*e=`bG>ZC96vv@%3a5)`r2TO3XR`ge%k5bkw4ctBp|dm-F!pjS7*%n#Hs*$LrZqp%>K&(^KYbZ& z8#)tY^Rp&Nzd5_zMV&&*M{QaR8;?#kD(k~ci+m^L zQ#s{N)7v#D5-)4ROr{jJQ?9yrmXcjw+xSEJ(qg=%IMOh%N8|wh zu5PkKkgxjoQ{Dj;79?uSTNjAja@!dfetWM2h`oSiT}$p4__Or~>vwRT;6>{h>j^kj z@St_C^*!qr>m~?he+&VJ07HNwzz|>vFa#I^3;~7!Lx3T`5MT)W8xWA-vH=UP7BKN@ z0RyiV(D7;k4X+kZ@oE7DuNDa5)dImFc}tcF1)yc(t_$e3oOO@!wq9#(&=0qojqA+0#!T}@{e7cP|CafNx#{0fah3%`fFZyTU33{BU0`fkMcS4+$gl$hw$3^$F6#s{GV!nWZiR4_RR&J_lR z@pj(OK;B>2GK}|%%?qT@@TzN6AjUGD$aV>dJ23G+z5ULwp#;M(wc7V2ImSsG+#3xf?)Q? z5MT%}1Q-Gg0fqoWfFZyTU%5l)Hl3qp$Gix=(f?^!k2*AK;LhJzox z9SVhf5h9xg2K&~vZ0cRRIy2a_!3aX6x==9K+P8LfPk)09Kj(#HInhfB)_26vFa#I^3;~7!Lx3T`5MT)W>k;@Dt_zGJrT5ka`lhX{{^}w{#&rSn z2b}dj+%|X*cqO>OI>&OX!>onYzE-_8!u-U11%lZhLx3T`5MT%}1Q-Gg0fqoWfFZyT zUqd_4qbP8s33&CKHVb)L3Cp}#DM}?5&8ee-gm&qQC$De?(N>)cFS^;Wmz`1 zaf~C3V~jDznA6=#I&?+8Vp(7?1`8u&EaL((2Amba^cFB3LJ2L@V0wp85_%`}YH+9l zLQ5$BH}BnE(+QB1{66{retQY;S+lcKzBBXY&Ac}|)dD|GAmhLIVFC&6d7La%I7;Bd z!dE;cCS>|+eirHX}H%FVb=3vt@71L*YYkUcJDZX!P zG+r}aFrGFZH6AqXF>W(%Fs?B!H!gx(7Ed=$HjXupFxDEYjTOfJ#v)^Zv73>F+ZUro z*qCWdGbS4ojd4c3QDamahT+%0*T2#~(cjbG(qGn})gRLz)bG}B(XZ35(0`|&tDmNy zs2`;}`oa1NeTm+w@1eKrZF*F1)Mx11>J9pqdc8hOuhLcBr+uS+u6?AvtG%whpgpBM ztlg*Gq1~umqg|$5pq-_iq8+Clp&h0jq%G6Bw7s<5w2T(lnzUKk_S$4^D{YK6LL01^ zT0mp!*XpP0`|8{3E9!IVOi4eFKZ#p-$L>FP=9(Q1#nMqR1yukNGHSLdp; z)m_xEx}!Q(-C7;5j#6vXfvToT%D2iF%E!tk@8w%5_^N#>%?9o_A0Sgh`mhgC1NiUdx6+rh&@m2IbzQedxqH4#GWGdB(W!mJx=T~ zVviDggxJHx9wPQ>6TM6T6DomBg+f_IqNN6T6JqrNk~Fb}_Nv5xa=k zg~To(c0RG+5<8FBxx~&Pb~drIh@DC73}UAfJB`?SVy6;2h1hS1olNW`VkZ(if!OiH zjw5y~v15oGP3$PnGA)SeIN2D{5?tpYU((RE>L%JQ(sYtg) zItA%3IF%Bl}6OnF(bOO?!Asvr&OQhqFjzu~K=@v*wBOQgb9_dJ= zbx21bt>si2j5tiQtl zF0pPjmzsk4cWaLI3-cNC26Gp4E6X%bHQt2v_Pwy4jv9Lz2N;eqRR62~fck-Um3FT_ zNw3zs^!BCM2uuHLLj!JC3FD~r``HLISeOi;H~ z{-KUgURQ2YPEs<#GlQ1}j|~nBd>z~?cxbRYxLvS0aA4r=z*B)M17`;A3>@Wu!M}t5 zo4_{yTl}fOT>t+5OZ><9M+H>zT=7xgc==$tR#tuUVniA(&Ne3djw`cS?@8Y$i^og;58&-DG?cen31zO~Y0()IEtX%FF4VUsvY zSS5tSU4@&4r^F`FC#1z`9Hz2gl_ZQ7b^gK9bS9L^rr9Z@C3sDTkD$WVPAZh@h}dm* zB4Q`P9nnNvHj`$*fnBB<^iFvcxWJU1JVp|1Q4d8T(M&X%2*un;(Ucv|BvU-jNj0!h zB(G*dSHYbuPI~s3GrZTxy z+3~PRHBHph*|xTnolZk7QkiU9V=K*6N<58O-ZN~^*MGb z&GS5_S`x-V5-rL0wp6m2C&P{=U?_inYbHAiOQu1LU7#N6Y-6UQ&1Oep$+U115{@R^ z>@%TsD_cj85C}V-vEyyAP{wY~MkDNqL6R_D)S#@*b|#fgWTJ7K{TgxALTzoi)a(@e zI~EOxIF9Uatf*!uLX9yyVy6KN{u*BM%6jS~VY;YA?50pQmf;ySB~$TCG8s$T8Rq0l zl1|(4##l$%4yD2^ZJ|s{n*9n|Vu}DSHfEcf0gsM&BfP_(tp!xZ!-iur(G+dYrmzr) z0dRGK=B9t>KmbnA=A@zKfNKnz@sOdCFbRU7r6HX{_!>ZOA`g#7>_X_lxdg(6pw+mC z=+=ZI0d2;i{w0;CEfj7IHQS*u2jw8B_6$LbrxAr*)3~3p?Klv(Q*$WuDy_l|&0IiJ zDipWdld0BtG7)XHQ!Amx$3WeveR(sjAZ+I6f_N{;b(!VR$D4&*Tf{>NC{U!RgJEe7 zAS9rJBe>LGq4O`JRCCuW7q@mdZr^I{Eyt`E7AT`*KjPw zM*@tGB?N7_C6ofJpk?jMe$;wUqGVGj6I)#LXS^xgMddANZ;t!E)N*c{=lawlN*-$( zOEzW-hLL9MUcE(O7!ZACP=(HrEUdW*ju@)9LPXZcaZ`^#=qKOPN z;a>Cy3_$o}0q$IDIm~F-xCP1quqO96vdvKFK!B(QXyb? z`DbI5m7I`n=Rs}sRxXH#BymJ5DZ9x|!Tf?1Pf)BPDB{?#keeOOX1MI*uf}kw1nFzj z*a;hLka#wAjdUxPzxZ*e37RwabQdgbFqKS#l;js%N3qd^nUo#MP_u^8Imy$4-7rW~ zUo%1;q$ueo`YR3~!}z!9uW&LB@*onyu@z{7Zp4clrawXUfy~ZyG>(;osNfI7_yE}f z0y)a1ITWAQBoj@fvN1ay!nXR6NOmT@bMM5OLeW?<5s#)p05@Y|v$m3iY-x^37&s{? z5q~}h3eXshK_{`(JK=cu!>m+XzM0s+DwKvkSDvvWJob*gvjJ(tr3fD*AmnqiG>o(v zy^D<{wfT5=6@?ve{FdaJi!>e7lyGT<_>-b{x5p9Q``u}yK*8z#W{4(70ARb`ndT(i zR2;P>Nn*#yz1y+v&m>`XY0~jzgg0iP-f1o>r}WMuH;#XSPvi;`YckeH?j^CdL9qme zxI`=02Y55&+5}LZga$;JqrWwFP#IdiF`2d-aO}zallgP(WFx9HKc|#H=tbk%c*>rg zg_elq7$;#*MyG^FC8a0^JC2{`Pa@Gy>GoVSNk3Fv?!uHq$A>7U_1 zmUH4cCkMt;AjSZh1rry%u_dL$tCWkDS3;qE#?e#gSlL9BR~IC58;EWYe1P;=6vQ$J z1CV~G&E(}vdJK+p*`CYu;h034pqHcE-vYa%oD;}xb~xG;4d>J;Dg)#^8rwe?iR(M0 zZsnhkqV%cF3u2d-tDcJGc7zf&btDS=qLy_lT^I;;)HH?0F9u`;$}_nzA=P3hk}7nf z;n<0!LOQu=uLiX)$sNp1sboAIZn5K`VJNwzSSZn)1t~Wadx6BU10^wR55a0l6{|HE zA@#M}jg6^fJ9Gk9$#glF3xg2S3Xxhep!ug_)hOsiXzZBX913^jlr1-jfjHts{L;M} z7K*p!8YUDD!)u_rCR0_IPie&TY-mBQ_d=H&fEr!t^SBM_xt*93O@S~4$!(zw6q})3 zc9WZ1BXsswT;^n2;GdDSiSmU~f~amh8YsNV234t~%tg8A6-t^<1YXy$aZ5`Y%4A>! zsuk+M6+TDjFy+W0S2vsz z< z9M~pM6A=BM_@DLP<-fwe-oF-h1rq)Sf0g{D{Gz-;K22UDFP78tRN0i?l^&2TmU^T; zr5&X~zAt^x_-^){?_23h`^NjK#c!ap-tT`k0^@q%gPh~01g&TsBr&Y?xG&!B6O5qcN{yyiXbwog9wrN8Ah>9aKfzfm3uz;0($zWc3l$~kNarwFm~s~n;nClLu6qhBvzP-aQ3co*2uyX2&cEWILeEzQO?1#5b9Of zVkth{SuG1wdqpAfIL`T{EVRPI9}(cAor7c{oKK{p46k<%l!aOOI4*ESVtkads#0m) zn7r*qIx7j$QuJZvkpKl4w6~GYib@e+Dg~vC&%tAz<+2d%Rg7|>Kh`;*QnYfpU+XNB zg=xJ~%S9XHbj!kcL(p-#1#=3hi4j{dou#r+3&C7li^O8eFlT>Rm;?cZrp+lC%5Y~1 zHV?+-3#?Q!))Y&&gKCkAjCJ;tg=TmU`*I8D)S)ID)|fUf%v)el1ygw%(pb!Uh@cm? zI$|NdRR}7kGSumkg$8(-CICY*Q0RCkQfi!iWnnTr;l(V~HkFaiB3YOL&myo{0UK8d z*s*~{G%lI>qCy$r?8AY_%*f>Zl@M*iq5qojj*EyWw~Lm80o~QtgfbC76~ff zN|i6(m;`KhA#8a+%&kt`eXwXm8RA5_G>3*QJjU!sI4$%Z_O?hg665IeM_hV=sAwip zLCY@KoQD1cYxqbEl5C=0NO@^1`rwx^_cc<~E$ z&NM>0@`iviz}Zd~>UmY&JpriYRH~&rv~juv5x1=@jE0!;P#Z12)5<_+3JpC7%Xf$& z&M&AeZuiVR1e_)lPJAyGw20^&zAsD03K)RfP^ZT2HrhCM8yx%0aAy*|o!eC}d06jk z%_mtwck{$DM-$wDg8S}Js|KnSNd9OOYzO0}4+Q_bG#L9YRBR$uEE@`EqkIVp!fBYZ z6*VOU=EWK}C&U282?Qf`J%|9E=x5Yau*Z;WkEWAg&*8#voHL%!S)%Xconv7lsabw_4IaN zMHS%hl}CatGii)7fF{2Jwr;e-_7;d(xSN5iXT43rFdE=i1};)djl%E_+{XZGg^Ffj z*e>9UL3dx^gF~mEVs78~HvhgrkN7#Wj)Ri{Py8473+x|E1Vh0o!EwPsfv*Gag15lk zfvW>&2aW{afplO-pdldpH~Js)U+F*5e~5oif0KWdUzXpIAC_;HFP2Z0ejHca45Ftv7;djJQ@mnu}95n}&}4_yO(xqTT;3*{DJsNsa(t`Q=^ zgdavdps<{;V4v{=10(k)cTg%HXFtt~j*wLJD(I&d0CwlT zJPNSy^l5{~J^IRi3fPl=z_;M1Isu@;Fz;Z1O;_7H8N~%b z;wO0w{6y~nidO8PfN)i|@MGzUy#dIQU)joE;tudHIU#ud0-nEs=Pv;6d!D}l`iKoV2z?K|tk-1wh;t)xhtbijy{sB7rale8E{6BYJ;Pu+{ zUG+CVB&h1iY^^YhsmtMf`c$3h;7Ng5@XGDFLf@CM;k-xzO4_GK1!Bjx!I#)ggPyc-Vt9#@5WiS>!SLV=|V^_RhYsF@u5`?Nf|~N?B&Haji`3NmwAlu0+{mzAc9vw>%zu0+jV|uQ=CMM@s0(1m_RJD9J#y1a8BYOI=@l$ z5VQF+y;ISs#Qp>;*-7r+PmxK9JxGa_8I;%qu+ExJdp^C*N$h^gs-iK8-ADbl#FWJT zNbpoJB(Zy8;m9|M$f>``jKuDN)j*AyGa|9Oag(CVgv9Qm+)4~c>`uz9g87KuK|u5} z9iL+?Igzp(sZQ=H z9(Rz~4X}KJLrDc=5xbs7PLZjIZJ_+!u9kbmt|L4un2FdQsB`vVBx2Xnn-xq%>>5~6 z&lK}^lX3$QyP9g@+EdUx#I7n0#Gc5mq>2=ohS(LeA=caW!_KC* z>t*?2XHlj4viqt` zvsmm{YQBoL0Gcuj?cUomg+~?PfLx_RV7T-3!-tY+^E5XP7SDS>cGe4ywVv}6Pu77* z;fL_NZG3hl?)$kW7d*lT{S%HIx*PWH;kAEl8z09(i5I3I;y5VtxD*7G_QejD0z<*j zrw=9ju97MZ;;6R^CHofpd$|WC`v&`aB?n6OPZR)UT79wqB>M*n+p-wsKFPk`5{{UO zKjuBjzCs-{mqbP9N%kcQ%&45lV(cT5mjyYL+goQJ z(%i@6mAgx_4`}K0gWi(teG+~J<4WFFlD(Hx_sTpa*|E_8Kz`C@)l`KJfgb*d6S|+MtR>z_6C(2 z!pb}&+3SRLPJ?H!QN|@+k?d7i$@=+f*4-DVx$m0`uYKq5@9}d41GH%jZX%cm-wC`M zzWz5IzUg-^e4$U%?|~BnTWil~4n**N9s(W$9s(W$9s(W$9s(W$9s>V&5oiIQUq|o{ z2=6cte3P@G*eLLejzp95_^K$Gm^Kg2WXzirhX0cuo}M>(n<-P~&5eZPp;mkAx$&6r z%rOfOKk~JOv%xResrFm_Ovzm<&Zo`ISRu)i8|H#Lu`}9lZf=sa=A56~)G4IAcvUMn zBs&4W(a)5@brOymgj30MA+g5qBH(JY#;^A?Exu05r?T$zh87K5LhENT<*=>0f}0;N&>N*ducMqXzT2U8GRPbsvKW4{$N=?hE|wqNZzieCyD! z_&I_B)`k2&f-kJUS?|Gj240053!j3o4Lo4oZQW{JZ(VI&1`)iUhk%EGhk%EGhk%EG zhk%EGhk%EGhk%EGhk%E`e-Hr~t|b_NR}olv6@iIY5g2$CfsR)ZXm}NYidPXRcojhq zuObKp_`7~Tr{HG~RFXLL`8XBb`v`)(@b13A2_LNcw&(KeU&MU@?RjS1Wqha)wU+67 zT4RjM&1uFY^D6x_qg%gLd*0k+uKEvF+)LU+z(c@8z(c@8z(c@8z(c@8z(e3)LtvKV z2tq&Ylts=A16m}fy1(z|&8J1Scq=J6qc=OD-i`}qBOGDwZ+fNf3dRiIn*OHXIw|Oz zgKH5S+H~JR{mq*k64bEdDE)o4%nd<_O3vW^rcu%PAUM;vw!aA#Tn+-$d@K6#cHYsz zzk_deKi(^LFOWCm)tpm-6qB6V{$`sW3uUeZzJ%n|Z+2q690X|{JQUD$olid5(R-77oY=v8q1 zMHn44jO>cedEoy+U|@aOcP-yiSd1?%2t<<{Zug`J_L3zn>2(X~RA;c<0PhI>@u zpbP$6l3>fC2F^YRlY>5Ad*@z_%c07h%iZeM!ubWLjwt59h;{G1V2S(CfHMe69Tafc z>ZYzGozQdxdGopZ0y}*C;ol~|c=1N>9KpZ4Q+w%o2zUs12zUs12zUs12zUs12zUs1 z2zUs12y6}l+~@y4dXAu)m&)B2cbk4A>bk4A>bk4 zA>bk4A>bk4A>bkK??&K1zArF{m)PAGSk>~x__O3+jKqBb^9E*p245Sz3vMO2!aBin ztUat*)^=8{HNgDde9QbJMDTtd0v-Y$0v-Y$0v-Y$0v-Y$0v-Y$0v-Y$0{_zpz^%2l zf_und09?#COX&NEfdy9{P7^90Ffidp%26ZajuZso!o%r89|sEjiX>DE{5XM(|Kf)UB)I2s zvQXhDfe#B`@gRYyOG+ISIe(5|2yZ@jUtolPpQbZEdSEu}3ka&RGry1EOY2kXLu-@u zmi3DDy!E8@uysG|6x?EMfUgc*3f~<#+gfj(XdP`GZXIeJWF27bXLVZhtqv<~#jR#5 zWX-UqT9d2^))=eK8fsNp8hoGNd-H4aGxJ09UGoj|CG%PHar4ix%W#Kzllcep3ixip zZ_P8!Q_SPdBTWZxNL*!hn_cGK=I&;@IooVCZF816-JD`JnB&dSX018cv`oeH8Q&UT z!d;5*8yk(+j2DcjjYo|KjeCsSj2nz=jLVIS;FiVHjgyUIjU$Y;#%g1QvA?m%SYYgC zWa0M3s1Y`18qF4UF=_l$(>5hJ|zCvH3cj|lS?RuLY)f@F0`nGz5zNKET57Vo3RrhJ%XrF5zY42*U zYcFU|X%B1nX?JKhYS(C&X%}c`X{Tt%X-8;>X$NV`v@UHgZ8t5W#kD4FmbSe%S=&k* zqm9r8Yo->^nEJK)srtV9w)%?tocg%>C-olnR&|4VrFyY?o_e}^l6th-qpnd`s{5<^ zsPomi>TGovHLUKaPF1&7$E%~%8g-zmsgm-o@`duTvPpSEc~N;Fi@-9})YI*ayVkC-xq(zY^O->|J8-5Zg%XZDMZ`dz083#9k-%8nIW2 zy+Z6|VlNSUk=P5w{zB||V$TtKme@1Io+kDbu_uW=LF{p2j}d#6*dxRqCiW1qKNI^C zu?LAgK}Fy&5xbGt4aBY|wt?7n z#Qs3+T4L7_yPDWl#I7WE1+m`~yPVi%#4aUv39*Zb{f^j0#4aRu0kQLm{g&8y#Lgvl z4zaU|oki?SVrLLLo!Du_))PCG*eS$*L+oT?ClNc5*a^grCw3gMV~HI@>}X;~ai*~& ziLE1c1hHQeJDgY#F^AZ%xM@~fi}Wz0hax=$=^CU5BVCR3mq-sndLYtONLM0Vfpj_2 z1CTC5+KqH6(*2PxLAoE(#Ynr5?u&F0(tVJ2B3+1dZ=`!6U4V2?r1Lpd_dvQk(s@XC zL%J){4y1FDwj-T`G>bHYG|j1!LOL618`31w1kyOt7^lHjq`M%EB5gt1jI;@)qBb|tJE2I;U{tW4Oq+22#hjc8`F-W&SIvVLHr1eNgBCSI@0%V1r34~gN+9B;1R`EaAmXJ2B3?=$1|**% z_&Jd|kvQ>j;@(HF8=u(ReSyZ)#h;I<4^QIX9aODF3~nfV13U)qwQhtRfa9#gtd$Vx z{X7Ib1Uv*h1Uv*h1Uv*h1Uv*h1Uv*h1Uv*h1p0%3ruu|hbuN5HG1O`Y6`wFz;dfl< zL7z|;Y|KVukyx_1I^Yu~22yr9nN5Z5a5CN&joH<(XEo7Jw?bgVbjEJutN$9AZg?0Z z`Gf|kEtTBG4rfw!lbx~?VLRaS3DrJuE(nP54-tF|1_?f862FU}2~y1@>E$$3Vji!E zyDxA;c%!sr$D0@Na|EjO0QVR8!ulKR4!mu>3i|_3S&u-V_wx|&5bzN25bzN25bzN2 z5bzN25bzN25bzN25cn@bfV&f@=qjL~t3VK41p)yc?)P&l%bZFQr#>I2qU$fPJFkel zFL2Abf9QGg&kx;2`vM0rYn}BzoEEsvdI?SmJYbyy=LFvRFRHj#6b}Ip0S^HW0S^HW z0S^HW0S^HW0S^HW0S|%yzYx%TwL;EsKn?l^3*2o$(S3D->opLp_DvMZoCX3stjuS? zuli~Pvii$|d<{am$AA>@RYU5HKF+~kKpfx#Kb+lnjJ=Fjqrn)Yf2TjE z-wEgMPtw=u3-!1@Q8%>@wI{Tjv+1dLW$MZ5YPCy^tJ|nG z%0J+w`#s7f%8|-aC8zo7+Ly<@{6HO*Uv1A+PX?2SpxTiA=k0Qx%Hf|>}(EU=O zR7b>avl9_;V~N^nwW=eQ|B zD;f_q+u>L$)6r(nhm@M_OmWbl9zhl+7(pvyH)flg?Nn1NG$)y=>R~*Wpq1{3Hzs50 zwos;Jg0of@(nios+3{q?c3%j^+ah*TC>zU!!eKjRr$PYTNarwFmmk8&E1XjC58KqNV7E zlh7-|yi1OBR#b|Rwo`NL6z?Tto#nC+?NyBSWU3X=$Rjt_IiONBaOr|3j6es%-kz>? zmho=tR@^OWF4`ccTNcI}f{v0Nl8+{$5nC~xrLs^9!F(o&#A3=YXMY@EdZB4^156q2 zEWzf%xKPbZDj92vCEJ^`p;Tn7v!5(9Lqgb>TSDn{sL8hHhHV_3El^PCh-pY;F%E7W z1^^#U$y5dgNXAa3k||}V(T%)I%BRERuy8 z@GN3yxRgl1Kxl&6@g_)RW41EF*$2lj&oi6Ib^CBKVuxGoaI0cDoj6qWG~@;aZ&9k9 zg&eCOfnvu(9sE(Xvo{Q2$fwor;I$7$Ve~6i&R#e!F)lpeeAUg=&or2>w$c-FKX$YQ2!O=J( zN`g-r>+D8tl0!O?Y>Xx%NfRlEAM~vG!lr5Yj&OYU_N;=CZCxKF> zJQ7bT*LQ|HaT*|HxnZvu>BOk4In3>{NKpA!s(h%etX4fcycp5uYpY$zW$Xm8``MLDS~n7~*VCN%8RF7wVj8gftW^8qda4_UtUE zQ4y$Snh(VR&UUg;&#RhkOm~0?jzcY{QZ3z~jdKWyxNT8q(&M2vdoC9+X=R`@g@zu4 z=ND8Kw|nLu0#1_&r!)vW&?2I9LK!=!$iM*HhB|dqHWq_sZ%&1H^I?NypBe5< zqPHtOtarBNldPb-d19HPiKb*KPC{vr(?GQX$scX9(=cg(<_DGid1)~AU#Qqbs#rD@ z&PKTc1;S~VvlTTZ1m?wB45V5NV4OfOQrCkB(20IVO$ACxvOStk#;73Uobh}f7mB7< zw@Af0Dh%Q+X%M?l5rrYnINmja`HH$vYn`!tT83nE0+~w_cX&fJ$51u%LLWpv7q?r` zI0KxZil|c-jf;9`G@**1Ku%m!bkoG*)H|an26XIrG6M4~mkH@i(k+Ej>(o=Z=y73E z#`niLBMA%=9_cna9Bqn*bBZeoDNxvzQBEDrIus8e?G>fY89_b0pt6+UIozqujndu= z3TWEl)U@$*Bng^*wviVPkgx?8wS-gW49zTpq7VQxD3L1 zALQUr8W9LHPnp&oAb5t5;7NosbE0Wwv@@8`3?PGfO1uT_6iAT-2r!U)Tsz{ua1a$W zH=#m9^7)+0xGJZbhA4j%gi0pMlN?A%a*e-iDb#^uAT5n_s;C0|z4Ax^zcj`fK$Bkq zTQ^#6O~xCk#<57mw%IAjEd^o*pK>`f*fD7|r0nJ>*Yt7-)Hnujm7q=yTcWwZ(su#> z&)pZ8v$|#RvgsoZRMnH&k-{vdE{E^dO;u|H-z#7GZ#UNl4)I^&TO_Xzm}1)8&AQrr z0lqz82M-Xw4{T*^DLH|8Qp~?zJYF0bJSi|s-Y8A;*ZaSaH~3oQI(bUqRo^4Z%YmEC z>xH$}kWdS2$I;MG3;{|3vG3>DFLf@CM;k z-x1+AdYXe~`Nl1%*#V%efvhN2;!gx_H(K6X96j<6) zFOQXkW)UV4)a5H{nCzvJNR{XT)WPced2@RrN zu356@;k%jBM7^S3$(|c131h@!t&%-UK}9+xd!||v#)*2dM#-M0?8@~?_7s(}Ofz$} zN%rIzNwCFA3Lpw-9*;c%Uj_~Lic_pfvd2eDLa0|1K8kaCBzp`#@;Rkf3@(D$qf|t9 z#w;r;dxUCRtU|Jf3B)1|(VY#V5%$m!Ntg&NSE@d;KhrxEl}Gj`_&Dh#F*o>&R7dt8 zC03?5vIpwm>!)HLY9qU!vZ|;wviqptmZ*&Ej|5Kzg^}G`1K&**_1@|ty9d54TLV21 zl|^>MuZI>`P&owE;RkX=h}R!{}mHSn$9nPOf)Dpv&A)l>^tZ^9{%T~!*0 zJ&|2W6)92y*%j1Gy%a$9djc!3{;|ucAxf1$cG);dh>Aa=`msxC=($D2(Rv9rcmYDv zV%f#;>Efx7Vg;>_{f=r?qVutfXpmIY_}GO6USIkiyMUherR}lvsWg>zJ@#9w`wwe+ z>^zeHed>AaTthgP`j-xIFo6hYxNMQZKj;1bI zs)4Z+2$o*jBs-M^U~grPok(N8uzAjoqL6~#$xb2A`p_uZ$pjjI98CbSe77|eW5-hS zRZ<3zrzx}0?!7fob`lhMilEJhD)W=8eBk8pT#ldF)^d{^ZKt)tiVRvUo{O?4y_}0u zJnwZwU1kbeJM7@wIgyi_7H~3{)C0WVoDyKqIe@DKm}ih174%*<#y@W zuki!sxj=3(SXCUr*EoAaPns^|Vl=_R+lI|&Y>7(N7eU1y)7$nU@Nb!i#UHY~2tn*9 zMRpefiE`nqMZerfvBKU9|lvrB?5ywH9WknD$v0}rD zz)&#sX)9shRZ^wN=z;B0FqN=xvA>sFO4v7uawS6v`zH#3GCjT6PQw0y!nQ01nMv5! zTS`K!_+wTQ_7%2RE{Tdp680qu~Az-mKaCa$0V4!sDiaN`-tRaK@Q~% zBkV((`*^%^vk3cumOejd6=Cm_@T*`GVejSCy)ugk`zy(4o@c2&gl!`E+lMuTy-Slv zMOz4a2M1B!62dkTEQo-+)y>|f8Kz`C@)l`KJfgb*d6S|Q+d$YGRO;Rq5cWD@4MG-` zp4TYj66*(h6~wKduWH?Wf!$VoA-+0R*@62DRH+{`xS?|KAX3f~E9Ye^q#gd0;xshGL_@ zY#E6r=kdi%GBIr)xJ=BO6Ndkj`kbCOd7CLy=D}t$>>+MFHy#t7IcDMEN4~bO1#Ekc z;2+S>gmMnV#VO4O`=3+oxB8iqyH=b}o13vhk|#IJ1+$?u+HY=dlCd=M60ywuIKtWXfS%cgcB; za7W!iezl(orNa5r9C7=i82H#aieKqxBCf+CY)2JRt3N9hgwzK6gZ)g69M0$CihMr* zOkFG8~Ha8iqYrYf(W~9JwFZBXaxO$wk zq5S&-Rn|EbzdLB%ZQW{JZ(VI&W?cwTyq|}Fhk%EGhk%EGhk%EGhk%EGhk%EGhk%EG zhroXT0U5pyScO*<4!|o4Exe-8#48F7yrNLYD+)EdqHwdnI~e3eclQMjY#yyXcGPX_ zabG|?lUa8eAL>J`W%{1h7~^ttnlZ_|O8?C0*3Q(g)t)yunXCQ-759?#5bzN25bzN2 z5bzN25bzN25bzKn1ZMiy3jH)R7Tg-DW=W3F-`9(r83wdSPIZ6Z&znz+Z1Gl7az<}< zLcJXq%tkoE+~4#{-4%=(zBT<#!F5v5HwV`uIJD`$gZi5{IV7lI$x-_IYMC2?5|y06 z{Y|5y^FeSkdS}7qATZ6hq94V`I~w?R@U8C0d&TYr@@Bl6b1INxl2hB?Z1ZEG%$2~G zkevF>POO&$fw;5e$o+LrDe)TsVN=Bgj=L|g%ciaF|Kxye*Woz=a~-ojv7WJRv97W% zuzIW&R>Eqqwt#a5Uzr=t2hEGk^$^ATc?ft2cnEk1cnEk1cnEk1cnEk1cnEk1cnJK9 z2pI59KA|R9Rh8;ov8Z#Y38!>~+Tefze5-1~ex0M>tc@@$XjzfYy;dz+)VaL5b7|-D z1xwnNcQ5N)zOt)x#Rxb$BTNgLW_#Dth200ONOkVty|UAdUIoWrgwa96$gb#I9$&Ec z^6nLy4nc#1x*qFVx?e4vMG>Y3H7(q|bf2z8tClZV+10%?mx%)3W*4f0s+tPd!zmGA zW>8T|;zhcackaEidpQ(i3>^Fr>|iih5+S^5#mese8&`ELS(skgxy%Saq?%wL(A2$T zVdwHX_!PS^J?QtxyLiF6_gT4hxO-t|Xz79_t5r9h7A_K%v5C*Wuri1X~t0 zaP~o%9Q66xJNIf_4pr`4?pC)J&M!c9L@@_Otb6YTOWcPBoIz0Ppn%I(H+3!PgoYc) z8_(Srxc$k8uDtvF9bWRz5&Vl?+I!tYz(c@8z(c@8z(c@8z(c@8z(c@8z(c@8;9o@G zf9M=RH7};SFYwUsHdt*({c41_FYqrmp7*+kfQNvGfQNvGfQNvGfQNvGfQNvGfQNvG zz`uyV|Iog`AYM#&UqG+_Ma`j~>_p!kG%sV;XVzb=yWm!WE36YN$J)c1Wo>8GS_91Q z&9}@ynm0fc@8==lA>bk4A>bk4A>bk4A>bk4A>bk4A>bkKA4dT0uBZ`m#|*0A*4kRZ zJ!CKdE@qr1^nJv@f-4WF36&2Rn0U)*(eVNU?xYwj;Nb!tZaSPQR6JUs1tpyYAs4e{9p@JY*EO(?JfOnksaiGAjNJ6#1j}yrFFMgOnf_ok(3l)wM_^|L5 z4-$yFq|`x?^XCYL@WylZ1^#+%+kKk-=;PooAQ;L-ejmY?)~D8o)+XyM>lN#H>q+Zj z>wefNxW(E4UmdsI@&tiI@CJII>6e`>a^xt9ah?kTg_I;nqf_~CRr1# zF;<;5)T**H_&&k+=GW$D=7;9H<{Rcq=CkJG=AU7g;STdA^AF|~@ZEynnrE7)n8%w( znhxBMxXSD{yUe}K-OYA$w%Kah<}7o%ImK)+$D59@g&D z?$B=3uF)>jF3`@>PSK9jj?fO%4$_usUD{sSZdyi*YfaiLZF_C9wv{$U8=(!>Of8@> z^=tK0^?mhi^%eCw^>Ou2>OJbM>IU^n^pOfUfCFNV?3*}>Flk$f0qVlxzh;qMjr*e~Wt#Y|?p>nozs&c%t zPFbt`QaM0btn97KQ?g1zX;yYtrYpaIuHpSW1Uv*h1Uv*h1pY50;P(k)m0%FliD{e- z5L99cu^_PkF+VYxm_*FSnI(wC1Y(RclYLL@J7V7w`-a#*iT#7v*TlXe_9d||h<#4% z@5DYM_9?MXi2aQ-oqbH~BVr#C`+(T{#NH$JS7Mupy-VyJVjGFQP3$dVZxVZh*z3ez zBlaq>SBSk#>?L9^5_^HzUx+^Wl35_^W&)5M-4_9U?E@F2QyMx&6#BL*YE3sRM-AwEzVmA`If!OuL zHW0gx*dK^pOY9nAR};I6*pg z&NOx;v310bAogowhZE}|<`DZ8H_&QpksgNhP^5<-U4!&sq^pts66rxm4@9~O=}M$4 zkS<4h0McbhyOAzMxJK5^8R;yfJ0YEkbVsB!knVtVI@0ZtPD8pK(y2(dMLGrPFF2JaBi#n+ zB&1s-Z9w{Sq!W>Dg>(YapCKKObW5b;kd8$<2I&?^Mxe5q;*I~Ag$$88jiFE z=`f^2kq$vRm{Z>%q}7~?1CipT1R`EaAmXJ2B3?=$;-v&4UP>V1r39ji@fD;&qyfpN z2!2jvP9#ozoQOW3qQHc{8=utOeStSWUVY7lkDlr9?+$9#Y-YV@y#XEr_gXi?4#08N zVb)4(5d?cb4*?GW4*?GW4*?GW4*?GW4*?GW4*?GW4*?H>N(c{(6p)2$E~F`cp7`0Bq#rW+mxNsyt`mP+nohchX=$xhjcupRLEglZo+7X(E3hX}p} zg9M*4iQh%g1gU0{^l}=iFppQm-52n`^Z2}{PXF=&{(S+>x|{n8d|~|!b_d?JUWNUE zr>sY;2O!w{c?ft2cnEk1cnEk1cnEk1cnEk1cnEk1cnEk1{1+g=T>><86;RPtKtWf5 zAi4?!0{p4pePDoLFBe4L7|zrgOi8t%TpIiJp3KkNDLKA?SpdCXd8y$`1a=2^E{ zFTpv12dq=zq`+JM1r_&-;3424;3424;3424;3424;3424;3424;34o|j=&&agV4)y zK=aiKIllol=o>6>w*f`>)d{ZGK(N|3Q7Cg72=K5np8>z>s}acRFY}zrJqDzJuNqQs z^l=XU0^%UwB&CwSz_ruwJ$JongH5!aT`gi(s`kiq8{v>^kzEF?r6LnMjP<9M~pM6A=BM_@DLP<-fwe-oMtrzdzw` z@K?!S$}h?rkQ`%7)4qAh;x=9R7LEjP&Sr{CBvaubk~BrN?IG- z0~d2nfGEjqrY)P{J|l@x+|~y6z#W}qARPQvqVN_54)1}xIj0!HfJ`bBZnabJED}wD zJ4!Oup$_YT+d3z~!%!p=%|w%lP%PQTd0O3~2kz+%!=p$toQ>Ow40OL#DAf_M+w4RH z+*qP^TCM7Vdpbu$q(Vv5x*oW!b9zadZW6qt>WCh=t#cYYPiNcOU~Ht*nNTW|ZEFlA z5_U=**aH`MLL~;|#sIH`YW2WPo^|}4SSa0+j78LOJ#c~NxG6y^8V@zw;aDou(Pqzw zl$z~KanPV1fnyc4B6ef8x!F!N#X@tEsj42va|v4Mj(B4-mTn7WS|&JaWg%?@&6FKa zW^DI`P`oYI6rpg~j@hXYKsVAkOcrKB+-w?xnnU4^cqjn{0ly;3W`c8QrNjWeSQ0RV zNMWdbHUWjT2Rnzz!bC`{&bd9ryH(k)Aw|FDun{JeIuq=dn6*fIPMkR8vC~OVJM}p;v@?mmKM=s1zY>r{>rx z-b=J1be76OEd=wKAQFoy!<_wbfa!&%%?&VRxU&SC2jfCDGpS^(DVA(+&W2Kv zvCe+7&)br=AAI3-gV7$6xtl}e_Rp-z`9 zG(Z|@0uaPVGq#3O(Gkurge~ufxmnTG@uCrBh!f?~T+oXiV|F8)7J3hRTO=BZarF5k zF1eO4AP9l8(cf(@}b5F(YWJsjCZWOTWeY| zoSkK%hRcpr6oj%e*qMcjik@x{@yV_!m5e9s4CK2LkPc)N;l0i4!AtwR(185^YSKyPu&U7kSiyeZd z&A&0k*`AW(;l(f1InxMfC|ER}ji>C{Sx}=QP|Y+SiUXYOWT76ap3XL=J3s`-p_Wsr zmhRBT=?+BPwx~1d@lcyRmkXG*GSHbqLl4689b$;{3o47-J#!BMr^$p<8U!9_5z#rJ zjGa?tU;u7Iow_L-i$SwDr$W5>u)(p<40k5c+m#;HJ6rQfR?yu%vCPp#Q!*7Np)|;8 zpjv_Ck2cw9m^45Kh06ZCG#L9YRBR$uEE@`Eqg;Uk;WW(IikcDv^I|OqQY{8BP9PYm z>p=wQL_edZ0;MF`9!)1>RFHAbcs`E{MN_L=q+%Tv2Jx0Oh~1}%!VqU1?;62;Mct>h z&R9MzL$W!6%%zDtyrG(7sG5194Zx4xxG*W>`{SIE1O^F@bekQHHbukk8Ukl9P}r4G zP94oU6b~Tn6{XG@K|Q^ovXtOC+^Nlt(%uUSXxib_wDEK#37UPjkrxl;TfI|5Riwgo zxLS!jYp0>>4x_Fc2GuiTw@G@<;%`G{zY~lV1T_H(G8@#v7@|u}H+W*(t~^1!4xDayc{D zF=;fU?B*!f^l}K)IIwJlwSrC!TcWwZqIUuR&)pX|=(pEBpjxN=NmWl~#|X2Sx*Wb+ zH&v|-e6M`zzujCLIK+R6Z;`w@V2WvTH|uKi1^D)W9XvqzKCqRwrQ`(WNiqL=@py4$ z@T9;jd80JVU+@1y-r#GI>*OhcSACBtF9&WmuNT%@M@r9{XIRV4WtOhoZ=DUh0jK)D z@n`&R`e(@}$mjd65f=M4%DV*432q;}R9r1BQhJnqm8A8uG~6$V+bPq{zl-}QXri?`se@iTC+5@nZc3 z{SjjvtV|ShCv%u_opF+WjL~g8rN3)@YQ*%#dI-K6*seXUIq*%uJK(#4b+EUw4}AMC ztU?g<3*mxp$^J4_5*kFkT(e})!*?^MiF!r7l07$262^$d zS|xjyf{JuX_Dr=Tj1%=@jgmc0*_G>)>?tZ`nP%o{lkCYc@YPSTk^+bVn#W^Lz?VV8 zz2X#WlI-!(k`U?@g^%K#9?2eqk95a9O-j{`aZpv2&@@7BrD!Esvd( z8)Ch6Ja#s?_+quF z=N4w{7^t&RPL8nWVcG&_#E5NtZP;~;_c3p<*+WT^(mP9Ru%X_M?!5`evxId&qA z`NHNoJBmUIdM7)DKdZ*%~weoJf5b^Lc90YK-o!91YDvF)U4@sY772PJ$rVh=g7GLiidGDdTu}A!s$U%0vu`*oDx8p*PeC z8Z>{hDc%(BD*6)^28$_qc#7hUkN_2Y*&rM}ecNCJ1N%Uk1xCLU2DlUKI62r?GC*y18c7T_l4?Ja^2 z$3cm;MGz5#GRuk}U}D9F6@j5(=+johzN@54lhFg)rC=&y-(r6+x0JAN5amjS6829N z0A+f5v7Lnd1BGo_3^J3jueX$hR`JKIB{4a96xm4F7nKT%^#`*R z*9O_=gkxV86885>&uJ5lFTvSoICGR0q1-;gKCKjs?~xUoN7yIWp~}+A#bSS>3A4mF z!agR!%taNfwb@4`FAH)gXBc50(%i@6m77J_2ekD0L8}ORpM+lpn+SU^r|y+mMA%yfu`3>6ze*qaos z*apJhpi=j?fUwsIYY?)i^t?tHmsmg8s~~Rud{yi23+(p9E?bOS6FHUp3k+1xXK+K| zJh(sLZnza-I(+N@T=;Uorr!ge09$L%z?ylQ`Y}ZEejWlI0v-Y$0v-Y$0v-Y$0v-bY zVFcn}iE}jn!0-<9z}S}!#YTalF%nJA?tvToCHgyUqFJ9FOhDRshH~N_}H*A6* zRw|h;B-Z#{1g>aX_XB%Gj-MeY6^K3SJ_hj};3C}J7wGCfw|haug)#npfq~X(eSCM&y4AYg zy4t$Ty3jfYB6&X#0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S|$HBLXsf7jPh6QCNjn z6b`^E3N5^%(8MbW4ZNaI$14i|#qSOVdBNR%fl+_B_rW>VlF7I)pkVksw2XO`{+ZFOovB}|J#TI@SN$6+?j_|R;3424;3424;3424;3424@V^Fu zh~#KOKaGUt4h{on`quV0je=W4)hx*o`ulp3GsA!u$*Jz|`+4(ekuBazO3vubPN=uz zg4qa1nERVvsk?$P!?&itDY#Aw`sUzT1cx@=cTj)xCWizyEICSlUoCS(P@c(2&KK;Dd3b4~?POmb@bn{9q9l(`c45|UHD z*@^XXAP{$!9J#;FDJ6abAatv^;C1%}rhoOq$=6MOl_7VZG>4t%ZhaFwQA9#&gHpR+m?4P>s-FFt8>K&I65Ot3!3Kt zWA8iQ<0#I)clP$~wy&yXS(YVZ8)J-Zj4{R-V@`J`>F^c#iVGNoi!gGNEy;jmz*!M` zu?ZysLP80>CiGrHNkVS{5_$=Q8X(kAzGt3i?{s%M0rLBPZ@%C6u739Omv(2T{AcFb z*_r2=S3CpM$3kg>FMZ>Em_vx)uZWfsan?cXy@8hb>NG_ zrpuaEDt`*>&CbeYRZRvPz)J+mp(q96LY>_m%X+)IAsb`B@q>kBSuO|=+|bk8wWeu9 z=j!FD-i~#K9|G0Net&b<>g65X^{^E?n<@Kzu}+?`u7i3f2fLPc1lBHDy|JgWNA<$( zO4;iL2MQIoU5DQ#38pM+!S{hpl|7yX9ZQ?Kp~xNG+2YoL{{j?86df|6UCWlN&fYY@ z2SKTa46fVAnTHCm;FX@87Z_f1+r4KA7aZ>T5&Ylj3T~_}11?x*X&<~^8)7ag7t~@oOKtRN^pgB zie*~|SaYo1tU9aA{LXyc{DXOec_{>Pe_RG!23!VQ23!VQ23!VQ23!VQ23!VQ23!XI zs|?`rrGq*eRKVF4wajrdD2G#P>sZ#wpbQRXoWllpF|gps!x^l!gMkSrB9CTy?ga*% zNm0$vxj=`L4yUt{t_7Mbv2q5E1uEuxP`3hp)@Yc0uTz1H1#?^q{BYpmOg4x^flrZG zCFAY{Ui^(a6G(8*<5X6{mB53UFX>1i>XK3qStNS`OJLuDbF4G0E!OeYQPvUGq1Jk9 zmDORjTZ^oe6|-8bfHljSZcVW!SYxbutHvs~G}xcuJM&BP6Z3uZE%R0LZ{{=RW9FY= zmf;TbCi8dZ6|ir?Z_KmI)6A32V@(@QNZep{nVse`bANMzInSJHhRr$VOmmt!$sBKv zHtWo4(=rv)V|-(L4reL8YrJW^Y&>r~Wjta$XxwAmX53(0V_arj2&XLm!Z_79(Ky=J zY-}`oj5WpzV~Me!k%7|}BSz4eZOkyH8WW9iMuSmnR2qii)4$Wd&_B}O(O=hJ(4WyC z)gRRF)^E{&uV116RzFuiQ{SQ=r`!5Z^d5b+-k~3$FVNfch~A{n(s$J->D%iK`f$Bm zS9Oo}wf3p@f%ca6iuSzrr1p?@pLU0KqjrsUsdm10wsx9!l6JIqq;{ybPV3Z`YWrzv zEv7YVbF|&HsoIX(7;U6ht(lr%6Vxx&kJWe8H`Eu^zo?I?e^l>LZ&j~TuT(Emf35yP z-Krk1_NklHUUiLnklL;;ROhMts6lm4b-FrP9j`X3wQ7Z`sgm-I@|p6X^0xA-@>k_4 zIc{l!?k%Xhy@J ziMT&511m@F#*l5$Bjo{}5 zrxI)>*g|j$!N~+C5u8YH0>SYF$8pevV+oESIGW&R1V<6{5!eJj<;%3%W|T*wJObt6 zC^w<}3CfKq4?}q<%0p0YK-r732W2_WK~^rL%9^?5|js`Z0Axv0OkHD7o*${<-RBvpqeLXILSKF>a|u_^WcX2<1*kf;4G=8w2QQDxjgMfQqI93YrSYXe!|M^DsUimtHTI zlEkIQ!=;$D7ucT{B0Dd@lt=phyxTsv(!4-iu#U0b1#f}H)@|0`z)#=->oo8bc-@Ns z2Mg{d?K0pp;4e8 z-s`+)dN+AjdQ;x%UQ>EYdO*5J>XQzX_LQnTpL?G6-0V5e)9Xoj#(OHouf?aud&R57 zQ^d96zT$Lo1p9`)%^qi0v7fU;*)pJF8-IrN!6BRz4OY<-j)#+hbRwA!BwNC1y}S>O z;~Wh)Hbv6m7#f@C!~5V!&M9y$6mE+q7RAExbTAQ51Hdgfi<939FAPRAV2je6OvJF! z=#71F5a%3&m50L3flM?VO#}nc$iDsNDk-hH4-V#>06`L&bXz9PZARjOSXis*gEKnE zz;&=!iNI5MaYP@S%{k3rW$9!fI5(Vxd!a}Y%uy1_Me6WAIIR=%Q5Fb=BI!sX9*8E| zIHuI?`rw?-AlwQif*GE7Xnx5+auF0J91npROC+39%lqJ*PAGO+e@@i;J~*s%W3o1=mGiDY@7z*CW} z)S_5ZBARLoq+2K0o4qV$$YwGeOQgfu2LiD+rz!%$U^q(EKFU7Q%VtB^ObRZw1cHlV zfjDFY?20Iv3HA}CBBQ2&fr3!_OgtTlg{$qud8?Am{#xKnrE2X>yy|4LzX9c{uF?L9 zmjwo7HZ?CwIf%qtM%Wv@Z2Ev8fpj_$Y#nDG=4Er?W=mTJ43o0iZc2s&b9pm}rd#3H zP-?V&C~pQ?QXq6TC~?hcZ?F&HO*R`Q8z3B?A4w+SyzMmF8%pIi8&goQz}3zoSYv{@>Vj|?)I|CfNU&CBq`X#lP;*j5Oim3?WsC@ z9dD+^g>r&b*Kw$|8)tvlTK54KW3Ati;Z(LkHm9 z3G@+kkaReiOeB>WyVJ`iK^!R}5Y$Ku)`n7RAM9mQoor&@WSBn-2f57jFRG0 z#@hQ)oj6R#6HSqLC;@#3iWE%*K#lV%A8YSh5G)ht_XY%Ov=^bC*VCC~Jki_?RSe^c z=pyIM0&GK7EOe?OkPd_whJzVi37|9QLzm(KYU~A6!_AR};ZRc`1wEFVHKw4F=2Iml zp{XQd{QZ%CyTZ<(lGO_@rs-lToW{CLWnxfyDI!0ffJBpv+7gj?8WK)Y!u{7skwTv5 zQJxoYZWg3s;dCGb+0V6xF?O4mg`wVy0$`8HHV$PwJArSX;!p*RrO}R~Rw)j|qjK8L z2s=g{q$o9P6{GAZ<<;RlToecjKbHz0Xlv_lqa*Eoh+Ezcows6kj28(h!|Vu-5%j#< znA}Lam7c@a7K((ToPB|hguL6prDWeomuG!RBvZ-?<+i`|94 zN_aoaYe6IJ5GCn!gq93wsSvLZo-{P{AT{*nOdNG=A{l~CIKpls(ja3^QHV1JPw>$x z*AKOJfchQRW4vMI%vw{5Vejo_wOn^3BcPO(YI_b2RP@w>0Dsx>QBFLZhIIF$bn~tU zLy+!lN*5GZECMef((Qo-fh4DAPogKvM_f)jr(479Sws(vB!Y7}Kaq3_at6(G4@U#? z8&F65U4eJ1?U|Ib)^Gr-HuuCZdv}V8U(bJ_-kw2BL&hSpOe`6mmw{na2#T5FU9rsG z&C42~=&4LoY7wa57?g54l``A4@pT6(ZdV*L>9Igtcp+CXDW$@mMqLlC5=dl$+} zws|@?fv2g&QwkIwj3OfQ1L?3ckbw@kGd1ewOf(AB-jWRP>ca}hHZ#JWLQj{v*`sN3vHe29CQ`vNfnX-W2T-7# zhTA(*Rl>!bT8n~Kivo=kh(>C95C9s{4pdbzC`l}cq!Lle$T)jEe~+`gS8Fy)`D0Y* z#M@IR&fY~9hS}qI(~xro&EBoE$MV-QMC&MIu1&Jt8;UuGikVaTpz^u8-H!Sh@B~G~ zF=bxAXs|~Ut4Io@#7BzRI59g7b|Zy=h8;_U;62NALMole=0d5n8z^6NyZ@z(&yTZ5 z5gDXBQf=X2q&X7Iena3J3^%^c*R${ZJ6hXIwtuk{^_?M}ERK@5`saAxlxFxEe4lx*^R#;F zz0>?Jc^+0?@ZW4+&o*1fO3#?Tw7Si8mag1yoddH0r+dEkrG2mY=6Fx>p69uSt@OO< z-N*kcd3X5|aig?C=~E6?64ndS2%jYGrpz?|B_5=VvzE&9qz}Lz;?LfL+3D;SMTW2c zE!Mlzt#ZA51AEEyOV1|X;l57!@A9*rN#fh$eI8A`NWVdU*cb<2CW^V2Io$ZYu~k38 z=rW$v-!eWnqWVfb0J{b*&>qul*c0#$*f+2q<~9z3z5i0$Z1o+@1AF~F2inv5{2MT3 zu%pCM;*a@Q6uzsH*mzMd7-b4C(#67>dSR@@T10q>;8?!&2vhi5L7>v(OX07LuvMox z_~=r29`@6mCF=a$kW<3_V@u(=8i`F3_2QAG@GR_`IYZP-jw^+~R7h-$m_Mo%o}o*5 zV@l!aN{NjV_52Z~@DwFiJf0Muq+Aw_%(A0N;fXP@>!(<10Eh~jhZ7!$ok4>G!sL%6 zg~vuqEHEGl@5RnIQg{?L`J6T&1Xn@ABb3GL8?z{@!oyVB{2`?95RsTSLd?DmA|c_= z!z4BlYOa5DiOKwlo+&wa6#fXClTHzx&Yw4Q6dt6=iUy9t1NE@`sW`~6QMjLyDmiEr z?xS{FFk}?|K=hOtFben9!oI1ZK5)1w+yi^d)wGQ#d>nZlOqu28Y7U#AfNCp>Pvy zeA~eLv@GC2GOCEe!JlyHIEh8Xyw_+p8~H;O;S%b4*?ZWHE~X0ar;tXm!bPxk@pOo> z#HdgBEtRTZ%qLt(ouuT5Pq=`{8*IEMoKN=$8|?|_QEp0&^@QJ0*}s3JC;Xc9|DfYM z;aqC8{UebA>VD;Pv4LYe;T)>F0V6!&Y%0`X<2&IjYKw!6?u1`b<1QN83BMpMK_ffi zOw!bYkL!dpOxUqn)SVAA;RJeM@KKxabE?Ra)6v37)P!Ktc>#73_hmE}SnhWz{w)0n9m}E(;Ud*kxFc0>F zg4Gr#A_qk)D~w@e`3oydK*ccVT8Z#&si8EeBUm-V*G~UZiSP~9dGSh#@HMhrYN15< zH!6UlaeDqbiSQLF+oBM(Od@=_y~O5_hpBAi`@D3=+z%fe5csuHjnI3W)FuaSciq2R$!S!Ud}z!b_lT8UL!y&I=ru zP;Pzd?g!hTb9DB0G#=E|y=F;o<20d65Jh3{#zqJ#!T+W3Kl{U1()qRQ55|}MV-S>t z$;1EXg_|DhBOWAb{Tuc%_{iwhyR@Lbr}~6qtG|@}O343H-$MTa@4vmrNGD4pJX^%e z#o=ss;Wq1wL1Gq!O(Xm@!3oT+>0Gz>1gcjIIKU3ot*3}FHU=cZ4LL=#HKNOVgb7cb$$=Ug*R(U@?03E zzm9Tb7Y4{@d})opX4*8?x2m7_gtO^Run(#7*Nh*}j+)qC#o4C|5~?0p zt=Vu;p-wT1+jOb^lzl2&oczwjqZvw9f*R`S?CHh2Deh*VW7o9zZd}(vcZ+)Zgq})& z&75jxHx$%5mV+8xe~njtUqugiBFnW?w@zeK!TVMCYNl7SO$GIv9|QlrvSgL!hsq{F zwdkZU!9KjqUsGMpj@mC*mHeUd0Tl=J)j6Oa zHMXfdjtX0{{527Hi;c-v0~RS4HHCGGS$M0gxM~V-7d*);sql7Tb@lCG;Op#XQ?R-U zgBJc}7F1#3y&qGVg-^6YOkYi6!eEtM z7<>EF!oRJ)D$QRrZX7#`UTgWO<^Qf1u%3VC$8eq>en^a$9yBcP>{+*Z$;NHabUQUJ z?>K15hSk08Fyd^_X~lsZXol{qnLBPUP7BI2HUBSToeHY7f!S8JKjjiB=n%Q9T5&JR z-6;sqJ5cUUVc)S2k^MCd4eY2{*mrWFa=$1Ab(g#RV=68ecu2LDuRdYq*dNI@cM%*q z7QeNoD!!UV->DKC~2TKa*=v%&Kd$X=V!x0Ly7>gw3hbyz7*ln#gm72;g{G1cJ&9Z(tkdZ`M@ zW~W%ca~_JX^&GsUy92Hkz1DYvD}&YQPL1%;)b@jy^c-9qTkn$Y6&;}Qx`EF_ySi7k zAHqk9Fl@*lGVtfS4sBnudNtN~Pl?1gtnJybZe3S*Z;7l;m?ZjY0(FCR#w=M=*TLuX z^ZU#z}^C0^KLjTa3-7qcrKjir|I{A zhrnd*X;@32p?;{I2f^GQmjRanmjRanmjRanmjRanmw{pi=7OQE?e|p%_gD;eyO}_= z5p0G-k;G!Yl9-6kSPcFOi{}U7AFW-b7Ej%I+O)-Fy%TM3OHE!Fi?XLrSbo%To9>H& zg|4mnDz-5)zEaj7-K4F}u*AOES3bnpz=#ZTmy74vmzTGK&9BXTWkZa}aV*Y{X&%@G z+m$|Rh%sf?klP*F`lCE`(n2sNwnzKSZHEK7ELB@rBl0mX7&!QY-k!LQQBxjHZ~jV=n%66P#Uts81bYM9E+- zH%H&TBC0@c6rVE0NV1NMU@6`oTf^B&8DgvU$wQ2d9MRixrM{hSU!RNfXJ5S8?B_ke zKg1}>kG(&hCm!6}C$S!%@5jf}ybzq*`(rrj?4Va-8-3m%9|Nihux#p&#CR_#@kpd0 zMgs2kxk!#$e|!c!k?lI4XNa-n`rv|aQ+rbqJmbR2T(o^(@3jEjne7IjxUJEmoA`ik z*mt!SVP3`d4uN}Qj_)ndUZ4>Bj`w^8T>iJ5MgXG#s~5?w9bB$1OE(9&k(YaGc@q+;n_HZ=km=9yxZ`oV^knTCA)5@$>#b( zktu;EF4+y+9N7Q^0&#E2_72rJrNC|gRBt&~zu9?#G0X0gcALCYJNglrt%CKD^|W=1 zb(M9#)o1lsach#b9rzV|VZLcTXkKKV0p}8QKrr{mWx!>?Wx!>?Wx!>?Wx!>?Wx!>? zWx!?Ne>nqn;5@{p%axTu+}v$L_mW=lpl|6|+tIybbptp9vDtD(MX8(3u#4p_6I=Y>B+i2UZ&W@gu;5x%* z$fmgfHcIF^v?tlIrmMFj8@wFcU)X5bFfu(I-LWOhy1RNb9WGVNx*qLZyQ&U+Q6Tf0 zRw{pr3OCDTRZRvPz)J+mp(q96LY>{P)k9Y|WMd3Cez34C%LM^~8+v-X)--MCT)jNi z+p*5@L!esO?{Dr}y}YBl-UolqlzqNfC(l^dLA{fMUCTQHYnQCv2>Vs3UbtN;d%fU5 zp-T9>B*BzLE%-jLsj|njpkrxMHx#*}J6qg3@Lz!9h@wMAv}@Ut)!CZ{_#i0tkim5u zIrGqLD|pk*&I??aJmZbcPmG)H`Vssu@6c}XT?SkRTn1bQTn1bQTn1bQTn1bQTn1bQ z{v!-YY*0so3OKu>mN{+)<%Y!SSk}p)tU+RP*x)V(R-MFVu+k0&W|_oBvpn|# z1J0zVX6Rg?V`fXb7HG1>${9EosF>?P-3pZLBo=1h>r^0P!5o(Y|450=WP>;q_!Nm% zGVV^`#oxFyfizrVQ&|aD0uN@sq$7c-OG-UtIp;@E%_}ZDFYw5!PxrlX`L}=Y!Zp$Q z7r(XC`pWv3b&RzVb{CjnN#;MyKf-LlF=o5DhgoZUXgp?IZ5(H;G!_~y#!g0s{+a%| zexLpu-PV`uO?sX7t@es`w|1U(yw zgUWA}}rFX0MC*JwqR_`9(9lSNtXVQz(1JYH}xzfqf zMrnlfo{Y;bbb3h%1#g_^piN@w6ruv?UWQJT9f&24|Jga5a%h zw`J0NLmH*Z2H%tkhO9xTeZs+XD$|r+)E2I_!AE5pTn;86fk-@?k#rz6x7G#+6@D)e z3PsZ482oFC2GZe{Oe9okgTu;rxJL&DB{T7KBo?l>!F6R8f1<6;i7=dm-=mRWAPxDg zv%!C52HX$F15MFzD4dG4;DdND%1E1e*-W?_3O5Hb(KJu2IgyN|6NzXloUXM6Cp)QB zIMx(hlnMuu!Pd4wx;0h1nQmn_?MN+(HNivtUgeRLQOHkoq$QKYjF?AwSv{nbO`_s( zPNS^NPXPr$bQJbosoCUZQ~0$YW}yE@^-r*J;07F<)PK2RqZ3E4|Jv}wyliTJi8v=v zk(~I-Ln&Krf#BRgOE?hZ{L~*p^u_ z$+>W*Q)F&9S>EGiV<5Z}53je{ZX&APxyIXu)0oDr_p%lUO?49s#35UuyvB!Fs#!;* zz=k}?HRzgTAPI-$)OJzC&JjiV4Pew-FPjY!FKA6f!;o$ZWHZqQ?Ip4=R>sIRB@5wX zt86tDIv7pz&XP!`D^?NF!PY<$c!RDGPMa&KLLpy?=0G}XcIN#ZYYx^NO!+Qo1-u@r zS5ReUTY}TrY7T-ls+op`jwV_-Pn>YMp~K7OaF!NAP4YgNN+&|$XgD2C#DmdrAZ{)9 zvIYo1RRY1vmgU!49I8lP>SeVMBoa?U-Reu|FX*iB*LDYbS(uX*iHG3$8j2;GIfs&} zcIwKh(A-cY1veM*SVtVdYk;X~AO$KPGM#HU{^9%c;xiR{GGsas}J*WmjO=OZ`|MnR# zn+p$R;-EVsacE_{p#?!1CX#q1LZ#gy?PUoF*ROd73ppyqyCPEuyI-EfzNLg0=CWQk z4=Y+Bu6S#yXv3DOP%l}ufL|+5(1Xr3eyK8!xi0pVl7BzY3{~yiE|2hBGdY<^fVPc>!bx9U zE4B$aoeT%kROf+|qq}@Y3vaGWj>O^BlJc3&SQ9b@gTKS{cMP}(1>!S9^fy0g4k{Z? zRpT9#`J17=@!Wf@Cb|H+6kY}CMc%OiFN+wmF9`h#lo06o2!BmLfq2={k$5r_4X4KM z&1>?9LWR?*v2zAS*BppM6Y*Fi1?s*9quX&WFUu4~mw@h;glzEuaBN z1+ij_ah_hZ!!$3OR}_0J5#m+bU;Y$VyS2LvOvUNY?Vr=U`vy6sR$ zc*6^MdYr3JGxP^kvz~FIdAns^N6WW`gOTP)&>7ZIULXga#zuS@IKlX+iw1uEA?g|^ z6>1s%nw;m*GjbGVFxy}X#?YQI_4ppitN$zs{XNH1Kawi0zmeoqi8 zG!dFZG~5yhE^nKIdv8Y2H`mvT_=(a;NuTT6^2aBgW7G% zw6s9e90N}OFw!gx5DO<;!r}P*ND?$Nyb8vF-#@5Ru>~?0Zq6py1YKh;AHPJ?t?+9o z)d(8^fR>`TAZ#`u^(eJgrB$cqC}iPBYa*3zMA;1f4t!ryxnWPUIm`Z z-phZpTas59Z7BUOcGy?|!YZX+>%&E_GR;t6Tm-rUN98;v-UMr4SAnV7JMcZ*-p8#3 z4zP8Q!}#}Yc3$A>J;!yOci`|2uor+G9{$A7Dg4~}*m~c3+j`x4(R$W;!g|QMA1nxN zv95#N2rq&C2+y(3u(nvoTSr+(Sch8ctyNZs)ov}aQdZ1ru>#gCYq~WBW)#L)^;V5l zZfUS@;dkbj<|pR+=3C~g=HJX`%*V_>f%U;1=1u1B%qz@`%-@)2nWvd2o5z~AxyjsM zcA1^#GIM`(fjQ5dYlh7^=1g;%ImsMvjyCJeYSS_m(_?&Nd~SSXylcE^ylgygJY_s$ zJZRiw+-BThTw`2jTxgtY{K7cZIMF!T*lcVxdW<#33S)_}pOG;VM#KmjvyB#FY2zScg~KG5ERS(4|qC$)#P`?Nc>8?|e+ zOSSX0v$fN-leD9?Beg@dby}ykRND{EeTZqz+8k|nZ7R&AjL}AF)tagKH9`GS{aAfh zeM5aw{fqjT`bYI1^;Y#d^-A?3_1Eez)UE3AYM;7E?N!&P2dVAqLUo?Hj~Z0>RHv(x z)$wYhTB}y5nkp&ZD4!`GDsL;VDt}d;QXW?BSMF49Qm$1lQ!Y@>QBGG*R*q3ND~BoT zm6b4CvslR}aivAsTbZfsqD)lA!t~NG#ZqL2$zREz$nVK-$}h>!%8x^{aerI}Tn1bQ zTn1bQ{<94DJPhXb;Sg#LBM52!`I7d|BTfZ%#M%A$XbKC4v_T zULg1z!CwiUCwPwFS%SY1JVWp_!BYfJ5w8DFTp(ocN5%2a3{eX1h*61MsO>^Ed)0c+(d9A!3_l06I@5|dxGB)TuX2b z!PNv;5nM@d1;OP6ml0e_a0$W11Q!wfmf%8y3kc39IFH~r1ivOYm*7_f=MbDta2CNY z34TFvCczm5rxTn;@N_ypwvK!@klqvJ>UOC|9672xSM#%_zetLtOfUD4V$S1yJsdat_M9 zP|ilVC(2nU_dq!lE@%E>4vq1*}OM3g(CoPcr% zl;cruk8&K!u_(u&+z#bvl#M7GP>w=bk8&i+IxeLVC~Hv;M_Ge%7|LocJyj_2utE_J zD-_H56%h|B6fOMSM2UwLiaP$Tp;S>SC}os>$)hkI7hWzTE<9X_9*?5HOS^`@xU=&D z-Sx@lW3OEBfC$%^^*X<`1ZD*OVO?z9Xs$Jx`7dj}wTt;Qco6Jk?r53j>BejDy?rly zPe+WU#(KjxYV?2T52){HS84a^Q}jx`OW#L(R+F^2zC{~t__RH=Rr=-HCiO{e3w$Z> zq~5GZ@=fv!%1X6M&8SCG><)!iwau-++wD=G4 zzu|w{UC>0jtum^k&$G_ET#AaTeVX?wX^Ql|_YP^4c(e2??_}?6&*h%G zJwNwsmL8R^_r5J1z)ojxi;Zjp3yAx&o7t0Mv*=+daR#TU=%*YkQA9KefSJy8CMBFU zT7t)PK4XW=u#0k&my2k1M))~cpUk3Xii5xetZ?cWus#v>{`tymp#CXRVQVcIkcfI4 zEQ9cQXlLmFCd!2^)e@T^>dA0R1SYkUG)XF)0(K?SM4hI7BQZWZ?8GXZ48|)n#L_ko z!b!s4WXy+jO40#>Q%t1H`3tHOBLFlUo6CQC8BL~5Dax&1yLHH@u z#54vE@@Z69_3pQE*bJ>+H)vQ*)aKhWtfJb39HBYG%Dg|pnxT{OTTtJ8s{3H7xvaT>W6Q9DqR%&F zI0!A`1~+2puq4*N`fV7N=T{G(6<&r$X^sWMQu+frAk29$L5sHUwO=?8y3_=w6`C)! zBiE&@7Y@ME4zyj^AG*r)(v}O0k^e#L7WPAPztUC<`yy8bHVcc8tHCW67Gi<(vNzCP zVF8*WW~~+GkCWKkAGB4-jF(vAM_4MPv0n{lr;x&)l5eGu#H!3QQkaKDF0fH(qo*9b z&AVd)d$f{U0OZ%=6e`a^A%+!OWSg&NFrfu0&zdDP(_fBJLYV$?R#!sUw{ivvLHaXmj?gq#Vi8ujjy=E_A%J!D1A)L6 zVef&FH4iXFn6snAGKDD)W{I#D_V;2#gxT1>O5`TH`iOQ2dk#znv`tAfgjoZ#J_`z57#mE$Za0{z!4BAwiwq6M)5StFgY7AvL5vK>(Oqa*rA!RQ zq9QJBU@!*zc}eqv?XWrifN{ZStpCAH3mPf@QicT$l&zAh?W0iH=hf`M5pz9NP5+=e zH!6n_#Yog=c?Jb_*oaD*6O6z{G|-r!7DrtrObLdg=E@lo)L<*qz9 zFb>ELHo0D?LP|>nax4hQKz~pJf(q<$MXTtg><7v*ox*_m<^yFoqAR>#Y&~G14*VhG z0TcBL#Z=OEz`%D`VN!Xf1A2*^<};>Y z$_$n@3@CW#`f4R*dhS;K`_^ko%4pVaG9Y2dQWgWA;gT|qfx!TLrS9O2vEkPPp>qtuW0Fy&f2;pRzZ2Hex9Xd~lOU!~)J^Su?Q!iU?E>u- zSPx&Wg|vxUC9HbCqTa7ws-CKDR6Es}y0coVd<84l_b3-D$0}=;1guLBm;Wt4CtoL@ zEU%W6@}BZ|xx)X6|9St-{xke*{Vo2T{k4A4_mS@z-(9{dd}sJJ!>mBuH_2D-{oMOk z?{(fYy_>u%y(#Z>uPMC+egqduebRx_o>G~VG#`#C$5Eo1w@chXKkNLe3P_JF;2B`Iz`?AH6hj0a4ID;?9} zJ}}zhf6~x3r}gqaFv$TU&x%cG#}9q^2z_`TSmA(8a0RHR zXkrmJLUF#};1<~4@LP^?YlxdG;pchL}=uYr7&_3KinHL2V6fl*Bm zZiNy-G@!}q;XDgBwY(3EYM|I<{W($V`@rD=Y?|}p%tpa2Ueu9&;Pe2V8D%Bazgp1; zeh*NHGUwZq7eclA!0iEyTFX+=0L)B8L+ZFbaC8_qO|~L2FzJFXJ+437sW$R2RrP_( z19)XvS*_6=4a`p@%lia0{~mDoQ9%jW^ohSTQiS zS&Dhxjk0@*(L(m2$Hc)57iPmo**&EKz?2z$_48IT*6v0-y`pRsEB&$d`clD)^?seb zjyKcdLOH>z>@Kt~)v?opEgIORhQf+zuSIKCoI?ynqsnl54R)}+89=9lDI@IFSUnh) zD~4nu+8j+R02{?*Xso@8o3t?<+j1+6#{VOUc zQ-xs7s?^w>UN(ulE)jvCMq1)r3n{hs!DuasNf(Ybl~MKzv|80e;Bf&HS8IyWhYjJJXd6*z2+cYLkDlOq83 z<}L9`8@x8SW7XX7B3^oMjRL={avMB1z@r9p26uQrsIaf z=B(LvznwHx1^9A+i-aBuqyyxV0Q~^`CFVmV!f#N+;L5>kxH+;g9BKkHX3!w;o=8C@ zf&T`tq$D(z1o#0J-mb90odcAtp8rgRou-TMk&1Ph%EX}ZQbc|{0f{CTwI$%i2ni=C z;r?r+NFmSjD9_H6UJRThc=mIxVT|2|X2W_>0RDZGYaGgUb^_l%#i0rsOQRh}tx_C_ zN9DAg5q69^NKtCoDn{8+%4_zsy(kbAel8V0e_|52-G{j4?a+BEW?#;ckTT4U;21&A zyN$_>v|H&pY;B=PD9YLAx48BKRnbDKf+qIC0T0>}ECz(45GDA4z_3G)!C#IB!YJ!) za0Y>QEq0fImiCZUa1P z3?v9oaL*OcbI|X=dju@4b*{&F!^+KAr4+;78(mlQP%;8a8N4jPH3SAKdTK#{zwG!Z zCmv2iy5J1L)6Kgc3_-f!_rcS3+@!!Kk?ZyVSm|?m!21J+DteTUxSV!Qw}#o^@xkeV zRh!^k&QBzrf}BA!1@{irfcys35swe=RNLUv!E@Fc4uB(N?ulVG_;c{6`1Sk;>TU4i z;7pgE5Kzi&aOMCP1W*o+3j&l9yf=6$vt1iscc9{S#W9l}3$&4Ke@dyar%~5~Yqv~a&eW*U|A%}5vlWhQW`sS3o`yET9R&++ zHrSK-OP1-`G%?SSIQJ4oqh%=7Bq|kX{zx-gGlQEFT;8ehGPYkR*hDH=CJ@X-xCuKb zr{VUFRF!Zsr`EWaWE5zeKr~X*g8itA9Zl zR4jZrauqvpNf>$qd^vK(Rk$b&&%kFRd@Gb(7KTZK{CRVyq*r!4C zyzhC@bGPS0un(|3t37E?*t46b(PN08im!=(5HAyt5m$?GaYs@5QT76CgHTauFCaDx zZ+ySK0ED>rd+Y_++rrrV$(@1CW9aq*Vxs^H{M6$MhO}TW0JC_J{PePFFu%(Sm%!}P z4_Yz6MD)!3m9$DP;|G1im<__V_wC%1I}`L4 zuP@`$Lh*_)lyHKWUFFYNaSUAhFTLtbMbEB@+OZq!!+?Uv9#$6wF&sh?YAA_-v$R0 zVFlNZq!s|*w9ZFnDa!?Fss+{tlzMiskhgD#@Y5eKq;Z}cxB-c9^p9IbM@mXs6%5e| z0Gsn*76sUL23>>4Ir@@2EG)*B^gXr(Kh_8U7YuU-23Vze775Oz&i+5bQUPl?-#P%B zLD9nhkFpr}k=6keEN>fyB+^xSg&%X5Zw){z`83W-6|M3Ym;?Nmj1XLVfl%1B7jW$b zm}@V9TU7MVIrFbP*IpnD6LVygnngZ>aP0-qPB(9%$+Z_KvB7{iOj4#Q`8RMEB5qf( zB!6CDaF)q^S|VISb4#Jvw1z+Y#l2-WB$_WHrH9Y za=&#BSOuK!`P!HEz2=+aJ;i&T=Nh)s^QLzn|F7iTQtc%JZZTyk760y$6F`|1F9PRsdV9ccok9die(SlING6O)xXiDgRx5)-y?b zTfEPsi5KZN=nos?VA@MD_cDhYzc;q(Cm3DElloi6$3|3NsRv*;fCbuPnhn1GcffuC z^PnJA2y8brr}05&6I z)nN9Q5{nigOD-Y{-{Dtb;p&s{B3&%}P=5i;hg!(6f6$dD;co?jO0PQ!e+7%2IpW}} zPQvr}!7$jGlkgl2eJ6wpc z;z;;QOL&B`n4MrQibQyrN}E5OAv{DR=B*rMXPzS=;m_p1k#`f5`4c@;a#2b6BN+<~ zSW*%mq{xaEl!OOp7Kalxa5+i1pOPxMm?Yds?Y3YkN%#ZNQ(_@WxEDSg!R=+>GLmo) zd=1o!&LWa#Irf}IvxP>AqS~L=FCN@hi83{L`=ICEA5^kh2WxwL_O)uO4pKsul)W29HTu(hG zZ>dPQj?&LIHRqP_d*Y+SGLi5*YMg^C5((GRlO>jjglpi7dbXHbH^E%yEf5J;Qz^0& ziD(lnTvd1x*Fl6UsUUevL&6nQO#>E&gv*Jn+_I2x8C68#qL6T@|2x4eqKc~=bOT8? zjJjSni`b1WrV8(;kXE;Zi(nRGI?QW2?n3#iLBemTR0V56!iCgHO0EP67Z7=atpf?? z)BV9#frRrYH>K8qgx}CyF7@@nR)Bj-HH!&)lNYz(zEx_C??2tc!pN+PEWlGoz!^J~TsW}6lV!ts~ zhY3`cnCNFCaClNlU3id5TULv_R_0G`vf+Y&#dp%=6XUE3Yu~ZbWR>(65C#TvtOCnk zY@^A_F_JtBO;(0gGtfShS#)E7btdEX%yY!SZ8MpHZJ@|9lj*4G^6fI2hD4RJ%4900 zo@YPl%q}v%mw8b9K8s8yVm!oqiKa;Tx>;Vhc*)Yh<~U z0j2P7Q~*We^nCkC;VV?OMIp$1QuuOva4{2q$a+%v0&C2PqNMSp@HsZAqEzxeX@$>9 zWi)>pK=_n+9L#c3_*bd>{f3jmC-~+l%0jW-r0{X6P~3I~Ow4k->hkk&vON#XCoj8G0ka<gL-?IBnnfFHpPu(#j_*hz2?xaj`447d!q47d!q47d!q47d!q z47d!q47d!q47dyc10(yuXJTf~(Y$!pw6+htCct>V)U@fCK5(0W!wtTF-n6CI6xOowk&(jK#3~z~cEq z_(x;P)Z(c-Pn)*5DHV(b=7uLPj78bgCoDhexJ~!X1qWQ)@2ebQOk}+iZEs8EM-~Im zU0d^2Y-42HJg7gqNn4v?iG8!Le2B4u5gFtz7tgUTFK-23U|_3kh!HIe6|w~}%>#d7 zyAn?R92)Q0HRN`Ow*JhWI%y%e8QY_M=C(#jYtikF(PMwiD>uvqM`fs5V~8<>OC@YU z5KJcetM=HYZ$sdMw8^IrF)qG-n#`@QOxrOR|GEjbm^{>{4l$x+ zFqfO7Z(k9GJ-KYfrwlQY?AB1=ZQ37O!`Vq0VypJaLyV2ix^2gm`gYh+s4W-g&%SuG z+0T1`e~3}i*|+`iJn`V(K8f}Cd_O*(=7q4^UVjWnogMT_Y@^Tn<6}UD1C~wwkr?j< zB_4@1#7GvVLb*teT7P^7b||y!e4Zi3lIw$TxMaI?x@0cezOVOM0Nb3|4L)&Oqs22B z2Xw=}tF;K6I%s=`z&$d@H#=-EP>6lUd%RU^(0siJYd~z-D+KLU2R=zU10snI@8(;0o@;$0ha-n0ha-n0ha-n z0ha-n0ha-n0ha-n0hfXQ0s~$+im(cgD6GUI3M=r4!g4&KundnVwD5>R6OSk~@Q6Yk zk0{jeh(Z;QC{*x>LK%-J^!s_7J|CChj}KCkxb%3q6tm|P$~@EAd4XSk{q`f}hkQ_m z^8)GirJpc zLye=~tf72cSjaPGC~KAM%AqEoTRzQOi?gXG#s~5?w9bB$1OE(9&k(YaGc@q+ z;n_HZ=km=9yxZ`oV^knTCA)5@$>#b(ktu;EF4+y+9N7Q^0&#E2_72rJrNC|g6mU6L z!r6I&yPhq7>4V!&x*q)q%-sd+BkO7F7V9eOe5=puvEtSwYdi2O_`-bCe9*keJOj=v z>@Zs)p!?%8;4{!#)+mQ`k4(=~(v}_oeo{sL=l4adpJ(>=es%2e|cCKAj2fiqfc}**oKLyTm zXXUc0CW8&&B?9G8l!9=f&hCz7yJA{mosgmv?m6!_n<*rtI^@I(f#r4(gp8>{{LtSi5BP#-7d|)eE;PWv>?;C{#G6 z9e$T2n6jt^-v>5T_IMU_EN$wBB6oCWi(3c&3s4+UbjXNyEnBiWd(!|P1f?D_xNak7 z9vW>0Z@Afcfybj~oL#xo`)9a*1plkLvs+k~0ha-n0ha-n0ha-n0ha-n0ha-n0hfXQ zI0M|a|3BhKP|1s)ofo+B$_Ms(@{CEUJ1_7bZxC(iWwGhz#aT#zKa2aqJa2aqJa2aqJa2aqJa2aqJa2Y7UfFZFu zmUT9$8X>XitfZ?!%P6lNS5}U&YcQLT)BsPPUb}%r@ zBsQAmxfd94CPg(v=K>uwThg^alOLJTHKZ0Sr+OqQkUry?|e7~1( zT?O+3tWmz0pGWYy^|AH7^|tl8^`iBx^@R11bwA7$++tk^yAE6e`wpCAondXUj<=4o zj<623)?2Hr4y)Z-WTmW_)nWy#S=MxGiZ#I+W7S(VR=K6Y{siBdUz(qo@0)L#ubO`| zpD`aZ{{*uPcbGSszca6ZeG7hLo@Jh9o@^d#+HgYR2D8iTG?$tCn+wc&=3Fyu&M{}2 z)67ZccyqK_XI7h*shA$)8{>00OYvRfP2*+bdE+VL5#vGQ9^*FS2ICszGUGxxW$_or zsm6)M(Z*(DqtRomF;*B$jQxxZoW2+_g2rrPhB4KcXpA!&j9R18Fbtpmo&JUXk^YYU zy8eRxjQ*(ppnkW0i~f843jMeGx%!#<7X3Kg)_*cztd$g~$Pqh!Ux3pKZ=d~xbhqU{&JG2|MYqU$X^R=_J)3lScqqQToL$!5U zr?ynv4|aEqY0cUkZFg;|wxc#i8>v-mrsmfK^-J|*^SO93)qB)i)$7zN z)r-_$tG`gUs>iE+>L#^UU85ePwyO)(dFnoDP~B6Vu1;3RtBq={TA^yHqt}xD2=qxD2=q{I@gU z^DwcBH4-!sj3THf7|EfM!C_MzMiA5z3@4}|7)DS{P(@HlP{E;sl@pW^SOg}Aa%K?d z1R94jrV=OwGJ&7KN8lxp2s|7tCK50LfrBZ0NANAdHw0f3{F~q_f-ecaAo!f%GlEYE z{zdQ!!N&w25&V;bE__Jv0m1tO?-9I9@D9O02;L@mi{S4BZxXyg@H)Y31g{djLhv%d zO9U?xyg=|bg1-_xPw*VUvjl%3c!uCwj)CxSl` zJV@{W!TkjH5&VJRUV?iF?k2d4;7)=&2yQ31jo?;-TL^9@xQXCKf*S~~C%BH__XNKq zxR&4=f~yIxBDj*^3WCcCE+e><;1Yt12`(b|Ey0BZ7Z99Ja2~;L2!2g)F2Sz|&LKFP z;4Fe)68wVTOoB5APA52x;O7LV5^N>dLU0Pf$pj}6oJep2!SMvganOWg363E+n&4*y zM-lW9*aSc2OSal(lt-dG0_EW-H=+Cq%8e)wLwP95Lr`u&*^9CVWjD(8DA%FvLb(>@ z8kDP1u0pvIWhcsmQLaFF5Xuge%TX>vxfJCRln0`0=TbcY<^CuaqudYWz9<)=T!?Z3 z%K0cWDAOoYTq;SF^H8>-OrVUTjG>HjDbGc@56TG2R+KF$n^A^QhPdv2Wpd5v=9_2`sbzDj#P}ZUxjjFqG9?dhk#J z4<1S&;-Lg09!enMp#&lxN+9B)1R@?vAmX6}A|6U0;-Lg09!enMp#-8|@+i#5g_jG7 z3lA6B^9XAA>pD9xu=VKf-=6jIzAHtz#;jNPttHkg)<3L^tsB8EfSLcY=3Bd%PlKhv zKIV>=X`XJp2H)HF!uNE2;- zA&nAmmVV`(?49ko+;g|*=bp{dqtf->x1|Hv>FjN>k!@fBabI>bds1u`JuD^8;4~He zz=61xilDZQvIEF6nD(}D?zI1LW__*fKcf@k=>&A`fd#!J>5X~`rp6GsAZ_5X*xH-VF*DEr5|X1aU& z?me?fHeok}5Rwo=2qA_L!|Y7&?yz%g=18&-2sxGz$VCngLx5c%Tq2+xa(JO2h=9Iw zAIhO1f+zt54@3nNIYdAO6y^Wa^K{R#I}6!;-~Ufu-`Wp6Po}&2>8fv4JzZU0&$pNv z*xz0Uz%g@C4oVKVCZQTnZj#vyI0Q8fc1p*$0eaK;ao9(?bo5icfmrF#NjQfXl!PMz zb;hASk@C|Wjdevkyl9Mrasm{49y3!pM8U6`fX24xc$`l4QRYS3iW8dtf%a@PA$@1#q{}QkP(X%d+R63-S-`Xfb|vFk;Z(3t4Z`B$;(FqX3?|J&}gy z!&^`cJXt1-N6;7N3X^4)VMfV&43RF6{mK~PYz}*h?ky>1H;YxN6EHmg3$e($@1z&= zL)~KhBBerR5gl!&pJkQ^p zz6`5pky&ag8K5qeipDy@>rBCJ2bqU{1pRz*G@FJ780AB}Og6U{c4WnO&%Pg+Ob0Oq z_$+vE!4-Rw9bP0qS#b~w^)rdiLc=Pg6TG)p^P7 z@_e;Wwt|LGF-+YJoqbu&28Awlgz;20rOGb{WE}c4rSw2*#zrJpX+&eO5y>Sx{$p

2*Y7J^o-TFj0p+E`&_?!Lewn+pm~tEC!ds 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

  • 1Zm)$V`v%5!cqfg9GpqqmOLzk}TeU(=u0pU@xB z@6>P7uhB1sa|_SZPtp_mT78vX1M33j>9h2FJqR-d4n0>NtY^R+fuv*YXYCu9C3shR zO?zH@0_F+s)NazQ(JqCVf-|*~w1l=6<_c=GO4zwz7R(j|wSeZ(a$&w8Lrc{p4a1DV zH|i(qyXtE&XYhpjfO@BT6U-W1s%}%yR8N9=gSF}^wMMOknS)tsz8X{mFn5rv4puYN zR8>;3^0V@d@(Iizyrw*_JfS=QGYB^+*C>}N+h7jiBqgD&RaU_)LZvcKnWf~zJVHQm zD7ngDm`O-gBn8=ivVCd$(Dnw*B|K?+z_#0VqwOl&MYeNnr`XzIHlfkB%(l=r+g4x; z+a}l?wj5g)%qOTeQT|o_7Is^BM}Ad)R(?djN4`bAR=!l;DxV>r0J91$@=AG$JWnox zd4(ymM;;>&mHW%7GLin2ew4nDK9K$;y&ydy?UC+~Zji2&E|kuePKNn~HmN~cDlL%8 zrI}Jl3P^ToB+N1Nl@v)JzmRXpe)2YXg*-zZhIxjY$u(p<*+Nby$CG17Gg(0@VXmQ= z#K>ggCZov^l0j04)%pj_H+&BJKfG>z-uk%pe(UYl>#bKM%MQyWmh&v9S&p+DZE1q} zhsBn;mLf~kGRfkyjIs>2q+4{DgZLfxmiWy4p7}NNUh`w-`^>kQcfvfx`Q|gto6H-` ztIc)hYV(oiQgc4cMfl9)%)`wC%)QOB8H)$Ruf&gFKH??uDe*z^PH~rbwRo|3u6U|= zEX+x)5|@jM#5rQ27!fCmPBB-^hIt7M7Rmf3d?$P=yesSzo)aDw?uEID>x9dMZNg^Z zL}9(qD%1*9!Vxe(kta+Qyuw&vn2;&-5@;J??M=vpE}1qwAp@`HBpt8gq#yLm>{efV zG$*~Ghh{FRcr7O>xQ!DXI%;-H!>c(_aVsYZ^w;c`4L5TlLBGvhtaueCX6V0}i+~$A z!O)LW7t^1(j+5V^KW8q#;gy{H3jI2B`32W-@-tq}$pPrz*{z@OQcixvaZY}KUY_0h z9#?Vl9bUr8x6s+MTi@WtoP3QJaq<;j$jKMbQ`2-)q$$l6DFqe;U z1t%ZDP=L97fah@X9t;VX%R9K7leb`Kz+B$IrJTGDLj>ls50`NA3JevP%S*V3lNWFy zC(px(f!*4RXL9l^j2xKD(>R}#Ct(D^T%N$wIe8pL63pc>9OdLu7*Q~nhjEyb2XTm# z2Vh{qZtcO-IJpl77|i7!JcX0HVW7cW?!uEexf2E)%w;#8z{wpj@L(>tV?QUiVIL>A zVlO8*!|;Roxe2>DxeIjMm06LXn^e&wVb#!<|r4E@YWDU7F>%PjO0CnYehVlGAK2TlrLe8pU5pzk=z zgK-vfiJ@;eiNJV^xrESHoJ@mp7jv14zTjjEjK7%6Wb_#)lVBXiTqdATIPt@HjJbHx z$DFufT*h3S=tEBIFg{~0ZsFt=bTcO}p_@2)0qx@Cd2}Nu z&!HPQc@|yI$H_n3LPlMV#D*F687^bO9%~pz}Go8Exa_CbX54U1$p@ zH=^@6xdENa$xd_*C)c5~Ik^U%#mNqICMQ>;&753`&fw$ns;;<#=V$D
      ^Fv6qWus*|Jc;HcU;+QxH~ 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 ~gnkR~zVit!`;sp}Cta=irJ&H@3rr-e`?`UyG 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 Vp*C0*0zp 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 diff --git a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj index c6ef6a3..8caf10b 100644 --- a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj +++ b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj @@ -18,44 +18,47 @@ x64 - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {5172321E-CCB0-4A77-9F3D-FAAF0084F434} VoidNetVS @@ -76,7 +79,7 @@ MultiByte - Application + StaticLibrary true v141 MultiByte @@ -120,7 +123,9 @@ Level3 Disabled true - ../include + ../../include + stdcpp17 + _WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) diff --git a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters index 46c2a5a..a22a698 100644 --- a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters +++ b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters @@ -7,97 +7,118 @@ {4c99f44e-3ff9-4d5c-a3a1-27d1f02b0b7f} - - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - - - src - - - src - - - src - - - src - - - src - - - src - - - src - - - src - - - src - - - src - - - src - - - src - - - src - + + {b40bea23-e721-4605-9fb2-1a893c226525} + + + {d78dfc6c-3983-4cd8-9cb1-d101a0162e77} + + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + include\Http + + + include\Http + + + include\Http + + + include\Http + + + include\Http + + + include\Http + + + include\Http + + + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src\Http + + + src\Http + + + src\Http + + + src\Http + + + src\Http + + + src\Http + + \ No newline at end of file diff --git a/include/Config.hpp b/include/Config.hpp deleted file mode 100644 index cde1296..0000000 --- a/include/Config.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CONFIG_HPP -#define CONFIG_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Utility.hpp" - -struct Config -{ - static void Initialize(); - - static void SetUsingConsole(bool value); - static bool GetUsingConsole(); - - static void SetLogToFile(bool value); - static bool GetLogToFile(); - - static Utility::ConfigReader Configuration; - -private: - static bool using_console; - static bool log_to_file; -}; - -#endif \ No newline at end of file diff --git a/include/Cookies.hpp b/include/Cookies.hpp new file mode 100644 index 0000000..0f61249 --- /dev/null +++ b/include/Cookies.hpp @@ -0,0 +1,100 @@ +// https://github.com/mfichman/http + +#pragma once + +#include + +namespace std::net +{ + class Cookie + { + public: + Cookie(const std::string& text); + + Cookie() : m_httpOnly(false), m_secure(false) + { + } + + const std::string& GetName() const + { + return m_name; + } + + const std::string& GetValue() const + { + return m_value; + } + + const std::string& GetPath() const + { + return m_path; + } + + bool IsHttpOnly() const + { + return m_httpOnly; + } + + bool IsSecure() const + { + return m_secure; + } + + void SetName(const std::string& name) + { + m_name = name; + } + + void SetValue(const std::string& value) + { + m_value = value; + } + + void SetPath(const std::string& path) + { + m_path = path; + } + + void SetHttpOnly(bool httpOnly) + { + m_httpOnly = httpOnly; + } + + void SetSecure(bool secure) + { + m_secure = secure; + } + + private: + std::string m_name; + std::string m_value; + std::string m_path; + bool m_httpOnly; + bool m_secure; + }; + + class Cookies + { + public: + const Cookie operator[](const std::string &name) const; + + std::map::const_iterator begin() const + { + return m_cookie.begin(); + } + + std::map::const_iterator end() const + { + return m_cookie.end(); + } + + void SetCookie(Cookie const& cookie); + + static const std::string HOST; + static const std::string CONTENT_LENGTH; + static const std::string ACCEPT_ENCODING; + static const std::string CONNECTION; + private: + std::map m_cookie; + }; +} \ No newline at end of file diff --git a/include/Defs.hpp b/include/Defs.hpp deleted file mode 100644 index cca3cb3..0000000 --- a/include/Defs.hpp +++ /dev/null @@ -1,256 +0,0 @@ -#ifndef DEFS_HPP -#define DEFS_HPP - -#ifdef _MSC_VER -#pragma once -#define WIN32_LEAN_AND_MEAN -#define _WINSOCKAPI_ -#define _CRT_SECURE_NO_DEPRECATE -#pragma comment(lib, "ws2_32.lib") -#include -#include -#include - -#undef GetBinaryType -#undef GetShortPathName -#undef GetLongPathName -#undef GetEnvironmentStrings -#undef SetEnvironmentStrings -#undef FreeEnvironmentStrings -#undef FormatMessage -#undef EncryptFile -#undef DecryptFile -#undef CreateMutex -#undef OpenMutex -#undef CreateEvent -#undef OpenEvent -#undef CreateSemaphore -#undef OpenSemaphore -#undef LoadLibrary -#undef GetModuleFileName -#undef CreateProcess -#undef GetCommandLine -#undef GetEnvironmentVariable -#undef SetEnvironmentVariable -#undef ExpandEnvironmentStrings -#undef OutputDebugString -#undef FindResource -#undef UpdateResource -#undef FindAtom -#undef AddAtom -#undef GetSystemDirectory -#undef GetTempPath -#undef GetTempFileName -#undef SetCurrentDirectory -#undef GetCurrentDirectory -#undef CreateDirectory -#undef RemoveDirectory -#undef CreateFile -#undef DeleteFile -#undef SearchPath -#undef CopyFile -#undef MoveFile -#undef ReplaceFile -#undef GetComputerName -#undef SetComputerName -#undef GetUserName -#undef LogonUser -#undef GetVersion -#undef GetObject -#undef SendMessage - -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int int32; -typedef unsigned int uint32; -typedef signed __int64 int64; -typedef unsigned __int64 uint64; - -#ifdef _WIN64 -typedef signed __int64 int_ptr; -typedef unsigned __int64 uint_ptr; -#else -typedef signed long int_ptr; -typedef unsigned long uint_ptr; -#endif // win64 - -#elif defined(__GNUC__) || defined(__clang__) -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int int32; -typedef unsigned int uint32; - -#ifdef _WIN64 -typedef signed long long int_ptr, int64; -typedef unsigned long long uint_ptr, uint64; -#else -typedef signed long int_ptr; -typedef unsigned long uint_ptr; - -#ifdef __LP64__ -typedef signed long int64; -typedef unsigned long uint64; -#else -typedef signed long long int64; -typedef unsigned long long uint64; -#endif // __LP64__ - -#endif // win64 - -#elif defined(__DECCXX) - -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int int32; -typedef unsigned int uint32; -typedef signed __int64 int64; -typedef unsigned __int64 uint64; - -#ifdef __VMS -#ifdef __32BITS -typedef signed long int_ptr; -typedef unsigned long uint_ptr; -#else -typedef signed __int64 int_ptr; -typedef unsigned __int64 uint_ptr; -#endif // __32BITS -#else -typedef signed long int_ptr; -typedef unsigned long uint_ptr -#endif // __VMS - -#elif defined(__HP_aCC) - -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int int32; -typedef unsigned int uint32; -typedef signed long int_ptr; -typedef unsigned long uint_ptr; - -#ifdef __LP64__ -typedef signed long int64; -typedef unsigned long uint64; -#else -typedef signed long long int64; -typedef unsigned long long uint64; -#endif // __LP64__ - -#elif defined(__SUNPRO_CC) - -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int int32; -typedef unsigned int uint32; -typedef signed long int_ptr; -typedef unsigned long uint_otr - -#ifdef __sparcv9 -typedef signed long int64; -typedef unsigned long uint64; -#else -typedef signed long long int64; -typedef unsigned long long uint64; -#endif // __sparcv9 - -#elif defined(__IBMCPP__) - -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int int32; -typedef unsigned int uint32; -typedef signed long int_ptr; -typedef unsigned long uint_ptr; - -#ifdef __64BIT__ -typedef signed long int64; -typedef unsigned long uint64; -#else -typedef signed long long int64; -typedef unsigned long long uint64; -#endif // __64BIT__ - -#elif defined(__sgi) - -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int int32; -typedef unsigned int uint32; -typedef signed long int_ptr; -typedef unsigned long uint_ptr; - -#if _MIPS_SZLONG == 64 -typedef signed long int64; -typedef unsigned long uint64; -#else -typedef signed long long int64; -typedef unsigned long long uint64; -#endif // _MIPS_SZLONG - -#elif defined(_DIAB_TOOL) - -typedef signed char int8, sbyte; -typedef unsigned char uint8, byte; -typedef signed short int16; -typedef unsigned short uint16; -typedef signed int in32; -typedef unsigned int uint32; -typedef signed long int_ptr; -typedef unsigned long uint_ptr; -typedef signed long long int64; -typedef unsigned long long uint64; - -#endif // compiler data type defenitions - -typedef long long longlong; - -const uint16 default_client_port = 60250; -const uint16 default_server_port = 61250; - -enum DistributionType -{ - All = 1, // Others and Server - AllAndMe, // Other, Server and the user sending the message - Server, - Others, - ID, -}; - -enum ConnectionCode -{ - Accept, - Reject, - Close -}; - -enum InternalTags -{ - ConnectTag = 254, - DisconnectTag = 255, -}; - -#define IS_HANDSHAKE(name) name.subject == 1 || (name.tag == DisconnectTag || name.tag == ConnectTag || name.tag == Accept || name.tag == Close || name.tag == Reject) - -#ifdef __linux__ -#include -#include -#include -#include -void closesocket(int socket) { close(socket); } -#endif - -#endif // DEFS_HPP \ No newline at end of file diff --git a/include/Enums.hpp b/include/Enums.hpp new file mode 100644 index 0000000..ef9b48d --- /dev/null +++ b/include/Enums.hpp @@ -0,0 +1,171 @@ +#pragma once + +#undef DELETE + +namespace std::net +{ + enum class SocketParam + { + CanRead, + CanWrite, + HasError, + }; + + enum class SocketReturn + { + Yes, + No, + EncounteredError, + }; + + enum class SocketErrors + { + SE_SOCKET_ERROR = -1, + SE_NO_ERROR, + SE_EINTR, + SE_EBADF, + SE_EACCES, + SE_EFAULT, + SE_EINVAL, + SE_EMFILE, + SE_EWOULDBLOCK, + SE_EINPROGRESS, + SE_EALREADY, + SE_ENOTSOCK, + SE_EDESTADDRREQ, + SE_EMSGSIZE, + SE_EPROTOTYPE, + SE_ENOPROTOOPT, + SE_EPROTONOSUPPORT, + SE_ESOCKTNOSUPPORT, + SE_EOPNOTSUPP, + SE_EPFNOSUPPORT, + SE_EAFNOSUPPORT, + SE_EADDRINUSE, + SE_EADDRNOTAVAIL, + SE_ENETDOWN, + SE_ENETUNREACH, + SE_ENETRESET, + SE_ECONNABORTED, + SE_ECONNRESET, + SE_ENOBUFS, + SE_EISCONN, + SE_ENOTCONN, + SE_ESHUTDOWN, + SE_ETOOMANYREFS, + SE_ETIMEDOUT, + SE_ECONNREFUSED, + SE_ELOOP, + SE_ENAMETOOLONG, + SE_EHOSTDOWN, + SE_EHOSTUNREACH, + SE_ENOTEMPTY, + SE_EPROCLIM, + SE_EUSERS, + SE_EDQUOT, + SE_ESTALE, + SE_EREMOTE, + SE_EDISCON, + SE_SYSNOTREADY, + SE_VERNOTSUPPORTED, + SE_NOTINITIALISED, + SE_HOST_NOT_FOUND, + SE_TRY_AGAIN, + SE_NO_RECOVERY, + SE_NO_DATA, + SE_UDP_ERR_PORT_UNREACH, + SE_ADDRFAMILY, + SE_SYSTEM, + SE_NODEV, + SE_GET_LAST_ERROR_CODE, + }; + + enum class SocketType + { + Unknown = -1, + Datagram = 2, + Streaming = 1, + }; + + enum class SocketProtocol + { + IPv4 = 2, // AF_INET + IPv6 = 23 // AF_INET6 + }; + + enum class SocketReceiveFlags + { + None = 0, + Peek = 2, + WaitAll = 0x100, + }; + + enum class SocketWaitConditions + { + WaitForRead, + WaitForWrite, + WaitForReadOrWrite, + }; + + enum class SocketConnectionState + { + NotConnected, + Connected, + ConnectionError, + }; + + enum class HttpStatus + { + INVALID_CODE = 0, + CONTINUE = 100, + SWITCHING_PROTOCOLS = 101, + OK = 200, + CREATED = 201, + ACCEPTED = 202, + NON_AUTHORITATIVE_INFO = 203, + NO_CONTENT = 204, + RESET_CONTENT = 205, + PARTIAL_CONTENT = 206, + MULTIPLE_CHOICES = 300, + MOVED_PERMANENTLY = 301, + FOUND = 302, + SEE_OTHER = 303, + NOT_MODIFIED = 304, + USE_PROXY = 305, + TEMPORARY_REDIRECT = 307, + BAD_REQUEST = 400, + UNAUTHORIZED = 401, + PAYMENT_REQUIRED = 402, + FORBIDDEN = 403, + NOT_FOUND = 404, + METHOD_NOT_ALLOWED = 405, + NOT_ACCEPTABLE = 406, + PROXY_AUTHENTICATION_REQUIRED = 407, + REQUEST_TIMEOUT = 408, + CONFLICT = 409, + GONE = 410, + LENGTH_REQUIRED = 411, + PRECONDITION_FAILED = 412, + REQUEST_ENTITY_TOO_LARGE = 413, + UNSUPPORTED_MEDIA_TYPE = 415, + REQUESTED_RANGE_NOT_SATISFIABLE = 416, + EXPECTATION_FAILED = 417, + INTERNAL_SERVER_ERROR = 500, + NOT_IMPLEMENTED = 501, + BAD_GATEWAY = 502, + SERVICE_UNAVAILABLE = 503, + GATEWAY_TIMEOUT = 504, + VERSION_NOT_SUPPORTED = 505, + }; + + enum class Method + { + GET, + HEAD, + POST, + PUT, + DELETE, + TRACE, + CONNECT, + }; +} \ No newline at end of file diff --git a/include/Handshake.hpp b/include/Handshake.hpp deleted file mode 100644 index 14125e6..0000000 --- a/include/Handshake.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef HANDSHAKE_HPP -#define HANDSHAKE_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include "NetworkMessage.hpp" - -#include - -struct Handshake -{ - Handshake(); - Handshake(uint16 id, byte con_code, byte distribution_mode); - ~Handshake(); - - static const std::vector &EncodeHandshake(const Handshake &handshake); - static Handshake &DecodeHandshake(const std::vector &bytes); - static const NetworkMessage &HandshakeToNetworkMessage(const Handshake &handshake); - static const Handshake &NetworkMessageToHandshake(const NetworkMessage &message); - - uint16 id; - byte con_code; - byte distribution_mode; -}; - -#endif diff --git a/include/Headers.hpp b/include/Headers.hpp new file mode 100644 index 0000000..1400b6a --- /dev/null +++ b/include/Headers.hpp @@ -0,0 +1,33 @@ +// https://github.com/mfichman/http + +#pragma once + +#include + +namespace std::net +{ + class Headers + { + public: + const std::string operator[](const std::string &name) const; + + std::multimap::const_iterator begin() const + { + return m_header.begin(); + } + + std::multimap::const_iterator end() const + { + return m_header.end(); + } + + void AddHeader(std::string const& name, std::string const& value); + + static std::string const HOST; + static std::string const CONTENT_LENGTH; + static std::string const ACCEPT_ENCODING; + static std::string const CONNECTION; + private: + std::multimap m_header; +}; +} \ No newline at end of file diff --git a/include/Http.hpp b/include/Http.hpp new file mode 100644 index 0000000..e983549 --- /dev/null +++ b/include/Http.hpp @@ -0,0 +1,20 @@ +// https://github.com/mfichman/http + +#pragma once + +#include "Response.hpp" +#include "Request.hpp" + +namespace std::net +{ + class Http + { + public: + static Response Get(std::string const& path, std::string const& data = ""); + static Response Post(std::string const& path, std::string const& data = ""); + + private: + static Response Send(Request const& request); + static std::string Str(Request const& request); + }; +} \ No newline at end of file diff --git a/include/IPAddress.hpp b/include/IPAddress.hpp new file mode 100644 index 0000000..dcb1a03 --- /dev/null +++ b/include/IPAddress.hpp @@ -0,0 +1,108 @@ +#pragma once + +#include +#include +#include +#include + +#include "Net.hpp" + +namespace std::net +{ + class IPAddress + { + public: + inline IPAddress(const IPAddress &addr, uint16_t port) + : m_address(addr.ToInteger()) + , m_valid(true) + , m_port(port) + { + } + + inline IPAddress() + : m_address(0) + , m_valid(false) + , m_port(DEFAULT_SERVER_PORT) + { + } + + inline IPAddress(const std::string& address, uint16_t port = DEFAULT_SERVER_PORT) + : m_address(0) + , m_valid(false) + , m_port(port) + { + Resolve(address); + } + + inline IPAddress(const char* address, uint16_t port = DEFAULT_SERVER_PORT) + : m_address(0) + , m_valid(false) + , m_port(port) + { + Resolve(address); + } + + inline IPAddress(uint8_t byte0, uint8_t byte1, uint8_t byte2, uint8_t byte3, uint16_t port = DEFAULT_SERVER_PORT) + : m_address(htonl((byte0 << 24) | (byte1 << 16) | (byte2 << 8) | byte3)) + , m_valid(true) + , m_port(port) + { + } + + inline explicit IPAddress(uint32_t address, uint16_t port = DEFAULT_SERVER_PORT) + : m_address(htonl(address)) + , m_valid(true) + , m_port(port) + { + } + + std::string ToString() const; + inline uint32_t ToInteger() const { return ntohl(m_address); } + inline uint16_t GetPort() const { return m_port; } + + static const IPAddress None; + static const IPAddress Any; + static const IPAddress LocalHost; + static const IPAddress Broadcast; + + inline sockaddr_in ToCAddr() const + { + sockaddr_in addr; + std::memset(&addr, 0, sizeof(addr)); + addr.sin_addr.s_addr = htonl(ToInteger()); + addr.sin_family = AF_INET; + addr.sin_port = htons(GetPort()); + + return addr; + } + + private: + + friend bool operator <(const IPAddress& left, const IPAddress& right); + + void Resolve(const std::string& address); + + private: + uint32_t m_address; + bool m_valid; + uint16_t m_port; + }; + + inline bool operator ==(const IPAddress& left, const IPAddress& right) { return !(left < right) && !(right < left); } + inline bool operator !=(const IPAddress& left, const IPAddress& right) { return !(left == right); } + inline bool operator <(const IPAddress& left, const IPAddress& right) { return std::make_pair(left.m_valid, left.m_address) < std::make_pair(right.m_valid, right.m_address); } + inline bool operator >(const IPAddress& left, const IPAddress& right) { return right < left; } + inline bool operator <=(const IPAddress& left, const IPAddress& right) { return !(right < left); } + inline bool operator >=(const IPAddress& left, const IPAddress& right) { return !(left < right); } + + inline std::istream& operator >>(std::istream& stream, IPAddress& address) + { + std::string str; + stream >> str; + address = IPAddress(str); + + return stream; + } + + inline std::ostream& operator <<(std::ostream& stream, const IPAddress& address) { return stream << address.ToString(); } +} \ No newline at end of file diff --git a/include/ISocket.hpp b/include/ISocket.hpp new file mode 100644 index 0000000..5dc44fc --- /dev/null +++ b/include/ISocket.hpp @@ -0,0 +1,74 @@ +#pragma once + +#include +#include +#include + +#include "Net.hpp" +#include "IPAddress.hpp" +#include "Enums.hpp" + +namespace std::net +{ + class Socket; + + class ISocket + { + public: + inline ISocket() + : m_socketType(SocketType::Unknown) + , m_protocol(SocketProtocol::IPv4) + { + } + + inline ISocket(SocketType InSocketType, SocketProtocol protocol = SocketProtocol::IPv4) + : m_socketType(InSocketType) + , m_protocol(protocol) + { + } + + inline virtual ~ISocket() + { + } + + virtual bool Close() = 0; + virtual bool Bind(const IPAddress &addr) = 0; + virtual bool Connect(const IPAddress& addr) = 0; + virtual bool Listen() = 0; + virtual bool WaitForPendingConnection(bool& hasPendingConnection, std::chrono::milliseconds t) = 0; + virtual bool HasPendingData(uint32_t& pendingDataSize) = 0; + virtual std::unique_ptr Accept() = 0; + virtual bool SendTo(const uint8_t* data, int32_t count, int32_t& sent, const IPAddress& addrDest) = 0; + virtual bool Send(const uint8_t* data, int32_t count, int32_t& sent) = 0; + virtual bool RecvFrom(uint8_t* data, int32_t size, int32_t& read, IPAddress& srcAddr, SocketReceiveFlags flags = SocketReceiveFlags::None) = 0; + virtual bool Recv(uint8_t* data, int32_t size, int32_t& read, SocketReceiveFlags flags = SocketReceiveFlags::None) = 0; + virtual bool Wait(SocketWaitConditions cond, std::chrono::milliseconds t) = 0; + virtual SocketConnectionState GetConnectionState() = 0; + virtual void GetAddress(IPAddress& outAddr) = 0; + virtual bool GetPeerAddress(IPAddress& outAddr) = 0; + virtual bool SetNonBlocking(bool isNonBlocking = true) = 0; + virtual bool JoinMulticastGroup(const IPAddress& addrStr) = 0; + virtual bool LeaveMulticastGroup(const IPAddress& addrStr) = 0; + virtual bool SetMulticastLoopback(bool loopback) = 0; + virtual bool SetMulticastTtl(uint8_t timeToLive) = 0; + virtual bool SetReuseAddr(bool allowReuse = true) = 0; + virtual bool SetLinger(bool shouldLinger = true, int32_t t = 0) = 0; + virtual bool SetSendBufferSize(int32_t size, int32_t& newSize) = 0; + virtual bool SetReceiveBufferSize(int32_t size, int32_t& newSize) = 0; + virtual uint32_t GetPort() = 0; + + inline SocketType GetSocketType() const + { + return m_socketType; + } + + inline SocketProtocol GetSocketProtocol() const + { + return m_protocol; + } + + private: + const SocketType m_socketType; + const SocketProtocol m_protocol; + }; +} \ No newline at end of file diff --git a/include/Init.hpp b/include/Init.hpp index af477b4..0d5eb43 100644 --- a/include/Init.hpp +++ b/include/Init.hpp @@ -1,25 +1,40 @@ -#ifndef INIT_HPP -#define INIT_HPP +#pragma once #ifdef _MSC_VER - #pragma once -#endif -#include "Defs.hpp" + #include + #include + namespace std::net + { + namespace priv + { + static WSADATA WsaData; + static bool Initialized; + } -struct Initialization -{ - static bool Initialize(); + inline static bool Initialize() + { + if (priv::Initialized) return true; + return (priv::Initialized = WSAStartup(MAKEWORD(2, 2), &priv::WsaData)) == 0; + } -#ifdef _MSC_VER - const WSADATA &GetData(); -#endif + inline static void Cleanup() + { + if (priv::Initialized) + { + WSACleanup(); + priv::Initialized = false; + } + } + } -private: -#ifdef _MSC_VER - static WSADATA wsa_data; -#endif -}; +#else + + namespace std::net + { + inline static bool Initialize() { return true; } + inline static void Cleanup() { } + } #endif \ No newline at end of file diff --git a/include/Net.hpp b/include/Net.hpp new file mode 100644 index 0000000..d06f6dd --- /dev/null +++ b/include/Net.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include + +#ifdef _MSC_VER + #include + #include + #undef SendMessage + #undef SetPort + +#define poll WSAPoll +#define ioctl ioctlsocket + + +#else + #include + #include + #include + #include + #include + #include + #include + #include + + #define SOCKET_ERROR -1 + #define NO_ERROR 0 + #define INVALID_SOCKET NO_ERROR + + #define SOCKET int + #define closesocket close + #define ioctlsocket ioctl + + int closesocket(SOCKET soc) + { + return close(soc); + } + +#endif + +#define DEFAULT_SERVER_PORT 61250 diff --git a/include/NetworkBuffer.hpp b/include/NetworkBuffer.hpp deleted file mode 100644 index 1df0170..0000000 --- a/include/NetworkBuffer.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef NETWORK_BUFFER_HPP -#define NETWORK_BUFFER_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include "Utility.hpp" - -#include - -struct NetworkBuffer -{ - NetworkBuffer(); - ~NetworkBuffer(); - - std::vector header; // size must always be sizeof(int32) - std::vector body; - - bool valid = false; -}; - -#endif \ No newline at end of file diff --git a/include/NetworkMessage.hpp b/include/NetworkMessage.hpp deleted file mode 100644 index 7b6cc27..0000000 --- a/include/NetworkMessage.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef NETWORK_MESSAGE_HPP -#define NETWORK_MESSAGE_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include "NetworkBuffer.hpp" - -struct NetworkMessage -{ - NetworkMessage(); - NetworkMessage(const NetworkBuffer &buffer); - NetworkMessage(uint16 sender, byte distribution_mode, uint16 destination_id, byte tag, byte subject); - ~NetworkMessage(); - - static const NetworkBuffer &EncodeMessage(const NetworkMessage &message); - - static const NetworkMessage &DecodeMessage(const NetworkBuffer &buffer); - - uint16 sender = -2; - byte distribution_mode; - uint16 destination_id; - byte tag; - byte subject; - void *data; - - bool valid = false; -}; - -#endif diff --git a/include/Parse.hpp b/include/Parse.hpp new file mode 100644 index 0000000..a223772 --- /dev/null +++ b/include/Parse.hpp @@ -0,0 +1,67 @@ +// https://github.com/mfichman/http + +#pragma once + +#include + +namespace std::net +{ + template + class ParseResult + { + public: + T value; + char const* ch; + }; + + template + static ParseResult ParseUntil(char const* str, F func) + { + ParseResult result{}; + char const* ch = str; + for (; *ch && !func(*ch); ++ch) + { + } + + result.value = std::string(str, ch - str); + result.ch = ch; + return result; + } + + template + static inline ParseResult ParseWhile(char const* str, F func) + { + ParseResult result{}; + char const* ch = str; + for (; *ch && func(*ch); ++ch) + { + } + + result.value = std::string(str, ch - str); + result.ch = ch; + return result; + } + + static inline ParseResult ParseToken(char const* str) + { + auto token = ParseUntil(str, isspace); + token.ch = ParseWhile(token.ch, isspace).ch; + return token; + } + + static inline ParseResult parseCrLf(char const* str) + { + auto cr = ParseUntil(str, [](char ch) { return ch == '\r'; }); + if (*cr.ch == '\r') + cr.ch++; + return ParseWhile(cr.ch, [](char ch) + { + return isspace(ch) && ch != '\r'; + }); + } + + static inline ParseResult ParseWhitespace(char const* str) + { + return ParseWhile(str, isspace); + } +} \ No newline at end of file diff --git a/include/PluginManager.hpp b/include/PluginManager.hpp deleted file mode 100644 index 73cc20b..0000000 --- a/include/PluginManager.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PLUGIN_MANAGER_HPP -#define PLUGIN_MANAGER_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -struct PluginManager -{ - -}; - -#endif diff --git a/include/Request.hpp b/include/Request.hpp new file mode 100644 index 0000000..842df07 --- /dev/null +++ b/include/Request.hpp @@ -0,0 +1,52 @@ +// https://github.com/mfichman/http + +#pragma once + +#include "Uri.hpp" +#include "Headers.hpp" +#include "Enums.hpp" + +namespace std::net +{ + class Request + { + public: + Method GetMethod() const + { + return m_method; + } + + const Uri& GetUri() const + { + return m_uri; + } + + const std::string& GetPath() const + { + return m_uri.GetPath(); + } + + const std::string& GetData() const + { + return m_data; + } + + const std::string GetHeaderElement(const std::string& name) const; + + const Headers& GetHeaders() const + { + return m_headers; + } + + void SetMethod(Method method); + void SetUri(const Uri& path); + void SetData(const std::string& data); + void AddHeader(const std::string& name, const std::string& value); + + private: + Method m_method = Method::GET; + Uri m_uri; + std::string m_data; + Headers m_headers; + }; +} \ No newline at end of file diff --git a/include/Response.hpp b/include/Response.hpp new file mode 100644 index 0000000..966e5e0 --- /dev/null +++ b/include/Response.hpp @@ -0,0 +1,43 @@ +// https://github.com/mfichman/http + +#pragma once + +#include "Headers.hpp" +#include "Cookies.hpp" +#include "Enums.hpp" + +#include + +namespace std::net +{ + class Response + { + public: + Response(const std::string& text); + Response() {}; + + HttpStatus GetStatus() const + { + return m_status; + } + + const std::string& daGetDatata() const + { + return m_data; + } + + const std::string GetHeader(const std::string& name) const; + const Cookie GetCookie(const std::string& name) const; + + void SetStatus(HttpStatus status); + void SetData(const std::string& data); + void SetHeader(const std::string& name, const std::string& value); + void SetCookie(const Cookie& cookie); + + private: + HttpStatus m_status = HttpStatus::INVALID_CODE; + std::string m_data; + Headers m_headers; + Cookies m_cookies; + }; +} \ No newline at end of file diff --git a/include/SecureSocket.hpp b/include/SecureSocket.hpp new file mode 100644 index 0000000..58cfd52 --- /dev/null +++ b/include/SecureSocket.hpp @@ -0,0 +1,43 @@ +#pragma once + +#include "Socket.hpp" + +//#include +//#include +//#include + +namespace std::net +{ + class SecureSocket + { + public: + SecureSocket(); + + bool Connect(const IPAddress& addr); + bool Close() const; + bool HasPendingData(uint32_t& pendingDataSize) const; + bool Send(uint8_t* data, int32_t count, int32_t &sent, int flags = 0); // Execute 1 write() syscall + bool Recv(uint8_t* data, int32_t count, int32_t &read, int flags = 0); // Execte 1 read() syscall + bool Wait(SocketWaitConditions cond, std::chrono::milliseconds t) const; + SocketConnectionState GetConnectionState() const; + void GetAddress(IPAddress& outAddr) const; + int32_t GetPort() const; + + void UseCertificateFile(std::string const& path); + void UsePrivateKeyFile(std::string const& path); + + private: + bool SendRaw(uint8_t* buf, size_t len, int flags = 0); + bool SendFromBio(int flags = 0); + bool RecvToBio(int flags = 0); + void HandleReturn(size_t ret); + + std::unique_ptr m_socket; + + //SSL_CTX* m_context; + //SSL* m_conn; + //BIO* m_in; + //BIO* m_out; + bool m_eof; + }; +} \ No newline at end of file diff --git a/include/Serializer.hpp b/include/Serializer.hpp deleted file mode 100644 index 8bec1af..0000000 --- a/include/Serializer.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SERIALIZER_HPP -#define SERIALIZER_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include - -struct Serializer -{ - template static const std::vector &to_bytes(const T &object); - template static const T& from_bytes(const std::vector &bytes, T& object); -}; - -#endif \ No newline at end of file diff --git a/include/Socket.hpp b/include/Socket.hpp new file mode 100644 index 0000000..34c98b4 --- /dev/null +++ b/include/Socket.hpp @@ -0,0 +1,84 @@ +#pragma once + +#include "ISocket.hpp" +#include "Enums.hpp" + +namespace std::net +{ + class Socket : public ISocket + { + public: + inline Socket(SocketType socketType, SocketProtocol protocol = SocketProtocol::IPv4) + : ISocket(socketType, protocol) + { + init(); + } + + inline Socket(SOCKET newSocket, SocketType socketType, SocketProtocol protocol = SocketProtocol::IPv4) + : ISocket(socketType, protocol) + , m_socket(newSocket) + { + init(); + } + + virtual ~Socket() { Close(); } + + public: + + // ISocket overrides + + virtual bool Close() override; + virtual bool Bind(const IPAddress &addr) override; + virtual bool Connect(const IPAddress& addr) override; + inline virtual bool Listen() override { return listen(m_socket, SOMAXCONN) == 0; } + virtual bool WaitForPendingConnection(bool& hasPendingConnection, std::chrono::milliseconds t) override; + virtual bool HasPendingData(uint32_t& pendingDataSize) override; + virtual std::unique_ptr Accept() override; + virtual bool SendTo(const uint8_t* data, int32_t count, int32_t& sent, const IPAddress& addrDest) override; + virtual bool Send(const uint8_t* data, int32_t count, int32_t& sent) override; + virtual bool RecvFrom(uint8_t* data, int32_t size, int32_t& read, IPAddress& srcAddr, SocketReceiveFlags flags = SocketReceiveFlags::None) override; + virtual bool Recv(uint8_t* data, int32_t size, int32_t& read, SocketReceiveFlags flags = SocketReceiveFlags::None) override; + virtual bool Wait(SocketWaitConditions cond, std::chrono::milliseconds t) override; + virtual SocketConnectionState GetConnectionState() override; + virtual void GetAddress(IPAddress& outAddr) override; + virtual bool GetPeerAddress(IPAddress& outAddr) override; + virtual bool SetNonBlocking(bool isNonBlocking = true) override; + + virtual bool JoinMulticastGroup(const IPAddress& addrStr) override; + virtual bool LeaveMulticastGroup(const IPAddress& addrStr) override; + inline virtual bool SetMulticastLoopback(bool loopback) override { return (setsockopt(m_socket, IPPROTO_IP, IP_MULTICAST_LOOP, (char*)&loopback, sizeof(loopback)) == 0); } + inline virtual bool SetMulticastTtl(uint8_t timeToLive) override { return (setsockopt(m_socket, IPPROTO_IP, IP_MULTICAST_TTL, (char*)&timeToLive, sizeof(timeToLive)) == 0); } + inline virtual bool SetReuseAddr(bool allowReuse = true) override + { + int param = allowReuse ? 1 : 0; + return setsockopt(m_socket, SOL_SOCKET, SO_REUSEADDR, (char*)¶m, sizeof(param)) == 0; + } + + virtual bool SetLinger(bool shouldLinger = true, int32_t t = 0) override; + virtual bool SetSendBufferSize(int32_t size, int32_t& newSize) override; + virtual bool SetReceiveBufferSize(int32_t size, int32_t& newSize) override; + virtual uint32_t GetPort() override; + + SOCKET GetNativeSocket() + { + return m_socket; + } + + private: + void init(); + + virtual SocketReturn HasState(SocketParam state, std::chrono::milliseconds t = std::chrono::milliseconds(0)); + virtual SocketErrors TranslateErrorCode(int32_t code); + virtual int TranslateFlags(SocketReceiveFlags flags); + + inline void UpdateActivity() + { + m_lastActivityTime = std::chrono::system_clock::now().time_since_epoch().count(); + } + + private: + SOCKET m_socket = INVALID_SOCKET; + + long long m_lastActivityTime = 0; + }; +} \ No newline at end of file diff --git a/include/TcpClient.hpp b/include/TcpClient.hpp index 785d454..873888c 100644 --- a/include/TcpClient.hpp +++ b/include/TcpClient.hpp @@ -1,79 +1,33 @@ -#ifndef TCP_CLIENT_HPP -#define TCP_CLIENT_HPP - -#include "Defs.hpp" -#include "NetworkMessage.hpp" - -#include -#include -#include -#include - -#ifdef _MSC_VER #pragma once -#endif -struct TcpClient +#include "Socket.hpp" + +namespace std::net { - TcpClient(const SOCKET &socket); - TcpClient(const std::string &ip); - TcpClient(const std::string &ip, uint16 port = default_client_port); - ~TcpClient(); + class TcpConnectionHandler; +} - void Shutdown(); +namespace std::net +{ + class TcpClient + { + friend class std::net::TcpConnectionHandler; - const std::string &GetIP(); - void SetIP(const std::string &ip); + public: + TcpClient(Socket *soc); + TcpClient(SocketProtocol protocol = SocketProtocol::IPv4); - uint16 GetPort(); - void SetPort(uint16 port); + bool Connect(const IPAddress& addrStr); + bool Close() const; + bool HasPendingData(uint32_t& pendingDataSize) const; + bool Send(const uint8_t* data, int32_t count, int32_t& sent) const; + bool Recv(uint8_t* data, int32_t size, int32_t& read, SocketReceiveFlags flags = SocketReceiveFlags::None) const; + bool Wait(SocketWaitConditions cond, std::chrono::milliseconds t) const; + SocketConnectionState GetConnectionState() const; + void GetAddress(IPAddress& outAddr) const; + int32_t GetPort() const; - uint16 GetID(); - void SetID(uint16 id); - - bool Connect(); - - bool DataAvailable(int32 &size); - - //this method will receive the messages automaticaly and use the callback methods - void ReceiveMessages(); - - //this is a more manual method with no callbacks - const NetworkMessage &ReceiveMessage(); - - std::future SendMessage(const NetworkMessage &message); - bool SendBytes(const std::vector &bytes); - bool SendBytes(byte *bytes, uint32 lenght); - - void SetOnDisconnectCallback(std::function func); - void SetOnConnectCallback(std::function func); - void SetOnMessageCallback(std::function func); - - static const TcpClient &DefaultTcpClient(); - -private: - TcpClient(); - - const NetworkBuffer &receive_data_array(); - static void receive_data(TcpClient *client); - static bool send_network_message(const NetworkMessage &message, TcpClient *client); - static void close_connection(TcpClient *client); - - bool initialize(const std::string &ip, uint16 port = default_client_port); - - uint16 id = -2; - std::string ip; - uint16 port = 0; - bool initialized = false; - bool receive = false; - - std::function OnDisconnect; - std::function OnConnect; - std::function OnMessage; - - SOCKET tcp_socket = INVALID_SOCKET; - struct addrinfo *result = nullptr; - struct addrinfo hints; -}; - -#endif \ No newline at end of file + private: + std::unique_ptr m_socket; + }; +} \ No newline at end of file diff --git a/include/TcpListener.hpp b/include/TcpListener.hpp new file mode 100644 index 0000000..40fc198 --- /dev/null +++ b/include/TcpListener.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include +#include + +#include "Socket.hpp" + +namespace std::net +{ + class TcpConnectionHandler; +} + +namespace std::net +{ + class TcpClient; + + class TcpListener + { + friend class std::net::TcpConnectionHandler; + + public: + TcpListener(uint16_t port, std::chrono::milliseconds inSleepTime = std::chrono::milliseconds(1)); + TcpListener(Socket *InSocket, std::chrono::milliseconds inSleepTime = std::chrono::milliseconds(1)); + + TcpClient *AcceptClient(); + + private: + std::chrono::milliseconds m_sleepTime; + std::unique_ptr m_socket; + uint16_t m_port = 0; + }; +} \ No newline at end of file diff --git a/include/TcpServer.hpp b/include/TcpServer.hpp deleted file mode 100644 index 16f877e..0000000 --- a/include/TcpServer.hpp +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef TCP_SERVER_HPP -#define TCP_SERVER_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include "TcpClient.hpp" -#include "Handshake.hpp" - -#include - -struct TcpServer -{ - TcpServer(); - TcpServer(uint16 port = default_server_port); - ~TcpServer(); - - void Shutdown(); - - bool StartServer(bool accept_connections); // if accept_connections is false the user must call the funcion AcceptConnections() - void AcceptConnections(); - - bool SendMessage(const NetworkMessage &message); - - void RejectConnection(TcpClient &client); - void AcceptConnection(uint16 client); - - void CloseSocket(TcpClient &client); - void CloseSocket(uint16 id); - - uint16 GetMaxConnections(); - void SetMaxConnections(uint16 value); - - const TcpClient &GetClientByID(uint16 id); - - std::vector> OnMessageFunctions; // this is going to be used for plugins - -private: - static void process_client_messages(TcpServer *server, TcpClient &client); - static void accept_connections(TcpServer *server); - - void add_to_clients_list(TcpClient &client); - - uint16 allocate_id(); - - void shutdown_internal(); - - bool initialize(uint16 port = default_server_port); - - bool initialized = false; - bool running = false; - - uint16 max_connections = 0; - - std::vector clients; - - SOCKET server_tcp_socket = INVALID_SOCKET; - struct addrinfo *result = nullptr; - struct addrinfo hints; -}; - -#endif diff --git a/include/TcpSocketBuilder.hpp b/include/TcpSocketBuilder.hpp new file mode 100644 index 0000000..52aae6a --- /dev/null +++ b/include/TcpSocketBuilder.hpp @@ -0,0 +1,112 @@ +#pragma once + +#include "Enums.hpp" +#include "IPAddress.hpp" + +namespace std::net +{ + class Socket; + class TcpClient; + class TcpListener; + + class TcpSocketBuilder + { + public: + inline TcpSocketBuilder() + : m_blocking(false) + , m_bound(false) + , m_boundAddr(IPAddress::Any, 0) + , m_linger(false) + , m_lingerTimeout(0) + , m_listen(false) + , m_receiveBufferSize(0) + , m_reusable(false) + , m_sendBufferSize(0) + , m_socketProtocol(SocketProtocol::IPv4) + { + } + + inline TcpSocketBuilder AsBlocking() + { + m_blocking = true; + + return *this; + } + + inline TcpSocketBuilder AsNonBlocking() + { + m_blocking = false; + + return *this; + } + + inline TcpSocketBuilder AsReusable() + { + m_reusable = true; + + return *this; + } + + inline TcpSocketBuilder Bind(const IPAddress &addr) + { + m_boundAddr = addr; + m_bound = true; + + return *this; + } + + inline TcpSocketBuilder Lingering(int32_t Timeout) + { + m_linger = true; + m_lingerTimeout = Timeout; + + return *this; + } + + inline TcpSocketBuilder Listening() + { + m_listen = true; + + return *this; + } + + inline TcpSocketBuilder WithReceiveBufferSize(int32_t SizeInBytes) + { + m_receiveBufferSize = SizeInBytes; + + return *this; + } + + inline TcpSocketBuilder WithSendBufferSize(int32_t SizeInBytes) + { + m_sendBufferSize = SizeInBytes; + + return *this; + } + + inline TcpSocketBuilder Protocol(SocketProtocol prot) + { + m_socketProtocol = prot; + + return *this; + } + + public: + std::unique_ptr Build() const; + std::unique_ptr BuildClient() const; + std::unique_ptr BuildListener() const; + + private: + bool m_blocking; + bool m_bound; + IPAddress m_boundAddr; + bool m_linger; + int32_t m_lingerTimeout; + bool m_listen; + int32_t m_receiveBufferSize; + bool m_reusable; + int32_t m_sendBufferSize; + + SocketProtocol m_socketProtocol; + }; +} \ No newline at end of file diff --git a/include/UdpClient.hpp b/include/UdpClient.hpp deleted file mode 100644 index ea75fe4..0000000 --- a/include/UdpClient.hpp +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef UDP_CLIENT_HPP -#define UDP_CLIENT_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include "NetworkMessage.hpp" - -#include -#include -#include -#include - -struct UdpClient -{ - UdpClient(const SOCKET &socket); - UdpClient(const std::string &ip); - UdpClient(const std::string &ip, uint16 = default_client_port); - ~UdpClient(); - - void Shutdown(); - - const std::string &GetIP(); - void SetIP(const std::string &ip); - - uint16 GetPort(); - void SetPort(uint16 port); - - uint16 GetID(); - void SetID(uint16 id); - - void ReceiveMessages(); - - const NetworkMessage &ReceiveMessage(); - - std::future SendMessage(const NetworkMessage &message); - bool SendBytes(const std::vector &bytes); - bool SendBytes(byte *bytes, uint32 lenght); - -private: - const NetworkBuffer &receive_data_array(); - static void receive_data(UdpClient *client); - bool initialize(const std::string &ip, uint16 port = default_client_port); - - static bool send_network_message(const NetworkMessage &message, UdpClient *client); - - uint16 id = -2; - - std::string ip; - uint16 port = 0; - bool initialized = false; - bool receive = false; - - std::function OnDisconnect; - std::function OnConnect; - std::function OnMessage; - - SOCKET udp_socket = INVALID_SOCKET; -}; - -#endif diff --git a/include/UdpServer.hpp b/include/UdpServer.hpp deleted file mode 100644 index 7ab44b2..0000000 --- a/include/UdpServer.hpp +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef UDP_SERVER_HPP -#define UDP_SERVER_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include "UdpClient.hpp" - -#include -#include - -struct UdpServer -{ -private: - bool initialize(uint16 port = default_server_port); - - uint16 allocate_id(); - - void shutdown_internal(); - - bool initialized = false; - bool running = false; - - uint16 max_connections = 0; - - std::vector clients; - - SOCKET server_udp_socket = INVALID_SOCKET; - struct sockaddr_in server; -}; - -#endif \ No newline at end of file diff --git a/include/UdpSocket.hpp b/include/UdpSocket.hpp new file mode 100644 index 0000000..58a6a76 --- /dev/null +++ b/include/UdpSocket.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include "Socket.hpp" + +#include + +namespace std::net +{ + class UdpSocket + { + public: + UdpSocket(Socket *soc); + UdpSocket(SocketProtocol protocol = SocketProtocol::IPv4); + + bool Bind(const IPAddress &addr); + bool SendTo(const uint8_t* data, int32_t count, int32_t& sent, const IPAddress& addrDest); + bool RecvFrom(uint8_t* data, int32_t size, int32_t& read, IPAddress& srcAddr, SocketReceiveFlags flags = SocketReceiveFlags::None); + bool GetPeerAddress(IPAddress& outAddr); + bool JoinMulticastGroup(const IPAddress& addrStr); + bool LeaveMulticastGroup(const IPAddress& addrStr); + bool SetMulticastLoopback(bool loopback); + bool SetMulticastTtl(uint8_t timeToLive); + uint32_t GetPort(); + bool SetReuseAddr(bool allowReuse = true); + + private: + std::unique_ptr m_socket; + }; +} \ No newline at end of file diff --git a/include/UdpSocketBuilder.hpp b/include/UdpSocketBuilder.hpp new file mode 100644 index 0000000..513daed --- /dev/null +++ b/include/UdpSocketBuilder.hpp @@ -0,0 +1,152 @@ +#pragma once + +#include "UdpSocket.hpp" +#include "IPAddress.hpp" + +#include + +namespace std::net +{ + class UdpSocketBuilder + { + public: + UdpSocketBuilder() + : m_blocking(false) + , m_bound(false) + , m_boundEndpoint(IPAddress::Any, 0) + , m_multicastLoopback(false) + , m_multicastTtl(1) + , m_receiveBufferSize(0) + , m_reusable(false) + , m_sendBufferSize(0) + { } + + public: + UdpSocketBuilder AsBlocking() + { + m_blocking = true; + + return *this; + } + + UdpSocketBuilder AsNonBlocking() + { + m_blocking = false; + + return *this; + } + + UdpSocketBuilder AsReusable() + { + m_reusable = true; + + return *this; + } + + UdpSocketBuilder BoundToAddress(const IPAddress& addr) + { + m_boundEndpoint = IPAddress(addr); + m_bound = true; + + return *this; + } + + UdpSocketBuilder BoundToPort(uint16_t port) + { + m_boundEndpoint = IPAddress(m_boundEndpoint.ToInteger(), port); + m_bound = true; + + return *this; + } + + UdpSocketBuilder JoinedToGroup(const IPAddress& group_addr) + { + m_joinedGroups.emplace_back(group_addr); + + return *this; + } + + UdpSocketBuilder WithMulticastLoopback() + { + m_multicastLoopback = true; + + return *this; + } + + UdpSocketBuilder WithMulticastTtl(uint8_t time_to_live) + { + m_multicastTtl = time_to_live; + + return *this; + } + + UdpSocketBuilder WithReceiveBufferSize(uint32_t size) + { + m_receiveBufferSize = size; + + return *this; + } + + UdpSocketBuilder WithSendBufferSize(uint32_t size) + { + m_sendBufferSize = size; + + return *this; + } + + public: + std::unique_ptr Build() const + { + std::unique_ptr soc = std::make_unique(SocketType::Datagram); + + if (soc) + { + bool Error = + !soc->SetNonBlocking(!m_blocking) || + !soc->SetReuseAddr(m_reusable); + + if (!Error) + Error = m_bound && !soc->Bind(m_boundEndpoint); + if (!Error) + Error = !soc->SetMulticastLoopback(m_multicastLoopback) || !soc->SetMulticastTtl(m_multicastTtl); + + if (!Error) + { + for (const auto& Group : m_joinedGroups) + { + if (!soc->JoinMulticastGroup(IPAddress(Group, 0))) + { + Error = true; + break; + } + } + } + + if (!Error) + { + int32_t out_new_size; + if (m_receiveBufferSize > 0) + soc->SetReceiveBufferSize(m_receiveBufferSize, out_new_size); + if (m_sendBufferSize > 0) + soc->SetSendBufferSize(m_sendBufferSize, out_new_size); + } + + if (Error) + throw inl::RuntimeException("Couldnt create socket"); // make parameter a string depending on the error + return std::make_unique(); + } + return std::unique_ptr(nullptr); + } + + private: + bool m_blocking; + bool m_bound; + IPAddress m_boundEndpoint; + std::vector m_joinedGroups; + bool m_multicastLoopback; + uint8_t m_multicastTtl; + uint32_t m_receiveBufferSize; + bool m_reusable; + uint32_t m_sendBufferSize; + }; +} \ No newline at end of file diff --git a/include/Uri.hpp b/include/Uri.hpp new file mode 100644 index 0000000..90a7126 --- /dev/null +++ b/include/Uri.hpp @@ -0,0 +1,78 @@ +// https://github.com/mfichman/http + +#pragma once + +#include + +namespace std::net +{ + class Authority + { + public: + Authority(const std::string& user, const std::string& host, uint16_t port); + Authority(); + + const std::string& GetUser() const + { + return m_user; + } + + const std::string& GetHost() const + { + return m_host; + } + + uint16_t GetPort() const + { + return m_port; + } + + void SetUser(const std::string& user); + void SetHost(const std::string& host); + void SetPort(uint16_t port); + private: + std::string m_user; + std::string m_host; + uint16_t m_port; + }; + + class Uri { + public: + Uri(const char* value); + Uri(const std::string& value); + Uri(); + + const std::string& GetScheme() const + { + return m_scheme; + } + + const Authority& GetAuthority() const + { + return m_authority; + } + + const std::string& GetPath() const + { + return m_path; + } + + const std::string& GetHost() const + { + return m_authority.GetHost(); + } + + uint16_t GetPort() const + { + return m_authority.GetPort(); + } + + void SetScheme(const std::string& scheme); + void SetAuthority(const Authority& authority); + void SetPath(const std::string& path); + private: + std::string m_scheme; + Authority m_authority; + std::string m_path; + }; +} \ No newline at end of file diff --git a/include/Util.hpp b/include/Util.hpp new file mode 100644 index 0000000..df27cd5 --- /dev/null +++ b/include/Util.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include +#include + +#include "Net.hpp" + +namespace std::net +{ + inline static std::vector Split(const std::string &str, const std::string &delimiter) + { + std::vector splited; + if (str.empty() && delimiter.empty()) + return std::vector(); + std::string::size_type lastPos = str.find_first_not_of(delimiter, 0); + std::string::size_type pos = str.find_first_of(delimiter, lastPos); + + while (std::string::npos != pos || std::string::npos != lastPos) + { + splited.push_back(str.substr(lastPos, pos - lastPos)); + lastPos = str.find_first_not_of(delimiter, pos); + pos = str.find_first_of(delimiter, lastPos); + } + return splited; + } + + sockaddr_in CreateAddress(uint32_t address, uint16_t port) + { + sockaddr_in addr; + std::memset(&addr, 0, sizeof(addr)); + addr.sin_addr.s_addr = htonl(address); + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + + return addr; + } +} \ No newline at end of file diff --git a/include/Utility.hpp b/include/Utility.hpp deleted file mode 100644 index 13759cd..0000000 --- a/include/Utility.hpp +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef UTILITY_HPP -#define UTILITY_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" - -#include -#include -#include - -struct Utility -{ - static void Delete(void *pointer); - static void DeleteArray(void *pointer); - - struct BitConverter - { - static const std::vector &ToBytes(uint8 number); - static uint8 ToUint8(const std::vector &bytes, uint16 start_index = 0); - - static const std::vector &ToBytes(uint16 number); - static uint16 ToUint16(const std::vector &bytes, uint16 start_index = 0); - - static const std::vector &ToBytes(uint32 number); - static uint32 ToUint32(const std::vector &bytes, uint16 start_index = 0); - - static const std::vector &ToBytes(uint64 number); - static uint64 ToUint64(const std::vector &bytes, uint16 start_index = 0); - - static const std::vector &ToBytes(int8 number); - static int8 ToInt8(const std::vector &bytes, uint16 start_index = 0); - - static const std::vector &ToBytes(int16 number); - static int16 ToInt16(const std::vector &bytes, uint16 start_index = 0); - - static const std::vector &ToBytes(int32 number); - static int32 ToInt32(const std::vector &bytes, uint16 start_index = 0); - - static const std::vector &ToBytes(int64 number); - static int64 ToInt64(const std::vector &bytes, uint16 start_index = 0); - }; - - struct StringConverter - { - static const std::string &ToString(bool value); - static const std::string &ToString(uint8 value); - static const std::string &ToString(uint16 value); - static const std::string &ToString(uint32 value); - static const std::string &ToString(uint64 value); - static const std::string &ToString(int8 value); - static const std::string &ToString(int16 value); - static const std::string &ToString(int32 value); - static const std::string &ToString(int64 value); - static const std::string &ToString(const std::vector &bytes); - - static uint8 ToUint8(const std::string &str); - static uint16 ToUint16(const std::string &str); - static uint32 ToUint32(const std::string &str); - static uint64 ToUint64(const std::string &str); - static int8 ToInt8(const std::string &str); - static int16 ToInt16(const std::string &str); - static int32 ToInt32(const std::string &str); - static int64 ToInt64(const std::string &str); - - static const std::vector &ToBytes(const std::string &str); - - static const std::string &ToString(const std::vector &bytes, uint16 start_index = 0, uint16 lenght = 0); - - static const std::string &Trim(std::string &str, char ch); - static std::vector Split(const std::string &str, const std::string &delimiter); - }; - - struct IPUtil - { - static bool ValidIPV4(const std::string &ip); - }; - - struct ConfigReader - { - void ReadConfig(const std::string &file_name); - void ReadNodes(); - - const std::string &operator[](const std::string &key); - - private: - std::map nodes; - std::string file_content; - }; -}; - -#endif \ No newline at end of file diff --git a/include/VoidNetClient.hpp b/include/VoidNetClient.hpp deleted file mode 100644 index 712fd8b..0000000 --- a/include/VoidNetClient.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef VOID_NET_HPP -#define VOID_NET_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "Defs.hpp" -#include "Init.hpp" -#include "TcpClient.hpp" -#include "NetworkBuffer.hpp" -#include "NetworkMessage.hpp" - -#include -#include - -struct VoidNetClientAPI -{ - static bool Connect(const std::string &ip, uint16 port = default_client_port); - static void Disconnect(); - - static void SendMessageToServer(byte tag, byte subject, void *data); - static void SendMessageToID(uint16 id, byte tag, byte subject, void *data); - static void SendMessageToOthers(byte tag, byte subject, void *data); - static void SendMessageToAll(byte tag, byte subject, void *data); - static void SendMessageToAllAndMe(byte tag, byte subject, void *data); - - static void SendMessage(byte distribution_mode, uint16 destination_id, byte tag, byte subject, void *data); - - static void Receive(); - -private: - static void receive_data(); - - static TcpClient tcp_client; - static uint16 id; -}; - -#endif diff --git a/include/VoidNetServer.hpp b/include/VoidNetServer.hpp deleted file mode 100644 index 8bd5b68..0000000 --- a/include/VoidNetServer.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef VOID_NET_SERVER_HPP -#define VOID_NET_SERVER_HPP - -#ifdef _MSC_VER -#pragma once -#endif - -#include "TcpServer.hpp" - -struct VoidNetServer -{ - void StartServer(uint16 port); - void StopServer(); -private: - TcpServer server; -}; - -#endif \ No newline at end of file diff --git a/src/Config.cpp b/src/Config.cpp deleted file mode 100644 index 960e3fe..0000000 --- a/src/Config.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "Config.hpp" - -#include - -void Config::Initialize() -{ - Configuration.ReadConfig("config.dat"); - Configuration.ReadNodes(); -} - -inline void Config::SetUsingConsole(bool value) -{ - using_console = value; -} - -inline bool Config::GetUsingConsole() -{ - return using_console; -} - -inline void Config::SetLogToFile(bool value) -{ - log_to_file = value; -} - -inline bool Config::GetLogToFile() -{ - return log_to_file; -} diff --git a/src/Cookies.cpp b/src/Cookies.cpp new file mode 100644 index 0000000..fdf9241 --- /dev/null +++ b/src/Cookies.cpp @@ -0,0 +1,84 @@ +// https://github.com/mfichman/http + +#include "Cookies.hpp" +#include "Parse.hpp" + +#include + +namespace std::net +{ + ParseResult ParseName(const char* str) + { + return ParseUntil(str, [](char ch) + { + return isspace(ch) || ch == '='; + }); + } + + ParseResult ParseValue(const char* str) + { + return ParseUntil(str, [](char ch) + { + return ch == ';' || ch == '='; + }); + } + + ParseResult ParseSeparator(const char* str) + { + if (*str) + { + assert(*str == ';' || *str == '='); + return ParseWhitespace(str + 1); + } + else + { + auto result = ParseResult{}; + result.ch = str; + return result; + } + } + + Cookie ParseCookie(const char* str) + { + auto name = ParseName(str); + auto ch = ParseSeparator(name.ch).ch; + auto value = ParseValue(ch); + ch = ParseSeparator(value.ch).ch; + + auto cookie = Cookie(); + cookie.SetName(name.value); + cookie.SetValue(value.value); + while (*ch) + { + auto flag = ParseValue(ch); + if (flag.value == "Path") + { + ch = ParseSeparator(flag.ch).ch; + flag = ParseValue(ch); + cookie.SetPath(flag.value); + } + else if (flag.value == "HttpOnly") + cookie.SetHttpOnly(true); + else if (flag.value == "Secure") + cookie.SetSecure(true); + ch = ParseSeparator(flag.ch).ch; + } + return cookie; + } + + Cookie::Cookie(const std::string& text) + { + *this = ParseCookie(text.c_str()); + } + + const Cookie Cookies::operator[](const std::string & name) const + { + auto i = m_cookie.find(name); + return (i == m_cookie.end()) ? Cookie() : i->second; + } + + void Cookies::SetCookie(const Cookie& cookie) + { + m_cookie[cookie.GetName()] = cookie; + } +} \ No newline at end of file diff --git a/src/Handshake.cpp b/src/Handshake.cpp deleted file mode 100644 index 9c3698d..0000000 --- a/src/Handshake.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "Handshake.hpp" -#include "Utility.hpp" - -Handshake::Handshake() -{ - id = -2; -} - -Handshake::Handshake(uint16 id, byte con_code, byte distribution_mode) -{ - this->id = id; - this->con_code = con_code; - this->distribution_mode = distribution_mode; -} - -Handshake::~Handshake() -{ -} - -const std::vector& Handshake::EncodeHandshake(const Handshake & handshake) -{ - std::vector handshake_bytes; - - std::vector id = Utility::BitConverter::ToBytes(handshake.id); - std::vector con_mode = Utility::BitConverter::ToBytes(handshake.con_code); - std::vector type = Utility::BitConverter::ToBytes(static_cast(1)); - - handshake_bytes.insert(handshake_bytes.begin(), type.begin(), type.end()); - handshake_bytes.insert(handshake_bytes.begin(), id.begin(), id.end()); - handshake_bytes.insert(handshake_bytes.begin(), con_mode.begin(), con_mode.end()); - - return handshake_bytes; -} - -Handshake & Handshake::DecodeHandshake(const std::vector& bytes) -{ - Handshake handshake; - - handshake.id = Utility::BitConverter::ToUint16(bytes, 1); - handshake.con_code = Utility::BitConverter::ToUint8(bytes, 3); - - return handshake; -} - -const NetworkMessage & Handshake::HandshakeToNetworkMessage(const Handshake & handshake) -{ - NetworkMessage message; - message.sender = handshake.id; - message.tag = handshake.con_code; - message.subject = 1; - return message; -} - -const Handshake & Handshake::NetworkMessageToHandshake(const NetworkMessage & message) -{ - Handshake handshake; - handshake.id = message.sender; - handshake.con_code = message.tag; - return handshake; -} diff --git a/src/Headers.cpp b/src/Headers.cpp new file mode 100644 index 0000000..01ba18f --- /dev/null +++ b/src/Headers.cpp @@ -0,0 +1,22 @@ +// https://github.com/mfichman/http + +#include "Headers.hpp" + +namespace std::net +{ + std::string const Headers::HOST("Host"); + std::string const Headers::CONTENT_LENGTH("Content-Length"); + std::string const Headers::ACCEPT_ENCODING("Accept-Encoding"); + std::string const Headers::CONNECTION("Connection"); + + const std::string Headers::operator[](const std::string & name) const + { + auto i = m_header.find(name); + return (i == m_header.end()) ? "" : i->second; + } + + void Headers::AddHeader(std::string const& name, std::string const& value) + { + m_header.emplace(name, value); + } +} \ No newline at end of file diff --git a/src/Http.cpp b/src/Http.cpp new file mode 100644 index 0000000..47c0f38 --- /dev/null +++ b/src/Http.cpp @@ -0,0 +1,120 @@ +// https://github.com/mfichman/http + +#include "Http.hpp" + +#include +#include +#include + +#include "Socket.hpp" +#include "SecureSocket.hpp" + +#undef DELETE + +namespace std::net +{ + Response Http::Send(Request const& request) + { + // Send an HTTP request. Auto-fill the content-length headers. + std::string string = Str(request); + + uint16_t port = 0; + std::unique_ptr socket; + std::unique_ptr secure_socket; + bool secure = false; + if (request.GetUri().GetScheme() == "https") + { + secure_socket.reset(new SecureSocket()); + port = 443; + secure = true; + } + else if (request.GetUri().GetScheme() == "http") + { + socket.reset(new Socket(SocketType::Streaming)); + port = 80; + } + else + assert(!"unknown http scheme"); + + if (request.GetUri().GetPort()) + port = request.GetUri().GetPort(); + + secure ? secure_socket->Connect(IPAddress(request.GetUri().GetHost(), port)) : socket->Connect(IPAddress(request.GetUri().GetHost(), port)); + int32_t sent; + secure ? secure_socket->Recv((uint8_t*)string.c_str(), string.size(), sent) : socket->Send((uint8_t*)string.c_str(), string.size(), sent); + + std::vector buffer(16384); // 16 KiB + std::stringstream ss; + + int32_t read; + do + { + secure ? secure_socket->Recv((uint8_t*)&buffer[0], buffer.size(), read) : socket->Recv((uint8_t*)&buffer[0], buffer.size(), read); + ss.write(&buffer[0], read); + } + while (read > 0); + secure ? secure_socket->Close() : socket->Close(); + + return Response(ss.str()); + } + + Response Http::Get(std::string const& path, std::string const& data) + { + // Shortcut for simple GET requests + Request request; + request.SetMethod(Method::GET); + request.SetUri(Uri(path)); + request.SetData(data); + return Send(request); + } + + Response Http::Post(std::string const& path, std::string const& data) + { + // Shortcut for simple POST requests + Request request; + request.SetMethod(Method::POST); + request.SetUri(Uri(path)); + request.SetData(data); + return Send(request); + } + + static std::string str_impl(Method method) { + switch (method) + { + case Method::GET: + return "GET"; + case Method::HEAD: + return "HEAD"; + case Method::POST: + return "POST"; + case Method::PUT: + return "PUT"; + case Method::DELETE: + return "DELETE"; + case Method::TRACE: + return "TRACE"; + case Method::CONNECT: + return "CONNECT"; + default: + assert(!"unknown request method"); + } + return ""; + } + + std::string Http::Str(Request const& request) + { + // Serialize a request to a string + std::stringstream ss; + auto path = request.GetPath().empty() ? "/" : request.GetPath(); + ss << str_impl(request.GetMethod()) << ' ' << path << " HTTP/1.1\n"; + ss << Headers::HOST << ": " << request.GetUri().GetHost() << "\n"; + ss << Headers::CONTENT_LENGTH << ": " << request.GetData().size() << "\n"; + ss << Headers::CONNECTION << ": close\n"; + ss << Headers::ACCEPT_ENCODING << ": identity\n"; + for (auto header : request.GetHeaders()) + ss << header.first << ": " << header.second << "\n"; + ss << "\n"; + ss << request.GetData(); + return ss.str(); + } +} \ No newline at end of file diff --git a/src/IPAddress.cpp b/src/IPAddress.cpp new file mode 100644 index 0000000..4273ad7 --- /dev/null +++ b/src/IPAddress.cpp @@ -0,0 +1,62 @@ +#include "IPAddress.hpp" + +namespace std::net +{ + const IPAddress IPAddress::None; + const IPAddress IPAddress::Any(0, 0, 0, 0); + const IPAddress IPAddress::LocalHost(127, 0, 0, 1); + const IPAddress IPAddress::Broadcast(255, 255, 255, 255); + + std::string IPAddress::ToString() const + { + in_addr address; + address.s_addr = m_address; + + return inet_ntoa(address); + } + + void IPAddress::Resolve(const std::string& address) + { + m_address = 0; + m_valid = false; + + if (address == "255.255.255.255") + { + // The broadcast address needs to be handled explicitly, + // because it is also the value returned by inet_addr on error + m_address = INADDR_BROADCAST; + m_valid = true; + } + else if (address == "0.0.0.0") + { + m_address = INADDR_ANY; + m_valid = true; + } + else + { + uint32_t ip = inet_addr(address.c_str()); + if (ip != INADDR_NONE) + { + m_address = ip; + m_valid = true; + } + else + { + addrinfo hints; + std::memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + addrinfo* result = NULL; + if (getaddrinfo(address.c_str(), NULL, &hints, &result) == 0) + { + if (result) + { + ip = reinterpret_cast(result->ai_addr)->sin_addr.s_addr; + freeaddrinfo(result); + m_address = ip; + m_valid = true; + } + } + } + } + } +} \ No newline at end of file diff --git a/src/Init.cpp b/src/Init.cpp deleted file mode 100644 index d8dedda..0000000 --- a/src/Init.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include "Init.hpp" -#include "Config.hpp" - -#include - -#ifdef _MSC_VER -bool Initialization::Initialize() -{ - uint16 code = WSAStartup(MAKEWORD(2, 2), &wsa_data); - if (code != 0) - { - if (Config::GetUsingConsole()) - std::cerr << code << std::endl; // display some more information too - return false; - } - return true; -} - -const WSADATA &Initialization::GetData() -{ - return wsa_data; -} -#endif \ No newline at end of file diff --git a/src/NetworkBuffer.cpp b/src/NetworkBuffer.cpp deleted file mode 100644 index ecf53a3..0000000 --- a/src/NetworkBuffer.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "NetworkBuffer.hpp" - -NetworkBuffer::NetworkBuffer() -{ -} - -NetworkBuffer::~NetworkBuffer() -{ -} \ No newline at end of file diff --git a/src/NetworkMessage.cpp b/src/NetworkMessage.cpp deleted file mode 100644 index 49a8965..0000000 --- a/src/NetworkMessage.cpp +++ /dev/null @@ -1,110 +0,0 @@ -#include "NetworkMessage.hpp" -#include "Utility.hpp" -#include "Serializer.hpp" -#include "Handshake.hpp" - -#include - -NetworkMessage::NetworkMessage() -{ -} - -NetworkMessage::NetworkMessage(uint16 sender, byte distribution_mode, uint16 destination_id, byte tag, byte subject) : - sender(sender), distribution_mode(distribution_mode), destination_id(destination_id), tag(tag), subject(subject) -{ -} - -NetworkMessage::NetworkMessage(const NetworkBuffer &buffer) -{ - *this = DecodeMessage(buffer); -} - -NetworkMessage::~NetworkMessage() -{ -} - -const NetworkBuffer &NetworkMessage::EncodeMessage(const NetworkMessage &message) -{ - if (message.valid) - { - NetworkBuffer net_buffer; - - if (!IS_HANDSHAKE(message)) - { - std::vector sender = Utility::BitConverter::ToBytes(message.sender); - std::vector distribution_mode = Utility::BitConverter::ToBytes(message.distribution_mode); - std::vector destination_id = Utility::BitConverter::ToBytes(message.destination_id); - std::vector tag = Utility::BitConverter::ToBytes(message.tag); - std::vector subject = Utility::BitConverter::ToBytes(message.subject); - std::vector data; - if (message.data != nullptr) - data = Serializer::to_bytes(message.data); - std::vector type = Utility::BitConverter::ToBytes(0); - - net_buffer.body.insert(net_buffer.body.begin(), type.begin(), type.end()); - net_buffer.body.insert(net_buffer.body.begin(), sender.begin(), sender.end()); - net_buffer.body.insert(net_buffer.body.begin(), distribution_mode.begin(), distribution_mode.end()); - net_buffer.body.insert(net_buffer.body.begin(), destination_id.begin(), destination_id.end()); - net_buffer.body.insert(net_buffer.body.begin(), tag.begin(), tag.end()); - net_buffer.body.insert(net_buffer.body.begin(), subject.begin(), subject.end()); - if (message.data != nullptr && data.size() > 0) - net_buffer.body.insert(net_buffer.body.begin(), data.begin(), data.end()); - net_buffer.header = Utility::BitConverter::ToBytes(sender.size() + distribution_mode.size() + destination_id.size() + - tag.size() + subject.size() + data.size()); - net_buffer.valid = true; - } - else - { - std::vector handshake_bytes = Handshake::EncodeHandshake(Handshake::NetworkMessageToHandshake(message)); - std::vector type = Utility::BitConverter::ToBytes(static_cast(1)); - handshake_bytes.insert(handshake_bytes.begin(), type.begin(), type.end()); - net_buffer.header = Utility::BitConverter::ToBytes(handshake_bytes.size()); - net_buffer.body = handshake_bytes; - } - return net_buffer; - } - return NetworkBuffer(); -} - -const NetworkMessage &NetworkMessage::DecodeMessage(const NetworkBuffer &buffer) -{ - if (buffer.valid) - { - byte type = buffer.body[0]; - switch (type) - { - case 0: - { - NetworkMessage message; - message.sender = Utility::BitConverter::ToUint16(buffer.body, 1); - message.distribution_mode = buffer.body[3]; - message.destination_id = Utility::BitConverter::ToUint16(buffer.body, 4); - message.tag = buffer.body[6]; - message.subject = Utility::BitConverter::ToUint8(buffer.body, 7); - message.valid = message.sender != -2 && message.tag != ConnectTag && message.tag != DisconnectTag; - if (Utility::BitConverter::ToInt32(buffer.header) < 9) - return message; - void *object; - object = Serializer::from_bytes(buffer.body, object); - return message; - } - case 1: - { - NetworkMessage message; - message.sender = Utility::BitConverter::ToUint16(buffer.body, 1); - message.tag = Utility::BitConverter::ToUint8(buffer.body, 3); - message.subject = 1; - message.valid = message.sender != -2 && IS_HANDSHAKE(message); - return message; - break; - } - default: - { - //type not supported - throw std::runtime_error("NetworkMessage - Decoding version not supported"); - } - } - - } - return NetworkMessage(); -} \ No newline at end of file diff --git a/src/Parse.cpp b/src/Parse.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/Request.cpp b/src/Request.cpp new file mode 100644 index 0000000..88e7f91 --- /dev/null +++ b/src/Request.cpp @@ -0,0 +1,31 @@ +// https://github.com/mfichman/http + +#include "Request.hpp" + +namespace std::net +{ + const std::string Request::GetHeaderElement(const std::string& name) const + { + return m_headers[name]; + } + + void Request::SetMethod(Method method) + { + m_method = method; + } + + void Request::SetUri(const Uri& uri) + { + m_uri = uri; + } + + void Request::SetData(const std::string& data) + { + m_data = data; + } + + void Request::AddHeader(const std::string& name, const std::string& value) + { + m_headers.AddHeader(name, value); + } +} \ No newline at end of file diff --git a/src/Response.cpp b/src/Response.cpp new file mode 100644 index 0000000..d274012 --- /dev/null +++ b/src/Response.cpp @@ -0,0 +1,97 @@ +// https://github.com/mfichman/http + +#include "Response.hpp" +#include "Parse.hpp" + +namespace std::net +{ + static ParseResult ParseStatus(const char* str) + { + ParseResult result + { + }; + + auto code = ParseToken(str); + + result.value = (HttpStatus)std::atoi(code.value.c_str()); + result.ch = code.ch; + return result; + } + + Response ParseResponse(const char* str) + { + // Parse an HTTP response + auto version = ParseToken(str); + auto code = ParseStatus(version.ch); + auto message = ParseUntil(code.ch, [](char ch) + { + return ch == '\r'; + }); + + auto response = Response(); + if (version.value != "HTTP/1.1") + throw std::runtime_error("bad HTTP version"); + + auto ch = parseCrLf(message.ch).ch; + while (*ch != '\0' && *ch != '\r') + { + auto name = ParseUntil(ch, [](char ch) + { + return ch == ':'; + }); + + if (*name.ch) + name.ch++; // For ":" + auto ws = ParseWhile(name.ch, isspace); + auto value = ParseUntil(ws.ch, [](char ch) + { + return ch == '\r'; + }); + + response.SetHeader(name.value, value.value); + if (name.value == "Set-Cookie") + response.SetCookie(Cookie(value.value)); + ch = parseCrLf(value.ch).ch; + } + ch = parseCrLf(ch).ch; + + response.SetStatus(code.value); + response.SetData(ch); + return response; + } + + Response::Response(const std::string& response) + { + *this = ParseResponse(response.c_str()); + } + + const std::string Response::GetHeader(const std::string& name) const + { + return m_headers[name]; + } + + const Cookie Response::GetCookie(const std::string& name) const + { + return m_cookies[name]; + } + + void Response::SetStatus(HttpStatus status) + { + m_status = status; + } + + void Response::SetData(const std::string& data) + { + m_data = data; + } + + void Response::SetHeader(const std::string& name, const std::string& value) + { + m_headers.AddHeader(name, value); + } + + void Response::SetCookie(const Cookie& cookie) + { + m_cookies.SetCookie(cookie); + } +} \ No newline at end of file diff --git a/src/SecureSocket.cpp b/src/SecureSocket.cpp new file mode 100644 index 0000000..39a2e6a --- /dev/null +++ b/src/SecureSocket.cpp @@ -0,0 +1,163 @@ +#include "SecureSocket.hpp" + +#include + +namespace inl::net::sockets +{ + /*SecureSocket::SecureSocket() + : m_context(0), m_conn(0), m_eof(false) + { + m_socket = std::make_unique(SocketType::Streaming); + + // Intitialize the SSL client-side socket + SSL_library_init(); + SSL_load_error_strings(); + ERR_load_BIO_strings(); + } + + bool SecureSocket::Connect(const IPAddress & addrStr) + { + if (!m_context) + { + m_context = SSL_CTX_new(SSLv23_client_method()); + assert(m_context); + } + if (!m_conn) + { + m_conn = SSL_new(m_context); + assert(m_conn); + + m_in = BIO_new(BIO_s_mem()); + m_out = BIO_new(BIO_s_mem()); + SSL_set_bio(m_conn, m_in, m_out); + SSL_set_connect_state(m_conn); + } + + return m_socket->Connect(addrStr); + } + + bool SecureSocket::Close() const + { + return m_socket->Close(); + } + + bool SecureSocket::HasPendingData(uint32_t & pendingDataSize) const + { + return m_socket->HasPendingData(pendingDataSize); + } + + bool SecureSocket::Send(uint8_t* data, int32_t count, int32_t &sent, int flags) + { + sent = SSL_write(m_conn, data, count); + SendFromBio(); // Write data if available + if (sent < 0) + { + HandleReturn(sent); + return true; + } + return sent > 0; + } + + bool SecureSocket::SendRaw(uint8_t * buf, size_t len, int flags) + { + int32_t sent; + return m_socket->Send(buf, len, sent) && sent == len; + + } + + bool SecureSocket::SendFromBio(int flags) + { + uint8_t buf[4096]; + size_t pending = BIO_ctrl_pending(m_out); + if (!pending) + return true; + size_t bytes = BIO_read(m_out, buf, sizeof(buf)); + if (bytes > 0) + return SendRaw(buf, bytes, flags); + else if (bytes == -1 || bytes == 0) + return true; + return false; + } + + bool SecureSocket::RecvToBio(int flags) + { + uint8_t buf[4096]; + size_t bytes = m_socket->Recv(buf, sizeof(buf), flags); + if (bytes > 0) + { + size_t written = BIO_write(m_in, buf, int(bytes)); + assert(bytes == written); + return true; + } + else if (bytes == 0) + { + // No data + m_eof = true; + return true; + } + return false; + } + + void SecureSocket::HandleReturn(size_t ret) + { + int32_t err = SSL_get_error(m_conn, ret); + if (SSL_ERROR_WANT_WRITE == err) + SendFromBio(); + else if (SSL_ERROR_WANT_READ == err) + RecvToBio(); + else if (SSL_ERROR_SSL == err) + throw inl::RuntimeException(); + else + assert(!"unexpected error"); + } + + bool SecureSocket::Recv(uint8_t* data, int32_t count, int32_t &read, int flags) + { + read = SSL_read(m_conn, data, count); + if (read < 0) + { + HandleReturn(read); + if (m_eof) + return false; + } + return read > 0; + } + + bool SecureSocket::Wait(SocketWaitConditions cond, std::chrono::milliseconds t) const + { + return m_socket->Wait(cond, t); + } + + SocketConnectionState SecureSocket::GetConnectionState() const + { + return m_socket->GetConnectionState(); + } + + void SecureSocket::GetAddress(IPAddress & outAddr) const + { + m_socket->GetAddress(outAddr); + } + + int32_t SecureSocket::GetPort() const + { + return m_socket->GetPort(); + } + + void SecureSocket::UseCertificateFile(std::string const & path) + { + if (!m_context) + assert(!"not initialized yet"); + if (SSL_CTX_use_certificate_file(m_context, path.c_str(), SSL_FILETYPE_PEM) <= 0) + throw inl::RuntimeException(); + } + + void SecureSocket::UsePrivateKeyFile(std::string const & path) + { + if (!m_context) + assert(!"not initialized yet"); + if (SSL_CTX_use_PrivateKey_file(m_context, path.c_str(), SSL_FILETYPE_PEM) <= 0) + throw inl::RuntimeException(); + if (!SSL_CTX_check_private_key(m_context)) + throw inl::RuntimeException(); + }*/ +} \ No newline at end of file diff --git a/src/Serializer.cpp b/src/Serializer.cpp deleted file mode 100644 index 01d1fca..0000000 --- a/src/Serializer.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "Serializer.hpp" - -template const std::vector &Serializer::to_bytes(const T& object) -{ - std::vector bytes; - - const byte *begin = reinterpret_cast(std::addressof(object)); - const byte *end = begin + sizeof(T); - std::copy(begin, end, bytes.begin()); - - return bytes; -} - -template const T& Serializer::from_bytes(const std::vector &bytes, T& object) -{ - static_assert(std::is_trivially_copyable::value, "not a TriviallyCopyable type"); - std::copy(bytes.begin(), bytes.end(), reinterpret_cast(std::addressof(object))); - - return object; -} \ No newline at end of file diff --git a/src/Socket.cpp b/src/Socket.cpp new file mode 100644 index 0000000..838ad30 --- /dev/null +++ b/src/Socket.cpp @@ -0,0 +1,511 @@ +#include "Socket.hpp" +#include "IPAddress.hpp" + +namespace std::net +{ + void Socket::init() + { + if (GetSocketType() == SocketType::Unknown) + throw std::invalid_argument("Unknown socket type"); + + if (m_socket == INVALID_SOCKET) + { + m_socket = socket(AF_INET, (int)GetSocketType(), 0); + + if (m_socket == INVALID_SOCKET) + throw std::runtime_error("Couldnt create socket"); + } + + if (GetSocketType() == SocketType::Streaming) + { + int yes = 1; + // Disable the Nagle algorithm (i.e. removes buffering of TCP packets) + setsockopt(m_socket, IPPROTO_TCP, TCP_NODELAY, reinterpret_cast(&yes), sizeof(yes)); + + // On Mac OS X, disable the SIGPIPE signal on disconnection +#if defined(__APPLE__) && defined(__MACH__) + setsockopt(m_socket, SOL_SOCKET, SO_NOSIGPIPE, reinterpret_cast(&yes), sizeof(yes)); +#endif + } + else + { + // Enable broadcast by default for UDP sockets + int yes = 1; + setsockopt(m_socket, SOL_SOCKET, SO_BROADCAST, reinterpret_cast(&yes), sizeof(yes)); + } + } + + bool Socket::Close() + { + if (m_socket != INVALID_SOCKET) + { + int32_t error = closesocket(m_socket); + m_socket = INVALID_SOCKET; + return error == 0; + } + return false; + } + + bool Socket::Bind(const IPAddress &addr) + { + sockaddr_in addr_in = addr.ToCAddr(); + return bind(m_socket, (sockaddr*)&addr_in, sizeof(sockaddr_in)) == 0; + } + + bool Socket::Connect(const IPAddress& addr) + { + sockaddr_in addr_in = addr.ToCAddr(); + int32_t Return = connect(m_socket, (sockaddr*)&addr_in, sizeof(sockaddr_in)); + SocketErrors Error = TranslateErrorCode(Return); + + // "would block" is not an error + return ((Error == SocketErrors::SE_NO_ERROR) || (Error == SocketErrors::SE_EWOULDBLOCK)); + } + + bool Socket::WaitForPendingConnection(bool& hasPendingConnection, std::chrono::milliseconds t) + { + bool hasSucceeded = false; + hasPendingConnection = false; + + if (HasState(SocketParam::HasError) == SocketReturn::No) + { + SocketReturn state = HasState(SocketParam::CanRead, t); + + hasSucceeded = state != SocketReturn::EncounteredError; + hasPendingConnection = state == SocketReturn::Yes; + } + + return hasSucceeded; + } + + bool Socket::HasPendingData(uint32_t& pendingDataSize) + { + pendingDataSize = 0; + + if (HasState(SocketParam::CanRead) == SocketReturn::Yes) + { + if (ioctl(m_socket, FIONREAD, + #if defined(_WIN32) + (u_long*) + #endif + &pendingDataSize) == 0) + return (pendingDataSize > 0); + } + + return false; + } + + std::unique_ptr Socket::Accept() + { + SOCKET newSocket = accept(m_socket, nullptr, nullptr); + + if (newSocket != INVALID_SOCKET) + { + return std::make_unique(newSocket, GetSocketType()); + } + + return nullptr; + } + + bool Socket::SendTo(const uint8_t* data, int32_t count, int32_t& sent, const IPAddress& addrDest) + { + sockaddr_in addr = addrDest.ToCAddr(); + sent = sendto(m_socket, (const char*)data, count, 0, (sockaddr*)&addr, sizeof(sockaddr_in)); + + bool result = sent >= 0; + if (result) + m_lastActivityTime = std::chrono::system_clock::now().time_since_epoch().count(); + + return result; + } + + bool Socket::Send(const uint8_t* data, int32_t count, int32_t& sent) + { + sent = send(m_socket, (const char*)data, count, 0); + + bool result = sent != SOCKET_ERROR; + if (result) + m_lastActivityTime = std::chrono::system_clock::now().time_since_epoch().count(); + + return result; + } + + bool Socket::RecvFrom(uint8_t* data, int32_t size, int32_t& read, IPAddress& srcAddr, SocketReceiveFlags flags) + { + socklen_t len = sizeof(sockaddr_in); + sockaddr_in addr = srcAddr.ToCAddr(); + const int translatedFlags = TranslateFlags(flags); + + read = recvfrom(m_socket, (char*)data, size, translatedFlags, (sockaddr*)&addr, &len); + + if (read < 0 && TranslateErrorCode(read) == SocketErrors::SE_EWOULDBLOCK) + read = 0; + else if (read <= 0) // 0 means gracefully closed + { + read = 0; + return false; + } + + m_lastActivityTime = std::chrono::system_clock::now().time_since_epoch().count(); + + return true; + } + + bool Socket::Recv(uint8_t* data, int32_t size, int32_t& read, SocketReceiveFlags flags) + { + const int translatedFlags = TranslateFlags(flags); + read = recv(m_socket, (char*)data, size, translatedFlags); + + if (read < 0 && TranslateErrorCode(read) == SocketErrors::SE_EWOULDBLOCK) + read = 0; + else if (read <= 0) // 0 means gracefully closed + { + read = 0; + return false; + } + + m_lastActivityTime = std::chrono::system_clock::now().time_since_epoch().count(); + + return true; + } + + bool Socket::Wait(SocketWaitConditions cond, std::chrono::milliseconds t) + { + if ((cond == SocketWaitConditions::WaitForRead) || (cond == SocketWaitConditions::WaitForReadOrWrite)) + { + if (HasState(SocketParam::CanRead, t) == SocketReturn::Yes) + return true; + } + + if ((cond == SocketWaitConditions::WaitForWrite) || (cond == SocketWaitConditions::WaitForReadOrWrite)) + { + if (HasState(SocketParam::CanWrite, t) == SocketReturn::Yes) + return true; + } + + return false; + } + + SocketConnectionState Socket::GetConnectionState() + { + SocketConnectionState currentState = SocketConnectionState::ConnectionError; + + if (HasState(SocketParam::HasError) == SocketReturn::No) + { + if (std::chrono::system_clock::now().time_since_epoch().count() - m_lastActivityTime > std::chrono::milliseconds(5).count()) + { + SocketReturn writeState = HasState(SocketParam::CanWrite, std::chrono::milliseconds(1)); + SocketReturn readState = HasState(SocketParam::CanRead, std::chrono::milliseconds(1)); + + if (writeState == SocketReturn::Yes || readState == SocketReturn::Yes) + { + currentState = SocketConnectionState::Connected; + m_lastActivityTime = std::chrono::system_clock::now().time_since_epoch().count(); + } + else if (writeState == SocketReturn::No && readState == SocketReturn::No) + currentState = SocketConnectionState::NotConnected; + } + else + currentState = SocketConnectionState::Connected; + } + + return currentState; + } + + void Socket::GetAddress(IPAddress& outAddr) + { + struct sockaddr_in addr; + socklen_t Size = sizeof(sockaddr_in); + + if (getsockname(m_socket, (sockaddr*)&addr, &Size) != 0) + return; + + outAddr = IPAddress(inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); + } + + bool Socket::GetPeerAddress(IPAddress& outAddr) + { + struct sockaddr_in addr; + socklen_t size = sizeof(sockaddr_in); + + int result = getpeername(m_socket, (sockaddr*)&addr, &size); + if (result != 0) + return false; + + outAddr = IPAddress(inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); + + return result == 0; + } + + bool Socket::SetNonBlocking(bool isNonBlocking) + { +#if PLATFORM_HTML5 // if we have more platforms later (html5, android, ios) later we need to do some changes to networking + throw std::exception("Can't have blocking sockets on HTML5"); + return false; +#else + +#if _WIN32 + return ioctl(m_socket, FIONBIO, (u_long*)&isNonBlocking) == 0; +#else + int flags = fcntl(m_socket, F_GETFL, 0); + flags = isNonBlocking ? flags | O_NONBLOCK : flags ^ (flags & O_NONBLOCK); + int err = fcntl(m_socket, F_SETFL, flags); + return (err == 0 ? true : false); +#endif +#endif + } + + bool Socket::JoinMulticastGroup(const IPAddress& addrStr) + { + sockaddr_in addr = addrStr.ToCAddr(); + + ip_mreq imr; + imr.imr_interface.s_addr = INADDR_ANY; + imr.imr_multiaddr = addr.sin_addr; + + return (setsockopt(m_socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&imr, sizeof(imr)) == 0); + } + + bool Socket::LeaveMulticastGroup(const IPAddress& addrStr) + { + sockaddr_in addr = addrStr.ToCAddr(); + + ip_mreq imr; + imr.imr_interface.s_addr = INADDR_ANY; + imr.imr_multiaddr = addr.sin_addr; + + return (setsockopt(m_socket, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char*)&imr, sizeof(imr)) == 0); + } + + bool Socket::SetLinger(bool shouldLinger, int32_t t) + { + linger ling; + ling.l_onoff = shouldLinger; + ling.l_linger = t; + + return setsockopt(m_socket, SOL_SOCKET, SO_LINGER, (char*)&ling, sizeof(ling)) == 0; + } + + bool Socket::SetSendBufferSize(int32_t size, int32_t& newSize) + { + socklen_t len = sizeof(int32_t); + bool success = setsockopt(m_socket, SOL_SOCKET, SO_SNDBUF, (char*)&size, sizeof(int32_t)) == 0; + + getsockopt(m_socket, SOL_SOCKET, SO_SNDBUF, (char*)&newSize, &len); + + return success; + } + + bool Socket::SetReceiveBufferSize(int32_t size, int32_t& newSize) + { + socklen_t len = sizeof(int32_t); + bool success = setsockopt(m_socket, SOL_SOCKET, SO_RCVBUF, (char*)&size, sizeof(int32_t)) == 0; + + getsockopt(m_socket, SOL_SOCKET, SO_RCVBUF, (char*)&newSize, &len); + + return success; + } + + uint32_t Socket::GetPort() + { + sockaddr_in addr; + socklen_t size = sizeof(sockaddr_in); + if (getsockname(m_socket, (sockaddr*)&addr, &size) != 0) + return 0; // invalid port + return ntohs(addr.sin_port); + } + + SocketReturn Socket::HasState(SocketParam state, std::chrono::milliseconds t) + { + timeval time; + time.tv_sec = t.count(); + time.tv_usec = t.count() * 1000 + t.count(); + + fd_set socketSet; + + FD_ZERO(&socketSet); + FD_SET(m_socket, &socketSet); + + int32_t SelectStatus = 0; + switch (state) + { + case SocketParam::CanRead: + SelectStatus = select(m_socket + 1, &socketSet, nullptr, nullptr, &time); + break; + + case SocketParam::CanWrite: + SelectStatus = select(m_socket + 1, nullptr, &socketSet, nullptr, &time); + break; + + case SocketParam::HasError: + SelectStatus = select(m_socket + 1, nullptr, nullptr, &socketSet, &time); + break; + } + + return SelectStatus > 0 ? SocketReturn::Yes : + SelectStatus == 0 ? SocketReturn::No : + SocketReturn::EncounteredError; + } + + SocketErrors Socket::TranslateErrorCode(int32_t code) + { +#if !_WIN32 + if (code == SOCKET_ERROR) + { + return SE_SOCKET_ERROR; + } + + switch (code) + { + case 0: return SocketErrors::SE_NO_ERROR; + case EINTR: return SocketErrors::SE_EINTR; + case EBADF: return SocketErrors::SE_EBADF; + case EACCES: return SocketErrors::SE_EACCES; + case EFAULT: return SocketErrors::SE_EFAULT; + case EINVAL: return SocketErrors::SE_EINVAL; + case EMFILE: return SocketErrors::SE_EMFILE; + case EWOULDBLOCK: return SocketErrors::SE_EWOULDBLOCK; + case EINPROGRESS: return SocketErrors::SE_EINPROGRESS; + case EALREADY: return SocketErrors::SE_EALREADY; + case ENOTSOCK: return SocketErrors::SE_ENOTSOCK; + case EDESTADDRREQ: return SocketErrors::SE_EDESTADDRREQ; + case EMSGSIZE: return SocketErrors::SE_EMSGSIZE; + case EPROTOTYPE: return SocketErrors::SE_EPROTOTYPE; + case ENOPROTOOPT: return SocketErrors::SE_ENOPROTOOPT; + case EPROTONOSUPPORT: return SocketErrors::SE_EPROTONOSUPPORT; + case ESOCKTNOSUPPORT: return SocketErrors::SE_ESOCKTNOSUPPORT; + case EOPNOTSUPP: return SocketErrors::SE_EOPNOTSUPP; + case EPFNOSUPPORT: return SocketErrors::SE_EPFNOSUPPORT; + case EAFNOSUPPORT: return SocketErrors::SE_EAFNOSUPPORT; + case EADDRINUSE: return SocketErrors::SE_EADDRINUSE; + case EADDRNOTAVAIL: return SocketErrors::SE_EADDRNOTAVAIL; + case ENETDOWN: return SocketErrors::SE_ENETDOWN; + case ENETUNREACH: return SocketErrors::SE_ENETUNREACH; + case ENETRESET: return SocketErrors::SE_ENETRESET; + case ECONNABORTED: return SocketErrors::SE_ECONNABORTED; + case ECONNRESET: return SocketErrors::SE_ECONNRESET; + case ENOBUFS: return SocketErrors::SE_ENOBUFS; + case EISCONN: return SocketErrors::SE_EISCONN; + case ENOTCONN: return SocketErrors::SE_ENOTCONN; + case ESHUTDOWN: return SocketErrors::SE_ESHUTDOWN; + case ETOOMANYREFS: return SocketErrors::SE_ETOOMANYREFS; + case ETIMEDOUT: return SocketErrors::SE_ETIMEDOUT; + case ECONNREFUSED: return SocketErrors::SE_ECONNREFUSED; + case ELOOP: return SocketErrors::SE_ELOOP; + case ENAMETOOLONG: return SocketErrors::SE_ENAMETOOLONG; + case EHOSTDOWN: return SocketErrors::SE_EHOSTDOWN; + case EHOSTUNREACH: return SocketErrors::SE_EHOSTUNREACH; + case ENOTEMPTY: return SocketErrors::SE_ENOTEMPTY; + case EUSERS: return SocketErrors::SE_EUSERS; + case EDQUOT: return SocketErrors::SE_EDQUOT; + case ESTALE: return SocketErrors::SE_ESTALE; + case EREMOTE: return SocketErrors::SE_EREMOTE; + case ENODEV: return SocketErrors::SE_NODEV; +#if !PLATFORM_HAS_NO_EPROCLIM + case EPROCLIM: return SocketErrors::SE_EPROCLIM; +#endif + // case EDISCON: return SE_EDISCON; + // case SYSNOTREADY: return SE_SYSNOTREADY; + // case VERNOTSUPPORTED: return SE_VERNOTSUPPORTED; + // case NOTINITIALISED: return SE_NOTINITIALISED; + +#if PLATFORM_HAS_BSD_SOCKET_FEATURE_GETHOSTNAME + case HOST_NOT_FOUND: return SocketErrors::SE_HOST_NOT_FOUND; + case TRY_AGAIN: return SocketErrors::SE_TRY_AGAIN; + case NO_RECOVERY: return SocketErrors::SE_NO_RECOVERY; +#endif + + // case NO_DATA: return SE_NO_DATA; + // case : return SE_UDP_ERR_PORT_UNREACH; //@TODO Find it's replacement + } + + return SocketErrors::SE_EINVAL; +#else + // handle the generic -1 error + if (code == SOCKET_ERROR) + { + return SocketErrors::SE_SOCKET_ERROR; + } + + switch (code) + { + case 0: return SocketErrors::SE_NO_ERROR; + case ERROR_INVALID_HANDLE: return SocketErrors::SE_ECONNRESET; // invalid socket handle catch + case WSAEINTR: return SocketErrors::SE_EINTR; + case WSAEBADF: return SocketErrors::SE_EBADF; + case WSAEACCES: return SocketErrors::SE_EACCES; + case WSAEFAULT: return SocketErrors::SE_EFAULT; + case WSAEINVAL: return SocketErrors::SE_EINVAL; + case WSAEMFILE: return SocketErrors::SE_EMFILE; + case WSAEWOULDBLOCK: return SocketErrors::SE_EWOULDBLOCK; + case WSAEINPROGRESS: return SocketErrors::SE_EINPROGRESS; + case WSAEALREADY: return SocketErrors::SE_EALREADY; + case WSAENOTSOCK: return SocketErrors::SE_ENOTSOCK; + case WSAEDESTADDRREQ: return SocketErrors::SE_EDESTADDRREQ; + case WSAEMSGSIZE: return SocketErrors::SE_EMSGSIZE; + case WSAEPROTOTYPE: return SocketErrors::SE_EPROTOTYPE; + case WSAENOPROTOOPT: return SocketErrors::SE_ENOPROTOOPT; + case WSAEPROTONOSUPPORT: return SocketErrors::SE_EPROTONOSUPPORT; + case WSAESOCKTNOSUPPORT: return SocketErrors::SE_ESOCKTNOSUPPORT; + case WSAEOPNOTSUPP: return SocketErrors::SE_EOPNOTSUPP; + case WSAEPFNOSUPPORT: return SocketErrors::SE_EPFNOSUPPORT; + case WSAEAFNOSUPPORT: return SocketErrors::SE_EAFNOSUPPORT; + case WSAEADDRINUSE: return SocketErrors::SE_EADDRINUSE; + case WSAEADDRNOTAVAIL: return SocketErrors::SE_EADDRNOTAVAIL; + case WSAENETDOWN: return SocketErrors::SE_ENETDOWN; + case WSAENETUNREACH: return SocketErrors::SE_ENETUNREACH; + case WSAENETRESET: return SocketErrors::SE_ENETRESET; + case WSAECONNABORTED: return SocketErrors::SE_ECONNABORTED; + case WSAECONNRESET: return SocketErrors::SE_ECONNRESET; + case WSAENOBUFS: return SocketErrors::SE_ENOBUFS; + case WSAEISCONN: return SocketErrors::SE_EISCONN; + case WSAENOTCONN: return SocketErrors::SE_ENOTCONN; + case WSAESHUTDOWN: return SocketErrors::SE_ESHUTDOWN; + case WSAETOOMANYREFS: return SocketErrors::SE_ETOOMANYREFS; + case WSAETIMEDOUT: return SocketErrors::SE_ETIMEDOUT; + case WSAECONNREFUSED: return SocketErrors::SE_ECONNREFUSED; + case WSAELOOP: return SocketErrors::SE_ELOOP; + case WSAENAMETOOLONG: return SocketErrors::SE_ENAMETOOLONG; + case WSAEHOSTDOWN: return SocketErrors::SE_EHOSTDOWN; + case WSAEHOSTUNREACH: return SocketErrors::SE_EHOSTUNREACH; + case WSAENOTEMPTY: return SocketErrors::SE_ENOTEMPTY; + case WSAEPROCLIM: return SocketErrors::SE_EPROCLIM; + case WSAEUSERS: return SocketErrors::SE_EUSERS; + case WSAEDQUOT: return SocketErrors::SE_EDQUOT; + case WSAESTALE: return SocketErrors::SE_ESTALE; + case WSAEREMOTE: return SocketErrors::SE_EREMOTE; + case WSAEDISCON: return SocketErrors::SE_EDISCON; + case WSASYSNOTREADY: return SocketErrors::SE_SYSNOTREADY; + case WSAVERNOTSUPPORTED: return SocketErrors::SE_VERNOTSUPPORTED; + case WSANOTINITIALISED: return SocketErrors::SE_NOTINITIALISED; + case WSAHOST_NOT_FOUND: return SocketErrors::SE_HOST_NOT_FOUND; + case WSATRY_AGAIN: return SocketErrors::SE_TRY_AGAIN; + case WSANO_RECOVERY: return SocketErrors::SE_NO_RECOVERY; + case WSANO_DATA: return SocketErrors::SE_NO_DATA; + // case : return SE_UDP_ERR_PORT_UNREACH; + } + + return SocketErrors::SE_NO_ERROR; +#endif + } + + int Socket::TranslateFlags(SocketReceiveFlags flags) + { + int translatedFlags = 0; + + if ((int)flags & (int)SocketReceiveFlags::Peek) + { + translatedFlags |= MSG_PEEK; +#if !_WIN32 + translatedFlags |= MSG_DONTWAIT; +#endif + } + + if ((int)flags & (int)SocketReceiveFlags::WaitAll) + { + translatedFlags |= MSG_WAITALL; + } + + return translatedFlags; + } +} \ No newline at end of file diff --git a/src/TcpClient.cpp b/src/TcpClient.cpp index 904074b..1b39843 100644 --- a/src/TcpClient.cpp +++ b/src/TcpClient.cpp @@ -1,255 +1,60 @@ #include "TcpClient.hpp" -#include "NetworkBuffer.hpp" -#include "Utility.hpp" -#include "Config.hpp" -#include "Handshake.hpp" +#include "TcpSocketBuilder.hpp" -#include -#include -#include - -TcpClient::TcpClient(const std::string &ip) : port(default_client_port) +namespace std::net { - initialize(ip); -} - -TcpClient::TcpClient(const std::string &ip, uint16 port) : - ip(ip), port(port) -{ - initialize(ip, port); -} - -const std::string &TcpClient::GetIP() -{ - return ip; -} - -uint16 TcpClient::GetPort() -{ - return port; -} - -void TcpClient::SetIP(const std::string & ip) -{ - this->ip = ip; -} - -void TcpClient::SetPort(uint16 port) -{ - this->port = port; -} - -uint16 TcpClient::GetID() -{ - return id; -} - -void TcpClient::SetID(uint16 id) -{ - this->id = id; -} - -void TcpClient::receive_data(TcpClient *client) -{ - while (client->receive) + TcpClient::TcpClient(Socket *soc) { - NetworkMessage message(client->ReceiveMessage()); - if (message.valid) - { - if (IS_HANDSHAKE(message)) - { - if (message.tag == ConnectTag) // some user has connected - not us, never - std::async(std::launch::async, client->OnConnect, message.sender); - else if (message.tag == DisconnectTag) // some user has disconnected, it can be us - std::async(std::launch::async, client->OnDisconnect, message.sender); - else if (message.tag == Close) - { - std::async(std::launch::async, client->OnDisconnect, message.sender); - close_connection(client); - } - } - else - std::async(std::launch::async, client->OnMessage, message.sender, message.tag, message.subject, message.data); // we received data - } - } -} - -void TcpClient::ReceiveMessages() -{ - std::async(std::launch::async, &receive_data, this); -} - -const NetworkMessage & TcpClient::ReceiveMessage() -{ - return receive_data_array(); -} - -std::future TcpClient::SendMessage(const NetworkMessage &message) -{ - return std::async(std::launch::async, &send_network_message, message, this); -} - -void TcpClient::SetOnDisconnectCallback(std::function func) -{ - OnDisconnect = func; -} - -void TcpClient::SetOnConnectCallback(std::function func) -{ - OnConnect = func; -} - -void TcpClient::SetOnMessageCallback(std::function func) -{ - OnMessage = func; -} - -const TcpClient & TcpClient::DefaultTcpClient() -{ - return TcpClient(); -} - -TcpClient::TcpClient(const SOCKET & socket) -{ - tcp_socket = socket; -} - -bool TcpClient::initialize(const std::string &ip, uint16 port) -{ - if (Utility::IPUtil::ValidIPV4(ip) || port == 0) - return false; - ZeroMemory(&hints, sizeof(hints)); - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = IPPROTO_TCP; - - uint16 code = getaddrinfo(ip.c_str(), std::to_string(port).c_str(), &hints, &result); - if (code != 0) - { - if (Config::GetUsingConsole()) - std::cerr << code << std::endl; // display more info - WSACleanup(); - return false; + m_socket = std::unique_ptr(soc); // will this work } - tcp_socket = socket(result->ai_family, result->ai_socktype, result->ai_protocol); - - if (tcp_socket == INVALID_SOCKET) + TcpClient::TcpClient(SocketProtocol protocol) { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; // display more info - freeaddrinfo(result); - WSACleanup(); - return false; + m_socket = TcpSocketBuilder().AsNonBlocking().AsReusable().Protocol(protocol).Build(); } - return initialized = true; -} - -TcpClient::~TcpClient() -{ - freeaddrinfo(result); - WSACleanup(); - Utility::Delete(result); -} - -void TcpClient::Shutdown() -{ - Handshake handshake(id, Close, Server); - SendMessage(Handshake::HandshakeToNetworkMessage(handshake)); - uint16 code = closesocket(tcp_socket); - if (code == SOCKET_ERROR) - { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; // display more info + bool TcpClient::Connect(const IPAddress& addrStr) + { + return m_socket->Connect(addrStr); } - WSACleanup(); -} - -bool TcpClient::Connect() -{ - if (!initialized) - { - if (ip.size() == 0 || std::count(ip.begin(), ip.end(), '.') != 4 && port == 0 && !initialize(ip, port)) - return false; + bool TcpClient::Close() const + { + return m_socket->Close(); } - else return false; - uint16 connect_code = connect(tcp_socket, result->ai_addr, result->ai_addrlen); - if (connect_code == SOCKET_ERROR) - return false; - - NetworkMessage message(receive_data_array()); - if (IS_HANDSHAKE(message)) - { - if (message.tag == Accept) - { - receive = true; - OnConnect(message.sender); - return true; - } + bool TcpClient::HasPendingData(uint32_t& pendingDataSize) const + { + return m_socket->HasPendingData(pendingDataSize); } - return false; -} -bool TcpClient::DataAvailable(int32 &size) -{ - return ioctlsocket(tcp_socket, FIONREAD, reinterpret_cast(size)) != NO_ERROR && size > 0; -} - -const NetworkBuffer &TcpClient::receive_data_array() -{ - NetworkBuffer buffer; - - int32 temp; - if (DataAvailable(temp) && temp > sizeof(int32)) - { - byte *header = new byte[sizeof(int32)](); - if (recv(tcp_socket, reinterpret_cast(header), sizeof(int32), 0) != sizeof(int32)) - return NetworkBuffer(); - buffer.header = std::vector(header, header + sizeof(int32)); + bool TcpClient::Send(const uint8_t* data, int32_t count, int32_t& sent) const + { + return m_socket->Send(data, count, sent); } - else - return NetworkBuffer(); - int32 body_size = Utility::BitConverter::ToInt32(buffer.header); - byte *body = new byte[body_size](); - int16 received_bytes = recv(tcp_socket, reinterpret_cast(body), body_size, 0); - if (received_bytes == SOCKET_ERROR || received_bytes != body_size || WSAGetLastError() != 0) - return NetworkBuffer(); - - buffer.body = std::vector(body, body + body_size); - buffer.valid = true; - - return buffer; -} - -bool TcpClient::send_network_message(const NetworkMessage &message, TcpClient *client) -{ - NetworkBuffer buffer = NetworkMessage::EncodeMessage(message); - int32 lenght = Utility::BitConverter::ToInt32(buffer.header); - int32 bytes_sent = send(client->tcp_socket, reinterpret_cast(buffer.body.data()), lenght, 0); - return bytes_sent == SOCKET_ERROR || bytes_sent != lenght || WSAGetLastError() != 0; -} - -void TcpClient::close_connection(TcpClient * client) -{ - shutdown(client->tcp_socket, SD_BOTH); - closesocket(client->tcp_socket); -} - -bool TcpClient::SendBytes(const std::vector& bytes) -{ - int32 bytes_sent = send(tcp_socket, reinterpret_cast(bytes.data()), bytes.size(), 0); - if (bytes_sent == SOCKET_ERROR || bytes_sent != bytes.size() || WSAGetLastError() != 0) - { - //something went wrong couldnt send anything/some data + bool TcpClient::Recv(uint8_t* data, int32_t size, int32_t& read, SocketReceiveFlags flags) const + { + return m_socket->Recv(data, size, read, flags); } -} -bool TcpClient::SendBytes(byte * bytes, uint32 size) -{ - int32 bytes_sent = send(tcp_socket, reinterpret_cast(bytes), size, 0); - return bytes_sent == SOCKET_ERROR || bytes_sent != size || WSAGetLastError() != 0; + bool TcpClient::Wait(SocketWaitConditions cond, std::chrono::milliseconds t) const + { + return m_socket->Wait(cond, t); + } + + SocketConnectionState TcpClient::GetConnectionState() const + { + return m_socket->GetConnectionState(); + } + + void TcpClient::GetAddress(IPAddress& outAddr) const + { + return m_socket->GetAddress(outAddr); + } + + int32_t TcpClient::GetPort() const + { + return m_socket->GetPort(); + } } \ No newline at end of file diff --git a/src/TcpListener.cpp b/src/TcpListener.cpp new file mode 100644 index 0000000..869ad0a --- /dev/null +++ b/src/TcpListener.cpp @@ -0,0 +1,54 @@ +#include "TcpListener.hpp" +#include "TcpSocketBuilder.hpp" +#include "Socket.hpp" +#include "TcpClient.hpp" + +namespace std::net +{ + TcpListener::TcpListener(uint16_t port, std::chrono::milliseconds inSleepTime) + : m_port(port) + , m_sleepTime(inSleepTime) + { + m_socket = TcpSocketBuilder().AsNonBlocking().AsReusable().Bind(IPAddress(0, 0, 0, 0, port)).Listening().Build(); + } + + TcpListener::TcpListener(Socket *InSocket, std::chrono::milliseconds inSleepTime) + : m_sleepTime(inSleepTime) + { + m_socket = std::unique_ptr(InSocket); + } + + TcpClient *TcpListener::AcceptClient() + { + if (m_socket == nullptr) + m_socket = TcpSocketBuilder().AsReusable().Bind(IPAddress(0, 0, 0, 0, m_port)).Listening().Build(); + + if (m_socket == nullptr) + return nullptr; + + std::string remoteAddress; + + const bool hasZeroSleepTime = (m_sleepTime == std::chrono::milliseconds(0)); + + bool pending = false; + + if (m_socket->WaitForPendingConnection(pending, m_sleepTime)) + { + if (pending) + { + std::unique_ptr connectionSocket = m_socket->Accept(); + + if (connectionSocket != nullptr) + { + return new TcpClient(connectionSocket.release()); + } + } + else if (hasZeroSleepTime) + std::this_thread::sleep_for(std::chrono::milliseconds(0)); + } + else + std::this_thread::sleep_for(std::chrono::milliseconds(m_sleepTime)); + + return nullptr; + } +} \ No newline at end of file diff --git a/src/TcpServer.cpp b/src/TcpServer.cpp deleted file mode 100644 index 07a8163..0000000 --- a/src/TcpServer.cpp +++ /dev/null @@ -1,290 +0,0 @@ -#include "TcpServer.hpp" -#include "Config.hpp" -#include "Handshake.hpp" -#include "Utility.hpp" - -#include -#include -#include - -TcpServer::TcpServer() -{ - initialize(); // initialize with the default port - clients.reserve(max_connections); -} - -TcpServer::TcpServer(uint16 port) -{ - initialize(port); - clients.reserve(max_connections); -} - -TcpServer::~TcpServer() -{ -} - -void TcpServer::Shutdown() -{ - running = false; - - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - (*it).Shutdown(); - clients.erase(it); - } - - shutdown_internal(); -} - -void TcpServer::AcceptConnections() -{ - if (!running) - { - running = true; - std::async(std::launch::async, &accept_connections, this); - } -} - -void TcpServer::process_client_messages(TcpServer *server, TcpClient & client) -{ - while (server->running) - { - NetworkMessage message(client.ReceiveMessage()); - if (message.valid) - server->SendMessage(message); - } -} - -bool TcpServer::SendMessage(const NetworkMessage & message) -{ - switch (message.distribution_mode) - { - case All: // this will send the message to all except the user that sent it - { - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - TcpClient client = *it; - if (message.sender != client.GetID()) - client.SendMessage(message); - } - for (uint16 i = 0; i < OnMessageFunctions.size(); i++) - OnMessageFunctions[i](message); - } - case AllAndMe: // this will send the message to EVERYONE including the user that sent it - { - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - TcpClient client = *it; - client.SendMessage(message); - } - for (uint16 i = 0; i < OnMessageFunctions.size(); i++) - OnMessageFunctions[i](message); - } - case Server: // this will only send the message to the server - { - if (message.tag == DisconnectTag) - CloseSocket(message.sender); - for (uint16 i = 0; i < OnMessageFunctions.size(); i++) - OnMessageFunctions[i](message); - } - case Others: // this will send the message to others, excluding server and the user that sent it - { - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - TcpClient client = *it; - if (message.sender != client.GetID()) - client.SendMessage(message); - } - } - case ID: // this will send the message to a specific id - { - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - TcpClient client = *it; - if (message.sender == client.GetID()) - client.SendMessage(message); - } - return false; - } - } -} - -uint16 TcpServer::allocate_id() // this function is only used in the AddToClientsList function -{ - for (uint16 i = 1; i < max_connections; ++i) - { - bool flag = true; - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - TcpClient client = *it; - if (client.GetID() == i) - { - flag = false; - break; - } - } - - if (flag) - return i; - } - return 0; -} - -void TcpServer::add_to_clients_list(TcpClient & client_socket) -{ - uint16 id = allocate_id(); - if (id > 0) - { - client_socket.SetID(id); - clients.emplace_back(client_socket); - AcceptConnection(client_socket.GetID()); - } - else - { - if (Config::GetUsingConsole()) - std::cout << "No available ID's" << std::endl; - RejectConnection(client_socket); - } -} - -void TcpServer::RejectConnection(TcpClient &client) -{ - Handshake handshake(client.GetID(), Reject, ID); - SendMessage(Handshake::HandshakeToNetworkMessage(handshake)); -} - -void TcpServer::AcceptConnection(uint16 id) -{ - Handshake handshake(id, Accept, AllAndMe); - SendMessage(Handshake::HandshakeToNetworkMessage(handshake)); -} - -void TcpServer::CloseSocket(TcpClient & client) -{ - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - TcpClient it_client = *it; - if (client.GetID() == it_client.GetID()) - { - it_client.Shutdown(); - clients.erase(it); - } - } -} - -void TcpServer::CloseSocket(uint16 id) -{ - TcpClient client = GetClientByID(id); - if (client.GetID() != -2) - CloseSocket(client); -} - -const TcpClient & TcpServer::GetClientByID(uint16 id) -{ - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - TcpClient client = *it; - if (client.GetID() == id) - return client; - } - return TcpClient::DefaultTcpClient(); -} - -void TcpServer::SetMaxConnections(uint16 value) -{ - max_connections = value; -} - -uint16 TcpServer::GetMaxConnections() -{ - return max_connections; -} - -bool TcpServer::initialize(uint16 port) -{ - ZeroMemory(&hints, sizeof(hints)); - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = IPPROTO_TCP; - hints.ai_flags = AI_PASSIVE; - - uint16 code = getaddrinfo(0, std::to_string(port).c_str(), &hints, &result); - if (code != 0) - { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; // display more info - WSACleanup(); - return false; - } - - server_tcp_socket = ::socket(result->ai_family, result->ai_socktype, result->ai_protocol); - - if (server_tcp_socket == INVALID_SOCKET) - { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; // display more info - freeaddrinfo(result); - WSACleanup(); - return false; - } - - code = bind(server_tcp_socket, result->ai_addr, result->ai_addrlen); - if (code == SOCKET_ERROR) - { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; // display more info - freeaddrinfo(result); - closesocket(server_tcp_socket); - WSACleanup(); - return false; - } - - freeaddrinfo(result); - return initialized = true; -} - -bool TcpServer::StartServer(bool accept_connections) -{ - if (listen(server_tcp_socket, SOMAXCONN) == SOCKET_ERROR) - { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; - closesocket(server_tcp_socket); - WSACleanup(); - return false; - } - - if (accept_connections) - AcceptConnections(); - - return true; -} - -void TcpServer::accept_connections(TcpServer *server) -{ - while (server->running) - { - SOCKET client_socket = accept(server->server_tcp_socket, 0, 0); - if (client_socket == INVALID_SOCKET) - { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; - closesocket(server->server_tcp_socket); - WSACleanup(); - server->running = false; // if we cant accept a connection idk if we should stop the server or not mh - break; - } - - TcpClient client(client_socket); - server->add_to_clients_list(client); - - std::async(std::launch::async, &process_client_messages, server, client); - } -} - -void TcpServer::shutdown_internal() -{ - freeaddrinfo(result); - WSACleanup(); - Utility::Delete(result); -} \ No newline at end of file diff --git a/src/TcpSocketBuilder.cpp b/src/TcpSocketBuilder.cpp new file mode 100644 index 0000000..f1d9718 --- /dev/null +++ b/src/TcpSocketBuilder.cpp @@ -0,0 +1,52 @@ +#include "TcpSocketBuilder.hpp" + +#include "Socket.hpp" +#include "TcpClient.hpp" +#include "TcpListener.hpp" + +namespace std::net +{ + std::unique_ptr TcpSocketBuilder::Build() const + { + std::unique_ptr socket = std::make_unique(SocketType::Streaming, m_socketProtocol); + + if (socket != nullptr) + { + bool Error = !socket->SetReuseAddr(m_reusable) || + !socket->SetLinger(m_linger, m_lingerTimeout); + + if (!Error) + Error = m_bound && !socket->Bind(m_boundAddr); + if (!Error) + Error = m_listen && !socket->Listen(); + if (!Error) + Error = !socket->SetNonBlocking(!m_blocking); + + if (!Error) + { + int32_t out_new_size; + if (m_receiveBufferSize > 0) + socket->SetReceiveBufferSize(m_receiveBufferSize, out_new_size); + if (m_sendBufferSize > 0) + socket->SetSendBufferSize(m_sendBufferSize, out_new_size); + } + + if (Error) + throw std::runtime_error("Couldnt create socket"); // make parameter a string depending on the error + } + + return socket; + } + + std::unique_ptr TcpSocketBuilder::BuildClient() const + { + std::unique_ptr socket = Build(); + return std::make_unique(socket.release()); + } + + std::unique_ptr TcpSocketBuilder::BuildListener() const + { + std::unique_ptr socket = Build(); + return std::make_unique(socket.release()); + } +} \ No newline at end of file diff --git a/src/UdpClient.cpp b/src/UdpClient.cpp deleted file mode 100644 index 3fec257..0000000 --- a/src/UdpClient.cpp +++ /dev/null @@ -1,123 +0,0 @@ -#include "UdpClient.hpp" -#include "Handshake.hpp" -#include "Config.hpp" - -#include - -#include - -UdpClient::UdpClient(const std::string & ip) -{ - initialize(ip); -} - -UdpClient::UdpClient(const std::string & ip, uint16) -{ - initialize(ip, port); -} - -uint16 UdpClient::GetPort() -{ - return port; -} - -void UdpClient::SetPort(uint16 port) -{ - this->port = port; -} - -uint16 UdpClient::GetID() -{ - return id; -} - -void UdpClient::SetID(uint16 id) -{ - this->id = id; -} - -void UdpClient::ReceiveMessages() -{ -} - -const NetworkMessage & UdpClient::ReceiveMessage() -{ - // TODO: insert return statement here -} - -std::future UdpClient::SendMessage(const NetworkMessage & message) -{ - return std::async(std::launch::async, &send_network_message, message, this); -} - -const std::string &UdpClient::GetIP() -{ - return ip; -} - -void UdpClient::SetIP(const std::string & ip) -{ - this->ip = ip; -} - -UdpClient::UdpClient(const SOCKET & socket) -{ - udp_socket = socket; -} - -const NetworkBuffer & UdpClient::receive_data_array() -{ - // TODO: insert return statement here -} - -void UdpClient::receive_data(UdpClient * client) -{ -} - -bool UdpClient::initialize(const std::string &ip, uint16 port) -{ - if (Utility::IPUtil::ValidIPV4(ip) || port == 0) - return false; - - udp_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - - if (udp_socket == INVALID_SOCKET) - { - WSACleanup(); - return false; - } -} - -UdpClient::~UdpClient() -{ - WSACleanup(); -} - -void UdpClient::Shutdown() -{ - Handshake handshake(id, Close, Server); - SendMessage(Handshake::HandshakeToNetworkMessage(handshake)); - uint16 code = closesocket(udp_socket); - if (code == SOCKET_ERROR) - { - if (Config::GetUsingConsole()) - std::cerr << WSAGetLastError() << std::endl; // display more info - } - - WSACleanup(); -} - -bool UdpClient::SendBytes(const std::vector &bytes) -{ - -} - -bool UdpClient::SendBytes(byte *bytes, uint32 lenght) -{ - -} - -bool UdpClient::send_network_message(const NetworkMessage &message, UdpClient *client) -{ - -} \ No newline at end of file diff --git a/src/UdpServer.cpp b/src/UdpServer.cpp deleted file mode 100644 index c513de6..0000000 --- a/src/UdpServer.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "UdpServer.hpp" -#include "Utility.hpp" - -uint16 UdpServer::allocate_id() -{ - for (uint16 i = 1; i < max_connections; ++i) - { - bool flag = true; - for (std::vector::iterator it = clients.begin(); it != clients.end(); ++it) - { - UdpClient client = *it; - if (client.GetID() == i) - { - flag = false; - break; - } - } - - if (flag) - return i; - } - return 0; -} - -bool UdpServer::initialize(uint16 port) -{ - server_udp_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - - if (server_udp_socket == INVALID_SOCKET) - { - WSACleanup(); - return false; - } - - memset(&server, '\0', sizeof(struct sockaddr_in)); - - server.sin_family = AF_INET; - server.sin_port = htons(port); - - server.sin_addr.S_un.S_un_b.s_b1 = 0; - server.sin_addr.S_un.S_un_b.s_b2 = 0; - server.sin_addr.S_un.S_un_b.s_b3 = 0; - server.sin_addr.S_un.S_un_b.s_b4 = 0; - - if (bind(server_udp_socket, reinterpret_cast(&server), sizeof(struct sockaddr_in)) == -1) - { - closesocket(server_udp_socket); - WSACleanup(); - return false; - } - return initialized = true; -} - -void UdpServer::shutdown_internal() -{ - WSACleanup(); -} \ No newline at end of file diff --git a/src/UdpSocket.cpp b/src/UdpSocket.cpp new file mode 100644 index 0000000..811d67a --- /dev/null +++ b/src/UdpSocket.cpp @@ -0,0 +1,64 @@ +#include "UdpSocket.hpp" + +namespace std::net +{ + UdpSocket::UdpSocket(Socket * soc) + { + m_socket = std::unique_ptr(soc); // will this work + } + + UdpSocket::UdpSocket(SocketProtocol protocol) + { + m_socket = std::make_unique(SocketType::Datagram, protocol); + } + + bool UdpSocket::Bind(const IPAddress & addr) + { + return m_socket->Bind(addr); + } + + bool UdpSocket::SendTo(const uint8_t * data, int32_t count, int32_t & sent, const IPAddress & addrDest) + { + return m_socket->SendTo(data, count, sent, addrDest); + } + + bool UdpSocket::RecvFrom(uint8_t * data, int32_t size, int32_t & read, IPAddress & srcAddr, SocketReceiveFlags flags) + { + return m_socket->RecvFrom(data, size, read, srcAddr, flags); + } + + bool UdpSocket::GetPeerAddress(IPAddress & outAddr) + { + return m_socket->GetPeerAddress(outAddr); + } + + bool UdpSocket::JoinMulticastGroup(const IPAddress & addrStr) + { + return m_socket->JoinMulticastGroup(addrStr); + } + + bool UdpSocket::LeaveMulticastGroup(const IPAddress & addrStr) + { + return m_socket->LeaveMulticastGroup(addrStr); + } + + bool UdpSocket::SetMulticastLoopback(bool loopback) + { + return m_socket->SetMulticastLoopback(loopback); + } + + bool UdpSocket::SetMulticastTtl(uint8_t timeToLive) + { + return m_socket->SetMulticastTtl(timeToLive); + } + + uint32_t UdpSocket::GetPort() + { + return m_socket->GetPort(); + } + + bool UdpSocket::SetReuseAddr(bool allowReuse) + { + return m_socket->SetReuseAddr(allowReuse); + } +} diff --git a/src/Uri.cpp b/src/Uri.cpp new file mode 100644 index 0000000..df19bf7 --- /dev/null +++ b/src/Uri.cpp @@ -0,0 +1,188 @@ +// https://github.com/mfichman/http + +#include "Uri.hpp" +#include "Parse.hpp" + +namespace std::net +{ + static bool IsReserved(char ch) + { + switch (ch) + { + case '/': + return true; + case '#': + return true; + case '?': + return true; + default: + return false; + } + } + + static ParseResult ParseScheme(char const* str) + { + auto result = ParseWhile(str, [](char ch) + { + return ch != ':' && !IsReserved(ch); + }); + + result.ch = (result.ch[0] == ':') ? (result.ch + 1) : (result.ch); + return result; + } + + static ParseResult ParseUser(char const* str) + { + auto result = ParseWhile(str, [](char ch) + { + return ch != '@' && !IsReserved(ch); + }); + + if (result.ch[0] == '@') + result.ch = result.ch + 1; + else { + result.ch = str; + result.value = ""; + } + return result; + } + + static ParseResult ParseHost(char const* str) + { + return ParseWhile(str, [](char ch) + { + return ch != ':' && !IsReserved(ch); + }); + } + + static ParseResult ParsePort(char const* str) + { + ParseResult result; + if (str[0] != ':') + { + result.value = 0; + result.ch = str; + return result; + } + + auto tmp = ParseWhile(str + 1, [](char ch) + { + return !IsReserved(ch); + }); + + result.value = uint16_t(strtol(tmp.value.c_str(), 0, 10)); + result.ch = tmp.ch; + return result; + } + + static ParseResult parseAuthority(char const* str) + { + ParseResult result + { + }; + + if (str[0] == '\0' || str[0] != '/' || str[1] != '/') + { + result.ch = str; + return result; + } + + auto user = ParseUser(str + 2); // For "//" + auto host = ParseHost(user.ch); + auto port = ParsePort(host.ch); + + result.value.SetUser(user.value); + result.value.SetHost(host.value); + result.value.SetPort(port.value); + result.ch = port.ch; + + return result; + } + + static ParseResult parsePath(char const* str) + { + // Return query/frag as part of path for now + ParseResult result = ParseWhile(str, [](char ch) + { + return true; + }); + /* + ParseResult result = parseWhile(str, [](char ch) { + return ch != '/' && !isReserved(ch); + }); + result.ch = (result.ch[0] == '?') ? (result.ch+1) : (result.ch); + */ + return result; + + } + + static Uri parseUri(char const* str) + { + Uri uri; + + auto scheme = ParseScheme(str); + auto authority = parseAuthority(scheme.ch); + auto path = parsePath(authority.ch); + + uri.SetScheme(scheme.value); + uri.SetAuthority(authority.value); + uri.SetPath(path.value); + return uri; + } + + + Authority::Authority(std::string const& user, std::string const& host, uint16_t port) + { + m_user = user; + m_host = host; + m_port = port; + } + + Authority::Authority() + { + m_port = 0; + } + + void Authority::SetUser(std::string const& user) + { + m_user = user; + } + + void Authority::SetHost(std::string const& host) + { + m_host = host; + } + + void Authority::SetPort(uint16_t port) + { + m_port = port; + } + + Uri::Uri(const char* value) + { + *this = parseUri(value); + } + + Uri::Uri(const std::string& value) + { + *this = parseUri(value.c_str()); + } + + Uri::Uri() { + } + + void Uri::SetScheme(const std::string& scheme) + { + m_scheme = scheme; + } + + void Uri::SetAuthority(const Authority& authority) + { + m_authority = authority; + } + + void Uri::SetPath(const std::string& path) + { + m_path = path; + } +} \ No newline at end of file diff --git a/src/Utility.cpp b/src/Utility.cpp deleted file mode 100644 index 588724c..0000000 --- a/src/Utility.cpp +++ /dev/null @@ -1,280 +0,0 @@ -#include "Utility.hpp" - -#include -#include -#include - -void Utility::Delete(void *pointer) -{ - if (pointer == nullptr) - return; - delete pointer; - pointer = nullptr; -} - -void Utility::DeleteArray(void *pointer) -{ - if (pointer == nullptr) - return; - delete[] pointer; - pointer = nullptr; -} - -std::vector Utility::StringConverter::Split(const std::string & str, const std::string & delimiter) -{ - std::vector splited; - if (str.empty() && delimiter.empty()) - return std::vector(); - std::stringstream ss(str); - std::string token; - while (std::getline(ss, token, delimiter[0])) - splited.push_back(token); - return splited; -} - -const std::vector &Utility::BitConverter::ToBytes(uint8 number) -{ - return std::vector(); -} - -uint8 Utility::BitConverter::ToUint8(const std::vector &bytes, uint16 start_index) -{ - return uint8(); -} - -const std::vector &Utility::BitConverter::ToBytes(uint16 number) -{ - return std::vector(); -} - -uint16 Utility::BitConverter::ToUint16(const std::vector &bytes, uint16 start_index) -{ - return uint16(); -} - -const std::vector & Utility::BitConverter::ToBytes(uint32 number) -{ - return std::vector(); -} - -uint32 Utility::BitConverter::ToUint32(const std::vector & bytes, uint16 start_index) -{ - return uint32(); -} - -const std::vector & Utility::BitConverter::ToBytes(uint64 number) -{ - return std::vector(); -} - -uint64 Utility::BitConverter::ToUint64(const std::vector & bytes, uint16 start_index) -{ - return uint64(); -} - -const std::vector & Utility::BitConverter::ToBytes(int8 number) -{ - return std::vector(); -} - -int8 Utility::BitConverter::ToInt8(const std::vector & bytes, uint16 start_index) -{ - return int8(); -} - -const std::vector & Utility::BitConverter::ToBytes(int16 number) -{ - return std::vector(); -} - -int16 Utility::BitConverter::ToInt16(const std::vector & bytes, uint16 start_index) -{ - return int16(); -} - -const std::vector & Utility::BitConverter::ToBytes(int32 number) -{ - return std::vector(); -} - -int32 Utility::BitConverter::ToInt32(const std::vector & bytes, uint16 start_index) -{ - return int32(); -} - -const std::vector & Utility::BitConverter::ToBytes(int64 number) -{ - return std::vector(); -} - -int64 Utility::BitConverter::ToInt64(const std::vector & bytes, uint16 start_index) -{ - return int64(); -} - -const std::string & Utility::StringConverter::ToString(bool value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(uint8 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(uint16 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(uint32 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(uint64 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(int8 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(int16 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(int32 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(int64 value) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::ToString(const std::vector& bytes) -{ - return std::string(); -} - -uint8 Utility::StringConverter::ToUint8(const std::string & str) -{ - return uint8(); -} - -uint16 Utility::StringConverter::ToUint16(const std::string & str) -{ - return uint16(); -} - -uint32 Utility::StringConverter::ToUint32(const std::string & str) -{ - return uint32(); -} - -uint64 Utility::StringConverter::ToUint64(const std::string & str) -{ - return uint64(); -} - -int8 Utility::StringConverter::ToInt8(const std::string & str) -{ - return int8(); -} - -int16 Utility::StringConverter::ToInt16(const std::string & str) -{ - return int16(); -} - -int32 Utility::StringConverter::ToInt32(const std::string & str) -{ - return int32(); -} - -int64 Utility::StringConverter::ToInt64(const std::string & str) -{ - return int64(); -} - -const std::vector& Utility::StringConverter::ToBytes(const std::string & str) -{ - return std::vector(); -} - -const std::string & Utility::StringConverter::ToString(const std::vector & bytes, uint16 start_index, uint16 lenght) -{ - return std::string(); -} - -const std::string & Utility::StringConverter::Trim(std::string & str, char ch) -{ - if (str.empty() && ch == 0) - return std::string(); - for (std::string::iterator it = str.begin(); it != str.end(); ++it) - { - if (*it == ch) - str.erase(it); - } - return str; -} - -void Utility::ConfigReader::ReadConfig(const std::string & file_name) -{ - if (file_name.empty()) - return; - std::fstream file; - file.open(file_name); - if (file.is_open()) - { - longlong file_lenght = file.gcount(); - char *content = new char[static_cast(file_lenght)](); - file.read(content, file_lenght); - file_content = std::string(content); - } -} - -void Utility::ConfigReader::ReadNodes() -{ - if (file_content.empty()) - return; - std::stringstream ss(file_content); - std::string temp; - std::vector nodes_lines; - while (std::getline(ss, temp, '\n')) - { - if (temp.substr(0, 2) != "//") - nodes_lines.emplace_back(temp); - } - - for (std::vector::iterator it = nodes_lines.begin(); it != nodes_lines.end(); ++it) - { - std::string node_str = Utility::StringConverter::Trim(*it, ' '); - std::vector node = Utility::StringConverter::Split(node_str, "="); - nodes.insert(std::pair(node.at(0), node.at(1))); - } -} - -const std::string & Utility::ConfigReader::operator[](const std::string &key) -{ - return nodes.at(key); -} - -bool Utility::IPUtil::ValidIPV4(const std::string & ip) -{ - std::vector splitted_address = Utility::StringConverter::Split(ip, "."); - if (splitted_address.size() != 4) - return false; - uint8 a1 = Utility::StringConverter::ToUint8(splitted_address[0]); - uint8 a2 = Utility::StringConverter::ToUint8(splitted_address[1]); - uint8 a3 = Utility::StringConverter::ToUint8(splitted_address[2]); - uint8 a4 = Utility::StringConverter::ToUint8(splitted_address[3]); - - return a1 != 0 && a2 != 0 && a3 != 0 && a4 != 0 && - a1 != 255 && a2 != 255 && a3 != 255 && a4 != 255; -} diff --git a/src/VoidNetClient.cpp b/src/VoidNetClient.cpp deleted file mode 100644 index 44f5963..0000000 --- a/src/VoidNetClient.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include "VoidNetClient.hpp" -#include "Utility.hpp" - -#include - -bool VoidNetClientAPI::Connect(const std::string &ip, uint16 port) -{ - tcp_client.SetIP(ip); - tcp_client.SetPort(port); - return tcp_client.Connect(); -} - -void VoidNetClientAPI::SendMessageToServer(byte tag, byte subject, void *data) -{ - SendMessage(Server, 0, tag, subject, data); -} - -void VoidNetClientAPI::SendMessageToID(uint16 destination_id, byte tag, byte subject, void *data) -{ - SendMessage(ID, destination_id, tag, subject, data); -} - -void VoidNetClientAPI::SendMessageToOthers(byte tag, byte subject, void *data) -{ - SendMessage(Others, 0, tag, subject, data); -} - -void VoidNetClientAPI::SendMessageToAll(byte tag, byte subject, void *data) -{ - SendMessage(All, 0, tag, subject, data); -} - -void VoidNetClientAPI::SendMessageToAllAndMe(byte tag, byte subject, void *data) -{ - SendMessage(AllAndMe, 0, tag, subject, data); -} - -void VoidNetClientAPI::SendMessage(byte distribution_mode, uint16 destination_id, byte tag, byte subject, void *data) -{ - NetworkMessage message; - message.tag = tag; - message.subject = subject; - message.data = data; - message.distribution_mode = distribution_mode; - message.sender = id; - message.destination_id = destination_id; - if (!IS_HANDSHAKE(message)) - tcp_client.SendMessage(message); -} - -void VoidNetClientAPI::Receive() -{ - std::async(std::launch::async, &receive_data); -} - -void VoidNetClientAPI::receive_data() -{ - tcp_client.ReceiveMessages(); -} - -void VoidNetClientAPI::Disconnect() -{ - tcp_client.Shutdown(); -}