From a1f5615be2b64fa60254b2fded3df3bb0e3e3da7 Mon Sep 17 00:00:00 2001 From: M Sasan MH Date: Fri, 2 Jun 2023 17:20:32 +0430 Subject: [PATCH] v2.1.4 --- SecureDNSClient/Audio/Resource1.Designer.cs | 9 + SecureDNSClient/Audio/Resource1.resx | 3 + .../Warning-Handle-Requests-Exceeded.wav | Bin 0 -> 177984 bytes SecureDNSClient/Forms/FormMain.Designer.cs | 946 +++++++++++------- SecureDNSClient/Forms/FormMain.cs | 154 ++- SecureDNSClient/Forms/FormMain.resx | 3 - .../MsmhTools/HTTPProxyServer/Common.cs | 17 +- .../HTTPProxyServer/HTTPProxyServer.cs | 81 +- .../MsmhTools/HTTPProxyServer/HttpMethod.cs | 26 +- .../MsmhTools/HTTPProxyServer/Request.cs | 29 +- .../MsmhTools/HTTPProxyServer/RestRequest.cs | 78 +- .../MsmhTools/HTTPProxyServer/Tunnel.cs | 1 + .../PublishProfiles/FolderProfile.pubxml.user | 2 +- SecureDNSClient/SecureDNSClient.csproj | 2 +- .../PublishProfiles/FolderProfile.pubxml.user | 2 +- .../SecureDNSClientPortable.csproj | 2 +- 16 files changed, 926 insertions(+), 429 deletions(-) create mode 100644 SecureDNSClient/Audio/Warning-Handle-Requests-Exceeded.wav diff --git a/SecureDNSClient/Audio/Resource1.Designer.cs b/SecureDNSClient/Audio/Resource1.Designer.cs index 4f228e1..74af630 100644 --- a/SecureDNSClient/Audio/Resource1.Designer.cs +++ b/SecureDNSClient/Audio/Resource1.Designer.cs @@ -95,5 +95,14 @@ internal static System.IO.UnmanagedMemoryStream Secure_DNS_Online { return ResourceManager.GetStream("Secure_DNS_Online", resourceCulture); } } + + /// + /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream Warning_Handle_Requests_Exceeded { + get { + return ResourceManager.GetStream("Warning_Handle_Requests_Exceeded", resourceCulture); + } + } } } diff --git a/SecureDNSClient/Audio/Resource1.resx b/SecureDNSClient/Audio/Resource1.resx index c527823..6354ed3 100644 --- a/SecureDNSClient/Audio/Resource1.resx +++ b/SecureDNSClient/Audio/Resource1.resx @@ -130,4 +130,7 @@ secure-dns-online.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + warning-handle-requests-exceeded.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/SecureDNSClient/Audio/Warning-Handle-Requests-Exceeded.wav b/SecureDNSClient/Audio/Warning-Handle-Requests-Exceeded.wav new file mode 100644 index 0000000000000000000000000000000000000000..c50668681c66ad2bc66a7adb35a497e9844a7fe2 GIT binary patch literal 177984 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

qUAwX%;~&IX@xR9R3vhk79qY_h zBSb%=j5XfZ%by`)Fw|y8_#-a)Dp~`Koua7T<5qW0f$JJC;tR$fjGrHv8{BHAaQ{?G z#YCf$HP+Y0AMiJim=N)O#A*KmU!+ytm@l&GE$$c2(P00;==j|6U&luVZU)WaaZ zr|Ov4Y}B`g`>Oi4`;$j}8u3oVPyVlcdrT$27BOn6+su(fq%HAH<7dX#MGA%Of=*jE zS{>vnqB>T0UvB?s|0#c>2<>n0|J1j{ye=z>SL%1Smy^Rj5jYb+F#c%#$UrZ&rJ~c$ zeHFshv)Zt=Of&y7{~iA=e=UC&Uw?C#EFzw&gYHl#r+qSTF@9`(O#Jr1oM0cjp3~h; ztY3;#Ml-9K?~bpWf2RMs|D3;!KhCObPLtFl>XbW%Z!PWRn)F5S83XqNn}hxAM$SMt zt4=N-7>%uJzGJ=u{%QV){xkkOWaPQbAu_jc)OmNf6J`Gvc!&(j1gzlxU@yDAGtn)h z3rovvY!&rw@x2S~h5xAEkCsK4U1S~+sn57Qoj`DD;A#Br_@;rh!9&4rb}eVF`<4Do zCNgVTS$r#e`TdLiG5-DjN4^o(OQWMKC{pMXZWHGk*W5et{=kqx?%;u77rTM8$sMFy z$z*0lE5bL$m&?B#dcXM(`;2FCzxwCvfUZGG6S;Ot_Yg#y(Be+B9WPY1i&U7QE*?|kDd zrJ2z>jRdoRd+h(oKggHKT4J=3HAG&0!2QViGq^5LHPAJ1El@vrIM~ka!8hYhv1g3m zG_0*wJKx*jZuvX=oBK>_snJV*D?ZZu+yc%Y!M_6J9sxVhAh;vg(*D6oqOR#l^09Hl zoM|=o<@EpQzv}lP~cu56}Yj%3idFkgbL_Ea)~j_ z{M!1`SJc1HzsH}^Z~D%ddyPYKt7xn@x#^u_!8F0Uj51fSN^mCQ{KcuLwC*LR8-0*` zMPFX{vchlqpIZmb-Ns?LMYPa6-0a9bSMX&ZX|QmxR&ZhPYkRs=R>kY~a+J}iht?tUuyI$O7X$QNw<>zw5Q;^E)q<^p3xW+9XA!>dQbpD`ikNAwM8224pZtCN zr+sIw1LkStmAo&8=?88-C#&5HOf9Ij49*2N*ZG9+pL`%cGE%cWmEZRQpZ1M^3ws>> zW!^Iq838d$-vn3Ko*ZlkrgpGqa2oSl<$Qs@yd~c<_#!ahb_)19A-$QtwbpUdXXY|Y zIb2_K8#&eOKZ3)99pPsA;4i_B_D-jcI;3O8b9vKvZl?4FeNFuN{6l<8tczx5^FzZY zhv-XgJHBmrA3pXBehz1*1_#<_ocii_eL%xxAY9yQhH+!@Xu zyQ2Ms5!Mej4W11iw$p=~uIGt)Xy_xZx!=G@7y2@Qdter2eh)=6eZ&3Dxofwum8W6B z=D|C`D|S}5jT)+liZOCEmh{4!?%VGh=1b%oV7)RwVVrlsJ#$Yu$(^6<6!v`N*ESdz zd}-%)o2st5v*;(68duD_`1&QjZ+*5k(6Y^nW(nh*XrN==JI;H~uXYA|A*1XTWI@R( z;MP&i_1B`CTmijnRu|tGUu|EEHOh*#s+u1dC&5`N=#+LA*>Bm?;Y#mdYCEZu-~Cio z*40Euxyra@p0`@~2KcJ_;;boF8mmSK*HoubsqtuQ?M(KxVB_FV!K`*lCzo4HeW1&T zmU5nP+T3ID?Q>swU#vCFN@rCwi!#pkI*-cZHg~q#@7jyewei86b}}cMTUeFQ<-kof zcAIOgk9^I2Wqq%#u~s6hyjj?|F8b=?s({hf>lD?bP4_45uVt#2Pk_&WA^$8L1n%&U86`T^B6-;NpvLoGhRBrvYcu&?adYiqi zw|zBz1$>vS-j-=KG`}`7$hEqKs^?C0Y`cT~AUK(EX0QX`(yHX_DVI`~H9DFdu-wwV z%)WEhU@NWF!R%mUm78@J)!AL+q;R_0w;AX3U=}-QYy5Szda5m13fwoAZRPc)^j)+j zTluWsW@jUt+@Xi7G425;v(wGK9vsE|a)66=9=hk$IUP^N+tzGk-LumB5;MPr*2mUQ zW)CBeJg#S{CGHg`C-g1_M`DHfY}>x?oFsqQqo0XFMpLtrb(}rg4Bu^Qh4ra5-0W$* zFK_B?M0ndN>GWfqQ-hm=AKRvL!`bC7SL^h3k;C}H%y0c>J+NL_SFKf6MQfPZ4crrb zO5JnQk;9C#Uj&yBHLId$*PYGoOtny-5pNl#%{1uOG3%Oj(OPF!hF*80xODVGB~?Lk zn5lL!xQ^&o$4=~=a^|@|sR??&NNl`kx@Ldt59_>j$=YnyutuAGjdC(68B-=z-tFkj zwJm!`@OH4N9p&uj`)ys+V7*xcWE%61*~TL41owwk-#-v{Twg zg3p32nBQinxBHd)PA?RPt zsED@0Sw_B8O|@X>x>NG1vBWH74Y&4KSF9Z&+-Nd``r<47y&CHN>g=-%*iVB=>`u00 z&vL%P0vqUYVy`@GOfoZDy{s+P1#6ep!1~3UWb~08L^nNDO?8(!XY7w{Cz#gmYRB7? zoa$~NRYCU>E9FL`uj#j1Tg#c@@62z8ImZ|!2Z-TFe!csb^USVkC$_WO{h8l%=W{ok z%CDP>iE@_F+I&Vd8*6QZJN2yj<}zcV944kA`Sb1*Cz;dIPHz{q$JuF|#o$t^G`gbb zFUJ~n&C}+4RtIYqde+cdY%Vp%fLo-`E9Iteb30w^Y<4Mop8cM)&MEKOZk#G8zL$fI za^?opv^%I)&Zq?p2jVG?(8Q@0g>_ zD`pX_Xuj1VgqtMii!1saU0GEodXBe0w>#RW?DC8=vwO%rs*;HsvZfIoG{9mi_8pGKm3`e z*AtETMCx4l?C;Q+R?c>Nq`eyHRdU8VhP%@}t&)o(GL^B^$YTCtrnmZ96RZ+eFLSK1 zM!pbbMOWQJwQ{>U7umP)AW|sh40K|hKixAbN@S5Qjs zB!=j|sy)%nu}|1{?c~^EFDJ&?jl~NQA&<(I#sl)0L{?j?qZMT}Fvl3DWggjCj6-93 zxwDhm(VCPSvQ=p+woi)y2r=jzi)5&@0taYcWzQn+@qNglmL>tr07v=+Viuta&*7(fW zFH^`&B8g^)5jW`UM5CKJWu0cuHD|dyO?B6K#17F+W;31`Q^DOe$C_EqO-6m=vV2G8 z5~+1I)zeMwp2M>=LK5|zi_TJal4`A!iFx94Y~sE#8Pr*Gu$jf&V|-^klliF1(&>Uk zv;53(j#J0U@6>g!I;-3+`B`=eAA zxnv6CD)D-$xdwmH*(_n6H1Zo&WmT${UsSx?(S77}A<`#COHUDza;ZbA7m|M$++}>) z0&^95HjoVFj#1L6E$fnPEm4uGyL%UlNa>hZ#Zjk|n_6v9Ep-u*jd5NzT7X%BUz@~8 zV~h$$L)k?1)>~BuHNd^+eC9$jObV{sf++|ck=Ifw$&D>$uCPqw`)5Ughjn#7GUeP&^uTSGl0k_osKs_Q$dnkhPs8P)v z1MU7g6a?J3aJLx<9%}6?@x}6-F3`$+vnTy(eT{(PkHX??kHc zE4rv2fbTu#WF(LI%g*6UbxgOt8|VI|E^41lZ2W2Dg~~>%$lTN(?aUG66pO?&T~Yt2 z7Pvdm>7DjD`b$%ZNDbX*?s4^y{!OH@&d6kTz;06!0fp7V>~D;atJ!C{2J|Mns~x|y z*S>BS#tv_iQ#^Fft2pY;NMpH?#_VVwHQ%+$ThjW<>=p97Nkm=UM-6uuJ5kOd8kD272E+8=XAvUH1XGK^7S; zM;Zn`>4jN^Oe@Z;Ku$kZUKfSv8?;qz-EoZbCYeD&r&TByxkL9YgLp?imHiFJ7-B|P zU-O7DKL)o@J{KQ}uXRIJ#~lK_`?hp)J73~~Q({S$&Ly(To3f`N%!%YM9j#{86JkVr zW1Tc)1+vM{Raxqm_!?dt@3}MwHO$RR*^; zSz!!(vF)_Zx8Txa?_Y?#@{;U}zFah0TEAM~Sm%f>oycL5$zo*LmWrfv;CG%QhZod< zt(~{rEb3ETQxul>>8O+-K6JF^kxyO*_nom*Mv|Rp)^TnC>x;Fo*|*5ik~(djjPBc1 zt4+nHGC*cf&U|Y2uolA^uh-CmE|V>?id59qd_T^4Y+tZ%+RyA%PDdxZn^)D>--(*i zXDl|pG#zt@wZ`fKy-em;#uE9I{jgnijwn`;I`F7{8V&V1?Wm4RtG2qYXiPlXWVE3Z zGldGGD|~s&Y-+5M&)9+chT7upChNI^745S3mgLDsf;~H{X?kjWqt?E z^kzHc@I*Y(JJob|y^|f>Zu>WTJ#+lVsYusgj2CMcipK+ zQFYEC7F~zhBpw&-zRvgVc(q7RAin28JCB)ttrONZ>|rypy05WA9>wqWP%Yi*jPsnm z$R1+v zzca|4O$|64ewHw@B88dMfWL#=P0lotuHAkyQP)@1-N|IGN64`o+RfqV5ND*jNG*Xc z&140msF|9o@evi-m-Mtg#(y4=n?yfdQB`!u6WMpzJ?u($ZMZYinMAF+gf2`gS<9$m z=Cl5^9y89`)>*SUIpH4sSzEddrQM(LW~=Qc)H)UI9rWJjxNF!~>?dlLPDTf_0^EE= zRaPH6YG5ugw#c!fhR&%zq>r7|pv%qg;bt_|YIk}*Jj(N% zZSADg;|{S-K~!6 zi{hSqVcannT50LQIM`qktEoAF-KC0)fI3SzEVnZuREu8GJ=030H{LaqTI;PyUkcw1aN4Y7 z)~1&d(1*cY`Wts1Ty@)U?m4%?J)~unfu2ZGYIhfoUZgs9>4nua3dmS}NbQ0z`I%oj z`+V?GumS$_nRCaz!8jd}$;eM_w9JaL6gt|E`2MN+g^^u8#4G(tPL~($OlhABzF0Lf)~7sml#Z^;WW5!?ROlX8(oM^myAeayvm}H|O{YQHXM+N(DB+}beag})L;+dNsAJ}&C-s!x)PAe8 zbp!vI(zr*KHJ??oV@@i1Xi@gfU{ZWc1)@U=l~kvrg0D%go1KVq4}0H1N9C-^mj;cS zVxyj}=DG*Tta~!QTfr3eX!{E%ubWA|#XSj1$vQ>@GY{i@ZauL!(GfXp`oZ0xz8$M3 zxjXR^z2WD*U^07z{kcOeU{XPz|}IEnPselmSf$u=2~T}Ev7L2^jv=-2l<}fVoGNO`guF( zgI;5&u3Jl0)Fnh&*^rv!Gb9kC6E@K*Vy!n_L&<$&kZz#9B{xgy458nC72E{7J#|1+ zRfVjel59b4EdhxxkMSo%){Ok{3E(Q}5kNP`Z-Dc4HP*j!O zsKx5zk#5op8)AOaGTT7`j{y8BfZ+%aPkN` zGk~7KO7j|Z>Il}5YN`Hov@(Hde}+mq1CkG?0wF!ZYT96Ra_rAm)iDY?0g=+<$EiKHJ-|NlKckT zSJWKGob=#Q*@^7dbR>^E)1X&FemOWz?ht+DH#pYq0kWtX@>Go00W2pue=h?FepwSO~rL<~=gz%4N+7ZQ;%f-~Fm+35i#YpSmB|b5$85N+{ zoa|)-J?sq5&%~o%_Eq~^N4U$}UaA{e$Xe*N0+*W}-?vs33(96WqlElO)YF5gaV}Eh zj3>GevLD#p$*s4!LsdULMQmWrqcv4ub})^wqRVuAKEmr3Lhil6U84i`3+p;V?P&W) z=NB{C$pz2h2}@CP<>(5Uk`S=30op@WopVTFNMQ*u|Y4PBm(krD_gqUFTS{s%fq?@0;nY z0#*vF;VLVR_l2Kv4ptl88^pi0_Du5YTGUjv+(+(uqWdv%MXsS{oMfIc6Vr{9)(CTl zaYSCCyYz(~sWwqd=Xdr}qY5(QtJHok-JNQ$zACQE`9?0YACK<$Ee+Vlk*(sjyJWC`vUhYeatv+>+_K_ z+Iix%ag(d3Dw-&L5&t61Z_M9`@g}+T`_xpw$Yb0wr>5?wX1iycN>nQ;=%Gx(8oqNg zDpzs$9%`Hcbd;OZ=ZiIiRMZ*G`o>6d)+DTncU4o|lg<}ZRoUr-Eu@Rt+s&s^=`{2v zF3VoV3!@Re@8?wE(@oR-)aWg@!_P|elgHv;YNBbysBcy}mOI$}P`#_)73t|>cA*Pa zkDC7}75_-{iBZt#B)5V4RJWo}d(`>LDNaA67ZqwEcZ6F}71M?3VxGlcUn6p^Me^s& z9_D!?8(!iM?n6{YH&KJ=)3&BN(a`yk-b+e%vRhA8(w~U8<#E}>xIlMe6+MQ1^oVvF zDd_cV;yyto$jS#&9d)C>_pLL|`HL?5LcCxdU5Vb(aoN~7N4IC8d4hgHExLn#qn=zY z;&lQ1^@u=FQk%QVc4>=oGqT}y!2j1 zl7|doqCFOYWP#4tAh__q`UxY7U~(>`SHct{g=TR|I+!-Dqbn$lq8SO9SqlJ3;l< z-_TRs$13~+BRO_3)$D1asZ>U}=$60Kg{b+*(rsPmEOqvf&!q%+)t#$`(}m70H^{uk zbh;X>1E8g^jD}QH`! z^OEs7)>lBzg5JBjnwsFI!SkMBl&`42+qyw=>v_79NGE5|HJxB2M&jMfQe4gOF&%~i zat3n9s;dyka=_8sSYE(++wDrH;5ao^2a!yUmr0G$hGh~J@SIzWqEy5l?y=6St71om zT#fz2VhcIk-mD&-S1WW|;giFpML$=eX$`QUkuEf3#j;0fU6@;iF$N3`WY{cocQDKJA_{*Qh~k@a8v39M_SoQNN&T zIl!&U-156k+~aOnm0ka-D}XDHMYJ#u8n29t#xzy};^Z9UH(s35$#pvw=dO2$!<$dw zPHXq{|HS4gfHdA zW>HN3DJvW6=|t~0el&_0cjQD?tHy&%r@PU;KH$zpPwFwpp6(qw$@##Q5v#G>Ev$De zV^wY=Qpn9()kN%QG~-N5{7b7Y($5`?1=Zp?+8w6~!LC$JO;<(q2Axw(7dgOvY)qmfIhu8jtc-IiYaIi{U-Vk1 zs4_~Zz3xaXubDg3O`{fYZ?0uJgBVZOZ3BIcpA2$2qdK^Ua=Oee`%taC!#dZODw#S8 zrIy&od(;np4Mkyn`agX_>WA$%0e&P?+LFH0c=pc7?`=Tu$s?Fej;huRz z=;|+LJ*NqpSraLwAt#t5Q?kyyo1X9i)ms%|t!oxC7)oEhg4)h%@i^{6H-Lz=1W!@j zsKaVgURL66%ds*MYXQ4-DSb|jgfmav`EGy4deg0`_Rvur&b`_Cuo|#{esU?}6R5p| z72TFUOOq=Wck2rJK76mNUb>5r#60&E6~}(`Wgz#%>kV!$VfQ_vUM|+}QW&@7P#G^8 zh&}X@W0c3yXmY@@?iz}iZ`A>nP50(*c6}JrTVeO4~g80p|(U;~r2^DS=rQNNJ^njaA zbpe-A_s|b@Pmx59kQW(gVrZo>4C93SUOr@;Cv{t$O8==^sl@6pcOBf!q`I+^lSTK` z_x1Ne%D(a#ooFAH?#KH6lHWnEu{f_gpxJv=NA;FE!zeGfS=A4C-FKMZ9Xx2P=py&C zYV1lSZTUp*lI`hWeob$%lg>!Tpckv@*OB>EH;3w@PLWOgps(xZ;)!S{cgP2L!)W29eq{}Q3bei<1n_DR}ECB@e|$jWg_5x(L!#-$2^4AGkHh;F5AdQ zqJ_AHoC@e`YPc$dEuCf!poscWoq(U;Y4+0=cc|o+GQ(@~9{uk-SaAzFm@SD9KkJW> z{Ag7S$zS98fREHq>aa?!+vqd8p}0<;cDme6oWIKo@LjC2sk|#%i#YwOuB4x-v8p%{ zyhk2b7JBPdn>NjO|+|~v0`OHF`fDX+*akNy7~~^>l1ji z?s67h?JBtYa=ol8Z;Ni+U2!`z@#z_=9ILoeai2mpn3cF#s=vQ<4RMfud0TXC3p{-Z zZ`R0K;ChKH;s6p%tmmjoDkaEVs;26%R;y>M#qA|y+Qs@qV>uEpb6LKEFRQ`b6NANj zM3&wl)m_bDjk28HM%}+k_+>@eTdo54Duk=U)eMtGIWmKviPfuAeU(RLLyBLbt5ekl zuF%?`i{W{L^hCPC(MxFBUAa=$mvLgYs76LOS?AEdsivwRv-<$Pv{mEKn4)@>&M$ry z&sh=ZAQ!QE5uRTosl;MYpL=J{)cN%9>Kka~RUfKq;Ks7TRY)(vV^3s7JU==)SDr%8 zZo!u(Qj&i*;+~lE@oDT-j^w!xjB)Y}Qgu+}(lhbcBg9Rz&?b1zgGl`rUbwl8kZZ7r zu=oI9@r{1Uoa(91!8U?Jz11>hVDZsd z{CW}1)et>E+zO4e199b~7=r|_p`p*!L?lrI={Ml-_e3(ydjE4QX%RM`AKl&p>Kc4$ zC$q}SM8+!Oj&8?F>~zN02vmL55Dz+EiI69(BBo-4Ib}EIcO8$o44LG>0vCz8G67WnL;c-)q% zE~9Ow<}tr6+_kij=uOs?L3WnEQA_-V*Z+n*(h=K4bMc%rN9pZq0v_-iRU3_I1$Bc_ z9H+MGB(@VJzQZC8Bg1L(TUkQ-FB z%=XD`WCiWz$4GvkXhUv30N;C(sPrQ2qm^^;NsEcL?PMi1=CJq{+z_g(hw67^-wt|Jkl#Ai z!kg>0nl)OnlDxhp99a%_7`V?vxYpo?QMJ5KyVNhL6B<)fb;YA4(#`a0G_;ynDx&aB z6S3VH@+W3mNu~|ai^o$GCtB}CXS$&;b$R{`z5W_p5TCY?JH6ItW()B6gJmmOp7|XS z-*KngvHAmi_Fwp;Ug|3}rmI>Hu9;rLopUSUO_ZoDN6UFgp`ZL(egf_oa#bN*Kpjzw zu)=0g?8Z3R4^FQKR~{XNh@`4zad@`UKfoqk6#P8(me3>;U7;R&~3x8Le@ z+@-fHI3?7mySxewPR(9pARzkg_)z2Q-MBL5oh=37?GqHjWHRcWC3vgp~b)80Ez>+#3g>Q+Xm#A2pf_qNv+$_?7>yGUDfNn3p zz>ZdnN<<_Nmr|cb&%OoMUd>RK;Y(w1(YiiW%Ug`IE16S&emjDTkW2ArH^@<|>lFGZ z^J)dIBYJZcf87XNJS)cg$g=B_m-U4=1Nr*}8R$Gwiri;B*?3ib8J^xCrv|f#8~`zR3SNs|XE{U!>?N&fo`Yz>mJ5MnbO~5qE+pCax1X zt5FAT!!Lc!qc8QtHE<27JraXEP5u8Rnlb>?Nci&!xQXDd>Iu5Cmf!}0YD#oi3N9mg z%}Sj#g!AUtne1SM91dSTk*~lN5f_mAXXv$uYl2??!2H;^4!d2YlMu1a~ zTG|DBcqzt-{NglvRuSA5)eoI+2yUgiuX5neRuegUaTn=)SV0%0H+1=?4dKb;XJw!4Q~^Nvx>vmUwIu=YeL?oDS6}; zx_mi_ikoz1&U~NMpt>P`4rhj)WKrT+FXHqOaOLnz%ZPgo(3p{U#Ao2z=s(CP#)(Ia zvnKwpzZ?ZWJIMU<6x_-vj)5yf4!RIr6SQ+2dE_(liS}e@1;~w_klTF;ZUB}$0uTHy zUa%uqqZ}avD5)P1^E#tvoybLZsuxs9o%LZ|9PjdsYstQ3oP(*UhLa~}A*!_FZrz9R z^F{S7tf&(aiH|tbxSos$w~{ zhc~}Y%x$6^LLTWSUuwji#rKc_yhHpOM?7hd&djGiish=j;dqz2M6tNgIJ*#wCZjV| z$m^Dp*CpY)gzu@U4-&;X!I`1(^?-_Fm1`VVXEhNUL%3Sl&p2>>i4HM%#yVu?+sQ*x zVSPW77j&ZnSp+ViKGD;-?|KWdDTJ$oPnw9I?;%T3AI-)KMsht^OT6b!?r`1%Tlkq+ zdzh@}Gd)lHiQ-#CJoBrM)s9CF9nqHiSbH_D7+#0PL{iI*Mx*0Qa?-c<+XjBhtNGUp#(Mvj54XHCnB8k>? zQLd7meL}Qdtm|rvjCU0F&<}0dfHzBxH(RIEitczbOBO+DJDNLhUxk)r?syFLQqK`O4_pJ#2vpZHh7;T|m()Uho^eQ|BPhJVGVl(d!9r0Q^bM6&}6B`{EuI*=IVI3}OV)Zv@)CLp`8Q?MQu8 zfDs)hiWMiy_GX-Y(3@oBSlvWEy!=G{33=;kFaw$6e6;#8-?!*V{a0N4jQ30=KO}nf zgI*7OZiM_DZso!2jv_0#kIx*%D94~Jd$6MS(ax)^8;-+!CPmgQ!2O7hmXn&itAlul z`shcpmpkA_t6}7XOUNr?`5wv$eHUw(B+e22O2fx~_`$aLmN@dK*3@Iiv7&tX2Dq_s zbTWSrD_ebxc0SRclkHw4J1axh*$=L?Mq6HpC0J1gthSfV6^ha0p*W3s9w!$pucvZ# zYYj1zESc|zfanjh1wFTiXmt~jmJUT1damcyV#YWYn_YvJnfUM7+Qo|I;5}1g18uRO zzDO^Ryn|MM#d^n1ItCf^nGkL~5pyk7e*_X;OfJ}vbKjuLTZ!l}5J@zkCv{!S!1@x4 zZN&f7SnU!tY$85pojQYdHXwINESlmaZn2tB1+P00Db%8NxFmiNwWzAr6OWS;YZt?l zNodP&T&0+XoM4MiMSZ^vulqJptP5P}BCC?QoFRr)Avar&R!7pISd1T=LWJHFibda2 zrKTr0U5(d$2e11*TN67gAOE@Dhta{ergqu5Ocqe5d!|<2&G8o`Und zQg1wHc`}JZ=w4Z@XdXN;L%6AMb8$#JbHd|;T-*9Ry77!&UkzyeK;}{wE!#_^DMjrt zi=0R3ztFE~aB~@2_5@$ulWsw7tZy?t<($y#h&{AMZwxZ5zT^atLe}8oX%|3k7TU58 z?JS`Ca&2;cYL(x);yX9<>xBKaK)+ool^;Z5YO0CEq5$=!hnuZdkqO4ImcuvaSkLKC z_2+q|I^epI=@#QU?@d@yesY2_x->cRF2*?nZmuEg4RSr+NPSa(z)W_L>*mMWJ0ihG z_@q~4YaK;yV*7AnQ4I7JBlCGk?*!Uej!fvj{z&{tP37Xv>Y*>+K{YoKdLW4BU=h4ZJ1nWP%#80`h!4*o4q`ysTf!pkI+=fpHB+eE~a z_ByA20&X3;vW9s+B(rYAmE}J1CE3&oYNHRqwICBIArn!7PvU(aSCzCOWQEJBr9-7Fr&z-|to<8w;{x=G z;LmDcv+3zetig(kVzsl0$LYZxgVs()dkY`<8Fk2IGQn^0o)<&7${K+4n1xQ%$1)v5{DS_b_JJ|2fR7w|1PsG}F^N5tq3*xF_2<%cIF z$Ol}sbtYWS#;S~0iDkr3TxEvG)fIfpdt?O5u=YaCWU;scz5Hl)QKS%$RZS&^Wnxw4 zXK)@x1&~5C+Bq5ROOKZr3HLJN2XCS&XVqQh z!`pNwmFo0@p!>5M58NY zAvqXn4kE(?IzOYZzGSTC3aTA ztYt+{aF_6(>50zCu)R~v_Xjda#XS0hdzW|{1L_4flpFh)Kn#l#pK{D{^jecoq?b`# z$9x3+>5BE)dMlP)1%H-^s_G>kA_^begq5R{WV#i|`aGOV-jj+7`T^3LP1mIaUSboK zLltNwg`=_PN-|xTTzdxAmt0f~;Vux5k}*m}HMg6Zr#;peLtmzs{zB(r%~2wIg$mKu&abj;G@BRWwYMa<*Z%PRJk^nuu6Qg?irz)+6@aU_?Fjm+&GZ zbw?C6O97-egxK(a+@%IldNqFc38)uzqYomz!Dwd&`m>9fUo9-)Z8(z@szu2DhasKE zc)^++wFX%~q+|XVz1fQu_d`3=VC{>*)uxw~70#prT@vp-nibJ!IvY`C2=q>fdr-X3 zJa^(FdcoxsM>rKoP-0b5en$JQ5ogMhL zp-4SHUBSN?Q+MLS$BZyHzn>7(29ZgeC$<+uqejs=+lM61Fxubw#@iqwa2~q4`^g2n zL!&H`&(CjpJnm4czDsm@ih~=8Uhjb;C$OMRc-+4DvRqih-Vm+YGH&zXkMGU^_>7?13x4BE6bu=L_UC4SJ2>{s&Mifn~JCe{)Y?thOXMxrf^YXATmb zS7Afl(b=qY*LPsq9**ln=`)lfQgoz4^*gaB1>T@F{96G({$h^5qni`Rnm?lp@{lgc z6!^{#DoEl3W?5HvC9ds2t5f04+F&)y(ULuA*kYICnNZOL$!k`?d7&ex-x!x_QHXyP> z8Qpa_HwC?J4x$ostc^|&(@V)*qOsbF;6@RZ*MeF{jyr|Qx*X!1bcrRg)Q3 z!QXbIVqK|EU=43m$#eiW7yhqjlndZyFMLEnVNus^1lJpXS)15W1O9YDdaKdS0J+QO zA>3>vv6|nx@TeHv{;QVxa$`VF74cl*v)U%U8o@agU7rb5@mZuPQH4T7?uZI2af%P5iTH0n}|+_ z+T+hAG156u9Sb*`5y3K3_nish29guEMB=T{)RFX8cj2r3%)ct*8Uz=oGq+!uT@P%w z6uvVKzHPvc2IEm$O*>M(e%_dFrOjl za$Dxui4k-Cr9OaGC;A)L4+&0SZlf9Tci3z(dTlR>ja(tloO)1)cK|(v*{;<`(CQ?j z0QA~0r{Pc>i(l)9wtk6EN`cjSxEbUCKR~M!&%=1NffcH!Wby^E(ALE1ADP)m_}Ysc zwkl^!My7iLSOqrQO`gP7S+p1b31D#7JMtT}kNIUL;| zJ>mOF`1gfaE)tl_88n|tZghD?F)7|y0a8pzd&Y| z3S1TB)tN}$pGQw**+7)RCq;yCTaedyI5P-pqv6piy_>u`j-GBI^s^~E><+RQbXyah zN|AT^h|wp}sYO`s2)d@j!Owx4`_QrgvArsQlMR=T^I_x2Oww+io6D^qt)j8G92g zlXDp52Do_^Ei=HqkN>RB=)MNojK5XT>74Y2TySTwnRRejkm3 zszmt4NaHI;`57MY9kk4*8*qm6{|21}pq6rmKj7vS@_0YE0*tFN-Jk~4&h?>O4i0A} zBM5>!i$~uGouzPf760wPb6!WwBEaQG%9WT^9cb1@2R`OZnbFQLZXcXq17;OoY%9_5 zB(@$y#+nJk)Vf4|jm0H^IkEXwEKr@fYA$knUF|cwQVmt_ZR+k}S>aa*$v7scY}y z2M-~!ZH#amlH8BQUZI+Du=Y&&!J-^p4rE21KV){~Uk;uWhkh1(gh@_tk5L_k7rWr&E~p)0+_$iG4K5?IDTMx)Mv7&?7v^*Y-NTM7cn&yP7(@wv3o+`fa3vAi8I9bpa_n&sM|nQQsBfT~ar7XQV-MLmwg8C2 z{O02L_T?2gs@9+Q_#3DT(XHLzyGJ(v-BMaw9!zd&1Ee?Ep z%8_@G*ex)3;L;N;A%OHeTuMAb29TNg&B$z1@SY#(*_`<~E_5I8|8vG*BRwA@ zN)E-ej4lJeY09__jm#)U-6zpp6jD}O$G%I={-_$mL!bQM0z&X z@(K!1K|JO096gC<1b;yKSADvq;-aSv(uBMxfbCkEz1WOiYCisSf-MCjpR!qmbzk24-J zjPYoBs017rcZaZHj5jy$$D_v=)AieP>pgd|G z?oDI@%A@vAoJX0ak9Yq%!i3Mg^Z$F4hxzAk0>=9r9#Ue7rEDtvST#}m#NK418}VM^gMB>bOnri8JC zDS7XDKVkIib9w(Iy!Ynk;g}l!Bmwm%h0w|Vake*){g0o9-$~$c0@Z{wzkVI2@vpC6 zpD+CRo1A*{*o03L#u9$*p~FXc&*4|$Glu{7Mio9|!l$o~3%}#xUynVEO*r;y-h+cE$_1U~LgpYdtUifvwyRXmp`u&9W-aO+! zKYeXMZ;tWxF$u^p{eRN__h(Ny()-l=4O8&W`2U5U@a+Cy%p}a6|L&O*B=FzGB^>{M zJO2MQ{(t>R0`33&@BiI7{=4Y^+VTIjqyGKe{xj@<_W8d*>woRt|I>5-?{NRS&;Dzp zN;vAZ*Gzcl|MYKoOkun5YIx62hkFmN`xaiW#Cyd5-ET?gy?F0=-Kg-9UY{u3IS7x% zt8u-af!B{o=u;$&((`MtI~-n*!+V73d&j))jdCnu!+Jf{0_4tt-jMv9aL;v?} zde!-O6r{Iaj7Ra%?+5htOR*;KNoXyi5~~=Wv$pdYYbc+F)(Sr4xPtWZbA!&oIWp0~ z_8wkW*y|>H-BYgk*VlzXJKqP=)}LnIK5Q> zZ}p%MD<$6QLwKIWS#K%AO!D!$H=7)+NMr_?E=14kJ$t?2D5!c`F|u{v>rHKGHo!u-xU)fQH^Hn2Xnp7p!+{N2d9+Gf^- zc7)bwy!DSuU>|X|mmzKOwA<5KPqv<2c)ZnU(F?eC2OT`Yx{0^yvJX5vPV@gU)_RVy zmU1$*zTxTQO^$rPIX!*85C3nYsh9Yaou(PxDUS74P`t+pkZ1q?EWAE)ouhAp^W+0* zexl&9x9;#3dXzRK{nW_J>xFy1$?Ma5njG#$do~pxvQIx8O$jbXNas9x6y;G28RS7; zSvZe(mT<2*q0jB=-kX-IEWor_Kv@)mdToXP=e& z>>c!y9d8F44cOV>0$1hd<4VCftWw_KI)D^hdESxzH#)d4*lXuK=QlftJ&ya)YzcJW z-arfE%f}n>SGhmeA93sBw#D6w%gf!KcEx84j0vRX?haY)Y4+RBDt1S{;cFBn@|l+3SDhPZ9BM#D@{3Bi@h55|Jb#b;R2dxgyd; z+~Mv-qx=p0sr_4hjo2V>Jv(weXGdVoPAD1KTk>5wA3mOEUH>gTTfM`6C=Ff5naNJ5 z`|S31R{Lo1`(Vo8_P`H;5`mcbHSyizD{>dC4DpfiFXJA>#l$7$Ro(c(@yFvo3GCr6 zLJx!Nk>|{3->cu)tzr>ZLeJw`l%-t3zL=3OH{NC^qo>@n=a^N>H_P|TSIIw_J4EG- zsL!3Z=0$9Y*dDQ-yNr#C7!&bp#PWzW5pyGkMl@k&_qjt;Gk;qD0bfscW!z}hvfuza zVGUuAhwWUG9U)h;HvEiL|B`&~=_kIK{ug^~_}MwQvh$SvPCsB@yD`DaK_j>o{$~xG zkDnA@FFqZ2kDDFWCaz$d6MG_dQ|yY^HL=@bkHkKY%@fxx?o?dq_$~3(0)fD~;CJkJ zyV5Dg4l1>|inbyapO-6}vddrD<8^|OlD(iEvkAM4rt@|2?eRtUEBOceclzV~St5!c zlg}a=Mf8Z66tN-VT14{5l94qd8%0)+EE}08GEwB!h*=Shk<?upj!h zC{Q|ZD!zSulK9neHRGPgj^(a_k78EE^opqz^A`8-3`Qr4c`v4R%wX=UStj;qY^S)l z;`ej!yh7Y_qa%BA_hi?eLG0JFP?f_vW{6tSWdEZ^?3J~|s^r_{E8_o!dDRNtVeN55 zlE~bVA4OK=E_4+mTSiXeK7GEZEK!-Gl10TwUXI)lIgnX8+*7S{M7D@yXlg$HS>I4! zQQvv?8-14@T-%!|&2>gg_Di|Mw}cAIi(E5UlJB{W zwqFG&20sX1;f`GC0!!j6#mB|1jcXg1fjjy2iv1`y7_&WQU`(}`5;3J?>cw=5nGmx- zCP{49*oU#*;*!Mw5&vW0^PmdOvOi!q=xXjUw-VR1f5a+&Wv(>rE7KTTjBm{p>^xY@ z_uMy%yTMK1es`s~r{8>LvN>`&cP`w>tWrdkj%pRvIjTcc-Kc_5M%1y$DUtQKr{T_s zb`j|!cKg5f`}}KtEqob$C%D(er|g9`!z{xdLO&XX@e(8XW>PHI3O2wa&E>kZr+f>e zvI?^Q$!F}tK8zj2{;d@5l}Y(>kU{%;cB@G09?Eqr0EQ9f@nn{pNOam&jV|x4hM9;KsX?xO)3HzNc|O zG?oUt>C|91vT;^H-yvUf?zC1fVk>t9EECxvvT0 zm7}spy^7ox*%#e?95FqjGWPhhzZlv&h5H3X_%^UxbfmS6dr3UN8j2fN`KDhiTFWjy&)AzQH~aK9<&H^9{_PwK#a)UW8e1vWAA2BXZp_G-E-@`) zS~An0k*dB*5xWMhA)a(rvO0}*pFSF=uL z4~|)GK6fkkZ8#XR%D%xw!DWFj0*|;a-EGe=nK&$V}6gR8~Z<~dIumm(=Y71 z`?1=Zp2;A#ZQHhOn;U0hYl4k!+nG3H8{N~k@t*zHS6{tvrIKuFt9J9~zR!KmbzMK7 z>ydl4XQ;QjFW^h_Uk|K<1R@q{u5G+Fd;|Y5q&Rzl8Z{gb;Aen-`IT%>-JyJx8V2x* z)E;=AJE%ms(h7P7^O-4PJ~9WGfsB;NrccoQ=m31hqbQR4O0EN*q#gFm1Yo081%B8G zd>}5w-$HsMhFyRh!2)D4;(*ntAwLV0xe~}#m4{Ej-gqTg8#1)xAl=b^W70u<16th*_*%{Q zTX=(8;z3y9R%0C@(env98lLSb_+nGQo%9RpA1mky#c;K9Nc_X$$x^^o8tHfY7Q)VX z1=gZc&l(Tv+3BwCe&QPJ;<+9=*E*XyiySL~u>RG)(caWh%eWyc4dOU9ne+@DR(ri)qMsE;3$t-d!Rhj;muECsO zf=n-VHrtAQ48-OO^hzKGJLo~o1BPL{v4h#l?0057W1<((6|iP~BL|U2;tDa2Xh6_J z5D&qB?-nrECgM%-3dn>Vg9)*>Xg?rkY=nwoEqEu#Ks~q>p6pe~OL_>oYIh(V9eAKX zMw9rid3$<)dir`kyXU)U_dVAjm(cYH_D_vtfrEDJwb!y=w$-=gSQD(vtuw4!t!J&p z)>^g`Ho5(deY&GI>^TCr!c)oH2AG4VAy*oM8fXxIHl&F!!6xHf2!bpj4^zEq4ZVzU zGt1c!yOB%gB!Wr;7dMMr!|r6h)1&Dac+TtTM0o1S^m{saq=}`23$qt^_}20M^Ym;1hs_8Ao<0mWcaOba=jkAN&vAN_+&gX??^)ps=1fc-&pbsjY7pWu642PuM= zfornFZ}9!&BYg+pTixQR?)mQC`u|^LtaG0u!yakhWGl5UvbrtDECVc6EHy2|EN3lt z%LFTBduv;3ALQufZ0}m_z6*!`)&9c3gwX47UEnr-M{QUMUPM%o+0=7-8dJ_JWS#6b zuBu?IAW47<)|?j)W8x9t#6 zoEAb-!mD~$6Tu)oic{lDJ?fTc5?dagxZ_lws+NN3WTRK_t%@fTMv(ZGD ztC+W&Q_VXpEv$`fo$Rw6cbyro9-brKn*Ke37NMKrXrLmguz&G#qBYf(UdZfWPjZt5 zYT;R-Kr~l$S9DXfP1I79C>$reBG7Oor)29fW9gBU5(w7I@Xh!)yb7=+M-%Ibc|zh=E0X)-`?KV%-Y`4zUBLhxDQwFvz!d`rErJ*4L&5be)9e%UwL=2$)Ei>8*w2*WSkpbD|Jk>*6X zqWn(T)v`Y21?5Y%Qr% z0_9AlO|eapBWL6@WfG}hd{neV*g;@muQ3hiepF3(ejM%ts!kTN2mW@Q!MUn~lW`$9 z2B(6{Nes^7H;`dg9jZwJu2m2G!E2C#-Wgwn@5Qg;cky}nYy2Qy9kTFOLZ*Ee^fol? zuJLZe3KSn)2t=MWezSL@=YiYgTJ9X|7;Gys3r(4Z<+>8h>M}#g)uQHwxAObtEz7N% zo0_*We|%wV@uSk-ng@EhCChGd5Az@AwZ-;QrEHd#D%lR{8OdkSaN$8;}k^BCLVb znb?pLk_C5$di>YvgSBi1vJ0xK$@mle0PHG_h$zAUmAwJdtq(!2ydTb}to@SpzB$Gisf*L@DqB~wrtnwZ@toS(-LlSPj?N5b%*ayb z^vSPV6kYm6b4fqm`q6dR|0G<9CQ>g2lcXmVM?CN`4U?%Zhq|G*iA8AV%9{@ zsuUS@M7=d)lxm>zlYE-&vt*lCAbKm9!Hr;MQdvYBcxo3BFVrpnK$6^jNd7cJK6hE* zR&ZOWH`I-KUVvX6$N>sCOE1G+ctfHJ;l~@}e0&3B$+t!$fywX*9FlmrO{hJP4!iru z`tEs`d!pP2oRp(7T+;({tWmA2tc@>QQ?jD)W8RJ&MRvWc^_f*OA7oHjH?y60&;a9xZ%b zVg(s*XM0W0+Tbj-FV#N_fp^0{K0Trbs$JBW4(+Hi5q4{{T}7Arsw@%!->h4u!S;7`b`e(k^N?+Yi?kHHV2 zMPU`cG30Td#@66Nh}Fas*i)O3Lb5Tj0UrYU;2_k66vEE;7rZ53q04m#cu7oXI;7;U z_RsPjci(g_cJ#DeGNT5o)=`#L{J!8*PHyJ5G%U4Ma+{=#zg$vra<#M@nV)kS6|OC< zr5j;MaLo&t`4QAr!G76C)t#vCF~Z7*s-voHs#aFDe^p^sYvloP*JCbMN{bAuWf4l% zcm*o=OK(d$iIap9!9aE}J%SVwRj_%;OLJe61N?#)||_ z?GLO3yADL%$)ua?MJ5u}iCg$;TmS_1XtWB@n8!d~2;|~Guk=3;dK{#$J`OGkApTR{ zdY%q0%<;k!Z%ojg);LP)6#mH>o4F`$eoF1+`hQdZ?EY&`5~lGp-{;ILRF_rPPqT9F zDZvt?KIIZ@klt3UjrtrN8+W7f!75QzM^{->d4620*ab0lqnk$UP`^`MQa)2`kgt^e zlH3&!6%7>L;TSfK?nv&&XJC+z%&!8xymg^f(AkTH6M;Q&00;}Mz%~4icZ+`<_{kXl z0)LPD@x4GJze*g%9l$^63Ayz7kb?Rf_PVE#FZ%@6&To)VbAi7ZdZmt#I5aQ-=O<5X z*J(Rv{c5bLJ6~=t-dfNuN1Yi=-JLQpxpvZvzvq&W)GZmB>~Hy4Npr=e$IQtAB_Oz4pxlq zKr(Iz^(O-q>w$0<{tPsh56}FS zh_==<5*1U+&KGwoD9C=3UO9DV^7iETq{O6*q_L?lGX1%a3gu;)6*lvFm(B0xuOkqy zwdA?Npf0HNBgPW&&8dHWn)@K_m8rvk%*>BgZ!fGl(eR#nmAFghD&75 z)9uLq_%758Jc%-EPNQGhA*wdp>6A}lB&S#*eR`AD#p9lGYol?V+1(4Y{rd=JM+iGq}@|cZ!0D z4^jM>&2f2g%PJSfO^X{4S1a~pjJMM9D2w_`L>*N#C84+}TPmd`XGGl%&jMaDtS?ezcex~%_o5RkJ-CZuSL|G%#5x+U4*)TWg#DQcIuHS1woNpfVe z_V4@G{77UxUsh)dl5ZMXoGKdPH(g91w~H`1_#33rj|veJqxYZUp9=4zjPez!S{@8si1Hs;WSb zvqIM5P(I9Of-M3|eKouVCN{LOrl6*DwMMgpn zTX3T|r`&GnWN+>91eWn{5FI&6@<{$!#YSGMbUvm=?4sDR7)9)nn3K^l(fLt>B0052 zRiqrEoT7-5H<4ZwFBSa~BHZG7=ZF!57;&}p>p7u_lZ@mR-P!ha(dZ0esLRKLvsP?M?7yT*JkUx-r5Cf!O zZ4G}4jt->4Xg<#+a>QC~#>)D;n#&~*3V!Ac%_>bFk=7}-ZpzP;k7>0s>*f5-R~GBb zx9KNYce$qc9O2X0I66YeNa@JyybHga1ybvHn2K_+)4IJfP`2E(bf5fI~M12g9{e=HA@ zCITb<>%CXuJ=|>VZZhlinxv9J1)=Oanawl$rhQClkkTyWQQF7MAvwzYCq)m-Z|V~* zot<~RZ$jTtoO;iG68)9(74uXtBZjJLMNWwnM&gkZBhN(2BTuNU5uGCDL@bNAqRLlB zDfRL?@+HzC;tv81OECk;gLn>-16^k$uw~1DYO)bH2|s}|IWagt`~zIxK45>)DA1>X zU^EA4Bh~S`Sab9loLoKwAN3;Snzuwh0T1mI5QNnDVVFH70UdHHIs>`=AIC7*+26yv z#x>AxGiMocwGGN%7LCcv&03$aDJ?&xQ%V!4q28sp$!?jKUuY`rQZd`K(>BUIIZ%an zADc|YbCKejQmg!ma))Y01fg!B{ztu7eNWw6T@sNHF+Req`liZOO;#6Q(M%%B8NvNskf-7tJ5QnMpTc`s2;1fD-#sGWlc3pvM=hjW0i`wG}D>wq8p7;31T&{mjQg6AIyXZs+#e?CxW=fmux>;E_=7D%T$ z42i~GxGEB@kBQ)_vhiG~gTLat@jF-qdY`|5X9+$1-&Iv|RJC3(CRR)+ODg)2w2GtsVh>8QbTERnTG7*d~eaSvhs>orh)cD?k)a*!kiOi%vnx;86Z$m?G?k8R7=W6D!~kKqAnw zz|8uLPa=8|`-r84npg`v_DD1eInQ&2+68uarS3J3E!Ho_e=E9_^)I@dH#|Evy;|zp zBO$^MU3bO!L+Cbaf82EjB9+^|Y@`z8BQY{hHY%-H_r)TAkD; z`C7`|w8NRkoLvQ#N+T<78UxlesqN9IH-BPXa!Bcj!)dM2DI&nhT+g0z{WlIR52h+!y>=z3DY_ZK)RcrW->FL@fC2HK33f3V8%yA;D1wPb`Q34H02O@fHL^mXQZ3 z3&qlHsGH<@Vm4k0YlT#VM+N=9nVwSTN85h$7{g6%d1=d{6?rwXZ=_#H4J0Qd*^?@z z%uKDEu`at+zP;#rnNUC3e9G~_%Y~{TH;L)&Nl|xcHARN1iF!xm`^arky`u`E7FF`X zbK4TxBQjOJN{y-KMl4qCQnpb%mNk%$6;Bnm~X1Auntf zBy>`cYrYZYa^X;0AVsWzfBFHLHXlPV;F~vv2Y~N6i}#IR73g1y*gyCS;xYM!x=mk$ zzV&T-41JrLOZxDwm>uf0vmw7f+4IQBvtKnch83EXC0OCL+!I;Ov=7NSNh6ZxC$&mG zko+?3T2^Y_j-p$ozbnp}|8ey3whV6LHzOCatf;-TOzv0xQY#`)M_MCiM%{|~6B!@5 zF!GD~g*qnUn2L^ArD9YX#dY}s*;nZ($#GFXfr(wr+=jm5X#4_t1kpmWodyV!>!5qK z5;}#up;Fulbkill)-a{&3}k|PkV&)|5~+p*U*Ig{%x~kjfC-@%yM&)7GRSK5B4!bb zao^c2_8;~evzh)wzQi}9o%v+=kbkkqg(7qF5`vO3D|s;=rD>QU-P5$1?q5jiT0 za)a`tVunJk=pfIOJLD4;n_wr4k-d|Clx!BS7M|zkumk8IIi0XzFVPS(1=h3ukdHJj zWC}J4y$_xP#)cWl=YxXnfht)Ss3MMF1DLVy40QpI_EX*p{wyR0JB7>1j?^1^DSLox zDXE?MIpU!vYT?Ow2U`y)J@XdD(O`?GVgr0FQaPO?BwRj zGm}3guTHs`+AniW?!6+ayj?{%(=taxUqtu;Qcjeyw?(w zC8-8e#h1a(K>yhS1hwkGcJBim(GG!2uy#HHdRHIF$L2#8%^l#j^~FBn{m3npk3Pj- z<3tsfcU9)j-Xc?8jBnvF0)HTCg}$G1I0L1>xi2XXH?6SUPU`a zU+5;PWe21^q@|LD(x4QTzm<)Z4Uk=x9hb?W;{PGKD_kScvW4_3G8?yHdFV1^Aa7gf zb&wB)#ae-MUoT(27wU9xM{k)Y*E8O`+;_@fJ-`R{#+&dyes}aYmVyr_&(qggksuMC z+ELL2F(Ofl7Yp|bMshs%5fzUQLOzEl2B-PXxl(LT%)bnB-B8WY(g8&=1!r=4BwBF#>Hyyd&&suvGw`0>OS`Yq=Zot3PVZ&BzKWs0$i z4e%?cu*)ke{=hpaQ0!1VQS?$uRXbE(rCyn!+^sk$KP0U#$rSeIS~4-zEMhn2K|1jr zkT%sJ#19UF*`W-&SD$Q(ex59$3)m5Y z3qqxMlVqP{K8WXPifzKNf)Q*T`V>K6&&MgCWoF4-yCBzVR4We_R@ zUyi;7+R)Xo6?(cy{k4IQdDhn*dY}Wn*S#;ia^HSmiEoR4e4sqoGW;*^AHEDN!K#y& zDS{cuIykAQmAI;;m87@CDefT-2~P{$>>#E-)r^p1-}nc^Q-UM?-Mm8gQ^zV>vH74; zuHUY`SC&=W1iFqba++j4NZ*z^H6wId{`3p^FE9b! zN02H0CEKs~seGh*uR5;k0hMu#;;DR}EI}GCtt;CDZ|5u-CaFl)nsB6HlqX%tLOcFhM+4Izo0!rjwP+^wI@z|9%Mapi}k)t}=~(G<-Ku$ER}_ zJKHjx4t*d zJKH-6;hXLK3b59NDG8y064RL$?2E6JXfk(=5O zp6b?=fvJwP)|uM8jwS0W7|TLuo!}ev9D|58vb7O^qw=Dg#0F!~n9r5G>eH$>@}<(% z;s{}o?aB&ar)tc#;H1Kxq9zg(T=`oGE}1Eg7MLH(jk^N-g&Ff{DB?JQ*oP&)^vOmtM=239E|Fix)~=vUIsmK1=>awn1i- z#!H%rVg-BHPRwd*9&s9L3mn1^{3pDQ;VQt~ej3>AzvS)dPIsi*PFg-0m+L;2i%ZuQ z1@qhGF3Gx{u`%70wj`}~>b;bll#3}LmznM$Q(>a%px81 zDDI-rEm|p#lU|YCl3U<<-^o_Ug3`y5WujSv@9cW!1$B?e!e*gIfe-nT*DV|e9mFfp zcRu0m=>F~aWjkznXI%Eb>s?jk&TpDKJ?nJF!t{c)X=#;GZ=@8aSWLDZ)xb0t~qg4j*bS?WmDFojWeS)vyT1adBm{Q}SSF^#jC;1sY8|H#D{k^=y-MyWs99l=Ia{?$(Zo6xHpZb;umIOzI zVj)weF3^yQke*l>^q;R$3z-b|vY@Nzqv)1cDE%sXBA*5;U2E988p#SIW5g$gb6|>l zl`&8+i3-es4CEKXEaJL9)?4g4=6q+jTb>xJ>N{6F(p)Y(T->s7bpF%4C%I#CYGyah z+L_fMt7eur<3z?^m>{gqTUR)(>}^HR%z0*ptCB6aV#zDz)Toy+Jz{G^zm|@XR=T8q zs+cZ)BswP;1v^>;CId7d{g~P88t%Gaw4jYJR^$}E7u05z)E_(x9nRMUFZgbFZh#VQ ztXtup<=*RQ2w!QlU=pY-K83D?kANz5GAL*f{wSm#7Q*L{uP6ySSg=;qL-JapmbH=V z6-Sk$l?xQps#sBH~iTx&wQH?Lj^K*}Ti)1)&wel|aZ$ z2wn~UM$X~!)E$-)b&wvHM=2L73zQ|w;i|>TCW^3Zob-#NgLsl~7`Kgyqfe9RcpB>F zZ{UrC9_#nOWB(uDG~ZlrI_M*IxC>#@eAd3jT45?OoYTp){mPUpXzil5S zi)TJkhsiWJ8)>N`nqq3QC)sE&o$bSZqR&x_pfl=5Z}TCAEPM&_^*h0dBor#)`H=nC zNtoYt#y?^i=wtq%@Unp2*Tg6CZ3MMyUJy9E_&-p?q=TQ+#kdx zyAK2#;Tg;iad){%IU&LUbFiJVr=nThc-lqm!?q)JKx<{-Uq$QSI$|z83Rbc!TrwNa zU~~?ViA_f8@`i`j1lIz+{0gr%`Uiha&0uc{rU_pOj&M_%59DWT6)!C?(6`Q`_at~P z_*aFVA#F&6+bn7lAn817w-vu&}K_!u4glGjo|lCY~+i3b?w09^3?WBlDg5 zPOQSFAV+xX!|y`1gPnkhyx(^KbbG%%C*3Yrj#J{?W}ju9XdY&~p`WLVuK1y;D1Tp8 zz3fD3wbF!=`z8HL2A7D7dloG&wB;WwAPRpMd&|9gm+h`MhaX4R74KBkkEjz_rV=P} z#7o)nWOo!4@WAu@6xzp|kG>|VGD6`(@jXd3$tKY#!E2@pwI44)fSw2WW9|8GkbBr5 zvO7JF-Nn`8GTG+LIFRX|M@xDCg#HHl`MUsb_-9~e=rzxdjKCX_yQxT~Hfv|=a5`4R z)#b(ux(TO=MB;MscBxi!Ln0JE7cAyd=@7Y=C__I0|4|O?P%kU`vw>_8p4 zpu*^7X=Zw=U!j|)jnfpDw=N%1ezt5_SyY*^bYU4<{-LaS+3iwsiMgnG@rROznr()e zwtC)QJTXZN21{1TIw|60+a%wFTj&}15@aaoDJi51_JW}3t87<@OKJ_uniqmhb}ik2 zEQi0-2P6t@k1rr*P&xDt<{bNo{m7<)v1JCWC94tZu_EL@4pIc@insDVf?|;cf5mQC z?bq|`p&PLVL<{OZox&XBG6c0m0&%=}o;XRA3a8ytE{^REr+E{>C;s3+VgAsJC?NI{ z8F+gf$KF6ctwXp|sAX_Upo;&J?}2xu_l)Phdz)*qbG8Gqf3_x?ubP5}Z2cI0Yu&Gk z$rUv#R26K+VXaJCtSQr!lvgbuS-z#TYw3UzUTJpOPVF`0R%_Uu8;Zo!=^va%$ch%i zzI~EOB){Whur6pU)*gDV$H|wBlB*~12`&jzxo%vLJ;uoBVsaK~22J)oQb$gtE>M1| z4|H2zQXk1bq?LR`?WTHx2AzUGwdduowgs&VtwXHyEI#v9b6xX9Q#E6TeyP5W{;aNh#Zpb5^2%j} zrPbiw$Scb&n_FI@=~7Xyk2CeLo^j?w-*GC|i|j~`U^X!=*wu`l`bC~5+JIJh1NEDp z%T!_mTxDUpAWo=)_u(tEn(4?)q<4dAY${ccdQKgphkzDzJ$;NGK(_^z>kV4Ol+%5g z1iB~Hh&+z3M2q<+c%UlKh7UE;^&#=?9!Y^Ya`iy^_Hy}JPga*I+JNO6r_INFx)9wSV znyyixdtK`s?&xS|Y=h+V0wp+P>PM+VxtWW|iiI zrk$o#)1ab;e!aPygYRp~WAWkiO;*n}7F=N;(yJ&xnN2RF215s`FMFFCDLgD}E1WGD zz$G*F>DQpqUQVWyuc;sOQ)V1{ofWVm<`7+jJ_b7WNz_wHK#!nj&_VE7pyYn&&$dOT z^0MGwOoH8{cBpGOjduoFj;$nqlUJ#GbX}$=bC{XH%wZR z%Q|=`<{9h2oj7M`Wtgg8pu1J^N!wrBQ#)KcK^w2dv@1068ky$0CPRB!S716~ALzXs zevEaX6WIvCMuDHT!+YL=vXJwr*7Oo)ID49#Cj2PuD*Ol5@C@cHXnoU32KMhVYCChC z?aY;Nb+~EFeww3eQP0Tvf0uxZXjtfHP#tu`9VzzAb4R#7J9gOL+Q!*j)=$<0R?KR#4740J&ofKSGfi8K z^^Luag~pJv)EH+RuNQ!-=x$m2(rd+uMZA(GWqR!tV`tkLk1q5Y+eKevdvOx(J~N!& zMSUiV$pp~sjpfz~>I+W@?s4t8bL!kuT8(BbYwjKa#0kNj!8XTWVq4;BS413PzbXbJRsKlAURxAC5! zWW5G1kS3IvI!k^6M?fNxLsSM=4?(6w1(gn3Hv-=QO3eb8pN)hydpUX40GHi5*8~>|-%QXk&mp!Sx6&4c`L*e_shhc(Io;$iC7Irv zKAA+O6~@PgUHbL9n2LVdYT7p1vlVXrb5j@Va)-tJ#kVswp5F&sM|!DO%oWzjuq?{f zgjHfHvyK_TZfC4aHanilq&qMe^N{(6ZOxgudvN7vxKgGookL}j<>YvJHG{Gobavk` zeVNg8K3ruSxs=$7lh`k034b)C*WV5bMD-Jez(?H(_=$)tIUb#@^?C2u=%U3402@ za9z3XTs!UxyMXNlKU3JxaPPV^4tguyggy^zFhU+9(uq^B(;NopPXUF)O0$C4jM1nD zSPpG~hB6LPiMv4NG6~Mb@&C(#z6jJs1&}%W@UQWkfo2QGUSqxS0dRjJ2?t)AXhj$jknZ!S@Mfmb(xw=u?W&rErG=*m=-OeJ9S42gy9} z0RBrJCilUva~V$n)&4hN(lNq;s)Z);#l!5QGL;O;bq}| z;dtRMP#U#nLyVbDp$f@dqB}91_(WVGjLh|)_ zNEkj1{?nF_LVp#KqCbF(_inf)`8sM;$2ARtCoTXZikkz2N?9=N|6*$9dVY z3%;TQ*0+}Smha}-W}7M2{K4GL^2u`AqBRdQ)iJ1bJ+$k~*O!ed`&4#BGf8*Q7_y|> zzq(HOh6U5YO^_vM5Pgfi$IHk|^e?6xDEJM6lfsw66T+$REp-%C7ateT5f_QFgoyB% zpo3rn*87 z53*S;DdtY*1?ETa9ep?3%#GmBLh}^U0K*Jjy^3*~bL9iehm|`t=@spa+pP;6V?9Ux zbArw=%ukR`*e~oBaR~YpB~Y=H3R((l2^T@1;*>BfY$zHb>Moimsv%k~tSek3SipT` zQy4u|XuqhV)NpDMH5t5-^QjMHXL2)<1G>5tY&h(rKamN@BdFtlfx7<(%SoTdMGd$rtzbID65t$L6Qz zZ)S_RfhE~2hHlRo!!li`in*E_<-^N+l&5O`t>7CcSUWrFdlvW`1z(2!ysk(?>?XFJ zm`N4T$!r-{ET}9bgfpRTyCyUU%Y{~9sj#c4tLTDows5;(1&4Eu*}=?C@KC-4e^wUt zidqW$M=vsuXhF;YMe-)B4LE%#qqWf%NY(#wSSG?8{T-~l+knHi7rgQBAd~+NWTYp8 z{`De|7!H6wJq?KS?~wYSbsL9;u(|j}{3Ey!J`)Y#ZWj<1;yxiHM&duPZJ^Cbf)(a2 zG8@?o^X<{$@u9cDyue%kBcIK?33@&w-5p#J&R_Pa_OZ6U);x>Lyv97thENH?nDJ=C{eO`+ytMJq!;^M3nS_e0;hU}k78Zw`M2;zwWM0?I;5 z*-6|VK~-Uvu(qh9Xs@WQ_`3M0__sI}y30Mq+u%zQ3KO~aYzgy?dB>~*my?xd=@XQV zJV3mM=iCpUhBw6J_#-SI?TtnwD*k?Oyjy`kQyt!souKgf1uM-9$m#wsZ8i+QuY@n^ z8t{7NfnV?lcwG6|DA4M^f*<4YIN}`9iKM}QyccTR!*~E|2vfP0XjfE*ZbfeK5Aa%r zr+`{IHh3eD<>&lEe3@RKC&N9%C3U{Hn{9n<<<`zn)tM}bmQu?Bi`!gmQkrHPdm0-X zuIY<(Wfd_MzoE)~rnP7v>RuWyt|KJ$BpG@<+Y!z=j|3Hh zctJx!f1yXXP5e$WQ+f_O7#GFeL=6RA_B)#h{ft4dJ0-GK<~d!DQo+6)L-Zt6#7JU3 z@dQ@K=jdnnisFHxGyte#i{N`HgEwR=_}o#TXZ@FYP#f+G3K;^YAw@o$w*b0NLy!%i zpcw!ikb&T&8VCpfi_HTM(s^_Xk`DK!IQS`T`&o9376T}K@h)PB8#d(q; z($mt$(y0=QxV`u?>`JT%17E`f!3*vgD`i{4Zat5}C>^<)yi6p4-)|Zg1#3$flw7&6 z%e;f#cq8yDRsu)I19=GfkRY)O2qIzNzdZ$F(S6vfoxDomZ8w68_7WmO52JU`Oq9V| zgCq1N2Kzni*qyDpo1ys}nrbXHY%|n1+|pC}Rk}$Py=X)x7MnE zZK`Qy?H3)v z#~Kg(;Hse#=$-!vmIMRA*TG+)77hhD;NVt-CV(qsInT>m#1He!z`0n8F2h`)9Ge97 z|3EkgoFP6yU561N+z8*&KwOMp!XAQ0O^$Ttzkzg%8DZcF1`7g6ptFB~ueY~~$M5>? zeCv=q2HSVoj#!H=U0|*40%zw1#&3oJh8l)KeIxx;UHyuXW|t--5%(gz^NMI~%f)(dBti;i!G68oYO_qRyfVi^?K0aq-7r)CS$9fD=~MLE3}=m(O;63gEp}^y zy{$9P^~W>M_r%{icrD}zcY#@D4LG43ffM6Sb`&QQ#0Z;+@KKt;9gQJJtvtg1mxytp)!PWQWuY zHwK@>Sg1>X2hd;~{GJB>jkkf+02|yI%nFVN9@cbV!Mp_ZP-Eb0)BqBEJLD}QL>-{4 zw1fV-Dk_3~s2DN=Mj&7L0ysnITXwLz<-5~!?TGiRDGr=+mriOP$E1gN)(q!j!SpR+RBUNEfkFvdlX|7$K}K2 zF4+v3TiR866239ewuov98wz%Fx7kGI61@=a%yMEPxT(6L|G*Wn{4ww~oepI{ra{xd zXMZ=CC+`LiW~%qS_YXA2T`*zI^JaQueesZWatZX%hXQ{CJ%ZNY4&cS*hlc?VP!0Xd zQoa-N3M2?09N8tXPTv7SA&(Avon~7-)S}-GhoD6)!95=vM2V>+cw*7~h%@%N}bT`yIze*BZ}P?{$BtAaEvm zmylD~a3YPoPd9+G@)JR%sJ^(eWRCQtY?FMMVxm&3{H)AV3RMr3W0g&nt6^T&T^1t^ z!i1`?u%=))>!MSsX=GcX0ghoR=#_1NG#W3gCi8>W0~-H+e?M>-fAQ&kncyG4?=wRh z#R`9(zjGiq7=-`--tZRQ8qi*0Xb3%vt;PosCy2k0jxvC>g7fD-(TVs0E;Jrq8~X~* zR}}PRb^lXx22a71`7qS|I!}`OzU#1akfV~Fv(eT#OJ#E%QxjuNI42L#HLhr-y`-t8 z;cMD!?rVB#&uRx(^wtg4lg5Xp6P6RU`;IE^R^B}S)X+}eEo37$n~10UjEP$!Y%e}5 zxi9@LqZC%fb!CF8P$i7G7;#AbSv^JFN&PLtrE02Lt8A$F06q-2_@j^$WU=*`LDU79 zmCi+*BaQhQaO4U@&4aVRT|&a1(8~AN+uPgMyUv>mZhy6}ns2J_wa?_6_%)#G zyB(BnI|J9@ee3NV=egiM>e>zO1Zsa~by`g3$0oC}p3$z)(#7byR7}<)+DDo;ngq>u zZL8|BpTajasdxLk2|60%(ZinQcpYf~YOWMS47t|456nB#Lk(J1< z$>SAEm336tRc}-+Bfdm@ju;-1q&lE7D0PZ^@~yJg(vY~5sGgt`yN7O0&478A6Zs2t z?`z>Du#Ua~cXC(%FrU$T*Sp!<#Cydv)APzB_xAA4g0G~j?}G1#Zvd!+5(62*E}^%f zqhSY+M$UmRxH|OScH?4V4(vG9$feM4nG0^Cb3`@b3iPczVE3SAz5;F|A0&UN!*_z4 z0#p6Ve7n5~o&$3ByEugwFmtXXf<$#ruo(zKJbI?ZX#7tLI) zq#~!{wXTYxyK$MxXU?!X>>XTbp1Z!Jz@YF@h$nl3`Qa@=m@Ia;fEGO#_mZYb56Gs- zkI4B7i(-=U2z)UcRh>bPeoT2%F;>1wW|rQ9Jy|atBxu5Jq)BQ6p~u#tV-Xwp@vWhD z;0^sAs2iB;{|fI2=$k+Z_Qre0yBdC#fLFbPZ?^B4ufo^X-#B0k90@K58hQ<$l;0ZM z(p%A**jJ1N?^PQ}n(0GqAU{J^%UtR!kpjABE0%zN!LMKkk;l9f;hiuws}Gu+Bd)71 zIrN=6I6hkYn6r&rj2{hU`sup!6+g7iwW~Dk%hOA{lx!{jTI?&~${FoP-;H01y<_2*aYy=tizVVoM$_z=f4DM`n2xD|GOhg7bfU~`Fo2|g81dzk+0NVXHZp5=1|>Le#5rKHsAKn=C{S!74}B9>Nb&Wn7tol zmdtTP+n?I~_BoCj4!M1VwWj%r$ztkb-e~G+8gD8#SGG5G9q=T1Q++)G$3w?>z0ooF z9by_efGEeKiPJ=V>M3;QyF>ptms|oVGo#2U#4GrkT`&jjNbjd_LBIbQ*@r^uD5ewB znfXY+quN7m%}A;P8GyWi8IW!93w(uFkp6J0NBN1s#BxDO-E<)2J%h|T7jW3#@H?V+ zQ6H8DNn0q<2xdB6K~?^pil+v{jAt65B*x%bI8Hpko8g_Hey1VRY!BKQ6inYi;d~y5 zdJlLb!@WXzffeAH+Zm`6*ydOIws_5+dfqlL86OTAQ`Ou}+_j+BWP|*Vzqa+Z7Iw~| zbOfMBx!Ka!5@#J{OSc{|$G}OsgK?9-kM3-RK_744WAE(pIuZ9lPoei|K)^F$O{r1z z61spaCvK8&>2h`!H%M)+!dxJOm-rej_f)(CDTj} zRRVoO4d~`s@+INKE!b;FHQ52({FTs=ObJ)vRSrK2n0*g?ll>h7{@`yQAYTf#MpmJ1 zu@6WO^f=LuY{%4KCcx~-My5c@Q9aTQa{>=^B1RGSh!VUOcsdi|%zYG6Hb$eL`6k{J z{x1Fu;GGr1yx>*fbYL|o1{V1Cc{_REd)%H?oP=ra5n(S#IJr^r(BC(H{bLe`axo&{6LCS(g@C?r7@!kU{0zW>oMF^ESt@Dq63 z`L`fi== z`8SZi=vC|!;f0>#0L z_|X8!seqK8F~mobp)ItV4$vv|U^)`Ah&IzNVAduee?!M}6p@9GgkIc!=wH@?DWnzZ z*dH)gF~NP#2b%pmn6Oue&g}@_AgGGlcq@C(L;jW4S=m(u>e+A3AC5bAm7NbsLVCwQ z=K)6*dv9A0`#JkC#}`K{$9ww%TcWkVl4Cw^erWz-{%*Ns-D1Dx&^s*7KJIhAy1~}G zXYj5sLu+6)h+&ZQwU_ElAA$*bO{NOdl%7hBq<_(+^b01DH8QJdBejl}z?w6Zox#>% z?$G@iKTHxYQ$rvds~7a3&%t_;ft`fhHVkx*llb3xgTiA&39w4f1IO@+Q2kKX(8*9` zAiz%Gw?vAOW{?a~fK?$jlP)rqoJl@__XvT0-#+Rz=^=i=s`L;?@b369+=J1$8CIVX z;D&Am#y4ak@fL>@g6*K1yWrpA|K{%#*yBrvM2to59+05b*nQfqbWd=taT@H|_G|Vr zj(;3-XEWDy7wt^89kexcWV;~k#kIvzW?N(9Y*nmnt&glNY#z8*1I!`IZF^;x-@VK8 zz_%>Og;(*8^PiwoA-ARlbpvL7N=Ts*gRbBWO|bphC`kP%hh(%!c+MTz7Hm4qijt{I z@Fh%Re6Vlbh5Nam;=}HGm8?hB0_RQ%W`Nu`6J(f(_&LDeO8_1Cgb)`h3r>Iu^tsSR z=+P|$mBvv>D_e+)AnR!kyeYGxit9rThvcq%WGylZ=HI_bmOKF~{sHj262wV-1U3Ww zhLeyWPYyn>Wd2f^r*#R%fHPoha7J)dpuIoKtMaykZ)};z=>9*FD}K3JH_3K7jJ>$?k)-O5FrV%t+Qoj&OJ=$-JxIK_xir;Kj-{s z=gP>EXUVKtv*da1`-G>h=SNS9JJnU$mF=AET{GBot+E3YY+ zpe3Ea9{X-}DInjR((ct%*H|@MHOIA`fCN)pb4fD>@81)3K(kJ3#w_~1s*uWxvW)}2 z&jH0`d9_Sb%;`wjZ zoqOIRVy(KYc??m^!#bWHyZvWnvA`SJiggGz zwHd3&mG~1}0&pesgJXmJ0y6(0raiFS{NAy6)8@PF*g5&dHOuvd>#Vb_vzW7!vyiJM zdhKDZ8P1u`zOF8wUp+6~7FV*Ph12agfiQWFg#11E9rE+@OFB=uzV)v5)@Jg&HT?5g z58sB`Mim3*B4#a$6-u2tQZpYt&O`K~^YK;{*OFSlrkM7T=DOx9=(|duovy-fYU8Nyl2>-xs!mMI6Ta=p$KKfs{ zT^!4gCrSe|<1P7+>VviLD!_6%03C0uvX)|)qAu{^F2Yi6k#alm#2zSUU{K`(Nvwyg zClLQ$V$G@~wGUsob6{2<$DL=d1G6y~>*96%JA7SyU6?uECf?Vcqn^bWM;G-pcBi?z zxOM{bZHW7$`w1`%S7GFs=Nj&A>e+<1^06xwz4{yH3TJ|Ig!5Vc4*czMZg9PH4RDut z_x0@bs{Lnz;oL4>css!JO%+iH8ZjBl+e#~N{W@!Y!4APWjYm^d+X%bd*_!6q(Y~dz zYfai(`1YU0-v0;e?^o5R)Y+IbpF&H}Dq6{>$WGIL!KsI zB42`)@gHeDy_9N9T_dl8A3Tg-jWwXS;0CM(7Y($AK4ouTAL!Ax#tPO6&r;7JPchHe zz*Xz|R~==$pSoA!3pdJ@?HcNC?%CnValdk9I&YwVU+c_s&TziT-;%#He+|an`&|{> zc`mib?w#x_99+j%2M+Qv^r@!^4tk#^fTnQR5+DGj;40eqx=NsVg5i} z-S)HrifeOE0xT4a?&j{k?(^CQYO^NxKe6d($vZ7^tbMb!dOb8~KIiBv3(Hs`FJtRK1iv6@SRH0c>3#yYyaQ zCZ=QFkO+3~vs`Q7AD`jk@W$2VzTpzMy%-Vn!!FcVvOal_Tup`1YS~#JVX2@m^H^R| z(Hyh(eECzkLD3Y5M5{0kJBHo4dszL+$37QBegSjP}x!-21Xl~W}^ z`pfthFiGBX-ru}Uy+`o9E9ChF2%4Gh4xZMYgYIS+SN`nD_iXpf@HpKvU{PLn|L#5n z|Bdc@F2Xg_xzRZg?dh%SnJe1Wz@6)E;cdq-zG;CM!3ucd?fG-WUFtXbrEIj^s!*cs zzk+q$LSQd;(D>CW@Ri%7J+G~=9iVNfZKhkSTd(T`4d#c?Ea|Hqqh&R{H9OR+R0Dw| z`Wx`0+RCTl``ra=-_OW_K=r*0B<+#>P3|mL3wE>BU=bX{J?9=k`^W%(+nvBp&L(u^ zS?t`s1`df6Hu!sKm28}>7H}LJVoov(JES9Jv#~qX2)$o8{gz^>OBiErCl8Pr*gGD> zEBRkJ3f37_(Vv$A=3hhqx4<|2j;YAJ@viVT^Ogdh;~q~#pma|3T=Wb^{run_<-P^< z+ zf0CkYGClBA{!|o)b|w!Dz+OP)#IA()t#*p;j;@e?F828-L#n=Apvwm993c8)F>*L6M3*;99bN!13sVoro^vNnnAm<*UH%csCG=r*qYSFk}U0S8Hx3 zERl_1CSMN>`M!h7vA~}o zOBjZ=Jf7@ApO*b7AEg)v+)J-2MNMJd;*z$fE>TD8Pw2z26Wq^m3A^TT1~c}B_v3D# z-l-d*O9IJh4a`@^s}?I?DZFx-d=zwL4A8^bLULe%P6s=T;Q98#E@(rUMwX8^a0!ro z!=a;8g?f%Rd@8h`dh!dnyVwIN3UshF{!C~-PGO#SjX>gi>Hfx@<(lM@yVj#dBAkrl zqvM2Qj^hVM9n{IY{NwqH^IJnthr~`!)BMf(_w$Q5t~;m>Ok1=L-=s-TkUSB%< z0f^=OvC0~WvDItfM(o4xRX6e`@DDp3OcOB(wc@cSp{2sKb zI>}<_ee`HxwT!^-hZDc$t}Rz{IbAqU=^?W%e>Mos&)X5Dh=f_Bqy*0VrtY;0&}sAe!5 z9-xL=>2K@WK{GNB`ox>nzp74Q1Z~AGcQ@=4rvRt=1d!nu1E1hD-l*r?LX0mPVO|%` z)k7QFg1)>4uu~uMt%wT*LkuH}P|q-WY!BqdY`QM=a13&+=U_F!gfUsFEDb27Gh`Kj z{IZbl2<(?`K)(uNPw@)>ma_wAb_;4~k3ZK}*tZ@yx|N|fy_O4%oSiP%n3Z zog3@CjQY5bu~Lllwez6!9**bn&j3}oAI3~!?gj3y9@ewXTbCIG%i2kSvq6?^%&#O8 z$tP4S&BC(iv|_EYqe_Fh{|HSqM%>Y`kvOX3bi?!;^!ezK^7Wkl25P9k-lqReS5Nm4 zt555&`sP&CRQ1Fj*9Cbl+QBm5uJr<%cOUWzSnNMwouCI0%B})6pf~!YT3icm5x0?x z=L*3x;WU`KXAzg69oU{cP3oYVunmYlPT-Iz&?24CR!XNXQ!}Xcz%DvYev8(#1>=Eh z*x@>Y(fvF&BUm?h6ljqBv3u6Rm(28MNN6z?M~~eY7}RaZ$NnRaE^*-4^J=dhIc7dEFQtqm%2)=*{}R`kwlc`Z0LVg1X;y<8)r_ zQLP+nQRCD{p+uzUP9?We9#-CM!y_at~8cxHLNM&FbGu7FkOX`0|W zR|@}aFh+`V7x7H+yzzYPz3&~sqycxmg`f2w2bgkX2aLjNLyKpE#tHm&t-7Dejrsf$ z>|ve3xb9-1O|mobE?YcZ`pQ;%_46Ch?v|Sb@s+ zegkfSYQAMY(!av*$L>T@U}~@g8^dnJ`~Q$XODrb8rpjWpds#LgYlQ~oJ>@1<5%mnU z3_2`4?BG{xZ)iVgO|Vfatg~SqH%@y{I}ujQcJ1$)Ho!+-peEHbp;g^RxkI5+%)+{V z4a~F{ssVKx`aCzF_4SVL&41*Ma+A5bz)w30&5Uoso6w0JjOX8j?THnqrR+)eHJidl zVUOJkG>O7MNY-*$>?@28PO;nBRcsg7h!~)^lO4PT#*z-f%0WlqELPpB2j2SU`zu24 zYm;xN&)~blOlI0LMKOoJ<=x?(=N;@F0G#X%-ltwA(-15s=a|C2A-+Fg5kKFb=N}m; z9J~=6!Iu6sqHRfp12c9XH5qtISwMdrjM_M%YzDo*4(eO#3b2B?qH$=#p{LUT{cbaD zb*&9HTIVziGz~OK>UruiKv$`&x(HnJO{j^fXeZ5~?^PHWE+3&2>A-AOPpklU#0zdM z+K3gF2pfTOGJx&Njsg}>U;GV0P5g#Zzei2vu_hqB6#7&XA5lBE+0*P!=(BW#X1Wnt z968u~`#IPVY$(pZY9h+N&|d{8_gj42J3%_C{JsP&RKcYpv^s1Tq z%mn5LWA=6T?F5C+Q2!Huvw$P84!CblurX8s1JPrwk~fCc#Wi}OtPVIONBtm^g)f}3~QF&SRwJ1VYbd=#kjbGM>S*VHYf-)}WMY*_9~mP1Hp^EFLo0 zkE{kYW6~IBn7cn*v=iuYc`d ziy12k+lHTDBUaQGWZp5ynDs#0p25sxRx*DuNz516(>{)xsP12Y{o6W$J%KX8!{CW| z$F2t==yh0H+$9E)a-bmDF_J1Q+bgRNgfSZ0Na>1FVB!eF%v`|tPX>ZeIdxNYm|6u) z|9j9H9j&UOic$Wg3|Agg3{m*yyX2kaak3ww+xd>31Y5>f)QBDk_p`~;*pWC+^uQd# z50s*HV5Vq?uXbs0-}pE$_kl~~K5{PnB>@lT4QlN%Fn-R$ECDwNr z966`)X2b&*qY2nr&iOz1s|OYa-URf){y>_G3pQd8L)&Zxa?=Z%twquA@fcrSC948= zG7+$Eu(kY%ovxThK{90hF$J{0P1k|0S>IQ?Xuj7~iT+KtN_uHwW>a)q$m10`{kO zVCTAjuqE~lt@r{x4jc+B3JeK!3bYI~4>SQ*NXdW++8~O6F;EN)J>#*)|0qBQzYb0d z?hQT+W&qi@HCo?&w95|MGVVU71P<(ZplNkM+m0cM;Y)awbdX_C55qdX4jL6v#BJgh^dt`uNAX2Ih_B3V#CBpm zu?iY;Lr`a>p>z8fyhrn4BT^Yy!_T-q=$E^5RX8_#m~}v5`hr!nIl;TZqro-6@#%sZ zss?PBaA<=#0%?JSz}rA9w1VOTAF$7@3sw()3*@(hz%A9GX1`|_vuD^;whY#O|KJpS zdwwl=zs#7?%tG5v!1_u9VB!BprebW+7D#ssslymIC1QqWq)oI1d^=`vK3M3YuxpH@ zwX_l=&^#(0HE|dkd84T&u(i-(&FcyIE4XUrLI-~gH1R8wGVr-P#(wZ=;w-d8PZMWQ z2RAVOKSpeZM%&M5Ge1J_Z!~oH2ZE*O8))*^!@5REuy4t+FZ~|7j7Rt#{4e+h&xO@Y zb67wqV6*TFs~#KiJ@3uc;fmqy@}VDkgW1?4^h+1;E^I_EwH#lwQS3-|3cCokw+Aik z3|8K5AzU)_Gxb;j_=@Yv&B2PmZOm)(t9yLrvgwl;d3yxW)wDxK!}12^@mY!0Yx1w#jkeaEr$E z1^y&z<5zwc#>2Dt@%$Lf5(Z-Jr!i0`%^0EZoCmvtkMTX<%&o*MegSG|8rH98;5ZY1 zW4WQ2$#>;Csy@~N7N0h+M z><}R92^Kn+$UEdC@+J8OYf(?h=eT-~^EL7uO1mE;%JtagoZmu-iPNXxxf+_hnl#`{{hQ} zWBdWMhxr)YPDD>U7$erESg*HYL=S`q^uSO4D*t@UKY#jE_E{+V9Q;j0i3f2#@J{sr z>emn4Xv`)y0lV!6dhKMerO7bIsK|cscZsQrNAF4@Gb(pV&xg%agTccD~6vBVe!?*+MHUHp{QAozsRkYorUr8GrJp<^hFcqRH2j1fvn zs2TB2ER`rz2pe)0QVfgK~};1NY6tIE46wlUGa&FaRfKXU6dglg&0zrVtGVADZNmff}up;(Az7? zlfp>%pUW0weO_x)Y9T+V)RGJ-S7LpHN+8AvwI(rK=-m+W5|S&%6z?V3AvY-%=?R7I zg%}0%B;{Bvo8(h4HPJ_qAf+aT5>pf63qL7_7)A;ix)bAv+{Jq_o+zQ9l#o2>O7s=; zARR+)p>#sw#ZY2tg?bh1R_w#1@WNRPCzV{f7tfO4e@&^Ngo1IT>yTtohIka@h;MZ$ zoETE@5!|FFE}lhK@hJ)tgrAU8F|6n-xP5*lx_s^)%8w9MtOemp2qpYN*MeK9)Ilf_DY| z3)Y30is&MSFX$`95<-Qpg>e7A?4qx9{3rR6Ea5EvLZPI*hr$R~QtK4+@$X^@afOi5 zQxWBVF6r~Qp)!SPQp}4GPKqy`1-DR6q`0Awp%{{z5L3vF5KD9u&Y={z3t_%7}50jwmA}Ux+Ws{db|o zw8e0rg8x->Qd(jyNoAE}OVR{)sUAhYf~`uBC&d)g5s#rBQMeaniTM;|NU4PKBZm6? z{!`RX^(MFrQpB8ylEiy4o{-+>5~LVXImCN0OsMUMQYCp(dIepDc;fHx@;`4MQXeD6 z{alh1Q#=bf5>xz3@L#P(iW3Sgg%V?ga`AUL{~RMEub>>U)R@a(pwPfRi!YYw$AU5^DdJf; zO23di;Y!SD=qQ8|?!=#TCHaftCBM)(Ps)enBb+7K;?K(i6_1*r60f*U$4PrX{+GAtl+8j}S|$ zaY3qB|DvyWUoek?yAVVAiQ%MYCb~*)V%Si4@k%&KAw8ImJieIEOBS1AQamXt&3UJNbfU$_?iLo$SL z1>aRMj3`yQ7Q=`VKbI?nD=0yXC#50XiD3j+;cfl997%#0OE`u?{8v9grkJ916vInt zNwGh_|NM(2NC>q~DWu?9P?q5S_tqt*9m<~+L(GdPq2Rj|3NNK1#ue_wIH7z9wG)yo z#guYXFa~q+E(Ag#1N!DO@PeQhJh)l(Oh9x_*8w z%9M^$ypSB>N@|aPk6$o9Vi|;^^pji)h7u%*VgAWi^b5%l?xnJQ?kf05F4C1G@$YE} z`S}$5Q;bk((M>9o=q}2Xj^bI!fp{fJlH`TrhOQ(z|Me_}DJWYABeXK1g-UY;!6g(j z6k2o_d?Ys^H^L64a29@&yAVS7Np9km6jSsO+{AI36f!j960fB2A-VtL@+slJ^7Qu< zL+Oe+k={eWT}nfe8OoL9BAp9LmGUZ;Obk;nozLY+;X#V2u5cfUCFN5LCDoW9LGY1kM!X9h1%L5Q2=#yO_kSCjf0s~D+W#xp|C3VvPs0BHRlfgD9{)RGg#7>K zaR1p?D*wL^_3wS8xc}$Q|2xzE-y!SY%lP*`|L1Dw?~?yt$iv_B^#9)dKiASfyNbF0 zPky2Dg+hg{LcagqtN(7?{}k@O|NR&B_dAMYOSe6&bh*nzMr5 zrl?IR=&K5PoWh-;O{;<)D`;Jz(`x!lM^n&v74>EXJz3#j)UXwGXwA@o)#FbKS0T3q z5%{FlE7q-`k1J^C(*M%yq)}c!Lb#C=5A?CKz|1Y`13Ta%)UOk+c{mFpbD<}ki$C|L zvbu34grYuak(y!A@D*$mOCz@yA`B?NrJ=uEjHm#&N`&o`*0&P+&=#amAcrNvG+6YL zwyznw;dQ`|Q4Ltz9bmQ51y%~xq4VsAmb9S3d>eUELdJK*3|MZ>g7rjKqC5D`IuK2e z1_4ZS0@7N-zc*Y;!6g$~(LyQmQ35A4%ReA~F=$eo@w8p|lR=-lG}3Pcd(-2OT&;+OJS2xxfo~2%YM^(8YfSz3T_S`q}_pYaQ}i8yenn)N&c< zx9h<#b^(?zN@&q{C%%TPGM`e+hNkslSiUjPx}Fj~-Vl%g-JgM6^nDTcDuK)rs6d}jd5djfLP8WtH^;7as| z-hCZBjnhC)xDHE#S)7l13XA9@!U0Q;fzaVU4;hca-m#mXgVO)X*M%*igZ~-6OHiA) zQL6)C<#CB{5?=zVxg3~a+MxD&poSK~mg5cd&WG_G5oacz##~@e)~1e-wTQ{k?-y#i zGEjh*!E$FAp0y6oX&%uNma95SMhztw0f9V~FGk#i-GiUo$S)@zK-2yN^z>g6HNYKm z6Sn8wVRK##Rt^N}=^$U0kAnUAC2%(#!h0rIn$*T~zDn!?;zMWX?5oIMVJDgfM*0c- z6aFhA88#KQpyh3WCI4b#8R|HPFOBvv3l;`7@$~j0=PS|Ebj4F^1ytep$WJ~Wff~;Q ze!}o^UWK;bgcuB4)G}zD9brw-2lfS}fj^lK8D_8!I$^ug5OqePjjDlZ z*$7r&4`44|3^;LFsPCFY4BrBF4g2`T;LP|P7OtC!M?@9W(tSP}_0s?-7(y+b{8ugg z$u+}ufFFcfs)crU9Tp5qSbEiiRl_l2CI226ZQtVw)dE^XExtJHRP3;cSW8TYooza5 zsU$HPI2#pUrLh23DHBmED_~RGmJn*F2wLSHA|I`0CoK5Su(e=$@hiWO_yM?olSnU- zfzp=a11M8Xu0EH`SBDkJO<+{^LVN5$4H7>FRTi~NC1BetS#^hb+723w4WXr+_Uzs%(Kz_zLfFp}bkA7R@f zCrLb~FMxZZ2To5X*i2~AuExNk>j+A8fV%)oKd_(y=K*~MP*U!o4Xq|>!>arnupJP1 z(;5-|`AV>m?GMZ1{&=?)Rg2uub9ma%@%App z+jjw};Olj}tMlH#!dF)jZgjIfG*n^D>b}Itlc_+-Pv8eIZ*QOC!~= z1G7^7fD+Z4_V5+C$>>Eru#fryoaY;1U%eiPo2Btx*+Nw0qu8t5HZVuasX63Z-o`H_ zh6AlDoSH~P!1Bk#RRgX_fP2hu=BIHwb`B6Zj<8H{G`AZ3I30&=N z;>kZzf*0tEl89Qs1Zsyk<-z%Sk=;WyBuV}vdm{Kfm(3>-Ct+WoNbRMskQu-gc|=VC z!{G?B8=jk&ccWKNW<9_lU(a0x>UtHR<>asg|0}gwwv?_)`OuPz5)G(CS+4vMy$&e# zuemTHhiuR9U=!E|yq!D2_6QaQs%RK7mj9lx0Lh&uSA*GVQqW8cqORj(y&bsrOSr2< zLpnt^jh3^M{LQ##^gcyN#Vm4K@O@x9TbFzRJg6{gFxinW!xaVo-8{VCW?1kViCySb z2XYsHd`t6_fj<&Q?&iYS=G-M`kZ^4Ga@q$W>fn zb_2fp6Y(u=539gVWF8$yPG!#ra)PVT{yFkI@E>aM3)s!TN|%uapme%n5!Me+WdWPT zxw%PPChXTMfcd8=cb`4LKLiVvh4jIqt{J{Wld1c_yKgNk&)*5UgHH*I{D|s=qAu}g zpr@}W8&6J=eM?7kJ^a0VZeZlshlR5~IGCGBT;yM|^Mh&pJ)q_M0>n!#`k_C_Riq8r zm-)aIoX8#Ib`TfQgH+|-05zx_H;ayy?W9^0tB|w#M0xPf*kr9JimFGt`L*P2YB(i_ zjph|nPW(b1mr>MQ)QgE~B?}N&f-3{vIWPTCK8j*EJMn<*z#j_C44A-1evn#5Eak?r zXM=?UYXdHJ3pJE(#|`ig3yk5)Qa7mCe0#1DRbNqC)|US{_!U2eN~U|0OSr>qGw=`0 z214gfqLPdu+q1>}O9Qis@$?$RN#I(L-Kq6N7TcCMOwW_)=yLd$-omJC7O{griu~4< zt)!3gyJ3A=8r)vlySH=)mgRA~kOCHWb+#}oZdjit}c77;zfclA;&5dMF z1zG?2KmvP|+C;bI)IcMs%T1!1(+)vbA#Q+({eH9$Z$54Z0KafSa)@&DyW;(F- z*k0r``E@E7?BXjQ$Rt=HMs!!Q2tSvdz-AG=>VS<(TZ)6*~30;D^4A#i;Txb3YEb7nlCHY${ z%MXz$<#UK}+(&i|agXXRzb0$Rt@Zuxufkml&I=4>E&L2_K(M*51vrjda@{C=tT2md_ z8mK*SViQHmWihKJ2`a-%AvwD*<`y82=#Hifco~$al#m^IHQe z0;`Z}1}u$>Qhs2x6vY^;FF71Ib}8gy#Szsq<*(GOpxLiyzoXwM@5*P8%V5Fk4|ZXT zl9lO?LRLdWm@2)y;FRYHK1PdMaZ?(ETGH;AX86W1AE0- z;sF&YAE=xs?@yfoYR?P#I7Me!VKR!k1MJZyvLfC=hie+s!+#^l1zD!ON69n-cfna-r{KN7$>0ulQeZ!m@4d`6CUUuNi3L;+Uy_?e zWK*TU1MwJq5jNUNeNQjM+-8BS8@Qt@@GZGVL}P_ar`34T@bZgQ>7gPPBZKbKJE~k2@pk*z1$aS5$8R+Eu&U=D66MVz&3MTr&0Kk`` zy|Nto1-S(l|Eq}N^0tZw$~sg@u0Gq4Zy@ifTBmuSb}I9zrLwuI2;Bn13PVrR4ui?q z9gON1^*s7-rdQu z(mBL)%6l@<7N~_X?pyzI<}I_BTPph%=oAaVrFvJP0SfsuWf|>j<2=hKV?X^;{ZmsJ zYnJ7T>7g;ttguhCcQVb;buzp(#h4qLrs_5;!Tqi2q-mynfN#?t>LA@lei?XoH}UNd zEawTzLLVZxu!%mmcZt6kcuJQrdtLM0m6AluXxj52Id7vp=1{3H{Zs8 zm28RkpzEchx@){=x32{A#@Q)%W9}4ZxZ{VM#UJnGMmd*xe)m3bS9F!lU*fppZtFc0 zcul+^wVc710ZgRF!Qrwhs@CdcpzSsQGIK3?IdvIRjJ3IKxv`Uu(w8t_w{^EawXU>Q zurXnC!@8IjY6s|*=J}TCmUD(Png*)N3a4@hP@eZFZz{i*UnG9!ejyqIPm>_Wa9i2# zK=B#F8UtVWUk1tsy9LI1+j+mjauWd_*;L@}Jn}8~k7h=DmUzecv;8l9TfFl<^?i5! zTLXXkqJ6i$H^4$LAIw25nC9*V&d&L5!Lr-%V_r^l_R#EeS+_p!&0drn{c%9{0QcHp zZ=w@l%sSdl zwZF5pG)@4wdp!$j2?HBWIdhn~hk1(Lq9xP^HLJkBkftgxA3{C{$4xZ8|GS9Q!Tt>4 z?e43MdE2Of-uEk5#S1fK{7e1g{6F9s?eP1(Z-F&s@v~r=UKrT!U+v!x?5ajgCvSP6 z3{Cg7W8S-Z4v)cHQEW9n!4+n4~n7mV5~`8BgQJuDW=dV+*AMg zU`1{%*`0P_EVu}0DCL6PfPM4}yWQW^_p{IL-w|j8jJWo`#_s8!?*cz!*1!jSo~EvW z-g00k7~}md{|m6H_s-7FshG1j<52pJ4>vO&q~A|lnlcH0QK?hYYh;eeF*%a*lCryf zjB(@z)=|^t7TH+EYx<~ip|-A>w{Ejuu+oNa4R+H->v{V#i`r~83^LWWeGF@1Uuzhx zS*d+uw3;7T#+#!JkF{RybL|f8Z2e@zLwyC+L3ur}mr+1+dm#@3d-Yq{Gjc1po885a zla-LQq}}93%n(oW-(yDp1`L$hR3yHGv+3@npC1T3B_F$oGXf=H1Xsbo&{N+v))VDl z8npS+T{m(!XAjEG%^veHn30qIE@j~Rb%_TO^5d%{Y)-hHFePqe+{wh$j1_s8^A&k5 z@^(AF^)Df+5(~Ht@}pK~+-Pd4JEZpLw_7UP)>&&<7Fx$gZit*}?`q01@3S?uZw=pK zJ8XVoaOoEsn&>BihcjDuP;F7lRmW9zz$~GYSEn}j(jHF6L{1U)VIMgaa-k=4_BO3oLA0JK9|*_fkei4!Cbrzuz$J& zk>rZ+jC-G>UY{pph(+?$=O(+)kXWXjzU*i|XUXRLqJwEDw+}@x1U5_B2bh>7qHzo>6F1QD>3u5m&;D;X}i|44-am zXDwmtWc|r9$fPtj(LPqEs=@87ov9wLd=19Jxw7KGJ1R{5iWyFKV8ZReymWP74$y0_ zg6CobOJSTyU``e#dnwOV6jzK;S%4Q^PXA87Rli@eUo%@<4ybHTwQV)M6nAAq<;~_J2JpQp;t}M5D=Fs;K65hvuh~4^bVpOZB#JAO=N<{q` zRXDb6;^_C&QjVo+GxHpynYV#i>=~kse2;3SZnp8G`KYaioetX_ek*c)VQZl-ktM?y zN3M%Zh&&nI5ZqKteuxa=e8Lqt7pd!QpqSB72StKh7YJMZJkPo=Ao`NR8%390dEv1{KAj;b9M z^R`h`(WrG%A7a#rGv9YeX_h)921=Vq~<32 zVv4+d__EK-39q-j^+p|zZuPEuOzng-$p_P4Wev$*l4o_VWvj?bsLHC#fla)-ewaxa zRxxsaq%JUlux93+eh2l*_zpQS!x(->z8RKsk^BcfqA>KVhYuS z)DqEHW2J~Ru2XQEe_Egl`#SivIitOfAj78?8X(d}Rt)j#^k_6TL;#NgW0D_NJO)s@aOtbZ_D*F#LK2c6iIW9C_w! z`NvC{dFi&)U}EirN^wi#_QmaeclT|HmpRX>zVN=88TV^ac>3gwDVcq;ntn`kwD3pD zhN&+DHGPq)xc-W9xaFaBS{NC*B(hxL3uvFC?bq!p`yHDuEG*(-SaDk+Q-bay@ItHT zFKPR0lEAQggdRoJq@Gau)H9+Z=G$`vl>z~OHGfBcsz2b@_?9vOW(QLu(4OlHHqy6P zgFHb7XwYRYQ!)cuq!{VmlC zTwzS`rvIwd^)LB()om@@m*uKL?4g37d`9UoS5I^^oa+O zyeWG!+vfe~Z5W)v{uCU`)scaZL|@ai-Pqc=+O)v-tG%6ljlH5h#{Qk{z3q%W$+pp| zwsy2kH?=iYHPi{nVa~_hlt#c&NuEBOsn8%wirECep^Eu9+=$buBM^ZD%Oc%y=<%O zufuyr#D$-+AF@}rp0V7qCR!p*3HpYH0KVXpRlg|D$?M7H$eYS3dI#^ojz~kk80P}# z(O1Dm!3zFHOdnwTjqq&>-0|;Xer8O*m&{FnDUKqOu#TBcSCMZ}*49Mozch5!zXDfY zu5py%v2ldC2xcIw4U-HOeKW02qfuR#50#%&bd}kN!dTBL8tB5j@@{bD=0)W!$}aZN zoY^45m;QSyoxD9EBffURAMsP-$Hnc4n;ySAet-N=NlViEWF_V7bo62Fv76};KzsA3 z)@i318(Y`dXw(*`~8UU@j3Rj(Hv8tIa zU!^LqD{Sbi|3TLq?CAH6w@gO!C37j03iA`QX_wxrYpUO+eXEL9PEcKt4<*-w19Avk zG*BBH606LT#JF7mB;9o96ObMu3P0|))({il81d~>{+o(-Sy zJ&$?IF=Lr^zBhp;++HG?x++_s=%{L}xvGC+IBY0u=wxbaPBdLNXPNe!IvFQzz-?<}iA)aeWmNWBm#_M!G<#|$WVpQUs zgw)uSm`AZMV^wiPT(P*Y#2#szvrjuByi}kBQBJN_ZPYZ@Jus{{O|zZ|qazXpR>ANy zVIDhg8*blkYhtTr9dGg&N*J%}7iqsy%auFi&t(JT$@E4bb@_>%=x-B&`}Ks2W4p4& zgSRj{ZSAj#^@h>j*WTUU65c597tB&7+Ls!LXD{*9s2v#d#3_08&-#OgX@TvJKoR)f;e)-c~d8(!%yXez7vDgRKGQ!Jup@~Oci{@y-@8RmWD+?%%~XK{Aw zUuES|o+V``zDt~&kQVzs=1J`1SUN5kYmJj9c1+ulz2Bkma{j7BV|ioMK206n5yN!T zZ`L9x=j-s25sSjtg>?^WZLe+bXq#oLYIPek42_LL^rf{E)g{1OH9@vdzMuX8?7#Bl zb?hGYC7$!^!1q{+`w&b4t0oc9_#S({Wa=>6ynlGUV7_FoF%$eMa0QNII}r6`neq{e zGU_8bt>KWqw=vg{VR&vDWHnjm8E@-P7+x910E0e9H$it&%V>IN8mW%TYs-$2)40gM zS>G975hl`I&RHzql3O?XJvcR2edv`|DAkhEKY4PZHnDH~__&nVC2_j=ui{H4$P>dd6I5%a8+PkCd%7EeubLmrP|XwC#?a3V#&-XGFApx#f4uSGEkxDYM$L-_qTn z)N2htYk6g5#Vt7r#J-(i9D7Ja@!t^xfDCt)JHahxV}g^|n(V&7IlmPgmlwdHwVp9} z&7M}wKp+-p1#&U2ZA+e_D=NNGeW$*uduLc@8e|z|8DM^7xQkVU=9a;hFU?ns9Svg* zXAM8;>+1SyZ>ifWzW^iLF}es*gT3ru;mviw1_JO9hbb>Cw@6O4k1H}peTYt7@xFc1 z%f#)8vGG}P_u@*${Tx&BUEI5j_+F_SKMrziVbcBOxTdsHHA6jBZ8VVP!j=h^y|%gb z<+d`mfwn%j>gMVux#g^RHt_6=n-=Q3X=IwJ>hX$GvhQTq=pEEV;PagXE13zL;}x*B zc?9@wZ`i`@+Q3cB&O3O6o-y9TOl98}%rvixnZhjcN3j~p0%q=&3XSHa?oa(wL#DB) zxsLgnrJ1#@MQiD0{?6RWqz23S_ZWwLZJ_i`bnP@_RHv1LFk>1*cH##I@A=v?KY1&9 zX1l&{JjgATlm4-7*4c~^=}9TN_wSR&C$&vj7F#!FSImakz8F`$h;N_tLt6Qq((Y1z zGgnjQP*np)Z%J*KKEp82QpWz3ZM!Wl%o^U(df(K~G}W}x)ZMhlbkDF^*F|?mdsx*} zUJHzrE-*q5Cl3?tv2U2kmqrUd2c*@v;Ip_NC>QklfA;laES}n6B^n1@*&HzUa?Emn zd)7!?BEw{@6#G=Qv>rpgDb{?>5@R_7X3gi;d$y~XDRi_(TmP`EG>D(Ttzc=)jkT-|`&NsB#r!|| z>i8Nn(>=4jBy-Pm&QltF)L{R%U;?Km>{OQQx-v%%rc8s%G}m0jy3{(+8fSS4PTJ}= zwXG63c*elr?bByVlX)Ail*~aE3i{YH6u)4SMS2<6A1QSka@@Jmm zS^;@_2yX!{Y2=ZA7~8rj6q~M`m!udF;#O! zSJj|5mM}TZEx@RH*f!gG!2FxJnRSBIVrgJ$ZQg2JXK?CE=!$A8sD~m8*1QY?|;lZqvjiDzTJjeh&)t0+~}-l*|WOjLuI z)k)2=$~hi+4+MOKOXgDLXjtu^`ccNi<|o#7w&V7p;5?SuFM>UMon@RwVY!dl%nSW~ zpyYq09jAIIpDk;EHOAq<*YtsVA^}?U=bE$HzIvN+ocWS9)%L)?0B`MBJ7N9a zl5SC37gH;~FOn{z}6Pghvp+REhQ?QGf4HVZq z{-%B>qw$vZTyb~wy!6atCiSfgMsLAh+#H-RPXJ2!+^^x3uDh>Qv$ts&} zk71c$_<8qXP3}6_oK`Vu-g@BAO?4FpqJAy!6W@+NIBVm+Cj8jdOi=u$ z>aJa*-(u=z@mlKIHrU46ui3Ng@54HUO%Cf4X0o5K_P5M6S2T^(r)YPoS1Z3!jHJ^E z2RkOPoq6KE;B1%QJ@^EPGY^Y+IPEFWAg4 zV~l>sa8El!wNSBGW~QG47c>tHGI@MwKAiuOtBP59=|C-iv~RrcEOXsE%Dd4sz@6wC z;_3-Lud3b*-=)BMwm*N2Y%Z&*Fk8T#P#WA4HC%(8^_+yOD@sfH_XWFi1BgkK4Qq{uRf*b}`p3pumRZ&X z)_GRew%zWs+rpCVUfW&k3Trp(3A5F-&+x7OJMCokYSk1)3f+lZ%XJKFU}}0QxyI%n z%-Nk)Ipbw|@3f5frxL5j`(um77LS?pZfkV8s48!Vzg_osN3j%>j%)H)c zvQ;&e5sH2?a3YbziFv@7?Zb5ossj|}=QEjY7#}w9cJ@31Uq+PE5uV-54|G-Gu1DQQh8t z@uuFJ_EDMdG)be=He_aCNxN&HIG059p(EsJ$_V`^)7REfVfM&Ih5n5EGBPRR>&Rgd zVPO=W^NEOo5u+jshgGv|Hf}d8(T-EkRNqw1QudJ-lZ~ewd@}nTn6#VuEBGq=x?>g_ z^qg?7cR8@@Ho;K@yhN{E9lgA7bl{Ibw_uPRM$DzpUYhdknC^Zaf?zNRhks<==XN#y zhGHh0Wv%5atJ2odw#hcoj(#F+n!UD7Va+l}o1S6L6RSy8-&C%aSENr8+gQ2Z>uCtM z?CsfGKUy;9q~A@shcYs86=EO0Q$>5<7LHo-w(XmfuUozC`R-PH#gx_=GqZO(UVA3_ z`*I_xKjd+$3~f(?%A9124(}RStx$gC(a1xQYa+Kr#6{eTtbkI!3^#q>Xxehit(~iR0_X|v$MwoW&MwsXWn_9ba0qebJuYlappUQIF36SIUhK~Jx*qp zzeFG<&=b3)52?5E!K%HQfG*2m!A@GfC1_h|uWt|7%7+aNFC6|L?0frdtHF|Ns$qPm z+pFoOKBXLpr#YWk$e#7p_Y88D$}5@U$eNeYC#}=_U5P)$SBifVTk4(XE&rzKo9=HW zzN!3n!rRgBw#2u6U*SWi?3DaWmyP+;f1WqUuBj5V9Sy6^mFx>6A_`qE6ex7M(40a8 z3$ul97r9)deUY+-4@ayB`(WE-9bis11oc{d4eeDh%8gQ72lw=^{3SLk&?Uh7vb;Av zV?1ZwYh9792xp|THW-t?bVY$bv4m%;HS1ib=BD^s|NtgfXSa`Y#3 z&#)ghO?gs&pT37Z6KK2z4+cj2KQIa2$>2rwyN7|Xu7O()&gkNv@t)@%BlFgGAM5D> z?h;nlw#jnjX;`1AqIsYlt#5>V4u@g6G1+J^{b1T)@*7tfmg+a^rfbjQc^;A{&>CtZ zahU6YG4@#Iu&1r-a{eE=FS7$#_RN_d+NI~GE>Ag|d?RsKLbrr7iA-{M%Kg+YKHSSJ zi=DL>dCwfTU8R^sfw}De;_4f~<4pU0A8Qz=ZnrkK+}gHn+uqu?w|2Mo*2dOW(r_k| z$ykrhuY11hT<7}UxsqnzB<fMP(WM9fh?_=L`{rN${F0rGuOR8p2;UL!q zFU7DKo{eSUJ5)-XC}i+Uf#`TaZ=_Da0j&>FMbA;6DVyYn;Sr(VgNpy2uZp*gdt6Qh z=M6`ueV5H@o0|D0V_U}hjI|kwnW>rX%(*s0);h=W>^IJTT~|Gaedhz+;dIkj=G1js zrhbwfO**sM1mMttoIM zduU3Bquq4FTgfH%6CVp2+|7@&Yni7sN%y5*08e}e_|PfvfNl)mjr^$o*VOvL*Y2a1 zp;d(w&;e+!JDN?bN3#i~xWCwCA{0TVn9ehF4^`F3FOjLTJPr5ct zhK2`RzQ4Sh+v1w)jLLRp#b#BpU$k|!ZL;Oq?%T3#*X*yeUOVbJojIM{H#|Rl7X$S} z&%;6aq?)L&A$QR=*fM-!@fxC;+@>q$A(qb8b5XUT_2^*C-q`oC8L?To5pKuyiAj#u zqD)a$t;H>FQy$X=_>booML~gUp9>Y>zH}pM3^@``RwCxYsxE=gK_xh3@NiU_4`+yh zN+D&C;)VxEBe>7R|MFtfN5aiu9WcvdfB>8V)NYul08Cv`jB*Mbe1__swdLw_U}COC z)`xS2_5`Z+Yyg(fwnJ$1aY26D!AtVkg8p5Fze~z7myz zxjbaPW*Tn{!})Ty(404OsZ0STH*KP7kxhZ&{t0K51R$+SD`EL6vUgUgjlNV3#j3PZ z-XqVg55JXo?F?Mgrok!fj9viP{!Q>r$Ry&>_ZSGrh74jcQ0e3JKImz^QJ%>+A{#Ki zeSw<(L*7KsHP=Gq=|pyOhv1l(m5}ws{?a}mtBT{J<7&1!=aj3r=MJzXxq}75uE;}W zEga($=pk%xM1>cmVMd>+pk*Rz9~Gku#<*ho#XgE<;%dZwk8OrIjE$)sJsGRDnWcld zEHaLc5+@$x8*y*p4||+CjU0zSH5`5zK)JO8mhhGAlpCT4a1KEy3uKBVCiPv7Zr$3MJ-}|Y{j^-aed>K$MuRk82c=yQp}I2 zLsqZFi>h8p<7=szc$443^<;O`TY;+lljsQ?W^S#Xx=SIILh_2prpRFQt7b-$P&=(A zp8~FTh$6xx=$YDBQ?zk7dnh2}i&KZFCiDWJKpHSB;O6&;dBrSdTEJ1J13eC_3Lh(Ez zv~d30d z;mEVdyGRrHC}y@dTzjH`M=qe<1ZKS$@c=#Y46+yH10FDyE(({wq0E^7K1u_rY@o|h z31lgvfgY{BRmLNK=oUh3;{V|t=!tVr%b}d_ar!jRdSE|jZ(~oex3^EV7t5;bXq){E zD|fTItoM@dcHnYoT;#N}8`!-y)L!Nyw^5iTS&TDKv&?5L5hX+`(T`)k#&n3?A3G{` zPHfBA^D%~)2GMh)dRg;WDw#hThZw3$4xuF?-%MsD-HPf!4nXH|5|GYz_;n@Ali)n` zG;%63H_|_HGUAT3LToQ8O|XWO;12&?9SzpQLhv`H5a>1nN)3hG#vK+q<7Gp z=zeq}R?0WBAlVA1?PP6(x(K_pe&j2vqm2TYz60KIo}%s=uGTp#osx55cD3v}*?F@Y zW$(x??W~+r(pB5t(X+){!_NeFg%(AMDOT;HzJRPx=Vv?dR(N{f1|F}9d7NbwIx26X zCP#mc=40gOl<3#d3!|$>kB?ey{oC@xY&X3$9yOel7Kx<=ANLo#oLNfu0Wy9Zu~z>_ z`-!_`zCtM*+p1P;Ix4V7r%ANzB@!p1TSd0&B4K4`H3BQSSP`;`by*_ZE_2?-K&yC=R3H`;< z(l*0XquDgXv=gYraxlWUW!`7LWFBpvY%lGX0&1Em&bcA{KDHp$^gGWKdU_-9OqS|kS6WtULEA2`dbqBZ=v*0{-M%@AznD1&g@Iw?ZdrZV^(uJDi z6yh;ihQ39`P>FEK`U7>>-{>`P*c?F@pl?$bDI56}{E##-QqJgqY9sYL`YcsZ=AaI{ zS}ukv*7dM0G(J2aTrzYus0H(d4g^;PtA*~v_pcDT_cKC7Xmlt)+>OOZB08nH6s&56 zR&RkD^hyiq8*px{A)8S*sj9RIBjV6W-oWl+-RvYTj@!YO=E`#pxVw#Gm$9SS%Iq12 zVMiN_S|4y_^=*t*oJn`pmy++O-g+NZ)n0)|)?fcloF+!1Hw!L`c0m2E9Y99JsRQ+M zgb8k$cfmBQNd5(^Z+9TtHj_uyqNInNO@5Hi>Pz_Av_Wo6Jrwej8??q?lz=Bg;(X8y z_b^T$O#0wpSC5jY(~OsULARl-;%%-YRe@_N zoZxogWT_<_5H=AOri%21IZPg6bNC^|YuzqnP@D8caG^?L+QMI|Ep-}Bpb)KpHZ512R%8Ml(0bJlbD+JiA3LqSwXfvb9Mx3Ad|gswaFN59_`8 zBGj!&6EGBy%PEml|BX(KI51oBAt6*s?jL&LuNQg~Jm+5;coMFJOzWroQGTd2SFS1_ z)Uf(etFMhC){#w!m*fDflE<_a`2K=SfW6PQp#6-S-Oe;-&%lGdAlr)D!-=TzH({Hx zotPU;fT@pIZUwp&0+UF~On!DRU6uYykEN$!jEjIt&qseGcTzWKhE~aHR5^MGPN668 z6uwTbB^~H^wZ?icfOvN+_GD3lQ5Wlr^mWJ#qL3N*!v*B&%8*DfbSL~ITs9QO$%Faw zPV$cS4{ge;N1fU>Blm zdPv>FSAD3i;F_I--|r&$um47$0s~1Ums9Vl3Dh{MHEz!;xH*5)>zHyZ!E|K&j0Ml< z9bEydB@-_91>s%)lFUtYLtnE1QBA+DHPH?!SLEDs*RTxt^)G>Y{@Gs2JKKB1y(Q-_ z=Rv10TgpD+*q^o1aoyR-WpyugCwsR9wgvZuaw1kWUAqic*)qBYGmTpzbQiaXcf}#n zHOVe5!i_mxY=pX865o?w&adT{@N2n-Y-4sCyPJK-q|znfc|Hm;n~&;6CsAhlAbhQx z(b2#_R)9PDDnxfIlSchTHHH)1-_&o21jbMU=-o8KJjYXd%UomTFn;=X;5}vfIK727 zBR*;h&+xvCLRX}_prSmIsI52BzQVIDk5U4WL#yzmP-5_upY|PaZ*(2Xne0q*EYCV= zPqTfnIc#HX&umj1#+>G^8t$Fm&w-xdXvL*{A*$n6xdN12UA{38Zvm-`A=CKUm}4kw zY+^JRE{HwEA;NraBfEorhLg1t+nl|~41lk@6MN7=uSPUO(oHZY8B7{mjGN7gd@Vk} z_2<5``&o)@g!zdDcFRRJ!B~sJQ+PA@olo)FOSPmFaw_$MIzVj$+bWszQx)jRbT#@S zd;%B4|J*`O1jo8GPzU)mR^2BbiVO`u40Z}s@Gtfrbr*MCbxzJM=s0Q@ZOb#hrnk-* zo^d{7x9vB_O(*U7>E9W87P0CBsEhO><~@6rpCA+v4@gH14-H?8MGz5;GnRzIve{5w ztR?K=E--H}lEYL6xrZ7;-=p48y%2fpSgB>0J9InxFg=aA&D3H?;5l{VMPZP*Rn&x* zLKD6kH&bcv_LO5#Sr0oT)i z*|(VMyVMryE@HZga4#%NucFUm*6(BAj-}dTe0$)}y%UI7k}8Px+y-9BsqjwDgqLM` z{eX5;ouCXw1hg&u+kc~*>z)4J=q_e$xBqUNlhHPPS6Z(0IqBQe^JQMPpK%uQ{PgV) z){jiro`E}Ch;?$yMYAC&Z8lhpWq}C#YW`p@XliX7W~^;^D@wu-?j(B~2#x~OA8=4y zMMhCq$+lz=F55L}H{N$%x;ajX5k>LZsFQtm}$k zrj^24OeU{TQ^D(4OUKjmarTZyR96e}CAh=r9&CzB3#(e3A_4t1sfh%y@bPRhUeMU!@bQ zy~FxkVktQexa89Ca~{SWg@^HO{sVs)eYkl-cVU2VOxP#r{7=4?(2>u{ns2)!KK%K8KJP1D#K7F@V zRIMwQ3pWkM_+NYMt}QtqvyW%7_63<8Gd`s+P9K&wIJIEf!}QXbbM0-M>F#F! ztWR2AVh7v~hm(crI!ptW*2e1=o!hzT#jOO=q&)HGz8~CiAf#Ygx zCX1d$H-&Sz9l6Ik>K)mJOhA3$CXoon|8g=1eEC-x7e)O;K10-hLVv1h>K>I*%PL>w zfpTo5JF@DY{$%ekPd(SR>^WHmdnB`8X1>fb8I3dUXY{i5%nD_*?n=JHK+J8>qNzXG zDZ(sioUt6lQF@zPrWL052Cpi6zzyG*O=PZ66r6yUlexf3-L5x49qyOz zNe5yKISMyiZ>AX=%e~?T@?$ZRGlaQ9UbvB8o*&+U^;A~T&+pJOYODQ1k!2xolD*qM3BUOjtq&QR|^!48q%)f42OtchWJyZM0ehqTTx%TGULaI`km+qQ?6e%<|HzNr{%*M=k&x zoEZGe-_&>0^TVY%(;ZXncQPI6iRn+%UZ>qmpOBd=YkhWOPm$1Q<-T5-F$>qlw}xG2 z$>6E)F(AK|P^;_83}U7*?+~G0#ck1% zItlfM4P*|n44k!&@Hw4A#!?^2jbuDEh}uqmhRf@5AV?o#gymI>5+`?wTnV2GYh@e zs$}encQ}Gm5E5??IH>k*oz(i+(^% z#-kR}5|P9Q`YkfiyNFh;Y?vNHEdXbGqCOV=2NN^_X2Rn;MtK`48p$2L6e!^<@A;W? z&XI0Q%vhPa_h*lvw^PKlkLj~*ud;2PNU*UwlDxwx{6ND((<{?6(=pRk;}L^j`Xo*j z{^mFFhdGU{3dC}G#9!~(k?aFzI@6AM54Uoi3gG5mL3O9wF%f1ro5|G>tYUH8JN*pR zfWe$3H5EVb+tArrPMsxs=msrD-KTU`uE};;P|vH?wR}+TIRbqOjfenO=7lfxcKEfn zh2F>lQli=+p8H8Hr|-~7^dmYB=lEzU1dW)MdWu>@c@{Yjj9o`?l!kfwx<)uhIF{Ml zXWmaMkWx2!L(;XRYRMITGO3-?+t@R6BL0h!y82n>sW{y<%bFTJGv-jV8dW>$s+lyV zix>HE>|Ly;jnsIsp;pkf;a=W^>%!L&DvFK7??Po!7OPA7rE*x+2PIh=VEhd=u3lgO zEHN^M#?oYQDxc1jr)}7;@W9oopzhWbEXH^st1<%_LngH)| z8Xb}f@G{PzWO^5KlsSNXYhq@DGjo@0L|oA(s+E<@$h>f=(B8lkUv*DPj-I_ei?*55 z%cRszs{h^i{ml2aKO9L7Q3kV)zm{?J~B(9O_B36hq292qv!RBV>v8E2j z&W4Fn4e2-3SR4r4;sqFtVG79I-60xIsLbMM&xhK(q=&0y&mZioR=^)O~ z;;1!lL1w_vpeZoJm|N(hyx`wpgx!QO!gisII2u(fLX1Hta)O~V#@g4Yp$qv~8X)Bc z+iWIVfoVnEg2q)%eXTl4aiY>RPFt#O_hpty8TFF`aU zM^l67$xJ1-CcA>^#Y{jZ){nYG4A8r2W}rfUM(%_=gx&^L`saBAuC2~Vj;S_d`s1JG zqz1svxA~s>ok=Q{(mivX)8ShX*`SYQ8yb#Tvt!!D&58R2wBo7g3f9lYdE!Itr5p4p zWTO|!Q&bnaKGTi8#3l2$gxX>gv9UNz+$Me&>x)l>`nc;~NOvX4Z~^(rI71i1XX&+A zLO9AbW?RuSP-AbaUsC%iBcN<>MafbgsV%g+PfQ`0~@8kQ7M5a@IAbizw2d@(Fbroug1->9V3iFCOMq0 zi}TG0-t`DX9B;7`A88}i!pecj@$lcF@xk(eA%4~S!5zw}>AaKW&n%bTB;{aIi5~-h z{Pm+t(#m98s>MFe)hjSW&Lq}yU5s?p;n;)d??htX#^#UdZBdaO9_OrxXujagenj-9 zzCx8?C3}NEEq0YIOBO`y>C$znj~Gw~hIMjMPc?qgK$@ zkO!9IJp2>!v{V*#j`re7akm&He&mmX<$ju9EA&U?T}T`#J(Aqg9;uylT%0M`xmQdM z6-#c{!)lDOJi z#|;!{X}Po%ncxHIsMHS#ph<{gPoZkX2tK|Ks##mbw$du(EknVBBgHX5?H^$5)K?;2 zpP_O}C)pYK6iJVCl4HOqlvNXS>;5A0fxFd}Y!6kJ!ic-W#0&JB-w=PH+f|XWQoT?g zXpK6^XtFwS6J0aE(m^gB&L5oPZ|A)XZbzcyqpfd7>om{L{7Kb*Jp55G`9ZQVrBwO} zdmop_?}|**TQZ{b%Df=zY4rIR7JSv?QIjmUjGR@VF0&@@lwa3D%W4T ztL#OWXQ%vKPLktrL(WkbYi*#o^#Cs~Q~{%*hF2Gnz-1sN=A$m34&9+{xcMJbm!WPo zimUulm!ZXcBSPuiWIhmuMr-AWppT}MKDkIh}9ZbrY2sTNy2=0wyuYpnUCVZ7K>xX9gN^RtWDg{+UA&H1=od~M!| zyFXr-%saT(Tt9vre;pr%gcrgC@tHKxP~OnXaLsVva97$P_7qaN;_P2g@K{dN)hlRo z)HzBXRNC7sN0evEeSFkVGth6bs|(d*s;KRSZd(_9vp$?y3)P-0R4P@P?o7AFPRv7< z2akCd`bIU?O>(ZtkI>ZMRDalW%+3M?DG}>AyIwv}BOiHv8Rl}Oc9BW)H{VwJb4E#=1(ZXDFR22L2Mfnc=S^hYm zm+#4Cvn9D1+&k_ISAqBQ31V64BSb9w8$KAKj6DslrGT)N&y5xOg^D4M>pP*WWe2}M zUg?gm`a9*V@>zjql*)szGzWQL7(EFK^hH+bJ&Ac_bLu=Qa3xT+YL05<{~ld(Xl8Jh zpYWb_wZV;Vw{^)VoLVyZ!jJ1eRwrd9r6i9`b!YzO-0xLFKh*=&d48fX#`-zxd~~ju z!ZDqquUoH~pBrl!G%;1U&hvZp|Y>1b#b9YTD*l&V3kCRbqY?rR3EmYQEliR=rn4Al${_Yd_B zb}PCZ-UJGgpS zrz6FN(i7>d)JfVT9uZFRL%B=9y&oly0L^n0`WlzbOL|qh{bFZw|%7huS?LC}RN}WnZ*eI!v>7oUg{HRpxN^64khq)zC z4$}?!3{xZrDiSut*kh#+qEYNC?C0wN`QSp&rXf9*I)gnjf?kg9Tq|}ncZFXm^cHJK zJEeMLa}PSbJ93#F}kMJkA#G6Z-3z{=bIi?u%I`c{Me)D8= z4KOQPnpyy7wNb2zU3Cjsxz*^QTtr`{FujcS)0ddp>_m>|XClLY#2bafd@KGW*MRe} z(^-){&g26AqXSK0KJrt;pms+hMm?gb>PD>9Vd@}tC=}4nqf0mj8j#I#YfQz*Qs{sV z)~o))&|${?Y9IBcQWzYaYVu;B%<r1qy**QrjJq^U!g^J|8*$`m_pZ3(|I^AI*Gf zf0X^*HON;Yv|N6nT_r0rlem&XGqIp_Pg-y2XuM-=WjbyuW4>W-VoA5qR*QALB?Fww z(_kt2#f3s$-peL2QOpRs3|$kQBnRD>`I`wdG3eP;Ws9&L<_yz^iDvGjZr>gn0Bh-g zX^|nB9Q0MA=w*li^FbGJ5%P)J&?1|HnH;R%Qc0+$&e!f~R$!VM>m|S&{6|};Rny)g z6Oq)dh}aFvKXPsPT%=T_Mwkk14g`F)y=&Zea#$zp*kW&FyO6moGrz5%eQnm|Y&qws zr=0&suv_GtQbiw4Hl#l=xw+h^2ue_*cq$z*EHf@J)iWnp#sGzyX(?b$$5)rlXH8>` z#SA|2k#LG%$US0fTan~}Paf5Xw?3LyuO@AZ%!_Hp0L$?tsVxSiD@Yjjqeqg?hQ=RdB;9)~YAK!@)} zRx6U$4}JBXWGTuE)rH4Q66@v$3%A9Vh8e~kroLvgWvpebrKd$U|6y)~Do%bwoD@NY zYAydepNtCPJZ>;o8FjVi==MwO7E}#?bzIg{%~5wqBA=qJ)CyhF2T%<-PtC>HZlap_ z7qoy|=oc_LpLz->>vJ`aHcWesQzik-BAa#&y1f;^f*gta7^tpU*%ok;MA3U zk-m{bIB5n4$-r7)G4CUH4_C>Y{!T}>C%d<^P>z;U&VAg|(Wm+M22J5s(8D{UTv2zS zsx*a|N}hoJUTvHiuc7ia1E`I#@wTa*`MCKuc+Y*!Hd9ekSK~Uv4Jlo$BW@7#fHS!S zr%5(pw1Y6nDC zH_f6wQ{SoSYH4UDzJXwNG`jWaz(&shZ-k?OGfYyp{;v`CgTB_f(2yV%Sm!H_tfIH8 zLe6NXnk_kJI2-2_b#-z-_l)<&1Re zXUZWUX*yBWu~OqH2YHX&3%%UR*nv+GO_zjP+AMJV!rBj@E#5=xFbODLI}~v5K!s(C zHXL_JCB$&I)fMU_wV?V~=?ffdeRS_PN18`c!o9${*%e$B80YWfYwT_4DdryT`jnHJ zV|Gn+QSQ6$Y-n$-_jAE+p+iv0%dh+aM5(47&=(V<$XUR;EN0HIsOJhp#SfAT-O?jq zU-ko^n?eQVw6TD34A^8Xq@7|kPMwm%4}LS>fd2@l{54=wcA#q925VG9g}yCDR2I3y zLg@7dF_+~qgJ;OzWFBB}mlF-3k$eoQ#=XF(Z=zSzyFndyI*`g`_193#b*P8b9;&V! zRC*}6p=x>@c(jIcX>__-`7=~8W*dkmvevR-#Op-!|C&t+(rzz2#Wm;!4 zVV&*zix3d$?z|*XA1tgiVofwMd+t zEguDsy8{%aS!86@sMWO24B>9_Swc~%q9M2Orm?bV0A6KGH;wI#*9^4`=b(Y+6;F%Z zMXPuSW4y*!1M2-No5&7kuAw(E4!QDCvJdjS7MQ`#KwF$bHzGm`ln3?uB~aBo`%C2z zIH-lV_a^D9QDgq4r2b1aKO1V~HS{ykk$wlo-(2ctrLFQEnN}C@k?l~PU4UBf&hRTB zW;_8d5aloFYvKLVv)}D<&2@Em&2x$Fi|#|7=iUnb9f3%&cDP5RtSrl4luI~kWwdQSEtvxzL|=H$cdZ6M#H2h)`rg6?h}DvMl={zMY7fT#&|`U>D@ z_JKs)3XLrbv8w2fdT5uvxAR1*lcpE4?APg{sf|WcTqs z#bl|eajZ6Y{&Bh^jBErL?Eoa%fvGA?HwY>4k{Pf9JlUHzf$mgfBw07%v8e$LRf}^W*qa zTn4l*o}v?emfT0Y(9@t>-BBG1Wu51d-y%!HDWTs&je;Em)%+gsMi1>Cmh&pRvcqG) zZM&E$XH?Ain4X$GCF6VMdHWMbm7MeL8NTMh$KirXUX3EMNR=+njTNp-gsH3La@4n& z-Ep7dmnHCta>BfXt?>=w-p2HUYSk!9#5CO)lK2UcaU>kB9UdS08Y~dp6bSg+`A7Tud-HnUxJKk;W{-3v z+n3sUX3osmm0mVIZ#ti`C-aTHSoZCl(w=9&0l_=rJW9H{0z7~XbQz8jM;m@O@3eZO zi^gq>f08gFv3p|8#LWqh;{S;&7<(bQU6hPy#%Zi-Xeu_~Td?oJr>U*wQYJ)vA#bof z&g^}Ge*&F?v0$)xLwm#fBUO}v>I-c=p^;sfI-F6s2hF0_hWSvISYaAy67Z~!7)qe( zUqmbmrP4pR%B&6el18M3cn+Pl6UshdF5ZOc@R?Bl(D2~Fz()UF-%;ENUtINa=4F4( z`Uxe5ni+qjA5JTk#-#O5E0{hY<4;?1)ea-Pv zftcFy35nZs>A5VqSLE85XiHcYUo-A&OpEB6Q8z8I<}OB73i8|85Ve^Lfp zQlN4m%P;#M`RfNR2kHkKgzTY`V14RJK-)>IqaHBlI8JmzZELCNp@}ocnD3j;o9cqS zRmnKiuoF!5wt}0R&NBavtq*jtw<$|yS7cb^T(|^AUN0QtZ#SM4XTpXpW<%YEWr7Yj&Aa%sb3oa8C6#dZjpV zF~1Jnh?x{kYS3kWgR0FZ%p4y{3x$I2029dL&+8lH-R+@0x!uol3OZ@Wb=$6tFKG`_ z6H?En>`l>ATBa4t_-6aZaW^N?>-IkhRhJc|pAdSO{SuTXE07#M#k#N%A!b*a9WTJehj$%ss7tQX5aA7 z^)rDk!BL@Ok-zce3X#3&t89YsM4W24W4vJMY(8dwY~F_4vI|~A%vVfbjWrEsu^#VX zJ_40<80U$CyxyXelIun0geQc01Um;N`1|=@dL{32PfyQi_b}IGXGO;;TbYcc)I6!h zQ_80tO4*V6F1^0(UKZnQ<=W_(=Pwxg5y`Kf(W_I_*gWDCV+re;=%m;O@kHYLL@hCY zqL8>Mp;tojgky2DV$VfqT4OD5jMb!zK#W$QUg$n3bX`KVpfZrh#e;JKQsAh6mcLTq zK_Fj92~U*os{8aaq(*OL>+z&mS5gcGOsv^xnQ5_F%Ua!*!Il-~-lj&zkJxWp`Fm`2 z<|*})97Nc)Nh$>$5iNWnbPEWz>i(g=O_b;Y@6I)^%T*y1w^q%}zWoDxZC zp1Lj7pSCU|V0+*wk(1C*#Mfvk9;i*z9_M%rjvZB2m+4+G}-61?Wd^@$r3_c5+${Q0i1tcdV5_c!vw0_QHgGafC1?$$hOR`8C_VIzWCyw> zqcU57FKxvy6zWOwM$%lxa>}y8vKz`77mODT&!m;&c3}iYR*QW?M=)Q<;q0(Oej6Sc zY8>1Zm>h^lukVDff;R)1zz1jh?D<*qZI?2(q-{+dmYSLxmA)>$LPq1vWZPQDoSYe+ zv%nUPm1BW`y^PbNr|{WO$I>*qZtUzh5~{N~@wpS2gw^p^!PGn#lMvn5>NQmc#^P_` z3};}vkS;BVKI)Lj+;DE_%H{?4!5XX-ycWC>IufoeUr=Uf9MOUFQM;LDTpHh5JSwFb zMjBaQHOiY`m}^-m%R2K?Q+wk@sjB!ARmHOG3c5IW;ZgcX)df~!7qAio0mZ+^FZ)LN z)_9+Kd~OrauKw&bS)Vftr!Pv${284RNu89Qo{^Ke&EDEE!dcf<&LjH&367Dc1LxC{ z-6SkGbTlVKMM3#^PV9x)!f|~3lK3O>2cRWUCVoV0$!I^+Uyh0^d4gLFc3w~NjGm~e z=oi$EJi^|J;4YgB#olYd65+FvuF7*@tKmFEegP9_5?4`J39Z^B!)xPW(^ud#@|#PT z51QT>_Zap_SH*vXcTiS5f*M*aYA}@Ge^U?1ts^bMsiDE4*TF*pv;P7z?|rUPIZ@8j zj)bh2nRzo>q$Q_zNgJJ>k?|sPIap719a?rf_f_xy;EPD6x|ztL27zt=2}+zMD|8`Z z%Elgy%^#O1&J=eywqoq^n9kAftP%6?rYVMX;sO3DdkSc3f|!b~eoN(vd_VF6TH>`r zXM?lxS`^w5{u-%=ZV0V^BHB_$^pRU}Q}{9H7Oj&u7 zzP-ek=X^{@dMo)8sDp*d>&WtOztAZ3DD(K=K$X0@dpNXpCueoDb<8-LRxCA;G9lHO z_A{e~t-1YDR+{5<&NcU+zUsl4NJVIq7osO}HKcl`rPi6KvnNHj1ed8zY<6sqxb|^( zVrRri(Rr=3`Mu!u4wR-lRm&VETZw*++aTc9P-@b%FRQZwea67VutmPC2>N!iF*BD- z7wQ@2nljC6EY+-ct(&9#Q75AAgS8wJ_06K1cbN7V8yI#0Lmpu(F^8xbsH2u6I_M9y zW$G1WxqKQoN(OX{|BhJY19E4joLW;ef_*d+_3(M51$DD8^moR?UPdK)2;ZJ}p+Ea4 zw}tDDy4ZcT75g{yfHu=Iu(^YYPCz%5QQIkv!5pj@E)psh%pXYiJ@DT1JP=&TBwxQ zG?oBIyrl7yVW45YbXWW!ln_So!@1+^dgdm*pIQYRTN$88OTaxSM!OD%Zb!9}`a?0O zMNlKY3?2AQaH5%rYDY2TkOYvJeNpeJ4UBj%^byX}>0o`*%xfU%x1w&_3?q6BroaL8 z%gcbfGYGZT7*twc%C+S4k=c=)aL@3x(8J&$oU2Ws!;vTWG7uG<8|)Z*9V#B~8z#ZO zJb;eoFr@_iRAPVx-3>0+6S5%Ph3N(?-V`Pt+^}rsGIN3bgR25e<1=O(n3#EiEcKwX zc?>nF9Y9zPCC8DoP^lS1EYV5*FYN|!CjIoiaC*y6Ohfgi2s#w2;ZjrujEk%2L7gXN zq0;$|Qt)>Spq>KfXF^ZvA5`vAz--6@7O*@JFopl}6yL4@r z7D4wXTPd!-MAfc_g8n}km9x~Es6{`ACsC3*K%J{DSMviI(iFdu2UUl8`g~Lz{z9ic z20mQX^@=(Tu2VyJ)qO=y??zvG1=R3c0`poNOtmGbrImr3mx6a&7B#jWaMl_QzI-RJ z`+C90<~MjLZ6h`k{oz&S1P-hvu^#x@!$dJM1>Mm})B<$zKT$g{H1rS)cTv^j}d6pf!% zQCZ9l^mT3cdHqYold-4)mIS*_hUeO9FxR`Fo{|KQx$pS+r|^Pxgnn#v7C;0>UqhhX;3!F?DneoN5g2*}aQYoa&+}JT@K5!+`c{1je)vqRh#_hV z^gw%|za*m8-3h)u$yyCm4=2HS?+c!3S3J9ah~H7e3WJj{27Q2&z{&3cLh}jrjJkk% z`vRWbA=H-V$ePq0RBi8=V?hVl+w_X%2i z;L@sVoJODn%H!jn`VjM%q}~UDEu?k?*Q_nN5VO(W4Pni;#2!lnOR)=jXeaP*#gcV^ z!q|mM;{~u1&I1Sjg1iIO&g0;wUMA;ZZmVOSe0Xn*iACT>jUfi3TGteN_LtYA56*R8 z|9d&%rIi2|x$>BwayY{(5r4pKtvS&Swaf9SeNBVM-Xvn`e?Eid;mVi*&qe}_yF34_ z?}M22kx($N1U#!tyNw#>0rdI~L3QFF@M(LsjoM1AzqQ&TZ8N_23LO?d&X8L0L7NO^ ztS4}yBjChX1MB=2)_xL@`IS*?gqIfC9e<8RZM7+4^opp%QC4?n>>yMzCF3?0NI{0pg2;8LI(ZG_LE`9DWX5w3eV`2Qk6 z&!y@g|NGr1nBP6XL9EgjgOlF}n26?jU3lb`)#LSin6p?tq`A@Ovuj>__T#e|eWHAN z8T{PD|8yn}W0nIrGm7D49E!Db5+nK!Z<{c7S`jFW)*@>|A*%>#-+4#_$&d~xHvA;s zVniFjSD1u-(I3ye37&sB_%D`#mPZ`kEra!=z?&`$Yx*9>^#rHJL!2uYvA2#x4SN&b z^DccSKCjl-!Y^(K{#>nZ#5k71C2<~VvkUR(TvTXhHsgvnOI9ZiL>w$`^AEFU~Doz{_o3; z@g%{s=p*qGJNz+N2Up-Mcp7`;FN|;v>irABM;L=sZXnihTa2_0)?6u^&WT`5)9|XL}ZO2Sq#0m8fx5NjGED0w? zK<9{p*v&2Q&U$0!M&f-A#3(yq?=-}#Ib0@N;GGY`S{;D3Hw`!F7(9ca_?dRVJk`ff zG{xse*qy&tV@d4O7_3JGFL*KVGyUbps{v7K#?BHjdm;TNcG6+Y%{;8N`B;gYu}+i! zJ2Q>=T`PV*6XQLGpO}Slb;mkvj8)hGYp@MQI0Sw3G5F33tmk8RN;hz3zD7^sC3f{o zyxwCEXz;Jgg>n4`U(0Cx%NE?9COl;V>qi0`JvZ=Lg|Vt?0$JDqw|6^?p*0*b8xzfN zVl={k{ekaR!PkYbyQ1K{7QvHpV~*Tdd)YXR1dL9{z0BZtQLw zT*H{rH+XMPF`8#st#9;nysu(-&YOW7Z;f+n3&}yBv@IP03ptAjA<{Og7l9L8Cclu& zDXoxK)xjNjl&nb&2ctZOYy+nDPgIZoga^cD#5dD`bER>EFkoLSMdzgsc>*iy8&-r- zKd+rY43Q0v{#@*snwYu2uujhs^D&HsIQ+?1&8-%^S31`G-+*w7iE}PcjqehZ%f?*AvX%zgY2ZJrC}g!H9r^@SE&UE+T!TlWG9|+H<&k z8c?$+rM`xm#vb{bToq4A)heQ^wuVfg>Ve_&6Dw%2z8_wgJ=Nie2Mgm~X{y7?mZ*c9 z`!aYk6Y(?!Tc>{O#N5pddF(wDz+1CGVu0gno)?f#I zgMVjj=#5Uqtv(wuUvI3Tc>LT4+$8t#dVm`<7CWInet#x07f*X8_CFL-@yZ6?b0?zO zb@1Rb;=R@Y`|&Ha4lLm6OkL&@R>3;>N{&!nkrScz!Me}~{O+$BtQVdmr@#SErx^HA zWr0;{=k~B&=|ZFoewIn@0M&?-p<3ZWkz7h5R3X>U=NO7>3AEgBjzX1ZFjb!@pdD4V z%1M!f;Tz$}kyYS2Thyy?;M@l`O?BYF{D|Z$pesZJ7hO&pr6vMDW>X$0ETW8&;Gb>R z_Y*_$-k+025Ff!25cq+7Bu!30S8p%00bb&CSpxUgU3hvMao!I>Ppm9y0~)dk)S?z3 zLj4>3h_yH!KNCgC+;Al@l8eDSUjugCGcpgAjb86BC*5EF%O+Kd&5T$+KiFcM zDT2Cy)1xtBbhkDTdP*K>2QO2SP$9@tswk3NN=}nkC~xJ1@^6Y=ZI2lGv-U&phnRIN zd6)PI&R`Zs9MH={E2|7Vd4q_{k`XK2#NW+;W4i>n^m;(mRHMI9y{Y=-S9E)`(Xs!m z=2nlYxe%?6g*$I=oD?t7O|1;Ko1Jt8`aGV0cd`&sQ6HhLg>xAVMUKx(N6geMZ6Yy< z%#W;UIW%+fGBbhJxlf5yka&VvDn)AqOxYSl!Mn9YoVjDb$sxdXdKWDgY)^B)1O%BJ4YzTli2sWYS- zdGbhV4!sO)__1^vrBQ9E1E2O4 zefZ75`qa@bAWuqAQ=rjv9$GFpwT}8w;t#N0s)1JsO#wO;ZgnOwx01ku&8;5>V`Q*u z0m`xkGO24o1#bqs?_W3#-y^Gl;Z+d&1AmZviMP1Dt|5{ygg$;_Z9AN)H{iB_H!a5f zn0!c{BM(B`*Ff$p`)AAS*y!y%ToT7NGwRBHsCh7x)bs zV=1TsJ8{bQMO?ZRaf1SOZVJx)g^2Eo=$v*I%DAtQ^PJGS>Ce#-m*FN_2bJQYOegv^ zl||L34#Q8goR)$yR95Wrn*Vu9_4FI?7X9^H?A+>3bfnWV@4an_p$;x0W8*cR08dw)_`X| znA}dB1acy*CII>4MK*0lyktOTP#uxWuba$^+cOTQ?;)(Se3&^SDr()qnM}lKb`tqk zcdZN7_jY|PVMYz72eNDlxyG*?bqnsZwRjdouy^2Ds=dIwr}3WKq8>1Y=z`l=K|c8$ zQQ(@xq}tu#EoTLAgq9(4^5FdZiB@hN!X6;ZqCgJ&}xOqGK05_kb#*=JN7mH~^^ zP;X3}AufZN-UMh}iarEgq^;y+vIS8N|MoeJ(HbH%{D2kE7U$M$AbjWH6grDo=pcCL z>B#O9kkthd(Vox-BQNf!#p;<_nl?xOm++EPP@%Yr>dRr&NlHTI14 z>zLI%h=^D`(LBhC*>pOpsMgq{~Ouizxcgd2%m0a z)?~cDFE~dE;vM&c7j=D{&HGS^^T6}H9oBq7#OA;2^dZG4X3hi~2cX?q|_p5OXF7A(vrl{suAdhW}81{_xpqohp6?+-Ihgj5n(}{`T zjLy}+>Z8%?h`LhzXmpk6peSEU8271ZdXthf}i^*+pk$4mEIBwL`wW4^?gm z>afWFbwzR!ABfVBAS3p z5eW=s2h>bH+?K&WB9=jPsAOJ17SSHIQ=#n+lW;9^(%*SpT z+WKxjLieJINr9tEK&`b1D&FUK+TN(tw-QhB)HP9i{`%blaUZe&4C?y(*h5$|vL*8K zI7Hk>h}uuF5)V*!PQu;LAMcb#HTDsmfs42|M&W*34P6Ni9Hn2ij0o4F|Bz+fMy)y+ zSxYH!XUb#8KQ^bL>iK`Gv=Zu^L*ag&1ZHr)=_1YmUo3;Y<~A#smw*7DfuH&c`Nu0% zMbB|=rr_t*L)Bde&ov7-(b;?(3xt0 zc(WaAbPzRn31}#+LL|J0s^uN>^V*1vw@r)r%YXeVV*eHNYj)uGv3QD_zv^7l4dsVE z>_mhtnFl9AduZSIpqjD^5Ge%&bJu# zvEvw2h||$2evk9N4!!K{<_zTauhFkvi{9#6uvDXwTQ3Ile*!xC)yNB|PLJT$4#(Xw z1$TTGAeiqPb#SI=?8nXMv|ol6i4WOMPk8fm#?M-a8+|gmryby+T?F^(a=JM@nrBc4 z$OP<`S6JoG$Pk*DLvY7+MV4@i2t>y;8>g`-Q49Z;iEisDb2jje0VGepC+;E>&qapW z!@Oh`$H|ICR$qj?jZYPgEM+qKbQ^G=HOAX4O=KgwZAZ@D)-((SC*&{000I&4En+2s z6LKH-OFYg&A@$O>gm5rU zXar8yuNA#V97lCJ2B+XRVlUjJZAKv!M?c_Ad^WnFHhY1oN=4jz<#FPlqPp3HQ{M`o z_sst$PZ8*m3?QPg8qh`s&!`>NX+AQ7*|w*@)AL# zCw&xMpZ7Qg*YJ7zAYX_kb|DYHh`x1u?1#PB@lVYS$oBumY%ARuiGE)z^lA!-PS}4D zs3H_hULHUnqCINrrubap_{tdLCuSO-kV&=p-){S6TsI#g;(bPLHh^3NHINUe(u&~s zb_AB{kueXy$xJy>mZuvqRtY~VTeN)Yc%qJZa4?OblObp)-3#c zH{_8A{}(5s@VV9@{;G&nC*Uys9P9cF)qQc~Qk`&zWT7wL9sRG{sCRR~46BG5A<;OA z+|f$zhn95&wUk;0MU|D9!*#&>u7XZRXG~;nVsF$yKDP+_n85dE83~9!yNo-CFXfT> zH^OOHk9=H3w*3uk$R_4@OfTjli*9LD$CPaVm^`11K;)5L^E5#s-!6ep{u=y_TUfFB zs4!yiy&q8lj6#+HWD9orU2wO{Vj@_8&sB{28=WZwPr+a}Oh#v}zgZ4!_H^v4()i8s zmOvJF@T|D&us44`J>`9J-AuSY7CMuE+dx8}*rNjR{;)Jj+Bx+%!}| zkvNrSa5F?8W7H5ijscy%5_JH3@Wi(TIx!yM_3sm{u- z+pezei5{P)19Upeduw`+c`Tl}?m)NG<#L^LuYWH*i9G10M!-4A}4A**3&7K+NQ7 zLBlbRh=U7LUqrF5#t@$>I<2Z zXUlixJh`0w!TZcJ(LL1V06qL>{-WG5*>f@nr*BTJn9?Mq#e+W*(ZiWD=rUiz*q5XZt0R#3#{Zy;EG<6 z+KYGiHPE~ojE>)O+67#|IYh{C#C8`HpnH;mL{+oB5f0^963z^RRIAcXJ|ZW`lF~%} z3FO8c_ZXMYp+f8L*OSf5{5^e3YK4@>$)%Ep{ftbw6h9+DO4^*#IXyZ1Y+)mBQ-f!A z2%O)Rpv|G)h{%YS;WZ;Vht&!>9#GNmD3qLLi4FOla3IZq5)K6y$qGhfExEsd z7)eF0RG+Gdo>nbr08^N>&2iT2Kxd>e6zmVHd!UEg zU;gSli1$9!u?;wY%_l z?qTpQtH1RfoT?*i->knuHL#HsD+~t% z?Kh~fK4R}O*Pttu&GqBkb1`gxW;V{=Li9e8$j0dTtO9#!3$>B9(>h|&ZuIz%qqBGv z_h%GPKY>Oo;}l}s1A{g;Y9T5sH}br6dDfRykQtC=!1^u1;Ll?=Qb?i_40C zlr%PNMwVDO#d}6?#_SYV`>hJ`MrcLH6+Kbpw}>6#bm**rn|__GyTyGxl;Fu|GfFQ| zPs)SAkL~2PyUTlac$dhpv|2gNJmhl>LXy(j;gy91TsGMK=8qnhBpszf!wjhRiZq`K03fk*O3 z{2c{klK4xroY@1-&Z*33sItwbk5gC7yIOIzn!L($!};FsDM-vKpF1V{NM`Hwrl}8; z*Cz%4{OiYGapw0UKME7VQZ{GK%YE-Ws|Hhx#kGFFhfFKFs`$fVFN;1eQaxM@%?_Am zT_mM)5lkkzNhj2ma2N{qhPv7~@4HCv2j4ZNzd=xq*ysFDaXGY{c3X~HM_Rs0rKDX_ zGix6>b6>Euwp5TF3a$9FY$~(sFlo0rZ-gULa9MmkJ6amrC?W|WcuLW){~jwrd2bhD}%hNfc^W^ z733UQxS*h3Ucc=83~O4GluF4>6Xzrxi97SH&$qg9=YL*HIg{P1koWY}Z&CH6MFA7S zCKYQ|LM<*9?GaHvym+WJ_?DkjTE;D-J`q3lNG(nN=FRXtc7BKN&LH1lZNGuZB^Alk z;m?UDEW54AwtVZ~(k9Dm>n~TznYMG5bYN2ta!G6~T>uQv0L*kxK`VR)+aLb&EpfM0 z6kZ7{g)+iTZYEouUBdKd{$hU8@1g2+03FAxaK;5> zd3NFea>b(Nczv7N-#g8<#yP^Cliw+COHRiuOJ-zx@3hZp*7UxqJ(8CtHcfaC*E69) z>h_Euc}pEvJ@d@Dd^bNj%vt0{kuSx@6#Wo-GPGy#-2jKbUFyV&WKk$mbyHXS&Up*n z-(9ucci?HXKuWHr+5PScTGAwhg_pDjqs>cY+xo6B0x-^xG z3H^Q|gS64Jnagk{eEf_=_i;Xer1`39UH*NVvj^LH`%3_Xhk^B3-EK3R|H z#bpUU#BIVK+;3boQy$uopOGc>BHIvuVg{R{`jjlWjQ5`Fjq|4Cy}i97*Z$Z(sW7QP z&g-1#&K{dlGCd(>Lt^%iRX?`G{g&7&y-3a_JLP)fIb{<38EcD>Jz+(QJuBWL{5rfp zRtGf;h_%IXC#ccJ8+jt8SAzGm_k_2s_lCEmJY3HtYC*B(3cZtkD72N5E%`RPRmGiC z04<^FmO+va+6q0`Q_NDP6P*D>R%J|H)=?46T{eMR4Go5>P+qV=FKh#p`1bH7d^shs z!K%~MpfU3r&)kaGW>!OW_nd6O^yLzTI5A)F$G+j%xxg)QB#Yi|FXEcv)4!@o;0cA| zxj#A|IR3MDb`;p3*eCzr=k{ig&nT51pRz77`N#4fo8#&yc1f?1^TO`udg?i2D%=ih zg^*EUb&Gu|ZVlfbk`*#7sCqyz8^yJx+cW~`NMMm%y6XcPpS2Dc*2VK zsXq?Ji$9ko@6N20JEkDhW9U^l)^A}*T#>iM9~8S)R1IGgTrbFO{Vr7Ct5Oe)Yuaq6 zZd~;?LVlU=e&?dS@#++FCR{4d@ue+)S<6{F`VH{E;5zyFl@>}^Oyv+1w?xKHQK;I!}nZTJT^YQ5YDK_q03FxyNaB z^mF(_5o}HVjjVrCrza0fzLyk}xjW(L&x0u&vl-{#?uT-`VP#H9kNs~4T@PCx z(KX~sU~<4z`1Vw^0E^AuHk*MB*+TsYthB{@$P?>H_2#OFiJo*6^DlJWUkJK*$1=vc z&(_v*M2Hac@eXZRvze@oT|l>>TSD)%9G%2Gf(G+ke!OrS?m=^;o1!Lc6dpp8+QQ%D zOg4<2$IPTgBhRl+yhhE^(VR()B5zR(8HtT!qxs{)V`-2yToj~q-o*^0TcR?oK(#a< zYkw-eeBs{Sp11CU@WpECuIv8ndf{T-7hEy+i}?|Gm2%ZG+%)I~_OJ-HJSdu!5gu|EsUWBnUejasba)P2RL;PocrdW}H(cwT2OP7V&s?3I zy4_J&6Fw`h>|>b$>G8>P6FVh*{9*Yq@<&KQ{p6XMee!;D7V|WbIcmGGG9WafM3Lu3 zDipaB(l_{@z`K4et!0F9%u%z5n&qkGS?|8(=-`;{SmP+;8Y!cCWiAP$E!VBAe=7W+ z!h;-v`vN-#%=Fs^wc}!zxqM%4HLYQ~SrN~ZMr484)sdaf_T-xg8~F1=hSb$EMS26J zwZFlX+suDt{g~C%B+RP7i^R-tEcKCkOz(pt=M`oKdz`Js-RG9VKVl?yRxrH%PSB5x z?%;X`sk0OnKHe9+00gH?fL2*=H20m@|<+Fax#u$1yQ;4GNV&3CU;Fd z8Nc&K#&`A0^Egk^q6}xjILCj!8FT=5)pjW)H`E?}H*9Gb8J-qY=>IU_jjf-sgIcTq z>!aQ8o%NiWBh=N)d%@REeFIIatsYAzJM%8jH=BC1R1Da;}+0CV~rx#=P$-gn(Add9e_xGp+- zI*K`?TqE5@z{|{Xk8;m+i>?-hb#gXl>`i@@TrBZ>{OKRF;^xFP{*jt6EVX>@2Kz1V zPW>L;#KHw`3QG#FACVb8IkZYh@nCyEuB}kmz$_>7WS?iW*XoIKZF8;lEbzUPYiq~J z;?M=$B#p49*mC`q05~WGHwp3v?C_goeIh=>tv(T&8D#}H8irFFm~l)FDw9{JO^0%icpoa5 z?qX-Y2NOpfCmvzud0i_C9TpQTo9douR}0r;C<9k>u62!b7sc~uyGP^s1w4Pw@cd&m`Xrxq+HYoMrd$J)}pLW44$6lLDlmOTp#< zwSRAPyO=>_ zOH6)dp&J!r`lG`((dZ}N6S;uh%@e{d>ArQC-zWdPfbu~(fsF!d1-!SdkuLwLbf^O8Uad!G_9$>R9jWnT z4XPaz&K6;(Z~@|V%TMb_8;MNemzHY-X*xfh%>c&eGue%(LeE zp6mPpVU}=Mh!V>Pe{nCEJJfY^fYu*61S$BhEqv8Hist+5?Tr4yea~C3$JbN#_`3U& zy}HB5jzX8U6DDcR%!5Q1Fg;A{5=Q!NAqm*VEN*Dg)Kp_ntQJhr91u>b85DgL_^F%-l!r{mv2aquN+-JaZ#?@`CL_)+=$w6C+{t|X;rMCE^QE!3|m*Mx2k{}@JwRtlW&f55-0 zb(FA{PB9Xd1>SAWLyp1jpPqZZU@*&SklTS}+bVXpM*39>I1g9y_Q4f`iJ%1m)om-q zsr(A&JUNm0hDl2^AjCcx3Q?KtiMh0exy;{_)>@1BCD~@-Hk55spt{yjij*n|3R?v^ zU>>=dC;@cYEb1QhYqnvdW@Cc$OUnW(rF0`U3_8wNSc8?B9%L?N`(ME&xT&sF^5s~c z;B5%5^EcNCS7(>SRn>jV-QQEmbI2vze-H-FARrd{dUr)vV ztw3Ty6m;?WWxq%tn|?7ZHt9)1nfQ-!gA&#y>zOh3Ot+@=G%nB!ZQFxGL#Ku|4(%Qa zvHgI70d@SUS}%)N+1g~jb^uOTGki@vNuD~sLix6~#AK;`>=R+C)XVY$Ue|E}LclWr z6aKqx!>m#0@YLbv&@;#;zudyjIHDz4mg+^XdyBiIn|D`6hH%4K*?Geu+WQtN`Q39nW<{sxrfR82Qlb-U zBy@@!{zFM#k{xT;+_!y(K{1qY!ge^Ia>%BzF=63h&qIy}O%1H%zg>FGB~UIiQ`;y{ z^YL)7f9;#9bl18X#|S^FIMa?RBGj?)@U#rWM8L z9?czTJR1eIz86dkHJ@k&mB+*26OGmF>S1{edK~X?7wmFRbM1FU zx<|WaIXA#l=B3?LsDsnU6wJw)l@*aWC@mm)Z-5y1yMG?sd{0^ZEh~icyqmktZDgkag|-d2*1AAT?V*~|<=BaQRUw)W z6>dQ|^ac?Dq;+fbst>`$}eo%z+tCQ%?OHm$2_=sgzwAGxEPUk9fT5 zXyPOFi5V+>_3IYUAn1PZq~KKlM8D>KeJoRj?_3@;4&8^fz@pWGciKTMMH>h8>O&@6 z4%iA%0S}QHqZfVIa>&})cF@||x)4m`IhH#XyHrlR$1g?Sl184N%;eJn%n)`aQ;zPy z7UeZ~qm_p4W-a_Jg!8aT%xLy7yows)^o&AwSdU&0+^h>Trb(Do$AY)l6S`?(=zwhn z)+r81dAo5_?+OO-2i2`?R>Gk8)>I~ZD?L@A<1oYd)=|&lDC|>^oL`7u*v*{KoMPEO zGQVUt&8(dsokFL4OMRQ(J!@9(lY*Mg3v!6L1Ujhaty}$$*rxea@gLzAiE3x5-vLV* zOo+k-EBgS*)-+;=UQhR!*N8D@0kH&bNd4$1tOD1Mu|lpGYMGBd{a5Qt>rLprXG=B3 zR>JQhC;7p%=%%m=r{Xlvh|xkxI55-^Zt(;0^o@}pm*nQKeYrnbFEbrkrIl_^tp?un zBO*c}bjNN3m9Pt%%L;0Upb=xdd9my-?|_og8P8Hz z182DNA4e@mg#AsyuKeYBZSwZ!z0IwkvoWhuMyvG0>3L~K(}aw78ILnNX7A1G>J0S? zO16HCxJGs7Pe~ondH)lt1$S&Gk-^@ue1Im?H{k`V(S2zP+~qF;O+5*ikLg59AXB$M z$6*UR8X^SrzoeT|3_97{ESoKgCDuY%-byW{4q~>DE1X1iN5TW-G0m7*XfDqM>#rxKGuNo{@Z8EG9|FT>qto&H{i$(aI5r|3U|i&2 z!e7Sp0=E^Qx5M)Ux zpy4uF3rLS+#U6)sYJMqdq!hj(gv#+m0&n(zm#)*r@Y@h2i*r;4PA-O>dw`U-yIX|)9t+7 zUa+yCTE3R!%!(zavIq0c-Je#)#ut4q6PDk`&Vk{w*e}* zBmJZO@~qQr{Tm%p;0R$*+xll+vt!FhSPi8&+ShFvRbU}m$d581QwmgYat ze`eq1?&^zHn&~^tKZ$Zw2yekDj+BO3yIWg|6Qs@7LsAFflkicT#-5}4z!{)EaDl&S zox{lR4x`trU;=py+N1~g=b}^6pe51BIvYAx88`(eEvqeWEv=;ia0A@{l@>#oF76a$ z^uG`BBY7MD3H}(hSU2-G;|H{4JEk(*key0j#yJ;p)&iJ8$dXqBZ`TjA^!vyUC1Mru zavz|DIat@=ZredQC|8y*`i^>6dS<#0IS)D*=Pc)L$20p<`(*o8dn0=)rp)c3dk_PU z+M_u!IoooE!!7%B?t+5)_Q}pS&fh)B@Os>>rkX0%oH@+p3OB%}?+xbsXnw9R0!nPt zgR~o(~VFEzBzTs>MOa@iYVeb|nefSM$W}vtupRR+HJtuT&jPx?JrwQU zW46@{_!bj9rLAB|y@o1pdxL`xfue4sGkRSSLdJ8>wJ%721Ij1FyZmXldVDFu!0{LED0)g42c13cnV1F7)QVF1To4?C9m#=43s*x18^klB7}k zIHNmM{QJ|VSTEO@d&jcSeC`AF0b_6&+(Q=!Le=!ZBQ){{a%x$pa=aJ_rDcA^2I>Z^IA4m+iRfB3=I5Wk2W;R!WZx@VaT<>3kzhd4`YV0jNWvl7yLaimyWn1Z<9 zgdfJg1VgA1yOZm{rLlXs=}?QA0T058h%4pr-=AQjETs;EMf?m%u~>75@jHBQCu1tU zU8|x!f%dycDXPquEBgF>S>Dn>e+>0Td0%_>dFFfCdA2~|<)^2r$L6{0uIB#Rb<4HY zRl@btxy|Wy*d2+En~sCdVXipWR`(WY(uMjq%ERU7zF4`FdRoiSN*VQmg%{1*R%9?k;n@-|WzsH$`l7r{Lv z99rAK!Y8<%of9U*<0pde&c|@c?0C4~^x(d;JUf*s!|bC!(v_GXx*4<^oxneZLNmJ+ z_0zlqK0r(OS++4Y=#!w_+f(la4;Y)FYMfRG<&DGY7GQ}FDaYhe${6{w94nvqHI%cx zKJP%enett3j*jUOZ)5yDMtca<3ahymb$q%x0Q{mYRBzNSN8y%qhuOhiWDl^(>=3-Q$6QaYK0k{; zh}(M|beKoOA#4dB2EUu%#m2&E{wMqxc5}B77Zmn1zUNQ)IrIezWesaZ%y`NCNj(ED zArd^WR=Q9{dwF69a3qV`nZ zrLC67$+u-cB~XoqGx9h&LY?a)m0sE%WreyCT1FJA0*7zEn&CU)%kiC4t}9*T{@~`7 zR5iJg)?K}>?*j&EhyF=jq^CkRahkEoTxYb>(zLn26u$;G%wo*cj~W-uWu)Dp$W4TR ziA8Jb5s^nG(r<{pWGZUYg;W9Spq+4vpy@7bB%8%HgSSx#T>{gby2zI1uot)iP&T2#9hBNNFTX@X+muvCX+)M8L-ASDFG+h$NB>G9QZ7i)JNz< zB~AC(g@Fw9&*r zYCU~`HqHD~TW%aR52;V|eZ&{7wI)#Es9Rf^qrv^kpiAqVk;O`eU3*LyqbMzwC}3j1 zqj?1sS{TuS`bwK>8{!oUwF;vi^F=R;o_R0u&Nx~o6ZERU>I9I}(Jh%~{!MnGBxaBH z#E9h=nzhs^{CVQ5dY`PsUZra*@kCW{?`qIT$fx=tbmpELW1tST30z07IgmaMzEvIO z6)_sUfJf$Quv$k^MGSDdsX6*TL|vl=zF1;Cb$HDib-`Ww2MxlD1Jn+};oHdPP=h_2nUAc$I-mH&jw8C8!_kds zLiRI8k(Zbhqq7{!oa63laoRU{z0A`UU^hdk<+{#ja5E2}HmV)CAhM@gmN-srmZOXw z+#!9iFPDBoz66V}Hl09j(2mgu)l4&xo}ln%8+wG=MvtbylU0>xWOd*U=bJCo;>=GY zTkmOxlZYBHIsTy&#`BGi2QTzb1f!>FjsV_%Y>@cxP zsmMMwsu%~U8bp*n6yAyF;Da4S$zXz(Wr_g)^9fUCFE3HsEpJa^N@llDO*hTa^Z~ zem9*=d{HI#zF|@4;Wp|C{J-0{j(Ja%vdC=3bx?QfPpMJlas4>fH3eAO*7N`{Q!9g| z`8#+kRhUd)IbsH1-lyx!m@}%#wN*0>onD3BO|G$$Zextmo0`>VnmD1F)F88)GLb!^ z2QwqcY}G-_=%v0T_fna}1S3+1CJS{@bC9E`M0Fsw*ys)W!Y)KFCRVF!tfPVrs6f-R z3@b5GZA`s1HkeMvs<#DqXq*bg7cNXcY*?68T19Y#W%z-YBUS896 zS;{89w)RYS3k~(jR37wlyx?U0#f;TX0r@`BwUiS#7Dz=K0f@CBY70gt@91ZUMQl&y zHCX;WbqCpn+VA^JZy+lur=@Q45#ub;mE)tPFETsY-I-=(ME|`ZA4*Lb!W@FvcA0?(Fwo z+paj-TE;tax%QE^nS12h+rm6o&wRM|pxKKW=<%~0)>3^XN#F zoCk#daB7gclRQo}0~U4=dqmA(T9X@$DDo&h%==R~XLyvg{CfE-O`Aoi^J)S+SZ+>s zrSJKQGft+8T%X-!w$b|2-}DHg1_cJW5lrp?kFbrhmER>tqt0)j4CHLaf9f#duy+la zNmbJbLLz^t-%uAsYfq>)U|;;ycCyvw{@hA66+3K%T41IUk=j|~6TjA*N>wJSflJ+r z4l~-2XY|9wbh^G)hAwKh(i;#x`1^8q!pT?gHfFb*cT^u;71|%+`UXbhVmuAW?%XB3 z+Z1rdYk;wQhQ6up#Le&#Q&|t{zWs80p}e_Yy-VLB4(oA56KawAC$kr9){ewtdbsfr zDBUkwMf$GR#)xJ#wFY^HeX8seVB-M{l%RjV&u}4M`>?PX!0Y-Ns&#NAhv5 z*U)abE|;hNQ?Hl{IlHO{>+XnJY$CB`Qcne>n8#6Bj58wW=K3ZzT@3Vn zF`_9S@kLKiu8AAut@?I4N^earQO~2Nx=ES9=PF@{m>Z0P`V{>?V>MUWr&CGfY&nXL z&=+c(fIrC5o*}=Q#=erL(l7P(#vT$*BJzLq6snV)C!ST?>I<2EY6qr}NYkcsCp}ZR z--ti8Q}hy|mpYkgV?=3T>=C6TV<$(Mf6$yhmaieVGadX%Z7Nlk4%Ge4!PH<~;3B!Z9q)@|&QUIJ zRX&^ymSZGIovY2`OUe_4ds?B!N;{P2Mo%GEvl&O&p5RRR%pF=DTgn^FJ*bCBYpkO;2-I1iE~OmdI2j_Y1n`_zQ%`+|SsSy?-i&h?Y07)L8x+DClA0dI ztnmtF1EIJlmY$AoX8Nz5HaSC$V1EZMw+R!2XwyfJ0rrg`8k+ayatzZv09w}P5wso;DUV1%mVg;+JbfvBYd2A#+*XdMuy%4>vbI2 zc&;{#n{D_}FX6da!7|M^huFiPkjwB;iqac0>%EVdPEZf%!z|aAt5$Y|ww)OTJ%s+o z9_=9K_FgfEFcI1oy%w)1?NIG3qAw#eXbI&QyRn&CZZ`04w%k&mdnfQIOp<54a9xeS z9_nd`$}6rkv0a(U`Md5)MU}4R3os~pLj6-f7IB4op^D5!^{Y5Yey8QK1!_kqB|hWr zYDMzbY%>@4(IO^EdBWT$R%#IxPrg&DF@?HBVj4zY(I%6x*e7~1bFCsKcecx|m2 zOl%{!=>pvzw?YAR#r2z%YE)Je`H9SW=PN&_`v`NDPV?FM`rc8TOWTM{?}`43Y>wSN zP)Kx#@QqAL-^joB)TJg8*GY!>&0MPd&8CA%UIdJ=;$~lZBHhB9NbIH(NLj7Q6>+y0 zZDv#DIa5i$XeN>WsGq=#`lL)3M|m=tEnt)_<9{>y$&;AD&?D(X98>+d`{r9^JyXTF zrq`tVt0Sn&<|ouN*YsnC2)t}B%}S*c{ndqh2V)@lLtkg~p9)!yq9q-pcO{0iCA~Abw^T)M zK3kSNsz+*3%3sMT0_V8%EKoUv^#-TkyRUL)8@V@?q{-RJ^O}&9pmi^}2BP1#l zh?8U$V+j@LtAt_x10x}Uav?` z)|}LAuqL;v%ghqo1?5j}sTN4oqDiu$R+p%&4PrVPnb26UX_@pD#Vt}wzTT70GG1#} zn8{iT2D~k8C(iSH#;xU1CDll3GI7bML8t$6Q8p^GG!du&Wp=<>ZET2aCuI^nin6H> zsQYwr)k~fr($z|AOMM{}3050J2?2RS4ty#C=}oM zy6Yn;e_3O$)4k-bR3te~%LF>|JMOjh;Hgz0J^E%gOO2tx$<;dWWt8SxTh^(S07LSC zR*G7Jyty3V(A!Z_Sfz4Y56wqzHi~1FYGVhSpix_}!Rj2^AjbPv@vC%;UXmWE6{Y*5 zW7k7nY4+tJl_vaP?H}_udMtTGErYjY(4C+j(ty0A5=;$cn&rEkr~Rb6n?AJ-cSo_X zSwyPxo#xFE^hNa__Npg_QONV^h~n1@|tj)U5ycDRdP1f-7`+CrUcTZ*eKsPkyFc>I=J$2x=8=0@#ZG_ zotz22;RwaSj3=w81GxVBb;ObwBa*yAt(TV(9oe-Sv`e)C#A9-|e3N|)|KNX_=jvk} z3}1S+lE^LqGmhmVjU`y!#?%-sn_55=$iS!*{Hw@m2EtHkOfBvK0AhwcC^g{ZD_6L22KI$7pan#?&31R_xRc%M^ zBnBEjvpQMP_-Y-UpZUcpxi^8-KB?_C7ChGF?NTsM;}LD)qqI{iei0pn6^%>!{yPud{BGMwKP0joR2r-xG3K`^j>z# zFLc_n(sx1MVU(ti7}4e^y$5sC(6r`EywZR`SDFQ+w6FO&9CZn&Id7^tC6;^9%Kt#z1PinWEg`W|?)>4Qw0` zV=AV2d-R(?6W?(^gvxhqWg@L;<*5t&Bsqjgp)1m3^0-wF^lL%>#9>9OHQRfsuk$R=wNr%Pit;=4`zd5)K2rDTHHL#T+>hMyV-WiSz{`# z8q1Y`=*8Gsv1Aq8^wWt7#ufA(=cxTLZHb45(?n*lA{rOj6xl;L)T%}cZn!*M-^Z@f z9;@#dyJ^u!;0A6<-8T#MzXTiWuWzOf@rQ^Lq%KT0?~^m=+YE26*6UD}jE3q*{j*WZ zw}KcW|Eav!RHcG(8$IUvKyl5{8RoPWgnC+~LZMkwp6(7Fd@%8h+7B&-*~SDYbaZAv zXfucoq@kY!%HE02^mMa?5l5|-7aN_Jy5(Cpv&~^3U#^1F=cHOnNEL( zDnJ?Px&DOsjVWQ4)BhwZ&|}Shh=f1Le9U8dYZJj6zG!~N*Tm^ffmMG9-rg%X_zgo> zDb?J7Ibxo^gN)J7n*P*q=r=SrmYBQr8|E;*07$6EHb_h&j(+<}m!9v1Uzr z3|KM;%@;&NV=45iT+|uz81NspfSJ$LZqUDz(~-rL#q;zq$5YSg(nP#+hqzCzHA8@; zBY;Rq2CI7*9J5N0PyhqU{=IPu2=}t)AvhS1gW}8IhKDLc#pnUX4KU&Yi2>#-JsN5! z-_5`EE5uMLhIHwBkc-!4dZDZMNsA!%lVRo!{i+@fEXpTxnEJ%10*&Y;#uNQMrGeqR z)>sMuuZ_TEU4)Wx0PzJ*U;*gMMWQ3)H81IZfM3{{9HQRGiVcMV)m;50`sjU(ky@;I zk(dY^O-JIsam8#!al|jq^DA_Q%90s~5ziS3O!vWbH!x0@g8_Dnl)bc}(_7&>Ql}rxV4s)Kt z@a!!`FQt}}4}g4&gm>>(GMipWH>U=W^O$I+IM4-F@Mk_k6ON(>!TUOveuKG?6&eCw zpbK9@Q|1(XlDrJweJ$iw8}-XZ43SDa$GO<5PteL6QP9O3qMr7B_jQ&l`<}atd5d^1 zIp?}Yxh^|TIXgHT+5_wn_7{#==RW&+ht2)bz0xzzw^9A%-Q&wvvot8*Q8l@f^fh)o z-;ck~mKJrXz&hNv84e)b{GZz<+Xnmfuuird2fAmxrH$nuX@Vt+y~X4R@F<~+^CI60 zD6fw|`ka8iQ9sN@hEi2H8yC(bQ#9sib(vCJYhko-4_?Xhxr(fVYr^+qNqz-89A1RW z`8SyNt5j7eNt^>iCK#%+SG3E%r`~MuVfQUheel2^x+vE}dzZo!xnHt(WLL}Sm-8Si zEi)s_l@*;aD{Dwj86aI26%@B;I0M|vy$j_XaO*9WgX@37x2Ts zhkvTAn7_k6((j!0i{B($CuyWm9*T{pxQ9$hAkDUb3+&NKgUNkB-K7oChO3j+O7Mey zq^epYXra6%hErF8MjA*LW9xAe-$E=9uJSL%@8U3VjPOwS3J_4V%aEh*#o6Ma6jzt=XIpY1@a{e#ZnyB@zhzteZKI`mLaazgPT{P0 zMhp|4^L<2r;WSt@6_{(-#c@!w4~5cGE3>-ZL;s~by}>vNjmxRJ8~Ck2JnKH~xav?J z=+%vL8l~7hMO|}Tm{z(A9i@^)b9Ag{<-4Eol z<{0`THxnHGl9B=+g^IR#e`ip!5La+~kbh9!z*xVT*1Fae)^KYD%UA%8F!nc;;mTg%$8P$b!c$0*yK8HVheQH+;n~z4I-Y*WCJFPTDN;*IA=t^S@ZU8{ zrf5oMEw?1EI7XZOxtF_Q zz*K4DS|HCg)>GgaLWSTdw@Wx8z7_?`8e6*m&46wJO#@E)-?KfCI*Ots0)g^f8X@pZ z4dNv{L_N@9oo6i6M{1%vMmeQKDs_RQc%;75{=xJ1g|6Q@sJQ$fR?~yHPC_$@k_=$h z5AvOXTs>eJYb^p^=SXRh5Wok*3*652<7R`G&*Q{yB5M%G!3U~tBkYf-wvlXZZc1C&yAPmtSmF+i*r+RqkL%C^&G=#P zZEb`3{x0F0Xo^eW(38o}7sp5~q&LC@ZYVn!4wT?)a<$ohbQ}?6+Thb#9tu_+jo7<3;BbMu$v7GzJ#ip)BjRVF(wXM0}R zg7kuxg?aWQXQBIs?~(FK`-vG;Jb8lt$uiKNSS%ivZd-=g2;dFt2ju%7^N;tt2xp-N zejZyZTY+V>bV?Wn5Bj@oG4=tiL;t9;8Dy-4o4_*tl@_W^R<|li%4oHMmaf%<1}F!- zL``F=IT3l|Zsay+sR=+Vg@Iq=WBYKYI6t5_I*6aeuflj?KQL=G;2GLUEGo?9Yx1|) zb<8Vj0<>}h$??b(=Na4e5^(4mt^5sSp`Y)tw>h|%)m;;SuKreN&tHyb9h)^UD>f@M z`$JAlUa^Asg4%^ScDJ*%2b2uOi>cclB8r;BB!Cg~yI2u8s5RD$ewX|+11<%I2VM@i z=D*PYl7Dmm>i%9^h;@|ISlG%tV1sa~KLN~-sjgZLcfpA9G@7?Zu>{}tn$b;o3aMY})C`vwVj%|8FV=ro* zneYpkMvb8F0MpljImygsSF>Nh4d}&<kGjq(2nHge;neCXFS(1gjTHYO=ca;CHSM{o1ZAo!ftJQW-cTe}d=YHoV{@aba z!(M}Oz6^E(qo4ym39svO&`pa_eclF(*h*D^hP(uJf)l{WEJjv?D%3&!1POl)(hr{T zaJZbF0;9Jc2rLE2lA!YJCSQTlLy!ZpFSLOW#=%8r8)|9XU>bf@r+}~QSB@zSlqO0? z<(j+zj;>bOBNdlZ<@U${^;1^Mzsc9+Ht=P+hSw9Q`|qI)QxZYv=mAC2dbo;@RPU=z zz{b3xTfn^QjktDIFl_FjzNtREDYlc9sR8ikxPVIiG5FVGsuWZ&yXg7&-W+VO8X!FE z1fjwP2iIP7JyeKhg9Q5(U-zLYZH$&41#e{~IT*XY09apLz~ai~{#^s5sy%W=GeK;8 z49;C1DC5#Jzt-+Q!kh>7So@Jbb%A|f0h-AWG<2Il!>t9zb0&EmccxNMPE-NucNF+V zV{lgZfSBP^PyuHkf+vDicM{C8B)ExggP!Dyx)&7WxoRsor;Y@_QNw+Vg_ffh*e@!2 zDpM|_EQKDNhp%yQwHjQ;cY;^k2u>Jh@R@3YN-ztb=Q+rCjfti38wkOFfCS^T060c% zplfW1*!gT+xoKdI4n&_dz;mrZ*eZ+`KZ6Er8r(+4fbXONqgpcgKJXm7*muRdt{%fLC!B?mY_o2r48vOfM& zuEwb?yf++V6hFHG_k)$l@zuuPN`nUI65e4MRIc6Nv``f^|MK|y3H*@!Ad=Na6>l$n zJX*IL`~H)N)MbK#M&mb&BP!DXbhEyw44ej1*CMz}tN}-D1v(~9f|z{Mge$!Uuj&cXWJ!?5Lf|o81bJ;0R)OC@JL`wu?*uklFMPtuxGrmOea@lR z(=mRE;&-~EmzRNna~}ECWFm}AvJ*}Qc|e4-;=z#;M#)?J>?l@^>1cO*jFJ)>M09!u~UHiB8Z3!`Q)zV_?Ku!dX#aq%{0>OK7SM>t7D zK)JIczLV=;&wZHYnr|;Y0Eq*XTYXBB#O6TnlRZ@3`{0tkWX+ zT@mBw1xDUcoO^RyJszC3{vauKfC{87*27MCbbM$Wjlmi;20b(q z--qhCz7+%TirmK_JVyQZ_#I5k6_^J*@b3TMb3X;=Ee)R;8F$R+M9i0>paYh|N>UMi z6jkx4hE<{#Mq>kvvX=Oa-En1p#it#IcFhK7c@5UnT^My|(7HRgey?#=KjWmHfk!&7 zz$ZNO9BsXUk+v7>^CJA-P|VFnnBfJ`S^^bN$NSyv$dGDhyr76dxSRnv1S=D znjH9>h0(sB@YgHi%GX89YGc&Y!dI>jQ9HD-4PqQEz{_igw*HEF+Z*49A&)u@Gj<-< zwp_RE(-^^5F@`VWU+1vmoP~4M0X)AEKVOAaZw6MpUSQ)^L4PKpZ#CS(zF~x1#_akF zEnJI{yBwn`w}s=d@{Yq*8;#H32IRr!U`FJ6-E_tL>5R5@Kude!->t#WYlW6~1A9H! zd!;Xa2aIaG-+pL$j$-6q!xeppRV)=Nm=_NX*Hyq5gB3Mb^IH!qQc--BMEk3w#Vyd{ zUvMQlW0dB)Dg6Q7_EfCh`*Af-qUL=c9!Jo^`@|cptS|6f?)tt6^LGca9qYza>;VQ~ zB+SE#yBO1n#0J)^bN1#A12Jy53_J=ZhlK3<)Pbz|LsemeW`oQfSxF0tDQ z-?H=gy1Y4K|7z~&X{|L&RqjkFwbvc44y_W zf5PWQ`U#`XrR`n~Z!MKGE^fE-#KpSv2y?;ec2-2LWDP|{1F4}ZZmu8k489P89b z%-<2XQ!FE{pkBEYc5qjSQe=Ck0=t~q!`|i7*`MJodqHk2%#C#u7bsm(JuD-K{G2?m z-&Ab!Zs~(uU%RU}2M=-`G%|mx-{lwb0HweB7#ck@6`-0^rAQQ=K*3Z54g`~sLtaPz zf(TM+@^{3@)4)=#4MzA&y$$w-UogW*V(!<+3a|w|wgao?5{xl$$FYmOrhU}1wbF33 z8G$vqI`$Jiu)ix$Y{1@dFxqzp>vAH-*(Z$Ya~K1gu}A%ju!9R*1tk4T=&2vz2Cxb1 z#7ofppJB8#g{tnQJ`;1}8D4t|^J@L0kq1i0L9 z;3BjZ1kz#p0qqXl4SFJ8KVLUMvA7wTyPJBJ)*bt-m3l4u@O}ph15+%FLkrtpD74u zkE+n3lF;MI%FiH_zR-T6)=^nRZE_@-(Dl^GO1iX7E)8yaP3%z)6IZmI`ZM{i+EUx4 z(8OXbtgZ&Ro`B}Qv?|db)!&7_IJFE1X}K)r;XL@tp8hJ1mOXSax+UoJi>N=5mwv5#*wMl<`6}4cRfz3ml-o{xhWfCveo1L8 z&Y|`*tu=-pO2OX_q~pTW1!#cB%02Yk>}^EmAJF@;8-7RptV)_L|DY#vRp^MSFddlo z`UdTjR)WgZDoFtlpie7z=^Z9kEd(0pGj22WEwIW$X+O*Dm`hYMtv@r0zNYt3XDP$Y zS7Uyq8#jrJLcgrB3#hQ#kDjiPY6?9~HR5bvgY>D1&Z5@g8XT@3O&ZqJX}tB zh-~i>^(!@sZ^`zHl%e(*Hb(cNin5`M$fddk8La-I#LU7qaq$^MZ{;{MTb!Ug<&KbN zM6>>iucbbOTDun2RoWwL;qo!pgkMaORu2lKYvK8b*KSsB({Hq5;EGzcH)NVThs+Q= zQmKd*JTZ0AT+$1!4{9gegdsB3Fe92o9niewH2!UDB-dE~RXz%We#_WTTrGOCe1xdU z$7F-npFbkB(}t1Pl)>^D<`^-Stzf7mZeRq}75-#=5*eotG5jJr`1#}maWNy|{t7B23|`@yUY_Auo$%mOiq97sRYUWpFwo4QBj3@e3^>_g=Y7#kb87HTZ&GL2G_l>Pi9 zl8mfkFKLyO(^%_IGEInDQa*NqL_t-ZCd@;WC8AVQb!#zcbSTbx5;YKsT#BrzOQ{n$ z77UFp;%ZWBq;ou|(Ly~UnYkwQ07dOO(@34J{AOAtl-KHUWkvAr_~|hNWhLuD9n~*d z%b1~DQVtp4D7WF1lmzOwn{=svkpBpixczjtx|=>E;tm1@`b#Ch;k|N}8LSy`s<3O_ z*)qyR&;xElh3=!zPz~f)L_V>EGKsmYhsn=+H{?g#5K%*0F|XE^qa!l6iE9^mN&EDc z%47ByGLQ0B{$S`JbivgwAP>W5?*KOGW_`U9&s@-+ipgv>xh>RK5otW@A*}LA@+D=^ z{uU-{&8d@!<@eyPs>4}MTd0@UCWv9S4KYi8MUQ93L~a=_t6iAmYS++2^LbqYW$|x% zRrr{(EOl69*hEF*PRN7wW%2{P138X(tF&iN%2&t}j5GGDxk7LWCD7FgKXp@D$Yjy) z<(1MTvKIeQ_(Z>=-i0T!Qwf%x5OZ>csD816gkU@t%N9yjR=NYdF7q}`a^ck2B%_N;22W@QwW|R6WX@$~m1>H~TLd()`RBxuC?nO~bd2S#bPlS7M?y!VCLAF@Qfbl@RAntA8!+df>}tyfp~5&LuOtf6RP-V57OiAu zuCn4omDDxjs{D?rB_E}7^j)F@yaFqEQ`*aE(h=eW&B`a?@vu(m!w!M6Z85t``kh`x zeT_b5+v@@V!6V5Ia<2tC9^!o4unW;a45 zh#+Gq4I;{1;|bvPjD!1c1*s-CT0g7wXLhR9$&&D{nL)3Wo={ulanvB@qF93~ zLhgumCI|A>u_6qTX7ldYeoEs@hxb8`@~2^?Y!Wt@PD>An2FAg`tL(qnH%?}r3YQFV zVl8z%zfS2NZD{Kwar!~FdaS=`cw`z~ojD%O&z@24>x+$FLalWlzb2ZO>ndGVGp#$b z65S7l>fu)Q578)7T3t+Ag`lNMpogPNARqe^-A~A8TjdR4TkSEOjQXLgPvBmOi!FVk zLFJ2eUZlBUSIBHGE4<_vgz{OpsUP$b(r31#8l$R`CUKE*d#FA8H+1-wlyRmj!Q!Sw zu{5g3uSf^=W&9V>&HXF%B_>-G|3JVOnY@N5l=P1+V&&y8bp{~s+DdeO)*XoiV=tD zit>-l1F3=bz%Vz&8As_~#L}ikk%ruJ)SHcERb{#Qgm=q>iRI)o@j72wTuC2MMPe5P;1&TS60OP)oylzQ;%#G=|k zvm8EeD2R$Q7j|4bndRCb8#ww8_hO+ee@LSu)@KY{H zeXrS-)rJkYGcM+Lg=l+UjkTWSZR`)`k}e^`&`?a%AFC6%lhM}Z z*3vsF53yED!yd7p_L01!{6n6h`(roNOdrCAVxO5xAflaCPO*1|g~n2nNQc$)h{oPk zietZVHvR#bOhIFwyS5XftD*dbUiGHZeXWGOX8*j$`G4xdO;S_LLD}nR$ zQ}QA5Z5gPBco2PVTkbo}|G-p<)#Sek{kSxV=U0cXS}R5crlB%Se`(zB9h;CRXOe-` zXUPYcy!saP9seN`VhYm(V_kI&5Eouua1polXWlDCJr`#tQdb=sYM9XR743%>V25c z;$t?CypCR_EaN^$7aK;2cEd!W59fz6Z#cPFc}yLXf8<6=RXHx|uolgE?7Ey&(^yoi zt9;=H#UAi>sU2T9VmD6;xGisD8~MV*VD5=NQSHFCmw%^wsr{)1avQpkJcZvB9bnE1 zPd0T5)ixc9ou><;mEDX5!VArZL#HgGqdQEU0%I&3g5e{nYg!J~Lp?zzs7+DtrQ?Kf zo?0XoH7A8QYs1JsV^5``P9l0A*3K#Oc}KXs`DyGVxt*>?Hk7CF+r;*Ie{QpKNMB6t zhpxuQ{G}WuJ1cEygK~(-rXR{1xWDCmOqP6&StR@PM(n%D9kVNX0Tm=EdP%JqW7k<_ z6jNK7!3>qlvXzwH6alisA>=q@G7COFMfE%Mc2qFNF~h0V;iq;Xv|mXx4VBi&-HhMF z-D*KwZx3m!1FyK-QL=DpEoj-F&I8Z`WqeEeQ`6l9h%%K+5*z2a9UTk96tXagi%bVit~-U zpAruFyRn<8W}%0UX!roJ3-|Z(qUO4nb=lO5crBOIPB8`5?Q}L75>FWW1!ESQkV?{s zu-27J@+ag!wJr4NNGJO*!KH-Nav-=wZ)Cmc+h$DD^9qX%e@FLl`;=PbRA`oidVN!C z-)QS9X)bcIf>6=o^ZjYt7MW-CMTQ#s3-$Or(20&P%nTMckCpQp{tDK0jrMf4*~1*a zm;Ebr-7-KZpo?Rg)I_?p{0Gs)@OL1UOH{v6CDqAAQxLVN%20=Ja zO=l0ptVCO{7(oJOAGR`_hr#y&gq%Dm4La8j|)!~%A!+D3|4 zZU&mg{p$C#T`Wg3Tf2+;QH^a}<4-c*(R+p`*bYh!(XM;pRfZK>tH}8zYw{DvdbXvf zVf?aS8#0p*gjSg2C7+Vt+%DRfu1vm=U$GChHc^kGyx(LBNG@h5A`vQ4SWY)~53DiQ zLDjW`s;{+IU$Z5kD2`I^DN^pww-sB{AL!@m#@HL9M!pTzu>@i%>UoxBY{C}iEY5}Z zQF-=N*-p2jM?^+*v*~L>ZA9KCkpsBTN{-ml^fGpqZb0o51hDj`uy2F&?PbHCC?8HM zr}St18gYvH&hg#z&hkvTD_%8S34Jsi(r*c8`MvTb(xU!J%%pbUEb8O_mV)>jy(Kf^ z<8R4p(mAFeoL*{BEtDTLA5%g7fEdsQ(ZtlEZ9)y|F+VeWldDE=5Y`xeR3FoIv_o_? z;h=SZo)esDt1Hx1n=)mof7N36$!y^b_kyh`bfP10;{GjM&;Cl887sN;5QO`-DMQXQ!)o|A1wtia3VtJ;W8CsKv0d?9Uwl#iLpypyNu zQ`sc7wZ4+Qt>hJ1+l^Rlb&KU?=ps%Oj{WVqGGY8F#K^|3=D8rPb76`o-1u2v=Q=<~#8R5ojk++bsd$>CFU zIdDf8g)dq%^pD}y=9R(#vN=;i@E8gyT}2C@1?5~G_J;mhOlSP$ubLCR^cAkQxxF+- ztj;$iE5)ACZ)lN-$rMvpYE5i6v=%N!=Q?WmUn++ZpJ#ZDF7{-|$UJ3tsmGX+8PXa132@s-K_!aO<;IbV6pLE{!4VQa0F5C3Cs zM`y-5(MM>PI!YO3l4DoJmbP<&%dBYn=u6>ivbB77%mJ#tP{Z)IT3lj%Zn=CNceP`jgaB(qVm@|`lP6P2;# zGQy-;sV`(j)Vb{tP1JSLEoHDBnA%c1Y8UaNVgnTJYt3n5Z=-`(PD0s>YFv^-fenq5|qvUL*3oS~HQ$*?7cMnldl7kfd=hjQR14sTCB`{KxCvKbCJlWv`0L) z3^QIEMsJiS>F>DjYLtAhv?9l-9my@+K14w)85St9$T{`{Jq(p)DtA&|qiljR@oeZN zWVwS{f}W#@`aM)RjHjwf0xC&3*-Q?g!=N_IlbVwm+7T*9CyImAze%&YmfFgi;V1iz ze4sy;TY+&QOXcbMeo3ALFkj5xJl{U|>N zNkdlpkkxn}+$bkg9{m&)AL-cNG@?2yC7D@VTcxjlgU*N)4X|bCG>rH7;moL{k4`P2`f; zXL%!YnORGPp#JZOUE3v$FJw|pbqPhf2ZGB@Sfw?JE#g|6MZUq44%sy^bEwn2@vBt z!ENsw2->%_sD6cTQiVY&-UCO}a-fEGBYV-=x~lG04alN&LC#_+m8`E(Uz5#{6H%aL zuMThLc=YsEq8dK86c)b zqt z$YJ6H6$6836qCs%@n2cWFv@tJZwad9HPG5>nEruZR1`|cTgE&5L_Xcv$gr8s4`SUo zCXpHn=l3eqzf?uK7o0p-Aur&CKIR=1{sWZ`+7LLB{HocA;R@W^;SIf9KBs(z0(g%) zN28T$a#d}Bo-9j<{!dYp|7$~~%VFzDM^#5k+?%*d&MVG~ zjt#Dt&eQg0_P-pyxSKXdTt3@I)4#@4(`JwvoAK$WcM;-U} zgdut6=T-A1=6{pF2s|n(C1ZZWrS?ZR>CCVVP(;W$48%q_059 zHJ!MtAJX!xUU{Be5L&^paw+*=Ws7~WgjCcM29Ei`t?(4fh#OUXG3cq4ZaD~^bPT5XI%j`^h)}pv=*s@zm@$`;p^7q zPbo)IN+u8fwk0_uRmv#uE$3_RYv;QQs_q);zV@DU)2OQCT&Bj>pY0c&AKlLQR&bs; znB>UE=bN54A@BF37kLZiotMXzkl?=JT;izUSQ@v>veH`)%OD{3C(3FQlz(KK z+)sWZKai7@pP@MGqpVeRZ2)nS3{qd|BFu4S9oHHP&R5WLI!xV7Q_Te}S*BG`%l0=t z0c-CsK8`EQ{6x(pb)5~-W$0d+o6J^{AdYx#)k1^KK99IC34gX!C#%9}t4MQEL?V>|--a*}zr zv4kT7_3pcY~#7xjIhe=Ju!*I=*75)bd$g=+RIX`;$dOl_k z&l-}sCc^@Em{H%0rCL&NrVUH~HErtmQEB$fKeL10ps$*LeK0%RIARw{$?LW4r~oR+ zH00pkVuB5lE!p1L74P2b>goO?VPs-L;?2a3i6axYCYa)%xz;-eI4e1O#W}5u&0mdk z4FT>cdyjF^_sEJMDg6VV$sy`drJHgNO3VDRSFWg5ghsF|?oq#jyD3riz!I#$WpV`# zsUV3iHnlb@Cbzklc{X@@6HF6L?Tw7#Gk1^u!kCyE)KbuxR;e?Ud~z2tIaWN{AzUKF z2FC|V`Jd$U_GV_=vkPS}%qj~7{r>cuY2Uy9oEDcpFk?>Uw9LEdwhU+1C~wn1EKn(^ z1y6_af+zo6`ibaFeZ~&BB<12BnzF1OTY@MvAC zmnIV7*i{}iGAYa-An7&dck^cr+l`M56QR@1GE_4rfx1|Z{{T8*5E|I(Af}Zxbt5;Uu%+$<@*{?i} zvnyof@hr}1^_!xiH`fm~S+?oB62noNh5tphYex1gL$hF+x^vhkJS!MBNe0dLH*poAts?QBO2 zu2huENQXtcsKuT~N5ku)Ris~d zOejz2R466*I`9=&a=SmuXpyQi8r**n;K#52v)FQ=VvnSV*Z7Tg(% z58n%SjGhsaWL|BkVpl@kqguh&$8KC;s%}=zx2%=pN;(=lXFCfz30DzURoAbs*RD>k z70%6$9dPBAs${P2-J1n0ie-0X(c4d9ZXqy$y z&g1>=sqEoBBR!wIW&M!m2kqgHp+Vt7(Xg;sP6He4uzre|Ky`vPC1jk48n7FdhPGgw z$5G1F*0soGciY^OtD?KJ`?Ko@*KeS}Pq)7W-Trsm2g?@o46HpR4PE$_+(Gs@Q;z-$ z9&07&rxj@6a-cOT1Wm*owA@SnOB&&5s!?a*x|q#O02Nqe|7F3vgfGZJw7w+z;S)2I zaWX0NcI0Tw;m+F_Bi*lB)z|U|w7jJ-3N25Gmi&KO{sk=;b9U!c$a(B-;f?d&%Qj>^ z%V?10&9-~Lc*=PQPdm?TZ!y0ZAVYb>uR}e;Nl``EB=cBdpX+Cc0n{=!#+NevZT`z5 zTZY?yvR8CYb8UC!bI)^6c6W1cac^{&aZh%M&XD7!JuB{D+%a34CEGmLw9HuEVB&9p z*4vgTO`n1aWhb(HTQS4i=!c=q905d2~8 zXK4FVStIt09l;Q-$!OsH_k;2~NL<$&z~`lbJQWodCb5)oJ~{>D&XM6ya5cLa*c0d) z=m~o5%$#;P2fVGkl|09?FK4~VbY=F;Ov;*@bt|i2)~f6^o-5uo@93Nb{=K0$;Y9f2 zERTK_2P#XT#c578WIC~}*xCF}^J$wB*W2F6Uc`~?WZVnlizVzzypr(Ny%wGx5qDDj zNq3gh<=6q5e}C&!%Mwc)%T41*{wjFHFPRv8uJTY@;R?SEyMC~ypsimH)zlh9AhXE2 zsHbnsfY$>?|4HT^+l3!sXo$xgkaK@FeB@t(q}$4{kgvf-;B>f;%7Xgb2Os7W>QuRa zR7_kfw29S=j*N^5(;>-!!uLLBzOS6GDLh7JW$#9NA7uQVQ8r_AdWW>Gsnb#?eJ9h` zrxj0grVUKbmzkQ?*W>rb`_~83f&)U=qo2h#>Rf#?ahp28H0KS*F6Obe;*QSFrp^t{ zYVHXM$%%R4S@|}xaN_NR@(GXPpTrlAce>v@9>+bmy|Y%dh$gSmY3#!9WAD?aP&a9y z29g(vyTn}LN4+Dw=06ZJDm=f#1^8Dgoj$?t;bVqj#$$#Be077-L|HrAN?8w@%YgcQ z&-A0Yjyc&h)i{lRf||#7;QAJ$CJ`mI7xD^evUo`77b_5ri#!ii2rdnL^I!81_ASlX zN9?_oU^v#Vs?%cz@?ld&cvIi3B!HT6bn-t_J1+37pdwTwrZE3(Ub|IB$D zI2mjgZW4YJ%O{^i4g4SEJ*og}G(0iwv1Y}&ofjPSog-Zp6H4Zpk`$kmnaCw}OWd5e zGBJ`sC+u>6b7nfW=ibL{4XjJeG^)Ld^G|U%6H%R8is}e`P;Y2l*Ar$aE8h@h;kh^# z9+YqCAK64s=1&`58mprgtE+LW>4JH+rHo~tIo{mRw9y!a6PjqS8?xAVrWi=FUgDzu zQf;Dikq)9}YF2bZQJ#pB>B|&1|wRwQY>s z>Zssa5q~S8QJ%v|p``suhNPKEEs}=k*^{^_VPX7hx94|BQxtpb>^@~-o z?uE-`C+k~FL%7-wH0?BI8~X8u*?IJ6su@{buZlX$3i9vbuvo#!Td<0QK{nXV-`3YJ zr$Npx?{x1rtZ6Mh*6deVZ?bA+zsb6n70T?K$!E+@>-gQC_At$pUL^f%+M9GorjT_s z`?)tc=bC?0pi1~i^pJQ_-mgvvJ*@~6I}W%E@q-dwdCui2mZxc+ z%XxO?$w~|-yh&IWf7<=R`N)wKx5akCvc~)lO!A$4n5_&~g6-6PDDNsk@jn|X@w#vq z|Ew2=zm-OIgX(Jm)0Vx@Hb;eEKVtyy6dS?zi0$?y(AjoFrL%JazcG`m@LWsli6(a!~z`kBDckQNr<(NkCa4khJ4 zJ(H+H{S3F2mi$cPF-wuSlsL0}p1rWMlB<)uR{ZvauL)Zd3di?ycXS_clkP3f0ggrX z1p9j1TZ_kZ+js+P{(5|f-35ouqNwKVLY~6fmJJ>CLqv!W^&y(0PNx{f!>y+$oz84z z|H1CGHG7WbIWP7z#rSQUlk3O&n1ReydI84D->A%&5Knok#;N6$3@N{q1zxX7qQp0` zFR|mXv9WToo6&pGNwJQxLa}?1evy{ZT2XIgR^(}TODGvWUs0Sv{|(d#G!Iz(`+ePf zv~Q^Iuy3<(dd|6=vA$pZ(*t(`J%W#d7C3?#z`;HhYb?H&sw%70V_H7qIG9$WnD^`? z{*)nRG{H}@iM1!{3hTs?_LKI)4x1y7gK@mEFSqmd`EhOI-r6G8kCuLxgP6YsO+$=3 z43GKte3;w79Ya;xRb~ym33w(CPFWjho_PsQxg9(66LcJ-)0IKQ%ummzyU|a;oAAQd zdc=#bwp*R3 z{-j2gzm;)#v``+()8!%ZBzcf*kzYtDl3#iw9hUxq2>YRVdfU*l5n`_Y$|HXHqJ067>^s~gBt&uxAA?r+MJtP z2l{gXFroLOzV8fb7MI52S0-0qLxCM0zB7{?i&#<`F*&Cxq!j7on_BP$(jl5n2jkh2_F}_+H)?62CT40Y_HB==bIU>7}~T)t^0;c1kCu9)2=J znXF7#7ATvQM~I*ngsaN$>TT77I_hfB**!&VY%A20$a)i03BDrgf=H5=8VI_POx2^0 z(RG-kOePa!YOotvFIx(AtyAD=v>Z8rRPHN?=~uXaxXs)|ZV>qCO+m!?!k%C!!11CO zd~udCO;PRYrEk*X=mhMO7E)E<0JaSrd;=+>h9N(ZTO)A>_4U_5&|azi0p0ZrP+3l+ z0(FF1TTKF^;+gVId4v?V{Q!*^mwQn>I!vfCpaDCf9{JiaBIYax{4z z%yXUOD21#^oddIZ8C3w4*B@|h979E@k#LqxLEUeVDh@xKO*k*Cp{9YXZUmXXH?;(= zBR*8LPNo{6O5iWJ13mulFGAxBhGGlU3ixrF^r$NlUAn4C>O-|Kd<3Fu9qk!>^v0+e zs-iwo>w&SKis;NPwURm$+WWsX@RUK&i6K+)0ZR4Zh>gs}>8vKIYuX|vyhl5$#Uan| z0`)dcuwFbyEGJbzf-~T9{XQ`a9#;Mcr1tB{2ni z$277jDxo{V7djcQ2$EZ<(>O&hB8#9BB9(kZo}ijC`>9dH3sf(qYn{}J>K4qzjoL%7 z8#-yD)Rk&gjKTN#%Oi*%ko`zdf7i=UL&&_S*EvLmz~3H%c#aqM@Yhr+<~Q;&d4&1E zp1@42V0vIVX70j@s8G&Bzvs*hi7J88v_w7yB|A>pg-mK`eTLeR>cS*wm4$E8bETp> z06C_!a2!$9oANQ4Q_jn+l|PkL${PJgGC}JCK1vUe;q6*~y{pO;7F=wOeXB@{J$OH-y*fMXoDX zkITz#VtcY(Sc=^MSBWun75WC{#J$-M|EPRaKdKOsf%tnzrX%>>!}TI?nj%mQUKl6( z23mFPmQG@xJy+{1#X@=zpys82;xCixFcLX_#)j$wSG0k#{M-};FnYyE>YdF8<~f-_cXte`-KCUl`Dw5 z?ndmv*0Z={F;8$#JqU`>1=N^VW@>_@<75`XRirQWC!^_WsD!Ufe`6RbUO!IEK<$AH zQqyi!%)dsQSx4RU9nFboTRGIDagqTZS09u#X)jhstGrEWAvKmtDA`Ie>5e#BIt{wT z|Frpj?1WHLE+>7C4vn;pro<-0gJ*1XWwZ%eJXELySGFgyToUURRQD_bm3=s>XdO6T ze5XWa1e~&Wb4$2!JY$$_@WLreG>$ikrhMk>I6v*hGp`N33^9I$;ksc4m<4apwvwy@ zicl%$B=ZnX5>??BQ=GYk?*V!&Gm|x;Pb{2)CD^fuH35?&1)1wBybhJ1AU{$17b0Z@6~UFN_yD zM}LX!5>CX*#5zXX!Da72WN36?=tl5O=^d>m@WwHhMNrr{S+3?wVVQm-JE6xt5rD^ca>t-2kIcNE1DFCj? zd2kwP!a2GF6QS?ZT@l;=h#cy7RBHCt_kb|Qk$;i5$OZ6}D@^?aieyP2$hKH;mlOw{4A8U^8D3Y>Pz!(XK}oM*$4rs0!;AN_UxW&GE3 zCVH!TPkYSSwKE2#cS*0F(KS=dYU?eVbH=wfP&KSZ3JL~fHNFtP()YO&#$V01EK{u? z;yyc`xGunpwRS>g{NeaE?klcBu9#!K{kCm|b+pA{PBrx4N;6xjljLns4`kejzbmU` zMm{KyQJzBM+dylf&j9~xFvk0zOfmL7x7L_x?rgQ%Otx{>a&X@=*b3MlSQlHDSngn- zcHOwZ(4IfeoNOQn4KR^i*u zCB*f&H*{WeKTp_}r*Bdq&+5dK z_zLbp&IAW%e{8D&hxRN(kTub#P@N>JUDa{wX!Qrxjf$zusF@;BHTt*y7de6UFpJcveQ*feLiCt-eu>e1anMJ;W5@MNNPXAN81UHzgVi%lEqf&3>fHG833|2~nD^ z@qA)F#N&!3%ue_ce<8lQTXU9jRJFA>|7KwLg=`tbWu_84wJXYPuOyp%Sl+3e zQ;X{&F%oqq_1P#l(m2n&$C_g+Y_D%mvODZ;9RE7auEx%O_T6!*HjAydrLO5uLoL1+ zSD)3vmWvSE^{(Lb`4mOziap^Zv^P~Hkp+IB9n%jGOUSiU37V%XQR~T$2JpYJPD52qeT z9g_MuWk~Y&WIB0u%Dl9h*+cxrLJy<;#ZStQ`c0^T5=?`vjqH_OU)(Jd`X=0pFA)F1 zT_S!;{JwZwe16xDcHL6Z)Xd=Lf8e9+4%$wU55<(UE|*H z_Yv_-u^8iiv`aYKcefvmdma~!`@!BZZU~4%pDhvdKvQj_i*Lb_ILpWAS@c2b15RUS zvE$pLML`atP^DWE)v&tW2m99yq8b@O4NL?0F}5PFqN22p_EFWbo2;!al~0LD!nSDf zh$Z|zcr`F7FgdU?km1kc`|R!Dd7ka|)b|L;MRmxYmU$)p)c3Wity2ssol@4M)=x8~ zjYxNA2E6Tp)1y74L*OB`xO<%0uxNVMj*KOA!HxYjlne)=|w_LjOXJ-`$gDm-a zlim0Tr%RSi#wT|mPj*MU4%OmY{SRUoxsJL)cVOzW$GG!`-w~1g$y(i(6xT6sF6ezv z;=G9Kzq1v_ig*zOvmZ@H`1*}z%foAL7JU_tYdsO2xPg9{3x22(d-`P5h7zD({DRER zDKI1cC3hgVv4$#2{;gkxOVm46QhlJltdK8=Kfrgfe8d&@B4#r^Fb&>wndpZv-u8%G zxjYR$gtxz^U-q)hhw1-(U!U4M#g@_|u!STb3jX0m*W)L1eFJ4aYCxAR|iG%q*eq`!6P6JJi%$<8BT`9 zv=w05Das_ps*IKgNUYdb*ceNWU5eF66kPr>;&FQ<#(~$zM}%WF`9dgiFVe!&eq+9mw}wl4XHibk1_;B$Usi z=9!#mN&G#baH2QiO2WE?Pj1#Z+y(n@LRueQpIfU3s*MdMSb;+v7}e zgPq1*`C<{os2)Y~N8TWJStocJ+L;A`S%`k-_xJO+3bYUG_V3M^?B%^*J)=G0tf5)8 zGW%sDW$epH&Ul>BBYT*ycX+ZONENlMdI2a&m+~LXYvW!zcDow8hq`iH<6Vzk9#?Z$ z)Y;Iv-C?sYwca$X1VyU=GIasO>$Xx?iFF_>=jG(l`5RE`ac_KXe$ z%W_J@97zuE30H+z?G((KkiUVS^7FnyIf7@fr@E(U_L9uU>4nlSrc;^CG7hBYOP`-n z!L!Q$Fw#(ZrmWC96W^)6dReDg3Neb~Qi4@XU~7xCK7uON-xHIPQAfqqteN zy@+mCw2+psro+Z=29_Vo?uBFBCGZl8>zy%A)?oZI>H&GXJX*P}=EwhmK?6PF1@I|m zfDRJDeC&kzIGZesiVD;bt96x{3a3(PiabdADAX5b#?D5+M9zj&;a@l`bUm~&yezyZ zR5*CaZw%}XNP&(}bX?B4-i;#mu`4tw4QVv+6Q26?vT zM5VfyZEI{{>*;9g+T@CJw{?GTpL5r7V~^=Jx(R1J`y*s|TAI5XlDP5gO+;RP#>#OE zaqj2Pc&6)h;6OhR>p<(1{L^}2PB-3ex1=Np+K|KE* zr}Q871=>PneqVvAH3(Y0mQqNV6Kfo;7ugiv9DWk+6z&%K9#H*H{9pX(fpFk#;DdjS zKif|Q7W(`9O87Fp*`DO=BiVECJ&@Htb9Ls9tfo1=L-~X}AeAjtH>2+P0Q=T>&|1PS zIi@)4x<h_8$DWC88~oGph_TZ!t>@ZHhdfy={@ zW~wN?jG4riMVx;h|Hd%ZG{CalDq2@rb1YLWQ!Jt-4Lr=A=EJ7x&LjG6@#jRKn@$nEg)^3bh=Ev=H6mlv~i>su&kh_j+BKC>RTqj+# zT*Vz9tgpe~+sl>X9&(9%A~%JOCud>ZKa7aiF+_Zdk`<|j^dv+f&au65%3R2=GflS8 z)(Xh{b+9}#S2hc(S@dt)P|#g|IH13&((-`7X8%d8BRON1?r; zJ0U~3e5iP^S|D$rN}xj^Ka?Sd{6F{}<*dvh{l|TGa}Iltdv1GZ&jC+)&sWccoT0%F z(QHYF+hr4dKHNFJ@`EfD;}rWj$8)C*N{IQc;;x&{>5gnW=U4>&N0P0Y`LMyluVDwW z8HlKyrvHT}P+4Le>VX-MT@Dk|$z{|T`ZCV747;6u!1XrVHC8oOwG6lXU>Rl>OovTh zOvTJ&P2G+44PU?vUBwmye|$b7bQi$tIf47fV672|AV;L-IMvlsJA;i8(e{FUa|IEu zQ($9FgR-D1wUf$5jp7}sZ5!*S5T(nj+0-aj)w+^L=n_kbkdedT_2JRs^5N5=-$ECH z6M{X0FN5!cWN;Sxre1JJ&=Yv*zwBG*yP6|-*LgR4S9nuAkGoKqRIi?iz2FrQtp184&F3!zPkK=};vh#*>r&Dl@vCp=hu>?(1P4T8g<1D@w`v(5R z?WnS39MK%TQVe9GQqV*Uf-c}R*vOxI z44$|@aBon%WI#?`153qBoYCs2=ahU(L1l@&N3H=LKnXug z7BOEBK?z+(--ngwGR{Ryl_~J&n*&m0X3P>B673!>6U`4r=i_k2@P^P2q1wS|0V;6Y zZwA4#zJH=`bIx(^1>A3J-p)B~a{kC!l(Ww73NMN^myXK=)y4WdvL^F@n_=8Zt5E;cz)iI}bW2$CWtNR{Q_7cc$@G65=}27czUZ z=Z8NsHfv5FyuP|m^_PrH4ph}v-F9%y!PLRN)y37Ts~1#9e^`8^L2ZYa7hf5FE?LTZ z=zj{gj`Ys{puwD+OriEiUtsC8M#!fU*<*(+bjOmLglRg zEwKgoXB-}%#CsKUq)MT@sR#5XOt7%)0b*R}^Gpu$@?X=pQy0LXT z>n6tTjZb34*^gQB(bRw!DCvjr=sqjliWSpl{%k)Q85x;Ce$I$ajqZ!K%f6CtpkJPS z2IJQ2vLDaBm(XgyB0n?w26-LK+~&5(jL2<~L6HHGe_^Nc!~WHNXTL3Lu;uI->%%(9 z(QtWqI$z3e6W;H=M4Q<_5;HUgXCs zV#{Km$5ycB^ayKDck{mqdn{y(_cE<|Is4gt`mh#^m|u^t=8LkYGIR4dd)_xE+9ii1 zC-M!z6||ifGy6LUFI}7P8rg+CCeN|Pp2ruHCzdUPv)~u|utQL5e zx!b?jf7CDb%l)_?ia^4z<7?@DBsWsa-0v*^aeu6Thu_!l$ljGV*b9FpK5r`VoH{Ce zad;;hD)N4V7x|@l^XkW1LAC5+Vix{oG&6-(_%XEe6uzbkcvqS?FnD|BPJF6~N4)|x zbQ9jy&f|NIpWvaqgzp$W&s#_*C70CG&s@gD1-#R=8Qpxr@eVb0RBRl_y|LS4BV#Yd zK8bB&jjmI?8!L0e<8Q?G#G5BBV@~UxL`C8t>ulYbgMEajs@Z60H+~fptN@&vIup*F z@wGL8HK&&-(RI}9cKC6+Iy3_t>%$uJ3`SIK!Xv}4gqMaRSp`{t%z8g-OIE($&wtK; z&Hn(Med3q-75-L#y_1BlY|Xstdh|4bS!9nn(I@e^n(#jLCgSy}ijmJtcsc6D z+aDY8F*b*NyOXh&o=DOfpO3qe-{Hq-8EbJ5C&#f)bUk0-?SwwQXV3l9D0%KBu8cIsR_nmz)rg^V+{ zv6A*3eiIv!(+lvp)|_`zQmMnNu!ZsNwilm@WmtGAuzyMYmFJJyjHh1Z_>lNLc)H5L z>sc3k26X4S>^=Ourr4u*yZ4IsKBFzZHXR-uzKd1Hx%j4C99|e+$u8A(c%5AqUJ!nt zIyEXhfE}Et(8|<$`&gA)&HT?(cxWBx-S73sb8CKZMA`RR!!GBA>=Y3nX+!W9)*3Hx zp->riJsA&#c(P8;Z?g9#ZcYs07?dbX4B&q~tC&wDidk(f zOYBJ0vi>%ZXNy-@kNhFoinX`#*y95Ho9*Ncoe=)jn&I&*AOCGl@wVETnVQCU_}$N% z*h)rHODV5;tVzCtC$Oj3fqXN*5r^X)Y$S(xd7Ms*@Ctfc$vWP4<~OqO?j;^#2eB45 ziZXwgwMy}-`Vl@iOITTy&{EbH%kjUkhGQ+hR2ShHZZW$cKgWmT2E2!D2!=c^s~Dm#Z(DIb5g3H*5O1nvtkU!{$D0?%vxm{n{UVCFZbus%B-`Dde#687elrw*i2$4}s;c(lBk z_h0Y9OWsrL`+E?NhL0fee{i0FKfU1`H?p>S9bWA&!^YZE3a#*vb~+Sf6|x=ooru2> zN{?BoUU)*Ql@esb~Mg_ibuVvj>=9@b4jM)l5d`&3l za41R1S0U*h^0R|CwKkFSwb*|t&nYV?^+n|D?|8O*mr?q>zymU4Q$odzQQyY%-$y~} zeEjGw;#hzd#6#&nI4?mrEBUXc)|Fvn;vrGILq^bLlhDbmx15cAh*!vdnW$NbJx1XZ^@|Pkag%Py_#s-3>kQ6Z$*!T8RJ4n}8Vv zpR@_ZYIoQDv94NzCmw*3~aE#aSw95KqL8r$E3Y!yhj0XZu;Z{m=%#LGs{)oyp8Y}e)8_7|GSyCz7H)>cWkZ) z*4Kko|7-BCd28U!cM5gs1u*8L?e&y_%nLT5ws*oaa{(>!^~kT98I5MfVl$ICMswVU zwTK7b;q=QzoQr^zJAoca>i9r=51`4ZSi&^C8b6MeO#4x*_n?^pXst!XjNq(#l6 z{b-5BHsr`gXEpSQqFvGImsrf(SkGV3(EW@To}gvEmma%_wn%g~j(Yk4-dM#S>l8*6 zPr>zlW`gEZE6b?QKcH)Aha14>6sUXf#-%T%nFl8xz>uajX^m*rYlBuTA6u7p?M!Om zCH%W%2mP^=L3mrd70Vh%J?f2hbYsNV6`Sgcg)~JY%_#@bN*(22P0d(?HH%i>p|oc4 zpF?XQE#7=;!e5c`Gmej``I~|~&LgiLmL9?%wD`L{O24xY*-n9KnAmJ2K1Lf;MUMEo zEIrar&O5Py3Tn(Uc$M&%dbotTR6?ozlk{)tpVo6%%6TJg%&t^JY_JMHjg?U6Eo*dB ziPyj?Ah!|T$$uCBGAwf+eO{C{F-dNAAyFH8vWtV3vJo^+Bme!WM;Fk}T!v-z;QlVO zb0*Z=U{w=nxq8v_<)GuXK=vYUmB^ZhM%$9RT6|fyLtC3^H9J#FO3~U?)aSN@d*SO< zeA5o#$!Z*WABqRePw|cUG|yV&@z^VEd5AIQX6*F!P&03`$DT{d^i7^li@X}7oymUo zal9vbpWi<+HtX5YA!^aoL}5HXacOcyVru;4_(SojvC6vN#lDFb;jcZ5R&sfAGBUL*)4QQq9ne6Jw|Wv{jQG5 z`;wih7rT;Ir2ZCa>2(MVr7VlQap7yiPvUX@E?U0Q&@gX@_YJ!s$K!|SBkIp2d=&3U z7P0GQ5wk#hq0%(*8P6+g;~m+R^l_pqD~!|O_)PMPEg?>kmdZuiD8 zYAR<$HlAnNPPB9HVQc@2?OlT{w}sw?v=GPeXWNb5U^4A!PwsY8e_GQ%NPRq)x_<_B z^Bj65pKn(!q@*w8{gX}9?U%5=8z`68Y3C17o1}Jb#D8g9TA7t-sUa=3^j#yMAmje+ z?8V4tG`W>p(1g}So}JF6j~c@}T;GH)3_S9m>m6b2lgpO`dh&ewEl*fqGukQP`R)NU z+k-xE2e}y=jAWvr3bfQ3or{(_{iLPeqNR63Cwhf=?v%Ol6q>%s>&Tl!1;KM$MVgi> z*&R~Ej9|!_3p7fSRh{_RxMS6X%~tZH@r%1oJ9P;13e9SZbq(2 z4%2WMm7e!9}qEG!om2DF5vm=eD-v84)RAS5Amtn1nBkj zlWQ3fEN6y)6yAm3I>6PX% zQrkdVEFQ?m(3iYMFM5EsElR5+k`1LU-#|(CCO;GKPn-%`(2ZdIlk!_g%l#(hS3z$g zo_yOP-4)pT5VX;q@Hxb^q9@r$kN7+z$UoEii)1B~_zt|)UPy@+;=lWP`rXGF-A+Z9 zL(xSCte`D@-xtXEH;$L-?ZjX9eENq?sm9207d`YH$aO8DBF1}X&@NZuS$RL>s2TKw zPvWmwo*QLs{xuwBJbHvZ&I5oRMrq8X_56%B^i8bgdFs<*yk@^h3Ef9ow8WbC(PoM# z=Vj=4H#QhW8X4uCh;(BZ5lo|Q3}sw3nGwMZ-msfOt$C2r?T+oYKucTbgDSD=Q=qjS zd*6Z;i{Jm=*rj-AF9d!lu%|*-ehsKg8yN|{N(mJ6q)<*jP!4||*sIa)`RJn~;hPxG zjbikgjZff>^kPeSuA0dV@C)>+i{beRy=*C%d0^dxh6a=0$w)kcV<32EF#>Ny&l4qw zE6`>M`OIeoBjdjTNHiMyBM1$kPrnLzyD;`BrT)H*@BTk9rkKI;bii#pTFIlNI)mK{ z8yOgk2YMpwW3+p@6de$eb%DK)9E+c&}N)N&)6y$rJcp-q6JS)Cn8ra z5B4Flm%|pKC968X* zrG;olK68*bCpaHvTyvOli#(_Ar+y!T(n0jRhj2A_RfKnw(|!CaDYHG4+3a%^AueAHC z35%ZPzctYIF?1r5CYdQX3B8NH8=*xU8e?($k#h^s8-lXg4u|bXaTvYG7*=dd!jkK3 zG!w!);?O!uUVaFqK1BKvFt$Ns9i_H{8vX&tyOjMq9CLYoolRRK&!VMBxP+Et71vVE zYY3NMEz3BTf+_J|(YloJU(0y|IjBS%m1szHD5LwzK!;U<9ZJ2Ea&C$pHl=-)=eQ<; z-G>9&Ymo9NC0|GGv#_=-%2!IW0eK1YZ$Q47c)}Wz*t?8^$y{*f@%$j(@{`QM_;6{! zUwXO}aM{6qgt#nXvf_zh zYFqK;J24`Y55GL}nhUPr=W;LOWyy<5!KO$Kp`H_@30HYC6b~md$`@HAS1Ia(=0)Lz z;tAMDK36>?U-Fch9q2~nk{mN78Bi8lB9T~!zz82XBo}gs6e5wxCAttefs}lBa1TQd zrzq%H>ZAOUNF=dBMJUUigoKuG7fjKh#>&0mYrNp;As9+W!kSCjJRxwdlFGBijhX*wOHsPZWvlhwher>eCm z179|KOS6!{7=C>WOEqYrV9NK^p$t~Ajvu?KJSvl(CB|~BsY1<0?Iwd^I2?hsSfgtEe<>}Uhd#>* zwESF7BwYV5cTN_AR~R`PyoU8oVpRf#R~`o8V2ql=Dvra`GIu--PqET-VB8#?`mmC2 zPfJ2CT^>h2T|R|ykcQ!~)5}$;I}Fpa#JHcps8lMs>eQZr9dCnDPI_nIbZY6ArQ8L| zq;fGzSum{}m73BL`YM%TxRSQ#HQ`eqHl3nkDFw4)z6h~R9 zYP!;Nyd_O(OS(R18hko`iPL*4Bcrd<{2W%{4NIt-h8>2a>QB<;r)hc>PRCoaKuf&x zv+FO>5IC2!be@8xxmKP^&v91Tj;4iNyy6{CQ({dvE3b4&<*PCquF$qz2&~>KmO&bf zT;*q}det~NJDygK*3zqu2)yx44{2B=mypS$ns*i~De@C2gR`rp2((Ed`Zs8YVO&hI zfY^`p6xui{FOw#nli|qK@lY8Q-ngVgD!uxA4M(vYf92*d6i%oq%<*T#w|EEdaEzv2 zHJ3_H!s)3l>_Tc+N?&v3cqtX7p%@NNVeQ^<kyO71jhaw>#CtE|Gw>CIC0DrbXINz$d4R41RorAw~q zDucB%5@%X6Y)4xpIo|q=r&4pUaxZs!*8Dq-Xo}ohNjXU2ulg~3kx}(v6!aRfNaLdS z!b?M@U%PiHhVLNir>Pc162+CXNUHFrO_fq<8Ju2)zu~GZnR7-184YAKkkLR!0~rlu dG?39iMgtiQWHgY`Kt=-@4P-Qs(LlNe{ulp=SF`{C literal 0 HcmV?d00001 diff --git a/SecureDNSClient/Forms/FormMain.Designer.cs b/SecureDNSClient/Forms/FormMain.Designer.cs index aaba5f7..0ec5cff 100644 --- a/SecureDNSClient/Forms/FormMain.Designer.cs +++ b/SecureDNSClient/Forms/FormMain.Designer.cs @@ -51,7 +51,7 @@ private void InitializeComponent() this.TabPageSecureDNS = new System.Windows.Forms.TabPage(); this.CustomTabControlSecureDNS = new CustomControls.CustomTabControl(); this.TabPageCheck = new System.Windows.Forms.TabPage(); - this.CustomButtonToggleLogView = new CustomControls.CustomButton(); + this.CustomLabelCheckPercent = new CustomControls.CustomLabel(); this.CustomButtonConnectAll = new CustomControls.CustomButton(); this.CustomButtonViewWorkingServers = new CustomControls.CustomButton(); this.TabPageConnect = new System.Windows.Forms.TabPage(); @@ -64,6 +64,8 @@ private void InitializeComponent() this.CustomLabelSetDNSInfo = new CustomControls.CustomLabel(); this.CustomComboBoxNICs = new CustomControls.CustomComboBox(); this.TabPageShare = new System.Windows.Forms.TabPage(); + this.CustomNumericUpDownHTTPProxyHandleRequests = new CustomControls.CustomNumericUpDown(); + this.CustomLabelHTTPProxyHandleRequests = new CustomControls.CustomLabel(); this.CustomCheckBoxHTTPProxyEventShowChunkDetails = new CustomControls.CustomCheckBox(); this.CustomButtonPDpiApplyChanges = new CustomControls.CustomButton(); this.CustomNumericUpDownPDpiFragDelay = new CustomControls.CustomNumericUpDown(); @@ -192,22 +194,23 @@ private void InitializeComponent() this.CustomLabelAboutThis2 = new CustomControls.CustomLabel(); this.CustomLabelAboutThis = new CustomControls.CustomLabel(); this.PictureBoxAbout = new System.Windows.Forms.PictureBox(); - this.CustomStatusStrip1 = new CustomControls.CustomStatusStrip(); - this.ToolStripStatusLabelDNS = new System.Windows.Forms.ToolStripStatusLabel(); - this.ToolStripStatusLabelDnsLatency = new System.Windows.Forms.ToolStripStatusLabel(); - this.ToolStripStatusLabelDoH = new System.Windows.Forms.ToolStripStatusLabel(); - this.ToolStripStatusLabelDohLatency = new System.Windows.Forms.ToolStripStatusLabel(); - this.ToolStripStatusLabelSpace = new System.Windows.Forms.ToolStripStatusLabel(); - this.ToolStripStatusLabelPercent = new System.Windows.Forms.ToolStripStatusLabel(); + this.CustomButtonToggleLogView = new CustomControls.CustomButton(); this.NotifyIconMain = new System.Windows.Forms.NotifyIcon(this.components); this.CustomContextMenuStripIcon = new CustomControls.CustomContextMenuStrip(); this.CustomGroupBoxStatus = new CustomControls.CustomGroupBox(); + this.CustomRichTextBoxStatusProxyRequests = new CustomControls.CustomRichTextBox(); + this.CustomRichTextBoxStatusLocalDoHLatency = new CustomControls.CustomRichTextBox(); + this.CustomRichTextBoxStatusLocalDoH = new CustomControls.CustomRichTextBox(); + this.CustomRichTextBoxStatusLocalDnsLatency = new CustomControls.CustomRichTextBox(); + this.CustomRichTextBoxStatusLocalDNS = new CustomControls.CustomRichTextBox(); this.CustomRichTextBoxStatusIsProxySet = new CustomControls.CustomRichTextBox(); this.CustomRichTextBoxStatusIsSharing = new CustomControls.CustomRichTextBox(); this.CustomRichTextBoxStatusIsDNSSet = new CustomControls.CustomRichTextBox(); this.CustomRichTextBoxStatusIsDPIActive = new CustomControls.CustomRichTextBox(); this.CustomRichTextBoxStatusIsConnected = new CustomControls.CustomRichTextBox(); this.CustomRichTextBoxStatusWorkingServers = new CustomControls.CustomRichTextBox(); + this.SplitContainerMain = new System.Windows.Forms.SplitContainer(); + this.SplitContainerTop = new System.Windows.Forms.SplitContainer(); this.CustomGroupBoxLog.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownSSLFragmentSize)).BeginInit(); this.CustomTabControlMain.SuspendLayout(); @@ -217,6 +220,7 @@ private void InitializeComponent() this.TabPageConnect.SuspendLayout(); this.TabPageSetDNS.SuspendLayout(); this.TabPageShare.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownHTTPProxyHandleRequests)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPDpiFragDelay)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPDpiDataLength)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPDpiFragmentSize)).BeginInit(); @@ -249,8 +253,15 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownSettingBootstrapDnsPort)).BeginInit(); this.TabPageAbout.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.PictureBoxAbout)).BeginInit(); - this.CustomStatusStrip1.SuspendLayout(); this.CustomGroupBoxStatus.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.SplitContainerMain)).BeginInit(); + this.SplitContainerMain.Panel1.SuspendLayout(); + this.SplitContainerMain.Panel2.SuspendLayout(); + this.SplitContainerMain.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.SplitContainerTop)).BeginInit(); + this.SplitContainerTop.Panel1.SuspendLayout(); + this.SplitContainerTop.Panel2.SuspendLayout(); + this.SplitContainerTop.SuspendLayout(); this.SuspendLayout(); // // CustomRichTextBoxLog @@ -283,7 +294,7 @@ private void InitializeComponent() this.CustomRichTextBoxLog.SelectionLength = 0; this.CustomRichTextBoxLog.SelectionStart = 0; this.CustomRichTextBoxLog.ShortcutsEnabled = true; - this.CustomRichTextBoxLog.Size = new System.Drawing.Size(694, 185); + this.CustomRichTextBoxLog.Size = new System.Drawing.Size(878, 155); this.CustomRichTextBoxLog.TabIndex = 0; this.CustomRichTextBoxLog.Texts = ""; this.CustomRichTextBoxLog.UnderlinedStyle = false; @@ -292,13 +303,15 @@ private void InitializeComponent() // // CustomButtonCheck // + this.CustomButtonCheck.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonCheck.AutoSize = true; this.CustomButtonCheck.BorderColor = System.Drawing.Color.Blue; this.CustomButtonCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonCheck.Location = new System.Drawing.Point(292, 220); + this.CustomButtonCheck.Location = new System.Drawing.Point(302, 303); this.CustomButtonCheck.Name = "CustomButtonCheck"; this.CustomButtonCheck.RoundedCorners = 0; this.CustomButtonCheck.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonCheck.Size = new System.Drawing.Size(90, 23); + this.CustomButtonCheck.Size = new System.Drawing.Size(93, 27); this.CustomButtonCheck.TabIndex = 2; this.CustomButtonCheck.Text = "Check/Cancel"; this.CustomButtonCheck.UseVisualStyleBackColor = true; @@ -306,16 +319,14 @@ private void InitializeComponent() // // CustomGroupBoxLog // - this.CustomGroupBoxLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); this.CustomGroupBoxLog.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.CustomGroupBoxLog.BorderColor = System.Drawing.Color.Blue; this.CustomGroupBoxLog.Controls.Add(this.CustomRichTextBoxLog); - this.CustomGroupBoxLog.Location = new System.Drawing.Point(1, 356); + this.CustomGroupBoxLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.CustomGroupBoxLog.Location = new System.Drawing.Point(0, 0); this.CustomGroupBoxLog.Margin = new System.Windows.Forms.Padding(1); this.CustomGroupBoxLog.Name = "CustomGroupBoxLog"; - this.CustomGroupBoxLog.Size = new System.Drawing.Size(700, 207); + this.CustomGroupBoxLog.Size = new System.Drawing.Size(884, 177); this.CustomGroupBoxLog.TabIndex = 3; this.CustomGroupBoxLog.TabStop = false; this.CustomGroupBoxLog.Text = "Log"; @@ -326,7 +337,7 @@ private void InitializeComponent() this.CustomCheckBoxInsecure.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxInsecure.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxInsecure.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxInsecure.Location = new System.Drawing.Point(25, 171); + this.CustomCheckBoxInsecure.Location = new System.Drawing.Point(25, 190); this.CustomCheckBoxInsecure.Name = "CustomCheckBoxInsecure"; this.CustomCheckBoxInsecure.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxInsecure.Size = new System.Drawing.Size(211, 17); @@ -343,7 +354,7 @@ private void InitializeComponent() this.CustomLabelCustomServersInfo.BorderColor = System.Drawing.Color.Blue; this.CustomLabelCustomServersInfo.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelCustomServersInfo.ForeColor = System.Drawing.Color.White; - this.CustomLabelCustomServersInfo.Location = new System.Drawing.Point(41, 72); + this.CustomLabelCustomServersInfo.Location = new System.Drawing.Point(41, 75); this.CustomLabelCustomServersInfo.Name = "CustomLabelCustomServersInfo"; this.CustomLabelCustomServersInfo.RoundedCorners = 0; this.CustomLabelCustomServersInfo.Size = new System.Drawing.Size(218, 92); @@ -353,13 +364,15 @@ private void InitializeComponent() // // CustomButtonEditCustomServers // + this.CustomButtonEditCustomServers.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonEditCustomServers.AutoSize = true; this.CustomButtonEditCustomServers.BorderColor = System.Drawing.Color.Blue; this.CustomButtonEditCustomServers.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonEditCustomServers.Location = new System.Drawing.Point(50, 220); + this.CustomButtonEditCustomServers.Location = new System.Drawing.Point(40, 303); this.CustomButtonEditCustomServers.Name = "CustomButtonEditCustomServers"; this.CustomButtonEditCustomServers.RoundedCorners = 0; this.CustomButtonEditCustomServers.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonEditCustomServers.Size = new System.Drawing.Size(110, 23); + this.CustomButtonEditCustomServers.Size = new System.Drawing.Size(121, 27); this.CustomButtonEditCustomServers.TabIndex = 5; this.CustomButtonEditCustomServers.Text = "Edit custom servers"; this.CustomButtonEditCustomServers.UseVisualStyleBackColor = true; @@ -371,7 +384,7 @@ private void InitializeComponent() this.CustomRadioButtonCustom.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonCustom.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonCustom.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonCustom.Location = new System.Drawing.Point(25, 43); + this.CustomRadioButtonCustom.Location = new System.Drawing.Point(25, 50); this.CustomRadioButtonCustom.Name = "CustomRadioButtonCustom"; this.CustomRadioButtonCustom.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonCustom.Size = new System.Drawing.Size(125, 17); @@ -406,10 +419,10 @@ private void InitializeComponent() this.CustomLabelSSLFragmentSize.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSSLFragmentSize.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSSLFragmentSize.ForeColor = System.Drawing.Color.White; - this.CustomLabelSSLFragmentSize.Location = new System.Drawing.Point(299, 83); + this.CustomLabelSSLFragmentSize.Location = new System.Drawing.Point(296, 95); this.CustomLabelSSLFragmentSize.Name = "CustomLabelSSLFragmentSize"; this.CustomLabelSSLFragmentSize.RoundedCorners = 0; - this.CustomLabelSSLFragmentSize.Size = new System.Drawing.Size(102, 15); + this.CustomLabelSSLFragmentSize.Size = new System.Drawing.Size(104, 17); this.CustomLabelSSLFragmentSize.TabIndex = 10; this.CustomLabelSSLFragmentSize.Text = "SSL fragment size:"; // @@ -418,7 +431,7 @@ private void InitializeComponent() this.CustomNumericUpDownSSLFragmentSize.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownSSLFragmentSize.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownSSLFragmentSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownSSLFragmentSize.Location = new System.Drawing.Point(407, 81); + this.CustomNumericUpDownSSLFragmentSize.Location = new System.Drawing.Point(404, 93); this.CustomNumericUpDownSSLFragmentSize.Margin = new System.Windows.Forms.Padding(1); this.CustomNumericUpDownSSLFragmentSize.Maximum = new decimal(new int[] { 70000, @@ -426,7 +439,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownSSLFragmentSize.Name = "CustomNumericUpDownSSLFragmentSize"; - this.CustomNumericUpDownSSLFragmentSize.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownSSLFragmentSize.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownSSLFragmentSize.TabIndex = 9; this.CustomNumericUpDownSSLFragmentSize.Value = new decimal(new int[] { 40, @@ -447,7 +460,7 @@ private void InitializeComponent() this.CustomTextBoxHTTPProxy.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxHTTPProxy.ForeColor = System.Drawing.Color.White; this.CustomTextBoxHTTPProxy.HideSelection = true; - this.CustomTextBoxHTTPProxy.Location = new System.Drawing.Point(324, 110); + this.CustomTextBoxHTTPProxy.Location = new System.Drawing.Point(312, 123); this.CustomTextBoxHTTPProxy.Margin = new System.Windows.Forms.Padding(1); this.CustomTextBoxHTTPProxy.MaxLength = 32767; this.CustomTextBoxHTTPProxy.Multiline = false; @@ -455,7 +468,7 @@ private void InitializeComponent() this.CustomTextBoxHTTPProxy.ReadOnly = false; this.CustomTextBoxHTTPProxy.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxHTTPProxy.ShortcutsEnabled = true; - this.CustomTextBoxHTTPProxy.Size = new System.Drawing.Size(215, 23); + this.CustomTextBoxHTTPProxy.Size = new System.Drawing.Size(205, 23); this.CustomTextBoxHTTPProxy.TabIndex = 0; this.CustomTextBoxHTTPProxy.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxHTTPProxy.Texts = ""; @@ -469,7 +482,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIModeExtreme.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIModeExtreme.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIModeExtreme.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIModeExtreme.Location = new System.Drawing.Point(192, 83); + this.CustomRadioButtonDPIModeExtreme.Location = new System.Drawing.Point(196, 95); this.CustomRadioButtonDPIModeExtreme.Margin = new System.Windows.Forms.Padding(1); this.CustomRadioButtonDPIModeExtreme.Name = "CustomRadioButtonDPIModeExtreme"; this.CustomRadioButtonDPIModeExtreme.SelectionColor = System.Drawing.Color.LightBlue; @@ -485,7 +498,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIModeHigh.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIModeHigh.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIModeHigh.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIModeHigh.Location = new System.Drawing.Point(143, 83); + this.CustomRadioButtonDPIModeHigh.Location = new System.Drawing.Point(147, 95); this.CustomRadioButtonDPIModeHigh.Margin = new System.Windows.Forms.Padding(1); this.CustomRadioButtonDPIModeHigh.Name = "CustomRadioButtonDPIModeHigh"; this.CustomRadioButtonDPIModeHigh.SelectionColor = System.Drawing.Color.LightBlue; @@ -501,7 +514,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIModeMedium.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIModeMedium.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIModeMedium.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIModeMedium.Location = new System.Drawing.Point(75, 83); + this.CustomRadioButtonDPIModeMedium.Location = new System.Drawing.Point(79, 95); this.CustomRadioButtonDPIModeMedium.Margin = new System.Windows.Forms.Padding(1); this.CustomRadioButtonDPIModeMedium.Name = "CustomRadioButtonDPIModeMedium"; this.CustomRadioButtonDPIModeMedium.SelectionColor = System.Drawing.Color.LightBlue; @@ -518,7 +531,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIModeLight.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIModeLight.Checked = true; this.CustomRadioButtonDPIModeLight.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIModeLight.Location = new System.Drawing.Point(25, 83); + this.CustomRadioButtonDPIModeLight.Location = new System.Drawing.Point(25, 95); this.CustomRadioButtonDPIModeLight.Margin = new System.Windows.Forms.Padding(1); this.CustomRadioButtonDPIModeLight.Name = "CustomRadioButtonDPIModeLight"; this.CustomRadioButtonDPIModeLight.SelectionColor = System.Drawing.Color.LightBlue; @@ -537,22 +550,24 @@ private void InitializeComponent() this.CustomLabelDPIModes.BorderColor = System.Drawing.Color.Blue; this.CustomLabelDPIModes.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelDPIModes.ForeColor = System.Drawing.Color.White; - this.CustomLabelDPIModes.Location = new System.Drawing.Point(25, 65); + this.CustomLabelDPIModes.Location = new System.Drawing.Point(25, 70); this.CustomLabelDPIModes.Name = "CustomLabelDPIModes"; this.CustomLabelDPIModes.RoundedCorners = 0; - this.CustomLabelDPIModes.Size = new System.Drawing.Size(75, 15); + this.CustomLabelDPIModes.Size = new System.Drawing.Size(77, 17); this.CustomLabelDPIModes.TabIndex = 3; this.CustomLabelDPIModes.Text = "Select mode:"; // // CustomButtonConnect // + this.CustomButtonConnect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonConnect.AutoSize = true; this.CustomButtonConnect.BorderColor = System.Drawing.Color.Blue; this.CustomButtonConnect.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonConnect.Location = new System.Drawing.Point(50, 220); + this.CustomButtonConnect.Location = new System.Drawing.Point(40, 303); this.CustomButtonConnect.Name = "CustomButtonConnect"; this.CustomButtonConnect.RoundedCorners = 0; this.CustomButtonConnect.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonConnect.Size = new System.Drawing.Size(120, 23); + this.CustomButtonConnect.Size = new System.Drawing.Size(128, 27); this.CustomButtonConnect.TabIndex = 1; this.CustomButtonConnect.Text = "Connect/Disconnect"; this.CustomButtonConnect.UseVisualStyleBackColor = true; @@ -560,19 +575,18 @@ private void InitializeComponent() // // CustomTabControlMain // - this.CustomTabControlMain.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); this.CustomTabControlMain.BorderColor = System.Drawing.Color.Blue; this.CustomTabControlMain.Controls.Add(this.TabPageSecureDNS); this.CustomTabControlMain.Controls.Add(this.TabPageSettings); this.CustomTabControlMain.Controls.Add(this.TabPageAbout); + this.CustomTabControlMain.Dock = System.Windows.Forms.DockStyle.Fill; this.CustomTabControlMain.HideTabHeader = false; this.CustomTabControlMain.ItemSize = new System.Drawing.Size(90, 21); - this.CustomTabControlMain.Location = new System.Drawing.Point(1, 1); + this.CustomTabControlMain.Location = new System.Drawing.Point(0, 0); this.CustomTabControlMain.Margin = new System.Windows.Forms.Padding(0); this.CustomTabControlMain.Name = "CustomTabControlMain"; this.CustomTabControlMain.SelectedIndex = 0; - this.CustomTabControlMain.Size = new System.Drawing.Size(700, 313); + this.CustomTabControlMain.Size = new System.Drawing.Size(700, 400); this.CustomTabControlMain.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; this.CustomTabControlMain.TabIndex = 6; this.CustomTabControlMain.Tag = 0; @@ -584,7 +598,7 @@ private void InitializeComponent() this.TabPageSecureDNS.Location = new System.Drawing.Point(4, 25); this.TabPageSecureDNS.Name = "TabPageSecureDNS"; this.TabPageSecureDNS.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSecureDNS.Size = new System.Drawing.Size(692, 284); + this.TabPageSecureDNS.Size = new System.Drawing.Size(692, 371); this.TabPageSecureDNS.TabIndex = 0; this.TabPageSecureDNS.Tag = 0; this.TabPageSecureDNS.Text = "Secure DNS"; @@ -599,18 +613,18 @@ private void InitializeComponent() this.CustomTabControlSecureDNS.Controls.Add(this.TabPageDPI); this.CustomTabControlSecureDNS.Dock = System.Windows.Forms.DockStyle.Fill; this.CustomTabControlSecureDNS.HideTabHeader = false; - this.CustomTabControlSecureDNS.ItemSize = new System.Drawing.Size(90, 21); + this.CustomTabControlSecureDNS.ItemSize = new System.Drawing.Size(120, 21); this.CustomTabControlSecureDNS.Location = new System.Drawing.Point(3, 3); this.CustomTabControlSecureDNS.Name = "CustomTabControlSecureDNS"; this.CustomTabControlSecureDNS.SelectedIndex = 0; - this.CustomTabControlSecureDNS.Size = new System.Drawing.Size(686, 278); + this.CustomTabControlSecureDNS.Size = new System.Drawing.Size(686, 365); this.CustomTabControlSecureDNS.TabIndex = 0; this.CustomTabControlSecureDNS.Tag = 3; // // TabPageCheck // this.TabPageCheck.BackColor = System.Drawing.Color.Transparent; - this.TabPageCheck.Controls.Add(this.CustomButtonToggleLogView); + this.TabPageCheck.Controls.Add(this.CustomLabelCheckPercent); this.TabPageCheck.Controls.Add(this.CustomButtonConnectAll); this.TabPageCheck.Controls.Add(this.CustomButtonViewWorkingServers); this.TabPageCheck.Controls.Add(this.CustomButtonCheck); @@ -622,34 +636,38 @@ private void InitializeComponent() this.TabPageCheck.Location = new System.Drawing.Point(4, 25); this.TabPageCheck.Name = "TabPageCheck"; this.TabPageCheck.Padding = new System.Windows.Forms.Padding(3); - this.TabPageCheck.Size = new System.Drawing.Size(678, 249); + this.TabPageCheck.Size = new System.Drawing.Size(678, 336); this.TabPageCheck.TabIndex = 0; this.TabPageCheck.Tag = 0; this.TabPageCheck.Text = "1. Check"; // - // CustomButtonToggleLogView - // - this.CustomButtonToggleLogView.BorderColor = System.Drawing.Color.Blue; - this.CustomButtonToggleLogView.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonToggleLogView.Location = new System.Drawing.Point(6, 220); - this.CustomButtonToggleLogView.Name = "CustomButtonToggleLogView"; - this.CustomButtonToggleLogView.RoundedCorners = 5; - this.CustomButtonToggleLogView.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonToggleLogView.Size = new System.Drawing.Size(23, 23); - this.CustomButtonToggleLogView.TabIndex = 10; - this.CustomButtonToggleLogView.Text = "T"; - this.CustomButtonToggleLogView.UseVisualStyleBackColor = true; - this.CustomButtonToggleLogView.Click += new System.EventHandler(this.CustomButtonToggleLogView_Click); + // CustomLabelCheckPercent + // + this.CustomLabelCheckPercent.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomLabelCheckPercent.AutoSize = true; + this.CustomLabelCheckPercent.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelCheckPercent.Border = false; + this.CustomLabelCheckPercent.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelCheckPercent.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelCheckPercent.ForeColor = System.Drawing.Color.White; + this.CustomLabelCheckPercent.Location = new System.Drawing.Point(415, 309); + this.CustomLabelCheckPercent.Name = "CustomLabelCheckPercent"; + this.CustomLabelCheckPercent.RoundedCorners = 0; + this.CustomLabelCheckPercent.Size = new System.Drawing.Size(25, 17); + this.CustomLabelCheckPercent.TabIndex = 11; + this.CustomLabelCheckPercent.Text = "0%"; // // CustomButtonConnectAll // + this.CustomButtonConnectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CustomButtonConnectAll.AutoSize = true; this.CustomButtonConnectAll.BorderColor = System.Drawing.Color.Blue; this.CustomButtonConnectAll.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonConnectAll.Location = new System.Drawing.Point(529, 220); + this.CustomButtonConnectAll.Location = new System.Drawing.Point(517, 303); this.CustomButtonConnectAll.Name = "CustomButtonConnectAll"; this.CustomButtonConnectAll.RoundedCorners = 0; this.CustomButtonConnectAll.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonConnectAll.Size = new System.Drawing.Size(145, 23); + this.CustomButtonConnectAll.Size = new System.Drawing.Size(158, 27); this.CustomButtonConnectAll.TabIndex = 9; this.CustomButtonConnectAll.Text = "Connect all/Disconnect all"; this.CustomButtonConnectAll.UseVisualStyleBackColor = true; @@ -658,13 +676,15 @@ private void InitializeComponent() // // CustomButtonViewWorkingServers // + this.CustomButtonViewWorkingServers.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonViewWorkingServers.AutoSize = true; this.CustomButtonViewWorkingServers.BorderColor = System.Drawing.Color.Blue; this.CustomButtonViewWorkingServers.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonViewWorkingServers.Location = new System.Drawing.Point(166, 220); + this.CustomButtonViewWorkingServers.Location = new System.Drawing.Point(167, 303); this.CustomButtonViewWorkingServers.Name = "CustomButtonViewWorkingServers"; this.CustomButtonViewWorkingServers.RoundedCorners = 0; this.CustomButtonViewWorkingServers.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonViewWorkingServers.Size = new System.Drawing.Size(120, 23); + this.CustomButtonViewWorkingServers.Size = new System.Drawing.Size(129, 27); this.CustomButtonViewWorkingServers.TabIndex = 8; this.CustomButtonViewWorkingServers.Text = "View working servers"; this.CustomButtonViewWorkingServers.UseVisualStyleBackColor = true; @@ -681,7 +701,7 @@ private void InitializeComponent() this.TabPageConnect.Location = new System.Drawing.Point(4, 25); this.TabPageConnect.Name = "TabPageConnect"; this.TabPageConnect.Padding = new System.Windows.Forms.Padding(3); - this.TabPageConnect.Size = new System.Drawing.Size(678, 249); + this.TabPageConnect.Size = new System.Drawing.Size(678, 336); this.TabPageConnect.TabIndex = 1; this.TabPageConnect.Tag = 1; this.TabPageConnect.Text = "2. Connect"; @@ -692,7 +712,7 @@ private void InitializeComponent() this.CustomRadioButtonConnectCloudflare.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonConnectCloudflare.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonConnectCloudflare.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonConnectCloudflare.Location = new System.Drawing.Point(25, 70); + this.CustomRadioButtonConnectCloudflare.Location = new System.Drawing.Point(25, 80); this.CustomRadioButtonConnectCloudflare.Name = "CustomRadioButtonConnectCloudflare"; this.CustomRadioButtonConnectCloudflare.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonConnectCloudflare.Size = new System.Drawing.Size(168, 17); @@ -707,7 +727,7 @@ private void InitializeComponent() this.CustomRadioButtonConnectCheckedServers.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonConnectCheckedServers.Checked = true; this.CustomRadioButtonConnectCheckedServers.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonConnectCheckedServers.Location = new System.Drawing.Point(25, 30); + this.CustomRadioButtonConnectCheckedServers.Location = new System.Drawing.Point(25, 35); this.CustomRadioButtonConnectCheckedServers.Name = "CustomRadioButtonConnectCheckedServers"; this.CustomRadioButtonConnectCheckedServers.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonConnectCheckedServers.Size = new System.Drawing.Size(169, 17); @@ -722,7 +742,7 @@ private void InitializeComponent() this.CustomRadioButtonConnectDNSCrypt.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonConnectDNSCrypt.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonConnectDNSCrypt.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonConnectDNSCrypt.Location = new System.Drawing.Point(25, 110); + this.CustomRadioButtonConnectDNSCrypt.Location = new System.Drawing.Point(25, 125); this.CustomRadioButtonConnectDNSCrypt.Name = "CustomRadioButtonConnectDNSCrypt"; this.CustomRadioButtonConnectDNSCrypt.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonConnectDNSCrypt.Size = new System.Drawing.Size(283, 17); @@ -741,20 +761,22 @@ private void InitializeComponent() this.TabPageSetDNS.Location = new System.Drawing.Point(4, 25); this.TabPageSetDNS.Name = "TabPageSetDNS"; this.TabPageSetDNS.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSetDNS.Size = new System.Drawing.Size(678, 249); + this.TabPageSetDNS.Size = new System.Drawing.Size(678, 336); this.TabPageSetDNS.TabIndex = 3; this.TabPageSetDNS.Tag = 2; this.TabPageSetDNS.Text = "3. Set DNS"; // // CustomButtonSetDNS // + this.CustomButtonSetDNS.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonSetDNS.AutoSize = true; this.CustomButtonSetDNS.BorderColor = System.Drawing.Color.Blue; this.CustomButtonSetDNS.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonSetDNS.Location = new System.Drawing.Point(50, 220); + this.CustomButtonSetDNS.Location = new System.Drawing.Point(40, 303); this.CustomButtonSetDNS.Name = "CustomButtonSetDNS"; this.CustomButtonSetDNS.RoundedCorners = 0; this.CustomButtonSetDNS.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonSetDNS.Size = new System.Drawing.Size(75, 23); + this.CustomButtonSetDNS.Size = new System.Drawing.Size(71, 27); this.CustomButtonSetDNS.TabIndex = 3; this.CustomButtonSetDNS.Text = "Set/Unset"; this.CustomButtonSetDNS.UseVisualStyleBackColor = true; @@ -768,7 +790,7 @@ private void InitializeComponent() this.CustomLabelSelectNIC.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSelectNIC.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSelectNIC.ForeColor = System.Drawing.Color.White; - this.CustomLabelSelectNIC.Location = new System.Drawing.Point(25, 20); + this.CustomLabelSelectNIC.Location = new System.Drawing.Point(25, 25); this.CustomLabelSelectNIC.Name = "CustomLabelSelectNIC"; this.CustomLabelSelectNIC.RoundedCorners = 0; this.CustomLabelSelectNIC.Size = new System.Drawing.Size(135, 15); @@ -783,7 +805,7 @@ private void InitializeComponent() this.CustomLabelSetDNSInfo.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSetDNSInfo.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSetDNSInfo.ForeColor = System.Drawing.Color.White; - this.CustomLabelSetDNSInfo.Location = new System.Drawing.Point(25, 91); + this.CustomLabelSetDNSInfo.Location = new System.Drawing.Point(25, 100); this.CustomLabelSetDNSInfo.Name = "CustomLabelSetDNSInfo"; this.CustomLabelSetDNSInfo.RoundedCorners = 0; this.CustomLabelSetDNSInfo.Size = new System.Drawing.Size(220, 45); @@ -799,15 +821,17 @@ private void InitializeComponent() this.CustomComboBoxNICs.ForeColor = System.Drawing.Color.White; this.CustomComboBoxNICs.FormattingEnabled = true; this.CustomComboBoxNICs.ItemHeight = 17; - this.CustomComboBoxNICs.Location = new System.Drawing.Point(25, 49); + this.CustomComboBoxNICs.Location = new System.Drawing.Point(25, 55); this.CustomComboBoxNICs.Name = "CustomComboBoxNICs"; this.CustomComboBoxNICs.SelectionColor = System.Drawing.Color.DodgerBlue; - this.CustomComboBoxNICs.Size = new System.Drawing.Size(180, 23); + this.CustomComboBoxNICs.Size = new System.Drawing.Size(171, 23); this.CustomComboBoxNICs.TabIndex = 1; // // TabPageShare // this.TabPageShare.BackColor = System.Drawing.Color.Transparent; + this.TabPageShare.Controls.Add(this.CustomNumericUpDownHTTPProxyHandleRequests); + this.TabPageShare.Controls.Add(this.CustomLabelHTTPProxyHandleRequests); this.TabPageShare.Controls.Add(this.CustomCheckBoxHTTPProxyEventShowChunkDetails); this.TabPageShare.Controls.Add(this.CustomButtonPDpiApplyChanges); this.TabPageShare.Controls.Add(this.CustomNumericUpDownPDpiFragDelay); @@ -831,18 +855,58 @@ private void InitializeComponent() this.TabPageShare.Location = new System.Drawing.Point(4, 25); this.TabPageShare.Name = "TabPageShare"; this.TabPageShare.Padding = new System.Windows.Forms.Padding(3); - this.TabPageShare.Size = new System.Drawing.Size(678, 249); + this.TabPageShare.Size = new System.Drawing.Size(678, 336); this.TabPageShare.TabIndex = 4; this.TabPageShare.Tag = 3; this.TabPageShare.Text = "4. Share + Bypass DPI"; // + // CustomNumericUpDownHTTPProxyHandleRequests + // + this.CustomNumericUpDownHTTPProxyHandleRequests.BackColor = System.Drawing.Color.DimGray; + this.CustomNumericUpDownHTTPProxyHandleRequests.BorderColor = System.Drawing.Color.Blue; + this.CustomNumericUpDownHTTPProxyHandleRequests.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.CustomNumericUpDownHTTPProxyHandleRequests.Location = new System.Drawing.Point(300, 53); + this.CustomNumericUpDownHTTPProxyHandleRequests.Maximum = new decimal(new int[] { + 50000, + 0, + 0, + 0}); + this.CustomNumericUpDownHTTPProxyHandleRequests.Minimum = new decimal(new int[] { + 200, + 0, + 0, + 0}); + this.CustomNumericUpDownHTTPProxyHandleRequests.Name = "CustomNumericUpDownHTTPProxyHandleRequests"; + this.CustomNumericUpDownHTTPProxyHandleRequests.Size = new System.Drawing.Size(53, 23); + this.CustomNumericUpDownHTTPProxyHandleRequests.TabIndex = 40; + this.CustomNumericUpDownHTTPProxyHandleRequests.Value = new decimal(new int[] { + 2000, + 0, + 0, + 0}); + // + // CustomLabelHTTPProxyHandleRequests + // + this.CustomLabelHTTPProxyHandleRequests.AutoSize = true; + this.CustomLabelHTTPProxyHandleRequests.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelHTTPProxyHandleRequests.Border = false; + this.CustomLabelHTTPProxyHandleRequests.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelHTTPProxyHandleRequests.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelHTTPProxyHandleRequests.ForeColor = System.Drawing.Color.White; + this.CustomLabelHTTPProxyHandleRequests.Location = new System.Drawing.Point(200, 55); + this.CustomLabelHTTPProxyHandleRequests.Name = "CustomLabelHTTPProxyHandleRequests"; + this.CustomLabelHTTPProxyHandleRequests.RoundedCorners = 0; + this.CustomLabelHTTPProxyHandleRequests.Size = new System.Drawing.Size(97, 17); + this.CustomLabelHTTPProxyHandleRequests.TabIndex = 39; + this.CustomLabelHTTPProxyHandleRequests.Text = "Handle requests:"; + // // CustomCheckBoxHTTPProxyEventShowChunkDetails // this.CustomCheckBoxHTTPProxyEventShowChunkDetails.BackColor = System.Drawing.Color.DimGray; this.CustomCheckBoxHTTPProxyEventShowChunkDetails.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxHTTPProxyEventShowChunkDetails.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxHTTPProxyEventShowChunkDetails.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxHTTPProxyEventShowChunkDetails.Location = new System.Drawing.Point(480, 50); + this.CustomCheckBoxHTTPProxyEventShowChunkDetails.Location = new System.Drawing.Point(455, 55); this.CustomCheckBoxHTTPProxyEventShowChunkDetails.Name = "CustomCheckBoxHTTPProxyEventShowChunkDetails"; this.CustomCheckBoxHTTPProxyEventShowChunkDetails.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxHTTPProxyEventShowChunkDetails.Size = new System.Drawing.Size(161, 17); @@ -852,13 +916,15 @@ private void InitializeComponent() // // CustomButtonPDpiApplyChanges // + this.CustomButtonPDpiApplyChanges.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonPDpiApplyChanges.AutoSize = true; this.CustomButtonPDpiApplyChanges.BorderColor = System.Drawing.Color.Blue; this.CustomButtonPDpiApplyChanges.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonPDpiApplyChanges.Location = new System.Drawing.Point(272, 220); + this.CustomButtonPDpiApplyChanges.Location = new System.Drawing.Point(249, 303); this.CustomButtonPDpiApplyChanges.Name = "CustomButtonPDpiApplyChanges"; this.CustomButtonPDpiApplyChanges.RoundedCorners = 0; this.CustomButtonPDpiApplyChanges.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonPDpiApplyChanges.Size = new System.Drawing.Size(150, 23); + this.CustomButtonPDpiApplyChanges.Size = new System.Drawing.Size(157, 27); this.CustomButtonPDpiApplyChanges.TabIndex = 37; this.CustomButtonPDpiApplyChanges.Text = "Apply DPI bypass changes"; this.CustomButtonPDpiApplyChanges.UseVisualStyleBackColor = true; @@ -869,9 +935,9 @@ private void InitializeComponent() this.CustomNumericUpDownPDpiFragDelay.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownPDpiFragDelay.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownPDpiFragDelay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownPDpiFragDelay.Location = new System.Drawing.Point(377, 183); + this.CustomNumericUpDownPDpiFragDelay.Location = new System.Drawing.Point(363, 218); this.CustomNumericUpDownPDpiFragDelay.Name = "CustomNumericUpDownPDpiFragDelay"; - this.CustomNumericUpDownPDpiFragDelay.Size = new System.Drawing.Size(45, 23); + this.CustomNumericUpDownPDpiFragDelay.Size = new System.Drawing.Size(43, 23); this.CustomNumericUpDownPDpiFragDelay.TabIndex = 36; // // CustomLabelPDpiFragDelay @@ -882,7 +948,7 @@ private void InitializeComponent() this.CustomLabelPDpiFragDelay.BorderColor = System.Drawing.Color.Blue; this.CustomLabelPDpiFragDelay.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelPDpiFragDelay.ForeColor = System.Drawing.Color.White; - this.CustomLabelPDpiFragDelay.Location = new System.Drawing.Point(250, 185); + this.CustomLabelPDpiFragDelay.Location = new System.Drawing.Point(240, 220); this.CustomLabelPDpiFragDelay.Name = "CustomLabelPDpiFragDelay"; this.CustomLabelPDpiFragDelay.RoundedCorners = 0; this.CustomLabelPDpiFragDelay.Size = new System.Drawing.Size(121, 17); @@ -895,7 +961,7 @@ private void InitializeComponent() this.CustomCheckBoxPDpiDontChunkBigData.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxPDpiDontChunkBigData.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxPDpiDontChunkBigData.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxPDpiDontChunkBigData.Location = new System.Drawing.Point(54, 185); + this.CustomCheckBoxPDpiDontChunkBigData.Location = new System.Drawing.Point(50, 220); this.CustomCheckBoxPDpiDontChunkBigData.Name = "CustomCheckBoxPDpiDontChunkBigData"; this.CustomCheckBoxPDpiDontChunkBigData.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxPDpiDontChunkBigData.Size = new System.Drawing.Size(182, 17); @@ -909,7 +975,7 @@ private void InitializeComponent() this.CustomCheckBoxPDpiFragModeRandom.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxPDpiFragModeRandom.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxPDpiFragModeRandom.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxPDpiFragModeRandom.Location = new System.Drawing.Point(298, 150); + this.CustomCheckBoxPDpiFragModeRandom.Location = new System.Drawing.Point(285, 180); this.CustomCheckBoxPDpiFragModeRandom.Name = "CustomCheckBoxPDpiFragModeRandom"; this.CustomCheckBoxPDpiFragModeRandom.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxPDpiFragModeRandom.Size = new System.Drawing.Size(101, 17); @@ -919,13 +985,15 @@ private void InitializeComponent() // // CustomButtonSetProxy // + this.CustomButtonSetProxy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonSetProxy.AutoSize = true; this.CustomButtonSetProxy.BorderColor = System.Drawing.Color.Blue; this.CustomButtonSetProxy.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonSetProxy.Location = new System.Drawing.Point(151, 220); + this.CustomButtonSetProxy.Location = new System.Drawing.Point(143, 303); this.CustomButtonSetProxy.Name = "CustomButtonSetProxy"; this.CustomButtonSetProxy.RoundedCorners = 0; this.CustomButtonSetProxy.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonSetProxy.Size = new System.Drawing.Size(75, 23); + this.CustomButtonSetProxy.Size = new System.Drawing.Size(71, 27); this.CustomButtonSetProxy.TabIndex = 32; this.CustomButtonSetProxy.Text = "Set/Unset"; this.CustomButtonSetProxy.UseVisualStyleBackColor = true; @@ -936,7 +1004,7 @@ private void InitializeComponent() this.CustomNumericUpDownPDpiDataLength.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownPDpiDataLength.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownPDpiDataLength.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownPDpiDataLength.Location = new System.Drawing.Point(165, 113); + this.CustomNumericUpDownPDpiDataLength.Location = new System.Drawing.Point(159, 138); this.CustomNumericUpDownPDpiDataLength.Maximum = new decimal(new int[] { 65536, 0, @@ -948,7 +1016,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownPDpiDataLength.Name = "CustomNumericUpDownPDpiDataLength"; - this.CustomNumericUpDownPDpiDataLength.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownPDpiDataLength.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownPDpiDataLength.TabIndex = 31; this.CustomNumericUpDownPDpiDataLength.Value = new decimal(new int[] { 60, @@ -964,7 +1032,7 @@ private void InitializeComponent() this.CustomLabelPDpiDpiInfo1.BorderColor = System.Drawing.Color.Blue; this.CustomLabelPDpiDpiInfo1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelPDpiDpiInfo1.ForeColor = System.Drawing.Color.White; - this.CustomLabelPDpiDpiInfo1.Location = new System.Drawing.Point(50, 115); + this.CustomLabelPDpiDpiInfo1.Location = new System.Drawing.Point(50, 140); this.CustomLabelPDpiDpiInfo1.Name = "CustomLabelPDpiDpiInfo1"; this.CustomLabelPDpiDpiInfo1.RoundedCorners = 0; this.CustomLabelPDpiDpiInfo1.Size = new System.Drawing.Size(109, 17); @@ -976,7 +1044,7 @@ private void InitializeComponent() this.CustomNumericUpDownPDpiFragmentSize.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownPDpiFragmentSize.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownPDpiFragmentSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownPDpiFragmentSize.Location = new System.Drawing.Point(344, 113); + this.CustomNumericUpDownPDpiFragmentSize.Location = new System.Drawing.Point(333, 138); this.CustomNumericUpDownPDpiFragmentSize.Maximum = new decimal(new int[] { 65536, 0, @@ -988,7 +1056,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownPDpiFragmentSize.Name = "CustomNumericUpDownPDpiFragmentSize"; - this.CustomNumericUpDownPDpiFragmentSize.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownPDpiFragmentSize.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownPDpiFragmentSize.TabIndex = 28; this.CustomNumericUpDownPDpiFragmentSize.Value = new decimal(new int[] { 2, @@ -1004,7 +1072,7 @@ private void InitializeComponent() this.CustomLabelPDpiDpiInfo2.BorderColor = System.Drawing.Color.Blue; this.CustomLabelPDpiDpiInfo2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelPDpiDpiInfo2.ForeColor = System.Drawing.Color.White; - this.CustomLabelPDpiDpiInfo2.Location = new System.Drawing.Point(226, 115); + this.CustomLabelPDpiDpiInfo2.Location = new System.Drawing.Point(218, 140); this.CustomLabelPDpiDpiInfo2.Name = "CustomLabelPDpiDpiInfo2"; this.CustomLabelPDpiDpiInfo2.RoundedCorners = 0; this.CustomLabelPDpiDpiInfo2.Size = new System.Drawing.Size(112, 17); @@ -1018,10 +1086,10 @@ private void InitializeComponent() this.CustomLabelShareSeparator1.BorderColor = System.Drawing.Color.Blue; this.CustomLabelShareSeparator1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelShareSeparator1.ForeColor = System.Drawing.Color.White; - this.CustomLabelShareSeparator1.Location = new System.Drawing.Point(20, 80); + this.CustomLabelShareSeparator1.Location = new System.Drawing.Point(20, 89); this.CustomLabelShareSeparator1.Name = "CustomLabelShareSeparator1"; this.CustomLabelShareSeparator1.RoundedCorners = 0; - this.CustomLabelShareSeparator1.Size = new System.Drawing.Size(640, 1); + this.CustomLabelShareSeparator1.Size = new System.Drawing.Size(609, 1); this.CustomLabelShareSeparator1.TabIndex = 24; // // CustomCheckBoxHTTPProxyEventShowRequest @@ -1030,7 +1098,7 @@ private void InitializeComponent() this.CustomCheckBoxHTTPProxyEventShowRequest.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxHTTPProxyEventShowRequest.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxHTTPProxyEventShowRequest.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxHTTPProxyEventShowRequest.Location = new System.Drawing.Point(320, 50); + this.CustomCheckBoxHTTPProxyEventShowRequest.Location = new System.Drawing.Point(455, 30); this.CustomCheckBoxHTTPProxyEventShowRequest.Name = "CustomCheckBoxHTTPProxyEventShowRequest"; this.CustomCheckBoxHTTPProxyEventShowRequest.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxHTTPProxyEventShowRequest.Size = new System.Drawing.Size(135, 17); @@ -1043,7 +1111,7 @@ private void InitializeComponent() this.CustomNumericUpDownPDpiFragmentChunks.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownPDpiFragmentChunks.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownPDpiFragmentChunks.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownPDpiFragmentChunks.Location = new System.Drawing.Point(220, 148); + this.CustomNumericUpDownPDpiFragmentChunks.Location = new System.Drawing.Point(218, 178); this.CustomNumericUpDownPDpiFragmentChunks.Maximum = new decimal(new int[] { 500, 0, @@ -1055,7 +1123,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownPDpiFragmentChunks.Name = "CustomNumericUpDownPDpiFragmentChunks"; - this.CustomNumericUpDownPDpiFragmentChunks.Size = new System.Drawing.Size(50, 23); + this.CustomNumericUpDownPDpiFragmentChunks.Size = new System.Drawing.Size(47, 23); this.CustomNumericUpDownPDpiFragmentChunks.TabIndex = 19; this.CustomNumericUpDownPDpiFragmentChunks.Value = new decimal(new int[] { 60, @@ -1071,7 +1139,7 @@ private void InitializeComponent() this.CustomLabelPDpiDpiInfo3.BorderColor = System.Drawing.Color.Blue; this.CustomLabelPDpiDpiInfo3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelPDpiDpiInfo3.ForeColor = System.Drawing.Color.White; - this.CustomLabelPDpiDpiInfo3.Location = new System.Drawing.Point(50, 150); + this.CustomLabelPDpiDpiInfo3.Location = new System.Drawing.Point(50, 180); this.CustomLabelPDpiDpiInfo3.Name = "CustomLabelPDpiDpiInfo3"; this.CustomLabelPDpiDpiInfo3.RoundedCorners = 0; this.CustomLabelPDpiDpiInfo3.Size = new System.Drawing.Size(164, 17); @@ -1086,7 +1154,7 @@ private void InitializeComponent() this.CustomCheckBoxPDpiEnableDpiBypass.Checked = true; this.CustomCheckBoxPDpiEnableDpiBypass.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxPDpiEnableDpiBypass.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxPDpiEnableDpiBypass.Location = new System.Drawing.Point(25, 90); + this.CustomCheckBoxPDpiEnableDpiBypass.Location = new System.Drawing.Point(25, 110); this.CustomCheckBoxPDpiEnableDpiBypass.Name = "CustomCheckBoxPDpiEnableDpiBypass"; this.CustomCheckBoxPDpiEnableDpiBypass.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxPDpiEnableDpiBypass.Size = new System.Drawing.Size(120, 17); @@ -1096,13 +1164,15 @@ private void InitializeComponent() // // CustomButtonShare // + this.CustomButtonShare.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonShare.AutoSize = true; this.CustomButtonShare.BorderColor = System.Drawing.Color.Blue; this.CustomButtonShare.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonShare.Location = new System.Drawing.Point(50, 220); + this.CustomButtonShare.Location = new System.Drawing.Point(40, 303); this.CustomButtonShare.Name = "CustomButtonShare"; this.CustomButtonShare.RoundedCorners = 0; this.CustomButtonShare.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonShare.Size = new System.Drawing.Size(95, 23); + this.CustomButtonShare.Size = new System.Drawing.Size(97, 27); this.CustomButtonShare.TabIndex = 16; this.CustomButtonShare.Text = "Enable/Disable"; this.CustomButtonShare.UseVisualStyleBackColor = true; @@ -1116,7 +1186,7 @@ private void InitializeComponent() this.CustomLabelHTTPProxyPort.BorderColor = System.Drawing.Color.Blue; this.CustomLabelHTTPProxyPort.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelHTTPProxyPort.ForeColor = System.Drawing.Color.White; - this.CustomLabelHTTPProxyPort.Location = new System.Drawing.Point(25, 50); + this.CustomLabelHTTPProxyPort.Location = new System.Drawing.Point(25, 55); this.CustomLabelHTTPProxyPort.Name = "CustomLabelHTTPProxyPort"; this.CustomLabelHTTPProxyPort.RoundedCorners = 0; this.CustomLabelHTTPProxyPort.Size = new System.Drawing.Size(101, 17); @@ -1144,7 +1214,7 @@ private void InitializeComponent() this.CustomNumericUpDownHTTPProxyPort.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownHTTPProxyPort.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownHTTPProxyPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownHTTPProxyPort.Location = new System.Drawing.Point(132, 48); + this.CustomNumericUpDownHTTPProxyPort.Location = new System.Drawing.Point(130, 53); this.CustomNumericUpDownHTTPProxyPort.Maximum = new decimal(new int[] { 65535, 0, @@ -1156,7 +1226,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownHTTPProxyPort.Name = "CustomNumericUpDownHTTPProxyPort"; - this.CustomNumericUpDownHTTPProxyPort.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownHTTPProxyPort.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownHTTPProxyPort.TabIndex = 12; this.CustomNumericUpDownHTTPProxyPort.Value = new decimal(new int[] { 8080, @@ -1171,7 +1241,7 @@ private void InitializeComponent() this.TabPageDPI.Location = new System.Drawing.Point(4, 25); this.TabPageDPI.Name = "TabPageDPI"; this.TabPageDPI.Padding = new System.Windows.Forms.Padding(3); - this.TabPageDPI.Size = new System.Drawing.Size(678, 249); + this.TabPageDPI.Size = new System.Drawing.Size(678, 336); this.TabPageDPI.TabIndex = 2; this.TabPageDPI.Tag = 4; this.TabPageDPI.Text = "5. GoodbyeDPI"; @@ -1187,10 +1257,10 @@ private void InitializeComponent() this.CustomTabControlDPIBasicAdvanced.Location = new System.Drawing.Point(3, 3); this.CustomTabControlDPIBasicAdvanced.Name = "CustomTabControlDPIBasicAdvanced"; this.CustomTabControlDPIBasicAdvanced.SelectedIndex = 0; - this.CustomTabControlDPIBasicAdvanced.Size = new System.Drawing.Size(672, 243); + this.CustomTabControlDPIBasicAdvanced.Size = new System.Drawing.Size(672, 330); this.CustomTabControlDPIBasicAdvanced.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; this.CustomTabControlDPIBasicAdvanced.TabIndex = 13; - this.CustomTabControlDPIBasicAdvanced.Tag = 0; + this.CustomTabControlDPIBasicAdvanced.Tag = 1; // // TabPageDPIBasic // @@ -1215,7 +1285,7 @@ private void InitializeComponent() this.TabPageDPIBasic.Location = new System.Drawing.Point(4, 25); this.TabPageDPIBasic.Name = "TabPageDPIBasic"; this.TabPageDPIBasic.Padding = new System.Windows.Forms.Padding(3); - this.TabPageDPIBasic.Size = new System.Drawing.Size(664, 214); + this.TabPageDPIBasic.Size = new System.Drawing.Size(664, 301); this.TabPageDPIBasic.TabIndex = 0; this.TabPageDPIBasic.Tag = 0; this.TabPageDPIBasic.Text = "Basic"; @@ -1232,7 +1302,7 @@ private void InitializeComponent() this.CustomLabelInfoDPIModes.Location = new System.Drawing.Point(25, 15); this.CustomLabelInfoDPIModes.Name = "CustomLabelInfoDPIModes"; this.CustomLabelInfoDPIModes.RoundedCorners = 0; - this.CustomLabelInfoDPIModes.Size = new System.Drawing.Size(147, 38); + this.CustomLabelInfoDPIModes.Size = new System.Drawing.Size(149, 40); this.CustomLabelInfoDPIModes.TabIndex = 20; this.CustomLabelInfoDPIModes.Text = "Light: MTN-AST-ASK\r\nMedium: MCI-SHT"; // @@ -1242,7 +1312,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIMode6.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode6.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode6.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIMode6.Location = new System.Drawing.Point(368, 140); + this.CustomRadioButtonDPIMode6.Location = new System.Drawing.Point(370, 155); this.CustomRadioButtonDPIMode6.Name = "CustomRadioButtonDPIMode6"; this.CustomRadioButtonDPIMode6.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonDPIMode6.Size = new System.Drawing.Size(63, 17); @@ -1256,7 +1326,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIMode5.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode5.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode5.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIMode5.Location = new System.Drawing.Point(299, 140); + this.CustomRadioButtonDPIMode5.Location = new System.Drawing.Point(301, 155); this.CustomRadioButtonDPIMode5.Name = "CustomRadioButtonDPIMode5"; this.CustomRadioButtonDPIMode5.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonDPIMode5.Size = new System.Drawing.Size(63, 17); @@ -1270,7 +1340,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIMode4.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode4.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode4.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIMode4.Location = new System.Drawing.Point(230, 140); + this.CustomRadioButtonDPIMode4.Location = new System.Drawing.Point(232, 155); this.CustomRadioButtonDPIMode4.Name = "CustomRadioButtonDPIMode4"; this.CustomRadioButtonDPIMode4.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonDPIMode4.Size = new System.Drawing.Size(63, 17); @@ -1284,7 +1354,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIMode3.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode3.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode3.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIMode3.Location = new System.Drawing.Point(161, 140); + this.CustomRadioButtonDPIMode3.Location = new System.Drawing.Point(163, 155); this.CustomRadioButtonDPIMode3.Name = "CustomRadioButtonDPIMode3"; this.CustomRadioButtonDPIMode3.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonDPIMode3.Size = new System.Drawing.Size(63, 17); @@ -1300,10 +1370,10 @@ private void InitializeComponent() this.CustomLabelDPIModesGoodbyeDPI.BorderColor = System.Drawing.Color.Blue; this.CustomLabelDPIModesGoodbyeDPI.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelDPIModesGoodbyeDPI.ForeColor = System.Drawing.Color.White; - this.CustomLabelDPIModesGoodbyeDPI.Location = new System.Drawing.Point(25, 120); + this.CustomLabelDPIModesGoodbyeDPI.Location = new System.Drawing.Point(25, 130); this.CustomLabelDPIModesGoodbyeDPI.Name = "CustomLabelDPIModesGoodbyeDPI"; this.CustomLabelDPIModesGoodbyeDPI.RoundedCorners = 0; - this.CustomLabelDPIModesGoodbyeDPI.Size = new System.Drawing.Size(118, 15); + this.CustomLabelDPIModesGoodbyeDPI.Size = new System.Drawing.Size(120, 17); this.CustomLabelDPIModesGoodbyeDPI.TabIndex = 15; this.CustomLabelDPIModesGoodbyeDPI.Text = "Goodbye DPI modes:"; // @@ -1313,7 +1383,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIMode2.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode2.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode2.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIMode2.Location = new System.Drawing.Point(92, 140); + this.CustomRadioButtonDPIMode2.Location = new System.Drawing.Point(94, 155); this.CustomRadioButtonDPIMode2.Name = "CustomRadioButtonDPIMode2"; this.CustomRadioButtonDPIMode2.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonDPIMode2.Size = new System.Drawing.Size(63, 17); @@ -1327,7 +1397,7 @@ private void InitializeComponent() this.CustomRadioButtonDPIMode1.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode1.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonDPIMode1.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonDPIMode1.Location = new System.Drawing.Point(25, 140); + this.CustomRadioButtonDPIMode1.Location = new System.Drawing.Point(25, 155); this.CustomRadioButtonDPIMode1.Name = "CustomRadioButtonDPIMode1"; this.CustomRadioButtonDPIMode1.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonDPIMode1.Size = new System.Drawing.Size(63, 17); @@ -1337,13 +1407,15 @@ private void InitializeComponent() // // CustomButtonDPIBasicDeactivate // + this.CustomButtonDPIBasicDeactivate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonDPIBasicDeactivate.AutoSize = true; this.CustomButtonDPIBasicDeactivate.BorderColor = System.Drawing.Color.Blue; this.CustomButtonDPIBasicDeactivate.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonDPIBasicDeactivate.Location = new System.Drawing.Point(166, 185); + this.CustomButtonDPIBasicDeactivate.Location = new System.Drawing.Point(172, 268); this.CustomButtonDPIBasicDeactivate.Name = "CustomButtonDPIBasicDeactivate"; this.CustomButtonDPIBasicDeactivate.RoundedCorners = 0; this.CustomButtonDPIBasicDeactivate.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonDPIBasicDeactivate.Size = new System.Drawing.Size(75, 23); + this.CustomButtonDPIBasicDeactivate.Size = new System.Drawing.Size(74, 27); this.CustomButtonDPIBasicDeactivate.TabIndex = 12; this.CustomButtonDPIBasicDeactivate.Text = "Deactivate"; this.CustomButtonDPIBasicDeactivate.UseVisualStyleBackColor = true; @@ -1351,13 +1423,15 @@ private void InitializeComponent() // // CustomButtonDPIBasicActivate // + this.CustomButtonDPIBasicActivate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonDPIBasicActivate.AutoSize = true; this.CustomButtonDPIBasicActivate.BorderColor = System.Drawing.Color.Blue; this.CustomButtonDPIBasicActivate.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonDPIBasicActivate.Location = new System.Drawing.Point(50, 185); + this.CustomButtonDPIBasicActivate.Location = new System.Drawing.Point(45, 268); this.CustomButtonDPIBasicActivate.Name = "CustomButtonDPIBasicActivate"; this.CustomButtonDPIBasicActivate.RoundedCorners = 0; this.CustomButtonDPIBasicActivate.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonDPIBasicActivate.Size = new System.Drawing.Size(110, 23); + this.CustomButtonDPIBasicActivate.Size = new System.Drawing.Size(121, 27); this.CustomButtonDPIBasicActivate.TabIndex = 11; this.CustomButtonDPIBasicActivate.Text = "Activate/Reactivate"; this.CustomButtonDPIBasicActivate.UseVisualStyleBackColor = true; @@ -1403,7 +1477,7 @@ private void InitializeComponent() this.TabPageDPIAdvanced.Location = new System.Drawing.Point(4, 25); this.TabPageDPIAdvanced.Name = "TabPageDPIAdvanced"; this.TabPageDPIAdvanced.Padding = new System.Windows.Forms.Padding(3); - this.TabPageDPIAdvanced.Size = new System.Drawing.Size(664, 214); + this.TabPageDPIAdvanced.Size = new System.Drawing.Size(664, 301); this.TabPageDPIAdvanced.TabIndex = 1; this.TabPageDPIAdvanced.Tag = 1; this.TabPageDPIAdvanced.Text = "Advanced"; @@ -1420,14 +1494,14 @@ private void InitializeComponent() this.CustomTextBoxDPIAdvAutoTTL.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxDPIAdvAutoTTL.ForeColor = System.Drawing.Color.White; this.CustomTextBoxDPIAdvAutoTTL.HideSelection = true; - this.CustomTextBoxDPIAdvAutoTTL.Location = new System.Drawing.Point(415, 86); + this.CustomTextBoxDPIAdvAutoTTL.Location = new System.Drawing.Point(393, 93); this.CustomTextBoxDPIAdvAutoTTL.MaxLength = 32767; this.CustomTextBoxDPIAdvAutoTTL.Multiline = false; this.CustomTextBoxDPIAdvAutoTTL.Name = "CustomTextBoxDPIAdvAutoTTL"; this.CustomTextBoxDPIAdvAutoTTL.ReadOnly = false; this.CustomTextBoxDPIAdvAutoTTL.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxDPIAdvAutoTTL.ShortcutsEnabled = true; - this.CustomTextBoxDPIAdvAutoTTL.Size = new System.Drawing.Size(55, 23); + this.CustomTextBoxDPIAdvAutoTTL.Size = new System.Drawing.Size(53, 23); this.CustomTextBoxDPIAdvAutoTTL.TabIndex = 0; this.CustomTextBoxDPIAdvAutoTTL.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxDPIAdvAutoTTL.Texts = "1-4-10"; @@ -1440,7 +1514,7 @@ private void InitializeComponent() this.CustomNumericUpDownDPIAdvMaxPayload.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownDPIAdvMaxPayload.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownDPIAdvMaxPayload.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownDPIAdvMaxPayload.Location = new System.Drawing.Point(113, 142); + this.CustomNumericUpDownDPIAdvMaxPayload.Location = new System.Drawing.Point(106, 153); this.CustomNumericUpDownDPIAdvMaxPayload.Maximum = new decimal(new int[] { 10000, 0, @@ -1452,7 +1526,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownDPIAdvMaxPayload.Name = "CustomNumericUpDownDPIAdvMaxPayload"; - this.CustomNumericUpDownDPIAdvMaxPayload.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownDPIAdvMaxPayload.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownDPIAdvMaxPayload.TabIndex = 36; this.CustomNumericUpDownDPIAdvMaxPayload.Value = new decimal(new int[] { 1200, @@ -1465,7 +1539,7 @@ private void InitializeComponent() this.CustomNumericUpDownDPIAdvMinTTL.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownDPIAdvMinTTL.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownDPIAdvMinTTL.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownDPIAdvMinTTL.Location = new System.Drawing.Point(577, 86); + this.CustomNumericUpDownDPIAdvMinTTL.Location = new System.Drawing.Point(539, 93); this.CustomNumericUpDownDPIAdvMinTTL.Maximum = new decimal(new int[] { 3600, 0, @@ -1477,7 +1551,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownDPIAdvMinTTL.Name = "CustomNumericUpDownDPIAdvMinTTL"; - this.CustomNumericUpDownDPIAdvMinTTL.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownDPIAdvMinTTL.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownDPIAdvMinTTL.TabIndex = 35; this.CustomNumericUpDownDPIAdvMinTTL.Value = new decimal(new int[] { 3, @@ -1490,7 +1564,7 @@ private void InitializeComponent() this.CustomNumericUpDownDPIAdvSetTTL.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownDPIAdvSetTTL.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownDPIAdvSetTTL.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownDPIAdvSetTTL.Location = new System.Drawing.Point(241, 86); + this.CustomNumericUpDownDPIAdvSetTTL.Location = new System.Drawing.Point(230, 93); this.CustomNumericUpDownDPIAdvSetTTL.Maximum = new decimal(new int[] { 3600, 0, @@ -1502,7 +1576,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownDPIAdvSetTTL.Name = "CustomNumericUpDownDPIAdvSetTTL"; - this.CustomNumericUpDownDPIAdvSetTTL.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownDPIAdvSetTTL.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownDPIAdvSetTTL.TabIndex = 34; this.CustomNumericUpDownDPIAdvSetTTL.Value = new decimal(new int[] { 1, @@ -1515,7 +1589,7 @@ private void InitializeComponent() this.CustomNumericUpDownDPIAdvPort.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownDPIAdvPort.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownDPIAdvPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownDPIAdvPort.Location = new System.Drawing.Point(397, 58); + this.CustomNumericUpDownDPIAdvPort.Location = new System.Drawing.Point(376, 63); this.CustomNumericUpDownDPIAdvPort.Maximum = new decimal(new int[] { 65535, 0, @@ -1527,7 +1601,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownDPIAdvPort.Name = "CustomNumericUpDownDPIAdvPort"; - this.CustomNumericUpDownDPIAdvPort.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownDPIAdvPort.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownDPIAdvPort.TabIndex = 33; this.CustomNumericUpDownDPIAdvPort.Value = new decimal(new int[] { 80, @@ -1537,13 +1611,15 @@ private void InitializeComponent() // // CustomButtonDPIAdvDeactivate // + this.CustomButtonDPIAdvDeactivate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonDPIAdvDeactivate.AutoSize = true; this.CustomButtonDPIAdvDeactivate.BorderColor = System.Drawing.Color.Blue; this.CustomButtonDPIAdvDeactivate.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonDPIAdvDeactivate.Location = new System.Drawing.Point(166, 185); + this.CustomButtonDPIAdvDeactivate.Location = new System.Drawing.Point(172, 268); this.CustomButtonDPIAdvDeactivate.Name = "CustomButtonDPIAdvDeactivate"; this.CustomButtonDPIAdvDeactivate.RoundedCorners = 0; this.CustomButtonDPIAdvDeactivate.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonDPIAdvDeactivate.Size = new System.Drawing.Size(75, 23); + this.CustomButtonDPIAdvDeactivate.Size = new System.Drawing.Size(74, 27); this.CustomButtonDPIAdvDeactivate.TabIndex = 32; this.CustomButtonDPIAdvDeactivate.Text = "Deactivate"; this.CustomButtonDPIAdvDeactivate.UseVisualStyleBackColor = true; @@ -1551,13 +1627,15 @@ private void InitializeComponent() // // CustomButtonDPIAdvActivate // + this.CustomButtonDPIAdvActivate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonDPIAdvActivate.AutoSize = true; this.CustomButtonDPIAdvActivate.BorderColor = System.Drawing.Color.Blue; this.CustomButtonDPIAdvActivate.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonDPIAdvActivate.Location = new System.Drawing.Point(50, 185); + this.CustomButtonDPIAdvActivate.Location = new System.Drawing.Point(45, 268); this.CustomButtonDPIAdvActivate.Name = "CustomButtonDPIAdvActivate"; this.CustomButtonDPIAdvActivate.RoundedCorners = 0; this.CustomButtonDPIAdvActivate.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonDPIAdvActivate.Size = new System.Drawing.Size(110, 23); + this.CustomButtonDPIAdvActivate.Size = new System.Drawing.Size(121, 27); this.CustomButtonDPIAdvActivate.TabIndex = 31; this.CustomButtonDPIAdvActivate.Text = "Activate/Reactivate"; this.CustomButtonDPIAdvActivate.UseVisualStyleBackColor = true; @@ -1567,11 +1645,11 @@ private void InitializeComponent() // this.CustomButtonDPIAdvBlacklist.BorderColor = System.Drawing.Color.Blue; this.CustomButtonDPIAdvBlacklist.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonDPIAdvBlacklist.Location = new System.Drawing.Point(252, 142); + this.CustomButtonDPIAdvBlacklist.Location = new System.Drawing.Point(241, 153); this.CustomButtonDPIAdvBlacklist.Name = "CustomButtonDPIAdvBlacklist"; this.CustomButtonDPIAdvBlacklist.RoundedCorners = 0; this.CustomButtonDPIAdvBlacklist.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonDPIAdvBlacklist.Size = new System.Drawing.Size(60, 23); + this.CustomButtonDPIAdvBlacklist.Size = new System.Drawing.Size(57, 25); this.CustomButtonDPIAdvBlacklist.TabIndex = 30; this.CustomButtonDPIAdvBlacklist.Text = "Edit"; this.CustomButtonDPIAdvBlacklist.UseVisualStyleBackColor = true; @@ -1583,7 +1661,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvBlacklist.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvBlacklist.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvBlacklist.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvBlacklist.Location = new System.Drawing.Point(172, 144); + this.CustomCheckBoxDPIAdvBlacklist.Location = new System.Drawing.Point(165, 155); this.CustomCheckBoxDPIAdvBlacklist.Name = "CustomCheckBoxDPIAdvBlacklist"; this.CustomCheckBoxDPIAdvBlacklist.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvBlacklist.Size = new System.Drawing.Size(74, 17); @@ -1599,7 +1677,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvMaxPayload.Checked = true; this.CustomCheckBoxDPIAdvMaxPayload.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvMaxPayload.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvMaxPayload.Location = new System.Drawing.Point(6, 144); + this.CustomCheckBoxDPIAdvMaxPayload.Location = new System.Drawing.Point(5, 155); this.CustomCheckBoxDPIAdvMaxPayload.Name = "CustomCheckBoxDPIAdvMaxPayload"; this.CustomCheckBoxDPIAdvMaxPayload.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvMaxPayload.Size = new System.Drawing.Size(101, 17); @@ -1613,7 +1691,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvReverseFrag.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvReverseFrag.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvReverseFrag.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvReverseFrag.Location = new System.Drawing.Point(504, 116); + this.CustomCheckBoxDPIAdvReverseFrag.Location = new System.Drawing.Point(470, 125); this.CustomCheckBoxDPIAdvReverseFrag.Name = "CustomCheckBoxDPIAdvReverseFrag"; this.CustomCheckBoxDPIAdvReverseFrag.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvReverseFrag.Size = new System.Drawing.Size(96, 17); @@ -1629,7 +1707,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvNativeFrag.Checked = true; this.CustomCheckBoxDPIAdvNativeFrag.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvNativeFrag.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvNativeFrag.Location = new System.Drawing.Point(338, 116); + this.CustomCheckBoxDPIAdvNativeFrag.Location = new System.Drawing.Point(320, 125); this.CustomCheckBoxDPIAdvNativeFrag.Name = "CustomCheckBoxDPIAdvNativeFrag"; this.CustomCheckBoxDPIAdvNativeFrag.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvNativeFrag.Size = new System.Drawing.Size(90, 17); @@ -1643,7 +1721,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvWrongSeq.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvWrongSeq.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvWrongSeq.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvWrongSeq.Location = new System.Drawing.Point(172, 116); + this.CustomCheckBoxDPIAdvWrongSeq.Location = new System.Drawing.Point(165, 125); this.CustomCheckBoxDPIAdvWrongSeq.Name = "CustomCheckBoxDPIAdvWrongSeq"; this.CustomCheckBoxDPIAdvWrongSeq.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvWrongSeq.Size = new System.Drawing.Size(89, 17); @@ -1657,7 +1735,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvWrongChksum.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvWrongChksum.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvWrongChksum.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvWrongChksum.Location = new System.Drawing.Point(6, 116); + this.CustomCheckBoxDPIAdvWrongChksum.Location = new System.Drawing.Point(5, 125); this.CustomCheckBoxDPIAdvWrongChksum.Name = "CustomCheckBoxDPIAdvWrongChksum"; this.CustomCheckBoxDPIAdvWrongChksum.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvWrongChksum.Size = new System.Drawing.Size(112, 17); @@ -1671,7 +1749,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvMinTTL.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvMinTTL.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvMinTTL.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvMinTTL.Location = new System.Drawing.Point(504, 88); + this.CustomCheckBoxDPIAdvMinTTL.Location = new System.Drawing.Point(470, 95); this.CustomCheckBoxDPIAdvMinTTL.Name = "CustomCheckBoxDPIAdvMinTTL"; this.CustomCheckBoxDPIAdvMinTTL.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvMinTTL.Size = new System.Drawing.Size(67, 17); @@ -1685,7 +1763,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvAutoTTL.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvAutoTTL.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvAutoTTL.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvAutoTTL.Location = new System.Drawing.Point(338, 88); + this.CustomCheckBoxDPIAdvAutoTTL.Location = new System.Drawing.Point(320, 95); this.CustomCheckBoxDPIAdvAutoTTL.Name = "CustomCheckBoxDPIAdvAutoTTL"; this.CustomCheckBoxDPIAdvAutoTTL.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvAutoTTL.Size = new System.Drawing.Size(71, 17); @@ -1699,7 +1777,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvSetTTL.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvSetTTL.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvSetTTL.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvSetTTL.Location = new System.Drawing.Point(172, 88); + this.CustomCheckBoxDPIAdvSetTTL.Location = new System.Drawing.Point(165, 95); this.CustomCheckBoxDPIAdvSetTTL.Name = "CustomCheckBoxDPIAdvSetTTL"; this.CustomCheckBoxDPIAdvSetTTL.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvSetTTL.Size = new System.Drawing.Size(63, 17); @@ -1713,7 +1791,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvAllowNoSNI.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvAllowNoSNI.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvAllowNoSNI.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvAllowNoSNI.Location = new System.Drawing.Point(6, 88); + this.CustomCheckBoxDPIAdvAllowNoSNI.Location = new System.Drawing.Point(5, 95); this.CustomCheckBoxDPIAdvAllowNoSNI.Name = "CustomCheckBoxDPIAdvAllowNoSNI"; this.CustomCheckBoxDPIAdvAllowNoSNI.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvAllowNoSNI.Size = new System.Drawing.Size(98, 17); @@ -1733,14 +1811,14 @@ private void InitializeComponent() this.CustomTextBoxDPIAdvIpId.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxDPIAdvIpId.ForeColor = System.Drawing.Color.White; this.CustomTextBoxDPIAdvIpId.HideSelection = true; - this.CustomTextBoxDPIAdvIpId.Location = new System.Drawing.Point(566, 58); + this.CustomTextBoxDPIAdvIpId.Location = new System.Drawing.Point(529, 63); this.CustomTextBoxDPIAdvIpId.MaxLength = 32767; this.CustomTextBoxDPIAdvIpId.Multiline = false; this.CustomTextBoxDPIAdvIpId.Name = "CustomTextBoxDPIAdvIpId"; this.CustomTextBoxDPIAdvIpId.ReadOnly = false; this.CustomTextBoxDPIAdvIpId.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxDPIAdvIpId.ShortcutsEnabled = true; - this.CustomTextBoxDPIAdvIpId.Size = new System.Drawing.Size(80, 23); + this.CustomTextBoxDPIAdvIpId.Size = new System.Drawing.Size(70, 23); this.CustomTextBoxDPIAdvIpId.TabIndex = 0; this.CustomTextBoxDPIAdvIpId.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxDPIAdvIpId.Texts = ""; @@ -1754,7 +1832,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvIpId.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvIpId.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvIpId.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvIpId.Location = new System.Drawing.Point(504, 60); + this.CustomCheckBoxDPIAdvIpId.Location = new System.Drawing.Point(470, 65); this.CustomCheckBoxDPIAdvIpId.Name = "CustomCheckBoxDPIAdvIpId"; this.CustomCheckBoxDPIAdvIpId.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvIpId.Size = new System.Drawing.Size(56, 17); @@ -1768,7 +1846,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvPort.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvPort.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvPort.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvPort.Location = new System.Drawing.Point(338, 60); + this.CustomCheckBoxDPIAdvPort.Location = new System.Drawing.Point(320, 65); this.CustomCheckBoxDPIAdvPort.Name = "CustomCheckBoxDPIAdvPort"; this.CustomCheckBoxDPIAdvPort.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvPort.Size = new System.Drawing.Size(53, 17); @@ -1784,7 +1862,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvW.Checked = true; this.CustomCheckBoxDPIAdvW.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvW.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvW.Location = new System.Drawing.Point(172, 60); + this.CustomCheckBoxDPIAdvW.Location = new System.Drawing.Point(165, 65); this.CustomCheckBoxDPIAdvW.Name = "CustomCheckBoxDPIAdvW"; this.CustomCheckBoxDPIAdvW.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvW.Size = new System.Drawing.Size(34, 17); @@ -1798,7 +1876,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvA.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvA.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvA.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvA.Location = new System.Drawing.Point(6, 60); + this.CustomCheckBoxDPIAdvA.Location = new System.Drawing.Point(5, 65); this.CustomCheckBoxDPIAdvA.Name = "CustomCheckBoxDPIAdvA"; this.CustomCheckBoxDPIAdvA.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvA.Size = new System.Drawing.Size(32, 17); @@ -1811,14 +1889,14 @@ private void InitializeComponent() this.CustomNumericUpDownDPIAdvE.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownDPIAdvE.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownDPIAdvE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownDPIAdvE.Location = new System.Drawing.Point(542, 30); + this.CustomNumericUpDownDPIAdvE.Location = new System.Drawing.Point(506, 33); this.CustomNumericUpDownDPIAdvE.Maximum = new decimal(new int[] { 70000, 0, 0, 0}); this.CustomNumericUpDownDPIAdvE.Name = "CustomNumericUpDownDPIAdvE"; - this.CustomNumericUpDownDPIAdvE.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownDPIAdvE.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownDPIAdvE.TabIndex = 10; this.CustomNumericUpDownDPIAdvE.Value = new decimal(new int[] { 40, @@ -1834,7 +1912,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvE.Checked = true; this.CustomCheckBoxDPIAdvE.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvE.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvE.Location = new System.Drawing.Point(504, 32); + this.CustomCheckBoxDPIAdvE.Location = new System.Drawing.Point(470, 35); this.CustomCheckBoxDPIAdvE.Name = "CustomCheckBoxDPIAdvE"; this.CustomCheckBoxDPIAdvE.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvE.Size = new System.Drawing.Size(32, 17); @@ -1848,7 +1926,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvN.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvN.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvN.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvN.Location = new System.Drawing.Point(338, 32); + this.CustomCheckBoxDPIAdvN.Location = new System.Drawing.Point(320, 35); this.CustomCheckBoxDPIAdvN.Name = "CustomCheckBoxDPIAdvN"; this.CustomCheckBoxDPIAdvN.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvN.Size = new System.Drawing.Size(32, 17); @@ -1861,7 +1939,7 @@ private void InitializeComponent() this.CustomNumericUpDownDPIAdvK.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownDPIAdvK.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownDPIAdvK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownDPIAdvK.Location = new System.Drawing.Point(210, 30); + this.CustomNumericUpDownDPIAdvK.Location = new System.Drawing.Point(201, 33); this.CustomNumericUpDownDPIAdvK.Maximum = new decimal(new int[] { 10000, 0, @@ -1873,7 +1951,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownDPIAdvK.Name = "CustomNumericUpDownDPIAdvK"; - this.CustomNumericUpDownDPIAdvK.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownDPIAdvK.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownDPIAdvK.TabIndex = 7; this.CustomNumericUpDownDPIAdvK.Value = new decimal(new int[] { 2, @@ -1887,7 +1965,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvK.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvK.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvK.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvK.Location = new System.Drawing.Point(172, 32); + this.CustomCheckBoxDPIAdvK.Location = new System.Drawing.Point(165, 35); this.CustomCheckBoxDPIAdvK.Name = "CustomCheckBoxDPIAdvK"; this.CustomCheckBoxDPIAdvK.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvK.Size = new System.Drawing.Size(32, 17); @@ -1900,14 +1978,14 @@ private void InitializeComponent() this.CustomNumericUpDownDPIAdvF.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownDPIAdvF.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownDPIAdvF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownDPIAdvF.Location = new System.Drawing.Point(41, 30); + this.CustomNumericUpDownDPIAdvF.Location = new System.Drawing.Point(38, 33); this.CustomNumericUpDownDPIAdvF.Maximum = new decimal(new int[] { 70000, 0, 0, 0}); this.CustomNumericUpDownDPIAdvF.Name = "CustomNumericUpDownDPIAdvF"; - this.CustomNumericUpDownDPIAdvF.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownDPIAdvF.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownDPIAdvF.TabIndex = 5; this.CustomNumericUpDownDPIAdvF.Value = new decimal(new int[] { 2, @@ -1921,7 +1999,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvF.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvF.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxDPIAdvF.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvF.Location = new System.Drawing.Point(6, 32); + this.CustomCheckBoxDPIAdvF.Location = new System.Drawing.Point(5, 35); this.CustomCheckBoxDPIAdvF.Name = "CustomCheckBoxDPIAdvF"; this.CustomCheckBoxDPIAdvF.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvF.Size = new System.Drawing.Size(29, 17); @@ -1937,7 +2015,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvM.Checked = true; this.CustomCheckBoxDPIAdvM.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvM.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvM.Location = new System.Drawing.Point(504, 4); + this.CustomCheckBoxDPIAdvM.Location = new System.Drawing.Point(470, 5); this.CustomCheckBoxDPIAdvM.Name = "CustomCheckBoxDPIAdvM"; this.CustomCheckBoxDPIAdvM.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvM.Size = new System.Drawing.Size(36, 17); @@ -1953,7 +2031,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvS.Checked = true; this.CustomCheckBoxDPIAdvS.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvS.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvS.Location = new System.Drawing.Point(338, 4); + this.CustomCheckBoxDPIAdvS.Location = new System.Drawing.Point(320, 5); this.CustomCheckBoxDPIAdvS.Name = "CustomCheckBoxDPIAdvS"; this.CustomCheckBoxDPIAdvS.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvS.Size = new System.Drawing.Size(31, 17); @@ -1969,7 +2047,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvR.Checked = true; this.CustomCheckBoxDPIAdvR.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvR.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvR.Location = new System.Drawing.Point(172, 4); + this.CustomCheckBoxDPIAdvR.Location = new System.Drawing.Point(165, 5); this.CustomCheckBoxDPIAdvR.Name = "CustomCheckBoxDPIAdvR"; this.CustomCheckBoxDPIAdvR.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvR.Size = new System.Drawing.Size(30, 17); @@ -1985,7 +2063,7 @@ private void InitializeComponent() this.CustomCheckBoxDPIAdvP.Checked = true; this.CustomCheckBoxDPIAdvP.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxDPIAdvP.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxDPIAdvP.Location = new System.Drawing.Point(6, 4); + this.CustomCheckBoxDPIAdvP.Location = new System.Drawing.Point(5, 5); this.CustomCheckBoxDPIAdvP.Name = "CustomCheckBoxDPIAdvP"; this.CustomCheckBoxDPIAdvP.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxDPIAdvP.Size = new System.Drawing.Size(33, 17); @@ -2000,7 +2078,7 @@ private void InitializeComponent() this.TabPageSettings.Location = new System.Drawing.Point(4, 25); this.TabPageSettings.Name = "TabPageSettings"; this.TabPageSettings.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSettings.Size = new System.Drawing.Size(692, 284); + this.TabPageSettings.Size = new System.Drawing.Size(692, 371); this.TabPageSettings.TabIndex = 1; this.TabPageSettings.Tag = 1; this.TabPageSettings.Text = "Settings"; @@ -2015,6 +2093,7 @@ private void InitializeComponent() this.CustomTabControlSettings.Controls.Add(this.TabPageSettingsSetUnsetDNS); this.CustomTabControlSettings.Controls.Add(this.TabPageSettingsCPU); this.CustomTabControlSettings.Controls.Add(this.TabPageSettingsOthers); + this.CustomTabControlSettings.Dock = System.Windows.Forms.DockStyle.Fill; this.CustomTabControlSettings.HideTabHeader = false; this.CustomTabControlSettings.ItemSize = new System.Drawing.Size(30, 90); this.CustomTabControlSettings.Location = new System.Drawing.Point(3, 3); @@ -2023,10 +2102,10 @@ private void InitializeComponent() this.CustomTabControlSettings.Name = "CustomTabControlSettings"; this.CustomTabControlSettings.RightToLeft = System.Windows.Forms.RightToLeft.No; this.CustomTabControlSettings.SelectedIndex = 0; - this.CustomTabControlSettings.Size = new System.Drawing.Size(688, 278); + this.CustomTabControlSettings.Size = new System.Drawing.Size(686, 365); this.CustomTabControlSettings.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; this.CustomTabControlSettings.TabIndex = 10; - this.CustomTabControlSettings.Tag = 3; + this.CustomTabControlSettings.Tag = 0; // // TabPageSettingsWorkingMode // @@ -2038,20 +2117,21 @@ private void InitializeComponent() this.TabPageSettingsWorkingMode.Location = new System.Drawing.Point(94, 4); this.TabPageSettingsWorkingMode.Name = "TabPageSettingsWorkingMode"; this.TabPageSettingsWorkingMode.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSettingsWorkingMode.Size = new System.Drawing.Size(590, 270); + this.TabPageSettingsWorkingMode.Size = new System.Drawing.Size(588, 357); this.TabPageSettingsWorkingMode.TabIndex = 0; this.TabPageSettingsWorkingMode.Tag = 0; this.TabPageSettingsWorkingMode.Text = "Working mode"; // // CustomLabelSettingInfoWorkingMode2 // + this.CustomLabelSettingInfoWorkingMode2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.CustomLabelSettingInfoWorkingMode2.AutoSize = true; this.CustomLabelSettingInfoWorkingMode2.BackColor = System.Drawing.Color.DimGray; this.CustomLabelSettingInfoWorkingMode2.Border = false; this.CustomLabelSettingInfoWorkingMode2.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingInfoWorkingMode2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingInfoWorkingMode2.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingInfoWorkingMode2.Location = new System.Drawing.Point(50, 250); + this.CustomLabelSettingInfoWorkingMode2.Location = new System.Drawing.Point(50, 334); this.CustomLabelSettingInfoWorkingMode2.Name = "CustomLabelSettingInfoWorkingMode2"; this.CustomLabelSettingInfoWorkingMode2.RoundedCorners = 0; this.CustomLabelSettingInfoWorkingMode2.Size = new System.Drawing.Size(262, 15); @@ -2064,7 +2144,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingWorkingModeDNSandDoH.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingWorkingModeDNSandDoH.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingWorkingModeDNSandDoH.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingWorkingModeDNSandDoH.Location = new System.Drawing.Point(50, 130); + this.CustomRadioButtonSettingWorkingModeDNSandDoH.Location = new System.Drawing.Point(50, 145); this.CustomRadioButtonSettingWorkingModeDNSandDoH.Name = "CustomRadioButtonSettingWorkingModeDNSandDoH"; this.CustomRadioButtonSettingWorkingModeDNSandDoH.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingWorkingModeDNSandDoH.Size = new System.Drawing.Size(234, 17); @@ -2079,7 +2159,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingWorkingModeDNS.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingWorkingModeDNS.Checked = true; this.CustomRadioButtonSettingWorkingModeDNS.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingWorkingModeDNS.Location = new System.Drawing.Point(50, 90); + this.CustomRadioButtonSettingWorkingModeDNS.Location = new System.Drawing.Point(50, 100); this.CustomRadioButtonSettingWorkingModeDNS.Name = "CustomRadioButtonSettingWorkingModeDNS"; this.CustomRadioButtonSettingWorkingModeDNS.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingWorkingModeDNS.Size = new System.Drawing.Size(123, 17); @@ -2097,7 +2177,7 @@ private void InitializeComponent() this.CustomLabelSettingInfoWorkingMode1.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingInfoWorkingMode1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingInfoWorkingMode1.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingInfoWorkingMode1.Location = new System.Drawing.Point(50, 30); + this.CustomLabelSettingInfoWorkingMode1.Location = new System.Drawing.Point(50, 35); this.CustomLabelSettingInfoWorkingMode1.Name = "CustomLabelSettingInfoWorkingMode1"; this.CustomLabelSettingInfoWorkingMode1.RoundedCorners = 0; this.CustomLabelSettingInfoWorkingMode1.Size = new System.Drawing.Size(394, 30); @@ -2116,21 +2196,23 @@ private void InitializeComponent() this.TabPageSettingsCheck.Location = new System.Drawing.Point(94, 4); this.TabPageSettingsCheck.Name = "TabPageSettingsCheck"; this.TabPageSettingsCheck.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSettingsCheck.Size = new System.Drawing.Size(590, 270); + this.TabPageSettingsCheck.Size = new System.Drawing.Size(588, 357); this.TabPageSettingsCheck.TabIndex = 3; this.TabPageSettingsCheck.Tag = 1; this.TabPageSettingsCheck.Text = "Check"; // // CustomGroupBoxSettingCheckSDNS // + this.CustomGroupBoxSettingCheckSDNS.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.CustomGroupBoxSettingCheckSDNS.BorderColor = System.Drawing.Color.Blue; this.CustomGroupBoxSettingCheckSDNS.Controls.Add(this.CustomCheckBoxSettingSdnsNoFilter); this.CustomGroupBoxSettingCheckSDNS.Controls.Add(this.CustomCheckBoxSettingSdnsNoLog); this.CustomGroupBoxSettingCheckSDNS.Controls.Add(this.CustomCheckBoxSettingSdnsDNSSec); - this.CustomGroupBoxSettingCheckSDNS.Location = new System.Drawing.Point(4, 100); + this.CustomGroupBoxSettingCheckSDNS.Location = new System.Drawing.Point(4, 111); this.CustomGroupBoxSettingCheckSDNS.Margin = new System.Windows.Forms.Padding(1); this.CustomGroupBoxSettingCheckSDNS.Name = "CustomGroupBoxSettingCheckSDNS"; - this.CustomGroupBoxSettingCheckSDNS.Size = new System.Drawing.Size(582, 58); + this.CustomGroupBoxSettingCheckSDNS.Size = new System.Drawing.Size(580, 65); this.CustomGroupBoxSettingCheckSDNS.TabIndex = 11; this.CustomGroupBoxSettingCheckSDNS.TabStop = false; this.CustomGroupBoxSettingCheckSDNS.Text = "sdns:// servers must have"; @@ -2143,7 +2225,7 @@ private void InitializeComponent() this.CustomCheckBoxSettingSdnsNoFilter.Checked = true; this.CustomCheckBoxSettingSdnsNoFilter.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxSettingSdnsNoFilter.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxSettingSdnsNoFilter.Location = new System.Drawing.Point(440, 25); + this.CustomCheckBoxSettingSdnsNoFilter.Location = new System.Drawing.Point(420, 28); this.CustomCheckBoxSettingSdnsNoFilter.Name = "CustomCheckBoxSettingSdnsNoFilter"; this.CustomCheckBoxSettingSdnsNoFilter.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxSettingSdnsNoFilter.Size = new System.Drawing.Size(67, 17); @@ -2157,7 +2239,7 @@ private void InitializeComponent() this.CustomCheckBoxSettingSdnsNoLog.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingSdnsNoLog.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingSdnsNoLog.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxSettingSdnsNoLog.Location = new System.Drawing.Point(240, 25); + this.CustomCheckBoxSettingSdnsNoLog.Location = new System.Drawing.Point(230, 28); this.CustomCheckBoxSettingSdnsNoLog.Name = "CustomCheckBoxSettingSdnsNoLog"; this.CustomCheckBoxSettingSdnsNoLog.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxSettingSdnsNoLog.Size = new System.Drawing.Size(61, 17); @@ -2171,7 +2253,7 @@ private void InitializeComponent() this.CustomCheckBoxSettingSdnsDNSSec.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingSdnsDNSSec.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingSdnsDNSSec.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxSettingSdnsDNSSec.Location = new System.Drawing.Point(11, 25); + this.CustomCheckBoxSettingSdnsDNSSec.Location = new System.Drawing.Point(15, 28); this.CustomCheckBoxSettingSdnsDNSSec.Name = "CustomCheckBoxSettingSdnsDNSSec"; this.CustomCheckBoxSettingSdnsDNSSec.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxSettingSdnsDNSSec.Size = new System.Drawing.Size(111, 17); @@ -2191,14 +2273,14 @@ private void InitializeComponent() this.CustomTextBoxSettingCheckDPIHost.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxSettingCheckDPIHost.ForeColor = System.Drawing.Color.White; this.CustomTextBoxSettingCheckDPIHost.HideSelection = true; - this.CustomTextBoxSettingCheckDPIHost.Location = new System.Drawing.Point(280, 58); + this.CustomTextBoxSettingCheckDPIHost.Location = new System.Drawing.Point(274, 63); this.CustomTextBoxSettingCheckDPIHost.MaxLength = 32767; this.CustomTextBoxSettingCheckDPIHost.Multiline = false; this.CustomTextBoxSettingCheckDPIHost.Name = "CustomTextBoxSettingCheckDPIHost"; this.CustomTextBoxSettingCheckDPIHost.ReadOnly = false; this.CustomTextBoxSettingCheckDPIHost.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxSettingCheckDPIHost.ShortcutsEnabled = true; - this.CustomTextBoxSettingCheckDPIHost.Size = new System.Drawing.Size(150, 23); + this.CustomTextBoxSettingCheckDPIHost.Size = new System.Drawing.Size(143, 23); this.CustomTextBoxSettingCheckDPIHost.TabIndex = 0; this.CustomTextBoxSettingCheckDPIHost.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxSettingCheckDPIHost.Texts = "www.youtube.com"; @@ -2214,7 +2296,7 @@ private void InitializeComponent() this.CustomLabelSettingCheckDPIInfo.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingCheckDPIInfo.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingCheckDPIInfo.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingCheckDPIInfo.Location = new System.Drawing.Point(15, 60); + this.CustomLabelSettingCheckDPIInfo.Location = new System.Drawing.Point(15, 65); this.CustomLabelSettingCheckDPIInfo.Name = "CustomLabelSettingCheckDPIInfo"; this.CustomLabelSettingCheckDPIInfo.RoundedCorners = 0; this.CustomLabelSettingCheckDPIInfo.Size = new System.Drawing.Size(257, 15); @@ -2229,7 +2311,7 @@ private void InitializeComponent() this.CustomLabelSettingCheckTimeout.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingCheckTimeout.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingCheckTimeout.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingCheckTimeout.Location = new System.Drawing.Point(15, 20); + this.CustomLabelSettingCheckTimeout.Location = new System.Drawing.Point(15, 25); this.CustomLabelSettingCheckTimeout.Name = "CustomLabelSettingCheckTimeout"; this.CustomLabelSettingCheckTimeout.RoundedCorners = 0; this.CustomLabelSettingCheckTimeout.Size = new System.Drawing.Size(142, 15); @@ -2247,7 +2329,7 @@ private void InitializeComponent() 0, 0, 65536}); - this.CustomNumericUpDownSettingCheckTimeout.Location = new System.Drawing.Point(165, 18); + this.CustomNumericUpDownSettingCheckTimeout.Location = new System.Drawing.Point(160, 23); this.CustomNumericUpDownSettingCheckTimeout.Maximum = new decimal(new int[] { 10, 0, @@ -2259,7 +2341,7 @@ private void InitializeComponent() 0, 65536}); this.CustomNumericUpDownSettingCheckTimeout.Name = "CustomNumericUpDownSettingCheckTimeout"; - this.CustomNumericUpDownSettingCheckTimeout.Size = new System.Drawing.Size(50, 23); + this.CustomNumericUpDownSettingCheckTimeout.Size = new System.Drawing.Size(47, 23); this.CustomNumericUpDownSettingCheckTimeout.TabIndex = 3; this.CustomNumericUpDownSettingCheckTimeout.Value = new decimal(new int[] { 5, @@ -2278,7 +2360,7 @@ private void InitializeComponent() this.TabPageSettingsConnect.Location = new System.Drawing.Point(94, 4); this.TabPageSettingsConnect.Name = "TabPageSettingsConnect"; this.TabPageSettingsConnect.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSettingsConnect.Size = new System.Drawing.Size(590, 270); + this.TabPageSettingsConnect.Size = new System.Drawing.Size(588, 357); this.TabPageSettingsConnect.TabIndex = 4; this.TabPageSettingsConnect.Tag = 2; this.TabPageSettingsConnect.Text = "Connect"; @@ -2291,7 +2373,7 @@ private void InitializeComponent() this.CustomCheckBoxSettingEnableCache.Checked = true; this.CustomCheckBoxSettingEnableCache.CheckState = System.Windows.Forms.CheckState.Checked; this.CustomCheckBoxSettingEnableCache.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxSettingEnableCache.Location = new System.Drawing.Point(50, 50); + this.CustomCheckBoxSettingEnableCache.Location = new System.Drawing.Point(50, 55); this.CustomCheckBoxSettingEnableCache.Name = "CustomCheckBoxSettingEnableCache"; this.CustomCheckBoxSettingEnableCache.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxSettingEnableCache.Size = new System.Drawing.Size(119, 17); @@ -2304,7 +2386,7 @@ private void InitializeComponent() this.CustomNumericUpDownSettingCamouflagePort.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownSettingCamouflagePort.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownSettingCamouflagePort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownSettingCamouflagePort.Location = new System.Drawing.Point(218, 148); + this.CustomNumericUpDownSettingCamouflagePort.Location = new System.Drawing.Point(215, 163); this.CustomNumericUpDownSettingCamouflagePort.Maximum = new decimal(new int[] { 65535, 0, @@ -2316,7 +2398,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownSettingCamouflagePort.Name = "CustomNumericUpDownSettingCamouflagePort"; - this.CustomNumericUpDownSettingCamouflagePort.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownSettingCamouflagePort.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownSettingCamouflagePort.TabIndex = 16; this.CustomNumericUpDownSettingCamouflagePort.Value = new decimal(new int[] { 5380, @@ -2332,7 +2414,7 @@ private void InitializeComponent() this.CustomLabelCheckSettingCamouflagePort.BorderColor = System.Drawing.Color.Blue; this.CustomLabelCheckSettingCamouflagePort.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelCheckSettingCamouflagePort.ForeColor = System.Drawing.Color.White; - this.CustomLabelCheckSettingCamouflagePort.Location = new System.Drawing.Point(50, 150); + this.CustomLabelCheckSettingCamouflagePort.Location = new System.Drawing.Point(50, 165); this.CustomLabelCheckSettingCamouflagePort.Name = "CustomLabelCheckSettingCamouflagePort"; this.CustomLabelCheckSettingCamouflagePort.RoundedCorners = 0; this.CustomLabelCheckSettingCamouflagePort.Size = new System.Drawing.Size(160, 15); @@ -2344,7 +2426,7 @@ private void InitializeComponent() this.CustomNumericUpDownSettingMaxServers.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownSettingMaxServers.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownSettingMaxServers.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownSettingMaxServers.Location = new System.Drawing.Point(285, 98); + this.CustomNumericUpDownSettingMaxServers.Location = new System.Drawing.Point(275, 108); this.CustomNumericUpDownSettingMaxServers.Maximum = new decimal(new int[] { 10, 0, @@ -2356,7 +2438,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownSettingMaxServers.Name = "CustomNumericUpDownSettingMaxServers"; - this.CustomNumericUpDownSettingMaxServers.Size = new System.Drawing.Size(50, 23); + this.CustomNumericUpDownSettingMaxServers.Size = new System.Drawing.Size(47, 23); this.CustomNumericUpDownSettingMaxServers.TabIndex = 7; this.CustomNumericUpDownSettingMaxServers.Value = new decimal(new int[] { 5, @@ -2372,7 +2454,7 @@ private void InitializeComponent() this.CustomLabelSettingMaxServers.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingMaxServers.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingMaxServers.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingMaxServers.Location = new System.Drawing.Point(50, 100); + this.CustomLabelSettingMaxServers.Location = new System.Drawing.Point(50, 110); this.CustomLabelSettingMaxServers.Name = "CustomLabelSettingMaxServers"; this.CustomLabelSettingMaxServers.RoundedCorners = 0; this.CustomLabelSettingMaxServers.Size = new System.Drawing.Size(223, 15); @@ -2391,7 +2473,7 @@ private void InitializeComponent() this.TabPageSettingsSetUnsetDNS.Location = new System.Drawing.Point(94, 4); this.TabPageSettingsSetUnsetDNS.Name = "TabPageSettingsSetUnsetDNS"; this.TabPageSettingsSetUnsetDNS.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSettingsSetUnsetDNS.Size = new System.Drawing.Size(590, 270); + this.TabPageSettingsSetUnsetDNS.Size = new System.Drawing.Size(588, 357); this.TabPageSettingsSetUnsetDNS.TabIndex = 5; this.TabPageSettingsSetUnsetDNS.Tag = 3; this.TabPageSettingsSetUnsetDNS.Text = "Set/Unset DNS"; @@ -2408,14 +2490,14 @@ private void InitializeComponent() this.CustomTextBoxSettingUnsetDns2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxSettingUnsetDns2.ForeColor = System.Drawing.Color.White; this.CustomTextBoxSettingUnsetDns2.HideSelection = true; - this.CustomTextBoxSettingUnsetDns2.Location = new System.Drawing.Point(183, 128); + this.CustomTextBoxSettingUnsetDns2.Location = new System.Drawing.Point(180, 138); this.CustomTextBoxSettingUnsetDns2.MaxLength = 32767; this.CustomTextBoxSettingUnsetDns2.Multiline = false; this.CustomTextBoxSettingUnsetDns2.Name = "CustomTextBoxSettingUnsetDns2"; this.CustomTextBoxSettingUnsetDns2.ReadOnly = false; this.CustomTextBoxSettingUnsetDns2.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxSettingUnsetDns2.ShortcutsEnabled = true; - this.CustomTextBoxSettingUnsetDns2.Size = new System.Drawing.Size(100, 23); + this.CustomTextBoxSettingUnsetDns2.Size = new System.Drawing.Size(95, 23); this.CustomTextBoxSettingUnsetDns2.TabIndex = 0; this.CustomTextBoxSettingUnsetDns2.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxSettingUnsetDns2.Texts = "8.8.4.4"; @@ -2435,14 +2517,14 @@ private void InitializeComponent() this.CustomTextBoxSettingUnsetDns1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxSettingUnsetDns1.ForeColor = System.Drawing.Color.White; this.CustomTextBoxSettingUnsetDns1.HideSelection = true; - this.CustomTextBoxSettingUnsetDns1.Location = new System.Drawing.Point(183, 93); + this.CustomTextBoxSettingUnsetDns1.Location = new System.Drawing.Point(180, 103); this.CustomTextBoxSettingUnsetDns1.MaxLength = 32767; this.CustomTextBoxSettingUnsetDns1.Multiline = false; this.CustomTextBoxSettingUnsetDns1.Name = "CustomTextBoxSettingUnsetDns1"; this.CustomTextBoxSettingUnsetDns1.ReadOnly = false; this.CustomTextBoxSettingUnsetDns1.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxSettingUnsetDns1.ShortcutsEnabled = true; - this.CustomTextBoxSettingUnsetDns1.Size = new System.Drawing.Size(100, 23); + this.CustomTextBoxSettingUnsetDns1.Size = new System.Drawing.Size(95, 23); this.CustomTextBoxSettingUnsetDns1.TabIndex = 0; this.CustomTextBoxSettingUnsetDns1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxSettingUnsetDns1.Texts = "8.8.8.8"; @@ -2458,7 +2540,7 @@ private void InitializeComponent() this.CustomLabelSettingUnsetDns2.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingUnsetDns2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingUnsetDns2.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingUnsetDns2.Location = new System.Drawing.Point(110, 130); + this.CustomLabelSettingUnsetDns2.Location = new System.Drawing.Point(110, 140); this.CustomLabelSettingUnsetDns2.Name = "CustomLabelSettingUnsetDns2"; this.CustomLabelSettingUnsetDns2.RoundedCorners = 0; this.CustomLabelSettingUnsetDns2.Size = new System.Drawing.Size(65, 15); @@ -2473,7 +2555,7 @@ private void InitializeComponent() this.CustomLabelSettingUnsetDns1.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingUnsetDns1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingUnsetDns1.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingUnsetDns1.Location = new System.Drawing.Point(110, 95); + this.CustomLabelSettingUnsetDns1.Location = new System.Drawing.Point(110, 105); this.CustomLabelSettingUnsetDns1.Name = "CustomLabelSettingUnsetDns1"; this.CustomLabelSettingUnsetDns1.RoundedCorners = 0; this.CustomLabelSettingUnsetDns1.Size = new System.Drawing.Size(51, 15); @@ -2487,7 +2569,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingUnsetDnsToStatic.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingUnsetDnsToStatic.Checked = true; this.CustomRadioButtonSettingUnsetDnsToStatic.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingUnsetDnsToStatic.Location = new System.Drawing.Point(50, 65); + this.CustomRadioButtonSettingUnsetDnsToStatic.Location = new System.Drawing.Point(50, 70); this.CustomRadioButtonSettingUnsetDnsToStatic.Name = "CustomRadioButtonSettingUnsetDnsToStatic"; this.CustomRadioButtonSettingUnsetDnsToStatic.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingUnsetDnsToStatic.Size = new System.Drawing.Size(131, 17); @@ -2502,7 +2584,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingUnsetDnsToDhcp.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingUnsetDnsToDhcp.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingUnsetDnsToDhcp.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingUnsetDnsToDhcp.Location = new System.Drawing.Point(50, 30); + this.CustomRadioButtonSettingUnsetDnsToDhcp.Location = new System.Drawing.Point(50, 35); this.CustomRadioButtonSettingUnsetDnsToDhcp.Name = "CustomRadioButtonSettingUnsetDnsToDhcp"; this.CustomRadioButtonSettingUnsetDnsToDhcp.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingUnsetDnsToDhcp.Size = new System.Drawing.Size(130, 17); @@ -2522,7 +2604,7 @@ private void InitializeComponent() this.TabPageSettingsCPU.Location = new System.Drawing.Point(94, 4); this.TabPageSettingsCPU.Name = "TabPageSettingsCPU"; this.TabPageSettingsCPU.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSettingsCPU.Size = new System.Drawing.Size(590, 270); + this.TabPageSettingsCPU.Size = new System.Drawing.Size(588, 357); this.TabPageSettingsCPU.TabIndex = 1; this.TabPageSettingsCPU.Tag = 4; this.TabPageSettingsCPU.Text = "CPU"; @@ -2533,7 +2615,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingCPULow.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPULow.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPULow.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingCPULow.Location = new System.Drawing.Point(50, 170); + this.CustomRadioButtonSettingCPULow.Location = new System.Drawing.Point(50, 180); this.CustomRadioButtonSettingCPULow.Name = "CustomRadioButtonSettingCPULow"; this.CustomRadioButtonSettingCPULow.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingCPULow.Size = new System.Drawing.Size(42, 17); @@ -2547,7 +2629,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingCPUBelowNormal.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPUBelowNormal.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPUBelowNormal.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingCPUBelowNormal.Location = new System.Drawing.Point(50, 145); + this.CustomRadioButtonSettingCPUBelowNormal.Location = new System.Drawing.Point(50, 155); this.CustomRadioButtonSettingCPUBelowNormal.Name = "CustomRadioButtonSettingCPUBelowNormal"; this.CustomRadioButtonSettingCPUBelowNormal.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingCPUBelowNormal.Size = new System.Drawing.Size(95, 17); @@ -2562,7 +2644,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingCPUNormal.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPUNormal.Checked = true; this.CustomRadioButtonSettingCPUNormal.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingCPUNormal.Location = new System.Drawing.Point(50, 120); + this.CustomRadioButtonSettingCPUNormal.Location = new System.Drawing.Point(50, 130); this.CustomRadioButtonSettingCPUNormal.Name = "CustomRadioButtonSettingCPUNormal"; this.CustomRadioButtonSettingCPUNormal.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingCPUNormal.Size = new System.Drawing.Size(61, 17); @@ -2577,7 +2659,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingCPUAboveNormal.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPUAboveNormal.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPUAboveNormal.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingCPUAboveNormal.Location = new System.Drawing.Point(50, 95); + this.CustomRadioButtonSettingCPUAboveNormal.Location = new System.Drawing.Point(50, 105); this.CustomRadioButtonSettingCPUAboveNormal.Name = "CustomRadioButtonSettingCPUAboveNormal"; this.CustomRadioButtonSettingCPUAboveNormal.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingCPUAboveNormal.Size = new System.Drawing.Size(97, 17); @@ -2591,7 +2673,7 @@ private void InitializeComponent() this.CustomRadioButtonSettingCPUHigh.BorderColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPUHigh.CheckColor = System.Drawing.Color.Blue; this.CustomRadioButtonSettingCPUHigh.ForeColor = System.Drawing.Color.White; - this.CustomRadioButtonSettingCPUHigh.Location = new System.Drawing.Point(50, 70); + this.CustomRadioButtonSettingCPUHigh.Location = new System.Drawing.Point(50, 80); this.CustomRadioButtonSettingCPUHigh.Name = "CustomRadioButtonSettingCPUHigh"; this.CustomRadioButtonSettingCPUHigh.SelectionColor = System.Drawing.Color.LightBlue; this.CustomRadioButtonSettingCPUHigh.Size = new System.Drawing.Size(47, 17); @@ -2607,7 +2689,7 @@ private void InitializeComponent() this.CustomLabelSettingInfoCPU.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingInfoCPU.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingInfoCPU.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingInfoCPU.Location = new System.Drawing.Point(50, 30); + this.CustomLabelSettingInfoCPU.Location = new System.Drawing.Point(50, 35); this.CustomLabelSettingInfoCPU.Name = "CustomLabelSettingInfoCPU"; this.CustomLabelSettingInfoCPU.RoundedCorners = 0; this.CustomLabelSettingInfoCPU.Size = new System.Drawing.Size(132, 15); @@ -2631,7 +2713,7 @@ private void InitializeComponent() this.TabPageSettingsOthers.Location = new System.Drawing.Point(94, 4); this.TabPageSettingsOthers.Name = "TabPageSettingsOthers"; this.TabPageSettingsOthers.Padding = new System.Windows.Forms.Padding(3); - this.TabPageSettingsOthers.Size = new System.Drawing.Size(590, 270); + this.TabPageSettingsOthers.Size = new System.Drawing.Size(588, 357); this.TabPageSettingsOthers.TabIndex = 2; this.TabPageSettingsOthers.Tag = 5; this.TabPageSettingsOthers.Text = "Others"; @@ -2642,7 +2724,7 @@ private void InitializeComponent() this.CustomNumericUpDownSettingFallbackDnsPort.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownSettingFallbackDnsPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.CustomNumericUpDownSettingFallbackDnsPort.Enabled = false; - this.CustomNumericUpDownSettingFallbackDnsPort.Location = new System.Drawing.Point(410, 63); + this.CustomNumericUpDownSettingFallbackDnsPort.Location = new System.Drawing.Point(395, 68); this.CustomNumericUpDownSettingFallbackDnsPort.Maximum = new decimal(new int[] { 65535, 0, @@ -2654,7 +2736,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownSettingFallbackDnsPort.Name = "CustomNumericUpDownSettingFallbackDnsPort"; - this.CustomNumericUpDownSettingFallbackDnsPort.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownSettingFallbackDnsPort.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownSettingFallbackDnsPort.TabIndex = 13; this.CustomNumericUpDownSettingFallbackDnsPort.Value = new decimal(new int[] { 53, @@ -2670,7 +2752,7 @@ private void InitializeComponent() this.CustomLabelSettingFallbackDnsPort.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingFallbackDnsPort.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingFallbackDnsPort.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingFallbackDnsPort.Location = new System.Drawing.Point(290, 65); + this.CustomLabelSettingFallbackDnsPort.Location = new System.Drawing.Point(275, 70); this.CustomLabelSettingFallbackDnsPort.Name = "CustomLabelSettingFallbackDnsPort"; this.CustomLabelSettingFallbackDnsPort.RoundedCorners = 0; this.CustomLabelSettingFallbackDnsPort.Size = new System.Drawing.Size(104, 15); @@ -2690,14 +2772,14 @@ private void InitializeComponent() this.CustomTextBoxSettingFallbackDnsIP.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxSettingFallbackDnsIP.ForeColor = System.Drawing.Color.White; this.CustomTextBoxSettingFallbackDnsIP.HideSelection = true; - this.CustomTextBoxSettingFallbackDnsIP.Location = new System.Drawing.Point(125, 63); + this.CustomTextBoxSettingFallbackDnsIP.Location = new System.Drawing.Point(120, 68); this.CustomTextBoxSettingFallbackDnsIP.MaxLength = 32767; this.CustomTextBoxSettingFallbackDnsIP.Multiline = false; this.CustomTextBoxSettingFallbackDnsIP.Name = "CustomTextBoxSettingFallbackDnsIP"; this.CustomTextBoxSettingFallbackDnsIP.ReadOnly = false; this.CustomTextBoxSettingFallbackDnsIP.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxSettingFallbackDnsIP.ShortcutsEnabled = true; - this.CustomTextBoxSettingFallbackDnsIP.Size = new System.Drawing.Size(100, 23); + this.CustomTextBoxSettingFallbackDnsIP.Size = new System.Drawing.Size(95, 23); this.CustomTextBoxSettingFallbackDnsIP.TabIndex = 0; this.CustomTextBoxSettingFallbackDnsIP.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxSettingFallbackDnsIP.Texts = "8.8.8.8"; @@ -2713,7 +2795,7 @@ private void InitializeComponent() this.CustomLabelSettingFallbackDnsIP.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingFallbackDnsIP.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingFallbackDnsIP.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingFallbackDnsIP.Location = new System.Drawing.Point(15, 65); + this.CustomLabelSettingFallbackDnsIP.Location = new System.Drawing.Point(15, 70); this.CustomLabelSettingFallbackDnsIP.Name = "CustomLabelSettingFallbackDnsIP"; this.CustomLabelSettingFallbackDnsIP.RoundedCorners = 0; this.CustomLabelSettingFallbackDnsIP.Size = new System.Drawing.Size(92, 15); @@ -2725,7 +2807,7 @@ private void InitializeComponent() this.CustomNumericUpDownSettingBootstrapDnsPort.BackColor = System.Drawing.Color.DimGray; this.CustomNumericUpDownSettingBootstrapDnsPort.BorderColor = System.Drawing.Color.Blue; this.CustomNumericUpDownSettingBootstrapDnsPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.CustomNumericUpDownSettingBootstrapDnsPort.Location = new System.Drawing.Point(410, 18); + this.CustomNumericUpDownSettingBootstrapDnsPort.Location = new System.Drawing.Point(395, 18); this.CustomNumericUpDownSettingBootstrapDnsPort.Maximum = new decimal(new int[] { 65535, 0, @@ -2737,7 +2819,7 @@ private void InitializeComponent() 0, 0}); this.CustomNumericUpDownSettingBootstrapDnsPort.Name = "CustomNumericUpDownSettingBootstrapDnsPort"; - this.CustomNumericUpDownSettingBootstrapDnsPort.Size = new System.Drawing.Size(55, 23); + this.CustomNumericUpDownSettingBootstrapDnsPort.Size = new System.Drawing.Size(53, 23); this.CustomNumericUpDownSettingBootstrapDnsPort.TabIndex = 9; this.CustomNumericUpDownSettingBootstrapDnsPort.Value = new decimal(new int[] { 53, @@ -2753,7 +2835,7 @@ private void InitializeComponent() this.CustomLabelSettingBootstrapDnsPort.BorderColor = System.Drawing.Color.Blue; this.CustomLabelSettingBootstrapDnsPort.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelSettingBootstrapDnsPort.ForeColor = System.Drawing.Color.White; - this.CustomLabelSettingBootstrapDnsPort.Location = new System.Drawing.Point(290, 20); + this.CustomLabelSettingBootstrapDnsPort.Location = new System.Drawing.Point(275, 20); this.CustomLabelSettingBootstrapDnsPort.Name = "CustomLabelSettingBootstrapDnsPort"; this.CustomLabelSettingBootstrapDnsPort.RoundedCorners = 0; this.CustomLabelSettingBootstrapDnsPort.Size = new System.Drawing.Size(112, 15); @@ -2762,13 +2844,15 @@ private void InitializeComponent() // // CustomButtonSettingRestoreDefault // + this.CustomButtonSettingRestoreDefault.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomButtonSettingRestoreDefault.AutoSize = true; this.CustomButtonSettingRestoreDefault.BorderColor = System.Drawing.Color.Blue; this.CustomButtonSettingRestoreDefault.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CustomButtonSettingRestoreDefault.Location = new System.Drawing.Point(40, 235); + this.CustomButtonSettingRestoreDefault.Location = new System.Drawing.Point(40, 324); this.CustomButtonSettingRestoreDefault.Name = "CustomButtonSettingRestoreDefault"; this.CustomButtonSettingRestoreDefault.RoundedCorners = 0; this.CustomButtonSettingRestoreDefault.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomButtonSettingRestoreDefault.Size = new System.Drawing.Size(160, 23); + this.CustomButtonSettingRestoreDefault.Size = new System.Drawing.Size(171, 27); this.CustomButtonSettingRestoreDefault.TabIndex = 2; this.CustomButtonSettingRestoreDefault.Text = "Restore all settings to default"; this.CustomButtonSettingRestoreDefault.UseVisualStyleBackColor = true; @@ -2780,7 +2864,7 @@ private void InitializeComponent() this.CustomCheckBoxSettingDisableAudioAlert.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingDisableAudioAlert.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingDisableAudioAlert.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxSettingDisableAudioAlert.Location = new System.Drawing.Point(15, 155); + this.CustomCheckBoxSettingDisableAudioAlert.Location = new System.Drawing.Point(15, 170); this.CustomCheckBoxSettingDisableAudioAlert.Name = "CustomCheckBoxSettingDisableAudioAlert"; this.CustomCheckBoxSettingDisableAudioAlert.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxSettingDisableAudioAlert.Size = new System.Drawing.Size(125, 17); @@ -2809,7 +2893,7 @@ private void InitializeComponent() this.CustomCheckBoxSettingDontAskCertificate.BorderColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingDontAskCertificate.CheckColor = System.Drawing.Color.Blue; this.CustomCheckBoxSettingDontAskCertificate.ForeColor = System.Drawing.Color.White; - this.CustomCheckBoxSettingDontAskCertificate.Location = new System.Drawing.Point(15, 110); + this.CustomCheckBoxSettingDontAskCertificate.Location = new System.Drawing.Point(15, 120); this.CustomCheckBoxSettingDontAskCertificate.Name = "CustomCheckBoxSettingDontAskCertificate"; this.CustomCheckBoxSettingDontAskCertificate.SelectionColor = System.Drawing.Color.LightBlue; this.CustomCheckBoxSettingDontAskCertificate.Size = new System.Drawing.Size(210, 17); @@ -2829,14 +2913,14 @@ private void InitializeComponent() this.CustomTextBoxSettingBootstrapDnsIP.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomTextBoxSettingBootstrapDnsIP.ForeColor = System.Drawing.Color.White; this.CustomTextBoxSettingBootstrapDnsIP.HideSelection = true; - this.CustomTextBoxSettingBootstrapDnsIP.Location = new System.Drawing.Point(125, 18); + this.CustomTextBoxSettingBootstrapDnsIP.Location = new System.Drawing.Point(120, 18); this.CustomTextBoxSettingBootstrapDnsIP.MaxLength = 32767; this.CustomTextBoxSettingBootstrapDnsIP.Multiline = false; this.CustomTextBoxSettingBootstrapDnsIP.Name = "CustomTextBoxSettingBootstrapDnsIP"; this.CustomTextBoxSettingBootstrapDnsIP.ReadOnly = false; this.CustomTextBoxSettingBootstrapDnsIP.ScrollBars = System.Windows.Forms.ScrollBars.None; this.CustomTextBoxSettingBootstrapDnsIP.ShortcutsEnabled = true; - this.CustomTextBoxSettingBootstrapDnsIP.Size = new System.Drawing.Size(100, 23); + this.CustomTextBoxSettingBootstrapDnsIP.Size = new System.Drawing.Size(95, 23); this.CustomTextBoxSettingBootstrapDnsIP.TabIndex = 0; this.CustomTextBoxSettingBootstrapDnsIP.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.CustomTextBoxSettingBootstrapDnsIP.Texts = "8.8.8.8"; @@ -2861,7 +2945,7 @@ private void InitializeComponent() this.TabPageAbout.Location = new System.Drawing.Point(4, 25); this.TabPageAbout.Name = "TabPageAbout"; this.TabPageAbout.Padding = new System.Windows.Forms.Padding(3); - this.TabPageAbout.Size = new System.Drawing.Size(692, 284); + this.TabPageAbout.Size = new System.Drawing.Size(692, 371); this.TabPageAbout.TabIndex = 2; this.TabPageAbout.Tag = 2; this.TabPageAbout.Text = "About"; @@ -2870,7 +2954,7 @@ private void InitializeComponent() // this.LinkLabelStAlidxdydz.AutoSize = true; this.LinkLabelStAlidxdydz.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline; - this.LinkLabelStAlidxdydz.Location = new System.Drawing.Point(485, 153); + this.LinkLabelStAlidxdydz.Location = new System.Drawing.Point(461, 174); this.LinkLabelStAlidxdydz.Name = "LinkLabelStAlidxdydz"; this.LinkLabelStAlidxdydz.Size = new System.Drawing.Size(59, 15); this.LinkLabelStAlidxdydz.TabIndex = 10; @@ -2886,7 +2970,7 @@ private void InitializeComponent() this.CustomLabelAboutSpecialThanks.BorderColor = System.Drawing.Color.Blue; this.CustomLabelAboutSpecialThanks.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelAboutSpecialThanks.ForeColor = System.Drawing.Color.White; - this.CustomLabelAboutSpecialThanks.Location = new System.Drawing.Point(470, 120); + this.CustomLabelAboutSpecialThanks.Location = new System.Drawing.Point(446, 135); this.CustomLabelAboutSpecialThanks.Name = "CustomLabelAboutSpecialThanks"; this.CustomLabelAboutSpecialThanks.RoundedCorners = 0; this.CustomLabelAboutSpecialThanks.Size = new System.Drawing.Size(81, 75); @@ -2897,7 +2981,7 @@ private void InitializeComponent() // this.LinkLabelGoodbyeDPI.AutoSize = true; this.LinkLabelGoodbyeDPI.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline; - this.LinkLabelGoodbyeDPI.Location = new System.Drawing.Point(300, 213); + this.LinkLabelGoodbyeDPI.Location = new System.Drawing.Point(285, 230); this.LinkLabelGoodbyeDPI.Name = "LinkLabelGoodbyeDPI"; this.LinkLabelGoodbyeDPI.Size = new System.Drawing.Size(76, 15); this.LinkLabelGoodbyeDPI.TabIndex = 6; @@ -2909,7 +2993,7 @@ private void InitializeComponent() // this.LinkLabelDNSCrypt.AutoSize = true; this.LinkLabelDNSCrypt.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline; - this.LinkLabelDNSCrypt.Location = new System.Drawing.Point(300, 193); + this.LinkLabelDNSCrypt.Location = new System.Drawing.Point(285, 208); this.LinkLabelDNSCrypt.Name = "LinkLabelDNSCrypt"; this.LinkLabelDNSCrypt.Size = new System.Drawing.Size(62, 15); this.LinkLabelDNSCrypt.TabIndex = 5; @@ -2921,7 +3005,7 @@ private void InitializeComponent() // this.LinkLabelDNSProxy.AutoSize = true; this.LinkLabelDNSProxy.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline; - this.LinkLabelDNSProxy.Location = new System.Drawing.Point(300, 173); + this.LinkLabelDNSProxy.Location = new System.Drawing.Point(285, 185); this.LinkLabelDNSProxy.Name = "LinkLabelDNSProxy"; this.LinkLabelDNSProxy.Size = new System.Drawing.Size(160, 15); this.LinkLabelDNSProxy.TabIndex = 4; @@ -2933,7 +3017,7 @@ private void InitializeComponent() // this.LinkLabelDNSLookup.AutoSize = true; this.LinkLabelDNSLookup.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline; - this.LinkLabelDNSLookup.Location = new System.Drawing.Point(300, 153); + this.LinkLabelDNSLookup.Location = new System.Drawing.Point(285, 163); this.LinkLabelDNSLookup.Name = "LinkLabelDNSLookup"; this.LinkLabelDNSLookup.Size = new System.Drawing.Size(73, 15); this.LinkLabelDNSLookup.TabIndex = 3; @@ -2949,7 +3033,7 @@ private void InitializeComponent() this.CustomLabelAboutUsing.BorderColor = System.Drawing.Color.Blue; this.CustomLabelAboutUsing.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelAboutUsing.ForeColor = System.Drawing.Color.White; - this.CustomLabelAboutUsing.Location = new System.Drawing.Point(285, 120); + this.CustomLabelAboutUsing.Location = new System.Drawing.Point(270, 135); this.CustomLabelAboutUsing.Name = "CustomLabelAboutUsing"; this.CustomLabelAboutUsing.RoundedCorners = 0; this.CustomLabelAboutUsing.Size = new System.Drawing.Size(36, 120); @@ -2964,7 +3048,7 @@ private void InitializeComponent() this.CustomLabelAboutVersion.BorderColor = System.Drawing.Color.Blue; this.CustomLabelAboutVersion.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelAboutVersion.ForeColor = System.Drawing.Color.White; - this.CustomLabelAboutVersion.Location = new System.Drawing.Point(623, 46); + this.CustomLabelAboutVersion.Location = new System.Drawing.Point(600, 51); this.CustomLabelAboutVersion.Name = "CustomLabelAboutVersion"; this.CustomLabelAboutVersion.RoundedCorners = 0; this.CustomLabelAboutVersion.Size = new System.Drawing.Size(45, 15); @@ -2979,7 +3063,7 @@ private void InitializeComponent() this.CustomLabelAboutThis2.BorderColor = System.Drawing.Color.Blue; this.CustomLabelAboutThis2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelAboutThis2.ForeColor = System.Drawing.Color.IndianRed; - this.CustomLabelAboutThis2.Location = new System.Drawing.Point(282, 70); + this.CustomLabelAboutThis2.Location = new System.Drawing.Point(267, 75); this.CustomLabelAboutThis2.Name = "CustomLabelAboutThis2"; this.CustomLabelAboutThis2.RoundedCorners = 0; this.CustomLabelAboutThis2.Size = new System.Drawing.Size(333, 15); @@ -2996,7 +3080,7 @@ private void InitializeComponent() this.CustomLabelAboutThis.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.CustomLabelAboutThis.Font = new System.Drawing.Font("Verdana", 19F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); this.CustomLabelAboutThis.ForeColor = System.Drawing.Color.DodgerBlue; - this.CustomLabelAboutThis.Location = new System.Drawing.Point(250, 30); + this.CustomLabelAboutThis.Location = new System.Drawing.Point(235, 33); this.CustomLabelAboutThis.Name = "CustomLabelAboutThis"; this.CustomLabelAboutThis.RoundedCorners = 0; this.CustomLabelAboutThis.Size = new System.Drawing.Size(367, 32); @@ -3007,78 +3091,27 @@ private void InitializeComponent() // PictureBoxAbout // this.PictureBoxAbout.Image = global::SecureDNSClient.Properties.Resources.SecureDNSClient; - this.PictureBoxAbout.Location = new System.Drawing.Point(60, 30); + this.PictureBoxAbout.Location = new System.Drawing.Point(55, 35); this.PictureBoxAbout.Name = "PictureBoxAbout"; this.PictureBoxAbout.Size = new System.Drawing.Size(128, 128); this.PictureBoxAbout.TabIndex = 0; this.PictureBoxAbout.TabStop = false; // - // CustomStatusStrip1 - // - this.CustomStatusStrip1.BackColor = System.Drawing.Color.DimGray; - this.CustomStatusStrip1.Border = false; - this.CustomStatusStrip1.BorderColor = System.Drawing.Color.Blue; - this.CustomStatusStrip1.ForeColor = System.Drawing.Color.White; - this.CustomStatusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.CustomStatusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.ToolStripStatusLabelDNS, - this.ToolStripStatusLabelDnsLatency, - this.ToolStripStatusLabelDoH, - this.ToolStripStatusLabelDohLatency, - this.ToolStripStatusLabelSpace, - this.ToolStripStatusLabelPercent}); - this.CustomStatusStrip1.Location = new System.Drawing.Point(0, 564); - this.CustomStatusStrip1.Name = "CustomStatusStrip1"; - this.CustomStatusStrip1.SelectionColor = System.Drawing.Color.LightBlue; - this.CustomStatusStrip1.Size = new System.Drawing.Size(704, 22); - this.CustomStatusStrip1.TabIndex = 7; - this.CustomStatusStrip1.Text = "CustomStatusStrip1"; - // - // ToolStripStatusLabelDNS - // - this.ToolStripStatusLabelDNS.AutoSize = false; - this.ToolStripStatusLabelDNS.Name = "ToolStripStatusLabelDNS"; - this.ToolStripStatusLabelDNS.Size = new System.Drawing.Size(120, 17); - this.ToolStripStatusLabelDNS.Text = "DNS status: Offline."; - this.ToolStripStatusLabelDNS.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // ToolStripStatusLabelDnsLatency - // - this.ToolStripStatusLabelDnsLatency.AutoSize = false; - this.ToolStripStatusLabelDnsLatency.Name = "ToolStripStatusLabelDnsLatency"; - this.ToolStripStatusLabelDnsLatency.Size = new System.Drawing.Size(100, 17); - this.ToolStripStatusLabelDnsLatency.Text = "Latency: -1"; - this.ToolStripStatusLabelDnsLatency.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // ToolStripStatusLabelDoH - // - this.ToolStripStatusLabelDoH.AutoSize = false; - this.ToolStripStatusLabelDoH.Name = "ToolStripStatusLabelDoH"; - this.ToolStripStatusLabelDoH.Size = new System.Drawing.Size(120, 17); - this.ToolStripStatusLabelDoH.Text = "DoH status: Offline."; - this.ToolStripStatusLabelDoH.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // ToolStripStatusLabelDohLatency - // - this.ToolStripStatusLabelDohLatency.AutoSize = false; - this.ToolStripStatusLabelDohLatency.Name = "ToolStripStatusLabelDohLatency"; - this.ToolStripStatusLabelDohLatency.Size = new System.Drawing.Size(100, 17); - this.ToolStripStatusLabelDohLatency.Text = "Latency: -1"; - this.ToolStripStatusLabelDohLatency.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // ToolStripStatusLabelSpace - // - this.ToolStripStatusLabelSpace.Name = "ToolStripStatusLabelSpace"; - this.ToolStripStatusLabelSpace.Size = new System.Drawing.Size(194, 17); - this.ToolStripStatusLabelSpace.Spring = true; - // - // ToolStripStatusLabelPercent - // - this.ToolStripStatusLabelPercent.AutoSize = false; - this.ToolStripStatusLabelPercent.Name = "ToolStripStatusLabelPercent"; - this.ToolStripStatusLabelPercent.Size = new System.Drawing.Size(55, 17); - this.ToolStripStatusLabelPercent.Text = "0%"; - this.ToolStripStatusLabelPercent.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // CustomButtonToggleLogView + // + this.CustomButtonToggleLogView.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CustomButtonToggleLogView.AutoSize = true; + this.CustomButtonToggleLogView.BorderColor = System.Drawing.Color.Blue; + this.CustomButtonToggleLogView.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomButtonToggleLogView.Location = new System.Drawing.Point(144, 362); + this.CustomButtonToggleLogView.Name = "CustomButtonToggleLogView"; + this.CustomButtonToggleLogView.RoundedCorners = 5; + this.CustomButtonToggleLogView.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomButtonToggleLogView.Size = new System.Drawing.Size(25, 27); + this.CustomButtonToggleLogView.TabIndex = 10; + this.CustomButtonToggleLogView.Text = "T"; + this.CustomButtonToggleLogView.UseVisualStyleBackColor = true; + this.CustomButtonToggleLogView.Click += new System.EventHandler(this.CustomButtonToggleLogView_Click); // // NotifyIconMain // @@ -3101,20 +3134,202 @@ private void InitializeComponent() // CustomGroupBoxStatus // this.CustomGroupBoxStatus.BorderColor = System.Drawing.Color.Blue; + this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusProxyRequests); + this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusLocalDoHLatency); + this.CustomGroupBoxStatus.Controls.Add(this.CustomButtonToggleLogView); + this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusLocalDoH); + this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusLocalDnsLatency); + this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusLocalDNS); this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusIsProxySet); this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusIsSharing); this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusIsDNSSet); this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusIsDPIActive); this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusIsConnected); this.CustomGroupBoxStatus.Controls.Add(this.CustomRichTextBoxStatusWorkingServers); - this.CustomGroupBoxStatus.Location = new System.Drawing.Point(1, 315); + this.CustomGroupBoxStatus.Dock = System.Windows.Forms.DockStyle.Fill; + this.CustomGroupBoxStatus.Location = new System.Drawing.Point(0, 0); this.CustomGroupBoxStatus.Margin = new System.Windows.Forms.Padding(1); this.CustomGroupBoxStatus.Name = "CustomGroupBoxStatus"; - this.CustomGroupBoxStatus.Size = new System.Drawing.Size(700, 40); + this.CustomGroupBoxStatus.Size = new System.Drawing.Size(180, 400); this.CustomGroupBoxStatus.TabIndex = 8; this.CustomGroupBoxStatus.TabStop = false; this.CustomGroupBoxStatus.Text = "Status"; // + // CustomRichTextBoxStatusProxyRequests + // + this.CustomRichTextBoxStatusProxyRequests.AcceptsTab = false; + this.CustomRichTextBoxStatusProxyRequests.AutoWordSelection = false; + this.CustomRichTextBoxStatusProxyRequests.BackColor = System.Drawing.Color.DimGray; + this.CustomRichTextBoxStatusProxyRequests.Border = false; + this.CustomRichTextBoxStatusProxyRequests.BorderColor = System.Drawing.Color.Blue; + this.CustomRichTextBoxStatusProxyRequests.BorderSize = 1; + this.CustomRichTextBoxStatusProxyRequests.BulletIndent = 0; + this.CustomRichTextBoxStatusProxyRequests.Cursor = System.Windows.Forms.Cursors.Default; + this.CustomRichTextBoxStatusProxyRequests.DetectUrls = true; + this.CustomRichTextBoxStatusProxyRequests.EnableAutoDragDrop = false; + this.CustomRichTextBoxStatusProxyRequests.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomRichTextBoxStatusProxyRequests.ForeColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusProxyRequests.HideSelection = true; + this.CustomRichTextBoxStatusProxyRequests.Location = new System.Drawing.Point(5, 240); + this.CustomRichTextBoxStatusProxyRequests.MaxLength = 2147483647; + this.CustomRichTextBoxStatusProxyRequests.MinimumSize = new System.Drawing.Size(0, 15); + this.CustomRichTextBoxStatusProxyRequests.Multiline = false; + this.CustomRichTextBoxStatusProxyRequests.Name = "CustomRichTextBoxStatusProxyRequests"; + this.CustomRichTextBoxStatusProxyRequests.ReadOnly = true; + this.CustomRichTextBoxStatusProxyRequests.RightMargin = 0; + this.CustomRichTextBoxStatusProxyRequests.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomRichTextBoxStatusProxyRequests.ScrollToBottom = false; + this.CustomRichTextBoxStatusProxyRequests.SelectionColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusProxyRequests.SelectionLength = 0; + this.CustomRichTextBoxStatusProxyRequests.SelectionStart = 0; + this.CustomRichTextBoxStatusProxyRequests.ShortcutsEnabled = true; + this.CustomRichTextBoxStatusProxyRequests.Size = new System.Drawing.Size(170, 23); + this.CustomRichTextBoxStatusProxyRequests.TabIndex = 0; + this.CustomRichTextBoxStatusProxyRequests.Texts = "Proxy Requests 20000 of 20000"; + this.CustomRichTextBoxStatusProxyRequests.UnderlinedStyle = false; + this.CustomRichTextBoxStatusProxyRequests.WordWrap = false; + this.CustomRichTextBoxStatusProxyRequests.ZoomFactor = 1F; + // + // CustomRichTextBoxStatusLocalDoHLatency + // + this.CustomRichTextBoxStatusLocalDoHLatency.AcceptsTab = false; + this.CustomRichTextBoxStatusLocalDoHLatency.AutoWordSelection = false; + this.CustomRichTextBoxStatusLocalDoHLatency.BackColor = System.Drawing.Color.DimGray; + this.CustomRichTextBoxStatusLocalDoHLatency.Border = false; + this.CustomRichTextBoxStatusLocalDoHLatency.BorderColor = System.Drawing.Color.Blue; + this.CustomRichTextBoxStatusLocalDoHLatency.BorderSize = 1; + this.CustomRichTextBoxStatusLocalDoHLatency.BulletIndent = 0; + this.CustomRichTextBoxStatusLocalDoHLatency.Cursor = System.Windows.Forms.Cursors.Default; + this.CustomRichTextBoxStatusLocalDoHLatency.DetectUrls = true; + this.CustomRichTextBoxStatusLocalDoHLatency.EnableAutoDragDrop = false; + this.CustomRichTextBoxStatusLocalDoHLatency.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomRichTextBoxStatusLocalDoHLatency.ForeColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDoHLatency.HideSelection = true; + this.CustomRichTextBoxStatusLocalDoHLatency.Location = new System.Drawing.Point(5, 140); + this.CustomRichTextBoxStatusLocalDoHLatency.MaxLength = 2147483647; + this.CustomRichTextBoxStatusLocalDoHLatency.MinimumSize = new System.Drawing.Size(0, 15); + this.CustomRichTextBoxStatusLocalDoHLatency.Multiline = false; + this.CustomRichTextBoxStatusLocalDoHLatency.Name = "CustomRichTextBoxStatusLocalDoHLatency"; + this.CustomRichTextBoxStatusLocalDoHLatency.ReadOnly = true; + this.CustomRichTextBoxStatusLocalDoHLatency.RightMargin = 0; + this.CustomRichTextBoxStatusLocalDoHLatency.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomRichTextBoxStatusLocalDoHLatency.ScrollToBottom = false; + this.CustomRichTextBoxStatusLocalDoHLatency.SelectionColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDoHLatency.SelectionLength = 0; + this.CustomRichTextBoxStatusLocalDoHLatency.SelectionStart = 0; + this.CustomRichTextBoxStatusLocalDoHLatency.ShortcutsEnabled = true; + this.CustomRichTextBoxStatusLocalDoHLatency.Size = new System.Drawing.Size(170, 23); + this.CustomRichTextBoxStatusLocalDoHLatency.TabIndex = 0; + this.CustomRichTextBoxStatusLocalDoHLatency.Texts = "Local DoH Latency: -1"; + this.CustomRichTextBoxStatusLocalDoHLatency.UnderlinedStyle = false; + this.CustomRichTextBoxStatusLocalDoHLatency.WordWrap = false; + this.CustomRichTextBoxStatusLocalDoHLatency.ZoomFactor = 1F; + // + // CustomRichTextBoxStatusLocalDoH + // + this.CustomRichTextBoxStatusLocalDoH.AcceptsTab = false; + this.CustomRichTextBoxStatusLocalDoH.AutoWordSelection = false; + this.CustomRichTextBoxStatusLocalDoH.BackColor = System.Drawing.Color.DimGray; + this.CustomRichTextBoxStatusLocalDoH.Border = false; + this.CustomRichTextBoxStatusLocalDoH.BorderColor = System.Drawing.Color.Blue; + this.CustomRichTextBoxStatusLocalDoH.BorderSize = 1; + this.CustomRichTextBoxStatusLocalDoH.BulletIndent = 0; + this.CustomRichTextBoxStatusLocalDoH.Cursor = System.Windows.Forms.Cursors.Default; + this.CustomRichTextBoxStatusLocalDoH.DetectUrls = true; + this.CustomRichTextBoxStatusLocalDoH.EnableAutoDragDrop = false; + this.CustomRichTextBoxStatusLocalDoH.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomRichTextBoxStatusLocalDoH.ForeColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDoH.HideSelection = true; + this.CustomRichTextBoxStatusLocalDoH.Location = new System.Drawing.Point(5, 115); + this.CustomRichTextBoxStatusLocalDoH.MaxLength = 2147483647; + this.CustomRichTextBoxStatusLocalDoH.MinimumSize = new System.Drawing.Size(0, 15); + this.CustomRichTextBoxStatusLocalDoH.Multiline = false; + this.CustomRichTextBoxStatusLocalDoH.Name = "CustomRichTextBoxStatusLocalDoH"; + this.CustomRichTextBoxStatusLocalDoH.ReadOnly = true; + this.CustomRichTextBoxStatusLocalDoH.RightMargin = 0; + this.CustomRichTextBoxStatusLocalDoH.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomRichTextBoxStatusLocalDoH.ScrollToBottom = false; + this.CustomRichTextBoxStatusLocalDoH.SelectionColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDoH.SelectionLength = 0; + this.CustomRichTextBoxStatusLocalDoH.SelectionStart = 0; + this.CustomRichTextBoxStatusLocalDoH.ShortcutsEnabled = true; + this.CustomRichTextBoxStatusLocalDoH.Size = new System.Drawing.Size(170, 23); + this.CustomRichTextBoxStatusLocalDoH.TabIndex = 0; + this.CustomRichTextBoxStatusLocalDoH.Texts = "Local DoH: Offline"; + this.CustomRichTextBoxStatusLocalDoH.UnderlinedStyle = false; + this.CustomRichTextBoxStatusLocalDoH.WordWrap = false; + this.CustomRichTextBoxStatusLocalDoH.ZoomFactor = 1F; + // + // CustomRichTextBoxStatusLocalDnsLatency + // + this.CustomRichTextBoxStatusLocalDnsLatency.AcceptsTab = false; + this.CustomRichTextBoxStatusLocalDnsLatency.AutoWordSelection = false; + this.CustomRichTextBoxStatusLocalDnsLatency.BackColor = System.Drawing.Color.DimGray; + this.CustomRichTextBoxStatusLocalDnsLatency.Border = false; + this.CustomRichTextBoxStatusLocalDnsLatency.BorderColor = System.Drawing.Color.Blue; + this.CustomRichTextBoxStatusLocalDnsLatency.BorderSize = 1; + this.CustomRichTextBoxStatusLocalDnsLatency.BulletIndent = 0; + this.CustomRichTextBoxStatusLocalDnsLatency.Cursor = System.Windows.Forms.Cursors.Default; + this.CustomRichTextBoxStatusLocalDnsLatency.DetectUrls = true; + this.CustomRichTextBoxStatusLocalDnsLatency.EnableAutoDragDrop = false; + this.CustomRichTextBoxStatusLocalDnsLatency.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomRichTextBoxStatusLocalDnsLatency.ForeColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDnsLatency.HideSelection = true; + this.CustomRichTextBoxStatusLocalDnsLatency.Location = new System.Drawing.Point(5, 90); + this.CustomRichTextBoxStatusLocalDnsLatency.MaxLength = 2147483647; + this.CustomRichTextBoxStatusLocalDnsLatency.MinimumSize = new System.Drawing.Size(0, 15); + this.CustomRichTextBoxStatusLocalDnsLatency.Multiline = false; + this.CustomRichTextBoxStatusLocalDnsLatency.Name = "CustomRichTextBoxStatusLocalDnsLatency"; + this.CustomRichTextBoxStatusLocalDnsLatency.ReadOnly = true; + this.CustomRichTextBoxStatusLocalDnsLatency.RightMargin = 0; + this.CustomRichTextBoxStatusLocalDnsLatency.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomRichTextBoxStatusLocalDnsLatency.ScrollToBottom = false; + this.CustomRichTextBoxStatusLocalDnsLatency.SelectionColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDnsLatency.SelectionLength = 0; + this.CustomRichTextBoxStatusLocalDnsLatency.SelectionStart = 0; + this.CustomRichTextBoxStatusLocalDnsLatency.ShortcutsEnabled = true; + this.CustomRichTextBoxStatusLocalDnsLatency.Size = new System.Drawing.Size(170, 23); + this.CustomRichTextBoxStatusLocalDnsLatency.TabIndex = 0; + this.CustomRichTextBoxStatusLocalDnsLatency.Texts = "Local DNS Latency: -1"; + this.CustomRichTextBoxStatusLocalDnsLatency.UnderlinedStyle = false; + this.CustomRichTextBoxStatusLocalDnsLatency.WordWrap = false; + this.CustomRichTextBoxStatusLocalDnsLatency.ZoomFactor = 1F; + // + // CustomRichTextBoxStatusLocalDNS + // + this.CustomRichTextBoxStatusLocalDNS.AcceptsTab = false; + this.CustomRichTextBoxStatusLocalDNS.AutoWordSelection = false; + this.CustomRichTextBoxStatusLocalDNS.BackColor = System.Drawing.Color.DimGray; + this.CustomRichTextBoxStatusLocalDNS.Border = false; + this.CustomRichTextBoxStatusLocalDNS.BorderColor = System.Drawing.Color.Blue; + this.CustomRichTextBoxStatusLocalDNS.BorderSize = 1; + this.CustomRichTextBoxStatusLocalDNS.BulletIndent = 0; + this.CustomRichTextBoxStatusLocalDNS.Cursor = System.Windows.Forms.Cursors.Default; + this.CustomRichTextBoxStatusLocalDNS.DetectUrls = true; + this.CustomRichTextBoxStatusLocalDNS.EnableAutoDragDrop = false; + this.CustomRichTextBoxStatusLocalDNS.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomRichTextBoxStatusLocalDNS.ForeColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDNS.HideSelection = true; + this.CustomRichTextBoxStatusLocalDNS.Location = new System.Drawing.Point(5, 65); + this.CustomRichTextBoxStatusLocalDNS.MaxLength = 2147483647; + this.CustomRichTextBoxStatusLocalDNS.MinimumSize = new System.Drawing.Size(0, 15); + this.CustomRichTextBoxStatusLocalDNS.Multiline = false; + this.CustomRichTextBoxStatusLocalDNS.Name = "CustomRichTextBoxStatusLocalDNS"; + this.CustomRichTextBoxStatusLocalDNS.ReadOnly = true; + this.CustomRichTextBoxStatusLocalDNS.RightMargin = 0; + this.CustomRichTextBoxStatusLocalDNS.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomRichTextBoxStatusLocalDNS.ScrollToBottom = false; + this.CustomRichTextBoxStatusLocalDNS.SelectionColor = System.Drawing.Color.White; + this.CustomRichTextBoxStatusLocalDNS.SelectionLength = 0; + this.CustomRichTextBoxStatusLocalDNS.SelectionStart = 0; + this.CustomRichTextBoxStatusLocalDNS.ShortcutsEnabled = true; + this.CustomRichTextBoxStatusLocalDNS.Size = new System.Drawing.Size(170, 23); + this.CustomRichTextBoxStatusLocalDNS.TabIndex = 0; + this.CustomRichTextBoxStatusLocalDNS.Texts = "Local DNS: Offline"; + this.CustomRichTextBoxStatusLocalDNS.UnderlinedStyle = false; + this.CustomRichTextBoxStatusLocalDNS.WordWrap = false; + this.CustomRichTextBoxStatusLocalDNS.ZoomFactor = 1F; + // // CustomRichTextBoxStatusIsProxySet // this.CustomRichTextBoxStatusIsProxySet.AcceptsTab = false; @@ -3130,9 +3345,9 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsProxySet.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomRichTextBoxStatusIsProxySet.ForeColor = System.Drawing.Color.White; this.CustomRichTextBoxStatusIsProxySet.HideSelection = true; - this.CustomRichTextBoxStatusIsProxySet.Location = new System.Drawing.Point(579, 13); + this.CustomRichTextBoxStatusIsProxySet.Location = new System.Drawing.Point(5, 265); this.CustomRichTextBoxStatusIsProxySet.MaxLength = 2147483647; - this.CustomRichTextBoxStatusIsProxySet.MinimumSize = new System.Drawing.Size(0, 17); + this.CustomRichTextBoxStatusIsProxySet.MinimumSize = new System.Drawing.Size(0, 15); this.CustomRichTextBoxStatusIsProxySet.Multiline = false; this.CustomRichTextBoxStatusIsProxySet.Name = "CustomRichTextBoxStatusIsProxySet"; this.CustomRichTextBoxStatusIsProxySet.ReadOnly = true; @@ -3143,7 +3358,7 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsProxySet.SelectionLength = 0; this.CustomRichTextBoxStatusIsProxySet.SelectionStart = 0; this.CustomRichTextBoxStatusIsProxySet.ShortcutsEnabled = true; - this.CustomRichTextBoxStatusIsProxySet.Size = new System.Drawing.Size(95, 23); + this.CustomRichTextBoxStatusIsProxySet.Size = new System.Drawing.Size(170, 23); this.CustomRichTextBoxStatusIsProxySet.TabIndex = 0; this.CustomRichTextBoxStatusIsProxySet.Texts = "Is Proxy Set: Yes"; this.CustomRichTextBoxStatusIsProxySet.UnderlinedStyle = false; @@ -3165,9 +3380,9 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsSharing.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomRichTextBoxStatusIsSharing.ForeColor = System.Drawing.Color.White; this.CustomRichTextBoxStatusIsSharing.HideSelection = true; - this.CustomRichTextBoxStatusIsSharing.Location = new System.Drawing.Point(478, 13); + this.CustomRichTextBoxStatusIsSharing.Location = new System.Drawing.Point(5, 215); this.CustomRichTextBoxStatusIsSharing.MaxLength = 2147483647; - this.CustomRichTextBoxStatusIsSharing.MinimumSize = new System.Drawing.Size(0, 17); + this.CustomRichTextBoxStatusIsSharing.MinimumSize = new System.Drawing.Size(0, 15); this.CustomRichTextBoxStatusIsSharing.Multiline = false; this.CustomRichTextBoxStatusIsSharing.Name = "CustomRichTextBoxStatusIsSharing"; this.CustomRichTextBoxStatusIsSharing.ReadOnly = true; @@ -3178,7 +3393,7 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsSharing.SelectionLength = 0; this.CustomRichTextBoxStatusIsSharing.SelectionStart = 0; this.CustomRichTextBoxStatusIsSharing.ShortcutsEnabled = true; - this.CustomRichTextBoxStatusIsSharing.Size = new System.Drawing.Size(85, 23); + this.CustomRichTextBoxStatusIsSharing.Size = new System.Drawing.Size(170, 23); this.CustomRichTextBoxStatusIsSharing.TabIndex = 0; this.CustomRichTextBoxStatusIsSharing.Texts = "Is Sharing: Yes"; this.CustomRichTextBoxStatusIsSharing.UnderlinedStyle = false; @@ -3200,9 +3415,9 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsDNSSet.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomRichTextBoxStatusIsDNSSet.ForeColor = System.Drawing.Color.White; this.CustomRichTextBoxStatusIsDNSSet.HideSelection = true; - this.CustomRichTextBoxStatusIsDNSSet.Location = new System.Drawing.Point(260, 13); + this.CustomRichTextBoxStatusIsDNSSet.Location = new System.Drawing.Point(5, 165); this.CustomRichTextBoxStatusIsDNSSet.MaxLength = 2147483647; - this.CustomRichTextBoxStatusIsDNSSet.MinimumSize = new System.Drawing.Size(0, 17); + this.CustomRichTextBoxStatusIsDNSSet.MinimumSize = new System.Drawing.Size(0, 15); this.CustomRichTextBoxStatusIsDNSSet.Multiline = false; this.CustomRichTextBoxStatusIsDNSSet.Name = "CustomRichTextBoxStatusIsDNSSet"; this.CustomRichTextBoxStatusIsDNSSet.ReadOnly = true; @@ -3213,7 +3428,7 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsDNSSet.SelectionLength = 0; this.CustomRichTextBoxStatusIsDNSSet.SelectionStart = 0; this.CustomRichTextBoxStatusIsDNSSet.ShortcutsEnabled = true; - this.CustomRichTextBoxStatusIsDNSSet.Size = new System.Drawing.Size(90, 23); + this.CustomRichTextBoxStatusIsDNSSet.Size = new System.Drawing.Size(170, 23); this.CustomRichTextBoxStatusIsDNSSet.TabIndex = 0; this.CustomRichTextBoxStatusIsDNSSet.Texts = "Is DNS Set: Yes"; this.CustomRichTextBoxStatusIsDNSSet.UnderlinedStyle = false; @@ -3235,9 +3450,9 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsDPIActive.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomRichTextBoxStatusIsDPIActive.ForeColor = System.Drawing.Color.White; this.CustomRichTextBoxStatusIsDPIActive.HideSelection = true; - this.CustomRichTextBoxStatusIsDPIActive.Location = new System.Drawing.Point(365, 13); + this.CustomRichTextBoxStatusIsDPIActive.Location = new System.Drawing.Point(5, 190); this.CustomRichTextBoxStatusIsDPIActive.MaxLength = 2147483647; - this.CustomRichTextBoxStatusIsDPIActive.MinimumSize = new System.Drawing.Size(0, 17); + this.CustomRichTextBoxStatusIsDPIActive.MinimumSize = new System.Drawing.Size(0, 15); this.CustomRichTextBoxStatusIsDPIActive.Multiline = false; this.CustomRichTextBoxStatusIsDPIActive.Name = "CustomRichTextBoxStatusIsDPIActive"; this.CustomRichTextBoxStatusIsDPIActive.ReadOnly = true; @@ -3248,7 +3463,7 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsDPIActive.SelectionLength = 0; this.CustomRichTextBoxStatusIsDPIActive.SelectionStart = 0; this.CustomRichTextBoxStatusIsDPIActive.ShortcutsEnabled = true; - this.CustomRichTextBoxStatusIsDPIActive.Size = new System.Drawing.Size(100, 23); + this.CustomRichTextBoxStatusIsDPIActive.Size = new System.Drawing.Size(170, 23); this.CustomRichTextBoxStatusIsDPIActive.TabIndex = 0; this.CustomRichTextBoxStatusIsDPIActive.Texts = "Is DPI Active: Yes"; this.CustomRichTextBoxStatusIsDPIActive.UnderlinedStyle = false; @@ -3270,9 +3485,9 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsConnected.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomRichTextBoxStatusIsConnected.ForeColor = System.Drawing.Color.White; this.CustomRichTextBoxStatusIsConnected.HideSelection = true; - this.CustomRichTextBoxStatusIsConnected.Location = new System.Drawing.Point(144, 13); + this.CustomRichTextBoxStatusIsConnected.Location = new System.Drawing.Point(5, 40); this.CustomRichTextBoxStatusIsConnected.MaxLength = 2147483647; - this.CustomRichTextBoxStatusIsConnected.MinimumSize = new System.Drawing.Size(0, 17); + this.CustomRichTextBoxStatusIsConnected.MinimumSize = new System.Drawing.Size(0, 15); this.CustomRichTextBoxStatusIsConnected.Multiline = false; this.CustomRichTextBoxStatusIsConnected.Name = "CustomRichTextBoxStatusIsConnected"; this.CustomRichTextBoxStatusIsConnected.ReadOnly = true; @@ -3283,7 +3498,7 @@ private void InitializeComponent() this.CustomRichTextBoxStatusIsConnected.SelectionLength = 0; this.CustomRichTextBoxStatusIsConnected.SelectionStart = 0; this.CustomRichTextBoxStatusIsConnected.ShortcutsEnabled = true; - this.CustomRichTextBoxStatusIsConnected.Size = new System.Drawing.Size(100, 23); + this.CustomRichTextBoxStatusIsConnected.Size = new System.Drawing.Size(170, 23); this.CustomRichTextBoxStatusIsConnected.TabIndex = 0; this.CustomRichTextBoxStatusIsConnected.Texts = "Is Connected: Yes"; this.CustomRichTextBoxStatusIsConnected.UnderlinedStyle = false; @@ -3305,9 +3520,9 @@ private void InitializeComponent() this.CustomRichTextBoxStatusWorkingServers.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.CustomRichTextBoxStatusWorkingServers.ForeColor = System.Drawing.Color.White; this.CustomRichTextBoxStatusWorkingServers.HideSelection = true; - this.CustomRichTextBoxStatusWorkingServers.Location = new System.Drawing.Point(15, 13); + this.CustomRichTextBoxStatusWorkingServers.Location = new System.Drawing.Point(5, 15); this.CustomRichTextBoxStatusWorkingServers.MaxLength = 2147483647; - this.CustomRichTextBoxStatusWorkingServers.MinimumSize = new System.Drawing.Size(0, 17); + this.CustomRichTextBoxStatusWorkingServers.MinimumSize = new System.Drawing.Size(0, 15); this.CustomRichTextBoxStatusWorkingServers.Multiline = false; this.CustomRichTextBoxStatusWorkingServers.Name = "CustomRichTextBoxStatusWorkingServers"; this.CustomRichTextBoxStatusWorkingServers.ReadOnly = true; @@ -3318,29 +3533,64 @@ private void InitializeComponent() this.CustomRichTextBoxStatusWorkingServers.SelectionLength = 0; this.CustomRichTextBoxStatusWorkingServers.SelectionStart = 0; this.CustomRichTextBoxStatusWorkingServers.ShortcutsEnabled = true; - this.CustomRichTextBoxStatusWorkingServers.Size = new System.Drawing.Size(125, 23); + this.CustomRichTextBoxStatusWorkingServers.Size = new System.Drawing.Size(170, 23); this.CustomRichTextBoxStatusWorkingServers.TabIndex = 0; this.CustomRichTextBoxStatusWorkingServers.Texts = "Working Servers: 0000"; this.CustomRichTextBoxStatusWorkingServers.UnderlinedStyle = false; this.CustomRichTextBoxStatusWorkingServers.WordWrap = false; this.CustomRichTextBoxStatusWorkingServers.ZoomFactor = 1F; // + // SplitContainerMain + // + this.SplitContainerMain.Cursor = System.Windows.Forms.Cursors.Default; + this.SplitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.SplitContainerMain.IsSplitterFixed = true; + this.SplitContainerMain.Location = new System.Drawing.Point(0, 0); + this.SplitContainerMain.Name = "SplitContainerMain"; + this.SplitContainerMain.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // SplitContainerMain.Panel1 + // + this.SplitContainerMain.Panel1.Controls.Add(this.SplitContainerTop); + // + // SplitContainerMain.Panel2 + // + this.SplitContainerMain.Panel2.Controls.Add(this.CustomGroupBoxLog); + this.SplitContainerMain.Size = new System.Drawing.Size(884, 581); + this.SplitContainerMain.SplitterDistance = 400; + this.SplitContainerMain.TabIndex = 9; + // + // SplitContainerTop + // + this.SplitContainerTop.Cursor = System.Windows.Forms.Cursors.Default; + this.SplitContainerTop.Dock = System.Windows.Forms.DockStyle.Fill; + this.SplitContainerTop.IsSplitterFixed = true; + this.SplitContainerTop.Location = new System.Drawing.Point(0, 0); + this.SplitContainerTop.Name = "SplitContainerTop"; + // + // SplitContainerTop.Panel1 + // + this.SplitContainerTop.Panel1.Controls.Add(this.CustomTabControlMain); + // + // SplitContainerTop.Panel2 + // + this.SplitContainerTop.Panel2.Controls.Add(this.CustomGroupBoxStatus); + this.SplitContainerTop.Size = new System.Drawing.Size(884, 400); + this.SplitContainerTop.SplitterDistance = 700; + this.SplitContainerTop.TabIndex = 0; + // // FormMain // this.AcceptButton = this.CustomButtonCheck; this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(704, 586); - this.Controls.Add(this.CustomGroupBoxStatus); - this.Controls.Add(this.CustomStatusStrip1); - this.Controls.Add(this.CustomTabControlMain); - this.Controls.Add(this.CustomGroupBoxLog); + this.ClientSize = new System.Drawing.Size(884, 581); + this.Controls.Add(this.SplitContainerMain); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(720, 625); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(720, 625); + this.MaximumSize = new System.Drawing.Size(900, 620); + this.MinimumSize = new System.Drawing.Size(900, 435); this.Name = "FormMain"; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.Text = "SecureDNSClient"; @@ -3353,10 +3603,12 @@ private void InitializeComponent() this.TabPageCheck.ResumeLayout(false); this.TabPageCheck.PerformLayout(); this.TabPageConnect.ResumeLayout(false); + this.TabPageConnect.PerformLayout(); this.TabPageSetDNS.ResumeLayout(false); this.TabPageSetDNS.PerformLayout(); this.TabPageShare.ResumeLayout(false); this.TabPageShare.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownHTTPProxyHandleRequests)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPDpiFragDelay)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPDpiDataLength)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPDpiFragmentSize)).EndInit(); @@ -3367,6 +3619,7 @@ private void InitializeComponent() this.TabPageDPIBasic.ResumeLayout(false); this.TabPageDPIBasic.PerformLayout(); this.TabPageDPIAdvanced.ResumeLayout(false); + this.TabPageDPIAdvanced.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownDPIAdvMaxPayload)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownDPIAdvMinTTL)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownDPIAdvSetTTL)).EndInit(); @@ -3397,11 +3650,17 @@ private void InitializeComponent() this.TabPageAbout.ResumeLayout(false); this.TabPageAbout.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.PictureBoxAbout)).EndInit(); - this.CustomStatusStrip1.ResumeLayout(false); - this.CustomStatusStrip1.PerformLayout(); this.CustomGroupBoxStatus.ResumeLayout(false); + this.CustomGroupBoxStatus.PerformLayout(); + this.SplitContainerMain.Panel1.ResumeLayout(false); + this.SplitContainerMain.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.SplitContainerMain)).EndInit(); + this.SplitContainerMain.ResumeLayout(false); + this.SplitContainerTop.Panel1.ResumeLayout(false); + this.SplitContainerTop.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.SplitContainerTop)).EndInit(); + this.SplitContainerTop.ResumeLayout(false); this.ResumeLayout(false); - this.PerformLayout(); } @@ -3417,7 +3676,6 @@ private void InitializeComponent() private CustomControls.CustomTabControl CustomTabControlMain; private TabPage TabPageSecureDNS; private TabPage TabPageSettings; - private CustomControls.CustomStatusStrip CustomStatusStrip1; private CustomControls.CustomLabel CustomLabelDPIModes; private CustomControls.CustomRadioButton CustomRadioButtonDPIModeLight; private CustomControls.CustomRadioButton CustomRadioButtonDPIModeMedium; @@ -3427,11 +3685,7 @@ private void InitializeComponent() private CustomControls.CustomComboBox CustomComboBoxNICs; private CustomControls.CustomLabel CustomLabelSetDNSInfo; private CustomControls.CustomButton CustomButtonSetDNS; - private ToolStripStatusLabel ToolStripStatusLabelDNS; - private ToolStripStatusLabel ToolStripStatusLabelDoH; private CustomControls.CustomCheckBox CustomCheckBoxInsecure; - private ToolStripStatusLabel ToolStripStatusLabelSpace; - private ToolStripStatusLabel ToolStripStatusLabelPercent; private CustomControls.CustomTextBox CustomTextBoxHTTPProxy; private CustomControls.CustomLabel CustomLabelSSLFragmentSize; private TabPage TabPageAbout; @@ -3569,8 +3823,6 @@ private void InitializeComponent() private CustomControls.CustomLabel CustomLabelPDpiDpiInfo1; private CustomControls.CustomButton CustomButtonSetProxy; private CustomControls.CustomRichTextBox CustomRichTextBoxStatusIsProxySet; - private ToolStripStatusLabel ToolStripStatusLabelDnsLatency; - private ToolStripStatusLabel ToolStripStatusLabelDohLatency; private CustomControls.CustomCheckBox CustomCheckBoxPDpiFragModeRandom; private CustomControls.CustomCheckBox CustomCheckBoxPDpiDontChunkBigData; private CustomControls.CustomLabel CustomLabelPDpiFragDelay; @@ -3584,5 +3836,15 @@ private void InitializeComponent() private CustomControls.CustomTextBox CustomTextBoxSettingUnsetDns1; private CustomControls.CustomButton CustomButtonPDpiApplyChanges; private CustomControls.CustomCheckBox CustomCheckBoxHTTPProxyEventShowChunkDetails; + private CustomControls.CustomRichTextBox CustomRichTextBoxStatusLocalDoHLatency; + private CustomControls.CustomRichTextBox CustomRichTextBoxStatusLocalDoH; + private CustomControls.CustomRichTextBox CustomRichTextBoxStatusLocalDnsLatency; + private CustomControls.CustomRichTextBox CustomRichTextBoxStatusLocalDNS; + private CustomControls.CustomLabel CustomLabelCheckPercent; + private CustomControls.CustomRichTextBox CustomRichTextBoxStatusProxyRequests; + private CustomControls.CustomNumericUpDown CustomNumericUpDownHTTPProxyHandleRequests; + private CustomControls.CustomLabel CustomLabelHTTPProxyHandleRequests; + private SplitContainer SplitContainerMain; + private SplitContainer SplitContainerTop; } } \ No newline at end of file diff --git a/SecureDNSClient/Forms/FormMain.cs b/SecureDNSClient/Forms/FormMain.cs index 3881528..b059f4b 100644 --- a/SecureDNSClient/Forms/FormMain.cs +++ b/SecureDNSClient/Forms/FormMain.cs @@ -41,7 +41,10 @@ public partial class FormMain : Form public static HTTPProxyServer.DPIBypassProgram DPIBypassProgram { get; private set; } = new(); private bool AudioAlertOnline = true; private bool AudioAlertOffline = false; - private readonly Stopwatch CheckDPIWorksStopWatch = new(); + private bool AudioAlertRequestsExceeded = false; + private readonly Stopwatch StopWatchCheckDPIWorks = new(); + private readonly Stopwatch StopWatchShowRequests = new(); + private readonly Stopwatch StopWatchShowChunkDetails = new(); private string TheDll = string.Empty; private readonly string NL = Environment.NewLine; private readonly int LogHeight; @@ -62,7 +65,7 @@ public partial class FormMain : Form public FormMain() { InitializeComponent(); - CustomStatusStrip1.SizingGrip = false; + //CustomStatusStrip1.SizingGrip = false; // Set Min Size for Toggle Log View MinimumSize = new Size(Width, Height - CustomGroupBoxLog.Height); @@ -193,6 +196,7 @@ private void DefaultSettings() // Share CustomNumericUpDownHTTPProxyPort.Value = (decimal)8080; + CustomNumericUpDownHTTPProxyHandleRequests.Value = (decimal)2000; CustomCheckBoxHTTPProxyEventShowRequest.Checked = false; CustomCheckBoxHTTPProxyEventShowChunkDetails.Checked = false; CustomCheckBoxPDpiEnableDpiBypass.Checked = true; @@ -315,8 +319,9 @@ private void FixScreenDPI(Form form) { using Graphics g = form.CreateGraphics(); - int x1 = 90; int x2 = 120; - int y1 = 21; int y2 = 207; + int x1 = 120; int y1 = 21; + int splitMainD = SplitContainerMain.SplitterDistance; + int splitTopD = SplitContainerTop.SplitterDistance; if (form.AutoScaleDimensions == form.CurrentAutoScaleDimensions) { @@ -325,22 +330,26 @@ private void FixScreenDPI(Form form) // 144 = 150% if (g.DpiX == 120) // 125% { - setSize(x1 + 15, y1 + 10, x2 + 30, y2 + ((25 * y2) / 100)); + setSize(x1 + 35, y1 + 10, splitMainD, splitTopD + 100); } else if (g.DpiX == 144) // 150% { - setSize(x1 + 65, y1 + 20, x2 + 60, y2 + ((50 * y2) / 100)); + setSize(x1 + 80, y1 + 20, splitMainD, splitTopD + 450); } - - void setSize(int x1, int y1, int x2, int y2) + + void setSize(int x1, int y1, int splitMainD, int splitTopD) { + CustomTabControlMain.SizeMode = TabSizeMode.Fixed; CustomTabControlMain.ItemSize = new Size(x1, y1); + CustomTabControlSecureDNS.SizeMode = TabSizeMode.Fixed; CustomTabControlSecureDNS.ItemSize = new Size(x1, y1); + CustomTabControlDPIBasicAdvanced.SizeMode = TabSizeMode.Fixed; CustomTabControlDPIBasicAdvanced.ItemSize = new Size(x1, y1); + CustomTabControlSettings.SizeMode = TabSizeMode.Fixed; CustomTabControlSettings.ItemSize = new Size(y1 + 9, x1); - CustomGroupBoxLog.Height = y2; - ToolStripStatusLabelDNS.Width = x2; - ToolStripStatusLabelDoH.Width = x2; + + SplitContainerMain.SplitterDistance = splitMainD; + SplitContainerTop.SplitterDistance = splitTopD; } } } @@ -549,10 +558,29 @@ private void UpdateStatusShort() CustomButtonSetDNS.Enabled = true; // Live Status - ToolStripStatusLabelDNS.Text = IsDNSConnected ? "DNS status: Online." : "DNS status: Offline."; - ToolStripStatusLabelDnsLatency.Text = $"Latency: {LocalDnsLatency}"; - ToolStripStatusLabelDoH.Text = IsDoHConnected ? "DoH status: Online." : "DoH status: Offline."; - ToolStripStatusLabelDohLatency.Text = $"Latency: {LocalDohLatency}"; + string statusLocalDNS = IsDNSConnected ? "Online" : "Offline"; + Color colorStatusLocalDNS = IsDNSConnected ? Color.MediumSeaGreen : Color.IndianRed; + CustomRichTextBoxStatusLocalDNS.ResetText(); + CustomRichTextBoxStatusLocalDNS.AppendText("Local DNS: ", ForeColor); + CustomRichTextBoxStatusLocalDNS.AppendText(statusLocalDNS, colorStatusLocalDNS); + + string statusLocalDnsLatency = LocalDnsLatency != -1 ? $"{LocalDnsLatency}" : "-1"; + Color colorStatusLocalDnsLatency = LocalDnsLatency != -1 ? Color.MediumSeaGreen : Color.IndianRed; + CustomRichTextBoxStatusLocalDnsLatency.ResetText(); + CustomRichTextBoxStatusLocalDnsLatency.AppendText("Local DNS Latency: ", ForeColor); + CustomRichTextBoxStatusLocalDnsLatency.AppendText(statusLocalDnsLatency, colorStatusLocalDnsLatency); + + string statusLocalDoH = IsDoHConnected ? "Online" : "Offline"; + Color colorStatusLocalDoH = IsDoHConnected ? Color.MediumSeaGreen : Color.IndianRed; + CustomRichTextBoxStatusLocalDoH.ResetText(); + CustomRichTextBoxStatusLocalDoH.AppendText("Local DoH: ", ForeColor); + CustomRichTextBoxStatusLocalDoH.AppendText(statusLocalDoH, colorStatusLocalDoH); + + string statusLocalDoHLatency = LocalDohLatency != -1 ? $"{LocalDohLatency}" : "-1"; + Color colorStatusLocalDoHLatency = LocalDohLatency != -1 ? Color.MediumSeaGreen : Color.IndianRed; + CustomRichTextBoxStatusLocalDoHLatency.ResetText(); + CustomRichTextBoxStatusLocalDoHLatency.AppendText("Local DoH Latency: ", ForeColor); + CustomRichTextBoxStatusLocalDoHLatency.AppendText(statusLocalDoHLatency, colorStatusLocalDoHLatency); if (!CustomCheckBoxSettingDisableAudioAlert.Checked && !IsCheckingStarted) PlayAudioAlert(); @@ -601,6 +629,18 @@ private void UpdateStatus() this.InvokeIt(() => CustomRichTextBoxStatusIsSharing.AppendText("Is Sharing: ", ForeColor)); this.InvokeIt(() => CustomRichTextBoxStatusIsSharing.AppendText(textSharing, colorSharing)); + // Update Status ProxyRequests + string textProxyRequests = "0 of 0"; + Color colorProxyRequests = Color.MediumSeaGreen; + if (HTTPProxy != null) + { + textProxyRequests = $"{HTTPProxy.ActiveRequests} of {HTTPProxy.MaxRequests}"; + colorProxyRequests = HTTPProxy.ActiveRequests < HTTPProxy.MaxRequests ? Color.MediumSeaGreen : Color.IndianRed; + } + this.InvokeIt(() => CustomRichTextBoxStatusProxyRequests.ResetText()); + this.InvokeIt(() => CustomRichTextBoxStatusProxyRequests.AppendText("Proxy Requests ", ForeColor)); + this.InvokeIt(() => CustomRichTextBoxStatusProxyRequests.AppendText(textProxyRequests, colorProxyRequests)); + // Update Status IsProxySet string textProxySet = IsProxySet ? "Yes" : "No"; Color colorProxySet = IsProxySet ? Color.MediumSeaGreen : Color.IndianRed; @@ -620,6 +660,7 @@ private void PlayAudioAlert() { SoundPlayer soundPlayer = new(Audio.Resource1.DNS_Online); soundPlayer.PlaySync(); + soundPlayer.Stop(); soundPlayer.Dispose(); }); } @@ -641,6 +682,7 @@ private void PlayAudioAlert() Task.Delay(1000).Wait(); SoundPlayer soundPlayer = new(Audio.Resource1.DNS_Offline); soundPlayer.PlaySync(); + soundPlayer.Stop(); soundPlayer.Dispose(); Task.Delay(5000).Wait(); }); @@ -648,6 +690,24 @@ private void PlayAudioAlert() if (softEtherPID != -1) ProcessManager.ResumeProcess(softEtherPID); } + + if (HTTPProxy != null) + { + if (HTTPProxy.IsRunning && (HTTPProxy.ActiveRequests >= HTTPProxy.MaxRequests) && !AudioAlertRequestsExceeded) + { + AudioAlertRequestsExceeded = true; + Task.Run(() => + { + SoundPlayer soundPlayer = new(Audio.Resource1.Warning_Handle_Requests_Exceeded); + soundPlayer.PlaySync(); + soundPlayer.Stop(); + soundPlayer.Dispose(); + }); + } + + if (HTTPProxy.ActiveRequests < HTTPProxy.MaxRequests - 5) + AudioAlertRequestsExceeded = false; + } } private void FlushDNS() @@ -1016,7 +1076,7 @@ private async Task CheckServers() // Percentage int persent = n * 100 / dnsCount; - this.InvokeIt(() => ToolStripStatusLabelPercent.Text = persent.ToString() + "%"); + this.InvokeIt(() => CustomLabelCheckPercent.Text = persent.ToString() + "%"); string dns = dnsList[n].Trim(); @@ -1142,7 +1202,7 @@ void writeStatusToLog() } // Percentage (100%) - this.InvokeIt(() => ToolStripStatusLabelPercent.Text = "100%"); + this.InvokeIt(() => CustomLabelCheckPercent.Text = "100%"); // Return if there is no working server if (!WorkingDnsList.Any()) @@ -2124,7 +2184,10 @@ private void Share() ApplyPDpiChanges(); - HTTPProxy.Start(IPAddress.Any, SettingsWindow.GetHTTPProxyPort(CustomNumericUpDownHTTPProxyPort), 100); + // Get number of handle requests + int handleReq = int.Parse(CustomNumericUpDownHTTPProxyHandleRequests.Value.ToString()); + + HTTPProxy.Start(IPAddress.Any, SettingsWindow.GetHTTPProxyPort(CustomNumericUpDownHTTPProxyPort), handleReq); Task.Delay(500).Wait(); // Delete error log on > 1MB @@ -2149,20 +2212,35 @@ void HTTPProxy_OnRequestReceived(object? sender, EventArgs e) { if (CustomCheckBoxHTTPProxyEventShowRequest.Checked) { - req += NL; // Adding an additional line break. - this.InvokeIt(() => CustomRichTextBoxLog.AppendText(req, Color.Gray)); + if (!StopWatchShowRequests.IsRunning) StopWatchShowRequests.Start(); + if (StopWatchShowRequests.ElapsedMilliseconds > 20) + { + req += NL; // Adding an additional line break. + this.InvokeIt(() => CustomRichTextBoxLog.AppendText(req, Color.Gray)); + + StopWatchShowRequests.Stop(); + StopWatchShowRequests.Reset(); + } } } } + // Proxy Event Chunk Details void HTTPProxy_OnChunkDetailsReceived(object? sender, EventArgs e) { if (sender is string msg) { if (CustomCheckBoxHTTPProxyEventShowChunkDetails.Checked) { - msg += NL; // Adding an additional line break. - this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msg, Color.Gray)); + if (!StopWatchShowChunkDetails.IsRunning) StopWatchShowChunkDetails.Start(); + if (StopWatchShowChunkDetails.ElapsedMilliseconds > 500) + { + msg += NL; // Adding an additional line break. + this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msg, Color.Gray)); + + StopWatchShowChunkDetails.Stop(); + StopWatchShowChunkDetails.Reset(); + } } } } @@ -2735,13 +2813,13 @@ private async Task CheckDPIWorks(string host, int timeoutSec = 30) //Default tim if (string.IsNullOrWhiteSpace(host)) return; // If user changing DPI mode fast, return. - if (CheckDPIWorksStopWatch.IsRunning) + if (StopWatchCheckDPIWorks.IsRunning) return; Task.Delay(1000).Wait(); // Start StopWatch - CheckDPIWorksStopWatch.Start(); + StopWatchCheckDPIWorks.Start(); // Write start DPI checking to log string msgDPI = $"Checking DPI Bypass ({host})...{NL}"; @@ -2795,7 +2873,7 @@ private async Task CheckDPIWorks(string host, int timeoutSec = 30) //Default tim void msgSuccess() { // Write Success to log - var elapsedTime = Math.Round((double)CheckDPIWorksStopWatch.ElapsedMilliseconds / 1000); + var elapsedTime = Math.Round((double)StopWatchCheckDPIWorks.ElapsedMilliseconds / 1000); string msgDPI1 = $"DPI Check: "; string msgDPI2 = $"Successfully opened {host} in {elapsedTime} seconds.{NL}"; this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgDPI1, Color.LightGray)); @@ -2813,8 +2891,8 @@ void msgFailed(HttpResponseMessage r) r.Dispose(); } - CheckDPIWorksStopWatch.Stop(); - CheckDPIWorksStopWatch.Reset(); + StopWatchCheckDPIWorks.Stop(); + StopWatchCheckDPIWorks.Reset(); } catch (Exception ex) { @@ -2823,8 +2901,8 @@ void msgFailed(HttpResponseMessage r) string msgDPI2 = $"{ex.Message}{NL}"; this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgDPI1, Color.LightGray)); this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgDPI2, Color.IndianRed)); - CheckDPIWorksStopWatch.Stop(); - CheckDPIWorksStopWatch.Reset(); + StopWatchCheckDPIWorks.Stop(); + StopWatchCheckDPIWorks.Reset(); } } else @@ -2834,8 +2912,8 @@ void msgFailed(HttpResponseMessage r) string msgDPI2 = $"Activate DPI to check.{NL}"; this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgDPI1, Color.LightGray)); this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgDPI2, Color.IndianRed)); - CheckDPIWorksStopWatch.Stop(); - CheckDPIWorksStopWatch.Reset(); + StopWatchCheckDPIWorks.Stop(); + StopWatchCheckDPIWorks.Reset(); } } else @@ -2845,8 +2923,8 @@ void msgFailed(HttpResponseMessage r) string msgDPI2 = $"Set DNS to check.{NL}"; this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgDPI1, Color.LightGray)); this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgDPI2, Color.IndianRed)); - CheckDPIWorksStopWatch.Stop(); - CheckDPIWorksStopWatch.Reset(); + StopWatchCheckDPIWorks.Stop(); + StopWatchCheckDPIWorks.Reset(); } } @@ -2854,19 +2932,25 @@ void msgFailed(HttpResponseMessage r) private void CustomButtonToggleLogView_Click(object sender, EventArgs e) { + int logHeight = LogHeight; + if (CustomGroupBoxLog.Visible) { SuspendLayout(); CustomGroupBoxLog.Visible = false; - Size = new(Width, Height - LogHeight); + SplitContainerMain.Panel2Collapsed = true; + SplitContainerMain.Panel2.Hide(); + Size = new(Width, Height - logHeight); ResumeLayout(); Invalidate(); } else { SuspendLayout(); - Size = new(Width, Height + LogHeight); + Size = new(Width, Height + logHeight); CustomGroupBoxLog.Visible = true; + SplitContainerMain.Panel2Collapsed = false; + SplitContainerMain.Panel2.Show(); ResumeLayout(); Invalidate(); } diff --git a/SecureDNSClient/Forms/FormMain.resx b/SecureDNSClient/Forms/FormMain.resx index 77bdeb1..1fc9d68 100644 --- a/SecureDNSClient/Forms/FormMain.resx +++ b/SecureDNSClient/Forms/FormMain.resx @@ -57,9 +57,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 - 176, 17 diff --git a/SecureDNSClient/MsmhTools/HTTPProxyServer/Common.cs b/SecureDNSClient/MsmhTools/HTTPProxyServer/Common.cs index 3a732be..57b8cf5 100644 --- a/SecureDNSClient/MsmhTools/HTTPProxyServer/Common.cs +++ b/SecureDNSClient/MsmhTools/HTTPProxyServer/Common.cs @@ -15,9 +15,6 @@ internal static byte[] AppendBytes(byte[] orig, byte[] append) return ret; } - - - ///

/// Fully read a stream into a byte array. /// @@ -77,6 +74,20 @@ public static Dictionary AddToDict(string key, string? val, Dict } } + public static bool IsWin7() + { + bool result = false; + OperatingSystem os = Environment.OSVersion; + Version vs = os.Version; + + if (os.Platform == PlatformID.Win32NT) + { + if (vs.Minor == 1 && vs.Major == 6) + result = true; + } + + return result; + } } } diff --git a/SecureDNSClient/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs b/SecureDNSClient/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs index cb74563..ea87c5e 100644 --- a/SecureDNSClient/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs +++ b/SecureDNSClient/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs @@ -43,14 +43,14 @@ public void Set(DPIBypass.Mode mode, int firstPartOfDataLength, int fragmentSize } } - private static ProxySettings _Settings = new(); + internal static ProxySettings _Settings = new(); private static TunnelManager? _TunnelManager; private static TcpListener? _TcpListener; private static CancellationTokenSource? _CancelTokenSource; private static CancellationToken _CancelToken; - private static int _ActiveThreads = 0; + internal static int _ActiveThreads = 0; public bool IsRunning = false; private static bool Cancel = false; @@ -63,9 +63,14 @@ public void Set(DPIBypass.Mode mode, int firstPartOfDataLength, int fragmentSize public event EventHandler? OnChunkDetailsReceived; private static readonly EventWaitHandle Terminator = new(false, EventResetMode.ManualReset); + private List BlackList = new(); + public HTTPProxyServer() { - + // Captive Portal + BlackList.Add("ipv6.msftconnecttest.com:80"); + BlackList.Add("detectportal.firefox.com:80"); + BlackList.Add("gstatic.com:80"); } public void Start(IPAddress ipAddress, int port, int maxThreads) @@ -108,15 +113,17 @@ public void Stop() Tunnel.Cancel = true; _TcpListener.Stop(); - //if (_TunnelManager != null) - //{ - // var t = _TunnelManager.GetFull().ToList(); - // for (int n = 0; n < t.Count; n++) - // { - // var kvp = t[n]; - // _TunnelManager.Remove(kvp.Key); - // } - //} + if (_TunnelManager != null) + { + var t = _TunnelManager.GetFull().ToList(); + Debug.WriteLine(t.Count); + for (int n = 0; n < t.Count; n++) + { + var kvp = t[n]; + if (_TunnelManager.Active(kvp.Key)) + _TunnelManager.Remove(kvp.Key); + } + } IsRunning = _TcpListener.Server.IsBound; Goodbye(); @@ -133,13 +140,21 @@ public bool IsDpiActive get => BypassProgram.DPIBypassMode != DPIBypass.Mode.Disable; } + public int ActiveRequests + { + get => _ActiveThreads; + } + + public int MaxRequests + { + get => _Settings != null ? _Settings.MaxThreads : 0; + } + public Dictionary GetCurrentConnectTunnels() { return _TunnelManager != null ? _TunnelManager.GetMetadata() : new Dictionary(); } - #region Setup-Methods - private void Welcome() { // Event @@ -156,10 +171,6 @@ private void Goodbye() OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); } - #endregion - - #region Connection-Handler - private void AcceptConnections() { if (Cancel) return; @@ -197,13 +208,12 @@ private void AcceptConnections() } } } - + private async Task ProcessConnection(TcpClient client) { if (Cancel) return; int connectionId = Environment.CurrentManagedThreadId; - _ActiveThreads++; Debug.WriteLine($"Active Requests: {_ActiveThreads}"); try @@ -212,15 +222,18 @@ private async Task ProcessConnection(TcpClient client) if (_ActiveThreads >= _Settings.MaxThreads) { // Event - string msgEventErr = $"AcceptConnections connection count {_ActiveThreads} exceeds configured max {_Settings.MaxThreads}, waiting"; + string msgEventErr = $"AcceptConnections connection count {_ActiveThreads} exceeds configured max {_Settings.MaxThreads}."; OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); - while (_ActiveThreads >= _Settings.MaxThreads) - { - Task.Delay(100).Wait(); - } + // Kill em + client.Dispose(); + Debug.WriteLine($"Active Requests2: {_ActiveThreads}"); + Task.Delay(100).Wait(); + return; } + _ActiveThreads++; + IPEndPoint? clientIpEndpoint = client.Client.RemoteEndPoint as IPEndPoint; IPEndPoint? serverIpEndpoint = client.Client.LocalEndPoint as IPEndPoint; @@ -248,6 +261,23 @@ private async Task ProcessConnection(TcpClient client) req.DestIp = serverIp; req.DestPort = serverPort; + // Block Black List + for (int n = 0; n < BlackList.Count; n++) + { + string website = BlackList[n]; + string destWebsite = $"{req.DestHostname}:{req.DestHostPort}"; + if (destWebsite == website) + { + // Event + string msgEvent = $"Black list: {req.FullUrl}, request denied."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + client.Close(); + _ActiveThreads--; + return; + } + } + // Event OnRequestReceived?.Invoke($"{req.DestHostname}:{req.DestHostPort}", EventArgs.Empty); @@ -552,6 +582,5 @@ async Task sendRestResponse(RestResponse resp, NetworkStream ns) } } - #endregion } } diff --git a/SecureDNSClient/MsmhTools/HTTPProxyServer/HttpMethod.cs b/SecureDNSClient/MsmhTools/HTTPProxyServer/HttpMethod.cs index 655cf84..1705ee0 100644 --- a/SecureDNSClient/MsmhTools/HTTPProxyServer/HttpMethod.cs +++ b/SecureDNSClient/MsmhTools/HTTPProxyServer/HttpMethod.cs @@ -25,6 +25,30 @@ public enum HttpMethod [EnumMember(Value = "OPTIONS")] OPTIONS, [EnumMember(Value = "TRACE")] - TRACE + TRACE, + [EnumMember(Value = "UNKNOWN")] + UNKNOWN + } + + public static class GetHttpMethod + { + public static HttpMethod Parse(string method) + { + method = method.Trim().ToLower(); + var httpMethod = method switch + { + "get" => HttpMethod.GET, + "head" => HttpMethod.HEAD, + "put" => HttpMethod.PUT, + "post" => HttpMethod.POST, + "delete" => HttpMethod.DELETE, + "patch" => HttpMethod.PATCH, + "connect" => HttpMethod.CONNECT, + "options" => HttpMethod.OPTIONS, + "trace" => HttpMethod.TRACE, + _ => HttpMethod.UNKNOWN, + }; + return httpMethod; + } } } diff --git a/SecureDNSClient/MsmhTools/HTTPProxyServer/Request.cs b/SecureDNSClient/MsmhTools/HTTPProxyServer/Request.cs index ccddeaf..5476946 100644 --- a/SecureDNSClient/MsmhTools/HTTPProxyServer/Request.cs +++ b/SecureDNSClient/MsmhTools/HTTPProxyServer/Request.cs @@ -327,7 +327,7 @@ public Request(HttpListenerContext ctx, bool readStreamFully) { tempKey = WebUtility.UrlDecode(tempKey); QuerystringEntries = Common.AddToDict(tempKey, null, QuerystringEntries); - } + } } if (inVal == 1) @@ -383,9 +383,9 @@ public Request(HttpListenerContext ctx, bool readStreamFully) gzip = xferEncodingHeader.ToLower().Contains("gzip"); deflate = xferEncodingHeader.ToLower().Contains("deflate"); } - - if (chunkedXfer - && Method != HttpMethod.GET + + if (chunkedXfer + && Method != HttpMethod.GET && Method != HttpMethod.HEAD) { Stream bodyStream = ctx.Request.InputStream; @@ -417,7 +417,7 @@ public Request(HttpListenerContext ctx, bool readStreamFully) Data = new byte[ContentLength]; Buffer.BlockCopy(decodedData, 0, Data, 0, decodedData.Length); } - } + } } else if (ContentLength > 0) { @@ -426,7 +426,7 @@ public Request(HttpListenerContext ctx, bool readStreamFully) if (Method != HttpMethod.GET && Method != HttpMethod.HEAD) { try - { + { Data = new byte[ContentLength]; Stream bodyStream = ctx.Request.InputStream; Data = Common.StreamToBytes(bodyStream); @@ -440,7 +440,7 @@ public Request(HttpListenerContext ctx, bool readStreamFully) else { Data = null; - DataStream = ctx.Request.InputStream; + DataStream = ctx.Request.InputStream; } } } @@ -623,7 +623,7 @@ public static Request FromBytes(byte[] bytes) if (bytes.Length < 4) throw new ArgumentException("Too few bytes supplied to form a valid HTTP request."); bool endOfHeader = false; - byte[] headerBytes = new byte[1]; + byte[] headerBytes = new byte[1]; Request ret = new(); @@ -1094,8 +1094,9 @@ private static Request BuildHeaders(byte[] bytes) // First-Line string[] requestLine = headers[i].Trim().Trim('\0').Split(' '); if (requestLine.Length < 3) throw new ArgumentException("Request line does not contain at least three parts (method, raw URL, protocol/version)."); - - ret.Method = (HttpMethod)Enum.Parse(typeof(HttpMethod), requestLine[0], true); + + // (HttpMethod)Enum.Parse(typeof(HttpMethod), requestLine[0], true); + ret.Method = GetHttpMethod.Parse(requestLine[0]); ret.FullUrl = requestLine[1]; ret.ProtocolVersion = requestLine[2]; ret.RawUrlWithQuery = ret.FullUrl; @@ -1127,7 +1128,7 @@ private static Request BuildHeaders(byte[] bytes) throw new Exception("Unable to parse destination hostname and port."); } } - } + } } } else @@ -1176,7 +1177,7 @@ private static Request BuildHeaders(byte[] bytes) List ret = new(); foreach (char c in rawUrlWithoutQuery) - { + { if ((position == 0) && (string.Compare(tempString, "") == 0) && (c == '/')) @@ -1227,7 +1228,7 @@ private static Request BuildHeaders(byte[] bytes) if (string.IsNullOrEmpty(query)) return null; Dictionary ret = new(); - + int inKey = 1; int inVal = 0; int position = 0; @@ -1271,7 +1272,7 @@ private static Request BuildHeaders(byte[] bytes) continue; } } - + if (inVal == 1) { if (!string.IsNullOrEmpty(tempVal)) tempVal = WebUtility.UrlEncode(tempVal); diff --git a/SecureDNSClient/MsmhTools/HTTPProxyServer/RestRequest.cs b/SecureDNSClient/MsmhTools/HTTPProxyServer/RestRequest.cs index dd4aeb4..97f0302 100644 --- a/SecureDNSClient/MsmhTools/HTTPProxyServer/RestRequest.cs +++ b/SecureDNSClient/MsmhTools/HTTPProxyServer/RestRequest.cs @@ -12,6 +12,40 @@ namespace MsmhTools.HTTPProxyServer { + /// + /// Authorization header options. + /// + public class AuthorizationHeader + { + /// + /// The username to use in the authorization header, if any. + /// + public string? User = null; + + /// + /// The password to use in the authorization header, if any. + /// + public string? Password = null; + + /// + /// The bearer token to use in the authorization header, if any. + /// + public string? BearerToken = null; + + /// + /// Enable to encode credentials in the authorization header. + /// + public bool EncodeCredentials = true; + + /// + /// Instantiate the object. + /// + public AuthorizationHeader() + { + + } + } + /// /// RESTful HTTP request to be sent to a server. /// @@ -33,6 +67,25 @@ public class RestRequest /// public HttpMethod Method = HttpMethod.GET; + + private AuthorizationHeader _Authorization = new(); + + /// + /// Authorization header parameters. + /// + public AuthorizationHeader Authorization + { + get + { + return _Authorization; + } + set + { + if (value == null) _Authorization = new AuthorizationHeader(); + else _Authorization = value; + } + } + /// /// Ignore certificate errors such as expired certificates, self-signed certificates, or those that cannot be validated. /// @@ -244,7 +297,7 @@ public RestRequest( /// The number of bytes to read from the input stream. /// Stream containing the data you wish to send to the server (does not work with GET requests). /// RestResponse. - public RestResponse? Send(long contentLength, Stream stream) + public RestResponse? Send(long contentLength, Stream? stream) { return SendInternal(contentLength, stream); } @@ -448,6 +501,29 @@ public RestRequest( } } + // Add-Auth-Info + if (!string.IsNullOrEmpty(_Authorization.User)) + { + if (_Authorization.EncodeCredentials) + { + Logger?.Invoke(_Header + "adding encoded credentials for user " + _Authorization.User); + + string authInfo = _Authorization.User + ":" + _Authorization.Password; + authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); + client.Headers.Add("Authorization", "Basic " + authInfo); + } + else + { + Logger?.Invoke(_Header + "adding plaintext credentials for user " + _Authorization.User); + client.Headers.Add("Authorization", "Basic " + _Authorization.User + ":" + _Authorization.Password); + } + } + else if (!string.IsNullOrEmpty(_Authorization.BearerToken)) + { + Logger?.Invoke(_Header + "adding authorization bearer token " + _Authorization.BearerToken); + client.Headers.Add("Authorization", "Bearer " + _Authorization.BearerToken); + } + // Write-Request-Body-Data if (Method != HttpMethod.GET && Method != HttpMethod.HEAD) { diff --git a/SecureDNSClient/MsmhTools/HTTPProxyServer/Tunnel.cs b/SecureDNSClient/MsmhTools/HTTPProxyServer/Tunnel.cs index 7135356..0e7f3c3 100644 --- a/SecureDNSClient/MsmhTools/HTTPProxyServer/Tunnel.cs +++ b/SecureDNSClient/MsmhTools/HTTPProxyServer/Tunnel.cs @@ -614,6 +614,7 @@ private void ServerSend(byte[] data) private void Send(byte[] data, Socket? socket) { if (Cancel) return; + if (HTTPProxyServer._ActiveThreads >= HTTPProxyServer._Settings.MaxThreads) return; if (socket != null) { HTTPProxyServer.DPIBypassProgram bp = HTTPProxyServer.BypassProgram; diff --git a/SecureDNSClient/Properties/PublishProfiles/FolderProfile.pubxml.user b/SecureDNSClient/Properties/PublishProfiles/FolderProfile.pubxml.user index f0993aa..4454e58 100644 --- a/SecureDNSClient/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/SecureDNSClient/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -4,6 +4,6 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - True|2023-05-30T13:28:01.2450123Z;True|2023-05-29T20:36:32.5291896+04:30;True|2023-05-29T20:18:12.2031439+04:30;True|2023-05-29T19:44:46.0704739+04:30;True|2023-05-27T17:25:56.0498058+04:30;True|2023-05-27T14:50:19.0862471+04:30;True|2023-05-26T00:33:02.8133052+04:30;True|2023-05-26T00:22:55.5762345+04:30;True|2023-05-19T21:55:55.2053137+04:30;True|2023-05-04T21:14:13.1959990+04:30;True|2023-05-03T18:38:41.0925495+04:30;True|2023-05-03T18:22:56.1278337+04:30;True|2023-04-07T19:23:03.7575436+04:30;True|2023-04-07T19:01:53.8374192+04:30;True|2023-04-07T18:56:48.3465035+04:30;True|2023-02-23T19:42:36.6931238+03:30;True|2023-02-21T23:02:29.4417103+03:30;True|2023-02-21T22:58:29.4403662+03:30;True|2023-02-21T22:48:24.4128535+03:30;True|2023-02-21T22:27:17.9388815+03:30;True|2023-02-20T17:48:08.6532315+03:30;True|2023-02-16T01:42:22.8837631+03:30;True|2023-02-16T01:39:16.7954793+03:30;True|2023-02-15T21:24:18.8085514+03:30;True|2023-02-15T21:18:04.1969211+03:30;True|2023-02-15T21:15:01.3739223+03:30;True|2023-02-08T06:22:33.0414550+03:30;True|2023-02-08T05:20:18.9270105+03:30;True|2023-02-08T05:15:17.5374116+03:30;True|2023-02-08T05:03:44.0882459+03:30;True|2023-02-08T04:53:40.5516012+03:30;True|2023-02-08T02:23:19.0633758+03:30; + True|2023-06-02T12:45:42.7452611Z;True|2023-05-30T17:58:01.2450123+04:30;True|2023-05-29T20:36:32.5291896+04:30;True|2023-05-29T20:18:12.2031439+04:30;True|2023-05-29T19:44:46.0704739+04:30;True|2023-05-27T17:25:56.0498058+04:30;True|2023-05-27T14:50:19.0862471+04:30;True|2023-05-26T00:33:02.8133052+04:30;True|2023-05-26T00:22:55.5762345+04:30;True|2023-05-19T21:55:55.2053137+04:30;True|2023-05-04T21:14:13.1959990+04:30;True|2023-05-03T18:38:41.0925495+04:30;True|2023-05-03T18:22:56.1278337+04:30;True|2023-04-07T19:23:03.7575436+04:30;True|2023-04-07T19:01:53.8374192+04:30;True|2023-04-07T18:56:48.3465035+04:30;True|2023-02-23T19:42:36.6931238+03:30;True|2023-02-21T23:02:29.4417103+03:30;True|2023-02-21T22:58:29.4403662+03:30;True|2023-02-21T22:48:24.4128535+03:30;True|2023-02-21T22:27:17.9388815+03:30;True|2023-02-20T17:48:08.6532315+03:30;True|2023-02-16T01:42:22.8837631+03:30;True|2023-02-16T01:39:16.7954793+03:30;True|2023-02-15T21:24:18.8085514+03:30;True|2023-02-15T21:18:04.1969211+03:30;True|2023-02-15T21:15:01.3739223+03:30;True|2023-02-08T06:22:33.0414550+03:30;True|2023-02-08T05:20:18.9270105+03:30;True|2023-02-08T05:15:17.5374116+03:30;True|2023-02-08T05:03:44.0882459+03:30;True|2023-02-08T04:53:40.5516012+03:30;True|2023-02-08T02:23:19.0633758+03:30; \ No newline at end of file diff --git a/SecureDNSClient/SecureDNSClient.csproj b/SecureDNSClient/SecureDNSClient.csproj index 0769b97..0a2ac9b 100644 --- a/SecureDNSClient/SecureDNSClient.csproj +++ b/SecureDNSClient/SecureDNSClient.csproj @@ -9,7 +9,7 @@ app.manifest MSasanMH SDC - Secure DNS Client - $(VersionPrefix)2.1.3 + $(VersionPrefix)2.1.4 SecureDNSClient.png SecureDNSClientMulti.ico diff --git a/SecureDNSClientPortable/Properties/PublishProfiles/FolderProfile.pubxml.user b/SecureDNSClientPortable/Properties/PublishProfiles/FolderProfile.pubxml.user index 5e4446a..af8170c 100644 --- a/SecureDNSClientPortable/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/SecureDNSClientPortable/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -4,6 +4,6 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - True|2023-05-30T13:27:19.0001069Z;True|2023-05-29T20:17:44.2223328+04:30;True|2023-05-29T19:43:15.8911213+04:30;True|2023-05-27T17:25:27.9631407+04:30;True|2023-05-27T14:50:40.9938592+04:30;True|2023-05-26T00:22:04.4226759+04:30;True|2023-05-19T21:55:03.6988953+04:30;True|2023-05-04T21:13:44.0531282+04:30;True|2023-05-03T18:20:58.6158351+04:30;True|2023-04-07T19:22:18.1443242+04:30;True|2023-04-07T19:01:23.1687551+04:30;True|2023-04-07T18:56:25.8534493+04:30;True|2023-02-23T19:42:03.7111255+03:30;True|2023-02-21T22:26:35.4429594+03:30;True|2023-02-20T17:47:25.0792312+03:30;True|2023-02-16T01:42:37.6467629+03:30;True|2023-02-15T22:16:38.0474815+03:30;True|2023-02-15T21:50:25.4952184+03:30;True|2023-02-15T21:49:01.8562159+03:30; + True|2023-06-02T12:44:48.5208600Z;True|2023-05-30T17:57:19.0001069+04:30;True|2023-05-29T20:17:44.2223328+04:30;True|2023-05-29T19:43:15.8911213+04:30;True|2023-05-27T17:25:27.9631407+04:30;True|2023-05-27T14:50:40.9938592+04:30;True|2023-05-26T00:22:04.4226759+04:30;True|2023-05-19T21:55:03.6988953+04:30;True|2023-05-04T21:13:44.0531282+04:30;True|2023-05-03T18:20:58.6158351+04:30;True|2023-04-07T19:22:18.1443242+04:30;True|2023-04-07T19:01:23.1687551+04:30;True|2023-04-07T18:56:25.8534493+04:30;True|2023-02-23T19:42:03.7111255+03:30;True|2023-02-21T22:26:35.4429594+03:30;True|2023-02-20T17:47:25.0792312+03:30;True|2023-02-16T01:42:37.6467629+03:30;True|2023-02-15T22:16:38.0474815+03:30;True|2023-02-15T21:50:25.4952184+03:30;True|2023-02-15T21:49:01.8562159+03:30; \ No newline at end of file diff --git a/SecureDNSClientPortable/SecureDNSClientPortable.csproj b/SecureDNSClientPortable/SecureDNSClientPortable.csproj index 5a4b2f8..38f4c25 100644 --- a/SecureDNSClientPortable/SecureDNSClientPortable.csproj +++ b/SecureDNSClientPortable/SecureDNSClientPortable.csproj @@ -7,7 +7,7 @@ true enable SecureDNSClientMulti.ico - $(VersionPrefix)2.1.3 + $(VersionPrefix)2.1.4 MSasanMH app.manifest