From fc108773d98c92f621fc81e4ae9e3bc8ca8d7ffe Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Tue, 5 Jun 2018 16:46:56 +0000 Subject: [PATCH] [NF] Thread that checks if a MQTT Connection exists and if not reopen it [NF] ConnectorDataMqtt now supports user and password --- Zway-Bot.sln | 8 +++- Zway-Bot/Moduls/Mqtt.cs | 46 ++++++++++++++++++--- Zway-Bot/Properties/AssemblyInfo.cs | 6 +-- Zway-Bot/bin/Release/ConnectorDataMqtt.dll | Bin 6144 -> 6144 bytes Zway-Bot/bin/Release/Iot-Interfaces.dll | Bin 6144 -> 6144 bytes Zway-Bot/bin/Release/M2Mqtt.dll | Bin 50176 -> 50688 bytes Zway-Bot/bin/Release/Utils-IoT.dll | Bin 13824 -> 13824 bytes Zway-Bot/bin/Release/Utils.dll | Bin 29184 -> 29184 bytes Zway-Bot/bin/Release/Zway-Bot.exe | Bin 35328 -> 35840 bytes Zway-Bot/bin/Release/Zway.dll | Bin 61952 -> 61952 bytes Zway-Bot/bin/Release/litjson.dll | Bin 50688 -> 50688 bytes 11 files changed, 51 insertions(+), 9 deletions(-) diff --git a/Zway-Bot.sln b/Zway-Bot.sln index 2469399..73851cb 100644 --- a/Zway-Bot.sln +++ b/Zway-Bot.sln @@ -17,7 +17,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iot-Interfaces", "..\Utils\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "litjson_4.7.1", "..\Librarys\litjson\litjson\litjson_4.7.1.csproj", "{91A14CD2-2940-4500-8193-56D37EDDDBAA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "M2Mqtt", "..\Librarys\mqtt\M2Mqtt\M2Mqtt_4.7.1.csproj", "{A11AEF5A-B246-4FE8-8330-06DB73CC8074}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "M2Mqtt_4.7.1", "..\Librarys\mqtt\M2Mqtt\M2Mqtt_4.7.1.csproj", "{A11AEF5A-B246-4FE8-8330-06DB73CC8074}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bot-Utils", "..\Utils\Bot-Utils\Bot-Utils.csproj", "{BB7BFCB5-3DB0-49E1-802A-3CE3EECC59F9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -57,6 +59,10 @@ Global {A11AEF5A-B246-4FE8-8330-06DB73CC8074}.Debug|Any CPU.Build.0 = Debug|Any CPU {A11AEF5A-B246-4FE8-8330-06DB73CC8074}.Release|Any CPU.ActiveCfg = Release|Any CPU {A11AEF5A-B246-4FE8-8330-06DB73CC8074}.Release|Any CPU.Build.0 = Release|Any CPU + {BB7BFCB5-3DB0-49E1-802A-3CE3EECC59F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB7BFCB5-3DB0-49E1-802A-3CE3EECC59F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB7BFCB5-3DB0-49E1-802A-3CE3EECC59F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB7BFCB5-3DB0-49E1-802A-3CE3EECC59F9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Zway-Bot/Moduls/Mqtt.cs b/Zway-Bot/Moduls/Mqtt.cs index c060d74..f5c35e9 100644 --- a/Zway-Bot/Moduls/Mqtt.cs +++ b/Zway-Bot/Moduls/Mqtt.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Text.RegularExpressions; +using System.Threading; using BlubbFish.IoT.Zway; using BlubbFish.IoT.Zway.Events; using BlubbFish.IoT.Zway.Interfaces; @@ -11,19 +12,52 @@ using LitJson; namespace ZwayBot.Moduls { class Mqtt : AModul, IDisposable { - private readonly ABackend mqtt; + private ABackend mqtt; + private readonly Thread connectionWatcher; private Dictionary modules; public override event ModulEvent Update; public Mqtt(ZwayController zway, InIReader settings) : base(zway, settings) { if (this.config.ContainsKey("settings")) { - this.mqtt = ABackend.GetInstance(this.config["settings"], ABackend.BackendType.Data); - this.mqtt.MessageIncomming += this.Mqtt_MessageIncomming; - this.zw.Update += this.ZwayEvent; + this.connectionWatcher = new Thread(this.ConnectionWatcherRunner); + this.connectionWatcher.Start(); } } + private void ConnectionWatcherRunner() { + while (true) { + try { + if (this.mqtt == null || !this.mqtt.IsConnected) { + this.Reconnect(); + } + Thread.Sleep(10000); + } catch (Exception) { } + } + } + + private void Reconnect() { + this.Disconnect(); + this.Connect(); + } + + private void Disconnect() { + if (this.mqtt != null) { + this.mqtt.MessageIncomming -= this.Mqtt_MessageIncomming; + } + this.zw.Update -= this.ZwayEvent; + if (this.mqtt != null) { + this.mqtt.Dispose(); + } + this.mqtt = null; + } + + private void Connect() { + this.mqtt = ABackend.GetInstance(this.config["settings"], ABackend.BackendType.Data); + this.mqtt.MessageIncomming += this.Mqtt_MessageIncomming; + this.zw.Update += this.ZwayEvent; + } + private void ZwayEvent(Object sender, DeviceUpdateEvent e) { String topic = ""; String data = ""; @@ -119,7 +153,9 @@ namespace ZwayBot.Moduls { protected virtual void Dispose(Boolean disposing) { if (!this.disposedValue) { if (disposing) { - this.mqtt.Dispose(); + this.connectionWatcher.Abort(); + while(this.connectionWatcher.ThreadState == ThreadState.Running) { Thread.Sleep(10); } + this.Disconnect(); } this.disposedValue = true; } diff --git a/Zway-Bot/Properties/AssemblyInfo.cs b/Zway-Bot/Properties/AssemblyInfo.cs index 26035e3..f0edd53 100644 --- a/Zway-Bot/Properties/AssemblyInfo.cs +++ b/Zway-Bot/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("BlubbFish")] [assembly: AssemblyProduct("Zway-Bot")] -[assembly: AssemblyCopyright("Copyright © 2017 - 15.05.2018")] +[assembly: AssemblyCopyright("Copyright © 2017 - 05.06.2018")] [assembly: AssemblyTrademark("BlubbFish")] [assembly: AssemblyCulture("")] @@ -31,8 +31,8 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.5.7")] -[assembly: AssemblyFileVersion("1.5.7")] +[assembly: AssemblyVersion("1.6.0")] +[assembly: AssemblyFileVersion("1.6.0")] [assembly: NeutralResourcesLanguage("de-DE")] // “Internet Of Things” icon by By Michael Wohlwend, US, from thenounproject.com. diff --git a/Zway-Bot/bin/Release/ConnectorDataMqtt.dll b/Zway-Bot/bin/Release/ConnectorDataMqtt.dll index aac3839697f652f15b9adead146c8434c8b9af27..6021d22c236c2990fe6cddb6e1fc34d9b0bdbb5e 100644 GIT binary patch delta 1782 zcmZuyZERCj7=F$<_hT*NcHP!O#|E91t=sB00)`j@IN1V|EDjn#7*Qt7v54zfr=Wba z)5VM^AI&Ak5P|~wLnH*51|ph>8ls5{KQIInjTjUC2}IE-k@%dmh3to?xliBsd7ty1 z_r7m?Z@xL-d}vg4eikjfUM0^p6;7@7HZ=iHfa_7kEH=_eb3O21mB{Pm(% zUI_WGh`q7HRO_{ZmxPU-4*+MU0m8o>TIhF5E4Psm0fePWhJawa%O%QPCB#AU1DP@qd!BDgurv8{rR?@ICR0T5((wsv~#tGSKZLxR3`ZE*R)TEl#1v3v4YNVy6XyK4Dlwk7s*;ui3R zO*=g_*w^2iWq0vb09e59#F{j|rOg>4v3yN?E5CoB|DE4$MdXQqztgJBam-+1J$uyi z@_2Dr#@F1`i)V86Db49!D`diQ@Ug+&;C z6BbkS8@y?#YocBSQ7o=<^CB^-JVfjzwgVSKO#L@T$=|g!f8JWny~ouk^~&gli9RKE zSRSreOYD_6$C@2{htEbCS^ za+H20Iz@!;R{pSn%jgvPZgmM~*iL~DSeC>cPDP-fyu?})U8f}45WqMG5+*u`5re2B zmSCR2M+~+YY&W>d;Ch4I$c?KA`i!&P;7bOFiL-Hu1tj@U$=eHwIkgzy;7QSn0;BEt znb<}9ZFJ)}{zNa{N2}UKM%n`gcMxM@H-}b^5qyXyv5$6#IzW31wn2!UIr}gIVq6{J zVdd&1!|z$AxUE~ACG(d&Nn1CofKPZ#0SR%D7-XYk;#YYIjhKeth-J7%oQ05RL;^F3 z4Lq(9^9?RCxXkb?@i6(cVY<+vMVrwtWffty+2ZKOhfVY$72P$Fq zr@p_n^z@z4j!%DIYPVH?+jHa6t@5gD221x?aa7q9(`Vh`{BTiR3D2Y9=nVON zj8)m(FI`HQN|NAqi*u?hI{)&^_9=g%SH?#ir2n{gJH>ZWm#&{bPE@ixt$h2m z@`1BD-I{j3EdDpxQn&oTtNvquoO-rxY-^}Uc%zfABE9QGlfSp5LLP4NkCcpzd8Pj- P`O(s`aP+1qG`s%+69ysj delta 1573 zcmZvcYiJx*7>3_-&dhAGEt8$i{bo1aHrd?PlqijsN}5)B37EtrZDOrNZApVQn;Vi+ zlTAd5Ra?7^6(QPaNU_!nXh2IbiZ+z!9|c8F5a|yqB5E4_V_U`doFv*Go@JhSzwdj` zWzOuJv6``(lTWGY#c=AGV);otb#AxY7YCZaRu7z4sglgqUBGI_b=5$TUm~mgPEjW3 zUH=I&nmSo>gH@Sxvv)9SB`;$Va4I-QW{rcrywmN;Bf5|L+fnd8m#*KS@{;-N zQo2;gJzhlL`kVpg`lfP^7n>;er9^@DRGgNvLJBKES1`dM+*h%vyo#4k!ycp1@Sv)38IABK`D~M<^lPJ*@XFp zu*a^&mX*kUk7{0CKyyTUj^@p(0%kri(Kr@4j6}3V*TylASw@W}x`bab2Mfa{niKUR zn~PgmuGI_uct~=n)7(IT2`)t92mNx;%fTdelLFh7#N9~8EMI{~I>;x3C?`YMV0ee& z7Q>x}Ery+j50csFF}mOIu;DnFEZ~RTXIGL5wE-Vvhp0n}h0TT`d_&zt{T$lyDz5PR zdL6f^E@l?3{bai6!Bu3TAMap|c#L|pIzqi4UHB6R?QsY(tB%rVsS~W8vQDvAi<)5O zM|mR2;2eieAyZ6|*SMYe;%j*paje2;WG22O3$aK>ahY; zyt4M&hUu5DOrGg@^8&1h5NRp`VN-aX4qXkIPWYp4*}ene174365MGNNk)kM18^e!s zGOvaGwApq85g90Ui*07Zhph;TZMv3XZzK>=!gak7M|T`M#!9j6I_yD%pOF#sH)UL{ z29Ixj@bOQ>1Da3Q#)G{q)0$$y+CzW;#M?!hLc1)YiS; ijr+Y`ft-%}PkT@Lk(`AYH+)UWxw~e(oZm#MCh!lZ`}Alb>;e3AkSLS;I1 VXJmLRp7^`>bce>5%~SYtH~~xd8aMy| delta 66 zcmZoLXfT-2!L0L1Xk+(5ZULF4DmrrCr@1fMc~Wb&`XlGfF+4m>Alb>;e3Ak$m8RF` V1Pb|d{+*$cJ*Do^<|%wRoB(3Z8bSa7 diff --git a/Zway-Bot/bin/Release/M2Mqtt.dll b/Zway-Bot/bin/Release/M2Mqtt.dll index 1d88de0f38b3de2c1bf629ba6f3481b7402ce60c..e21d5859f6c97be389d64e65cc8ec16a3d42c025 100644 GIT binary patch literal 50688 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 literal 50176 zcmeIb3w%`7wLiYknVB=Myv`(wV3IWv<4s(t+b z_w)Px2F^Nbt-bczd#}Cr+K+Q)viQ6kghL47#C7zj5D(x^p9Y4<2T3I7R6dv^zU}=< z)dO1VPpUfC_s2uSv1nhcdoa|~Jv0EjSK z+p6jfia#MC*3`w~u^v!dw*x?^qaMMP_Gv(O)x{zMQ3z69g-|wlj0qbw2r2sNVhzmyxFCPJL!5|AsDY_($wqyBhTrW7n?m>!Gf_sCei?B+?l44Z ze1^OJqScMvMR^bzTi)n=T;4~>2UkIPxtZn7lI0N>9zc@P;}-spT> z-m&sk=vzvmt9qjD*vbeP6D$TJU|`fq2}Zyuw-}6oQDHF{0i)7lFak!%VlVf-k-9iKl3WDLu2rAX^ORqpV{L#Y&@J8JcEyT^~%5mnna*Tq4F#OlZ%sbW2 zTRbZ7=xn4PHj?@sR%(vBAdFF@$`7Qa7Zk{1RWjEPrjz+q{Zd+TJhE~$zPw_eC080o zvkh0RKZY?l91o&7m!b<||dU4^(<~i;hPkcF5 z5T}!%h@f*a)19vI($o8Z)5*+A!35~1fQF`-X&|-HsT|5RC)( zg&}O{Mz|5T1hnW=qMrgf_iA*S?g+y;hMwaM!^XH9VPwJG9foh>?g_)wad(9=YH;_3 z4x*UzwtA_Ma0~Ia5MFDd$ORzNiacU09L>OFkSh#(yo$pb2uWzcph5UnfbhmiqKNgNI z;B>l2(Mrlgjub^$fZfSs6iR-iQ0@(Agm-cqs>KA%PjgTo%*|%}Nm*ZMoA5kP3DidS z?=Q_#v=ANQ$7bSG}Gi$hF;Jep`a;uU{QyiRvGgTe60lokH$5;Kq&ra)Oi42t;6NEo-g zTDK~&(jT8ej);5{&?gAVv{t}4CUg0Mej}ifGr^R^a6}PHefxdxTEigU^1YbeTQC5% zUq@?$mDB_wV)_>HXvB&l>DpkX|pyU@46#CnbMjm z?IL{(O=cJteAh1zp{dapNJt}#`o`03*Ty}!gKUByVbiV;5< z8ZK31MTpW;Q9?elqcSh{D7?xc9m=6XNAzEyGkgX>^(mNurjG~_ZXk-vztt`uLB$!J zh;rfh$EZt-Z{Kv36NY2?j40gE7oGx8TVf=LADs#!wBQ6G>fLHU9INj77Anpeg{-eO zsBgh=aZYpVTQJO>)snn4K8sq3`pL17B}%7?7HX&63K~(>|8ksGJ7q(mgWCEyVl2AZ zEb=*`Nn|al?{h@SFN*6gl!M(L%yI{G_EXv0Me%l2B3q_|nl2mY44~-OUcvO2>sJ^QyWg8|gKk zA^=A*Nm3On>WxZ2I60E6^wm2nv+`Z>A0cguBl;lSOc$3t#mNOv2}U0SHy;t1!dF_0 zR6GmASE>ukn+A`}%24d*wkKKEiXrh~WSMrdY(`O?*RtOveG5&d zwQceq-2yR4|4`meM3MU&RPLhsYAaWj%2jggTxmv3kKH_eG=ydytEY3;%NU`H{}PXU zUGt$a+~2*hIo8T{f0xzwk1@(e?&fI~@n4`d)Y~$T47;Y2XQQC+rEjCuRF6xWmDjf( zqr@OPR=!JF-8HUjP1E5Duf?1K*)O`N)=pYw^^sGo!7#v>HjA!>0?jvj5f2LvKt>e9 z!w8=1F-v|CfT<3u9 zz;zh-?DqgFy>h<7#Cf9%lrrvxF&K=k6o?R54q*_;s3c=5hb_5en0^0owfyuWYPmQ~ z%b2Phg_0~)4UepWC)@<)?77G`M*J19EQqaaE_XdV+ug2M!wq;cPnwX6klld+L&y` zh{^dLE1R;FDUDT=XJxbQSo_nAQ=?X0FFlKj=X>R3WqMOHt!{dGu4U<9z7J`W5zF>X zgR}E2DCfT!rgwx``F_(Mor#)MX4Ms2Xl`A$g=QboYP6z!U(G5@(aCW7l%i>8T6~&L z)A&=tucoOoq!3w+OsQH2RGYq9)u{c5=on1SxnKYA=+Wv%#7g>LtszD*psvJ4t;X2n zHTE!YELF@P<_4@WoqlVNg+-vVrb*v|sOog{e2w)1>8(A9S1I}y+IOtN;*j&r%+teI zJ7NtZ)zo+;VyyDZY}3B2Zy}v>5b+x13vf-WILz7C0+H*(D9uvS3e=*{TFR?sIh8)A z8?ptcY$1q@$VCj!9-N_8pV1m9OTd2ms7Vu_PTusu;C??FC^JEhS@>#Eti0W6oZ?z%TI5e0_lqKul$jc6_T6F|B@ z9A0r2SSKuq~7i1M+4dX1#cLnp^vu7YhP8V39 z&^k}~&75LRKqhCtCz$UwJpnJTxR43C3$j8-j~>0kni;ur`M%kA!2e8N(W-nO%gBn& z`82q42953Zu9gO2txrWAG zQNFVX(`qO-LBp{F&#I%UtSamC6vd~LJJ+~98Gdaw;uN)LuS;9B%awk#4kgiUjkf1#5g-XYCB4D=u4NV2z+ z&^)2xTcdma&VNMD$3KAb{D6s2vXdHc4S-Q5hi6*2D&iQWn*lX~>`?MoqYHZbH;A^! z>Ft@D#_MXiqn7bqb^vwt%~17^>E6Yx>6qP{Z|2+Gn~#DkAg*G5Lx8hV4EVdE#P7I6 zsdLL3em%N#F^heKVST(YEqAO1WSn<>QT!h{xM#nIwPkv*&3{`+I33XLj0{3DH4)90z}mGOQ;{rTzPy?*iEQ15i}XU2I9 z#^tcZ#~zFoEHn%4!H5Os>>DAjJZJ|{8N-5RFwN7) ziD6@wTyp1MQjfE#N1?E2hQ|!b#g=XcKYpO|17q4OK9jK|Nw%l}2!wDBJ z7`juXJEZVNP+sTva176;Ml+=5@a?MgRJuSVsexgh-MY^2mYVstftlsUF zqssmg=eIM_Ud%n>^7azSx9*?{qYGp%Gy-x{3O|kZ$d@*At#R1d5mHQ z!0o&O3DrWLpPnJEeTpBk!G9{n5BAHw-52m&6c1CKaAX{+O>-2{MxGc&E1%g)cS%*x z)Z-_kCbaYMRafvsEWX3`bl-v%vXkyu8uA_e%oLf;I?yjxqZrqKnwYcMXmzU0Z`9sgL@RSz%mUBDF zA8tkpc8Bl>s#$^0LAz(4Z@**eejI3@=Aiw!&+o3C>W*TM?7ObEJeXDE^c1bkk_^vh zYY$tPuf`w4Ipc5~TV#H)O^wuzt<*+Tmzs#`a;;HaI1pDC9mds_)px7vdt~+1GY*gN zn!=HTe*RC`pY(-SqX|W2aXh~9NqeyAWTL)>%8KK0s4sdJK=s+uu#TYPy8d9afmmoa zJh|HhI^%txHDe@sJ>jvIpx#dV00ejYCU*b zyprr1MCZ$XoKFQA=;mk>VPDhjhZ|TX@dJ(;f3Ui8dUa?I=<3)v$aru>-=**jv`oH# z!3Y>=j$|+b2AU=rjDXQ#F&F^@4UiIyfPtDy1|wjgiju*|g_onE&S}2*AR3Y+oEb0{ zJx^{&CF!I5kYCvdcR^AQeQP2@UpJ%t94$gcB43aqm9|Ks6e+rvJY`DId8d^7cPTf? zmMf8R#kSm(BA1eVOv;9B*$OFJk|8^#ILA^Bd(b$7%M0|JsYe%}|9mwC21iK0!yWCw zuCdnX&e~sYaNL^q+J4jEpq1^dHM}xn6;ylpxup)b2%W&;Tj2Ga@a1F+^wSa;f#26* z1dKL|p^yS8y3Ps`;Y-QN@r9^O_%c$mL@$uM@D`BKMdXptbETz+5iqW@7>t0i-C{5T z#?=;s5ioXG3`XE9PMU87c0xEeb%c_@FHraM^E5|rhR0y$8obRjrD$cI!+3VLBRKsR zE_%l95Qqcr#E(6udV@D+xjmIvbQ$NZ^h-78`8=$yYuc~)9RVu; z3h2PRV8&ahJMeV+Y}}_hYx`Way+-UP2Abqh2{jEagt1fIwOK~Yp<5}2)AQNrIh4zY zxl>#nvf=BjA(EcpHaIsmJ7iwDe%{8Sdhh{u(DiuiLY7WpFIF1@E`w;6>CG{D4xS+c@$$!mWTZ;+i-h>o-m@c z51#4ANhqdKpEtS`Fun|cOEh!2-?=7HtoD46+z2B^Kq>H;sdY)xNGF{5aWKSlGnItpH5=XWA z8MdsMJB3}qvVi1{5~a{&2@oy^qhTN*1u@>(PNvH?6gHqKOOX@Ut;N1~nhA<3HO*6* zW0{71ea;u)MWai`+a-3%z-7tkFVhn=-Ku1Fs$@@E$>dO@)p<>?tq!5UZUz$4d%i6Zl3h_wBRtQ`w%!0zKpy^i%{V9c6X$omvU;{KpC7x8+DuGLtIZ&As zG_#e;?3Bu!G?g^Q%v@`o{B@@g6`66D9a%=BXeV5jUacXA!Ah9J%QQzpO`Z}W`$-|Z z%w!3X71D)>mO{`#Evn6t_bB!&zTosUeUvIivHhZ&k|^EBiZYk$ho_=)p!BFZVEadr zqvWJg(_I@hJ$PNoUF$O4*VW?bTWyxQfJR>Dc6)V9!R>AXF*-E_3p)Sm69+Q>|E3wW%v6y!ZR8i3$ zNqa2XD`~Gq`y}m?bZT<+^W^B~_;5Zw3>-B%+EZC&-tLU4&`t>MmgX#}pKbHXc5{Er zFh({HQc@W^8t#~9ZPAk5HK*7_smjN(&dyh=@|C9NE8QKWM}sCe)W!8*^DJ|?sd{CD zBvnVjT6$%OSgOx+O<>&XYoE0w$sx&3TB*h1phBEt=2)u)Gb??Lrw*>@2^~eK>3Vi_ z!WcI7;W*O7wq+3lQ53OM(+NfERoz?Qp3Sz=$O*<%2)3=zEfs=gDFm9X(37qZUNoLU zux*71l~hBpEQLU+f4u36;C|yN0^3&Pm5RW!6aghgzH~+K+wl~EZ7Y&KW`boY0!oUU zGIqHI9mdi}k71oTT$y!k4sQ=*SAe>6N>S`qz8A;7$M=%hfAGCD_7dMG#QwKD>AsxbbU$|0QT8{+D?8h2`A=Y< zV`u+sb=#LwH>Of`L)nj}m2EB7OJ&h)Q*69O@3sD(9acle4y)l9(~3Mz7-!JS1bf(H zbkiDr73xU+jy3u-$1#@l3TvY|MVi50v_G?z4lbrl;e!m7wnj2(1NU>-$=b5TUICG| zfuoG+Bg?X5`9IH&!x?rQ{)gM~7ym3fzV|Wgi0JXM6+IXMhiwvVI&+egZX?c-H+!}f7I-(6d;rhAZ`K+YL1@jm8^Q0979)~Iq)6sNqt z!umW#*GRg~U1BZrs4!lK7R|($A8bmk1xqb4DjiF}36fR|WtQgEDi-OO{ITjo{3cPn zRW6a@dOqlo_Net^txV0roR^ha-r?W`XCLlRQV4NAy;eWY@~(2aQoMGJT)kXR^U{=s z@(7UELltYDT}Jc0okEu4lp;!T(aFj9t3#^$ID?qj_7FbyYG+h?8|2u>F3%^8Wv_ug zVzf}Unj-JK^02I?77Z3@EgUGe;QI`sO2(F#;8pofx&NP%5lr%}-E75Lc><7a?+UZ! zo)8m{C+OvJ+_WEba#yGCE~(Q^r(V`oge^F=-E?x7r@RBH71*E`9nsi%K^AopLH(hG zi|TwW;?)f!h#kMN7>rES9Yx`T6e(6%3!kkdi4ei*$ndI_fe|oX zvlxtk@w&xe1dQKW3`W5CoyB0}n|4v85=D_BL?g;h(TH-CNWP}*&9McMGGJtr- ziyt0ZB%Sp!It4=mgHH}nM(kC$SGhaZc82%_+BHeG>xgRCxK9yOob_4DyN^?KZ}BP) z=Ub^Bcnag;njucoGZqy?ce}kaf9H|Uaxhrw`=;s7AIN9$kcFPJ;3d(OS=Iv;*+@K9 zdGn*s%ji1Op4>t=ps?LFxuY24Pq-h^WvG@VwnAA&)3|Z>m`eW|&UHkO;a$LC>p7_% zna`()Y;i|NWHMwb5WivdGb8BuH!TJuR+y`h{eGPqt&+sLjdCGUl5G0eH3Yq@HAVV{ zf#<9IG-rIL$4P)ZWVZdoQBps7)O4HS`ld6eCf1KJiN>)L!4YWuJi1xu%+}!ft7`&d z^qL@gKJ?h<)zQ_UF!9d(3cAjSUI6OaMl9CYK47_{7ZQusZ)_{fmMvlvSE}b81+6c)2W}BA-vz7`0r^9F|w|u$)DsD3k>Lw}yK;a{l&J ztqMAW_HZU+puOX*yJd>K^d?dsz{v!)3RVhu5v(4J%AU&%5z2s{;Q1$g9k&&M!CI-= z(c(sm7FfsKMt3W9bkrb~ypALPNrjKMK=C?`5rmK5TMR~0t2atVpkOY<4q0N1fbj>5 z!3Y@tWic3u*=sY(07WE*wHYVcvy)#&sZr++MTkGgI;6?iDop)2=ML~II^X#`?tkwZ zC2dBz59%^z6lVNgGYXsl)Bm^7xgT{+2J63VS)UQxz&>fc2B8)RPJDRWO>p*?crs5%^_X$I~L( ze-6jz{Zqm*CMfw$AZ4x3qKC0OdmO{gT8L!^T#Gw8&{FKL$5%$M8k0`}wlaxv zde};51dKmg3`SD%m(me7nF}%O{iI$-ptl->6yumlq`zmSGjb-LJJ44Jp@3<~cViNV z{QD#adA`%nRVfCi$O+ z?0Fjfco9BXxHitJn_gExy?zEM$CoY#02@xh{^oKa?!o;aHWiaP60!cFzBozTg!SJ6 zCwR*{L}HEn?Yv0~m$x(_Z9C{qKBUbXh@$=c(XsS9xAMDQFZklmT0OmtNTn~pH5(UN z&1>czxDy{1<9B~I;EuL3&xJeQyA!RrK8wqPi)5jjUsg467h-D(@n8&bRl)n^hHw@V z{9^vA<+&nQLHq~u&zxY0bp-?$GJK2ST?`*$_zKHZGyY-z2|+_lta`G<5Gy7+fY+4~ zeoa1UURl@?GQ`jFpDgi-+e6E%46z{piVB~&wdjG#KJhZ3A-+&fGM_bB10)UcDc1JM zBEo-MN${l-f?t7tpXjYR81jj>$;+#J;_xKG=Y{f7+g}!tOku&RDEG@I>HKQhWs{&8 zUw<`37i%uaq8gf9!#|jW|B>M%<%E9&<@&^-2?vq)-2iF354G}%Pn8pAW+8EQO(-`E z(LRCnU&p1GeyUX)TIUmg2vB`qU>KQ5oIZwcRuF$*9_jhvB+_$UkYGWOYWN#&-7f@j zKF77)#b4PKf_ALbj~ajf`j^G0VM|SvhVQt4x$3k@bAWk-hEDA(J#ErvoFtsX)R`fo zrVs_m2PctajiR217NVAjZTRx@S0)p6idfCmEsDB;^EoPI+J&sMv?MWkvuGAWOwGNiq#na+(rY?id&EjW7 zA>Uc7lNX=RxrSQ_B?fAydvgl6*tx=)OEr!dl)Eex^1sbx7nfHN^Se7DY@= z;e2o7+aQ#07E8V(CNgz3Q-{SAZ5z_&PQ0^t4r)@(X(xcX8&nNb*`V$b@8PTCq~$LY z)`c3y`(lO$QhYOSU1+oTUt$)g-NI>ZO;X=d)G3@csf_ZuwNo`6`IeOn(GO}iQ^krp zovB}8AxvovOnsoJCZhcKE=0LJlqwlv(%cp!^Z5hhz3Eb+?L}*gXsfqI7 z2;lF`O@PlayfH|4GV3zHeZeH)cXCPcNEPvWatVGeK%5_EZ3q0N{~Ex>{_6m5@_!nz zE$bG*w~9Xx*j#uA;HeBd82TrC37ovjuL5o>|2p6Z*WvVRs>#G`s@sAb!k=W0JLf*& zzt19mj8muNe9LJV_jzN^70IOd7GNWw#d$1nKR7=V1T}_j48I9jB_1yNKA=|o1L*8z zJ3JElA@ILUq!w+c`Z3^<0G0lOiBALWW%vxkdrL^?A}+Uv;YNm^WOy6HZic^bkhYg| z2)@U#m*K0~#F@ zHfgah<~;B0NS^Mx5AX+Wf(ZvfpF!|L55dDuf_qrzYs^{Cod0IdTguVi?TIrA9*DdRPa-^=h8hL1D+BG>aM*YGBW_cA<_VJWB1 zVt5I2UT3(H;gbwEaB3UF9e^v68&KkkWCz158NSP91zlf9JzWgjU>T?QQ-I+6g(HAN zC4`??O86Gv*P+43c~3woE0TW@1aD=|EQZB^OOwAxiA$58hqk53Y}jgP@*&1wf%TRq zf5x0^U_Ib0c_mUc@n2QsU6 zfF#8kiUzB)Ut&n{=lbkd0CRF*2fT(y&|W}mq)#n+9sM%beBI`F#Vg=^h2akvHWd@+ zS6+fyB?L#x2tLZ3KXU4M%&B4g{ai{d%p0B12S^Gd$N(^Dlb`KeT=crQrSkR|TTd&h3?Tfuiw&led!o=f=r zB7*y~2tGZT;PVWRvP`8(oGu^1YfA|JcZlGBRuH_6`Juo&D9fEqZ6wR{(n;*izRbJ} z^R1#>n+o4YdW!ncNh@Uf>~)RgzK?MvKYLvz`3C>MicC8dYgbxhOKRstqS`}5?eOf% za=2V#r=q?B$`E@Lb+_N=a*GcX^)M)pm|lf!$XDh!U0$(XQ8Phdm8_^Pf3eFio>$Z* zpt3~XM42y?Rq4tWixhP-s2s6XQERg9!gmI*W@?*fIBOTE>r~p+zMYs~Kcmt<<;w$g zn@W46^e%jH=_@MjXQjJ9-KWyNUw9XO%jf}>_C(<>P>-s#vr4AA^2L)Xt-Yig)Uzt> zL+?&}3G-Jf&4=;|#H%Xpk9j-s-Nm<5n#0Tk^{z@gtMnvSP<*JUj?!76Tv+*%&EBt= z>nal2k}7_n{47u*n`(9yix!*8!&}d*ZK}gnDUvp|#x+IUZc|ZLt=MBzm$_z&gG_A` zJF6~p%@seI%%zJ{tFCp;6R+9Sr(E;#?va&tt80OnY*Tl-&JhhbzCo?U0(j4Iv4*K_ zf;?-vcw13N3h#3*7mIKpMw0%#?||B*sM@@TUFV9gC@Ng^L)S|2ZJT<^b)I;ascmBR z#Gkt^6pLs(D7J}i>}I+|L{X1t{mRuPzM!aI_z$?&i0>=v9RF`!YsGIA^(p@$SC2TN zsKr@^=oMurN}VIQhh4p5z@|QMMZ|TAN)#S(trNR#%4PJ4PTESNE{VcyqhGAGsRH97 zu~Si-s>+N3v8h%{{m~IYrVU*pDh@F98Ik1=gF2+B|MWeq4U6}f+5ulO#Kqz-lJYbLc7j4@N%UqX=+4HG{-)aLKgzLJ&3 zCq!kFY|)Eo!%lGmQ&)LjpQwqQV!BH6Oe)o`5wlfV!6eLKqEV%-o=~d&i{PUSag`^5 zucZHrSf>d5f^9y;`3cF>X|8 zd$qOZfbnUYT4`Ql+$^%1iSZfnr{GrO7Ez_B`vTjI&x$6S`lPX24A|7CjoZX6HnrQh zOFYfgr^V8$FB^A@$qPs))g@1SO-z%NhobPmiIWvYQTX4)nTk5Q;$Gt(u|QE>72g5X zCMj;;*TqVk$`fA~F{buvca<69-^C7<@5h0uu74NTDQaJ!8r02-+K*U%ueeQ7Zz7i8 zEACd*6vXoT#C?jIiCBK0_?{(Ma+mmqcvMmEmFxobl%nQijD1r)tEi>EL#}U9!|~bc z`fkNT#<#?aoVHy=iXJn*Es7UX+D)RZ=qclVv6`vvq9wS`ct9Lv3Nf^f_Y;Nba zKP3Kb5#`(Ad9vy*y#MhnMZH+H3)Dl3T9r4|^|1JnqSohCgZhc2Sj!{gMW#L@PRQSH zJR)YbkWQQ{pq`J4gNj-i+$kOtMQ6+Mj+jJMDhfZI1&V&9n(A^^=~UMb#dJk=lvab9 zqbTa>ABjdqQBVI!oUJH<`Sx+KOi{U*Zyy)uD~jgSy`o1^G^g$r1B#-#_{SolD4L6Z zEVe3&=G!O4)rz9|_6c#FqG-N-QhY{HG~YfcZc|hYvF<7H6-8Zv_B|!;Q`FCMcZ&ZI z4=CzDZXT#d6-8@?r^S*R~iTIVG?#Mml`iXc|Qrr(e74OfN|Sx`l33p%De9yB;_^<;=lONsQDeW@!PGX-@A91P z{o;C=2Axj#%i;^Rq|bdod|6Sy%lp7}K-{aS_4&E(SH%5_iscu8+M}qOCzZN?Bc4#y z?UO1&J)@{I%SyFZ#S4mREz@u|^czK8k4XEPcvDfIL!^C8{83R)PTGkxzVsRBby12Z z=Q3&-NULUwEHTCXx@cueTH>I%Mp0ymH^ePz`Q8wBr%ApcUT2E5)Vbdjt`$_mUP1W| zi2|nN{C7x9W{Mz z%X?2e&y+0hJ#kQ_Q3>yfT`R48E$;WlJ50%Ze-a_Qq(LL@AiVrfBCM#x-aJq<6!q)8 zW$r(VIg0vS-eK3D#XL!|*ZsFxYE$RB|65#WQy04bB6c$+t*dLd;}l=EVZ9q$y$gtv zbuqNnOzrSc>bl`L%mh8nrJ=yI-YI`?9n>Dvct0w)TXgD6(g3&nSu_dye*k%14nsNBfN> ziO8O-y{XbDvgc}llxe8vh3-5pgcnpSk1W)tGbOE5s6EFN_4LK=pf(3jG%YKYXzQ7h zJzb(DRT}kliMD7BNm9No?o#ciOiAmOYky&Chv!d~%iQIftD7WucydCAUFBMiq_{UL zv=CFIorfzc2(N1TIO4#e3tMy)#D&Y*Ri5|15{yS6K&XgQ+XKK5c zk`_Eu`&XHU5)Qe}(!Q7`*`VE%CfT5UN2QUK8nuU28r8E=+bh$cWuJSVCS$T(c{FJ+ zs(ioB^SPU}*Azu_N0WBQ&i8?(db{GIR~i?S9xgkFVM1?qVe!c_d>1QruMsA zv|34duFQMgeYQ4BQ8(o62X%%mX^3;QW}AA;eU8>)Q@b6l8IpLSiI24wwkTQ)zvIRq z0N^xQ3xD9IcjZZPuSRR(6&d-?wbS}chi8>dtu=j~^KFXqb!FsRW2g0*g`TxGwbm^6 z^x72VTc44y-%jf@PxNfCskP<|&!A0FKKhaIRQqCfTAz7_Ct*`-%_h%Ao1%P|Y8SB0 zuHw0{WLM1?MA;~uH$@__@Cfb6GszYuORqdFohGx@-E3In9k9~ci8u2 zD*Y&wCeCHfhAP4d>g*MW6i9WlKVW`CtdLFQQ4&-S^Eeea`> zg%i29JGhSmj6YLJwMyX*F%cGnRk?MyF-)c6Ne4>QSw0*K;NWE;oUQ}Si4TDZTCU&CW*IF|m8D}O9K z>9so6h<+cvK+o^UCURVV6m4>Jr;qydvc}@6(j9nW_)$wdeoc;LrS#I%Bil!jmo1va zBRyS@#APb!#NU=;nd9qJv2=`|%XX!7W{$p8DHdNwLMbn!rHr(D^Jvsa{x?vH#t~Z= z`zH{d9(nHPIbF)6@bMzg|Eam8l~OjhW|<#xJWp@6tld?CBK`;9X%8 z(7WMLJ~^yL!)+TpBXna$wr!e8Mb{+|GE5#8DvoJIC)cL(kQpH5*f*0z-Y82Gxv zp8~(O>gPC_d1dnRVzYMX#8)66gZwqxW9I94GV4csB4TYJR`=sP;WP8F*BiUG^~E@EI~owL7rq`VZ|%?fl8lXkM*m((@>b z?4Ut@zxE2?TaY}p>M-C)?wB)d@BNQV)9dYeVNVXASa-$v5k!{-XFI;LV}0>0bST@^1kCXXX9ie7E9R z;IoTLwKv%2Ufo~yJUHJfJgk>7XEMWDQS4vtn8mP`tv8F|>Ein({f;Jv)H(yDzcTq& z2jRON9z22g2H*|iyMVWd?*r}@djM}2j{|;@Q}5=~=fzXtyeNJKctAV{_!_4k6fXe( zJ#*d``+*m0q@heB4Izy*Pu5-q3~L7gYqdiTmuS!q12$>z0xn|Ms=W`qUHbsAlQ}E3 zKLcN_eF(TlI|7JZlhY;EGd`f{z=s)6aIQ^^U&b)WsoOd4PS&Ph^|`>m$lC5^&OQ3+;M~V`{x)+S z(9ZI4%SncJu%y9P0r$IR*g_u+G<5 z=Rwx_d)E0j>wK4We!x0EWSzoEI-O3^>2Z?IEGOyAbCS*iC+RG9zUrtGesRC24!&fm!v=FnoofaB_VZh8R{cT;q(3N4!bEKYQ;hr z{rdoK@;?XImi0W=I2u;7^ozlMoCoCMO`IaEZc6ZGO$Ek52ye>N;*FSTq8#2|Ax_5c zW0#b0o|1w0h?uvUjZ)b^P!*Wlg=Mo^FWB?e^Gu9UJdz0Cl>0G_46gJ|uXgDVd{Mw)`q zq`}v`%=3Y7LZ6QBj`+bZ0n|k)bZCgf*}%(?4{uuo>hMDocqJfC^-!iJssOQCM>#s) z=`R9ogAV$&@dQA6fI3Fr6yOm+U95v&YoZTO z7wh5M8s7gt5%@*$ahz2E>i7oEG{DXHrD_eopl}lKE!YWY;xa&8Br#_2jy9l0>R2&01OGgrj>xeP_-%kX){rg0?*PCns&X;#F9GV}%dnP) zXwwG#ZdgkbUj@|hu1E*)e*@ITJz_cVuLJ6M!{c1w_X6sOPpg3652)i?5a$Db5KtH2 z$Ad}@vFifh55wx3cmz-vKY-OWu?J8`T{qf zsn6Yx2fRdO@}9(=SBRO&Sx+Y%xK74(3a(Re&BpkhBIe?1#dRUBVO&?@-Kr8D**aT0 zHqPjpE|!i&Mk2jSqw(pYeOX&)+x)iHt|g6&o4Z!jcg^UUkz%fBUe?jlw#4GEh{WRk z(V;FWCAFnV+bYIaAkwmnmif_vfk;mR>ekElRZ|vwew+-*IEp6-QYHeQ8 z+}hRH38b;3v#V{%{N_yl;5QtP44A!Z`I5#JjV-N>^IDt5;-#IP zU5h&wcC{~`x2$=7SLdqsH0JUp9n0r+%wN_ruX$9;vG`Ea+S0LTlr*@F^UoQ@WaVSo z&^(q&%^1t&I=7Be3+DW`#qFcHElUygtQ%eUGhz=c`2QeeFJT2 zS+bzDW#OXEuBFSHmn)@ELf(W%BbRE8a@{nR?ba!&b6Z+l(}B7?H}{w7fly;=I%iDFG`>JJk>4GL@3*u5nD?+KkdNdc=xP%(eQRv~{Gc&&ubu zbXqJlLE0MX7IrRTKgeLrZ*8GUpuFOi=HASY| zmAT{CmHD<^Q+aK>GHYDBa!SgsOj0aK*+u5v98W|B>ss0}11HT7U1a7lLCDUZN=c7I z<0PlT(Kv}#Od3DQ^87C9$Wa9zBTa>XCV&sB=;>FFA5Usud=yB6fT8vX-`{uBPS%jmuj*Whc#B)^-kN zV#VvidZVkoZQ1yVsRXOzXbxywuB0s;8O+Ac&gRAK2u!fevQ@IorsmehRf@5(dtfBe z)g=bwJ<-@e|60)z8R~5xSsRP=h{YEt5{u(~iaNKuKd~ShQxvU*I-|q=JtA&n#5=ct zU?9a$QJ2{K1n26Ip&+$Fi`OlT3`Js4NNN^G;_>djNJ}rPPf_Q_qC?ibA2q*-7C(CM1~s&Qgp`v7%Htj7VSYv zEko-D`uo-=6t}5AKHQz?S>L=7r7B)WqB~~cjlI31ySKMX*|cM1ZM-Mezc$hhAcZ9`*)(^M=UiXTf!Mv|>2gPW!ZJvz`IUq7ZQDZZ^D#Uc~8#8WhRK|0-^mWI`H zBsLK3*?=Ob-1*U=A-OD{KM;+l${oXR8ydrs~MeU?aqmND< z-CjEzwlhnjiN=9}=p`uoblbhp+|boEue)ahesN<#e`Ekjwp)%(vYc;hN=w{s$k;@s zaclzB;+To>!9-+i9?N@qm)6mL={O>!cELb*-`LEZ{ezL{NTO{>+69dsD?_1)3rQ-J6eMbE8kGzOaP(krPj^geY4485FNuPn>^3oMacR=9 zLz*>jq!^T(7JV#%bk@1C{zRlR*4-1~TDJ_L>xMw|TL=w&SZgGPn9v*HdZdxDR0;_; z$70c#EtjGwt%CwlBE_R1D~Du?7qRnqMCb$o`+Zq2G017@^d+hBDR};x z7mIF)#H{Rta@rD|(Z-$)L(xkHBE5YPF+Vyu+#QQFZ|Yg!Jp>xvjJXT>#Josf|B%9| z=*ErR{R7==2V@1Cx)a?gPD}I9$Y3PKsVy``MdOSw>W;5ZFt%)DD1qVJxp_FUsC%dv zS{6nUL@kI#2NkDZO?9*aP^_4oF4+Uq*i;{DY%l2^l--oUP!n(lZ&*bG&Os`cVMK(CBiFL|>{QCIJRXS+S>@Tph{atHqqKqUcmie}r05~2(rrVyli#)W14GhU zx-W?WkW#V&cP1lNjhR>|Z6u^GF)JaZdq!dr%fIJ!$0KwgwHA|{;Hgf?K8T3+?ihF+ zecNM^-u@m$X)$bLD^H$2XMQA>=wByO7LN=hfW;FC43R#Pr3!Lv=Nd}PS}st?X9wyZ zh{SkR1x7D|4i+3ENNS3#9qH?%?oaU=(xE@=50oo^wSav=3$QjCD)dc!W24`kZ4onVmeku zG>~^*y>s|iOB6vvXQOlvYnJ1zG{>{6jODfr^+qxJ8q`9mJTR2*wC`UDL?0 zEn(rkir0>{fKW?&xdFikgX(!MW-B8s3x{V zackj2i^avXE3hJhT4+Md!iMGIn`_k?8R|={mpT;Q8-eK}=+y3hvWntH$e?4m2$LC7 zjnwq{-2($_u`*@HNJP?t$_m;D@z}6sC}196qBYvnJ&-0Mr$>ymW9b+x00pu}YNtt+ zQ;`csAu6@gOiRORA}vi(DjzQ-(o$_&rIUA1a(g7QL5#Gw_OFd~$2Qk3i6kga!LD_S zXOd_g?^G}htpR4!EtIU}=VL}5iVO&vndxrtmkCG}8ALN^v8rZV5l_RZ>=rD0 z1!lxSHHvB6K?KosT{JdGs|hhLiW#AMh#P?w7+j81jx%f|@MjM)iq)SZez zRCQBKK4Gz2$on?CU6NA6tOv7u+Bjn}HPA9rF|g6UDQTuJ#!4*G9TRdonKy!6P9%n+ zFbT#iy@(fy$fg8srNCS}vTj`}&ED1Y^5R#nhwYqcTbgmxRoIVYCT7lFqY}wn@)V9v zX)+3xAq9^$>EsMC3u_2${nW|X{3w?8V5IGLgtZ@l&(k_z?GA{l>mj%}I@C{h>Uueq z$xh%|P4LNG-16t9{_egZEYUIFSuAThr;+`M5`|j%?;SI&z_%f?W}Ntj&*Y9!^C2V%@{*H`k3?RmXAY*+;9dIN3rX)No9U zBjB-Cg@B4e27 z4Jjp0hvLGT#gyq%QxY6!$nMj$qvGQ_kR4NGeKA|dxPv9q(%#tH8^ai3|Dx4$BGNK! z@vwx-pygIGmELblsz{9`L7jAjI08AA1&kF8eS+2iw#`tc_J=v2yx)49f37qP?>%(HvzOX(mD`Q*hAv5 znQv68oVbv2V?PenDMYhL=8wc;7OrM8>`)OO6WrlrSbRihN!SNT>^~wEwjwyakUJbZ zC6m#HBaL){{tOCJW|Z40bGNi(Mc*EUjI1(6I>tKtdp2;~6OBDI^Dz@UHag4W>RY(n zoM77=ONa!Y`AfW~n-;eajct@mVbR0$8FR_S>6ni-F+v>aLrhBdu~XEkptKvjnzBld zvPG2R(W@!Pb80b&g;ReVn}MO;xSBgfLhe=&v^PeUV7jv0q?7QJU(rm)cA&FJt_ved zfbn&dvS1VTo!AKq-sWNW7 zzVxF`7Rq3>w9`2cX0{lYl_H|UT^y9KpgNx6>Xs*X`z?cVe83{@Fkms#$Fo|fsm)w7 zd}p(;mfUek3cOB)H`3PP7lylWZN~eDJ$UL@N+KxbVn|2$q83=P%OE>ntVnSt z3_~Mn$DsoL$@VJgl3vi`>N(+9DIvDSFl^P0I*5)X+|F*)7|+L486muhNtPU9+Y%l_ zeaOCK3z8ZHFToVqJPter>2B~Nc;Q)E|0L0gKIlM-Yynx6dTs!mjgZ4q(C&jF);GGp zsI9^g##M`JF0K=WsG5#9J!j&5xmkEu?i9QyHydwqHi~($S`%!CpPR~^kM}B<;9nzn zcptiuYK%dT5{JNvLMv*Sy%=v?wxABZsGsl>)ro(p+|&=COGejziPg@^(J3o3S|!XL zw6!0+A(Y-iZ86DD2k>tJu5S35D6}}sxQ^ZIf12wGE{lM&Yywy6->Yse_npC~n zQqVyXqn4|9+tdl3$Ylv+^`Yg~+SG8`>4Z<G`d2%R#xnEYk@UL(mkkAZ(u$6 z;3Ri3+)b$o7vx)Xyo#=s<>{oM%qajI27aU(>5X_z7B9CW)8l6HNmob!@d_PndK~{j zo5`Obm+r}Pdq`0r`C_2cTpj3ip;!;sqRe!28I&|kAo*gsJFDE~3M6+15`lq0G8ss2 zr=(i~jZpAyCrW8_x^<7o?}pIbq_&ClmDRe71D$~;{7c@AWGc{OuJ%YBz@f(z7^Yhw z`4CmBj5Hv7H?l>z_Aik3ZtAQ6{*n^=(9GmD zX7UX)dB}iC14}&yWlg^43pqXIE|14d{>dHEQH|tZ*c#Uud3X=MLO6U{naAx6beEL{ zA`Z9aal4%!53;z)IXjIy40OVH7IxKM5g@@v}WN2?Z7t8Ll+t*0^7VOsN4aoqx$6zvQ18*J6owj(dwUv z1j=17gCnP`tPI`(y;)qODgjwNjvTjFmKR8n3fK@N%$dkK&R*aOINQbnRVbAC%yO0KOgJ_g16ZT=mgHkHyWMvdm7H^BLI0P031Df z^a>|_oB||)5PA1oa91NGkF!OK~fU^qM1-O=y_%5C z_iN1pIB6ivj$B@bkP{fpDK86LT*j3fGz79BGT>&`=D6_%4cyA`RZhN_c@YGNQ3jS? z7HA114`uvW=m<1%zq7kznj@#j zd`L>l0+(@L;EukKoK1?e2^=cAERejxPaQ@`ig&xkyWP$?qH>NXj@w*`DpE%7XFV{8 zRW<&4lgPp4a)vR200LnGOTqFWXka9P!iWtEH}P8uGy$L=09FEELIKEu9NOZczehu# z3IsCIsRz%+Q6Qf1+lNFr2#8)1M~uTaY3Sp}-(8ZAQ3SqyBTl4O-$U}KB&41jg>a%1 zf=md9&8hQr{BR0|SbPCUpW4uOca3AT)FOj9K{8 zPWZL>S#|aJ+fLK5UBOp|>XtNj+E3GK)#H#e@YkPCt($?yy(K;h_|rjx9=)69TVh#+vXpAr5@x8^MuC9X(B?&(SH+L92uR_xT@f0s8w% z{I}PVnbo8KC~)>8#_&lFyH~OD0KO4U%SQFN$$_XOR$$NA1=x(eW(Rhgw5#soz4QX$ z^m*9%Uq|Sdh8*g9gx38mPQ`K#cNtw31Ggqz8nn{s*#hj|X}{lsJujW>&}TB|>Qp=7 zIG;>dr(-ODzuNLHlxnCGj6Mff34y+9`q@`Pp}t)}Vv>u@qbXGZj)lR}NpgZfbW0k-Ne+DJ9* z!}%Q5hFYJ=3yH6)_8zP4A=sAA)yNB}x6;dyoZ`0|Bv{;!~*{t*Ny^$ diff --git a/Zway-Bot/bin/Release/Utils-IoT.dll b/Zway-Bot/bin/Release/Utils-IoT.dll index b8d13d4c9285701c488ea20893ebe8ea0f1a8683..eac5354644735a95e5bc5be39f59c67a5c0fa964 100644 GIT binary patch delta 3541 zcmb_fYj9Op75>&f=bl#{Tu9OY2>}uyAyAS63TdbiNN59TNC`n=izrM>DFI4|wusY{ zD~KSqB|Tc8(t=9sgi4{_f@np+rV$+MLuE>FXhkH`3LS$j(6OMdz3u^$wmAOq%-rv; zZ+&~MwO?o7eVZGa8`iHeYWCgGvaTOpXleaCZ3~F8vX5Jk1Y1LkW~6TdBTAJNnxZrwstb7dSczvWsO8`1c*V7*!8rs2n~ zR%2$|wvZLkcuDMs#hxX&RB)sC7n%2RhN*&YizjaGw=6v9t>D;Vsq%!O?QCrH;b9@t z9Seq|T{$BB0S*VWC2U*!HwmVi+CJ%Od|1+@ivP4-%3b`ErTtBu$HNvU-AP57aW7}? zfsL$^;83ivYw@zJhjatmzJ)WMWA#F6(g$uYT(C6Gbw1z`d?cw0r4z-D9(SgcKQ5gc zWa=)C-=JBgHx8M42eWc*&G| z%BesE$y&tlB&}tjK-f`fnSnxKuZC>6uuE2=n!yvW|g_)|~g{ft-qOR%3k+nxPXGl1tB0eo+#&Kqy!rJgw^dj|0JvPI8DmoXFKIhQ$^k1(!nhn(Ckw zROM;yaXhKsqaK(wNV7J&onPi&_?fVFy3fvFmU!ACZ~0sz4d+E%?cC)-rQ@=&Rn7v> zWM&Q4jaNIQiZK@zQ}1ZkQr)Qy&QgV`iI)HUW8desQuD)RVIo$S@=_(t0Lk2V5SN+f_w2h7$8OXu?L-cst@b3trKeh_%U`?}~!t_$~RsC^1 zY^j$i7aw-f^5EqsvS@7xMhHv9<)glf<`;Gg9M&yxM7O}AZh<55z}2L@RpDP{`Dzrl zC7AOKyI76EPlUysb@pgxyF*Ry#<4#3h2m}%<&&#D6i@NCEWsQHjws$s{Mj9%DNZMM!vF?&7)L==CgKS)idZi@K$M zWrY&5POXqAmhk8TSIVTx8vBe2kBh(SVqLQhWb{|1HYL^}|fehKp2}_-2^u z>f=}20~tNs#27`1V3}a0;2nbXf?pO~z?i|m^}79X!I)qRBf(!Q2dztnodcIPIJt~j z-VpSpH!W@d#Tv%=3-Q-^#ppv{^~RwU=}8m$KGbMev%1==!$7+1-NpV!yAf-lW7Bbl zw^s?BFusXRT{9hcV80pK+x75qoqOWBd}Ew3c=l znbbn>sXVqjBbjs%lLnZd;jfEa@&|M=QcA6ou9CYofm|ApbQ}Gg?P_{A?E4%1Q>)82 z&_R0BX{5vSqj*uD^W@uRId7hg7XS0$n@bh%P<~ta(&+IuAw}-?k6<%zniERn0kNMl zwz9p*dzx{s-O9Mr+rjvX`#j?;N2^Vi_AE4X)I)-g+I!ee!U}bj2&}=?T^iI6?JV=N6bo#h&MQ|>=Ajs_Ze#-p2o90w5o3v!{;=AWH#qFH$ zBu6VscMWRJ9XWab?{9uK+VA;yIe8{twf6 BNwxq0 delta 3504 zcmbVPYj76T8Ghcg_e}yHkd#XZ1YnE%-mwGq8oJ_5aO;1vtPc+2HF9wqQRFUmh(hxf2H;_l~_$2xm zAEpB2Q_iU9RFNU5%wMGciAtjrjc17_`B8HWO^SYHRuPp&OYK-ar5rGamWU+-0R5it zij1K`o3DInLdz`h7sn3E%Z>o)F9PfMH#3Iq^121p^M1GxJem`MCj|SZl_Nd{;3-Id zY+6wP{|@#~$Bv?DenMQjqcN9ShCepM&nKXT`C>>yQTr6%nptn=VvE_B<( zWlOqxDB&2c8zy!u`(x!_p|C@FjyiJY3o2cQDeV*1Xm0TnWzVtaS}s=Gy4?esR>7Hj zVjZibFbi|7a_q6>C4Gl&&%`PBy3rdQ?m4G7+D(aN_BpjRr3oKzG;tEYn!8xxP^L(px!P;A=`4@BOboCj@c0=0u6jy zF4@QILKujZB9daHmVivf4zMQKP{sCzEL*YjW}ppM>|Q5extuqGoo=f86OJ39*cN7) z=#PBGypKXUR+XP2bf=KThZUQ{Y$V^MBE@P$HW`9j-@?1%Io3)P+iw817!VH+s&S+A?JTe?=uF47pwX2s5xcJ&Alw7GX{lC zb2iq}^!h4mC*vkp;?s;b{qwnj>GiMK`)KMQUTgUHjr}oa*r?dDejT>IHImtLy-4F7 z)}ovZ_GbTVB+GkVJ3%(uLtle-lG#PYT5!ZTLk^Cof`?4fMlMdLN!Ebxn}j&r2wAge zr#KX+OYK$sQe2>(s2D6+3ytB2xi@~RSSvkcB`^y{i*dx`5`Az*iOcL_7a|^CE4I|G zbaiItJ#z9gdxF)*+ogwMOYIU)lYqXVw#H522WMcYz3v*!GDGcM#}R#z8*0CEdN9ii zwFhkP1ogxCP%N-dGMf~NkD4jG>BX#&f7jwg65bElMJ?VF$+)O!3mwoBkb)m)$m?yvmj+=VHY(Q6nq)f^lec1k z7>JYMOnIBqaJ`F`4tGe9MQRxsu2>K^1eIMhZ)mr`Vci0UcMHtv7B~WnI+GIagV)K1 zi2LyCfY}SITrmpoD%M~xu|_i66KZldKIq}2P~0pcd~&sh;xXQqc{mbkpYgWL!(T%! z!AiqJ_*__n^dtvmMnt^Fr> zZ3LED^1}YZtED50ZGP3$$U)dEYzJY4z;mFB=WZF~CEdJ1{rS7B`>hF7Po@?K ziUlrN;AR<3E&hB)fo00y^=93&HN^7O=#VoBE53P@*DXv(6&!TfgkFsDz?F6?qlxjA*RI&_(jcZa-}>@@y~aWl}14w};b zvpI}$tMV7Rx#&;NxcO*;9y5WzfM!`Gtp3!UhE%%XevkdLtOcA@#>V56;~|d@YrnvH zF1C{WvScjs-PJt*l=C`@SZ%`NB%iqb=Ks#gW@s{MoX3+8}JC`+F15`kRspvSRuCkelz;c%DAs zN9=arT)$^>rk|JmRrH~hm9dc|?ThU@7R{RQ)>ZTPf$AkkqsNDC(6afzlsX8xCXxuK z;H#_P57@Hug7WjVf4MySXX6UC9o@Ka-uzGYL^lk#DQ?4*TZP~AcjYAVKdr+#KrICfaM{m(-YR{U05eb7uem diff --git a/Zway-Bot/bin/Release/Utils.dll b/Zway-Bot/bin/Release/Utils.dll index c3dd46afa666a905335b46125a4a40913f26ff7e..4ff48edc8c1675cbf94844091802b1499d351af3 100644 GIT binary patch delta 68 zcmZp8!r1VHaY6@kz+SP9-K_}%({J6g*#ErPe~-mEEmfge=Qk@PzTg1KPUg;%6nMP1 YYqRKt6VCk?)fet!PY~a1l68h1054u1K>z>% delta 68 zcmZp8!r1VHaY6^P&L^Rb-K_}%HHXb&DwYd6Pi9o_ns#}5_GX2|7aSnj$=q3z0%sHM Yh`zIw_n-WU-Ez~;!snY!vd*vr0N|P(A^-pY diff --git a/Zway-Bot/bin/Release/Zway-Bot.exe b/Zway-Bot/bin/Release/Zway-Bot.exe index d14ba95dfba922a58ac676722dd3c749f7864472..31b630f0f74059eaf7efd17c0ceb05256b8b7a54 100644 GIT binary patch delta 7704 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 G*uMZiY{eM> delta 7352 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 F{|AvQQT_k` diff --git a/Zway-Bot/bin/Release/Zway.dll b/Zway-Bot/bin/Release/Zway.dll index 74599f3850fcc9bad97bf5eec2dbee0082d77164..4cc205666101de2fd4707e0f0121de665d8a18a2 100644 GIT binary patch delta 88 zcmZp8!rbtLc|r$sz+SP9-9PUL{9K;<$4|h+f1iiT;RzBg7dKD2E5NM-l#ONp0wy4q qVPs&~!^X(4=LG{pP_Rqzi@kw%Rv8T*y8{|mulsUFVe^F-2Alvnts>|E delta 88 zcmZp8!rbtLc|r%X&L^Rb-9PULNUb!C;$l7JwD|f9Ni&zPw>M9@E5NM-l#ONp0wy4q qVPs&~!^X(4=LG{pP_RqzjAu-R0mTg-le>1wizghLv-!dc15N<%EFlm8 diff --git a/Zway-Bot/bin/Release/litjson.dll b/Zway-Bot/bin/Release/litjson.dll index 1cf991f6640978bd2037ef8a5be7952aca765aba..769733716f808a223dd5d9cb710eeefc0b864e89 100644 GIT binary patch delta 68 zcmZqZVQ%PQp3uP@uvctj_r~=C_A8a`h0kqwn$P)d&M)2-wVQo56!3s#C-2`QDNt~B Yj(Br}s@rtN#C0jbj0-ov*dxIS0O+|K@c;k- delta 68 zcmZqZVQ%PQp3uRp^GRr9_r~=C>$xpnT$>#1+Pl*s^Xsw$I-7kq6!3s#C-2`QDG;aK Y5nFIi(64*hjh$_~E=zBIu}6Xv03XvIe*gdg