From eac1e4a242a04121c5d051ff53a2142e85429c63 Mon Sep 17 00:00:00 2001 From: RevenantX Date: Thu, 14 Oct 2021 23:04:39 +0300 Subject: [PATCH] fix for old C# --- LiteNetLib/NetManager.cs | 3 +- LiteNetLibSampleUnity/Assets/LiteNetLib.dll | Bin 98304 -> 98304 bytes LiteNetLibSampleUnity/Assets/LiteNetLib.xml | 798 +++++++++++++++++++- 3 files changed, 799 insertions(+), 2 deletions(-) diff --git a/LiteNetLib/NetManager.cs b/LiteNetLib/NetManager.cs index 873fed7b..9a452619 100644 --- a/LiteNetLib/NetManager.cs +++ b/LiteNetLib/NetManager.cs @@ -505,7 +505,8 @@ internal int SendRaw(byte[] message, int start, int length, IPEndPoint remoteEnd case SocketError.HostUnreachable: case SocketError.NetworkUnreachable: - if (DisconnectOnUnreachable && TryGetPeer(remoteEndPoint, out var fromPeer)) + NetPeer fromPeer; + if (DisconnectOnUnreachable && TryGetPeer(remoteEndPoint, out fromPeer)) { DisconnectPeerForce( fromPeer, diff --git a/LiteNetLibSampleUnity/Assets/LiteNetLib.dll b/LiteNetLibSampleUnity/Assets/LiteNetLib.dll index 5190cb7caa5d905d9f7bc5b30f1d102202e61f76..17ca8ee9be3e8a26005ee00e68657461a4524ea5 100644 GIT binary patch literal 98304 zcmdSCd7M&cNV6nd%A~Vm<5=j>Fyb3VHrSi#5K49A`YM;f(rz>I_*l+ zIH*Ar1;sTXYSg^O#JFYEtVUzZqDCbqMqeGbtZEiDi6*b&?|Dw$+ubvu@_j$=Kfn1v z-8!dEojP^u)T#B}K4RIG%2Y~O`2WENO5Kkq|N15T=wJxR)y?0nR^N;~-gk&0>fp-LTUM=HzurBo<)o8a2G3sKvSxkDfkz$Pa=N?vEfs+-rOpc|Wozt~>kw~2{AN6rs*$*%i-l; z`LFc!K%(&11HMNw0=`{T#OS{t1ym()$6Xsxi$|w@6x^azxGX&k_|P)A^Q@E4I}7lg z=RjVhNnJg;eKMd=>>SJut^z`2gN#zq4S1IQ^`p5u2Txw-f{?N*$SgY8v>V;LvTPDP zg?hywWiwPz9rrCnUQ%jgPT=RbV3t(p%&HcF;zyb-<;5V+z zP*d{Of?goo+YAwC?kQwcnuH&SS0oB0B0PeWCy>TxPWu?CHeXgMpHNF_no zQEB9*IM)n-{shB?3E6EORhlZ1ss~Yfy2;2xS5|rgq?5?O#zv>aC9x}zzRAqr3yhJk zLfBJpXs|#C@vq@gs78?fda;_4q_IY|RTx9cV4;GK>R=&4V#qtLE2!2{aQqo56l!-E z@w77XBy?f)wwW3WA+sSPnL;LeIMzOhDxHzo3W`7q&1?@NC+y2k_SP7AGB)CggnKD4 zX`@~;jY7A_)6|<%6{>NvijmQlQsG`fqw=J0^(X>qRHwtN&jiMn^ER!Z6xp8cG!Rdu zP+?oglYSgxdGQ&BnJ~Al@t`G!>3#)OO_=T-c$Cw7d^~y&8b$A6RSX@2HUyi34NZU| z9J?Z9rW&BXv-SbL(%49BIFy10GmahVeUWYOVfh;OG9L^M_3q`3&L`#VMZTbv*EX`e{d9T6qCBwPy}Z%+q`bYz zhdzq>wT~>XUzbNL$^+}&%Nw0f%G-;4a2zOa^2qY`*X0q5^1yoc@Os`M!CHlpvxl`<$?9?<&DlKgAn zfx0|mQ65OO>5iSP(ofTJdp$IZBAQR2XA*sak!Qi#YW<{7oa5ms2l0Fozn{m3 zVv!A>U~>S`5QRcg6h2M&5RaG=lbBBsALbELeiHL(xnnIpv?qoDVTXoP~ji+Oq z?umHXmU|K&hFxu?Fek~_L5;5V@fuB8sh5ZF1R36>P;4TKx+hb;NI=ElOE594*PxL*f$BwhY#Db9NQ8mAoM_8E9uG5x{ID?U(o{#_ zi8(oRNePQKMxZvZs}8y_Y6GUb3>gcoT5Z58uyRBmMAKLy za=^!E18XUb>8`@VJr#jtzz|j-!j6DhUNo@;m1rt zXO2Xcv!%72qoXSj8qfP}!X6Zd%JE81z=(|@IE&S-hsv0O== zK;G@NDjnMsF6q-993Ns?xmwCj2{0t3=nmmI;H@mfDl8**lgWN&7U1u=45DAMOz}%8 z`la;0jMR~5yCn>_mMz+@{1XJXZp%R-_J zM(R|iFY=wQkvkc10fCjCZRAhEb5|@Mf%el_gA$bPfa(LCBUO`;-@xafnd}Lg&HddK zgO`v!n_>ehB#Da*BY!ri8dCRAOo@X>{v6=U9h%!&-QC*(TGE?ur$j1sfkU3(pZUfo83| zGV<@TBp2P-G4uZsJSEc|S;bM6<6+R`;)rBoW@(*w?T;`En z&S$c46(4#wVdUcIH3b?jY;m1D&W=Es!s$BhFutDg9D0RQSS!&N*$Jd`X`{~_MZ}eo z)wq)Oi>0|x$Jgb$hF`7V^Af2V@ws<}zp?!*# zLgip^tfDEd18zxsoe>nePgSS{v|KNCNKJYkft{2S9ZH!!RWl2g_1XdV1r$)hk>)R z)^0g~&q}*xA)i)ezdAUPYbo6XY_!x`sT|~i?~Ga=i8(eCsJG*(0+rDaueNN_nbvJx zI+W-VKXe6I)Ejv=y4x;Zn9<-`7rP&J2ug}|Mf7$k?Hs}-p?%E4Hi56S9}IzQ6g8`Z z)pm6VGcpS~9UI-)uJ6TW3Y}kSKd7fY)sN6fn(<)5iZ@h;iw#YG@K^9@kamENwJJ>gCwliF3*m(?+R)Gn_A#W;Wn}y>5 z+j$NE)sgB*7XRI+kRuaFxM+J!G7A_ZEjw5^fe-AzohVPMuu`6O;Usy63ajK9F07WP zQ&@p#s3UCTPeUXdHtf_8)nnw@<*Fjy79|1OormfSha$Vp?^+jXzhbE0s_H-ZKE_gK z!am1QzaqGc*^~{3%&Js|4?=gx7OW5`2&Lda)OYZIC;oo{|6j-dUHIQu11?6MPQuKy zk}gc%?)wjtYRz4BAtctCW}fvcG$SBDJr!C#fEp;YAc#QwB{m@!O>g&o9em2sISuL3HsC{$Clijs z-&DbfqV#poA~9w~t&X4AE@rn*qIgl@U%|EahGR)}G)?t0IYR_(pV3E8-pos&?(`Ja0RD+y@_g5ONPkLfX^2o*$q^ zqjAT`b6jz;5OFFp{k4JAk%(2+8YzriNTk~~-4?jnb`R$^1IQ-q4m-C1B#sUILPXp} z2$271JUZ?huEv}`(TY}f7X$IUotylhuApn(d9+j279w%=??yS&vR za3q{PWkOi0u+40*$>8lCgXvPy+y?R)>Pc)8gpg+(#!i^1f~7~TY#L)g+$tLa2A{!9 zHYvvgZ3*l0C@OHPoD<+!!3?G@1MA^7XD}2{XW%HrYL91v?o!k}wG6?CV+GHqF)YDc zRa-kav1}JM-6HL0x?yk|+dl+ptXbW_S6hj>Q}EQ|-*}7}{|yT4!snqn%Y6_)NCwuV zDMu-(PoPdASu)7_C~-|s?I3XF=Np-*71WuUBN(6NLQDe;$ADpK0~ogV-G}l$dqv-b z<#0NqDXOeeO#rDoe&JnX+7dGN>w~#3=e4~?zVnuTvpo&m(puk9|qPT7h$(az((mLm8 z|HZcc8Td~C|Dc?4Iac;KY^FufW|iUO(t}K-!t&*W5S~<}4XZhl@TMkK>TIYWGtTfL zwMcYECWe!pm6rPw$dUsM$L~bLvHrzjRg{6X{)wzeBouTjKsh`oC`WO2F#in@n?|k@ zSd3jl9dcKKxHt+M>T6c>r$KY$os_Z-JhdELdbyZ8 z*d5~szcsRZjhIlI?hio}v!iy?^vb9`uCorY&iR@1qIPpdX9{6W=aS4?GxapcfH@Hs zwGl-%k8z&|#_N!f>@z^p6*kg0VNP#)Q$izO@KVO^ma+*ctmBnNx|rhd(8hN7Wa7XmaaI~qzs zWIG+21vh}bDUP-coqjVWduMs|tZt5oON&LK5$(tlH+Zpn+kF+e#HAV0h_4IJCY=6y z7OeAZPxd=Ss6K@WnWHoJzm3ujyTR)xo)tAa{S@8LJo}d=AbA7#bi@rp_HPwsukZhg za2oG(3S~Pn))+A1m=kqy1YW+5!c@Si?=%}Tfrf-BD~k-y6WFkNq2;%7)reLO(W+9v zMV({eXgE8^j)vX00A;&Jd%1Kd8%F7hH&aSpQt3Ip}uZ*sQ_UlT` zn4#-1!APWTpwK8I))i96;mJQEQ8-PSUFMb+{N`2xp?WLfHo!h*7th#bUx?f}P&v6% z5ws2d9$wQ$UZ)M4%y<-lhWRjbVHQpjYi5i44XO=oVy32omt)DJ!mvZZ)DDU>-`E7( zbvCU-U~1H@*!=lWnUY1BK9>KDyYm-R(b#S!!EOdASm-FI#zS_@@nBEv_)R=Edk$GJ zi9x&3!z6YYyXU`+T#IE01U}>kqfwKEAGc1j1I-nwCqWFyP5z0nnIO z&3{#h^!7_-Ff;&x=#o+s}_}m%D zyMf0th>V)1x|sVoSu0*OyrDQv^<2wxqN|r`tDzSSDt-uk)3MXG z`x1nfc_8|W%pDC=Ps&49?r%uj!))44NBnv56cyiB>uv&WFx^E3pkDMdui=^5t$t|Q zqO(kLPHy6!m+Wx0mwC%SXr(0FCb1rLd`sJlw>GQwJOC=<;2=Z$1gTY*U`A}syI2%D zBezSn26~B?d3w>%WYUi1M#;{M1egH>r?a-aEeN=nYJ;*kBzd;=RaJGrZ(F}sRj=qc z*R1ylWEY6Z>`9NOk1`q%5?l{8OwBG#zWMz9}=si&or}Y4W0xn=-KyHmsw` zn`mIR063!BOs@>rWF@vYH?P>4Uh6?VvgIX|y}~?k=M9*S_=G2}7`JL?dT=!97ld@& zNhJ2TCOM8dJS1cpNi%gYx-|x6k5kJKvm|zzyh0*UTyZd*X4@f>aN^EIJpLno>~|C+L>;Ix46B?d z#W55|F+w{*bZcCbp06WbU7_A<^!fm8aDRkqH1yy?tS)<;ER-A#G*@k}2w^oE3N<%&f+QpgfJ~IKxjLK($0;{Q4CI~wfukoF zNla@FK>->XXUXzU1I<;Me&-E|iVP+qTC&i98FC9?a|3o^urnqsdtNrQ^YN*?l60|B z6B`!pD-`QIDim&v3dI1<%RHQa(iitgTS{#!x{Jz7j!<3%$}7`sv$Gu=IwZD3;pDDB z?ip&}p~i&Nv`r*W8d5b4G)K%EyqJUAz`QAeUZ&@L8OVSU4RhcpsU|eFJ&<|2K$8UWrAF6T+g$H)SEj1rgHWgkSR*fs}a~yqTKDGB(Xe<-0>>?w8D9bbAR6|Zi3QtS47TF8GEk%FNsJ8rI;Xi_x5{=`~ z*TY5_6|Bef3RV^e)p6vm2xW~Bj)3T+)`A^vN0vCRK_+8_6%}ZJM!jwhc!-xtQ6040 zi=ZfNo+;RwUHBL2@(i)MdyrJ3FO4$vwG)ggyoM;g@d%X5zf!pvgrqR9?Xi&|h3P`7 z@e;$cEax35hfQJRb({v{YSx2j5#eF!&W7nBGxDUo9rvH4SJii-4b1$vgae5Q!#cl> zs4j6MyNdTZif4&Qp8v4X&4x}hiIZ&crc2YG3D$R32XP;2icz|-#C;jrZ+RaAr?098 z&6wSYNWi1~ln~vqCq8-%GG(kQ@hfip#C6saMsD=r$Y0~Rxa3Bb2YT5!J(m(kWh>%A zr$zJVxF&rNw%RB5$zIveTUia|)1)y+45Z@~)xm~dPFJHzjxP<%s)GYNQ&6p4VT+zH z51{UxA3jF?)2ank)hV+A)Pb$bHoK7i_}I^TYySkQeVrz(tRc+<*}4>NJw+dQ4a$8~1?d?q-SY(JL3v)Cib- z#|aBnE)R(k)8w)+dK7tpFWxYR<>&gv_wEzG5xYsCA7 zDqr|A2}XE_@j*Q&({&KPS9lYwjXXndrY3{9OxHX#=QFxX;C%H1*lgKBZ>G`AjtwTd z>&$W{%@N)9Mw9l$o^RDfl^kHGvZxJAi;DVq{?GnigQXUt4*bL9>z5G294PPs=t(?q z5Xpy^rg6&)oO}3FgjxN1F0yXoiG@7lWD|Z$a(YOo!7!tQOLZZTHxTp!lBR~{Bi8wl>WC^*SL5@(K={TbN z1=7RY)=aGr>-dfi3^~jc$}?9d&J5X;^o7>JoHatfX)lv?Yp5;12IQzSAAr{4p)c|` zJ4*)&1VciC!f^PcxrT&H?xj^FVir#O`ffqh!_nXldL_NCahBpV%Zi2u^r_UgHQk@^ zs^VUTnzRpo5kigiZUqS8<%giTZf#5Y89caN7pEb8ZvbU{6}4-2G%0h7cM&$cNx`~D z^{y(Uir?zrCDC=+ZxMXW2w`-Oj+hCj84I zN@YkjEL9O<2i zLxWdXNV6l3Sxbw{K++2~paSh_xD<{z-59f9!n5N@TjVwJoX;f(u93#%MAkn_@>66E zTHLwQSjoyu;oZWzVC-f zvzzAJ&PQ|2oG;+ncLxIhHD1obro!!)!~Jj)@Wvtu=bE@P_H~fqPS!?1$)#19@u7&U z+_{Mzj%@FY$b)<$NRA|?zL+_*oMUf;uHWwS#!O2&U3YE$2uXU3u^5iH7xI9ixL51d zvAz>7jg`ecFbrPocHTu;&seK^y@gy;Z`dD2M$!EU8qs4%=SUVKh8fKdYk?~00Q@@szY4hg|9=DKf8v5j?;A!W>10mO9n_W`F0{{p*JHP>v6n`A;G14LUc_G zFHm@epA0x^uWhNBtkl|N^=p?8jFe|-;WsQZYNvt_-IF6~*DrU^ld6qqdyYi@^qAN2 z$`ZY`m<(1s+B(Lz>z2hD0+V>=lUZ{n5XTB_0Q)l`pgN8k#e&}1Y)Jav+DzeI1-7HM z!J}$+u~2PjS7IEx&mOOm>AkdTU>2Ah!j@q`aydjI$?lY|=05|kn;thiUju;cIq8n* zfLM37??yLPlhrRRr_)sVE0CWTpx?vOy8z9otuH{sAF=>ED2(*A=OJG| zvO%qFCZRWSL_a=Ny+dmv*2;wJ>B@UVY^M6;Kd`4-J%wGIm){1B8(@J!{r; z?WCS$o2jr^8!X*&x1pFsH@Z3@e_A4dBvoZ5>LeE(3HN2;e&N?`-p^tNfLsbi+A#1X zx_(_YgZXbVj|%ez-eM6eURf+=CToOyC0W|^Zk0vvCL4L)EYc$rE?tifV^XP?mAbp6 zF>!5#8LF5u=STw{i}68Y)>n-%n%Hx7D-dO-u31_=k1DU~5u(VlOPTVDD@guw`252;b zy!ls<$U{bc7gcr*m^3GQ>onLrrMb?%7O2~fL2c2QgyuRR(%&AL0sfR}%wW3cxQ<6` zx}PPmcJP;Q)2YuPK4ha{UOI7x;J_`cy#4b8Otrb^i^IhTW7J_#ZGsM~sYCbk$l};7 zGcZh#VS2#GfGW|0v0CPL~Q z)Z+lD#|=`Cj)jSe;Zt;pVsx@X@FuRN_uh}-5@QVaM&yzCht3dAlu3vA?VTubsbeR) z?ir3&8MyR^w~lPws%=kJ40GqzvsH+oR<2Z)Q&BOApRR)4h*LgJPSNM1=2@M<;36O` zp}sRDmxMAwxiFN--2`Ms=1d$kvlbmSc1z1GA(e2E+vzZdF``g|yVb{=f+uu+uo5oT zXSf#f;tmVs%^Jfk!-@9caef^`r4}$!*gms6F2R`x`W$Zv9d@P~qw9hAkTO{huEVcF z&EVIfI!6|@$EI6vXcKJ>`fC=JXdA4t)fq-= z46qe=S>R&e1|hfJ{2Ot%3ylOj(jkR(Zv!oE8kMz0f#xW6%Lc21N$w$)S54&628qK9 z7CEwJ*)`R6HfBg0>&7k6Y%_T2ba%O@?XBDxt|7M$DS^nHgbi}s|1Y!;hMB0@!uJo| zFQH0a^md8z&3gCCrRY~ATB+1$^()wM_YPp%ht2k3ETn?GF7s6(;kIZ)&_!2pB+=9s zjA^jEnw{di+-A~+D|Ciiox#PZjsJdvExx7fB?Yohx_6WGsEWbQl#zyZBkiolhTjwu zo^M=2m)=-8_}#KB;W7_H#+G{z1@>L-SZ1xlTyA{0IqRklV-RtiJ+H3=U{cHC`g^W5J zMOHC9xpMG0)I0o9Z<*Lt!A;xjAM)Y#Wx_?zd2NuNi=nt}dv!_NjgzdN8hm_~eBqrxVl!xM>3h^b}0zvzSgmr^gH80^e32D=2I0nZ^O{7D{JA0w#)oYj8 z%hQRqSdSUBOZn5qCf2543|Od0xh04Nmmrp0f>^W<;T%DW{~dB6B=T!$wy}|X%+z-! z5g-})AZVo$MOs3BqMj?A?8!Q~0hZM0O?Qmc1k~*Eyj!JZPMenp8|neUG~LKkhTbkn6>!^iF*id?e(UPu&hK4`W~(3-YYJ>HExO;FSIc zh;)q8{ROMBWU33SaYG`E55;-W=pbI|!YH{6r22aZ`pnqi9ZGeWwA&An#{E6V!Nr!C z9om6T_9K91uMtkmtri>SbbpMeXXG9Py3I)Spd1WCa=tPHqtD^sVpcLzqsl;hDJdUAfLxE`(edCg-hIi204@gjd?Yzg z6~T`DekWriTgC^&{Uzy+Og(`|s;G`wI8l}9iBkFq%Z!wlsR3Q49s;CHVIBqdo}YSL z8*Oy+!K={rS6}$NhS2;Q1BWi05O`O);3Mx0fq%_en@A zG2I{<`4o`ZDv2k!!{%Vhi3Oxn{%V+au2ZRI6z{tj>Qs~idy7iT(GnKI5~OuXZBdz- z6qc62c*?f$6f&j^YEHJdhqd0H9(KZ6JFK-{w4<+x%Juxyz%BKzBb0-ptS<|g1@pieyD*H|R}i_Yj-gy&)M&Kgi$aUntrlU&-gyk1{GYYWo&?E*d)A@$<-k*1<= z9mT#S3lk&HG>P(6CfS&P*JmMmOSHlkrA@U$37ipN1Z913z^-?kaEQ*j7T?EXzL?d= zF&QVtvZw0h2)+Q{2&4v&j|Cf|!KURrG!Hf%9}9(}_V#2nge!+9t?0n!8HBXTw#!cN zFz*5Frr{~dDYp4Yz67mh?~S8nC`=NqJ%o1FY7=3jL1`JyA$1b@9HVdLZ9`Q*;r`4q{XF8IPe> ztIPhTKb>o+W7He_>-z&-%ix<~JXglv1e`CvMiIeH!9J)T_iVJ4Ys2or`Vo?{1Bp&6 z0I*Y)DVSGWVf_rX_0}(AF5RTX_VK&M1)3S}jZ(i$ixmcA_O&SPWnj>nf;8sxJfD8V~fj^dlY6j!tEUoVuh}K zGdd&72%ER!^AEAzGe{Q|ZI^W&hAVlAx#CTOTE!))BB z_pS(f-nkvvH0C{~T8HW{5`Q9;tIGO7#}aWD+?5b_0rgKozNPE5Q0|{m+(c+rsY`#{ zzwE$Q5y2-WK~Wi=^&0|qf%KX>ERINyKy?wG1DBaqxi8_^gc)k79SP7w^6B{(K&+(a zU)X?{fzi=<^@U1{J-K7NzRBlTL(3Gk3Y3%|>tJ^6_cv-r!&GC5L1N$I%iXe9L^r;U z2?p6IaKMbe)DOJhQycSD?<>4iCez&Q2~} z>t;lkCCzZWDtSF&z*G^l(nEn9sOl05(3pYk*RHJa2tp)iDq~_xjz}p-3y-0Z%_&D&f~pWy zrN^p*xP~%Tm|WtGq4I1IVj9aaVPeJ$rpn_p2FA40Ft@KPR;(JBrq#eD2Z;46R|Rx) z4e|9O@Rh{ZuQtrF8XZ{~UKv{Hn9Vf?N30LA^tLiytBSlNCcF^itHPFF9%0ynsahb%64(PjxQMYEAD6TWXTYFB z_$s`ecM(hVqce!DlJ;1S7CuvG2aB|Lg&(&nN!yNsQu7$Yg<9)09Tj9LxfB!jk}5GA z#o!{jTzbd6S)Nz~^IRlP*vJ!F3eG|n$7?Of(MgKA`l;!FFXmwCQY7ni9McK;P2Pps z0*iweBN7j?N6H-#zaRo^!e!z;k!)KtD&5j7ERThsevY4iWO`8N_O}g+$3CegR9p!> zmf&3fP{>LR5S~|rgZiV6vWGJk?Sna8RDby{buK84R1P85o2VV%RS~6WJ#6>%fx}qQ z2WGTVO;P6dQ%9xJM{^B3K>lTfa)re4i0d^gdn;E@@OmYFp@i)phqEwS6Jj9e83oox zYUy6_h1KoGw|?0O&h@y6$Rf&kW7lLaWag3HXqi8r_wv2secT>+H;t6LX?MAiYcJ$J z^?$|t_`TwN$R2n%jFh`!cezj4E8ZOIM(g|Id9TPzj4mXv1326e9M9{ED4$piX!EZl~;Mo#^ zFC^OpeM$RW&)FuraRsh^S+^})cInh}%vPpvn;)xj%#TQazEqIsD*ZjOnWM|<`tVZr zz-33d97bv}Of2_;E{yhoF-yh*eI|ghM4be?P1PxU6}}c*Yl$p&i`~PKOYc7i`OXmM zusB~PFL@zvWL*f+@;cyIG#s!`URI1?!YPfZ^@0_GPx=9gone~m)1M~yE^`YioQa#6K#+{>h5-?W zL(@X!jxXd3I?Oj4EHI)+d7yPQQagf@Xxdvjrr~l=W~^Z@2wg!awWCC!4-|S{WC3>aJY zn6GJ1`3@-M!+^Q>`9AT#%s2nz^X;*Ihm`VtSpD{x@6eCWSHCB{99+tWHPasT@_(A| zpxw*cIjY^0dyo^m1-j9(Mie1`xfhv6=lR2^JV9L$-)p0}>H>;GKa0W8FQx7Ba^g!G zVtRO=*2@bEFXaW=AJmzRR60NV3HCJPZxpNGz#iH&C~w4!6s%!jq-YJe!Y#sqEBRyH zTF#$$iG3mVPy$7zt>GoBvI;Z|>|TY@<^2D?9}f7*%nrk$V-w7G}^R$;e%p$*8`Io%=gz z3OKN{(qH;WLNoVfk+Naa@4yk$8fkBi{jg!2jShkWYGO%z3HJ9O>ZlmJ2X{$wZy;$y zC_Te8+$5GD0E5lr>?;S#jFv}KdXA;u;xZSS&Q zLuzgVxVf(*hQ6u!p?^kmI2;pxf58*{{>q1ZN9H5={T)Q3_#FxxTuXj$3O}RpmS*%e z9%X{rvfk%sR6H}))(9E@3Dh2Vev&-@g)|EH4xSJWX0r#L{}$|sdjAKgQ9QYh$I?BT z`yZrHkMH3Lp6~CTd)LU^>}!_n1DwwMA9(pyK=KFh&>gQ>BLk?i(sh2WKi4zAiBuMB zF~8PIaCaW|hw*U9BjoW2mw4bl>1a7{hqGLc`Q>7|6-XTUqg2?2;jj1RXQPWg31FOj zNiJ6jLVmg4;ZFa^G&5ISOgv||L@PI@n98rT(u-l4nX3V|Kt}#~Ltz#G-`?Lg@KJlz zaZ?mzxY5W*x+G3Zyi5NC7=B|Rh9qok_T7Ojc6bLap2dNY>x6ZPbl?Cx!_QMBh{cB} zUBSvHtZ=)=a+APkTM?;8=J0DAPjc@^moWweIo#}U zVv)XY29VKtlKbLii7h(udL$0M4M&bIg0upquWP;zU2cd5pOlra2wiLBsm2^m^vM%@ z6!@0=li17gcvj{n>J%&!m{Jm@GKYg?=E>?5^pav89Dp;WR;L_OmVzUArl3ob8_!U* z?3KC6I%Qa=lxkI(OX-w{b;>Dad2pwJ-0sjR$CahvmKam6)F~M4ymBJBjHG1FNAYlw zMKo%G44IRFhMy~kdOs}6du({Vd}L0MNq}ByzBkdKX5U*xvFZg- z7`uuaPy!aQKV4ytl}|c$`l#_M@VUlORPU~kZ$!3hd~!SHAwp5l4>w9|?DkV3MnfvW zQFVgRq$BP409dMlD8y<~aW7V1jI|VFDILRGKPfX+M?%zYU%z$|(etq*QL~)rI|eEv z6+*~QreV^9y)L^9;uSWaoH7)C+Pe%Af)skR-oG^EcRq_b3#wtyE>q#ulGSYwzFdJ1!jl)NA}eJ0EbEJM5l!EHMAcJ zK++|}B)t~~Zzq37iu@YD@6SbwBEL*UiQfk-V%*?mK;f6>A=%~Pl={Kmm*PK^thZwD zow96fU0sKO!koZsbH9B(;SQ)QmE#+NmxSM*FV=EYmA+G!z!hfF56W7DEn;M zgqcc0BwX*uPvh*WgBgy)X&f5X;!o^sf;#PU*2$*qleMe%TgD3&__XB(z)PFRyl@_P zO&4Bcj1)`EPDO;4>wol582Z4{brTQ0=leU}dS*laGTy~-G6vqiz}RPFOB}yskBBZ& zslWFxPhroF=K#_lO@7qPNi~x8NDpNRnBrEOOiH9<7U`cM{W#L!p{Ytx|GVG_|!bw7W*CbY6)_m+U36xuH%^x?lZg5W3 zh%XS~S9unvk<_r%u@(g9+iXeOT41NB!cKe^PLhRSae9-r05Q_xA(W{@L5_Da!C+u< z>ApzeaL5Na5-E`bj(alXK{ID4RtZcKM5{fA!b}(YgHGWH=EORRPrgykCqA@^j~-!f zVcQzIKAWTH1@Nc_D&m z{ID;d-Uq-l*zO>qkm(fOvTVq~LYxf{O0t)pvZvwu#0hA#dD3R<$T^PRbHh_#*T!(T z1u~`w&xYmlM54en97NzKjEew{3k#4RlUlSn(>m~$-=cIdxd^|B12EfUjk+a^Gr9cf zNLjkho)*AKOo0HdMUonQP|B{PXW66y{PL)Wtp*mVAO*i;%ssSEpzQNdc5Bqc>q}x0Q21BYz}NwtE!9V(T$K*ReYP0wnqQ7w(>a5%XL8 zsK7Y)=yEQ17vGD|8N0zk$7$Z;oo@Bnt*of8B zs4Ocb3-MYr6L2T|BtXTsxqEOk4Ejl`TNXm)Z;TG!jwJoz$=6|V8~)#D@A`1QFO259 z_q4Pn?n!KbEn2P%v7nMwthc)wAwCim3E|UCy=Ew5+gn*J?313%^pFe3fKNH=zKShF z{E`p*YAG|e(6RmOqF>0B4zc^GpxX#KeBPCXEfx=g!cGG(OkC=M^K)w$#cv+45ZnDE z9x~<`{ARi29hIjtm{^S8a=91m;%WSxA-b`%*b2@smdt&d`;nJ_*su(y;20dd!EfUe zp|djUjVF)yTgyzXN77k@3#^Cn{MsM0 zo#dx^*$5Y)3}jp4CwbWj^UAE)*O`2>y^^R$fx6~o0b9OM7HOa?>ENR0A`S1^LcckL zj$}9sG0q_@{`L#M`N8k@X6-^#0wPX6MKp$H+~5Npyh5rsH=b!62fbjq<8boL%9baH)gGr8^g#(pz#x% zY<0X%nwc62Ppu2#qnl+s3rNe!T5DGwi>kHC%Y@b|Lfq{VU5B~fR;J-cM`>8sw-e=DR4m8Waf7E^yh`U6 zK;b+!zan;MiZ9rcp2ynZT}@)Yer9UK)7Gnc?o2=8=PlRs?sI(yXOy{KIS5yuVe8o zo-L=?4~i<1Zs3`9nP6UXJ?-)0T*>EE-d>53Ig3(+AjOeJ{!`EdPEp|bYAoa%x0CKC z9^WrZnvwqslPnj*lFe5dw0^%zqgQiWKrn^Vz?j_xW9$)AUX-59* zOu`2#NdFDNL0(iIe7}WIpIn0O+nNru5S!PcG~fG$?mMJ=$m9E6Ni*`_W0K`!@@Bi= z7aaKhfJpa;2wm_Kc^}Yp7z%9nM?M{d1RYp9%q#W)yAXNNj^w+N^w5!(1C0RspCY8t z!uMyI4sOwQf9})$Lg*eP9pn_gk4c)5f1FA9r62_oGm5mL#*_bE+>X_M{l z^yz*jbWf8G^%1_mmNfik1CuQG9MV4{IPm=~k?ykyU9^|*eNNM1)`B~hKHc*|_X6pl z8{s=FY50;YlkjU?kfmgs9N~Gs_9N5-S2$5-wWLzNC%|}-#;>~-LyX8 z!XmIgi@oUeh#bwn_$M!IfeQudv=xXfWZIvZc8ZaD4Nv?KVOOZ-1I!jO0kiPBPRYN4 zC$HiVcHzry_b-wH)L)t8{tcm*jMm_BRsQcx@bj!=o;UqGZ%LlFOL@?`{NcS6x(0`d zfAC=y{)q>EBPUPLyqs$ue4P|=ZIY>fAsTnzA<+huQ=*Dhn>FBOpJ$oOKbN>f<3hyDnk@fqG??T}D zY@P>SjBx`m8{%F86ZqQ{c{IAy;e=o&A0U<)r!mQ1LE&X^{Hi$<1BiKFSs?$OAIQA- zV|f~6Fp{TPN)r{t_|7L94qLhW@J*i295!!dBI~7L!|1y^0Kbsl;GA?nHYpZ94Ps|{<)2cIRTYbBo;pw3h>uvSZX$+4w7uwb8twzSL z8bisKfZkDwv5!v9D}D;hR+B+h8J;+U^oL8{%lBa|j*+q+uXu30qrR77_~Q5n$J^>)gSB{b&g+fUDr7QL5`Iq+ z{~rne4Q<%!x)$o~XbFEQ__IWBLz7vfTcxHyswd?l(b&Q|#?KM{7pGa@d1HvV5n;7@ zXAW~sn@G&2F^n&6V|?>W#?KebF+%?{$m6KyM%L?BV_27`1oNdS#H_Aj_(+uDr3j%P zaBx%~^kA#YgmQAaq0>=2_hFccvhHVeF#Kc_!-FLJgJ{DP4KI^=oi37J2oB&QlGI6f zX8nP)Z8d)~@!e9#&rRuVs#WXaA?Rm}U``h;-Ox&!`)4v-jkciGevU>B>kgEACnaR?B|mcc{X}x<1VmZh0n`ELP*B#W+r|*; z!aI+Y<;Dui(udXDW~2>fnKl;?^WER<*vH_TLCXbt0??s=j+1;&Bl8`BH;-7}N-1v< zAaZ%Ho?I5;6p|%Gt4O(6oh+rVnc&#>V{Oj61~ux3(@41-cK})5JdyJh-Vj2*gZE{= z>(mbfs-H^AuLxA5ZV~7n^()~rL7;D{X9T(pl67Dw=Q$~TMT}g&r(O~+4@et5=t0*B z^oR#tBG4}YQI-!NXNUTwmu4WXL%pxY1gOCuOeW+6ngJH^t1H}6M z1Qrrj@xV-hzA4azz#LF2^`KRi?ojE#T*LZby00Nf8b8NLnA3#Y~$a&@~v72+bB~ibsier@`f4 z7>SuSPoO*dG<2{)o2F}MzCa6lHFTsvsaYDrXH>vt47P2^WrQqndAE)?iaNh<^{7U*Gth5}mz z;z-`1E(}~M&_+qSIPe*PPL#AQfy)75UoFboUK-eDTm&usP0}v+py!dVR&5PjCuud9 zO(fLSft!WP-;hS=c7YC-v}*%*3p7KZ>jK{rEn$s;8N>B~?+f%Wpe8^M3WRwd{ND9} zM+D+zq#e+s0$l*gG@vI1!YT@W@A|;61zHBE2hei@9SCR!pce(g;sK|J*9U$lP&c5t zfc`Adm4M~}`l~><06G}Z+X7)3fiLS_ANZF*p9FLypnnUr1W>K|Y+#o_SXjX)?g#`; zwpbKU2cWP?4PFaRMmIN#kO*ONP!v7*Oe1Nrcf%V{NOd>}o~$ zcD5bi@3K=79yj5q(7^PzKEy9*pBD+J+DZE&?-#~uy*&X5kE-4un5AKcLm`I!5*|qcLl7cOH-Gl zUIP<G4e`Ce|we4!* zgjc|aIt-{|LhBGNs5%4ukDZo7*qAsMnC{RD#Lt*?0m9Esx(MOnlP*E{e#d19!=2Y5 zT+wke!W|7?1^wm;_aKbSybqYCs(yg@O>=(Ac-!NMKLahbs^Q5y5r2Bd6Da*Q)OVt~ zt?^k%^-2i8vZi)QIK76F-#(6E(`<&n$uPBIABMlHAZDD@u1msSWQl*Zm*Jx648JRU zK9Ibr4$>b14(;kklV3pUos${AZOki(&lp4cyP<7cJz7c1)w78iUyTrbP20>L&3s)6AXLVrLXu09Tj5^M(pbBz>i-I!Mug!_5}qdE1N;27XpQgGyp7Z=Y8igB ziQ$(J`d0l;&AY(t>|pp7!V>;{U|KQ^KM22%(%+hutO=;sB+NpRfcnjB42o*QM2RD8 zRo6}o0&~h#V%`rv20Qr%ETmOk4w+3ge&Rg{+hOgk>eu7$LwHx66Khpwx)!;%qQ&7= zB+R27;R%Iv0yeO4=vCks4jG8Is_)NUj8uF93GoZENpQF_+lnwAq?Qg&lh0>nFq{MW zfcly6c>rECpk|JL0-+oGD=44uTwc3y=uIi{J0kxbz_hAwOZXk>v$GJkWBs=iEiw=N zw_SCjT&&yb7kf4dF9e$psN2mcs71_Tc%#W)8L=3C)7*&?TdbW??co;=HFVKVo-wyu zy{fs7HEorCv8lcjc^7w6&Q6D6qr~5eF#dk#v7(>VWXQ4@9@aQ5)~zm^H7nMt zo|r=UyR!Qu9?2epa6jj8@T^Af2&jGuZeCnWvzofco`V=F*gv(D0I>c}a5k@;(b7l~sLo%u=tSFIcL& zIay<=cM_Cj5j0SaUpN#%u2ywGJ-G$ikA>tfOgRqWIE)AZHBZKceK8iasuxqIfOE~* z!5D1Pc@3$LIp@ZFyS=o2Gj#ID$qaW%_;}OiV(PiwTY&#e+m_hEp--d57Y^NnaLLf` zp^aAc9>!L*l(gp22;0>yZIt$yeO{~W4GdV9#ccHw$6wD^UpD?{AzK{=+pyKYqcQY% zVgl-9hkU-}l;RhZVKn}8j`mS3{n?IH()$>GE5WcQ!tj)KhF=OZJfM%^-4b2_4BC3a z*HOydEgU=UL|fZxBW&JQQ=my(-Db1xIPSm#TWCL%yXhPMRX;vrtHv<~=x>=$%I|et z8JhvCCVu7QSqSf&G7sT55{K-DSzk+IVr z;hE<0(Lg6rty0HR@;&+E)2o zET&czAsZ`!PZpt9VhLzNbJz>SYyVUi_nxvMO+vH^GNVtwRQ2fV%nX34u!qq)J@r-)cgW3RPRo6t4ZV5l!Gb@fYp9c*C>cn`X z(>^(^KR#9c)`KQXQt$yYJ$ka)K`)Pp7h>QO@;bZpO&@m_Vm2Wn zOVF6ihWJ8!Jy`S--r09ie6gw&1KJY)3!r1vfgbdo^k?Er)J6|_8ql%oYXZF-r~uCa z^>Yt;E4?AUT)nI*rSucj8va+0`>Q4e~QOmk+j;~bz5NNa7 zui{Jblhk7DGO^$Ou=1YxYIU;*J&V29HR^I+Zb8}+ecz9-Q8yH!AII0JHw4z7SlV&>FY0#Ro*ICChJL3mq1{vHXo zb-o%uTV1O2skHq@{5~}R&_gq-0o7oii9PPB zS+TmUs!c;p*5`D%>sQp$=2)u2zThnkek$OX0fswQ8LQT>+cFUTycFNn`rzKBvCn zL08T0tNXlqtO)hj-KhSK9XE2>P&vQu7F9Wo&}Q}f3CGsmrWSk9Greo-?o#WpQ^&Ng zP1{^|pL$~kp^H?acXQqSYJr@5ZB|VYa!K9y)TG%OI?~x*_d|8>973DbtM-f7Q>)oWLyKnJSoe_n zhX>so`EuP))Rp~AyGXs;dvD!O)#CjLZBa8DzhC#LT3dvEQunwzuLwO}_k`L~gr2GU zmAbJAy#UMY>UX4!nc?%~S?`t%{=L7mwqpLCw zn^O$mS*k`~$4YyOF+?HnHSWxTQ;g9XZFBp9rfKvU-msf$%+@H=;{!TdqlHtvh0}}{ zjhd(UfD#(@;2p?QjUJ7*l=y%)D+CXQeYf#r2jv!47%wxrP9zJ1g{K+&R2d$4@WN_iy+#eLF@-foU@l2sC*I4RTv%&tV?^m@ z7M@`|qT?D|b%kdcx$|tv`ocLz4WkWWl)kBJwa zZB)!BEi~ucn17D3Qz7K%7UvqjVYJShUzR!WT;q3)db}r<`GJlqN$&;uYYNXZta{S2 z&U8Dt{i%db(C9rENeT0ZIN!npCIgI+9L zW&FiK`wQ0^MUA9$16Dzg4eU0CJ81X7%Z(}rJv(r{QSYGr1FtleIOyep-!|4b=>37; zF|K6PBc3aMvG5vWIlcCP96lcPX8sMvY6rcWf1|O%L9gZCWPIO2ZgI152cvc3gHazA z-fURskd}4g?16_0Z!u~#sxJRW;jKpFxfItUuELqYc4H@_bs{#}6};WpL@(ze?ssEu z%>R+G;{t_dx(#uMv12izbz^kM_XmrtXN@~m9Q%-Gjr$p0C+?rLAo#5Dh(@g=rn-M;ly*=K*NN5<=LVlM8Z=rr zZE5iLMvH^mgMTpgtW=V>m0ucs(HI#gbd9J#giXEcNx(> z;L6}D#v=(z*CXC6x-tL13|}XqJ%Ua$_8NDrBJ{YRlZ?H_ur5L>-Rs6;MoMy@ap01a z~V zi#19Pzd!hA<4OlT7(8g~bkLo_zZnlZ=+WTcjVB$nE%>SN2M0YFJZik|pyz{M7=Lom z4MDt^#{WI;8WnsuA8(s!G$r_I&@De=$qnA$y7mP<@>7leRPcuINCU4f()c@NETIgI zUgEf*MypB>n;tn>qfbsC$q^cz=%Tpk8jT)Kac3$dE*x$Eov+c|IGgdx%N_J)eun%H z2fZE4l)rM&YxzF8Pa(Ft9Qm$;-p$XEhaL20en7grxekzgJD4jA9E4LNIZPo@G5Nz_ zft;(+yn&em3*^NbjUMHh$#=n?pDgV;Cy3!v*Y>X>d7705#x zEuEeLRDZdWd~CWOXop6-rso5B*QvO>rU!vqG&*^D8PFpdHBA2+kZ-+`Y?wY2=p2oH zfPN^Ht2Me|(5Rw9dA&woU=>s-AJnK|>JWFKd`+YGf*X+TGmTydjzhZAZ>k*rfqpNP zl^XqN>?Fipq|r}CO#}LdMtM2wk;APTJru+#xAbjLS{{O*2+H{y-8OD!QBbbYs9^M2 zKwCAc8on|;2l4B48qF(OP*f(DYt&V=FIXmjsL>SkUzvPB zqe1AuGWnQBSEH56XR3;~D z^jEY}nXJ?3ztBo$aiCp0=d_L8C@ za=%6g#&#E-B>$n&JHZV_C(8lfQn^1L+*CAFj@IbjQQs>XCeP9+C+GU2;WDbxFM>B0 zog%kuR6l)t(FpmWMyrZ`Tr^Ui{B5PP8@r`ZvQi=M2NiDs%~ps<@hG{_L5Jlid7*=T zQZ!nwVRW5n7{04$ti0Vpj~0!W4{G$o;L}Bu&0=(>M&pa#faF3gDNp=;(Nr1I=ApN9JIISRQbGvYF*Q1 z##Ji6!_)Q`Rmds_8KP2lIq03D)8zdQ`k?4^`JRJ(g)`)!@7P)W5U@j3EN z2MsSiSN_yNV~Wp{4>@R3@%i#M4w_zkfqcP1RmF>?_j{@if0;hJ_(EB!5n8^WNiKF! zKrE3jIOtCWA$iUlSZd! zU0d8PH)wR5|Jve}@@^+?TX9mp;KXe!UM)YfQT~qNOJwe~s$|dkcNDLc!!)`r|7XQt zmlrv4KP&!*yjG)Wqw6!e~PS>#hc_#2fb5#mHfL#o^nz09hq@Gr$es<#CK#~8v3p* zQAki*ZY$e z1OtdW;Gm+CYh~$HB{?d%qxk!BgoA!oe1mLO$XkqA?MAtRQIB`X@Hg{slt~?T&B=pH zZju``dVJ6u;wE{mmV9N90d%j98=O77WUKs79XB$24A38R+`O_k#1G`_8nu-Y`jbYt za@@xn`KM1V`GNdQqkGB-SwG-9c-Ofn75zZ^HTq?F1>%AleZc5z8ok75q(-v_k>q4X zJ>JEGW&>5}xGx}iv#ir`LB!oG8+F{JfypJe$on*^980M9X1k}|;ublZ5uK&KnSYCH zV|1NZo7Yfst6Z<*M0hIRGnX%Dbaw@zGj1U*J)-3lLVIjvUR3fQGH|Pki<=jh+$Jy5 z=t8-=nk#vju9YpCq>y_@P z6Zd)czybes(2?vzC1^aZ(c=cCvoxX}v!u(3`#igBfX6{cvPG%aL6k15S33O7kkz5-q8uih*C@m}OfhdtlbmASmL@sH+@aCzlEdaybEigUmmHQ;&4(0XEz``$ z7`H&UFm7& z5skVBHI!DF!P}`U>ZE3-NnzVh*ogc@eMXIrd)zpZeSYaI2T{MDX|}NzRhF~NHH_Bb z{g(QSv&{R_;^vyW(&FZte@}~>Z~jxqS%&3kV zj<^Q%_O!S~=6z{#i_Evu;?6NYNQ*niEcj6>zw^u!7_Aee^E|Vf(c{MXW9MaEz;!2I zex|1@>mmo;mVZ^&5(kw|@5);0ph?rO%4%^?$F#1jWe)0^c2(ALa}MV~vxQq+Y&NR= z1Zlb0?AD01M9m!3{=i(T5$U|e+@%re+-4rq zh;-g&j=7uCDf_(LoZ_Gd0=JuIFjDRELvyW0l;0iZ4vi?kyUg-?Qgzs2o~se%caOPU zBg*eSbFW5Jho6`SH6oomP3vBzh0^`Z3~EH_c9|m?sdE0poT%eS%P-6`G$Jj#&BYp# zmWRy_jY!KQ=6Xg-%dgB$I*zpb%Dh!0(z3_gsS#;;+Y%8Xhd4x zF^6eHTHZA)7%469n>9L)w7hSgs}X7W(2QzCTK-~oYeZTOnp+qtEgzd(bsTB=*t}08 z(sIb$qY-KOyZMSnq~(bDAtR;bALbz)M_T@2dVi9t(NVKhBhvCubF4NgYSEEwgUWh-!PHwM!$?GRWGa5osB0J*N?QhLfzl8j&X&YQ4)yqc@dKw8R61luw>$c^N$} zR9p@t)ejS`LI(vhCt4?`NlvmRIB|nBCs}oAaZ`|=A;t_Qx_?ZHt}LMNx~W8;a?@X% z5BnOeLgs;5A~Ko&GXDM{6nj|((Qms*<|k7~=D{M8xzTqlet${DITlr=A}Yld<)n@B zm14=s6juC8xKwv%5$D-S6stJrdP&D<#Q0hLWD23@3g; zKMuvhGC8)t{8x`XkL_>@-eXgiBgM6a6ehkQRC_MXq;O=iM2@Mxw#S#^+&?4`kmC0z zk>p-juN2BYRXAmtlI_{fi+WSly7wqkd^Hv-(2}MgTe8F+w($OZ8kH__0I_Z!tsXH2 zW7ezX|Cvi=8#6e7t?sjv0{Dv!Pj(>SLJ0!_w-`|#2zbOJQv(67xH~Hl$Pl;s0)b4S z%B)&O(P_h|w2CUL@SxX7C-G?{O7fO#WKBXM5VRZC%CjvP^IcW zPHD!swCABzy}hCu9VFw{GN+tGGHPV?Ppj4sN=AkI>pXTD@K?@#G~3=F-P%*-`PZ>_ zX(@N**?P+>n^bKgG1K*qO<#9ygLN5#yd_pdJcp`O2Xlz8)^&=L&R5}d>s2%RuhGj= z1bHmb>~Dv^#iOsU_rP~4Vb3m64DaC<3wXX(sqW_)iefE}waecCohFYCe7BT+mumlX zK6xG&<|8V94eDixvT;QJmO=EN(22hv<+)yIps>xkkyn8C@S5RoMmIDJH?=l)a7ZW4dVO0Cp4tT_Go>GHNr`VK|aROPN}m)sZx#il*B3SiMHpXxryF_V8*X5|!ElQyhcG>9P2Gcm`Kg^{MjJuLMXxaU`!yOx9qp z)sM%2kp08)VvomHX9)f2@#K%ke|i*^mS(;5Ri6}}!6r>XvE)67_La0x7?h=5!SfWQ zvW}Zdl|h|Fq{1fWb^KIHKlMA-X-+xqQwy~+p?qD(&6nmuTV9=V^yOGwhU05cWl+1$ zRQStEuFg-?-tDWj=jFVHQTi$TW%^U2^2_?G{~1MJ&X=`7|MQT(oMUPD*W)ogmPV5l z5%#xgET^x*p25hXUA9D<{GG=>wNh`JO!rHv@Uhx36^k!(^zo(Xe)Yc_-Uus|;u=s> z&AkaD zP`4-o&BU7w^q%H8rqh^KF|A{|fayw5Hy&FOeULdmQ8BbkJP&#@zMLz^PY@x4Vt0r* z{zCmcmfQh~yyTfDeF*->LDZ;^K*RX{9|ZwKy{ z<4{g~V^Pe;U-j=54FwO&PsJjHKNU-vlk_|-A2rSh{sH`z%z3=v19^b8y$3yq<%ghd zafs<&P@j2}sRhkG^HYRRF%NKTNdCH_(kzl+A6IYg7tz6IBYY*oAF9^i7RxnuOmX8& zfP;o@FmnxhzvqxhdOiZBmOLb0E&Y~xNYMNE5&3#xGi2y5nJuGY=x)8~HFj9qzC5&pY* zy1UDG%U6x?`F_;M@RTidccCR?;H)fN4ca(#J?P#^SA+iu{>Jior?tQDrWU>#v03;l z+m*&=(}@1Gkm#*Ue_8qfVsr3!jFkJs2!C%Jg{Ms=Iw$K%_p8wM9Qeadd>N&xo_e(f ze)$LP9$o$);jOg&VyVaLDUxS;vO%B74uW1ej>1V#&@)JG9Cf0n%CL&5mmkO*>3L87 zv0{ejBl+;O+2B(<)NuQ6Gv*Fk<=JKo&AkjXI%*y0kB4pa+-bOmf7g>?l2zPk92|D7 zC)cbPdXr}k+ij6qHR5hhBir_?f^55y+y6azAmu zgTCoqDSu~f0_`@h0bL<)1l^dk4fLS@4(|eUzI89?ZId4WeJJ>lcQMNOjQ2eAi>%kY zU4rsmU|u)*bMGKY_O`%G4wo5Gu1nIO?^s2--`6r{twGse+!%dCe?d&YW}*~GD%n7@hBZZhbrRhtZY!)*)4ZsFK1oN5clZsFLi9J`e@ zZ{^sn2EC`Yo%!3Dznyh%XZ{Z6?_kLttY-)FcQSt`OYUU;PUc71s&{kj9v%_TARNei z0d#QY9_H^g=v!Cs8P5;5(P*o=s_+@EHC2t9i;4>85NWjRIGQH1FS`^XRbm=0iC%5(_RkxVBt ztzcTibPm%-ri+=jFx|sF7?t#{+X1$*_l(Dp*IwjxLDpV_-i_F6(EAceS%L8$F@~IQ zS5}66^n{;*4q-~(CPRKa{5i-p4*dvoZsX9G5uSy=UZ&CUI^Is(XnqXZZ5~Fdfy0hw zk#{nEWKsFP^Tg5NMW8SH-VisKRJ%bkdCCaidPz36Ns?V{k)LNb%T1E3Ym+4F+6vA` zVmrrfXa08Z+cS28|FqoAoZXVFXgAC6Va^`r>|x1gIPEhWeu2X;u;gBr*~|O`96rGO zA^erJk^E(}50T4LzLETWv_qWZNd8LNQRZ8yg@Io%q%WrVOe&AXqk9OyQ#f3X%s(xA zB!6vfB!6vf2+y0PCcRZS0P;`yN==Q^Bc{99zMu)^cnGr&_Q1lxmaaQ>q$HwS{AAIMr5;t>IMLHJ?)L(0ocY zhg0q3*g2ePH^{m{T3%*u|Xc zD90}5RF*~kxR`t2hwxLr#oQw;oN55aws5Laj&0#oLo}cA8mak|SCmstus^Hit zr>fC>N;OCGDOHkFHF9i{Q!VD$B&TZ8d`cD7d`h*JQzbceEvH(`v1>Widd;U)n>3$N zt>;u*ICed!+RCx(In{Q}r&K#MpHgk&Hrc{-E7P48eHm~oYunAKwz9T8oN6m;dq(p~ z+Y8L!&R-JT&R-IYh+mC5Gw_koRIm{A?1J+H+o5?+ChTEqM^m|xG~Mh>6LGK*Pei8v9GEn*1haxok3KtB{`fgTidK@W-fkUt_8fF2cRg9_sU zP|KhadJW3aXHZ@NqcYcnZ}2Yx4I0hhlp4!G%Z(M#Gt!ui@K~b*bgDshtY8f@460*| zL3M0o{<+Lw41ON=6In>RSW>B$NGer}q*5)H^FgDM%G@D4L6dSd=o;Atx>jBa+AS{w zT`#`@dZp|E-6Yq6ZkFE!-6F35yr=y_EUo z%pb!1k<1y(oQcfYWK!#GHmS{@Ft>mnGH(DKVBHKl!y=tE7U?|0BAwk9_4^&xiMbhK zhjkmm&sf}#7L`G`NZxXhyw^qY0j2|7q(A7Qyh>enfR?-N22Hvs)f!HcZpv$zMA#Y8Hty;Uik^&@0MjaG2;7We5BhKtoLq(e+FZ zFdY&g&XNGhtmp6^rp6%3aUWChH466(CAv+~Qz-l>)BQ}15yTn9w2EnnsW_eZ$$!Bt08XCHiLyjc1Y!e@*lnG-UJ=5hEy28BN!K{U*q-@9Hz_yexd=&_{dH4a}= zN@a7MNSwhg3XdO7;lEZ8{UfLPNfCut4<`+Gocspp-a*8#&pRb;*>JI2ETfR->$&#atX1N%QK_|9fWUMyFgWV zO&Uk>&o80Uy2n#r>>ig<<`sj`(*f}{Q0jLRZ<7v2?+4K9WCLD2%f#ElpkCO38~l?& zC4OPZ1I|!f0i2q8!C3(*FHS@=!8rv~VvUjo&IsWHXC$b^8EQ7PwS#)`YaM>@M}tZc z6FK0F0S*X!yBD05A{U%-u)F|%aU>6%IA#{ie^^HaV08n)c~}gDwqJsJVS@$Wp9Lz# zBlzWJLp%y9@qNl7gntc+uRp_vCH`ItlaBZes1#3#6A^wAREnq25_pQo?ePrS0B^K{ zO0f_1#(RCBQoM;8OYs(JiKptQnG|oM9#Xu6vP=A$+Bnd6G1E!$9)8_L;@6I*AZ-9t z;?!#z!g-()-%^|oT5eQ=4l+&${hCn)I@qWN9b(ji&NXI(&NJ#j=No5%)*Ev{7Z~$F z7a9vd8;l0fMq?4^&Bi&PcN*t`-ep_>dc?R8IerQ%@l$n8pr08baE^jX@ww5A@IOJN z_`(Q-3fT&3$Ox#ED?m-z25QL|s7tN{b;|^(M|OgGq0mSRN_?OQqXL9 z8R&`f8=&Xow~h>P0jR{9kN%4BLQpB1@J(4mECI!v81f2)mxAK$M7a^+7Emdc$!{av z3M#QWyb9q6DC|Lg7c?QShLx>>)nwtf)yIRbg>TBj?`=;8?Z)qNW#PAcPX%3%9cLE4 zOmiCOmGD}AaXt1KesLqd0$VIr86}`=j52t!cdQd(QzO{F%@zy9`Jx%N+zFjmh|S^# z@gL&HVkdq_>o?*#@rwAs_?z*W5s-uBPWh2MDowM{EH|Gp-!T7bx~wx@4X*QD^E|hE ze(HJ5yU**(7??3Gqa|Zq#!VUbXFQhiYQ~>4KFRnz!<$)>*`B#Eb9d%%GhfR5W9B=V zf64rN=07vtS^lhotP`?M&KjLHIqS5nSy|h%hWW<&Dt)!Sg}(EBExuOYN?(_6o$o5& zwZ2_@Yo$sX!o=nwnb{Hy%m@Ne{Am&uPwS%UPY%owG6Lnw%fx{4nR< zoCkA$o%2l2i#c!PyqEKF&SyEUKu(}IFgP$WFgXwjtP0!^xGnJGz$1Zuflb#LuwJX1 zp0}j`hYzx$-%|g{+=1Zq<&jsTXV!T2K>sIm%{&U4HUoE=>p6iS^=u_B>f6(C&A?TK zYbLI0T-ak_e)8j2hy0kMa^OXB;6rlYHFDrHa&SISgr_~l==);)s@o7zj}g8AK5HSa z2G~|3u0^=c#&r&^b8(%A>wH`n;9899LX7*1a5dptf-8h;DXwN*Ex5wCmf>o}wH#Lj z*TuM2;ELjE!_|%}h70>Tc)$tpc@sneR}xnzu2r~J<648O3u|f2v1>y&Ydo=$(&A*TNm~k}ziN-rwE+BrU`9EVme#?&em^JkMVeykwNdLnk z4{u5ccwL1b(fC&y|4QRMjDzsPO8#-i7W}coPiVbQ>H9PK{#$*2PTzm8?=R^4OZxtb zzT;QxxIOmj`ycgvpT57T?+5h#9esb7??LR5sXUhWi!Rqez6Zo7Qt7?PRQGNAemmcT z_&pKDzmxBl_%YuHh@Wcy0~-Ha;|DeVPmLea_?H?#s_|p`{u|t>y?{(MsNpVs`R znU9s1#?NZ}JC+OJS0h#W=b0Z6e_*~4FY-Mo{)_LHcwO_~(D%3X{ZD)!Al}pW5A^-d z`uHzNVn{#~`@ZDLse7O9$3i+yn2iOUpPgfO2{Z6b*c4AiFi8+O?D$FW7F{kXrjItB+ z$xis3o$xI?;a7ITuk3_R*$IC_R~38;|50E?L+8>&b3C#%eA?2crm-T07lu0%p{3D& z{CVMILpUA@MI)D_MW5E()Kn8mbVNg4)zMHQF=1@e*d^mcML+)dWAn#PIu3sd^Q$`( z$yi%sS4X%Z8A?W)p?X$lJKfF*C6-r*nwN(Wp4S8L|?yOKE zSsjW-5v*!XMq=$GSsjZ;!#3i=*R?N;v5u9UsAjUOI@Z<^iihLi)xXiluXwHIe*EEes>s9qk5_hQV7#zIa9aQ=(x+Iur7`@X!o`r7uE z`dFlo=%R+@v3T#)cFQGWRNqv?bIbJNphlg|NwBKo@laPoxV0_ZPOxrHBtiGt;bdc^ zE!@x%YM(G(G{&f)98mZEwlNNUJ-)xqjGufQ{?y~}r!n8|?1qkTb7UE8X1vq?+K9j) zBf`*8-Jd3)(^PdPV~9U1+;w&++8M47MdE2{RFkBoQVlX*)I?ZeDBcBWG($}&8K$O~ zJW(|CLaI@~Zj7N(a1XV##KVb1UHz(wqA9sN9uBoosI#S`A=bPioFuTcbJ?&-Px1V6i*hd;bhbNhKA0L4s<@{HQC7vp;TS~eewdQNi`n# zd0l%X$%8U-Nw{+SR93vGan@8(GiBPO2~(=Z&zd@6>Xb>7Y9>t_J8MF1b@jx_<0ed) zT3t19Le2P@CR*j!JVe+^s<0sFYS~X?r)bUldW5?D^nUk_{Z97!pTr1nmA2VFRY$0zM9%tS=Y>33bTQ!Ah9P;L>LX93UgaFHqODa zX%%&BQxlgR{S*>S@EfgR4pKv*o#!uO1jXk>lFK=ahK*1`LQy-4{L0c$^NLyVSR3=2 zW9{wAuP|&}lnBQ;)DUiOaX_cdjfXFWbb3l9+}Yd=gQ#7FsxxC@cx7iekxVhdP81b) zVQ4jrRmVEIIMCEWmEx#yTTIzuO*l#wjWa`mIgw--u6<5qsc1_y$Kp{07Ih$PcuuS} z(k#x2LqG)=hMU8YRT?Onxyeoy*U*(nhTBG`d}?C!>~K5gi)Jx1lmJB|)`!FK#JpI0 zRWurF)+K{MhufRObuEnH_0V=vpaiOvLX3|)vsNLqI3~Y2AOb!MV?_wjS*@8@D^!#>RLLE)| zFg(&rH3#XTX9Iign*-NE*$srx2_O5v@zmBAoVeIHZ9V9tnp7 zW9!XmTG}g~Qq;q1g_Ef?b?wdY3^3Tf5ltO^B%8vac(lvOY<_#nei~xYRVZ*%q(xM) z4Z~HQwxX$NCR9Y)TW3YWQN+})fps4>(xW?FuaC?7cHE@fOcAg(-vP~pIZ5{ok zxHG5#=V_UF%uHHV`0m?!&1HO8^#X@}?NOmxtFW(0)nYhEllE7nOd+@VzC);KfZ zN$_uOIJrE=jtO&;2IvPJLLwcqM~Q|_Eqc^w+@{nx3wWU|lv{gQs5vYe<3t-GZJkkW z71f_}Vu=KectllWeSxX99Zf~B34SJo_2)`*Ng^KBPMHnU_EcOc2k0pzg>4P&)v!2^ zE}I)#<3#f$GAkB`_SA@=CR02$h*fwQOVRo#9B+tqQWCV54kZ)=z7Ca*W2JytOhNPE zQ{s`9F!_Am7sL=o%QmUCQ*AsRi&qmb!SjC#BbkmN7mKAwSVTH>fYLLEdXob+*cEU9 zE1@__FgMh0bDG*x;d#jpB^9Ra1qXQw)J~3_e3~1v*_hyH!nYynXb0Pr|Ay0Ti>(ST z47InS2i4Z3c1<&S6u3!y>u?J-E4fzQ9KqGB2#ebGmb&&;7(8NTxHZzQ!;Lfv*v7M{ z9Ze2h#7cG1{PuMI8L>n%9m5FJY$k}SgVbzQt1yYMDtl8wYU`l4BgRvYaE#a9ZHhWr zvAyBpq%_9*@$5}&-v~CazD%^l3bk*;0$B&(s9-E`K4*lZ9axv~whjZP3#Ow%Rf}R$ z0kEp70u48JHKPW!E3m^0JKK|RHtf&N2(`B$TC-?jtT|9hh?a($!}HQPp$P1h(=^5! z;1#KL5@*L~v?7QyCSthTQ#wotOJX+Yd7(B~F`AeI)Yh}G_hq1LeSQb6PMLwssmC}B z7m^H-b7U=KNXhV`WHWQrqKQ2`Rax<{8L`8ddw3J0mxUa!U4K2c&?vr2vLX_Vaws(! zFw~ZbVlkvbFC?$n7>{%?N6qTJdF(eG2}+~2athnpm43a-qS_^iQ1i~m@06&eE7mJC zT9(osi%*OO>Jn~;x`bY%GG`&i2392Td6+@MEshYZispaEyK+ST@yl#IQaQ{UM-HJQ z7PZ5jMZ2i2D05m*all^HDz0;No+nD7V8S6$9QAS1HTsfe zpzh3G%SlXlp%%=!;Z_)W$}>3}HCZ}vHEoC-|Gm?z5iu2h8f(#%grmPVpD z=u5>Co0^s84nE-1bAt*Km)4P3^Cc5??Hp8d2L~~78ZkkrnNV-8$ffczq~KU+i1&+W ziX;#TpA$QFG|lnY7N=BUwCgo`H9RSnB6g-Kr}>@9Rvh`YDn!XJiB&HTH?L3}_6}-E zU)P>iI2ClZx(S7AXs_Bys|aGwdV7ifn>0N- z_2i<5xsAx#@c9F#N**i9U98e8J#3=6JaAil+R|V%^uY*YJ`>>(onYZCo5PW`aB3Gu zoBVLRF_zR)s=;ad&xyD>6P;}ua0i83R3heK{ky28BaMMhOG9=>X{_aH(MtuVDW3Xm zCLj5+K4R$>NaLz0AdP`sXywg|3RPsgG-;?kyqdY#&WEu3IR`tKnBp|8PKDb@4+>*1 z%gEWFb@>qhd|HTCLkW_Iv@a8lp;qpIdSq=+F6!ii7_~T#XrTaEPhA3ou$|Dn*g2s% zhiscwBM;sUu{=|#Al6Abz)Lj^Xgu;^x*nw}Ok6r)*Gvx96RwI9g_W_>RI?c$nuywt zSo3nxkc@S#4kZy{=Sy1&drQIPo)d0wO)kelAsU8DqZw#(_74di}iU4x}NPI=>J~rxQy$9Y85<7m#2l!E)1e!W3aDJ%*>3azs#RAmK zjj^g|G;NPaC~ei%0!Wpk^UTKBS=bXWq@9B5zXUz4!|^7n6lsB#@~JM5dU^<^$1Dd? zw3O2o`Vfj7u&A4lwFV9Vl*-1WvIe?ykKiO)nFj^bIv0&a?wn09PA1h5jkJ-a(1|wr z8BUp6dCu!pDtdG5eFw$rzQ;2+4#FXXk_c1D!=ZM2^O3{~tQN~IaA>na&%{`qhc_2e zg_3l%B`~_hnV7j*q&|-4SF|2uv@jM+(n44*(QF5cCK`=PZBU#w8usJ-6sWFVujSL$ zZ=xl2T4rm}OQO-XqvwT}h;=k!n~rMnGc89pyi7ke{a3l9o&$*4Sg)=QbseiLX;L&g z_43C#-G^?TT(x2OXq6Cr=q1qd0Uf$ zT4p{vo4cZ4j2adxc4I6yGt%0Zt7?*xs*1OE((!JJqfV6cVT>wu>hK36CIRDXah?Qd zMqKgj=?85@PC=;CNwPG0=E%(%iZWEoeh#LzGfe4b2yehURtD$_j8mxSz|a?AP}(rPBA@ezaXh7Nytd&W7WC-)RnCJVcpPkk6us3kn7T?TK?ft0Z^RI4uzQmH6! z6rAtWNV6hw_3RL3R*wy_h6=CZ_zn_Qi)^u!m*iA297Eu-8f&qGbPmisI?lwrO3^U? zSiEay2uIXFO&yridC0(E;;2M|h7X51N(ZrV;x(CqG>z&Ad$FXU?jVigNjw&W4JcS= zA0XOK+5{iV(3+s7UsO}Oet>u^VR}BS9@gQUw$JGf9*y?pP~|x*CzZ3ObU4R;7ATyD z9evVA?fl7(NQpYXwWnDJQ#79hq{pW-QZK~t2>{;ip{^ujR%-)((whcb(qh=KZL!sK z4ir~wW`4m0X95^MtN3&o{i+t2w0|HmOeA#EOH*veab84^LJ>hHVR$0bJYjtE96D)Z z?}mk9Jfubr?ZNPDM8&~0kI8RJi%^p1#^Ts?#k)F^3Zs_x{Ej@RL((8uil2+5ujTsn zBOcX44XrkmtlnfOpr;#pq>}!iCFKING@>bYRk;+8#^9WAsG|<^cykDEAqiMoZ-)Ie zfg{z>)vtRI$2rinU+Z#SK^Sc(#Ga-iZLNyB(C|JDuPP+}wW2fyeT4O~9r7RDOr;pz z%(o6cUV%L%_}w5x(Av=fb7OE=U@Gf?eQE=tPzV?86|kZdNB|3?y%;9GB+Ne2oS+6x zL%P~Ekr2+=lt2^ttGbqin1lBO=0@6apoP8c{1d{w)848$)Osq^up-i-LRbjJu?csQsK8Qs5>NHwqp^fY9RVfyVKP+m z$*52xN`*u5)&yRWo7jZ6!y<`ZdwrmoKJmkLAIRR~t131|h)Km$p;~&ok)+fP5LV*6 z0yKIN9zd~ysX$G;(~GIKdICEGI-{jR(7P&FMq{Ro=-o4QJ+0po!kNE#&85mhYny~1 z^Gw)}%ao(;RSI@kP@k|5n;_lDFWu4763@P9Z>|o3=|o+Vcw$e(NI&t%>x%SZ2ebOT)4@EwlU8ADGHDCkqS8=L^0^VF zC(K0-7aj#}xm|BD(04S=Mx%BjTF>yRi8FR=1}d&5wB5Z<02VLWIJx6huiKV_gWH+(IJY;qu6=156IN_Lq0nM! z;|*H{^$^k4kZx*fy{u!fPq$6bc{pxI!Sd{&y+qa+9iv0bLkS(yjiM3iZOf*IbX!*8 zMa&Lc!0G*TCiO5axpC^=9Hu!}Yg0SczD#~ckp~J@!uDin1vbxAL3H-L`F8%jxw<+q zXglW)l>xn*q(&e*u>+6E@Wwj71H+356>3VTJMSFu)=&(OEhulyTPXlH6qsK92Um|0d zI%PG-D0u%!r|kWsP-c41M-`Ool6q~Scj^1`v4H5yQdQ{7O>3cEFCp|+ul88S5J+#A zV@2b1C8^7APmH=FR0ir9KrdEWiF)zv<&-K*uc-7=^onTeDH%kofO;VdLq|cXNnRavc z=E4`W@ZS!o-M&^ZzrD8Th9N31rOl{cGWZ;;n18fay4eLO)h;?At7Gr-yFDuZ}gjbyW z>Vn=ws4z5>8+HKg78KyrdcUGL_qP7>cJm3k%_T4znS94x32Do^85ABKboEG(D9BV;HVr5DlsGq_s z7I#@X2b(B}B2QW!a&Gi;G6%S`8BwF8kbb()F{sZ9^+#X!yvTn6#xtV|sWqkw(_;?( z>;mfsyoO-^(E-oo>OdmJBZ*_IWCXUi5geb{D;xd(pq{k(4>#;^ug#er&GtzlHfQ}t zX4+qU*eckKrIu6bB_du?+2b{>i0QGt^6qm6+J9qcXQv!#YRzx2hILVGvA9~)@v@mJ zlsd1Z`JKC}u7e}`87Olh1cTvVLn=tJRcb@XQEJR_a8dh;cKqc4z4*z8NO(-jt%tM%z0=+tkleC3q{)TR+MN8uS$x!*ksdQ&t70OQkY7F)u)&b z>!dfaDU4NPLueTXaYT@a;1G-0P529vNMbn!Q6=WIahTt>WleZ9bzW>WZ^!Cd)`$o$ zHh&xqhSxBAE{?R;uq;-Ds0^HEsEYA}Wp*1!$ zs#8$W@t2bLqd_=t3MiLYw~WFV5cre5_5_8|-*j7n>uk8eWnJ8Z+LC95+9J^|`|lMs zLKz|J_>m4E@=aCkU1DYwm7%|OgEIiBt0$YU#ko)y^;-&1>8eB658*vOdZx|CUlgw6 zHxcH?Yq9so7kS~;`Qam%$pPe19RR&FnLAi*2^`2fKU+(O9Y|b4pCFiY0si*78ed{4 z$JZU&@wJ2yzN`?z*B8n`+wmoa7{0PVp;mBO5Szp$<}bvz8Jh7u1^UWI7%|P9j>433 zHBw-hBUFWNFeIU)uY4F9L-^K%N+IS~LplUrJ2c>>3Dy`x+IFNaM+rK?qtH^$jc5|N zgzu{_0$exd7j#n9H?NIpb9@)Qw7tzazo_FI1O+eA2q+B(&$ zJ4XHYa z5!J{)g8Wn~Q;EwFj&WJz-1_Z^r@j~6SJXg|#HktM=z3~O3aiA_<#(Wayle|g7lCO^+UQM$}Em7sU6b! z4Ztf=6DnpiC|O9l!t^!|;~OC)LsCkz4Ozp@v;DPkg_ePeHnPJmv=ZKj#CH$MF@BaK zOjbj7NX-yq>!jRLeM)J{@hugythubY0lKMmX%y6_Rg?H+2gC496>*Z?$JDeT?jxL3 zBMpr)HA+#YN#*!b3ZBtGTN_eRr>L^6M%k$6X*8zSkosCA{!dwLIllQ+j_*JW62_Q1 zlrG)R^euPq9unQ_X7#C9`XDCZ7^<2Y%;or`O(ilT6G@=!qiBj_HLglA4#U5kJCWQJ z4JEwLrkh_$j3);XzCaH@a+EWnJH{@8hGn`rjRsz*C2i+I22z{Gqa2A>k9_LzIh9x?ToYNq1$;_w&h7h%jZQLEmQ@Pi2l%@q1Kz&LMm4-D9NE(17Lql(P zn&pVOU#>G%V(P1>}wUXPky6_!k^ub$o#6Z%QejDaVgTEoQS#?zdKw|{!& zH;JW1K6yd4E?CamlKAjn-?6V|L^V`ZZX$mi40sB@B{NoEFl3K5=xQ1g)Q!uy`;Ijr zs9Vc1`%@>|o|9UQa-y>0MG=&SJSRDa4*X9uhdsEc-8x|`<)A93IE<%D8w<_GX~S&{ zm1YGl^7hIVkeSkOB#q?ld&xI9pj?gUQRSS-hm%aY1L?okq4~WWl2ijV945k#rq4hW zOGB*{?Ip5OGZX%xjD0_O`rdPU2pnp2H8U!$sj{V)2O68}AxkYry%|GZ<$4J~GaKbg zb1%({v{In~)>m`yylL(t8;)=vQV$}JP$N>&Dkp)qr+KXrl;$xiTL_^J=ck%3WKaa0qdky6RjAjpVgX# zTrI8o)hZc%H;oo?5m=uZdE{98_MECc^(@s!IbNik-n+(RL0>s-WnYW=w^CPAOOkC- zS*S&AOa3=XFfFxbNcS_ndyr~ND>?GS&U!qnmMxlmgE)zN$gw<8FVEq+fTj-iH(w?@ z2RTyBDll1}h9$sP(O-))kk{i}rhSzZsa))|$P53C`P<-b;xT6GVFlc4tVT9rX9$#11>vY*#Vy&$hHHL0^P{Wq+BVGS82yl(R-dif!qW0 z#u<4XD67}&F%+E+duZR9I z$6}5*uZR9I$IBdFUJw0aj*mHkydL_;oB(qMzC^^%!OWg{)r4&NkW z&IFTf93SP?Sp=NC_PP<9+cPT5(55a<<_$aJ|#4VBHz>nP3Z;7)<ciSCm-OWIRG@nipk79qp%?P-L1rFq z`1n7DJuFe=b>Cg&@uPuIL8>KwM$3Z$r|EDD6YcKz2#aoh+kv52W+`k8{{oOlR%Lk| zlo%I^@Aa0tApqoqjdph<3#u1HDd(t%`r!ctER@Jw=*-ary3Z_FpxYbUT*i3 z8RZfNJ2$sy0ZhT2S#HAm3Gvu*yQv+w`C;f1hLu~37W1N|^12`Lm%FG5y}3Q-p<5o! zMlW_hhyX{@7)3f7tLTlM3sDy7^^xxGCv$s3xjkWSn@5#ZM5tj)b3HJLhxp$Opt-fu zTaL=&li;pYsU)Z9RtdYer6Nkb7<#a+8)SB>U?`5C4Cp~v2NWXK!Uxk=x`dG#$V8bk z@j+jSAl>}%I6Ne_;fvtXk2-D3^q6H-3tZF=Jzaixxgd@j+5U34P6_-xB%aUfeo;-9 zuR?%?I2DOMPYvC38PguF_lrb(zR7eWjZdCsUqv^C(QL1>3}w=DwLwkq&!C}*0qyro zw?Efoah^_Yulivn)K0lQGhk-u^9;CjvI62LQ-kTqY)=M7lNlj8;BjR_#J0t}4zd^N z_E;H^;u``UncGu?e;ha?x91F)xu;Ar^)Pia&19Ozl!gL+wTh{aX*TTDQ|6~x*o4X8 z=2o{Xb<0pUpSoq^1~-z|bEgOW4*)AN{dC7Kb#%Xu5ehphgAes$ykkzn4*;AXYg!2p+}J z9hv5J{~6Ac9M&U@J|b7j2EMB_ixZrS>`yRgnW93Ol;~~t%u3^8tgJ0I%-%4dm_ zOobG;#o_7@%P!X%=&t0Vj+_p$T!)sk@2>!3W{3Oi{v@yG1*+CwVqwJTiVdJRNj@1K%B^03Lg?$7a0$E0$3j^xOOpF?wH zlpCZYx90(0x*j(4Pt>6L1Zx1S4<3aEW`C|+I3N}9321|-!swukiSrCNbl;=zyY&4I zecz$)*X#RMec!C_TlD=_ec!I{_v!miec!F`kLWwqpFEkWHtL_Fno>7TzR32NTx+$C z^rFyMxpwc$q%n-ffVtVc-I?gJ+#akq;IQogR;0N-@aqrYpAG}|xU!L6%L2h4fnqU% zm6DpjOZ^@*%aQ1Q0IRUfY>=#MC7bO=p=tPgO!9=!(K@Nj<;U2NrI-z}F|%a(y|7tu zOfR+U9I|>389P9ux~rj(sR4}yW%aZ+kyw+Vca_~!n#DSLi5dyuv~Y;xmg~5v!|4FW za-%^p7CmM8MivdC_YjRRtxa_h6F@#BIhL~0u{sD34h9c8m}|a~V=G~^%QyU5k%lNq zN{m#biKRikOX&UtolaGxqM%T=?tFuqiN`-}QxIZH-Gv3K3hhP+wL;0fndNj-7U2YU zQzNeDq`F=-2JIH0QK(zM31aO|5^BxFRlqu}9EQhXRv+-XQ4BAZ!gQm>7#yDx?Jc=G zfJKQ(h4WH5uHEX9!| zMH^(6%66nU#8MndQnY(!Dd|XYh@~Wrz&)@+>2|uoZzu3O2{^e(lG*jA#!t06t2WfriAw*6501`Voqw3 zBGbYodXwmtIWe|}>u)q=)F)ge* z;DLyEhxo=RWRrAfliWso!)Ce5@>sLl%@Lcnb0qU1XDcb$R^lUXzspUFX-b63 zmPzT(z%7HMpHa1-h zZ%OWq3<_2vG(at4H*?awfJPY5C{Xuv>UL1w4yoG_bvw$p9-(fQx?#4V9lokoPk%cf!wj!J5l@qbqn&Xdy6U`*WbvS=pBopbpp=$sNR&CHPFJv??rmliS*${=T=J5 zFokhgMH%JRV;AQYI>5@8=e2N3?479q%dyL)4S|78rJC*0EKo&Fipd(M4s^)CO3Pto zP=WnYUS&qP#ajm|n#D~U#44&Ix7=$3Nu7|_QCOadmDyNoYc#tzH;9vy88}1W%v-qa zJCG8GI@m97&I?c~?wm@3NiH(-Lo}=+cLrA4sxaNVb7xRwnTvW*^}X)P?%m+=rpSdr zCYp}zA$LX=^#LV>63Tm1 zbb@B5ZTD_&BGm?!C?~OK{lT1ai*H_(5vtIYC=3Tks2rkbEAUhRJamT_1K5x1+5;bu z`=onwnMdiE)qCBjk=zS0MzK3iA$3!li?kd2S+TKWQCb7oE#Z+)a9WVK%_)BMX3a+H3exL&>i{F zc@47e?q>P`^3LYbupF(1l6qZ|guE`cc4l&&VEP0yQBfNGx^^;e4W!X&s`t@JrCF&i zDpgHE{fIG-4aJpuOu@J;ct27CSAjai7+GL_UXtydj$9s9p$F-_q}+{u;EtBLizO@q z@WH%F02EV?fk1Ap8wckYj2XD$dwC7o`}EzT?-}}zZb84}j2bHpI6oR6IJklbL1SCQq+_cxbh#*V z6Uii!MTErQz(IUOvWdXA8aSswS`$|mt_)m=hyS66Bz*kf8cPQbByK@m23$;4m^xGj zOr~z8IAsHee2)xdF#Z49J9pNof+&ukx!EyTMJ7OD;rUN|CxJtH@+(ial*`=d7U{k zbMKrxlmER(C%{o$@}U;{DDL*57RV@0(jT}+91#~Zz6(h{DssVz(El=Y!)oKk2?)KH zcnegx{=MwPylnu?(1kNs0ii~&EhxS@&gRyLR zdO~DTbz#K*p2A5Ug^+UlK&7PnP0pre--L(g30x+{^V-}++`2^G->)%_kEO+y)^ zR$~nDJO@d-RTq8uT2~dSS`l{Hn)zwJOD~b0(U=KDO|qu4PcJu9Ipt)xm6d@H3^Yw8 z-SMuVDJm9n=88pvQi(}{%N=U54ELiAV*ah5<*}w!@nBFJHFABz%Jn2kbJV0zVbbGTP`U4upLr&b5DpqMjuOPX(ebxTutq4k+h!+t}%oR}3D$g>AY_U#a z5nVb%BFu|lSfUr=jzG-E9bv6rh*eROIuDgjgAP(Uu)mn=;h_g2%J(oKGf?@io~CM6 zZiBQ=a#=~Cx;*t1svEzI0;nuyF8c7b!s$F&MX|{qzu?_Z+H(AQ%!lgP9t)aWsdhM8 zbM(roNk0AC{O%DiUtGR+l?V6K+S>|eU9Hyu46Ciy$@{8&=V&}cHuqNaXV&E`?;{uu z#inU>aQBftCu@WC`oNySddT)^zIlRY57yl=S33|vpTN)EbvAcRo0H%~t-`Y_u+l8I z+x1qSO2i7<+@X549u40+QJ#9gf3CdnJa_BuOVz0E7z2i^H-N8>wR+M{@|y5i+NZHg z<5OGv+A@15&z`pW@W7V7?Ur&snQ^BFs~`4X_&9s~!Q&^hcQ+kJ%FIoPE@!c&zvtS@ zVGWh{MXQZQ4J3FlGcrEjt1ra`_hlno;!k3nGrNtS%$wc7&*1Ol|GU320@wqknYCs& zm$s(c$UwJzpRRJl_+yWpE$Sjq-C_hf+(xaA&B0NCk%yp0uwS^3_z2+;wA_o_`_F8o zq2%Sl@2(Kh<*>veqmrw52iH^JVTM3q2(vW;vO?fzIa!A_kWCrVsnLc!@da!yw+&ex zGEI3*jWAu`bBcYL3jGd$+d!5u1}5vB4yd6J`@#fW0$;L^U!ig2gxL_zEnwpmJMGhD z0n#lgMtZJ?LqqM;HVc;&zklf}J#~1K?W;?MS>HNq@8a`8njEy!) ze!v|oiJG!nVoz!2UeXItN`X?Yg;LTMXbVMX1rB5j zLbqGO#fnf0#UhAU5%nV$5mZzVROBimS}KSlmaBL}0l^EX<@bI+bI$H2DbVld_4((Q zS375(XP$ZHnVDyvdFFD?9=YrqWh$jC{D1E~rS8U)e{&`L;9v;J)ve#FR(D07Xumsf z#1rj{&sdXdJ7>^6eQ?!TZKtj}`)qez+bO5D4W4&)+nTf6<{y1r+ga}F)4HpwoCzN5 zV-8m8h=8e@u8cn7m-d1h*H#heQR;$#QntocUypbj;y2@|RIS7fEjJOAU;bV|I`I56 z)!dJhl>bUk4%_OKyF{@ou?mB77nT|g}!nf5_&n^NJj^f2HBWpMYp z(=J#CcFVdv0p4>he&?~zKbAzV>A+kY6spxt<%l_t~ySfKYJJSUrWmS+_+F;`- zx_M>UB>Gp>pMR9iP(gL(w;{?4N)69RihcX*HS+8gH>#AAKHEsu;c1u!u(OQTxw#m? z0twP!H>Sr>lkh}hRA+PSRGb-vhw0WMzB^>65_mpmq|nDU^99hKhN@E4V^oMz4H_HJ zb5=5uN`kPf(#T73t{DLR$%YFRvOBt}G*u$i0HV%xi;+iLS?O_*P9ldG8=MlC#GXKU zyP5wwFh;%#VQ+(>!2%(~@4%x_jUfHaVl^d6V~uL7P(#XKp@NU-If<)45lEq%?cK-;{j!sNwML$d zjd&vAUJgv!Xpl@J(4Fx#+fAto)jUzf$Y@ikaIc^ddD6Fd6oE9V(`7bf0*&RoO)Drx zcBZ=x#1ko0*w*o+ABR|8e7a#K%q?p?Xo+FEJ5bex>E4D%IlafnqxYZ@^d45lFfgb? z&?)H9I5dP~SA@(|6WVXx9N;UB4a9~+DYRh5u|s{&vk%@cU-LfZgTkS_@x#m8PnSn5 z%7aLw%Nv^1&paJdBKTeK|;%M=Z(%>(S+n%qQjTLq1qB zl!uX3Ufz6N9%MbTK2@>1BFgXRGwnwA`s4nne-KC(!*wpKRn=aJE`MX%pvoc*;RM zpTy7g*ibC8;S+4;6Ae))Bt_xVbQgHUl$gYPg7^rJnDUdDPt!ey*cLqxrG4858;?He z20@ukJXrS$vFH;t|L8s$nNRv;AM#-uMR}8lmv@LRk64rk)}zZCnNP}lzkFzJ%Fbrx zlg+xAl?R?>5YH#^1Lck4+5D^VV`54}rX(_SgfM`*N+|7uF!#WaQabE=H`=h3;k_ zy08XL7u*y{@|rF)$)m(@bt-i3P<~NBS)u%~5*~-pJrrG0#xl|KSg|EF^UAPzrDP{% zVYoXOkQ648KME`&`J*K~hU}oYU{@4M*oCzViwXsx+=l8=vp=f)#ZVWi+27Og{ozEV zy3vNg)DkekI1Y+VL{ax-YAO;?G1w9~h7B4tax2)pD33kk)__D9xF-^AxhLacrjQ>R z#(7B2OZcbqu+%TqVz(ynUa% z|6pAg>R1l=7|z7C3P}+cT%f#Y;U-vPj^Ush-KyKC_5#vJ9)RjM$AP$C+7xz2h>7 zcF8iuE~RLf(*H10+oc~#kWCnQX3pnHohQoO4XH4HOMXc-@?`8@OldcI^w$8Btr(nv zRZlJpiPjsb)0uv(Z+wm1X@Cm|tn@4+{}DX*#PVUZei~~~f-)RXeV}usYBBQb`5ZKp zy+N~e?v#qbPmn#kVm&G(iN_j7{yb1MrS71Z5(kg``M{YsYHsVu1x~`p@a!@YFglFo z4`v0ZWovuc^6Ui6(%YGf}e~i3KSc;9nXa5rzBwvIKHsi7SoUJi4}ecHa=(; zo*`rc&02Y7PsHlz7XUUQhNdYZ{h08Ouhf3GB&l85>Arr($B;8P`eX zEuOG_6n4D_h-DoNku*M-jrlQ6CM{sbbwlW$kvhjA_l3w;9O(pfm0V2H<-^w-FITGAcHdqZstdC` z|BPgAI>-xakljd%UKp)4g^dK;{$MIqxJaUxqu~lejJ7(3OXb;8xJ;g_3m+Gfx52V- zg-3EFpUJ{jKC}yAL*f`Sp0E<}rg%JsR+9aiSWks&^waaKS+>?_0bPQ0mZsa} z*^-2|C01&KC>m>NiphXE($;1egL(!rsi*)@h3pWowll4Knt++fF31y;Q&UTxXZLb@eK5;nd+VJOif zW@!tA$~G8zs)O4pMw!vzS{Iukc1X8fL~oB$?;&y$y#lWcx=#P2LP1B^cTuxCSZ!B_ z;GtQ_>ev|8c0(UFS7;1V2cX$HQ*#j-Ni!ZySn;Ona8Uv1!@USTP0~M`kfFka^<3nvPab3k>ZI+DeI z_etc)1QIUP0Dfix)1+kw3n%k|Ex48Pv^P>5EAQ5 zGtWvDS`iRnafNmdV6_Wv2qI|Z5}S~VF1Gu>2|nd$o!QK@QCtXb_hVKrQm{!iMZ#@H zV&;55Zz(0IQ%)S7LMdD*gPl3ZPhe%t{7NQ_Wdd4Si^q;}TZl>;Vmfri%{+U^MI~(; z-D9RMMhuxCAlwG8kxwTM633u_2jR&-OdC>GLR0{d2pbm#Ftz3tsAQ(7npQisB2ilH zp4ICc>@6$QI+~-Ab#h?uRD|65c=Z1Q#f0305nWRmPE0Yw@F*)oTo*W+!k@}xR%S-j za$ka&t+joPi2ealBR_<~rZ_g>Ly;#Fj#^>23JMdYhr@|6W<{;8hi!KOk`q%7D4U=Y zv0x@{*wLVS7}8|2js}whv0yZ)$$MWao4jpzA*hUS>M|*JBUpQaFRh9sreKYO@dvYZ zIH=%9lv&nUW8Qo3y^wnZ64KJfz7K%ji^gGcIgPkSBDo?nw=R%63b9I9IZRYYBqP&p zhehr5aBdrbY{KrcbH{+hv4LNNhodV*g2a z>X~jV=7HaU0z2(_G@a%C2tY{hQJ8XEl3Iv5g=ASEYoNro-nzlVAX=Fq8O)(NQ)>is z&i)Y70K*zEOsxmQ&i?PBd{1970--tdUNi-^8@hplC!w8Dm{OtkixUPqUauvO4a7eZfC;A_m})+r?V@`ZBIhuV)`gBZ+!17o3p?m!qFA+D z0H`9A94Ignswl1vLvrrJ^Rn*QdOl)b{}}wofqziWu^cOVA~wt-=(Eaja_PY)Qla_W z_Tq|Er46e!lJFc8D+Qm@&Wtg)S#=v@h zB`XpM1>Fiz?w%c#<2E~({|1OnBUcG5<|&~LxvN0DI~4H_1INbM+M%MGsoOB8_PeuG z#{#M`UfOUA7-q+Mj?hHZQb)C`xz>eZ14FanV(x@V#VV8#{4$=YI@z-|Woyr5tY$>1 zWq+c|b4VkeODZZHNv%efR1^k{cG`_0vfJ*A$E@8P*5f?Z+B_Ngvnd)nlTT2$q0VW~ zW9@`B*HO#Vj%d)_u!B-|f~S^)%PSXtg55QC@Y}FoB{V9JqFQU*=Ya7BBqYON5>wbr+XVmJ^xQln zzrjms9Fy0xDZ4)0yr@%b~|5WisL=smExggy*NQ%b;N76lAUz z$!liA7O8%^SZ3;JRx=b0&AbGlVcF48>I#+@nhD9V|HRq0soU?yWZz7$p4F`pF=??# zR6F>|#7$nT!FFFpE-`6FG~%~~rxVWH1{SQ1-`3<@rwBEq;Cwkc^W3*kx?wkYSqVtq#C;nvgOL5(McEtXepNV)^*M#I-I!|(sBp}QIymN*e)GB=u7K0f zZ8m2DO$k%h6&aivuwylW-^*3QdO1X`O8p9Tj)kM)>})$4cK-$_J7uJmONX*yl#V*1 zNBx!@#tXvgxhAh7mnnOq%r%zU0{jFSn;(TR`{3+1lsWrmP`mdyVy80)Hy=X|6aOZJ zU6>Fs4Os8zyjO%gBea$|J?A}C+MlgOH>nF$^(JjcMjSg^Dd@1B_Kv1Y5DvdFgI&wC zWy24)t)NEF(x=}(I0pNpnD9LRqBInW9!A2J1tfOP{{yaNZp80*qX&y4#lLbvlyn8axU>gAYR&y5JaxSjY}v z4*kIa-ohiWXORWY3i^$fB(cXBo&U?^S}a2#@F71ajhZO@xEqokXst-?1ThRW`G4!AhfJcT}LJxJ)P^%zwN@S)n$iiorCHt^Z@1Bhe@Fl!apQy}q?TyL> zRaKG7h@^&4v2b#rGHmz$oO-F(4+&L0LE8#L%~910b)088!PJ)_atiHWr|EMs&m`)W zKIL(C*LNC8`Y|oV?Xq~qZY&{!soR)`8#LN>QeIULFDU>sVrjNQf;tBky=0K09ii_2 zE_heP;D4dx;JrtMe=XD&pW!LfZtX zRgYkXZL_=Bq;rPvg6bCNBVPRRqN0g&j%7tj&x{0^0RyA6w!AM0xNxb5Z6ayix=mHx z?d#Uls_G>j=i2lDv`H3i!tKpb*0&;)42h#-uE<*G5+~%XLMuXDXb_>NdxaJzuYf^(=OKS4rDgDPp7)r9^N?BWHwIsi)3gwllwoKt~D>GuILJ`8io^*6Qt%a>=ow9T{poU@d;P17<1~b^x#O+ z&kO08Q%LM_O>!P{c;Lq}l4j~q3~Nlv9;db;W=ZTZc^yQgxcU$n&5lDQVdbu4d6Y+d z<5noDj+sT~O~aTsdCa|%n};Pf4^M0vme}GYuJz9|C+Mjfa% z46B?d#W@rwEJ8a@+Sb^XUZ^8pUD3ST^j_pKs5FK%?7vi58Xi4D<$%MU*8Q{%Q-Dq` zHWK_u77*%c!<&UG^AR5IGuXt=d`Tn_?t^-DU zZUs6SlMRJ!tqu)LNkn|A5PT4#|b=wMx_Px+zhSfg_?N3k{edw*WRbVYdZ4V8XKZMME1OpUNvq z7b`Wfq2YdmehV_ALGR)tSitIz2Wj*_X^VTMFQv8>Q;Ln39M*UdG+tTDwmMs}aYJG| z6i)65~xa>hXoYrd|!;n%>Y^#W`YHnPJ%1;TIxt}qEk%wjH za?nTM819T zHBxL3l!_eWP`5Y06|C?b5We2#PU0q<3s8mvMKDDWEfmfLi1LIgUcbXVgV%t@wQ#e* zh>?Gl8D)>u$iG<@|64K6%L#u0#OI&+gq`{+o(;>1`HhzXwbpuK@GMPDMIXs#lT)WS zfns2hVjzbB=rG?dFCUuL*ROi)PVmpb#u)!*&n+<3kQ0o;lM<~%_QKPp=u3=h%?%d* zDR?<$euq(0ocF?05-Nx)!o-wnq%oF4BiNY+Gyf?7*$5VPs3CU9;pH)cVeoe( z7)=E>fYDkhT_bv1V8awNUYeHaq0}&du3#bdjqtc&fxZFoGOdixk!TzTt{yhRs9<&B=GCk$PKgu9T@lI}Asp4v z#;gT9>W(Z?{sftfVOmt60vZjvJ21juBt>=5axXg-3PlJ?Rl zLtg>GtiUUQGUks&x%?}Yi%CQZ^ZFhe5mJ~gq#7?2pj+(1+foj@!pQ456~@)92hk(K z!_tEd?j1Aol)4jlkz`agbfXW<{I`Syi3vkH??P0UxM3Hf-m4*=CMJ1K!%jDwy3Hhx zl*Jk@O&e46YH-}H@mw5oBgzB4Y;>=s#1Ywwc+hFlJUXr^?}M(+5dGw+Z0f75M&nae z;o}9;@rvqTQy<;UXp-|o)3WN|z^>F^QTYm6+6nVG+pa1Y9*FGEV{0}E?ty082fvAS zi-ecP!gX@+=nPK7a7baIc5)|z!Fr@MFO3CpWVsywPs&Q;4{+q%M-$1XSu1MOMa!mmx&zKp>usg%U9*vk@$N%wWcd24nDuo7?wSS1?x9x?mGAVHDO|CsE52B-DjDfhI0i z6|M62FbU$&pdR(xT?;Hmy7OEJ7#8fE``i?$xh)XpxP#X$gUEED_%@wr5BxU4c|M43 zqwf#_$5+x_j2oIQv312UECZ{l8=e>yq@i!7w;dkoo$PIAi@&0Wa^D!!y&qik%*c%c z(W-7EnQnli3Eteh8INbb=p3za@yv^W$@h$~K(_sjTD@ObdIyX;iwQ!_l>ASZ=Vwvy zGd)Rh&m>X#TXZN67PS!6uZD_h3qEjbtysNKdfq!soptqJeP~Zd56L{dDkPk0SbJIdl9IKjojA zyKF$51+5FVs>J*<3+-*W520^ozKKz8xj#k}vjit#UfKO5x~;1xcODkMxQ`6>_ElIm z8->$xSrUjxfGDg*9Ai^zfE7lN-W1eq$G=8fFURnX4OTdK^aj zQt4pM8rHsPFOzjks3U&{$WdoL0Ik78U#4$$mJSpMhJ*x#;c!TE4GEdPBZf<1IF0Lv zIZ@$g@J3oAy&iFv;4c@y6cvXq@O{< z`Xt}uipN(`Eil`EIJ01|jG30eXIIQKf*%>RI{u|K9EZ_k7eRPef~^Ci`{1*SV zh;EGoYGJB|NuX^)#7r3OW^@BuiZ%jsqz7{xV(wM5p%>aBc*p;8a!Of}sXPS0#PqATO)nraaiy?3u$%4 zrfXT@&C4iS5Ai$GFi9MoQ!v-lq3b%z7I}?4{lMhFHc^I`5cf~={S@(C%eGBPFIjof z8+X|}2T_m9r&R4LdR+2sAMCgG{BDCG_A^R=pKt>*?j*GkY=~c#@+=l zMa}*^p8e=x<-dyiXXKcSX`>vT`$-UZl3WVi!u>C9QQ*$i20+QBRhhA&h^*MTc^!^y z?T*NUd?HAWBql$fSy0ZguSwT$w7;2YE2o=M*Dy?yUZWAy8TUZ$hi%-ySjUELm_$|< z_q;IqanKDrmv61=!*Y!TEq!5s78*f!KUzf3J>A1u44bC3@?#BAg*N#q2I86C|BZmL z5L2%JF8}`=VE!jAi1hyF5lK3kkLm$x%gz@1hf5mD9T7!|VdQfB;!c`86A{m>L}V?F zDFF_(o%JqAY*}MR1||=e8W_ijS}7hKd*i-$Gww1xAl1ZFZb>vX9qEZF3yeHbQdXm^ zR${@rpe%a5*_O#Vx2z2P{v*14DKer_b!l8hN@;y7jXc-Dae9t<5?6T@2&Ug4(! zj@oP6Y9}hSc3H#P~x2IFV1cf~}Pw?QouqRW2(JKlrKGm@N=@>}^;fLaf5OY`>tuq`Ks0Rs^0)y`3L zjhd`sX*r#y%5On_-dcVKPw&<;qqe@a4134|@SqGLAFLhEL!z+k&~UvJP3n1J0D5b; z#vu-^d@nA0NQ;zd1neJC?^kL_mx?O0RNG@T1xw}%>D^+@H9>Mfm;0n_Oly@%=nWug zAD^nhqmxks^H1hFXT!jNuAtY*1G=7^SHB0FGMD`zeyN$l1k7uhz7egp8)jdRrhpwy z^an7CalxmLM)YkU``AMK)W+By-h;NcOQ-Kj@ zDn2yOmPJ{;*pu*Z!cCmwvS#jN)<5a2d}zQcLMU|*P=+BLJQC#CV*Gyp7czJn1ZX&%Go-w z5=g9pH?jqB2$H?D`4ZK_kYTwn$iEXPh{A^k%0y{g*4qSOBu#tW+E-6%C*4eiMccR( zaxp$|MGYgJknffVAW2o3@jA)98iaBM4R#&2SYu(DF9$x-fr&5C^K_X9!^Nb0wkYhQ28^p;LOj%oGafAGKfK6Fm;6!>W3h2ba)02Fq^rxs^ zpKoJyMxK$uu$J<;V2t++Kvlxo?x%pv;0RdytSl$)g|ql!#uO7YjHkT4SCGg9M*iPy zGMGoFHQ86M!PZHw_3m{*effCQ7K2G>J`F_rJHs=;|6>|6m@Wpc;}M(g4FuK>jr6k%5J90AwRxmS!sMJR~g;|(fK_0?=c_p`|2*lp7%;y?!Pp2YF& zo}l6G=1jBqR?2a9+aXLj+-^I9&x0~>j0Q6(-Cwt8PQLGL%2c869vgXz5Z46Ox*F8k z{RG;ci+b)g9>$KvAM~G<#iv<7ZsgxXJcWC6Hag@#h-aZ-d}^xhMv!X|_u7EOMO2R* zY_V4mQs?72PwIG+)Uj((qGI<)v^1iSvU>2GT2p(l3Be_54EJ-$BaVvB5Kfdy4&QeN zBw6a%iJm)lN2?56_)9=i+^FqLR_x|(uBXSW*Q!;jaxy9{@v~HL3gVQHj_W~`Z(TPq zxCBToY3L5g#i2}4E)gYi+kvdeoQuO})}pJ{ZfpBONF`k4cDjt+m~Gg)qw3?i=U#oV z$}ZMtcOB%#y%xxuHFme{PIT@bK!A6a{#;R6S#ZPOvyXd;peIvT@S>El*xMV z9o}!EX0U5fog<6dV5xLYUj{{{-4LzN2S!v&eZfojO@Z1fbu?P$D ziVZ9yNVpZ-6m-7^KoU)@;qaj4)$A1CGxV z#j<+4*H=ZPIL?`E2hbAY^_;f3i1hUp^G`zg-4mqzq?GR!fGghEAlluZM9{~edvH0V z@-1jYONCvZku_p2=v6eB4y@)_%&PhWm02M+wx)kaWjg}v8K-T+8d3jI4F34u<@H{l4?tI znVY{3?hV4np>Abc^;5{$h9k%-c2BGv{3_}l{-8Hd?5f?C9a`z%{o-u3V2PSYxq08~ zZpe4&F!|u4QaA|3t!vJ<)p}Iook5BPFF+1HMB0ko8!E%n%2g3P<<&;?>zCb;wnN#Q z7Uqh9!5@B@nAJheW^sMR?nyCAGDNKpsu&0r-nVFGKUS#8v($0A{Sm)PO=A6cUI@D- zeUr#dHEXJzfwK87~lpcj-4oAYSUb$Vvdq^%8(3PziuTSOW0slLw%ttTUTr zf%IuB41;5&#?xTq-Mvuj>b1-4<>|y)tmO>$yZq^56KhjY1}t)<+!DlsOAt#gK`h#b zaE779zlU51iToOxWo#fHGxa@51V~0c2wJH`k(Q93$T|hpX`ZZuk3y50y&Xy;H4Zh~ zd?NZ9d%Q-ftpqg~srC}oXr$N_9%Ykm5f2(;q$U*8Qung${g3-hH{?pPDWg-LKOY4- z;AcgR!CS+a_!>c;wKv|!Tn26id>@gnF?zgUC6`R~fHkgIgz=#`FB%=Z4>=8aQ%rvk zL7!9Wv+ae_Z+HvLc5n|SW`}OX`1%33ntet%Etg)=L=4< zZyjO}1If1;xdY<3k0QvP1n9?v9%GuFnU1x{PY6FwIE1&Vae_y2v2_y4Hh2JRNR@&3 zQc_|Cfju3b={a3L+Ku;PvLS$r0X`Q=4pc>ODsaGQ*b0|qY zncgS`kFdB%d2t%h#pzi^QG><6z!YRaJ2WM^ksxA{}Mop9C; z>lQC6)K{gswU27xc6-l}%0bcccj~E1<~bbyFKtspN)5DeZv-LYCrNy1x?41Gh|R(F z<9Y--qW7}Ql))upuz&%|DlnW3BpVyB{4B(l9n}h3 z8fvl?O5ltEvncC}gMGbYg~NN+wfMds^Tn)w&dWHa76x99;BW5{qy|rl1)HM5mgPLG z54M~X3x%Wh)?_qNm|R^7e}K~ zn55Uwy4gh7Xi$1ab4Xo?^Ty6-k&gDn$g^?h&gL-oUnBJIo*$>4n&`iKX{pm7=FzCC zk;ihy%Hpy}ff3!P#SItMMWbBqg%meZWH-19?;UT1+GBL+wxk5!p*{4@q6yPGE9Yyu zbiK-(7N<7ew^XkIBOW+vO1(Knh?*;!po{Psu`5rK#=ths$IuXHG*-RXXrg4L&$K4? zy&7raSST}9^No7yp?P|Jgu5FTfHmF@Gm;fi3|T$!_~xB1t?vPF#L5}6KNsr4 zwlJHp3)f6peZ9?uw^6uE!52+2MBpLBCTkmGsMYGq*Y)Rf4RySF?Ld8hf$JH3;)(BN zV{Zc%9bce`;D+H$G(Yb5Xf4-@-HSCQB;^3|^xepFP?a?>uf{_A8EWlqSjJqsON;&E z4~>g7Gu}64`z|e37^QHmMR6qr6PBGhLKAueqOvKB;ZPOEVDOYhwt*wwwd7>f;@J4e zt`)oZ;US9aGuDG&P*J;Y2M+q!fGAD6_x<={vEBj`t39*sg`eV#qPp|=(28? z@9Uxfw$ohLY~<8BPMc-ASn*Snm|B!k?39?jnU^3#W{#1krPEZNsQfBVi4Wc+e1Arx z^4{1H3wPa?Il#z^nUumkwuzheF3c#xtzAFDs$JV=3`Uj_HgCb}%fd5^_bkiA)78Xk z%zyXBP-m!@7Ha+b33LtW$4O%%YiSkW#GU#tJ7~RG}_j zS!%=?HFL{7j3hK$l&cDcLfT43a|mlHQ=N)>ABTFk@lBYkJ_3U~gu?069BNnK?YDk- zuZX;%95+z}A85JPh;)m?~mcc_@$rRb4^>su|dN z-Kq+YAVh+eGA6drm1v2Y2B+YK_F?7w!60=yOZf0_b)K zYwg0DkJ(gWGT566ZVoSF&yP&!HHMo@wrWT!hhzuiop1SETE-)Lx^N? zybc4(E>i5TpPCN%Vh*M*MY2xEF`tlc_b%!d$Ol%8NIb|MDYrrVf(Wn?mzeiPvSrPP zbW5|aJQjZX`F{T4=|P>_-#REB8>LQQ!*wq;dwbzwHKj4Po<1U#HkxbL6Ue`eP_Cdj z9&v+aWnabB6Rci|UnpVw$LTE0)`XbId5!^pUJdLMUufMZz75NUac;mxNET7Xd+9#$ z=8@n?nLnKOvVG#s9jB4JTZYTsGFtBC`^5Y7{}pdYv=9Aw=w5g?4VSxVwA?4{6K~FS zBirP|d7r#bywCVw@m{e{yw~i7_XqW*Dc_P-2d! zcN~DR^8d!G8oW#~20pXDhWIJh(%{^RGlUVt{gU!@es^ZX5Kj*$SpQ)JPk$HzEQVi1 zi)WCA7Xgp@g9+fh`UFjTo~h(ooMp`zSys>cm$DZwHhJ*<$kLRqds8HlDU9o z8S+ZooqWu@5gTFP1l zr$jyxWe9qGIGiToeTqy^VU|ZDZ4>0Xne?Y2i=OnZI&&{WwY-edG=%!<{Hx3JAF{9c z;cAo(Cwd}f;OXf@hQa*O$HH=qjIR+Wj;IkRj-e4Kj+zlDj*}56j*Jl~j)f5@YX1ln z_1&{Ou)E$p!&1#sWQ?mAAENF}10SaFq@c2TWljHpvffwSi#$%z3YYA4@P&(2P}O5` zBRO$wB0VhOl=n-3%R4ehgRp{EY#&Ef#}!%W1h~L^Pk=`}GNDOWQ9T!v)#4&6op4@R z!bfyHS|rCH5{_q%wZ|vY!%}kPDR_yQLs~OCAF(CKGY-wEmLy=ZB~df{7!prF;&>+V z?*!hBHsw1g;zN3jn(>tokm68~jP0fY5rw$0vu85_ve=5JtS zU_#8){~#wSCPmvAcOD`*xQM5;l%Qh!ji5UmlU-_!LgCReYkN0`A5y zS^&gvb7*|ifG$@uX_T2dn3DMEd(YRhw|v-Q@bh89+-rGz&A0G>neXrq&$rk5Ehy!K z@32=n_nPmp56{=Iw{|(Sln-mBy_WZXn(vU&p|gQ;Ii+vDZL7dV6n@9}zhq2Z;xK>L$Avyn>Y=QzQhhWw3S z6&%=0e+K1^n&E;q4Gb5p30J^HIB+F@tS!s=^DeS4#9m6EsMIyQqE%Lbrh(B_7+KE$ z@9XiW5o)kEee=I{F+%Iu&RFHD12Mmt*@!70*?E#T94&hpl|u}euO$}VD;Q);-%2mhW1%K&X>_;`Feu$ppW>(7w#!7UhSVJ*KDVEeY)PwUJj@5Wa1@*Df z`BE8tnCmW-h^ey5Fhe({IB|H>e9)6Wvq!4~U z+yX@E8>|}lUa*>#`PNKz0*}vimisY0v6jVmOoo@MxmZ169l;G%r%V*=7Yq|6R1_stE((q>O6Fmh z6d_NF{c8gLYUT)5_ZB1fGK4Km~usoz5@2R`SUwG((N7N$6fZyO@Djb*~tZ!d_Ky36)9Z%kHJ@B+}{H@dzE9ie=7h6 z_`l4Noq&)ua_@7=A@Z|_$WHF>P^ai$V4UFmH3uos6|4h0}{Ti7}mmXoF=Z*BS z8SF4vsh7%-uXEhQ1(n8{lWpnVigYLg;}(B`GJ_Kn0zvm**ks>3+1Py}8^#TXHT%L% z$naq@e!)Idta2+Wxy-}X;3rY^l2?@Em!m6EmRTp7{ONsYgX8mFIqpIp#Dp(-n( zJR2N9cNbd}AJf2LzQ6vTk3PokRy6lV^r?fdtNw`^VDK{=a3}eh4fMP8Wt+$$3N1Zt z@3H@a)ZBV-bN`AM#=j-svW5+a@*{x4?+rY`?@c~Te%Iv#_`QYH5&RZFzP04{HqyxG z@0!s+hBLBdPk|q-@zhjnBV>dw?2YF~$@3kgk>|U3Lb!iR?qX#+7@lV4qQ%7XMbNEZ&tGyMKW zBeD2MrYl(aycTZo!1w{5ZAWAbB0Jl;P{l0e^i>0eYZgx8##pc+W=D3S-*i$6m&%-3 z(@|c8->}4m#)yl1qYl2z9GZy_5~^r;W&<8^e7G8)4@XLN8SdS*lLVg|*?EZ1sILYD zxpBlt`tO3dMb5p@nec!DEu{R0BI*U*;hqrsi94ql!*BhO~c z;rN}|R+49MCp-=>y)uWBXr^Fkz?70Gl{wrkU`ke}V3ZW|q;v{8l6j6VOPQooFnXE7 za~dssWe#`8$ZfYyDb=bnhl6XTJfu@FOBVB>Xr}DYDJPbtU~7;m*XR_?c3z%H4hw&z zWG+PUFpxzw&hv;q1!&m0A{zby(T4+lZW$Ub3ei)6#+*{5?$u~~(SnK^4c1k-@I#!= zXhk*>t#I2hYWZ#QY%&^&hN8Gx=fWyEAzU_v9da_s!7JEfmdx?`BCqtA-rUFi)g%9l zU+l{S&G(*xvz*K!O;Vr$#|kZMKqsXX%3 znAZLkji+*xOTZ%b(G_N+d~UMaM~z*9Pf3oT`qv8ier2b|C%3{65sC(WR8nG%TTh1= zO{pYj)p16Pj&$PVW~nhmAy%8J_hJpjSX(ic(lNYklrmEZ5~6l<{Mt!G`+i5EW;to^ zIH>TO;0XCSIOq`e(?VrXYL=iX%1}lsQU(b@3N5GiNKN@Il6C)=ydk&4J3{;6i5KTn z`?IWX8m&FDx0I@dFh*nQJ@gsc?!SD--F5zwm5J( z=Yj-Fk<`1$g)ge+$g9JYoG!joVjWhlRe zaB+bC?Nh}hz263FCx1qY{F=aTdc`Py7nGrJ)6wo4Gx#f@j8qW7W-&_hz}}bQ-;}Jc zVsL(Ci4%KQ&sPBjpTO&Lzkfa9t|`mlD}tBwld_}{RkEu}#rWFc<(gki(q)@!F3LWS zI$@?T>+m%K{5;Q|dZ^(TocKY-EdI>TMmjp@pD7!^JL^t8U>Wac;Io?-0WW^=K3Er6ox*q^vv-K?zr#9zdf^l?y?ki{hW+}_dFWeF!*wPstFNY zqEc_nUC#YPo;ApLH2J|gCpDI|M|mhqz!bOh#3_-1S)_l4^v$H-pit!<~^GtsL(Xk~g~+nFJJRU?_hOy~@;m0)}H zPYE6dpy-t>Ug&z^$k`D`yE&s;c}lFXVM5Oe7y{qY!Fa7#G3 z8dRbJUn~_%rypDJTX-xAFH*z1uq*AZ%CMh;ODzepT^+2v>?0h6auX=G+FCefa{b`t zP>QmzSmBp}7N?QawA8VV2`;o#7>c%ajGbZ=cH@(Gk}L#^(;Ka05F;HPLYYDx@EuX6 z4=gU-NhzRTXvz~QkpqT11$ofTS&CHxGX&9V&!RBX#h#~AID$E`j^dMVz4M9Bg5twY z*uU7aMr@4`ai4~X{CJ;i(Ll-B&a+V81K7@zitk+n7xFEK@u(F3ZPjR84AzWK!X+&E z5-cym;Ro^-_CE7}#s@}!F>AvqO(H-X?;|AQ-|a!d5(HwNotHiDZ7%EWupf03#T3yiy;2`Eh+eoWxr{;w*ub^zdS-2 z4o8h$s2BIej>JQ6me~B2>rAJ?-<-x9}%zInxosyTj{P$~!mopXj4{DA0LF$*-Sm<7s&EX3@sEbYH^6=jB|c{0~2Y>5m| zIMf|Vu^cIT6&HDVhhSon$BFOD<0SGJF8K~)!^yx7FKY!bMxOY+$$YJ`0jr!5Syo9F z;x+$qxF3EBpkm*Aeeh>cyq#=rS+JD9K|1(0lJv(fUqfZr|G&|``~G~>)g$=sJ1upQ z>;4O&iwx zb15^n)3Fup-UX(fKV$OSRM!EdM#$qsqk?Y_Me;c1EotZh? z*og(9?kzKQHj>s6F0dZPPVBepBugg|ripXX#?F)dG%p)re(Vt0R{BX^Hp2Y&A+xRW z)4Xhic}Eu67W+wFHo^t8ljzsEe6qiisK*AjH7E5!X3UcYjU@wI=J6s;o}6U|7mdmc z>&ON)mVC>&Kt9-PJr7t;eE5MkJ9M>J3vw>LpZ5pp=izzIADxHH%kseDeGC|UU00s4 zofiPa%M=$9`w>rW{F(+p%UzF9R{<#`gmo=R@8+3@a>HEkyC;+z=6(av_&HAYI^HVH zOpb&n*N5-{&@!F{q-E+biVBu&ls0atyiG9#B&Ut<=aq{85?fgB!1p32$B@O}mni0yw)OLR zrP|>yO2@Dvig`b6Y`6rlwI?BI+KP%g72K_Xq;Zjo;m@qsaCLnK&T51{OxVTvN z5$!vr&e~JYqUx;jGSTW4A?`{^TZg$XR@TCgk7!|C-)@w1NwFNijhnp2#cOqb0Tj+_ z=9fedwH+DSOFK8(;XN&)zkX)6h}T*#Yaf?(#Lrva&ZF}d3l8Yzc$u=5erB&@s2|v!djEdeA3YGq zej)X;tlZ2vqa+buOe{+q(MdlT*-0#ux;c6rB)mTIm=&AJ?tRs3kNuHvXfOSf;y5Ta zkqiS*t;+=Sy6Y*A7kwq4S9yOWhUY9w5rPy)8TpT+C2-mSlVrP_5KkWkd-4e)-OCZm zgh9GbYC6n7wtIz7ccsv6Cf!3wVCP>YX-0kvlkh7(q`z8l;Cl^`?pB2EH%Sk^*J?UU zXZZM(Pq$6zt|Q&U9^X$(nvuVrNtO#UZ@V`L4tzgDqY z+fKSiJ-(lpG$VgAlk{}!enD{Hdkc~77ZJ+*OnJYg=~k2Pmwmeb5xTFC?h%jgt&)ac zHZoa`$+gctLfl?;l8C$_ngrEmUL(m;k#SX z@R?dBS?<}Se?f5I`y!F!uMrOcPi;#@#%gibgz;Q?Ie7E&$Ld{I*eL?eN^lj zyNDdevG@ls?HCtLr_)vcMUNU-t$4dD(nBeC*i+SGk^ZZTnyj9ABPUVmHr7)B^O}xzqe)$3q z{LW6Ept+fA9(*(qajlZ6e;^un|4E|tD5pdfcmDs zA8k6i36t+w83+PM?Am)8>f&6>FFMjWb@-)a`I8U?4 z(;CGSx>Cozf~FkyX2r#>G*Lm!?|h=;Y@&OOJfAu2zltO4rD4yNor?Wcx#cWio=^^( z*G_ugaSP`KQ~<4@7+{0WIH(0vca4QVOS4{DzNwdkNU6omOv4_Gx-EWg%El|93}1*nGqFZ(O%eaEcz=tnPL;4t!u=$CT*9|w zOntHIjb=yvUgd0C9X0liW?MZRJ2&O12dB;Gw$+7ErmpPVkhRr{7*ntBVQ4lne7BY1 zD{+Pu@nes?2W{}&)>IG?AJd^TOpq$F^1T$w>tA92#erpY7UIKbYWgDNF zm{*5m!@*V)LGuYOZnTmA7g3g@7H25c*Z}!oQBBPKg1Jd#m{&{8xSkDJNByalVPQJy z7fIf)&S5Q%m$Lp{@yJ+5J(^SZ-Ywmbrw$(7c zvV-yMGZ?>GFdr5AUqc>8O=xDl{#e7hyd;Nd%(yq=jZGS+__x;waeLTMFvs|F304)G?qU5V-X1*iw781)lOUgSI5V_PflFP9; zEo2D?RFQHq?j5r9v&UuayRkOsoq$^Po2jH+j{ATt?7yTb(6Hx8RKY@mXRV>gi z&^-dR2j+lMsh6#Ex=T$893c5l>>!j492j7G-ddf;44DlafdXpP!Q*t=Q35pzWl!Mq z0$tF_w5frg3v^LyI(@vF5qM3YZGb)l=r01jC;4Us{wh#pGV{#}yd!n^2DnU9`vqDJ zB&sW_2+ae;I;@^a%7Z1XR(-DH&h#tl@W43ZVo0`M-JM7~JkViK&etXFhyc!Iz~v!~ zl`eH;V6uTk6^-zVWJh_>WggTgY4foxX4(vac3@5-G+Us#!i+NDkp zoG0bo11<-uj|R>+VxX+SgnFPlJFs4$?_#UxKy?nFOOf^f^rA}*0-(Kqk^I zkhFDyjRI}M^xUOB78nwUmsYye`oJXueNEB|fy)GXNT8v>CV@DUcd1JPmkYE((k=^J zA<#-m+Z5OgNU7_jwwDLC7?-l&C2g|@J%@aC>Z-t}C9M|TL_&QkaI0!!Z)|B54aU4X(STktltXP5e1 zphD96P@|^;p9@q8)b2qw0^N$Xek!m%5H(}quoz?PKy`BF($KM{Epx&BvF_4$0R>Ph5X+5cn_(;I#on1g3AJiMA=zl68fF@BJwz9`|QW@7#^ zli{8&hM#VEI*N1EHiq?8zecz`_*=-Zs`o{NWBXo3c;D1NBV0N44TKN${vF}7eeWWi zGVMKtcTThF0_x*^kvd<(Nn@((mJAgT2GpT5>kxKll6CEBQcp9&+OBqlfvz;dRpTB& z3mn+dhxnD9$3z0EWkNsle!Ee(+fN|jY1MOp$%h%<5@L9Y#BY@N*ao)k^GSw{(#|(a z{4@z~kZ`huTPx=x?^Oto8+yvFt37V$Lg4$<=2-{T^{J5XX+&!;89EGjzb-d79Ex0n zoeV208Gf=cl_aXQ`B`$M;B||8a@`OwLJ_^tvVL9{_o@^sMqT8KR_Lio3*UY zRwqhWQ+G1r)Dv6xtom#aeAKczC|6~q7h0u99`8RD_{S^e)OD&Q<9-W1Y{P*1Sm<_}g+SR(LA4Ms>2^W~-Ldy`}FyUhezdRw2aA3kk2%EYuMcC231>uIS8xY>v^hMBb z8ut~1oipwL=Dn(KBYyAfA0qzSj)xI{2d&hu{xtC?h`%}gC(-e0NAr`A#|n>+*y`;N z!^3MS^Vh~OoIQ)-TN&b0a~RfD64NjBI#R;lXNgx+8M@OLJ|}#dXOr^aE{1Etp;P^I z;?pSW?um@wTk|a9N7RshXXseO-x1Ci&jJSHOY6yQw0tVe@V!Qc=Qc15N&NhojIWx( zu%?^g*Q*$gZ({g6p;_6_`1eB$pB2nS6^w6cX1G)6C+)Wz{XV!~UF{ULW70v8IIrAC3B{H;fw({XaLf1g(AC z3~=-6b!)?`;5H$`@O}xeknp)VuNHN$D*9)nez}g}JuM7xL+I;pRrC#DUhiU9)BQ#n z{_nu-mtoi*`8&$3K@SF0NW#M)LqNSX>s{bCjc5ENgzf4JpwRO7~f1z`rd-L9S;^G$>g)*G>Q)s}W*0kuOoKOo@^=(~XWnsDwzzb_h6(1Arm zt%$d)U(Y%krOXa7ep9vv9B$7xBAgy%`<$9)>0g=7Z~*iH^_1{=8a6Ya=8XLb!jH#Z z1?4;4OX?O4RfBUtJuLD+3QW8Dg@nJ95xN9nCsun;pf8TXXzf(Tpj@mr8jc2@dbnh0 z3G_Um?l#*|i)j|a&zT&9O%}tim@grmU@?5yd;+Dr;xv>4CAp0uk$jN*1R8G5*AXbI-2c6GJG zcH8LXoeP@f)s*%IX{EoS#RBTjjm)Jf$Dy^C3=Jg7;o&(8AXRVm;W0}E?U(8-6>F`l zwNw>S1Ik4Ul;al-C4p~OOB=|os`F?_{_dp32q$7L2&kiEMmP?$K)d>L>SS>4Y+Q?a zwNQZj4t6s9ahT!Ceuj@r_zhs%)l=hcM=9TG zz{3*1Sm5rSUdu!f>v_F_e%3pO|9!sc8 zAx{E&&eXFe9*Xd(Nyi|3EOGoO%!Xp>!phGSX*9i$A&utqSfV^mZsjz79C*(!+G5{Q zxn!t%4#PKR-crf7y`|Dp=XV@kWvN2PhKQxMP5e4A+b8}M;lnfELb!8gQ&l_kbK2Dd>5FRH@$;$d{fkg*a(EE& zjpKe^drTW#I<+YrPdtxh(@6qd*06HomC(BlI!#SXTpKggLpn`eQIEYW^`e(%B>ru} zb(X(}f@fw+&?CXIlW&Nb>K&oHG<VIPYHiN2Jpi9-Y z{a=j*)qD*>mOIev>jc`Q@^kKsRjB`X&>1rxj8&?ZapbZ|z25a0phJt$u2`))&V%l& z+!c$d6-CI#O5meK=vnB-g+=IvSW;c>L9ch&*bVt?5qdV(puSp!UWoBd3I84mMk80o znlu3DvdHgac$G~49tqCxd?SXFV?>S>GP{c5KNEts}EK2wF^EKurYfM%(=9yGV_ zl=y6Qfd?HAXpXvFL+Zp{8^7Q89S>^gBlJTL`tDRhKlY&I0zK(L-iI34}Izsg9by%?B?exIx6dC*np_jziW z2X&+04_1R7^m<)Ye1ZC;2Yn6wzEFMM&xd|LTz$ubPDj5ViTPPt38Mph(2U~mk>J5I z*ThRuHZvGsgf9s*ZBzL5{(O9~suTs<6n19j!xm>-dDW&w2)oTJ>3h0yZlhx&uSl*@TM^)FvSExS-v`Kxe=Z5$y^|nA4 ztFtP$$4^m4uiA&6!S|`vZ$XSashe8>&j%4_I zBsj18H}Uh--eM;REyB$CM^HLFdC0q>iZ}bf<=p z??3S?)x#PJU(@h!bF+HNgI=BSyxOc@^q~0o2VaS8A8d8Ub5`ZRqY1QDlMa}e}uXYeRMxcw;JLAUIZ&4R`&^6<(j9r5h1@gRD zJqBp2n(sk>Yq~OatqM<(@=%9~^`BDnc}*1h^5bw-{5rMTgT4Wszg~UPgJ#wA)PF|Z z=0SJN>Z$*%dZ-BX*MCkf?vu-{mGkPqpqi(W=f&zzD)L2J6;Yp4e7=}|wQ zg6Hu)wa$a?P1x#QwOOD`)$@^y>hD!yUf)Iu=Qy9N|AE>zo6yB77*f-=RMk(twf<4nb|9fmYEJWA^^dFRMdqpgH@<4^m+(&gi|Ri`$V$ATD(CrW(ZnBBM-ggC z{6+N_p>*O+b%O^zHsjysKh>9tP=Df|s`4Ps<*^wDCEis%MQEG(Uv-cNomthN*rU!Y zLI))RfoqD;Hq#1x(SvqWEldOh-zY-ICPIN97op{eNZ?HmTF`%5qAC!YuS;Lhe^#O< z&`^ZdC8B}*Jm^LEi}it@dJrv9ePG~Vo$nuAg+zVej3Trt(Ga+^2yIP_3EW?VZcK~~ zY&%5f+t6;S*1*k0=$}Sw;I2b;+Uyx$#t-DkAtw5EoBg#!dtlK5opuOLe#Qq*EJC|t z;{#vvp#P7(HxG=eI{U}ZJ@?L%WHOm7kjW;YAd4Wf?+76YlFFXo1{#KBAS08^Ff#$7 z*d~fQt*F!$ceHA;+KN@*Vqbj4eW`V6T~I-3)t35di&ZPW{e7P2oO@>`!D`>{@B96} ze|#bH-1B+PbDpz3=Q+#0bLURqrNu*x`!xC^#@J9}mxF%Uf0*%%gZA`4#@Oee7y6Gh z4r_GAl-K)@HUbSQzcZ%1(|?RH*+Bs@&RC(*+@ZhkKi-Hj+HdR|@+YA4G#Wm12<`w} z!$^6z@y3$xvQF=m8J|LOg+_B`{2l0QjsA0>>^H%v@tQ*7W~{U)86WGo2i&sXB;)TIJ?3@;xlUANsq%=@$wsk8BRv+-cQlGk z5~Wj&(HeD6vVdl4bU}qEoodY2=-LVkXt_f0VA!o2>m8I+I^DR9(N*G-(m?6)#tsz+ z^p2Qm?AGYU>0g>NjmmjcvL0yZUpmvMVRV)FjeB5et+7a>PS?=VI%BU!rT$T+^+x-A zJKfaMxyEKjSBXwnP3eioTN;)6=a$Yh0t>kAVxenM=|bZKjT&bxD{VB+a8OI>QX{3& zh~v&IJ;^wr(V~JYicdC9T*z8bPTYqz8X2AE4OYp1rx?o^^>~k|asyqYB)w~k zTeRfkflJI&jcasVd+;4`s&T80rV_eaqdYfB?$js{SO+a{Xtd@yl6;rZdEWP?ZbaNc zg;26?p!~($F5BcNZ7l>E;U0iyGkDulhoJ*8`mw>3I#(u1XOqq33PMSNWPNaj z;rY^a##s(}y>z2NUv!|j_Pj^>bsG;jXlK83jprToc)v}?UI)G2?;_)%gMQubQp0Mp zwY=N!hX$5*_}3#|Eq}iBO5@;C6<09ojpA#KFCDb6_&Ot(9*IEi1*2XnzTT*C5bmEF zBN?41yrT}3-e_E;QMBK|(wmH@G@4uem(rV!*G?uaJ>oW;9BelxpF-$7v3b;2rMDZ4 z=;2(%9X#%e;vXCFWeT;r4RNOtUry*e5u4%)-eokMu22;u?>4Ge5b6;Ru?+zXY1 z-S-+%jec7>4(K{Y%4gkYJfPyx?}tn7Gxjj*5ietZ`!j>SL{24Z9FiaWnX!Bo=O<{k zzu(x&s0XMtc)!uKT1lSlzR~>)qq0p&o|QK!_@J>jqT*bm#|9rUK3=2Z=1xxaf7I9# zRcLYb@xjN9c)LQ66n!S2F{(QldFPF}#C+B`R--|=gr;hA6vv&Q(I+_+*QC*JM-Xb& z=zA==Ss^iIG)~%$cQjf)hR~linv_fEON~a3sdqhVlQBB?sbCUU*v0I}% z25t(zX1v8n_4^yfK}NJIxFq<7u_sCCdc@~tR}{Zx1Ud=r5p=Hcwn5K8VUHl_T;pwH zWEUZo?j2(VBPIE+@xfVX$#;!?XA@HSy=N@iNa!kYT)!)W?-{S0!*ODD)%C$Y7$fkc z6(oUf3w~%UWONnKPl5-H6&hVW{Qls78k-&T%iv#(haB{i;HSoaIOwt9=f?96x-Iyn z@jC}Siyyk$@1U21hWwL*t`Fi#H2(L5t2Vf=7|)eyG(Y%e&?`S>$qT$6yWS1v$gec| z3TH?;(uD^ZX*8ZNnozz*2RW`%qq8f&G;`!ojsAWVNgk(Bjf>)DYINdoid&$NIBU28 zbcRN6`t}v)$_pIyMsc3J!$I!{eewwhy;SU%2NYr(ER+Www6C~Oe(9h$ii>1!H`f7@ z?+1%zxr1IR?k7hoBu<_9Q7|YMYt-6L_6y1mjq3XS6>*z2x^CKMKnFDXXxd?*Sv>;( zE)ZW$Gs=Q;n?^sF<_7v)qwi1418O=~NxnNR0Cb;5uTJX+_2*^tnbi4m_@`Om5Sta~b8tooaho6_&sL{Al^MP*G=#1g-2FvAsjV>SlQgOL-U8uBNKKy+wQ$}jkTGm)L zKt?sXtnA(30C~4Y^U;3;>^re3za=1vNpP`io z$U_dQva038i&gHSey5aG%Y_=%^gE+$pls9VrpnebJT;@y^#ji=8zisOX!PWG*1d__xFQ8EE_JzYV_Q(Tg#4- z3pF~r;JUIAGOp2!!JErQ$~!e`pLR#tvGQY$HkaK~HcB3IsnU5q_D;vi8il;x8Sem{ zs1T3hD#QzLNn!58Pw=7Jl|9~M65^}Vv=Wxaz8F;kx7pbyGs$p;+t=dv34X9roOv*po0 zw6%E0-Akh3(}Q1)5bcje6v`bXJ(>D{6v zZ!LSNc!6wl&>O{z1NmvPa}ica=BFvl(3glwZD7p6{UI@{{Cc4k{}@ zSzha)0p+L2+Z=Rs`Kj_A2aPB{O+M(LG3CqTqYj!>zFa=*pc&<-%hw!KTYiT0U7_lb zH@%^}S=MNTKI$KmD;yNSuYA4cpm+MW$YocmbR|<4m51dTh1eoj$*m4D#45R)(H>(~ z*~#Ur<;bm+ZjW)MYdO$zjV6|b%iH9cj4lwz6thie!NTY}SSC=PczaObOwCCMczD`cp=wbhDNAoVbU|yX6y3+(YF(@+*x_8g)j_xiWB-%Hfl|-Q}C)3J1Mh zeu2DCqpSQMlwTyRtCi$c{zK&#%TqLZ-v4s>CGr{v?JnOeUvto*@*m2|YgD@Dq2)4p zhDN?>S+PZ~RS3Nj5L@I~8R&9(o|dGxzCzyQpi6;vIVe$nrF_Fl=N3Pb?>Wc-64z4h zILoW>R9q$halI-_`_b*?S4rRa?xrC}SKJ^!(&*WN?}!`ZS6cF|fw)I6OK~7dYp})nBPwo` zgBbOAPs<+zG)>1fR=p!`lJy!TDhVyr=yr}fO`{RhCRf}fTQs`Aicr*+bWbX~Nv_jq zPxbML>(=OFMwe*xCZnwyoj8yrZ)DWt4GnAnx=Y7dh`U+-OvhCr?q<15$6X$nTycvG z-l*z#+Gs-OD#YXO7I`lt+P}Y1e2aXQ(N*G#qNNqL%7ZFSoIBYqw#(@^k(TqsGt&v( z$EZj297Aa2%@o%oTFn&|+vNt05@xjGcKL)xr^~L2AIo<%GF;sicgnwLlp_V@=k?tmT+CgeX{?plpjgD#m{9mqbJ1rQMXq7T+$mcX!jBV`h~oV5#8y< z`L(1Ny8A(rzjP2u{=2-9C6&&{iY>E6yt_l^@c!vAsceg_TlKVR{lgDBnmS?NA-;zsyCFaD#0hWKBv__Kp3 z-CwfO{nd#Z;WtY@b3&aDyk zm?b?<+z5Zak{kyO@yp6w2T{8GtaN@SZiK(0gr1|NKBD}5l|>Gsbp5l^l{#@F{DVr$ z95loqtSomBrK`$Hca#%1!XGKAcF++2pvplGqIAQu(hYawM)(sYBOEluKe}?1gDBlN z^Tyk#78iJbS^iOQym^O4PnEykf4q6GM(0*lSrg0$HQHPi5EIPZ3h}6#Xg;OmNXta? zMU6rUP~>bWp)g@Yb0zCLfIgQiToFt61?OQv0)x5`03m~vrWn}e>J za(&*J=5o$~<_EWknyo57L0Y2b7L7EO%q*O}cKJu{0-(Vjb0s`<3HQ{oDpU&)bD%duDe(Zm!(ISbB`-+s&Dbl@~ORIMTA$d`KhG^0xV$Mx4S|idTttLiFi)Ag>aiqnv;u?__x3x(l(&DwQ(TKF7 z>sK0uJ!>od)>9dh0qaFa@~p~$^@bz4sj|pAkRe%O9dwW(N-X#N>Dum5O&U=-E36JiRL+-jtE^2rj%qu=x=SO{GSGTTBhoU+dPO7Baj&Pe4j!je1F?^AP0Wy-WYs!xV{#{1r)I=WL4F3ll0o#p zj!V-E`&0Pl$wUvj>09f^euq{X^dzYzE|^H)jDKV>#a=g^=shly`Sm1{`E?n|JmotQ zzptd?9Eqw@5tU+dHEE-KrHBrpu;PE8OZ8?RasD`gVil*oFfFr^OL+d2G-o?XYu8uR z^#2U~x*8pwpDx?~dX4h9m8dmLaa9#*UeBD8qBQ60>iccd9y6MB4q=_jW|SpRSc-+C zDE8nUsxA@2b(!{tWAY`22w2PHw1+hwK;EcTPZrR zk|cKyB|X0$PLdUUI1~%Z+Dgc_-ZWFpe0Q~wq%Jvu!Z;K z)2MU_H%7FZN2^CPVa$59d`S_NZTz4Bwz_|u5Wx2~CgcYKE|f43aEsB^fq+N6H8~LQ ziZ}BDfgJIIFA&HTs?4fo6s;ddrBzf}#RQa!bP}INqGXSOUPJB{dklO0`p}-H_B<-B zN~OaX=_a?l#jS_$)1W1#Sau9)rg~+EGd+@$QSy(#uFR}deL0zFDb}Us(>a>r5%geY zzS*2i4U{{4Cd>COgO#NxU6O2mrnYo>+&b;$Ce{5*P?JZNA^LJ?#2tzMb&|^7RQszk ztMJ#^p^{O#sJ_SyXO>^_Ul>7Urm(5!kxb6_*oMiUNFA%fihncP*j2?;qwCSOQmC-X zSLH>vZI8S3NW{yDVJG$sLS?qY#J6oyrM-Z?(3MU(@r@sZ?eVTg{XeHGf+YX_8C1e_ z*bwIih@)oJpF^jmOGS2W&rJ`Z1*F&n-(`wo5AieS;@jDllsv^sF$3P-6hCLa$}zJ> zG%p{iB&t+OkE+Y57=z0Hm_qrq$Jp(ziYc%YtP*()_Vyu`SU-aLaV|W+TYMkX z5Gw62c%GtIi(~Ct#G%>bF=A;Crg|ZhPyPqLJ zwmA>-I#6-;@cQsiJQJy~qQ_(GNO5%zrBbse*||LmGFwc=uJ-qiozHEh%B)7*2|St< zNA>Kt;arDNFU1ScX6n_&|6Pvqle9WDc+H?J-w?m&bv{uksE&%G!lszU-cP0dHj+*3 zqaJ69*G)iYrYBb%H3}ZbZw%nO>7)O5P^!ggTymmP3@Rm#YX3j76{&D$FRM}0k5eg+ zS~7rAWsau*UO00UD2q~7^sn+&?sxL&xCryn|9aV^P(5`4dxmuFZ2oV#A61_!%TboF z7#;(y%6_ApN2rP=Dz(Q}95u>l+}W$Oz8tkO&y?xQp?sy@;bw+2M|5WHPh+N&_*N^m zQtz04ZrdaE8d;-lpA*^JtC2`lY70zr z3?8RP;_v6#Tv64h%42^NApOKqYbTR6*z5MM<3Elz|JPHg^MtvH)z{s+fWX=w(` zTmec^SWdP?vE)67_Lj6y8xp@_AW*i?YJe{q?lL!)JoYlsXT*f!*uva zZJ3V5I=`1M&Gf7P-SC4LO;S7xY6?0{!s!RkkMylvJG`5H$p39VwdXeMhSH@&Ac8y40D5=l@sF^KEoK#;1$qy>Y(Hs~Qz1AB*>pviGysb$Oy1@8ung&oJS~FR7Jd z_gjwd^3TWHd>4STK-`5-JKjr5Pn{Klxbfox-$+X#>;6OxJ?C#m|^N z%p9MXJG4st26PDCqB{W3orDaM*&!~Qi0=xrvmR|<$kz-KKfcQe3j&Jzy6_NhGl3$252!A0qFy|`I zv+_~njNr@QU&x%j{r@Bnu(l7O=QDW_6mQ{Tx);=E9%gDmv(Nkj;bY7L92=7Rrq95) zHLf4C$lNbB3_1zn+YvsfT7z4x(0FqU$Qr$(){@?tY#bxG=}{iypUYrlB8ARzXO&3T`JLv^e%_DR$MIgS^#P^_nOdmVv+_gZoPxhv5pnbI!`7n)J@LO*{?2r{ z*25aa4p8O{CJieZ@gdmtXyl{ zKE1@f)~Fg#4ocsJTx%RVU>GQU6SBs5p=dI~9&4t%%P7pRML6z9jSOGa5_cC`G6v4N z%JraVRnRXcTn_$Q_`c{Z|Oz zJBGq1O(uF)-qY^aq3uQRj~(zklxoG~t=3v&arK|vJ-Ymlz>4;ZO&+hOOh!HVpnuB` zg5Exc!dH2Mo`Ld?V+VL@jPi2o~97^egvbV+N<-=u8ltBnS|@oJ+%PsBypLN>9?CYIU6 zGMgZ?F=rFYZ06X_%-_suHyiX$tIY;I8@H8Xw{q-OPPLU|w{q+@j@`zZw{h$?gPvmB z&iw7n-_AO>Gk*v3cd+CR*0Y28JDI#(u;Ye$+#GIr534_J9s& zN}eZ2798_7WL6CQ1oJPRX+wB9zST@4l)}g zRg@hw6x5afj=0vOdTo?sMVsUZe~a8G*_I^P(q?cz5nDNSEAzL4zcFV!_|M86%-JEy zW_GarPUh@n&Q6xx#c6kO_&E+g$C9tG%qz^_%i+DuAIxt|8_91;JAhms_l@Ltr5)rP zNAerf4l(~Q>TclI4C(D@mPzF~ENOHP=I0BC%h|9OFnq&o7Q-nM#x1#a3z3yVwS^l)ke*yRGT!PQq^&)%^X|DskU-#9jDr+`IKtA=2NP9oN5Qh&f`=&Id&eW+NJrF zYLDhqswPhL9LF|ss#iF+iBs*>d`fjd^C{JGPIZuDmvgE^9J`!T9oBqGWm(im%ehBd zIh7BbXJsp=D&g2xPF1P-lxnc%Q(jR{HIieaoN7GBMmg1V&8Jj#nop@xoN6A&rZ`m- z$EG;da?Phyt(s4%Hgc*c$8O|QDURL9sWxgprP`$Vlxh>F+RU+=IMr5;-NdQ3X+EXe zuKAQ|Gq=fBrrVhAu;?v;+gRI9PPL7-?c!A1Slb@WCvDF$e>=Zba67+MFe2VLwm$HQ z(b<1KXte**z;lcZ9e zBB@l%C6#K0{4Qv#q%yb3IA~NRK;tq6nv&~4H^>d38|7J`-Et%7Ciy+ki)1(GW_d2? z7P$#@tGod88hH`Quv1=wd>=->MdA@quXvQ{<4m8DRHLUk_IXejR*179`6_c>XU+jG z;Rjr{gIto2S^pvAh&F@_-FT$dvrMYH*QB}!OyZX?Kgj%Q<_u=eFy?fd)OwptYV%#@ zWuSQfENH;G7IeBrI%iqjo)+ocXi>j!x61JY0e4zABK(v^{rI^>c^zhX;Uam1;er5fg@ zR3qJi!co{i7gUX+U+4g>5R*U$iCLf{#3Imf;&jky;!Mz5=AQ^Ej7HdMHParZrga{1 zEaJ~%TElb&(-6~craeq=W_kn942~k)dBx9Xs9b7x{2ulrh@~-SrH(aO&s3CbbmGFxNjg)@g1U} zp+tKWJ%+-!FnyHiex}9<;tyn6!?b!Pab_`HQA6QwrYlb5Fw>iv?q(|H5x<)0ET$`% zb~C-1={}}nK1(v4#ngbeRKK$%@EZ>Z3j9(T{>7QDHQs}lnq)K>%Zzs8`^M$QZN>w} zlg8`DL^)l~k@IAmTrW4tE971BN%@`}V}92>&0J%yGp{uZtx{{KHOZP~Ew;L>ORa0I z8?8I6`>kJEFIxMp53E01K3AD*kZY7{ylbW_OXn?+4zGyobE~az^D$$XS(hVa^RX_vbvF^JdN`ISsj8d0X7IMwp=uTO=>evHA*9fYlEccj;TZo+{7sfyZ{G;2jKW)o zQ+Vf){h<2?66c!y_d!ptqVT#(qIYrlxM_bz_`xcoce(!x`c(C2pof^g!!$gQI0Kp9 z6(GqoMiX7l1kP8Wc&@@|LHHk_5=Z1=P(!W;l`;Zq$~B;tYzKA87^qvW1@*`z zs8@D^=E(KXkP9kBp6o){2P#EA-Zd+QU!DV6Ex!-C48MAWH`{?qak}L1GlJsTO1xdx z5Ft=JQ7tb-xCK;V^>;DCVNfYn%S#b%1C=<#{Q<&ff=ZE;mw~3_<*>31u$nylLi$+H zjqpu*_yy~UpxyX|t~_zBm6}O6?h@JRFttZ8c;x+LnS#3UNzGwc`%(1@fYIL3ETHv|ebHC?t?>?_Dry^%&P9o>>oV#-VJ?G_|_jA6? zF>~{B`{xeN-I#lI?lZZ2a}VSm%srHQIM>Sa<(1@B<_*ppnKwRfdR|@Lyu7Bod-Epv zX86AATjE>pYxYHaYkgdeeW}xJ11HWNqb<@3;%zt>@8hS1L@2dcgw(&2Ur+ziggx9hEeHAFf z9VEJko&NV#z=x;J1o!I<^eXl2OnheHQ-jZJd}{Hj!>1lSJqMo?;A!UK(}2%+@i`Hn zdGHSN(fbSVSqQ(k2;+M(Jk}C?8ev&Y_$Pcci>d|Uobx)9%4S$6Z-lq@#|wq|F6VxcuGRR=PJBgFXQ%x>sM{*4KUd`mVkn(APic>j!)d zVt-8KvBXEZTp#l_AU>0-JU5u?dYiufn6G%VzQ#Y{t0nH?Yl(P3^B>gsVU2&O@go}l zyT*@d{Fug1>g&_EQhPsbs{VXd^PkuJ=b10WuQmR)#=l{?fOuK+UuHgjy^Z-o{En|d z@fKe#@s8&2*Vp&;^+Udvh(GD;pY`=W_4O0J3Q_7-?Ngzz1NHT2TqlV!mD@p&1a-y6@Ex$-%)0-sTGmsumXW1iWLJ5}4UyAO-ECuWwNm{)dUR@n*PvlBjMC;ZD!_?MmVEx3Qm zpBnfU{*vJI#?F<=mPBM_`1qC0&7(ycF9~-hLo1_w_zS|R#&9AMibl@Lh(5lhxw$Tq zj7LLVwb4*AIc{|G=oMqc^gjHtN9K>6@HPBN%&+ZCref_)UGZ>ZDwK+}K=qu?4!X<@ zCEIF4Ep1_h7j#CWR3-!)>N`5y!wHQRcZNHOJ13M()rO)`1Z!GSkyr;w*2bdIu#LFz z4IQgutYd8_s+sDljkU)^iEskEx>zSNup59`jkCK_*&NEd4^#cZZ&u2s^I{#VvpBP3 zv1k^fwk?#%V$6xgLQV&8{!1G=vKf?pZ(hTq`i|B`u}Ck`rHyT|M0RSsr)O4m|h(9shby6tW z8D12MBr?>fCdo*p8f2`fi?G5_q6^Y!hPqHHOieLyylBiqs!_mhilI?(4Yjr=!pUUA zqIKg%bE+*74z*G!5pD@b)`e$xu38mN5Tmm--WY3H6HXCW$!xoW!BJ|*OjK%do!=S7 zsDbs@DE%i*%*bh?SRGC^FKle=jK^UOl=(y_bA+-p2P2(1K(EZfX;#h4R?*NAN%63a zoE4rib~5L*v}w*{Q8#JIgmIH<#?F~MZt|oF6Y3_6A3bMWeQoXdiDSl%n_OEneq7zy z*<&Wx)YpuiJZ|EcNnnY48sDi|vI38hiO*+ht+tf4<3#@h2_07#( zcJyROG{dv34s(!N4h_F>6(cAN5;bbb!2s=?!+$Ev)ELIzf zcX6P(l`6$i;r5ua)Vgq#Dw<%10`nrNFr5Fq$V$6eJ2rP{wZFpX6b)-d{oPdA| zE>Y&HfRdS?>Qu0?E13$nk4k&p8s zl5jLavsWW^ChAR`BnDB#ss&*HvXJ>?g{=bS8&05|)=(Hjx4whYwTjt^Sg4i8yzUK~ zzaW%a1h>~_Rw zUCQV(BbM;!fox_ru;<=6a4nSGK=|ZPQrGyKQ$pGLSYnNC?u=&rHd&^d5gCOyVE#!V zFh7)lyHF+wNEX?U%wROOb*5Tl>pS$2hX{>mU4mBOw3ovn4YV{#Ivf~VHlulERy?Ix z1g{lNrPDNYw7@gKV0%Y2$9qXOheL^Imy_ATj7%Dynbi z#ga)H{fMf?Y6R142bzjtGki`6tJSsSo<}|mb!wXVzB^9R42nTsO)DDjweuhi2*_iBT^0y)CXb0PsFNXtekF5(Y33aSS z52}q!{e~9wC~&j(+~HPgR&ukvm4e$@6BhLytqmRPFnGl5@ajm14mZ(+U>ncU4m3G* z5o>NNnaafIY&C-k;_4tZPt7_^9Gt}7YEbe9ba6b!(~WS9)ZT-N23V`T4dSFUmiqAQ zt!(cIHl*H6)Od~B&0&?S18`0-3OJd$;bE21@v7Q>nYrG#iXs5v|rog9k59yv`@tP$RiS|@o@j7BAb zC}T2)t38dwRIm(Y!(9++hqa=KIY4ba2RmX0%BB~_X+_EmWKKQCVYrG^h@2p6A%jVU zm!?{nqZUf+)v3yghb@X7#(cwD8@&|dc2UX&yHj#Fmq5y@fRPI3qxv9tqjE80bEMVZqY ziUamaR&kvp5W%wy?c_KjWCvgo#KgE~zUp!gA`iU?Wk?MM-LUXf7c=6SAVpQm=hFLNWYYk_we^T+@OD_06N0debMmmO} z!&)?U5oRHbAU4dj{nSQ@tNaE{UtNnr2{4p{Rb~TjWcBKBLZfe3`svQhT0&xC3$dpkqrIj?S#`>T4((_TOa3UQuCmLFvOhcNxFmEWk ziiS3DC?npk77QCRd@7v~RuO9F!-zD`7Ul`DqbnVuy)^Svk(H4sj{nlJ#HMDYxr2}W z^xUAr#HIBj)^@36Lk9=d+`&PNoF+^VY9`bhDsriOI4L+58WMeCnj=X>!so<}98GgM zw!&#u80~spUJFl(C5N4<%4uO|YBdf5S1UxxFp1T+g_f4xQb4tX3S(ua0_~|z6<9|nEZJV7@5W4zPCdEkVQwRGHhe^e zsglQvau@6LiVhoRE)U!mpRhFA41E~Fn9o5tr1vBoj;Q?!htoSR+SrE^O|cYKz@$qx zIBoeEa&sm-+cn@03b(36%)>f&X=^-#flkXnc19VjHnq5=%xH?IepAPRtdCf_1v0p5 z3dmp}7g}NSqCyqfE=>mN2(M=@w(ueBa!$rhC8jvd>(k+O(u2a-%QA8{XkE3H6U`xB z4JAn;(y>Z3g;sM1EJD`ycg^JBBEmIMqOdY{nrb%VgA!36kF~Uk##Ai6K9oX; zoiA+}?5zWrdtSI>b*c@AgJ>8ojb@^KL ziLDu(gyqlD`04~KpJtRLFi5OK)`Ezt<(= zDRv^Z0LlqqW1xpR-Lk_G5ULbug;DasEe~?K6Q+kK2T`=Nj}`iyiTtf-Scs(s_Vr3- zQ%YF_UAaea*sRQh0%}={#v<>{7MCDnYK%tO$x`SZ3%M0enO)+jk5hZud_rf z-i%#2s>L_99NF+Hee3j}<&r+?7bjqOx<1r(q_Sj4(dg8x9p?Zawz)pt{?u9NC=?EL zuLUEBc)AljuvN50j*f-YH z)>9;VzJqg z)xEi@CTXdf#Oh8u!A*12L6JUtQKe2FyJ5s6VSKI5VZUZ16yKh0&_?7GggSI2OQZXY z+?=5(L$%81U|KuFv~Gs*2E0LKfUdweg^DsF_2x@+DDP|z$)pEShFBja));+wEzXG3 zDLYg-;B(Yn2Xd;SBMUXR(6brJ-_rD=%u-_<5poi~DMo{yc0qi_8Zg|68#@dlnIMto zhv`hBmFIH!1AAJ>O$4=K=d`Qf%{h=ZHil}k#X%|+<&A>#l^SVIB%y8(qRi^fAeKzw zbsQfjVYuV;4SAvNfm8i(_<$Q|tjrG5DKGQr5EIiYMPn4i5?!-HIDiIfj$>-)kpsI) zpe{)oMI7cR9mIBtS7Hj%Y^o#dC6b1^pEOFOa03vgpkRZ2Y-rz86MPs$OM})vQOzCt zR^gF^=}xe^Er-+DUS~SE3EG=OmCri&N#7_<>%lQe-@AUoxs}l?ebmmM%!!n!Q(Jqs zbudNq{y#H5laYQnhWGt=(ucZ|Y+5Z5xTqPhH6w=Y+ZJ0-r#}g`Qs#$Ea1wxFw2se| z(XVQqNxKFT!+b&)Ol5R_j7_+%J|gJ+3-?=E#*J;6N9Swom?_8E{X#dke2mvnvl5jSO_h87)4R&Om7(6bKR zFv+})lJ*2z8qt)ys$7~!Lvda>6mP(E-V(wSNdlIZ&9LtwaHJZ+`q3}qILDawBVNwK z2BYkR*vU-KShAunG|G?1LkX#Wt|&u6FJXOHhx|viP$@>W@FmWNDzJwnKPQ9;T0%Nt zehhvKOl2LgPi-I+3gJUr1}rQE62QV}2Zs4C1+$N|B&k6&kgj%JB!ts7CD2T6tD!Y1 z=HZEe`H>DBV_^q7aZDpEqJZ`4Oaakz^4a6XZwPKw#74-b{VUO*cL z?^;&j?qbsJ5POkHJjvuMRBX4(Se95>qfng|p_+x3-ehL=B5zCbU3^K&)Yr zlSKv>QW*%7jT(OH^gc;$mhM37RWY5m7a44}liRb6W zH{;QPmey5l-e1>Y@DZmMlHpCD7H8isOxaL zHNA#UV#h#7wNwatOa;qp%%Bmyt0r5ZbzM?86B@6@R9R@vlN4mH=p=O`O?mFDQm_Yu z`lNm41nDMzB9E4wxCKUgc6Am^2kYt~Da_lnPWZamj7s*ID9O(qS!d(=P+V>6I&h`} zW7LMi24#nNJ!1o2#MmI)4h3dT8VxuJS9XD;Gqj(5XGh>Bat2bJZ%c-B3JB;&Ht6m> zFRIw}Fw!^p@hl@f)4{A>k8?0j@32)^uXb8h8tO?tKEiy3$;siu#lTN@=&c70FwDEr zsGW!wIJ}zTj2)YSj~Jz@!8XP2G1QSl&$h*)IQDi|7FO%p2_EFWdwOx5uei_A<=jq}R$0 z%RU=$7`nwUed$Mapa?zf0O~Sli-$91c=k?=j#vk#J%O1Xw^w+Fz>ohDU#%(BxKK>B zq*dXXRrHuJwi0STDsUo*rwY&`d_i)0?vPduJ)w=D(dx3lT4ZZ@}}V`T;tR&3v>&|(?m4O<9xFVWVJX=-W#tz)o% zw@uKwM{Y;K^6a3!X4V)TqeE?>qz>su(FpanWivy%Eo<-$X51EVdOwp%JxptG9KN@N zX%g1j)K0cHlOIpyfkKtAJsDbo%`;sPoqaan&Oe*0s{@0!bB?PF=usp!0?~HZ2I z8*@tN#3>3-r8?M9L*rEg`)onO^m0HmbQ2&KUEgeeHZ!5}!V+%{J?m@V8K5BX(ku#5 zm+@>2*OekSng;42Ip*X39A8OVwXDLuysBc_56JaOL2h_L>pISbB#!5&(V~68W zJA{U9uESxc?d@oNkiEjtPvP4mG-E<`7Q9$vj;d8pMSPPORmm2`!i7oG9E1iNKh={HDm2HzlKmpW}VM<{sTNT=+5qflnruBn1@ zUD8i4WS71-9}9@yELDZx+>92=dKMvDz1nmgK_IhTjueekmy|BQJu&KzP#LIu16iz$ z5@qr2<&-K*R#avwvLc#0`JwS9^<+jyJ7(-6k5p6MQR))XiJ9*C47T=gN(Rv?pq|UZ z&{2@8(#K_}C|#SciRB7?O&lrBI=rw=IGbrVcQzNkpq0Nika_xn`;XaDoP9Q{CIWYn zKD^+^_UiT5d@u>qV_XiTx@ABb*?gkv2t?_8)j@oKW2;Jr=>a7tPMvl+upM)m+QDVW zz%fw=*c#Lt)`4mf>%g!r#{Pz$S)io}d4^Vgf`|d?} z8kFa}EC#rEh!5?F1D;lOgB)u?NMdD59jI@{D;9TICI_1+h$2r~9dd5;EHVeUvl&sN zq>;YK&oQXa8ug7ZdtT(Phw;p)LTZhv!gTvX-_yXl0Z${?-#6e|sS}Dck0g$;k`dV6 zMsS{HuWa;VgnH8E?`+uNtj(Do&GykDHfMcCX2usjY!&Rr(#t9JED^7$?D3jW#LU>N zyn7vr_T3oT*(pbwUh~_lVO>;PETI;4ylkclr4KM^e&?=gh;u|A17$9RU@#nPOb1D} zMr{Z=N{u-VF6~&;fiDfv^PhaGgr_yutzMEMBLl&+3EYF!W3*t!v4LKjIX6>?m7W=G zp-2ZFjuOq`bty3)n{3+a*$a#&3R8)&`V#1TOSMGH{;7A zkz^YMQ6=WIbC@5xWleZMbwO-BZ^s&1H;4#6Z2mYa3~ylee4KG@U|FmPQ5iVTP!|oP zG=OG4flyKQN>d@YAT{h2q|)f#>MmOLla9*K6@-(A!QWrVEbN8&)_n`%0`#Ox?4Ltk`*GXQB= zL^fZKbD=Kkw=|&A)rPPi!sC8)ubYp*DBO^wClnSY>aq9l5>4>xd{dIko z%pI(@1P+=(q;XB;5cw0j?-T={oH!6hi_Js)E&`=H9fwwip@FoTd ztp=wRu_=7S!X+Y%IMfi*VZ^j>Ito+D^+qcDuq~B3+WJe z9ngShDOh6+X*-a*8YSoik3uUsH=-%z62|`yaL3?7sVVP?_(r-oZW-QPF`sLta>fH; zs2i0O-x|UH7(P>h&c>T6&Jm&}E#HW^7QBUma>!2Ggfb?;4{<)(dc>M#cuNMAC&9Va zA-^Q_#84`#Qwx`#Qnqs2L^y`pI^C+(ND;w1Td0)nTtW&_J5t@MQJ*Hfbz@*w?dlLm zJ(6A0R<7GhE-BmW$t z)QkyqJvAkTRbuLLJii0(dM^4JgsAdSmR!ZWYAz<}u)BUCG~t_P+^ns5t-w;wK9g6C zmw$wu4oRXQJtRc^kg13=OCU>XhfIDW@LJS_irE567Lutjv(3YJj|j<-l#*;m*6{Ld zf9+hMRiL7s?63>1gr_3$PK0WVpEiWaYRC?$8Deamlv}z_DNQxrw?dXRpEWl^H?=N} zf<+nCBtF@}FuZp~9Bub8HEoFd2nW?jLt{*hQj}>zHQuIzdp6M4j+E3Xs%+~~HtKmA zjhQv1z81;9Jgmx8BS^ zUSuIj^n4U8aiq3YDaO#~kNxu;>>kX{qi=hUg7t;aM|OXW!h3Y6Csv~bZMuY^2f>p4n(a<#&|MByLW0s*bry~bjD|!7GkCn`pp?*Fa z^5+O+K&CIv^gQd}qle+uMX>IFA~TU>Fh9*ku64+XZ2F(|RJs)8|0$JfTk^UzKdBjn zoJ}A9-)PIzc%*i*M@k%dDqmfV(zL>!Xnd1*CLckgn?^IqP(KgXz07mU{BPEoE;03C zx@5Ik?aDUOZy9>{bi7?@KDen#`Te)=?Aw}wFbNzyO#z#o+eN{VU(5M1eO-Xw4dvH;^b;4MxK~+u(7*Cfr7Mj{KhTCyenl<>))S+Af znJEoN(nwQBmV8Si%GHD(Rj!UE1d_>gAbl53v{9S>(2O3)zL6%yKdNYQ+s`Yw;oGj%_6FE(?OtfYYC2;z){vEEj_qo^e2LN}F%ie`(#B(9&twJE&ed=ywk>7WG;<+u zyZUO3qz$}mo{H-^Xm10rv$a!GD<*W0RztH|u8{R7VV$%Dqva>{vs&PgtEDZ3T5_ZB zrqGHo0_#&Fj~r|7o>R4_o~7C-$BUHHvTIBh^sUp*=xs6oQtDc2NwO^}3$>_i$^SwL zrldC@nSLg_2QwEU&f-3=o-LYugE*Re$dNozmgjISqp5@a%{R%;LtUt5(=k~ek0rpj z(O-`;kk{i}rhJ0Ioz$P2#W{!gA9_}LBfAKv0#@s}0fdrVl>hT%1_0hb-H?10Y>Vu1BcyiU%W{uP=TwNYC!b6tFD6F?~4KxaH&#?X;ORI)bE#~kmD=HaGUi+`*~ak-V4X$4 z$!o70v4uUy=6PI&^Uw z!pg#)(S?=89^|buE$Y75OX_G0=Awwm8-JL}v6W?EV2)cP~PhJE0#Ts%Srq@EkkD=lB`wM7jpvrc$ zcvb&-y#bHqDhd>KZ?a>`J$aCnMcsR=Tt(e4dJCgPsiF-<@xtzl@T$$i?g!9`xm7N2 zE;_xH`l6_nTDGWX26Ps6--18OO#~(t_joKcv)Ajx`^}ZCx2ToOg*v~)gABHymDm^p z2p4vD2e_cz$6C2ZQuC5J)J>v1UV%>gw6Le11N#w1kvu4p%VWB{62J?P1eE?D|${xS)|uTy1Sn)>!r6Em927BxzeSQ zoT6JL?7k%(QR&67gJE4O^V0=Gar|UG55qK|5V00s6u;IbjNCvj%9NW6D?pGges~-n z4!7X_AA{eJ287kVtt)5-01 zKdgk>sjz1j%nW^=1D8%#KpbUiFddoi$)RX6BSZ&0u3U)Nwg^Lqy-2sm%7GML5b(&t zo;v(-U~Xa0T$s71N;35@bu-Onn#Yuef~P8nsgG$s?A24{r&-v9$>8EvmppaJQ5T=O zD6bb;EbPh2aT1s)GOYVz6UQ!p{vHCFD^8sEWsIm4#f95Eb%x z&0NC;^YZ$0U>1HdCt9&|$-JVTMHozZ7WX7mX;RW|pBD)TtODJaZQ1}$1tD3=obo_(~^xLj+btLZMr>VWcD;UrTb z#cg%CI>fSVS_55`T-1@%A(o44Is5t=Fy?u9((X@-dS0Pw?Ijk*pRO3O_JLK3Dsi!k zx_1@BK)XLgnum(TSdS0Z_XQZ|Q=vCN6xRO*=_6;GD(e0Ue>x_e%ZnsO7X2ccE2r8Z z9fds)_%ijd*?+2r*r!+#V72flG%))s<;?-9fKNdi{1(OvWlWssz@h6NeSJt@@6^{F z`g)DNZqwH-`npwLZ`RlC`g)(f?$p;^`np?Rss7~GRJBq60@akdaf(I0$K+b8Rizh& z#yYn9Axw*!4KJs7yK>QGg*{k(z5{pAG}|xbl%+%L2hWfnr&Kb(5OO zEB&x-N22=ytjTioLGtpIY`zk)~y82V9JIHg&xqgN=K2d9-oAQauEqod3uP8=Nk)KE_f1J6@cY~<01`4G_v z)3Q_t;rojr$+481j@3apZ!ma-!8VJH0$T~&Sh3;PiZn#NX)#ifA(jF42BG^?^f1+u zih@Gfx{D2JDIV;!LqUkm@*%8MRcIGNs1-`)&8?=3>V7Al2B_Ut^$^4)vz)Sv-*J7jbeDQ3Z@I~Ea3B$Xtw080M;WW70yfLxQNREmxR3` zZPB#$Vgs|g166G|v#9M4d9ewb@ZIsYl34a>$sEjmpZZN*EbkG~1iu%+)|A zUk~q%xjM&Pg>2~r0gey3Ifn@sVcJr{dl8B3dp0vCJtL86VMcO>JGu=Z_yizIDXvCXS$2pi20Co=SsH=a0b{V_yqB( z2VOzZ9}_u51V7w{(+H3rQr2S;@e=V7p`VZ&O@R_3L6GjPG?Mw)zz$RsdlyuXhx9Bg z3{7{H7r{kfHA#0Rg3A#^`LOSW?;ec+6c??SC!2rW)GTt7`QGXmL&l7Jd~d9F08_#h0i{ zkT2a^Rr$F7M$vfhXpF0)aK1Z(gAT zth|j59FPQiW-34%cDJ+GEI8x#u2m9nLMFC31 zoil@Aii?c=5RD=i&cd2n6{dSv;Vg=*a#0VezSn)(y$d|v47m`ss)i`q3Op4658dI#0QRH0_P__^KIz_4bLH&p^kFCQ+ zdQ8E%EOR=RF8r{ zVZ9qi<`|ASxZq?62Ra@>+qql(c|vs?c-!#%Yy_S+2%zogf+I%SajubKg`t;SKuQ~dP4uS>Xlo|^SxIr2zIJ$x_L9<)Lq=Ty}biSx^6Uill zZN8`?F}QLNACY__@UjL@Dv;L1Cl8+-d=L*$M7K%!0KzqzjvPqbg18L0n5r;!tqhn< z-Ar-L1`c^48OUKu=f5(L_y4tbF0V}mQ5c`OO>EN8_KH%v=q=p{#YKr)9|%>dZM8~7 zjn-E|S}k@FHK?Eq7wXzYp(45y{{lgjAXQwsaiL%rZdF7VR>0{e3ex$*u2oal%Z_ zyw1FC&bc%B?maG)*bl;H7fMtHVHAJCHQ<0aqj{c*(m|F>PlW!>&`(#JHO@d7y}HMi zjX=j2mLXa0QV3E`Nu**WK}_1=l@o}O(>IYCwvjqyBX!6|K35&Jk-Bap4a0KiqtHoX zCTK~Xdm-k4naE|hm@n^U2^y71&y;H0CDXYC+;*k2c7nipg-VezM}26gpE?Z!%+Zq~ zv#JXt_Vg5v(x`@*+h;1pb(iOZxB(rv)EPSFD%YG39R1cEji^%rZBU&<2u>s54Btx? zHO3TII7-sbb=HM1bycCXok(#iBi83R(yO{1vxF#2q$_*#u39SRoNT(PW#GfsT+5Wx zZ{KFLMA=Nr*ld;{mt#@ja*bLD2moXtD1rk3tuX{oF*$PHq{$3c=wUkg73gwsc!KN7Y_IK`+~Lu zXU59BPPq1RC7$Fsef})>@3AepR!kGtpDDmLr!|c{{L0IeCVXU7PhKDFcv_Qo5yNSK zX&D&YvVYsr!eFu3ziqJSvt62N-n710`PA6L?tthK{D$k+Y`CBuig%)x;n^CPY4WBM zc`6YqNVvVlf#SP6R}Rm=xxM4&hsRIew{L0_kF6U=K{V@O;E18(+(aY$(n_mH!@T(Z7jJb+0r;WLYpTgh3FK&m`PX^d-%%z3n z)WwTE+h3%s+;;rITh`3#;)>mD0K(ghm?E|XN5CWQg&M|A;V$CCghSAB4^yAMv5SS0 zm-FA7eMHN!z{;YM2k;iIW57^`06z#SH4LCZ0A@MafHeS$ssN)>0`TDqm^-On`fBOZ zIR|ACl zw$_dZq#SeY*Aa|=s-H)e)a#GX0`Gi*yP!I9t77<^htV0c2`iD-&5U}(tEcE=Dbdqk z^|J?fmax%s2ukV;AA7>p)QHQB)q{T~8KW^>_#xL$5)`C%s`IH<{mlHWJwLA=bR`t0 z5U~F;uX$|yT0nLJEmiCNI6L*ZLH4}T!-g*wUVcv#-=>j;{-NZl0nZy8#+evyvv K|FHfz1K$CFeb#RP diff --git a/LiteNetLibSampleUnity/Assets/LiteNetLib.xml b/LiteNetLibSampleUnity/Assets/LiteNetLib.xml index e4671515..9a53889d 100644 --- a/LiteNetLibSampleUnity/Assets/LiteNetLib.xml +++ b/LiteNetLibSampleUnity/Assets/LiteNetLib.xml @@ -295,6 +295,11 @@ First peer. Useful for Client mode + + + Disconnect peers if HostUnreachable or NetworkUnreachable spawned (old behaviour 0.9.x was true) + + QoS channel count per message type (value must be between 1 and 64 channels) @@ -577,4 +582,795 @@ Force closes connection and stop all threads. - + + Force closes connection and stop all threads. + + Send disconnect messages + + + + Return peers count with connection state + + peer connection state (you can use as bit flags) + peers count + + + + Get copy of peers (without allocations) + + List that will contain result + State of peers + + + + Disconnect all peers without any additional data + + + + + Disconnect all peers with shutdown message + + Data to send (must be less or equal MTU) + Data start + Data count + + + + Immediately disconnect peer from server without additional data + + peer to disconnect + + + + Disconnect peer from server + + peer to disconnect + + + + Disconnect peer from server and send additional data (Size must be less or equal MTU - 8) + + peer to disconnect + additional data + + + + Disconnect peer from server and send additional data (Size must be less or equal MTU - 8) + + peer to disconnect + additional data + + + + Disconnect peer from server and send additional data (Size must be less or equal MTU - 8) + + peer to disconnect + additional data + data start + data length + + + + Create the requests for NTP server + + NTP Server address. + + + + Create the requests for NTP server + + NTP Server address. + port + + + + Create the requests for NTP server (default port) + + NTP Server address. + + + + Peer connection state + + + + + Network peer. Main purpose is sending messages to specific peer. + + + + + Peer ip address and port + + + + + Peer parent NetManager + + + + + Current connection state + + + + + Connection time for internal purposes + + + + + Peer id can be used as key in your dictionary of peers + + + + + Current ping in milliseconds + + + + + Current MTU - Maximum Transfer Unit ( maximum udp packet size without fragmentation ) + + + + + Delta with remote time in ticks (not accurate) + positive - remote time > our time + + + + + Remote UTC time (not accurate) + + + + + Time since last packet received (including internal library packets) + + + + + Application defined object containing data about the connection + + + + + Statistics of peer connection + + + + + Returns packets count in queue for reliable channel + + number of channel 0-63 + type of channel ReliableOrdered or ReliableUnordered + packets count in channel queue + + + + Gets maximum size of packet that will be not fragmented. + + Type of packet that you want send + size in bytes + + + + Send data to peer with delivery event called + + Data + Number of channel (from 0 to channelsCount - 1) + Delivery method (reliable, unreliable, etc.) + User data that will be received in DeliveryEvent + + If you trying to send unreliable packet type + + + + + Send data to peer with delivery event called + + Data + Start of data + Length of data + Number of channel (from 0 to channelsCount - 1) + Delivery method (reliable, unreliable, etc.) + User data that will be received in DeliveryEvent + + If you trying to send unreliable packet type + + + + + Send data to peer with delivery event called + + Data + Number of channel (from 0 to channelsCount - 1) + Delivery method (reliable, unreliable, etc.) + User data that will be received in DeliveryEvent + + If you trying to send unreliable packet type + + + + + Send data to peer (channel - 0) + + Data + Send options (reliable, unreliable, etc.) + + If size exceeds maximum limit: + MTU - headerSize bytes for Unreliable + Fragment count exceeded ushort.MaxValue + + + + + Send data to peer (channel - 0) + + DataWriter with data + Send options (reliable, unreliable, etc.) + + If size exceeds maximum limit: + MTU - headerSize bytes for Unreliable + Fragment count exceeded ushort.MaxValue + + + + + Send data to peer (channel - 0) + + Data + Start of data + Length of data + Send options (reliable, unreliable, etc.) + + If size exceeds maximum limit: + MTU - headerSize bytes for Unreliable + Fragment count exceeded ushort.MaxValue + + + + + Send data to peer + + Data + Number of channel (from 0 to channelsCount - 1) + Send options (reliable, unreliable, etc.) + + If size exceeds maximum limit: + MTU - headerSize bytes for Unreliable + Fragment count exceeded ushort.MaxValue + + + + + Send data to peer + + DataWriter with data + Number of channel (from 0 to channelsCount - 1) + Send options (reliable, unreliable, etc.) + + If size exceeds maximum limit: + MTU - headerSize bytes for Unreliable + Fragment count exceeded ushort.MaxValue + + + + + Send data to peer + + Data + Start of data + Length of data + Number of channel (from 0 to channelsCount - 1) + Delivery method (reliable, unreliable, etc.) + + If size exceeds maximum limit: + MTU - headerSize bytes for Unreliable + Fragment count exceeded ushort.MaxValue + + + + + Address type that you want to receive from NetUtils.GetLocalIp method + + + + + Some specific network utilities + + + + + Get all local ip addresses + + type of address (IPv4, IPv6 or both) + List with all local ip addresses + + + + Get all local ip addresses (non alloc version) + + result list + type of address (IPv4, IPv6 or both) + + + + Get first detected local ip address + + type of address (IPv4, IPv6 or both) + IP address if available. Else - string.Empty + + + + Compute CRC32C for data + + input data + offset + length + CRC32C checksum + + + + Creates NetDataWriter from existing ByteArray + + Source byte array + Copy array to new location or use existing + + + + Creates NetDataWriter from existing ByteArray (always copied data) + + Source byte array + Offset of array + Length of array + + + + Sets position of NetDataWriter to rewrite previous values + + new byte position + previous position of data writer + + + + Register nested property type + + INetSerializable structure + + + + Register nested property type + + + + + + + Register nested property type + + INetSerializable class + + + + Reads all available data from NetDataReader and calls OnReceive delegates + + NetDataReader with packets data + + + + Reads all available data from NetDataReader and calls OnReceive delegates + + NetDataReader with packets data + Argument that passed to OnReceivedEvent + Malformed packet + + + + Reads one packet from NetDataReader and calls OnReceive delegate + + NetDataReader with packet + Malformed packet + + + + Reads one packet from NetDataReader and calls OnReceive delegate + + NetDataReader with packet + Argument that passed to OnReceivedEvent + Malformed packet + + + + Register and subscribe to packet receive event + + event that will be called when packet deserialized with ReadPacket method + Method that constructs packet instead of slow Activator.CreateInstance + 's fields are not supported, or it has no fields + + + + Register and subscribe to packet receive event (with userData) + + event that will be called when packet deserialized with ReadPacket method + Method that constructs packet instead of slow Activator.CreateInstance + 's fields are not supported, or it has no fields + + + + Register and subscribe to packet receive event + This method will overwrite last received packet class on receive (less garbage) + + event that will be called when packet deserialized with ReadPacket method + 's fields are not supported, or it has no fields + + + + Register and subscribe to packet receive event + This method will overwrite last received packet class on receive (less garbage) + + event that will be called when packet deserialized with ReadPacket method + 's fields are not supported, or it has no fields + + + + Remove any subscriptions by type + + Packet type + true if remove is success + + + + Register custom property type + + INetSerializable structure + + + + Register custom property type + + INetSerializable class + + + + Register custom property type + + Any packet + custom type writer + custom type reader + + + 's fields are not supported, or it has no fields + + + + Reads packet with known type + + NetDataReader with packet + Returns packet if packet in reader is matched type + 's fields are not supported, or it has no fields + + + + Reads packet with known type (non alloc variant) + + NetDataReader with packet + Deserialization target + Returns true if packet in reader is matched type + 's fields are not supported, or it has no fields + + + + Serialize object to NetDataWriter (fast) + + Serialization target NetDataWriter + Object to serialize + 's fields are not supported, or it has no fields + + + + Serialize object to byte array + + Object to serialize + byte array with serialized data + + + + Represents RFC4330 SNTP packet used for communication to and from a network time server. + + + + Most applications should just use the property. + + + The same data structure represents both request and reply packets. + Request and reply differ in which properties are set and to what values. + + + The only real property is . + All other properties read from and write to the underlying byte array + with the exception of , + which is not part of the packet on network and it is instead set locally after receiving the packet. + + + Copied from GuerrillaNtp project + with permission from Robert Vazan (@robertvazan) under MIT license, see https://github.com/RevenantX/LiteNetLib/pull/236 + + + + + + Gets RFC4330-encoded SNTP packet. + + + Byte array containing RFC4330-encoded SNTP packet. It is at least 48 bytes long. + + + This is the only real property. All other properties except + read from or write to this byte array. + + + + + Gets the leap second indicator. + + + Leap second warning, if any. Special value + indicates unsynchronized server clock. + Default is . + + + Only servers fill in this property. Clients can consult this property for possible leap second warning. + + + + + Gets or sets protocol version number. + + + SNTP protocol version. Default is 4, which is the latest version at the time of this writing. + + + In request packets, clients should leave this property at default value 4. + Servers usually reply with the same protocol version. + + + + + Gets or sets SNTP packet mode, i.e. whether this is client or server packet. + + + SNTP packet mode. Default is in newly created packets. + Server reply should have this property set to . + + + + + Gets server's distance from the reference clock. + + + + Distance from the reference clock. This property is set only in server reply packets. + Servers connected directly to reference clock hardware set this property to 1. + Statum number is incremented by 1 on every hop down the NTP server hierarchy. + + + Special value 0 indicates that this packet is a Kiss-o'-Death message + with kiss code stored in . + + + + + + Gets server's preferred polling interval. + + + Polling interval in log2 seconds, e.g. 4 stands for 16s and 17 means 131,072s. + + + + + Gets the precision of server clock. + + + Clock precision in log2 seconds, e.g. -20 for microsecond precision. + + + + + Gets the total round-trip delay from the server to the reference clock. + + + Round-trip delay to the reference clock. Normally a positive value smaller than one second. + + + + + Gets the estimated error in time reported by the server. + + + Estimated error in time reported by the server. Normally a positive value smaller than one second. + + + + + Gets the ID of the time source used by the server or Kiss-o'-Death code sent by the server. + + + + ID of server's time source or Kiss-o'-Death code. + Purpose of this property depends on value of property. + + + Stratum 1 servers write here one of several special values that describe the kind of hardware clock they use. + + + Stratum 2 and lower servers set this property to IPv4 address of their upstream server. + If upstream server has IPv6 address, the address is hashed, because it doesn't fit in this property. + + + When server sets to special value 0, + this property contains so called kiss code that instructs the client to stop querying the server. + + + + + + Gets or sets the time when the server clock was last set or corrected. + + + Time when the server clock was last set or corrected or null when not specified. + + + This Property is usually set only by servers. It usually lags server's current time by several minutes, + so don't use this property for time synchronization. + + + + + Gets or sets the time when the client sent its request. + + + This property is null in request packets. + In reply packets, it is the time when the client sent its request. + Servers copy this value from + that they find in received request packet. + + + + + + + Gets or sets the time when the request was received by the server. + + + This property is null in request packets. + In reply packets, it is the time when the server received client request. + + + + + + + Gets or sets the time when the packet was sent. + + + Time when the packet was sent. It should never be null. + Default value is . + + + This property must be set by both clients and servers. + + + + + + + Gets or sets the time of reception of response SNTP packet on the client. + + + Time of reception of response SNTP packet on the client. It is null in request packets. + + + This property is not part of the protocol and has to be set when reply packet is received. + + + + + + + Gets the round-trip time to the server. + + + Time the request spent traveling to the server plus the time the reply spent traveling back. + This is calculated from timestamps in the packet as (t1 - t0) + (t3 - t2) + where t0 is , + t1 is , + t2 is , + and t3 is . + This property throws an exception in request packets. + + + + + Gets the offset that should be added to local time to synchronize it with server time. + + + Time difference between server and client. It should be added to local time to get server time. + It is calculated from timestamps in the packet as 0.5 * ((t1 - t0) - (t3 - t2)) + where t0 is , + t1 is , + t2 is , + and t3 is . + This property throws an exception in request packets. + + + + + Initializes default request packet. + + + Properties and + are set appropriately for request packet. Property + is set to . + + + + + Initializes packet from received data. + + + + + Initializes packet from data received from a server. + + Data received from the server. + Utc time of reception of response SNTP packet on the client. + + + + + Represents leap second warning from the server that instructs the client to add or remove leap second. + + + + + + No leap second warning. No action required. + + + + + Warns the client that the last minute of the current day has 61 seconds. + + + + + Warns the client that the last minute of the current day has 59 seconds. + + + + + Special value indicating that the server clock is unsynchronized and the returned time is unreliable. + + + + + Describes SNTP packet mode, i.e. client or server. + + + + + + Identifies client-to-server SNTP packet. + + + + + Identifies server-to-client SNTP packet. + + + +