From 8f32010b5d50365271ee8f8b8191004591727909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B5=B7=E4=B8=9C?= <535915157@qq.com> Date: Tue, 21 Dec 2021 23:56:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=86=85=E7=BD=AE=E7=9A=84we?= =?UTF-8?q?bsocket(mqtt)=E5=AE=9E=E7=8E=B0=E5=8F=98=E9=87=8F=E5=80=BC?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/IoTGateway/DesignTimeBuild/.dtbcache.v2 | Bin 394265 -> 394265 bytes .vs/IoTGateway/v16/.suo | Bin 115712 -> 114688 bytes .../DeviceVariableVMs/DeviceVariableListVM.cs | 12 +++++-- .../Views/DeviceVariable/Index.cshtml | 33 +++++++++++++++++- IoTGateway/wwwroot/mqtt.min.js | 1 + IoTGateway/wwwroot/sitecss/animate.min.css | 6 ++++ Plugins/Plugin/DeviceService.cs | 10 +++--- Plugins/Plugin/DeviceThread.cs | 10 ++++-- .../PluginInterface/DriverReturnValueModel.cs | 1 + 9 files changed, 63 insertions(+), 10 deletions(-) create mode 100644 IoTGateway/wwwroot/mqtt.min.js create mode 100644 IoTGateway/wwwroot/sitecss/animate.min.css diff --git a/.vs/IoTGateway/DesignTimeBuild/.dtbcache.v2 b/.vs/IoTGateway/DesignTimeBuild/.dtbcache.v2 index 4c6cf3349efac86a00e0621038399a8f58934e76..9b904c753b8381931ec025392dd77e93ab311496 100644 GIT binary patch literal 394265 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∾t6HP-UE*Dy z!`3w|!Vmv*5Ka_dBqTxT?q(24P5DubY*jm81C=o~;Pax&1`1z<@$3#e!)`=`@%Lm3F|nJ1D?wLg z@aA3&8b)svj_C>ovSaws6hrrND>s)9n(>s06Lom@Wc6)Uod_0c?`+UC%>}M0GGl4a z&&05-V3N?42FmUq<(H@FC}6kGjGg^0R9S5Y6Ub_E2=__M@{(+!Mi3j+;8U;4R@fmJ zPCpvMeZ-hZx(5C>Xo;bTH!zG+4!jLID;4>N@JxbjT_%xFr8a1=Zdg(mJ&lke;)P); z2gU|Hl}ZGp2cPTZNd#VQgN}KgXNfQ$gKsYcg~NDRklIHCPnjjZc@2ztg*Av8Imc3^ zl9u8sbvoYW+=pU$#K6N0>HG~BAwq36Zc8b|!5E=>f6Glc7tRK$2ew5YPPH8-*2>_Q zK4TU=Gr;{YPIO5509n3BCrFsj&kUFcONd(ztsFIzGlNznDJZOGXSRIn_J_+HMdY-w zKk#o7-|~|mIc|3|j=SmEjr;y7bA1p5 z<^ib$!ZV5@9#NS~E9)kvof~LUr3{J~e(Mrw8T}qf0AXS>La4M9b?QiO-qtVRQkde} z5gWH&WCMHaS5!KRWK!X?4ha!gRJl-+rsA7>dPJObG(_0D%q2H z=mJqP1I`Ai*7r&sUv;n4N^Ib6U2oAabT5y=@i8&63cV!<#s)ps_kJB$sjkzKNw!99 zB1#||6jiY`Dy!xrZvsihnPE=Z8nX~KXt93Eg3;N5YiUR_9UOpt1-#s8T*N6WTWo_0 ze7Ip-0JC7%yO5wU43PKC-t*%`B)b^^8-*-AKagNN zKA1qF%t3m68-Z+4Wc?=lT5tFXVJ~j7@q-Oa1KYEOFy)!c$+Z->x*zaalPYwJ#k~J&LaG117quZCo)$a^Jo_m zd#7Gx1AFVYB8cLC_{lVk`8#WIE20+s{}%Iu5T1!aQa$3jin%DTfq5mep5Nu~MG#_& zuvcZhT3CXD%x-1fPZ=l2LFC_s&?AJrc-^LaFM)SPR#u`RK)gUDxu>cjBqb$q&+y#3 zH4S+S7_!)0@(~{KUs%&}U`o)F8H-9J56}ZPhkM!eD+)?ro*4=2Rx{3Ju>h3WB&=pe zh!V79Mxm133z#iv!Be-od&wdj*xT0@rUQJ^$%Ig%E%1*LQPg&MwKZ^;?9&O@u5wc(TZUb-Y*1i3(+XtSbZhW~HkI>dFWsk7l=KYMbB!LB%Tt$llQ;{| z24&WtMWhkF);l_$oQC*c8YOXuIs?uIUDo$&72hNzJW(X}Ya@gWTC6)aE12$v6OW#X z;o=w19Sr3*=%{i`Qio^5m`Dg4v{-j*QFx9Ik5f)z!mTA2$_7o=^%S&;;p?y%tOFQ8 zn3jvsQ__VtD5zjmBn9j@7Nv}lB1a_$$_7mpjtYBFlQSx;&;|t<5zFeWu<#y6k36{B z9w%=aZVqFw%dYHu{AOehtPT1mOQVkko!+JqyEBhK4s3%$>)!WbRB+c3-uL{Q4ScOz z`31fyu`I0o*o5*Zq6m5JCX5V`HK<>t#0Zw{E=>Z01q&lVy*yNLa6OU~JIy zi>lUnnjTI=`X*+QTJiI%*`T_zwFKyodqaq?&n9AeEy>~%RAlUT)@@#5o?VL)%|_U~ z^r8~jXDoL1bpXEFuM1-lE}=v-OBLFnz`pL!kpv+?LCoaQInn)15R#Vi_PomWdz}{c zqzGO-v-OeQ@AH5qh2`yi*5kB^C7~moxLAldZTVm}s9Msv$%Cd*Pt#c-fo)J||NLWG zLoUPuC(@GhPac#Fn&xGYjah(-Slr?+=JGG@c-^eGzi@mogV-R=x`LOWy50AB16{#O zmD#}G`ht=;j?YFDOy~m{&E2j3Q3MzC$DAM`2{*cgKf;RTFs#;E|YvaLzDHWk7k-E zN22gE65(%VgUS&rzdJ8!*~zU*+sDlGNnjfkVmeQ&79%s#A2(Mww;>K>uiNwC$p@2{ zBYw&%R>cOj^HLO~cQ{SRKn4$8$QYtzgLq91~44SI2m?+)~bhPVNw=M;p{62P>$#KRmxfU5vVVhW3l4EwDg z;w7SRhWC3Tk72Dl$WY2AGA0M0D;#Sd$<+O$|&oq=|tl$jF8@X_UkyOV51$OQYh_Tgw*c#qf??r zID1NJbRZiPS+@_Sk;PdhE`U>IHt@H8jgZ1Iz2^!2JRhtCRhd;@`8?C!f9K6J0aSvb zj0~`@r7HtKYe>`5(}gxDs8EVAboU@GZ;lj`05&M8a?L};Mdr9>So2tB1ApsJd?30m zcy*D_Jv(NICwgju#JuoHuakbJVP6MPF~1i1DI1B3ze~lEioz$PjC8X8K;V|wpN5Ci z5sybE9tgFF!l1JMyXKG2zI^ze#+HugP?H2h<=6Sp2wo&jsT|2p&Zl6KvMfC-Ba3=*t#M zYRYrp`Yab0@nV+4-xAN_Tu)0v>&AM-lVZTA#(MG52FBJk7(|Xats9)A(}j|P!gC{| zgIUiifJlNtG36X3BEDxzB@N~0jdklBV)^mq$OkVq{=!{Y=d==udwKp_m+XY$ps!&s zBzvmN2L6@IAHY*gA+9;9^G7SSL4$Qm9PxS2n;etsF6<}CR~tB6f1H(Imzw$Fah9Rn z1|9ao#__!qlVTFvuPYxUriG-IM1|uJQW?dU!?<@eJcN@> z-TC;+J8g_+(}9xXb}yP7!3F=Rch=sC4&PM>Ba>W zm-49C>raosHN4IK&CBC|;?qC+JE+kvZLpA{*tgo_8 zl8)!=~`C;h0yC)}ucIt14e?B%)XM!RUKQNV)rE?qT zOtqK(o8gxNqK|^|*LlE`o1?=BY`Nj~ap>Q@F`bO26Dc~J*M)e2^jUDVc{vQqD1sEU z!J#)k3MWZBTm7CFJCA`F;)fQHC(dKo&;@Mi0{y9$*7Q>NQtMdqvg1-qCZVkQu*{9&!L=%8-`zp`2;t`-gQxqRl@-}o{ z{6TS)00S^$bj6y$8LS|L%K7FTgsxBv$!Z|XbabBQD{qgl&**g6hc`H}^C~ac1}q?e zDlg}08Dj@T0R&Y=eE|aXorD2uOCiAXTLyCIjTa61gS3kxNw`Z5NGX~aK4(?erl`EsBMTb-@nP!P_Ug0 zmYNQr^D|eo)NxDp-K;_&kxYO{=mf>EO)9l>&`tpO#;4()@j~fjT}$ag#LK0 z?2~i#l_AgAk7@phJv@;k`-Ve;^W8ilKLXLBN=aoGccCTb-swDy@@&=lMoO+6T>ik= z+Y7qfk}%HKc!{Q$T$=X!s#@|!h8sIl4&Ca7r*d@`1RVt(=Z(yG8e2usuW-Q$f<@x4 z$jc|0Km~I2w;b)S=#iBhg?qaXx>M8f!ZL z;Gv5_*zFC&cMkWrwy%8W@|8fu5m`{AjU`7S$L2g@=^(=S(!Cg6mBuIB)Tp2F70VIx(nt>`oXaMGj}> z(LhmixAc~_l$L0C|5?kZ`cZTjj*jQUa+@_m2>wm$2-37a2M@O+zBK;GE^6oF8R~z( zX#*j6d-y3$JKFa*g>Zn~UpZB#W>`{(hU{NEFB-l)n_;jnaA=Gsgi`FDfMAAiuqxUO zTnKNEeGoOP^?Jiy6R1kDTr;DLTQ@)ZkqlAVhkJhBK9TZU_DBJI@qo&=4j(2F_zJ?e zxhUeu{;54YT#R=fm&OL4=`+WafBM`wsjo+SXi)_F#e%C~TWw>9w?RX9ZXt|Q4^*uQ z4}f_NA&ip@%qya$j1WGzAkk4>kcBDiaJv0d=N;N(P+id*`5a7pk2jIw*0~2(AQ!{q z8o1}PfFr(SftE6;{`GV75qxFNg&@|?p!MlF)stgrb-_uNWJUQCD=bkwUl!Ac2#=H( z%pX`msT+Ee>3Ct)hY-5T>yqF)@8}G8jLU-iw-yrf_s+|T)35_sLBO|baU~G^znEJX zR3%2JM~{_r881Xc0$qvW)^HGbE6!<|C4pksjX&x8{T^uRup;2Ou;|J+ZSW{+-Gfj1 zO8E10b=;eT?4-zS&4y#CJQRq&u@1`kKPxrV%&P8=AZH-uO;OGhq*AO41xG4js@`}x znt%b`-Q(3WlBt|dfk&l`9bUyOhdrw9b;V?fSK1(+{dy^$8PL<$rsUN;jBwz}Z7K#N z+}>~y4x;f{S!{NON*b|p2Q?E~;}E6?X!xKEmK?bKqy-wbf6~^l;bNb+=H?9{EPt^C z|AtMxm^M?EV}KP`V#@1(a#MDF&p*!Se>j*%+nE$n%Fevao5;wBa@w*1Ic4%Mj+Qd> z|8BWqOq_Q?grm`TI;L5#t9uLbOlv5^xpHc~$~molFs4J4W14Xb@K0;v5;Z}Kw44@} zhupca!X@yp*d5exc+wk3Aa9406A!#pI}nicTsU5l4c-zB5+DDbUBtT(aac0>Tqt8= z-Yas}BbQ4`K-q}Cbne7p7s^>Onp~C*Y-{r|dB*%NpO=e)aHKiw4bg8eW5>-wQ`MFf zW+i?(XFExAne|=nY$Zq6H6TswOs)t3X~kYO2R|HOizp4?%0MKwpQ-5@(USLt=N8wv zB)~9q(gW!S9w>^Em^b%wn1%}i>_WVu%y5>o%`3yHBMPzQAo?scM;+Ktj!JNl1sr&nH$aG;d!rL3q9TKvBUp0nSEbJP%BYg{WijcISYJw> zucWxdOV>WXAjnSroZA9rLDIuNQ9m=|OP;UH=+RVK5F;zfZ$CN$cixoobFl%t#+%4+ z$ie_JUHnh`t^FJc5%7XJ;Zn7l3jm(GpI2-T`s zKR-!Hna87?*>i)prp;;vd*t1{GG;=FksGl-bj)&3THoLF%yHN&4I| zZ&Armmo$O@+Ia^JEX3e|1G?O}ke7fm0AL`#!fO&LwUMch)JYdl41m!jx(hF9 zVOZAZStxdRb*4|^c>&Nmr0RrJxz(j3#YN8I=%~xQoGD*N1g}3MKkAp@4BmHARpLrH zojV5^SViHm7r+)V1Ua-gmn3R8prM@r7CbgYh?aAq&=D;=nUq;HC?jX?#B_-sjS5`u zzkfiNZ!EqE9G{qQ)+4)9`(TSj9m{TQN5+Eq3)xsbBLBkHE1ba zR~S6c3GR~#J=Q=MnVPskqHXcR!$X{BxC3^S_UuiQK@1xpm=myz6-RXpoQLxnTn2C% z6pg{*5s*(#)r9*Q7}dFKiC7?-uo4o0L1IuC6{;WQ94dz4=>%16c)Uf%Gjwm2Lm-+( zZ@KFdGO?0fQ|Ou3(dY>HMT$@2(u!QVPTy&O7unB;teWZiXatTUM{p6J?oAR?6TMzB zT>9;?>IWZQBcy&(oJ4jviu#m097R1)OTpC;9bpr%FNp#WzIS7Xdhkm3FsJbwH$L8F zM8u`LpuP6qpuYx_Y+iS;nZj%BHI(tVUeC_mDcvwn;$r=xW10sq!m#U~7wCyT%7B6AGT=TG4^4vS&4;`FN|QSF!*da|tEb_Rp#1TS*gK&p;h zm9qDGG^AJcaGD{4Rhv|$9UqKBpW-Wp0qgmv)v}s9=`%~qmg1yOWdG_CJE#3MjX*UA zNG>LlCkn~E<%+XRim#l&^2L}o!B%`W0kxjtNuULZwo-1xF1<@syUM;(^!~WD%}Lgw-uJm03OQ``zjU2)EoZiAe<=X zY3jIAZc@k8%_oZRo2MVLgnghmpRIYSi zz1;JT@VPT)$3^uBUpsQOWvq~DedVeBCYN+83tf@LoWBYMf&4w1jv+`A7&@d;1+5-@ zd1&1yl@6#9PGmb)^sT!9BaI)6i+ zDB)7d<+^c!@fzsujWuXZ{lPbSa)!w z;B7K!86?pY68Zj#ks-twb7-lPRD00B%=;taRBNww_KBX-`nekG!hWYL-i0d?W)qp} z9jWymg*ACA9@es}(|UL4y(sYH}QnwrqZ*A-ZL>)HQZNBX z_s;1IzW}~QcQj89e)<0XDZ9L=RNLLT0ZQ(GBE6tn_$3g2{T`cTl^PXN{nB7pdZtfx zh)O1BKJ{JcDJ|7Egqgwa8JE@D4C^x-IwtB$Y^uG;l`hdPy9x5~I0UYCc!o%J9K+5I z-75TLw?TB2;+b43l_GlQM82xcRKa6~*vn(MQjo`%O68YMX?ho|T5Kppf8#f)KL70VtbrQOPFwR8bnM7-9CrZWk`h!T<^9$AVtP-R|{9qN}QB(#;{i z_+_L*s@l*SFy>ZjND|2@RvgukWPJ>&n^bzm6)g%|HC>8iVT_ZNZmC4#htqI;CU1gN z_Z#a3%6F$LPEh4a;BFi%PNnM&dl9cwDxMliSHgX%;@L0y(+w$=b92}0kqg6$Q|YFF z)Ln;Q;1nhkLVhg8@=l$G6AVC(+dVq`Bpp}I*uBJ1Q>jEj8q;b;rAJ-ta6kNH8pgup zUU_#(0(R0AE8T;TI&SOQi@-mc?Fp6MMp2g$#C#R}tW@>J-rxy>3@M}g{950Dcz?`+ zTY6tGzE(bSfKsp(-XqVU6{k{ln-hA#M^a^Q1t$;&J;I_N|pNku!~XmaaX$Biy@M;f2_>cNOC#Gmn3KlI73fWh)z3KoYwA_#@=#!J)V3K8mHGs0cW9L!5k*hwbyV%f#0U93 zZwQX~T*0W+7A?r+4=R&cMbi2AmolBwU2~K&XXK>}Hy|^HY<7u4S*fxtn12m&A_<{c zt>EJG>$=cnX_%|s{CSr!v-I?~E6#GHmEJMC8V7GKzPKv&0vF?}qaZDK4}t;9)k%zl zk6BS^;w=&}hhLb-A-vAOyYKZ_==rMWz3ftrF2B`3f;$i>XXvoa*%@X{9%fkR)#!9!??Q zHtVcXKeS}mtaPGaFX)HHG7xe1f=cc1iW^(=YFgAY(eZW;Bgs2fJ;vPTE^YL)?q6g%B6)cJub-uKK3O)^3sE>ot8`G;VKhyY zMOs%W|5kz484I3z4`P?%fI*=D-jIEJLVN=|Ec^1-E`-y@8wCisgTFG*b*v`;Qm`!m ztz!Gl+gkxBCG9P;aR4INaPo)3_% z6g1sJ6(qW=h2T}Rzg?&XL;q{Jup@~=jRRdB!vm~ScntOKIGT=d9P}>=mGy#E)LAbm z)f>%rBM}q4oL6J_GNZOARw_5&Do6?IAw$D%IGk!E@Tr^Z#9{&^G-PVv2Zgm6qKy?K zlZth~;On^A%%=f+RCy$3+-w>chu%!{(}@19T|y;;`#$7Z(%6X~6y{`bH&#$*U51^; z8j_uv`Cx<>Gw$s)wYkt{)*HcRvffxDhxIq%BzS88>ImFv9l?!k9K-4k7;uL50yr6D z{4k64#tJi8Z>%9%pBY>u{7mi`YcPWUO6EN7!buWM4-iB7ty}CI{M{3bi?J2Q;h@t$ z+nRun03@J?i)>go%}fKvlewr&0VJT>GwPxI&3CTftgWv$o$q)j4qRA1cRHxnKN zEY=ji&W^~|b+PVlx-I8n_RljW5NC7FDVGN+5ARXjpNIwcXAM5K%hH@&r2Hq&!|b2W z^RLcZb6Os#*;AaCGXti~ncTur&~aYQSoC;JEWBVgktuC|bEZ*D0sJtr4EQ-_D-K-T zQ1v{h(3HdpLb6W4Dc4$Lw7*1XI<#G0fT|?rB$0&TvSSI?hHd=s&@ydqOe$c;6c$8jG~@+E-r8FM8Hk8gMPuM1wRFknXpnk~^zUjO%yF-d}%2E7U0Z`|?bD=iDz^WXx@9}m1 zoeN}%|IP)LmE$`XVBy1c@&s>6;_qA#23+`+;3nv7Ksh9x&vEmv4VYdeY3g41LZoSod ztyW*%T-|6k>aE*wDTEL(!)8ISRRC9;xHV-!YpvC0eWO;p%~cZU2LV?L0jf=ZJyWB; zT5Hxe*IKs&cmofLI&Hje0Wh`MZz%8zXGlRj7ku-5WwUU$u3g`K(;G-~T>K^Qjb9k1aW=E-BGzX%n2 zC(&Iqm@>cwfL6-WrjL)OJ~~_H?%Vkl;}%*NcW0Eh&5b}=QtylSvCV~Zo4XGeq$rP* z$1dF`g1K01NWAu7IKI)Da} z?q0;JEeI0~FCo0iG*$su=T6v+^n;CLZLPMk7Iro^{EgL(?pgznmW=X#z5QuaZ@J!?WpLy+8i#`yJ#^jGJd^8Gq3 zqsU8lkww_~dWOO2N<>2eFkJ0l&&Y&KYY6sj^Qz3i;$~W8HHxI5QXE<69SmLB59V!2iE>VH>=-rsMFt!*B{G$NpOv_NJYF&;KAiqhRabZLE61 zS~pzp)V*~t3EswK67Uun4|3a4bQki80_z|hCU%AY zytzP4XKxNhgTxS`xRiN17CyrQ5XbJnmD@eMtN)bn=H`%<`H;@LW${Zo}S2I+q}l5;GR4ECIsNl5($9dhK} zp3Oz*5N|ocF~<*VN3)oofIHXD#X~?5_AB&SVg}pqD%~cpTtKqnfp5wTWAKFeq&JRW zjtnP4F^mc8Ri{<5I$aLT+BpXaH{|0RxXx423ME=6aA-pZbpF)dQF)(76+YkPRH(e4 z1-=OHWji|7cc5G1{i<`($h`M3MIXGm-Ri`!qq9eD98cBQE!#I$aIP1hC9 zJ5+*@JiHxCg4_w!-exX z{_jiqpw9Q^paeNduonYLfCu&RjXiLj?MEg=+}$(Sz=%~f#;TfgVIH`1We!Rs)}H|- zcW@>cRC8Wt1`K*;?*bakRrexgXLTNC|2%7iapt|Mi1YKlCf$nYYAkvlbc@F<=obGG z-Rdw!yX6;*ZlB`vK_nq;^5TNmj?NpIW3A~NP6yJ0plDWmqnODBLDf_qb4L7p=jogm zXu0GzXPWzRtIdBgW~^G=?Dwt21}>b!;Y!aR_u#2rG)&6SRCgiy3n2UbeT<|WC*RT# zBx!F96&F8*cs+p!*XQ0n*xH6H_;&Igp;nT=@KP#(u%L&ikR@Lc=9T2HxP3hWsh#|d zrLQJ`!JQr%F_I7I;(bU&)thL=Zzg}mZGLtPF^J;MBphT&`ZBz7P#tI=!@sxpZ*q_6 z$MH|qXY(oifU$c5>6b}Bs@vt02y_?@MwrBjc~^b`Ke1n5U@E~48Y6rQgPJUPP<|y{ zf<^@nhlD?yE{6wl@cHS~=L7usy8e;B@?#(2znFXipq@!VU8TDGmPcTC`Rc(Ti2S?k zW*dFK0O6!C8hAar$zIV5(9h@Q2nCWtL8@g)|ECnD==k6kV)&Zg>P_}~QmOS)3SdVm z`!ep(-0=t-d*lk-OcCMVx^mAC`3PK}_WL)+R|ccW84G%qlwqA$rFy}~D*1rLFD8G% zgSPGD4?;cp3ySbn>Cl%6%n{&%0W7TgaS<@e`2AE8Jmq-@$1Q7 z`~eFdve4}=`JTohnb#V`+sR)szd2Su0LI}V#QJzI?1Se4Hn^#jvaMA4fNWqc!@;%( zFY9CxR((tUne7ROE-6Q7H~Gteml#MMtzkYqZQn_YbFt9^mLv32EVCy}MzrO!)%6(r zhNFrgPqIJptPjqSG!376ciaow_#gHz0>NHRebbP7EwAt=H~Im?L$nCVLZ$;+nX(f5 zmb54;$u3!*kpuu+e44u4!T-u8pJM~wW~!zf{g?Uo9Zsdz(o?(;JLz*WFMm$W8V7}j`R zd`D%VPm%~?I77j!vOuI1hHL^D(t#xUv$7a$c0fE_e?hHpiqANdELc8V74Gn{hX{ma)}0@_=u|aSAjUIwom) zD4ONQ_mXHxErqy)*h#{5rHqe17AMn2DZVO~AA-DWXgyiaFB%HD&@y2q#EOX?Scp@$ zf=xArjQEP7Lrs2)a#ZZ_IsIczkrY3tT#4ljac&=0%hJG58K5LTtg=hhfH3Z^l!k zS+8&SL9NqR?{ve>&8D~6-P{c8t&K)=v)O4joA81osC#Q`-L=(vx7KY!g!PSPD}bkB zK_dvePCL($fjPi|R!%S9#lHtV)Dz-^R@Nbjd!7jZGJ)L6YhAkWWIZ(k-Xq+GqbH`R z-KR|-A5VRBcJg{(m^SCC(RpO?cHUxd!cyLac`wMa?wlzSiOKV!&~Egu>t1C4lf1tO zW~YnHV$7I*F__JJvQ?Q~z)YCUcFZ)@nD3aGu2tL+bm5?d{u^*Yh1ET2ANnI^+uZHl zgXAD=(FzFE=P;-de*LnjcjIsm|9+hRog9?E!9Q@7T+N)U>GrR1xE=Jqh6~{~Miqrj zy;ItGzLJ#EjW|kf?U4N#FWOxQa_3R}`l0~p`&;oDJfno0$Y@H$JtvE_cAppD zuffq=9Qac`Fv_Tz7X*0UKhQh)swiPc67cnCr{&e_5@Z7ES0Akf+&;$hePYL7PeWmN zI|^=h1*1}7KqLfPNrN4<2xu2hAw7%)X=(~27jhQ23x#cBYJh-ec)?LeNo)cQC0r5^ zhp{)p9$rpkfdzYBkCcR$cp;o5AdPl18HkZ$S{?3vaEJ{(&0%o^irbeUgPqbX{|FCe zLXRfpGdlFygvb@c&%xpA)_CmEmi4SwAyK*nU9847JSXJmG%?PsK=2H4%9N0G153mN zPwG&~wTNx8I?9(}6<{4PEqR>?Y?(xgj_>7<;MF;T>s;b(=&;vdy7UoN?@)Zz(LZRh zQy#*L3CvItC5fpNL39Sggp;*(LJmN$V1%T;vyk!7R0H_|CPo7odtr4UrM%d>@Mr6otClbW&FMM(C>D_)tcvR`s+b!%@2LQxz?-)9j~+M ztu|Y=Iy_7dHoTEi{$lIDzYEQQuNT7d!aOMF2i5V>`N*jAq);j`K+ezS+*=J2X93lZ5AKz_ z5yUD4$18H)YeUFFa2cHlzff>{QzHDSeu%OrjlD0O5zJ81bCfzN;yCIBoz2!}W23$q z1YWql>iqFTrHBN>LE;SPjv_dRFHEi0#2z(4WcSTv8^CSQ|L3LX50WQVv8%b&EH>im z>mt=Li1;uv@*%H^4PN|iDP9~;AmZ&gnD8Ff&rshpQlEjfLH1dh6>tZP#+0LY!9|Wn z4TxjwQy^Q%Gg6tr*r4urN)77Z#6QoN?n3p%L45gz3_)2=yCFP$gr}P&D8B{Oukz|dcK$+EL2c0dNtuN__CAfq z3(~odb%?kh87DNA+o0&zO08caNxWn$MVjzM!!;Y`ljw3d8>Ig2a-@baghh@+cu9DS zHt%z27I4u^O`&@NHkH|tCT2#=sAhvNP_`<=!`d+n|3^YEd&} z^tq4QHC&B=(rrFb2?}u1-!_jmYt{x?;T*D3UXE@D-41F+Uk+Xpd(KCx=YuYmNc^$E za!&{se)Wi5)lH|{G=|9j8LuA8quhX7iqtuubTQ*cFd>aFlAie~AF6Tc?!}+~L4X$V zAV4{Tr-A2seh-pX6iWdroY}28=dB;xptyAA$SHpF3UV6c0)F!fW`^y?d5QZ{@7!?l zCYb%j{hpsOmCX(77c)2OUgUP6LG~AScbfCS_zd*?N^d66ce;+tbPK zXXlimv}@`L>Rg*Y+pJMR`h)XMB*Ug%m>&!c^^ExU&W+9z&vED8{;E7&{pxwA)p<`o zqv8lyI-{KD?bkx5ig(ODKIt=oQCZwVwg7LlslPB2S)nHG&J6=Kx0&K@K`$yBU>n^) zFHI*C=K1q#y66gXlLxx-;{4@w@zq|~4|w5IteJ#GSmB9nZ;a*ge*SrK2*&98U*Js?y8E`_+I!m5yzlYN(*#}^g=4M4vuG)%cV*h=m&k94ykMyC0P@Y@Cqyt) z2AaMPwW$ofLmw!n6z6|u45 zSZgJ`62|a_LzY&=D)FamS_wnJz}F{t2Jq-mgZ&yU7XEGpUgjVtz^hMp#Ci@Awca&w zT)Y6FHsrG&@fw3Z<1+x^di-Q|1Re#4GK}brWA)^RQ;4Rhq4)THbgF-V6{&rA5j!w1 z?mlN6Axv@!=x1?L5r> znHTBINS`4ULUv4v!feh210Y(e-Y@S{txYg&t6N-~G?G_z_}((Bb_NRZ^wgNC%;i-2 z(OmV-P_eke_PEA7)LO2yFKeXK(0>kK!y`A+ujQ0oIf0jQ5NwxRale`abQJ;$L7*>` z-syIF5JCW=`^r59f!@~J+2M%7>q*#{P#e?1zpjHb=q%W4d0^=3X}}G#?%~5X@RJt% z9RgjDtx%59w!n@=FG74H2ZH%RGZBq&3O=kQjyU~+017)*fE{>mgLutoLjt^&Muzi} zT0qzR#Bm&(Q#h&in8y5dbE6FGpzoa!JHL_xCCc3y<=l%sZ+5B30TD@;IUKtgNRT(u zy=qL*I{a1wDis}gg$z#t*nb%-k#CYz{_Yy$MuRg0zI>pCAv@g}(yIhkRZuCO3t&^P zCY|owXj7m7c&j{wi{df)F3X;vc!&AJgQ^=%$Lu|`TwhSmdfAHoUQcU8&fx@TXQV+$ zMkWyZlc@$GCqV+jCV&Q|;mh#R%C%N>a`258yvNk1IrNo0IN1ukQDz+g01P*Kk)i;| z5!hv7q%97e3@QEMvWqO<;pff;>&gH^xGN4z}+9-;=^mZogw5dkCo2foDa+V8?fOuBk+4sKLF1M zYFda}wTtE=wPa`JYTBa~Q*T+~Nw6fZdDIb|40Ctg+z+cG5Hr+!O4g&Z3eE~Ct>A!%@fS>wot{l93PDFQRSHTb zc2MC}7Q9qu^g+aKr7*Y&@g?C(o(w{0^@w7OAEZd0Zzi3qpa(a8j}gIJRV!roPu$YjpftYaJej)Ydw!W-aJII+rFyGKWJYBrREm z_abY4-S;-uHXv?)Yh!Z*BKNOvG&`GX-Daod4B_CykIaiE!E)h!u9As8FFU-Rd3{`Y ze{{np^2O8X0^Opkr4b)EMnlkVV^=5l7jw>q@;1*0>!XKgLktC%e)$yRc0nw1-zx68W($Gs12C;N-q|e1kjc94bhm?G2LC584&i1hYVzJ z7v{mu4P3~RNxEQLgs11Enhsb;e!qu7Ygk9G7&_V?`JDFW%%#qE3evB1J|6kJ%O=`7 z;jN|@_k2{T+IaT~PvuF?hiL>cz@QLJrI*15OD{Cho56XMt_2C!X%uY&gL=UpKn<)G zsI(2J$u5i3(2=Ya=;Lw-*A5iVfY5RaR9Tb^7FbRYez8CgJCNW8jpKw;YgPpjp4l`; zGly2MsFGAK)So^!#p>vzGjrM`=%vPI<|IfeEl!R;Ml&Z)(u+1qGl$hQI&aTnGpnGI z@vWKQ+tCOQYcyZJJsVP6Q?s#VV=SVl6lh!@;5TO?k{a0A^r@VfO`krHZ_GrY&;U|2 ziA4rbsZa!M2CgrsJQ5jfF)j;OO}yoCnE@9^w-}dMs~VTNpx_$|+iRHNJb$m@Ykp20 z6?wk4@@weqo(ryXobM6&t*53oUkCZ{3!$#F{w+4a^V`+3=trN77XcwV#@&rpc5LKowN}%w#7)Yt(XqXy!hF--H)W6O7r4rWe|T zx#nc9gQ3Sv^KT}bsFFVY=EE<*R%(9{wo(O^t@F{*XWh(Upw_ivn7O7297iC%)@BX_ z#(6Uh1XnK2qbDmBCZ4J+Fm?pLz}RtkO^=wlB&fn-=r1sK)VelyTtAq>&^-vx2(Aej zeTNp%Hw+T|Hg1Isk7S{}$l(k{FSDKVJ;+GVz6#e;v_eJu&ntx*sxK%7;JpGahN6mE zvZvMgDysuKF6_bJWd}iJ)AaDl421qGnte{K3>ISXouiMIr7&pU)^T}}RWfmeQ$|Gx z6Y%&G4Za}lNYZG7xrv=n@e0WEHjz#*}H_=k`WVr2@QjI_W@wVUgTRIM86sN%OSTrws(=zeLq(1^xB|< z0U#nH7Rhi!E6(pNmm}(>hxX`>=8pOXrTPV};6lA?FRGT>J$m!f-OGye8xL$e*m3!R z$Pr~E;C_&yu=I&3LR`Xin35`vA@d7mgI~tXz;r3+iz=L?OWQi&I=2}g5OJB00^`0rteVd=_YsPrtid z(M?#ueGZQ)9&;BtHbs}Lg=cV~$+}#9i*TTRf9(MbM0)33vb4k*sm9k^ah8w34Y((S zq+oFUK%=nS?HWfvR+arvmnx)p;8`r@0%oKy_n@ODWnuj)C!w|W~E7PQ0uCmP#P$F%uI2uQ)7x3bhU0zh=r7K-&glLg0 zdG}3l0Esnb4~yBhw_JPCet0_W!D|R&!IDn`Lix`cik8d+7VnJlV9DZ|+sg1j3J%K* zh2>t!atwBM4p{F?zJHS4>8h`wt?BM#jS3tT@YEr99R8gIT4$BY5(;uNh63YqmK^Fc1gzC3BzmPqT5!USNWD zcpFSPC}UTiRsY6$mAiNZfepteJs&KQd55Ij^T)x+!=*x%Q^%v_8Z^Oa61?^>O!@=a zL%@SXlMKsU8_+v@YY(von0U~Pc!kfV+RJM2>4oRf@SJr+1_1NHN(R{<;8m^S2dBO2 z=8vjjl{l&quOtdAiot>?VBgw~RjzY7^b|SkX!Ntg2BNSGT~b+c`DY7_7Zq)t21Hn{ zV>TWCKowF;K!M&@Pq`|U)vlL4G#WaWdhiOF+qswFzM>9|h6tF7;IVuFAujppX9>sh zTx4il)iMGsdzxGsp7h|s!2oWi#8YH0OqXFT$Yl&}X-XmSX&G(=N}uc%q*zWn!ya4I z%dnE?Vj&fvWjI~sq5)odd*K+zi1FlsE@*tha}fFve2`Dv2RcuZYm8+a-IM{k9F9Ve zutWcBXLu*qck$1cyCbRYahiKtc5_2i7U}IoJ|=5+Tpi)H8R0~A`A1acgaT#c$^B) zShM*ym-CuJnFaz8U1y|uvE*S`1-TF_Ls|DW};oTOxUSs?_ zexOv)qmfy%jwf(3`oS%CwF*>-4a=Pv5by`Gy7W$j{dft+du80getl(##%J*aP&+af zHs8XjfxLnBKEfjL)@2Vo?yvVo^F?rYveD+M^JgD7(hIRrF zH2B_whEF@0lti@bWKw34ni{Sm-Sqtfdd3=YeS8UiXAn%*r3WQo+mNgHj^glEnBh1B zyipHg*4Ev|>;;Qsyfq?gIP*Bky9sB8#5HxQ2xKirqbLfpvz4*8@_3wg; zulUx&=c6Nt-?0u6iJNM#2MW9rCI&tuJoT$<|0VKOwc+6+>VA@+02gv?~ zqWzvS=2k@&v)H(*=}|u=Xs73SBfxW-Ynwk4)Gowv$=^gc7W%f&B{f8FAr@37twraM z)v7lN`)~)x4F~G2c@<2D3xX*)Jf68*K6re@utQG9;y6&5*2k$$`rcL}9c&Au-Gk{q zxu>Xlx+m1bjnSaTGwIMSQkl0%n(v_I5B=TNdH&&ROC^lW zsfsQ>en7dYy*e-3tMY__@-Y@eAzh2`dEK1XO$qsiSigy^%1zFj0{-Gf2vP@`58esy zh0e{nN!^s%#gn;xnl$@Pt{{wqyEGH(tBv+Sa5q-mlCEDlbm3E(xDad2cKZE=jOCX+ZwuW$cPG#j-ao}bt!DG$}9VAbjG&eF){oENs{`f(nV$2ni zNd&+*(>~@yQ8PWr?-16};em2xY6w}ZRKr~v8o~-K7A|vE1>vzGo0{Jfg%Q^)=wZZV zS=?rl9KL|zPJYKuc!*ae__ZvD^$5oimh?k@#aeoBQ8>lP;ZYE5swn)<}8~=lD$Q@Xk?d3bEs3WbP@6YD`hA^{!^3 zm{i1w#bxSYh}|;v(3M25r-yfzWjIAEx4}LG* z2!U5;0h6O@y2b}eYxsbXOrbK1Zw+%i70Kc|oPt8pa9v|qS>s2*7fh0OoS>|}WYp5~ zG_>~(1!c+H0y0z0rT<3F(DY3Z{ZXnuq?I~)FYH71IG&8VEN(w6fLpq+45DcOf%W%5 zApl!2CNbADvK5WS>wJCI1f^ifq`zLun-g-jX0>BkMs2({t1DE0X98dr=GVZx1a@_} z$;B%KJaH&pAi(In{Agn!X5O|r%q(1QbR*EanfcN2=RwJN1NatOx?a%PY;86+>YG8} zh3l)}N?$!)didP57mX8}>CCTXgYKU$n`|YxvokD0F|S~Q*n7(-mU-(qcZ*Rv4sDPb zFPlu1EZqVW+92+ai>FXj4CPfuz8)2z+)aXI>pa*jqGx1;Rc;2&qI=SO8LUg4B)qoM zFG4JV>x33ks2&iZrtsY}2u*|AAoS;zFIm<4kq!^;n5S@F6&nOc%On`(Q^z=QC5bkO znl6(ljHN`DZRdCnX%u!Twn5;@G6}>dxBRXW4Bq}YileS}X)FiNWw16#tbX%U&<58V z(%a3Orw(X?xMheL8GAIN;pT}Ma}^r|f3k!Lt4EY~f}FW3!E6xLTLNLsPt8$o8x&Up za74EvQa-Jo5cL{%M+trJ49r7ig10edzq(vfGqLrZ@qBu#RkDaCfl#>soJnPc5Bf!iRozmzfL&tje1xuXXVHpp3mN+U*spMf*mf%&drMlBn3 zSAY69rt)yir~eG>UlbAzc|vkYOu^b9@n_X9MtmdroaP!f$gSQcM^8dj za&bR2+vL)qHVCZV5-xIRzk7z#BOnC5@hA7rF!=#WItMAQ>m76+@B24HpcC^^1TfaM*;am z$ zmvb`w^HPqMlK$$leNAQ$zMD-FW`iH`@}_u_RxHP>HW_jP)QKzSXt^BXls6VAp3GiP zNSp+;LELhrZ#os)jFW{5YJd*OU3UFPT z&-p1x8{}1gE=iEqbLQooOAOF9$gKX(TFJ?mb7##VY>-pE8BtgcGk4WywbcY}gU}_6 zo6IAaH*O5V203x%TRV3#zzYTle?SKf^Y*6$+90m_M<5($p7k*25r_n`K~(h)%@SYq zW>#`3<~TGP;cbvw{Z_zH7fBKm>#zAer2*OonM+%Pg3SEGkxrov;(n`oJxxd2HKv(# z?itS&^Qzk5K=nI@lG8G0$KVh)$XUW{O_Ed&1}uqd&QV@ubcBaY0BD1_>aTev&iv`N z`8|&cW`nRLOhTF3Gj9?y2pi;7A67sNfQ-|e++Uc(3YaU{Aoll5*(|EcNSZ^vF@>p4 zeK{LO^&T>*tfx61G76MVRyq4c^|~oM{#3H5=IEvp$Oci>i%-B;OVXO-C8L7bAPilT zF(g&o-q@@+HrnoR3UM3T7!Sca3gh-5c|WX$?K^k&SLM=POOVPU=}F2cxoeSF4~<%< z+t_HXdqHD;Eo?L$oQGv7E1gvK`%)28NwPr;8sbaPGDhp}Idar04+2z**d?2!3xfxh z6M+>OSCs3&yu7zgMcSUBYnkcRspuiA+Nqj5#m$(MmcVcg0h!I#sp#orF72p0EBR~H zr;kPI=+nF0R#?$3MK1by{QaGZj-|Ps<|W2;s=CO?#RMa7Duu|6ieBC*y}BZnDYIa0OtOmnfO64JP74)12+i$SPo}Fr2rW>>2B()T!Enb{68097U`ibuBrkjY z2p==$!ecU*|h7EpKWM<1n zUQNiXM(>h~EFVVGr*ux21{irH^i$v8+SSF&^BsaBFy-*WXP2 z-HTn(^|Vx^cj9PxYBLYH5dsu4Fb_B zQ-(lDRWynGs9z$ly!6V!)v35p=|m=AHpu*2#oci9xtq{gWny+E_HGUjTrHcs4UXVp zrp&-wNC2-q(ACLhsfTS)=T~EB*7C|bx1Jvx7k{2Y_6?0TI=1_wYpPLm3J#8OcyAI8W5`JvyWpe%o>l>*FNO@O`S>fU%Pyxbo zZR3$&h@$-wiwp97107Ii1AFw~n>8}=sTUu2rvBZ2=*s!z!sjDMs0L}`Yi?7WR|g8b zGPmF}!qcdDvtcAv)OeBkwq9Rvwu07LYi)D2)!b~5b-g@QN8xZ$!XQ60(H6|64Zuo} z7i_Ero15LvYOT?1Hdej4%PCd{AvB&c!a^CPOcsCXuI^;T1}YyEfzfF!2yuI&4*POZ`H`awMif@aN`cNB=v;z>Ag zb@h>HOYWW135-)qifuK}2glo_3Snw68m`V9AW2~PvyN4rN#J|K-Rq6Qes37E=YzKl z1rqu4qhmF~7{?JDQ>NqItR2r%T z7dxwsZnN9!)@ng>)oXZmEf+J%5?(O=Jg5?6WtMIgawr*xy>L9}#Z1vbwacm>eVRL9 zX&U;yk=J)Ymkgp)wy3P$Uh*zQ`--|nO643K<766wnm6bLK|eh8#v!?8uc}(bt!W5q z-EIOwv-{oj*Al}{DVLw$M~86Oo5Qg;2``5+yjwc#4MOJ!^Hb=$Ny6uBGF?net7N-P zAPM{KLT%5=!ziv_I>&kaq_QVx5*S0=95YF&ikPOED4Lw7rwoCn zUQG1;`a@;Al|g~rYu?$-onq9cYZ2*xWDkkCjL0Bh;>rbWN|RU75YAD`+DN8X+SiVPe z9NZ;&R9|hh4}!a~60`jJl|vUkv3DQs&a~GLFcGz;r-@>BdpaJ&2;71#)tl@7h8OycuoeWXn@&R-rId5?mYz2^$@+Vd9v3-pFI36dpR*AUl2>iYsd09y zW2a?AA&Dqw2%g7ruPt1W7R#(-y%GOG5* z;x6$H%+fHPI6uA!rp^A@r{UPAXEnu;5DIOudvFQ&rYk`Ys9`PzZb*Ny=A3V%m}zfK zCgWabItknOCuXG%wP?OfZNExYupz`}hpu)oVn@#p zvFm5GVk*VYuVgtmqNBH6w+#SMw7=)00pq@q9 zmEm+CKffkE9{}fuN9->!UXeFB*88dsumjHw#^JTYcMoM7D>}&aFbohtW91WkEnI^; zfLpuR@R#@(_SY-m>kH||2z3vs0$Vftgs?A((qw8I%HWWA0uIARp)7kr)B`bs##>qP z`g>u21lHdzAB89=mHxOl!e5hvANKo(26g2gSVktmC61p4`aB1PF62`+Y~yR9K&(nW zvRdsY1rUU8oAxI}v;Ii~{|Ya|2vsUFNC4J-k(clI(eNrTGiHBd(W|_OJO?m9fEim^ z%+Xcn#4DnW6Q6mUXvn?9OL+hnt?YtcW@uZ~{%A7bl(8-lcfn&QQx4Kl@YGIrF+4^j zw0Fbd6zjfnlL?PD{}&nu<&U1cLFuzXR%4%F?c!_f`P<2a(+i%y4Z?RyyqC~xg#_zX z9EXEW|7>U2jS#WTLbd2Hl&<=L>t>{I`fN290C0fY{yUCa2oKs~=)m}`Lh!ha6oVWE z9p_t}-mp!Msdx$j1u=s?YGnv{C+`T5+LcTVWY12iN@Nd^l%A`vLKMlqUd%&)|c1y36aoGc8U?0J)8=ZPER z-VuJ=f!m9NQRq959@2T1N*}p8?f2=o&+kXk~_Eh&vAF`O9IqH-sGor0E@iO}cp@RUn&sI#qHVQAmR;7#)s7 zZ?YA`86$8$k6R*0c;}1C2IqY7;PM9vMvq>dqMAmnK9&eOq!oz(xAc=RxH^so&gc2D z-}wTVNOvz2#1s2rHw2S_A0h}e>pV%%p>{B%cr-dZ8-+1r9RBJ&@?LK^VO+h{i+dgD z$kL<(^vlxV*%>7M_HC7?xf<>U(E|%2SBJ&Cy|m%G<6tz8j96 zFNs;oxCY2}ab%uk+`@ST(OjtP8SRr`!6Tx+^BLH$oX=g4KJvyx=NX|_V^wGr6rstP z^I00C&r)**3}TAeSXvR}N3pHsn!on?Q&@m;oBhlG5w+gW6DUeopZ^zr()~UJ{bD)(>wLj+ zJ_G+C-iRyWhkri=-|_Fi1pj^x{{9U7i@1Ci{zce_;a`OPOHlSX`2F+n^EmvDe0v0b zN7ygGzlb}+r*TsG@F>825q{u*R5!1lsPkoj!|^RMwn#JLivME$$9P+RAAVnCj(id7 zeF+hU|9i6zWA6O={fF-VrTd?`|Ji@|)cuG5?4dus|GBOEpTGae{msN4;+6X^ClD_a1pOBvUgZ#9x&LYc@hU;ke*xk( z4sqfBYYD__1VR4=h_7;pmHS^!Aihcv{~vqj0(VoD|Nr)LIp?I3q?>M%B==jo7ebOG zNs=Th9IcM+hTFbN$Cpw~(Ix$O}Xb96noaBho>ZB}jk|9hBak3-IsFSnA z$%Zg3#3_y_t4_%hrx?Pt5ak?EUX{xd_%!fRo?*@s`}Ye)R#l#mT2IJi&TRw z(ZCR2}Ei&euc(a;d4g=pl6OH`vQ(Z~>{g=p-EOI716(by2Cg=pf4%T$vr(Zmp@ zg=p%C%T?1X(bN#8g=pr8D^#;A(aaF0g=p@GD^>F>(cBQGg=pc3t5l0D(ZUd>g=p!B zt5wS^(b5p6g=po7YgDT&(aI2}g=p=FYgOwk(b^EEg=pi5>r|U8(Z&#_g=p)D>s8w< z(bf>Ag=pu98&tb2(asR2g=p`H8&&%((cTcIh3Mdjn^cD^(ZLX=h3M#rn^ngw(a{j5 zh3MpnTU4hk(a8{|h3M>vTUF;Q(b*8Dh3Mjl+f*`h3M;u`&Hj8(bo{Bh3Myq2UNc-(a#X3 zh3M~y2UY(p(cciJg&5$7htz;9F~AU}g&63Fht!_aGA;@RFLCJ;g+G3e$3mNsf3~O^Tjkk~_s@2fU&tXHPNNoWiu6Vu~YPRa3IW z6hoL6VyYuvQ&Y3VR702+VwxjfSJSe@G((scV!9*VP}8%-bVHaHVumB$R5P-~3`3X} zVx}YBQZuu}OhcF!VwNM`R5 z^A`#Ru*d-)sYOv>kpmVx;A6Eo3M_WO5(j*umPCOi4p{1dPu0>Wu+#y|9PpW176q0$ zV7UW6SIeWoatEw%z+cpgD6ql-D;@BKS{VgaI$)IpzErECz$yoWf>4e(Kj+(LOC$`5p23?jEs%0uZur(zJfg)$!6KhT*NL~fx%9y%b< zg@BIqyCupVn;+=0g93fvE(|M}4Vc0nJ2=2ce?oG5t|A^fB+x~6oeL}HvH?@nV}}O# z=())4xr%w{us|1!LF5)X+(SnM`tTS;ZlNPRbX1^^j6viUD(<1916@1@kz42(4;>rm zV`31wg^u&k@qs=r29aB+gojQDbO|8$pMzzSJr*nJu@eJbGIlO<3zhQFNr5gEgUBsZ z+CwJ?x^xU8w@?`mof7CWF^JqkWj$0b&}Cx~xrNGms6wF21G%3M%O-m)R?%aX0$nk7 zE^-T1_E42TSB^pC7OLu@YJsjAgUBsZ-9x7ax_S&Ew@?iaofhaCF^Jqkr+es(K%X9i z$SriHht3N0nK6jmLT7vEoIsx)gUBs(u7}PG^tmyJ+(I=yR4dRmV-UH8YJ2GXK-Z2z zdAaV;e^w7nDZWx2e zE!4|3?jEsV-H;#=*BUK+(Jz}bXlOA#2|7DHTBTtfo>Xu$Su^&Lsta4Sqvh# zP;(Dm8R+IQh}=RgJako{Tf`u83$^sn)q!pqgUBt^%0t%#x>XD!w@_;jT^s1uF^Jqk zZ9H^cpxeYCatpQf(Di|C8-vI#)XqaU1iD=eBDYX`58W8(_A!XuLLEGGQ=mJpP$w@_~n z-5coMF^JqkeLQqup!>uiatrnK(EWk#8-vI#)Xzf?1iD`gBDYX~4?P&@{xOK$LIXVX zP@o6IAaV;0^w7hB9vFkjEi}kOj|6&93?jGCU=KYS=)p0F+(JV<^jM&W#2|7D4fW9D zfgT!z$SpL?Lw^eNuoy&cq2V5SBGAKQ5V?g$c<9MMkBC9!78>cHrvg1P29aB6l!u-U z^r#p_ZlTd0dM41LV-UH8#(3!2K#z$*(Ngpr^$katlrO&>MlC4&?d@%O-m)Hp63Y z26{&9T;vv->7lm*J#*K&uxzr&VzWHZEH=ku?*@8K z>|Ep)n(LwW0zEedky~h9|n41 z3?jGCA`g8O=tVJz+(L^z^l_jU#~^YGE%DGNfnE}W$St(gL!SnEX$&H_&@vBw7U*R$ zh}=TUJ@k2?m&YJ-3$5_bUjn@%29aB6rH8%<^vW1SZlP5k`ZCa~Vi387R(t5HK(CHL ztYbOh1PrMyFjmxLF5+N;Gw?;dP58% zx6nopeIMwJF^Jqkn>_SGpf|-JatkRB=|HO(L~fzY9ts1!IR=qiXp4t_4D=Qt_qzql zCVMQl)nk7P^w!w9$St(ZLq7$2TMQz%&~^{~Ju&|7({NNJP+mP=)4$2ZlRQi(m6U6gUBtE@zDM` zIunD)EmSCHNbtBmAjjRC*9YdPv_8lk1>uk-rPYPA+`+;X*>#LV1-L`9Tv6c;-E~YK zvdf3MSe83XxWjiH<4}R~9g*dZ6z-^9$Mg}qe5i}_(+t)}oAwymNAr+~sM0xsZ~|2~1nO;0B2ZLwGT~&3WC)bUlp|0BQ-MICOCJli@s86ULss@Ax zlvWTLQa?dxM3DrcF_jR6CX_o6no`q1Xhz`zp*htFgcg(_5L!}aKxjoV0iiV&1B5n| z1rXYD@1M|)8~lX!+{Gt!;8s1MBlqJ8ow(^v=**pULKkkI6S{JboY0LM;e_to?I!f# zmNua$_pJ%NxH(Pe%^he$A8s=f`f@Ls(2pC&g#O$WCJf-#FJU0}cL{?+HJC7%JGF!% z+>Rv-<(?~H7&lf4!?}A(7{M)4!bt9e5=L>elQ5cFnuIZ-8cP@(s&RyI+=C>H=SCx8 zLZ~JZCUVb^Fey}%36r_~N0`DrKEhOPkf+_4~R4%HUImQZaaY~>aMVOyxS6Si}=fUqM}I|(~OF8f~~ zO~|EwOb#YbOdcjBCWXm}$zTeJDTFyt%z>D~VhUr5h$(_8DyAr=n3!Ui!^IqqIa17# znBroJV~!DX4CXj7$6-o{DS;^|rX;46m{OS1VoGDmh$(|9E2b=_yqNNsief5aDvPO% zsVb%_rn;Ewm>ObgU``ivI_69Wit5 zX&|NnrlFXIm_}k6VH%5RjAu9$9Ox?#GD>5l0k zrU#~{n4XwkVtQeEi|LK&Bc>0gub94=eq#Dz`itq086ai=W}ujXm_cF&VFrsCj2R+k z2xh35p_pM}hGB+_8IBntW&~!Wn30%KVn$&`iy4g>BW4U{teCNwabm_{#)}z`nIL8Y zW}=vhm`P$LVJ3^2jF}>43TCR9shDYEreUUwnU0wuW(H=an33XBW4X|t(di#bz;_G){9w>*&t>EW}}#mm`!3fVU!q!*(_!=W{a3D zn5|;AVz!CdhS@G=J7$NN9hjYBc4GF+!R*K1{v0uUlH-FLhEHpJIK%LXOxNT$ajhHz zA6WP_#$G;x>Dqiikk2UfLmGWPd+Nxiin`|0Lp{@8Ks!`rF67f!{Tyj8G;IUZUSyDl zv_D@P=!PF}i)EHfgnxM;2Q*=3MhOR)((UqtLx(c;KSEE+w8q^wHi`t;;P+N38 zYKLw>?a_^>1G))yL^q>O=oZu&-HN)P+fY|@JL-n+K;6-us0X?W^+b20Ug#dw8{Lcg zp!-l?bU*5c9zgxkgJ=MH2n|FJqe18qG#EXKhM>pLQ1mz&hW>*v(VdUHhKrmLGPlu=sh$Ky^rRj56}YiXS5J~h!&xb&|>s4T7o`7OVOuj8Tt$@ zN1vk==r3p``U0&&U!v9ME3^iEjn<-X&^q)jT93X%8_-|TM)W<}gnmE@X|x%IXbbug zZAE`W+t5#FJNi4?fqq6i(JyGf+?qN-IVcz9p?s7=X_P_xqeAEabRaqi6-Ec6BIpoQ z6dj6+p~KMO=m>NqItmp>N26oVvFJE-JSu@sKqb+Ms1!O0l}0C{GUyak7L`NgQ3X^H zRYH|f6;u^fL)Fo#s0KO>osP~xXQH#v+2|Z}E;Y{q+0#qMeh#H`a zP(ySvYJ@I9jnSp33Azk5MVF&y=nB*vU5Q$tt58dHHEM;fL9NlXs13RfwMEyXcIXDw z9^HsKpqo%fbTjINZb6;Vt*8sS4RuAgqi*O9)E(W4dZ4>dPjolxh3-MU(Y>e-x)1e5 z_oII30n{Hohz6jC&_MJs8iXD}gVCdC2zm?+MUSIl=uc=kdIF6=Pok0NDKrW_jYgwq z&=~YA8jGGorb>ZfBYIM<8#kg~&Sl_;d^UeM zS5MBRRfY5`x#~bYC0Dk7NLeTIRYU89-vctRw?S+zTQZK*CkpJYN}*^5p~RWB`eIqv*qu0VJV5 zF&RKYF-0T(8!H*eoubA&BPN3>B&HDNKrshm3X3U>DI%r_rl^>rm||jzVGb8_IOa$( zM`DVLDULZt%rThb#2kkyA*KYTq?nSJQesMBN{cCtDI=x~rmUEcm^xzWVCspfhp8{7 zKBj?~2AGCo8e$rWX@qGkrZJ|8m?oH}Vwz%_iD`yuE~YuAg_stYmSS3BT8U|eX)UHT zrj3|3n6_ftV%mvmhiNaSJ*I=04w#N&I$}DB>4fPlrZc9Cm@b&EV!C3wiRp&vE~Y!C zhnOCio??1pdWq?U=`E%=rjM9Dn7(5AV)}{chv_e-KW2cK0hobe24V(@8H5=uW-w-m zm?4; zwqUl3*^1dFW*cU^nC+MyVs>D5irI&Y=3lg{gJHMVf&+}>yKp3 z4%;6CU4JBNcG&(H>H6ajzh=h-_k$!Wa_}FUtjNKPMbZz+iX7%`9x@S=*;KM3hwXI!Yh{<3Ii7A9RP|Sgt!eR!jyY1yk(lCQ zieruua}4GX;g0YG6(mb2{csF=t}V7IQY{TruZjYKp0esV$~9rjD38n0jLBVd{&ik7*#L z0j8mthL}cT8etlXX^d$irU|C0n5LL!Vwz!^i)oH&A*KbUrI?nOR$^LVT8n9oX(Of$ zrmdK^n08{?VcLsnkLe($1E!;xj+jnjI$=7C>5S6YA!Y?;rI?kN zRbp0QR*PAUStDi*X04dDm~~>-Vb+UTkJ%t*17@R`jhIbhHer+)h1o1-GiHmJEtsuh zwqmx4*@oFJW;rm%Vs>JF)6o!Ln&A(8pwVk{^*8dlMz7g@mmL*xfEg9B&Wwck z*0k&6qasTFYoj8rVu6E}s1>>fwMN&XHt0Ik7G00pp&L+pbR+73ZbBW=&8QQ)1$9QZ zqAut*)D_*1x}iHzcXTJ}f$l;*(cP#Qx(D?}_o6=NKGYZ8kNTkpP=E9w8h{=`1JQ3a z8e%Nxeh!U8&!h3^1vCM@h$fx6NQHW$T#1>>mLmcczLzFze;KCC>W*45=YQ{Je%h6kN_1|)78RM``#yI?x ztGDwDksZ5@ad_g_r`jLwYHgm8#qKV!g-FtpnoW&yz_YRpUO`}t1I9YwIawgDATZVe zzgqn_$(`Y4SwFAf878?iOm@I4va+5lJ)bPc$jzn}I^siF|E}OE7CK;&13r?K@d^Tq z9I)5{AIq9~1%bs5SmJ6b-<^x&R#)asRNQJcTGpAb*`iS*i-IqaX-b6 zvdm$@|L!gBzk90#{?UZG`tP}p_z4?1hvc@eezgK@r#r_lETtHE8awS7SXt2$ItXNy z#e$6FW@FVw2jvE`0%HUsw@{vk@&lP5Hv*AcXx~kkTi8F`!GU}ujXWH=eYm0?Iy8_k zsS$|WLd87vUpaSeN&nOR(I%y>=%09{K)&Kf{_n``|6OGdC9}=yWVTtI%r>i&*=BVz z+pJDzo7Kr|v&n3;;qPg-*$Mu$%8P+qg^qlnA-5lBCVJ?lK(0_nAaV;$_R#OBoN0!C zPHzTsZ9MYC$?X%L<)MF8fHcQL?*?)OJ#r>;d#1S_dM}Wx>k)|DLi0TIejr!gBM`ZT z=6mRaK(5M1AaV;W@K7>UYcf@9_&+>V>sJ3pNJ@tOgC#?Qb#b#8{L!?J>K(2?=jUCe zJ3G0?`^!Er&>5nuQ3r%RhYnq;xU9Vp&Coz zqOU8~m_)_}+{pwk(=H@%Ep`!sE3S(PTvuH};Ogm80@p~F5tcFhm9RWiD+nt>wUV$h zRI3Q9LbaN(I#g>2YeKb_ur^fd2Zeh5hMX>}Xg~^D?UeIhl z7Ew~pQpCOT1;t788KxrWyO@mR20J%k)#NsJ)O`&dZPoTqnM7EPGUM?I*aLy z=^~~JrmL8)m~LXaVY-Xyj_Dz$2d1Z(o|s-@dSQBt>5b_lrVpmCn7){PV)|kFi|LOU zAZ7q&pqPP}L1G4B28$Vt86su~W~i8nJQ)~W}293m>FXD^tP+OVUFyX!=AZf z=3?fFnTMG#WNFK5W)&>I=%p{{Lyc^{ioKh($O==0fAM}D2wHNQyf znS(n`xq|z>?k8|8W=a+I%aaKl1JmZ1cGm=sJKoh7bJx5Px&$>wm!c- zP;(^J1W%*U=out;=KWpy*YVTQ8)yc46U{_#p;_o{G#kBx=Ad`cT=X8Ahu%l?(Ff?y zXd%kYtEm?e7o(5S67&gLiatfl(F*hzv=V)RR-rG^YP1G@jn<-X&^ojpeTO!nzoL!k zd$bAtfE3bbGYZib^ds7e{)V=ppU`&nceDfjjCP`5(0<%~4NwlsMR_P6rBE7W(Eg|p zIshGr4nl>|!Kes21QkVxqGISUbT~Q!9f^)Y#nI8|7<4Q;4jqq5pc7C@bRsH+N~4p} zDX1(ehsvXhs51Ib+%0d&<6Mjyp-WI>bSY|rE<;UGGjs)Nj;=&4P#&*=e6**#UuKO&F2cTZ*n z4Aq&;0ORT9`MKX?a5>GXi!n{b5@ABbgDfhv^T~ z(jUo;fCEf_n3n!XW&|8z`opyJM=~Q|s3uB}&=>olYH*7CeDkWBlKq7}#hl! zyr!mRiK&J#EyOfOysoBYiD`x~EyQ$3yrHINiRp$gEyN5*ys2hni5Z44EyPSmyrpJl ziJ68lEyOHGysc(siCKm)EyQd`yrX7kiP?rQEyNs0ysPG9i8+QaEyP?$yr<@7iMfU_ zEyO%WyszeEiFt-FEyR3Be83EV{?BAGBVfV1Qpt>f@`B-|vfjmHM!;>ZCw{dabccI) z{j7Fm-(5RQXPTBy{qL<9E#z-q9T3Q7V+mg zB#_aP{#;l&mkpStOqDU9_LZqm2xL5{?uk zUKx+;UJ2&}GB&s1Up~pr##mhkB}K1E(QB9#y@pBAYnT+hhDp(Dm=wMKu8LmA`#;n# z1TqJM|J;L>&pkF^_FZl4B>#Xf2QssRe?Y7}pbePcV+rka|J2_IWS$BC)Uoo^ZNThR zrR_|AuD1f2p~9aFE9bHSvsVSVv;Dc=31n^ye=e+?%LYtRx66zj?qli4fy~|!`Rqz= zHfHm1&?kY+>=A*;Ewt1_p9V7PM+73b&@vBw7RZbs5s2JE%RTgYAhU%;AaV<>@K7=% zU@{}%;k=oX^4|YodG8SY+s*VhSRdo+&g$sna`f>e!*z+Ay8471U6OEOjxI$wDMyzk zoSdV}5KhU_WeMeSba_IB99@x6DMwf4Uk}}5QE)XW53WW{TXiwjF}sxs|Fp+h`_%E& z*&ZLN69^}S>O{hcp*o3h5~U`Dlc_WzP-9Y#P%cyz2o*wAiBKt2RR~o=RgF+BRHqV7 z4b^Fc(^!d-KrO~ugtJ0*4&j_ookut?RJ91TLUlgje2SL|6foB()DKky0!0fA2@ONl zh|nlhjR}oI)r8O_R80v@L)DDXEL6=2%|q3Kz|H-ZgqERdMQ9bO)`ZrfYC~ufs4LLi4{{kzPX1!)4fHqP`Y%LQCn5mY7yzT47p?X^m+krVXa8n6{X9 zV%lNai)oMPAf^K*sZpmBvNh`CrCaz)xQAl(NpgrUZ^=Y`>*<6I(i3 z)zo9?hh+LaJ88WW$^Jq1QpmP0|_c28B9%p$E11Tqg$!PlAOX5$8p?LVE2KX4s!R3Pg^MS6?e_EvG< zTSo`7c2oo+x6m;jIyR7Xr6Lfyg^u&k@qw&46@kbtl#D-+en`e2$a-Mz)tQVx&=&== zzFFiQLvG(O4Shc)lWr&D50dc*{PIjD-A=|IB;yZwBRmtxbcB&V8|3!S#u)!+iJ=K`6=FanWVXq<hj`GO=T%ugGm*CF2iV zMg(V3P3%`s+YePK~^0$nAS(t?#FA0$Eix0+Cy2ork^+WX078L~fz=9{Mhj z)mS4CxrH`(=&ykkfJGp33vKk!_kk3LMIdquZSv3$ffSBKAaV;S59vUP$|4ZCg*JOA z45Z*J0+Cy2i-&#;WYt(dh6u|hdn}erFRt@)+&eEn2OsTDa@$WS52bT-Dh82TDC431 zb7TVA$bSsEg$hy9UvPTy9Y^UJc@5;4KF!>a2o=Trr&F48MxH*?9XV^)k+V5+PM$v3 z9XW5;k(wN-m8WaFBj@irQimgT^K?CTgcW;blgGJ$BlYw2h3-g$UH|4Hjx@~EU%0u? z3;dfenfrWouD*Epvo+%1T#~07?|$S`jx@>Bm+gL}DMv2P)6I52as@}4=jpF@e+FxK z24CmuE8V}TWBXQqo)-L@tMYWq-H%+&kyd&7n%$4I=E${qy3OuKuH#7CJbk@8QlJmo zapZ^gE6M|$SzyWNpqyN=w$k=}XwUU#I=t|Rwxq;KBuX6Oo&zfzrlSg4LB z9384-3CA*Qg^&zgks^wY^hC!{bs}^MRcAuyP<0`62~}4@*HCpMbPH8?LibShAW&@3 zlh89%y$HQR)tk^eRDB42Le-bhH&p!y{X*5B&_7fI2m_eyuVR)-NXDyBmtRK;^y^^iiK&OFFQz`Gffz2d>V{$(Vj78QglR0M zF{X)_CYYvTnqr!XX@+Sora7jCm}I;PoiLQ%*yn31B;!@+)iv@Owlnbdt+4fU6183#U| z>9x7~8~Jpr8yUiVVhi=9(X?qay&{^f$)4{1Ja@VlhHxJ=Lw$8LZ5>Uoi>B>Nntdua zMvr!krnf}X+f3>{5OT%ar0!E-sP8hV`{)nwuLqpNyXc+nv8jhYoBhZs*Bzg*sLQkX7=ovHyJ&VSo=g>IxJQ|N) zKoihL`us)WMD!AxgkDCI(JN>QdKFDYuc2w^bu=Blfo7mL(M|^BMGYbiO_&Ka?H24f5#6tHNiyZKgtQA-gSmc1k4oIqHlWJLB5=yz(gO*hu3%+2Kd%^tM zwXiG{=^o=Jvu0$02a()tzg`Xd-#gd#Ud@i3Ond#uozFU%s5&VWm1~stw_s8z8tN+p zx#n8%&yD0};~K2%r>g?F9vgwkE!5IOR|hh;Py`~kP%95z6Ue+n5s2JEtvz&YAafE$ zAaV<}@z8aF%vThF$Su^?L)Ql~mr(>Fw@^C|-4Mt;M-hnJLhU_tV<2-NMIdqub@0$l zfy|E-fygb?(L*-}vc7KwBDYW{58V>T+P@Kq+(Ml_bZa2%0!JWn3w80(ZGo&A9D&F! z)YU_`2eO`U1R}RkHxDI+qDi4>QYgyR-``Q8=mh`fd@+!9vLo+ca{CUR=%JSa7SfJF zw!GRt!^ z%QLra{44Xz03Us2lG|72Y7c!C=+!ZZ+(K(SlvG*jf4j;uDWClRQ9k)-eEQ~N^X-e9 zmP1(|>f)x@@@UiU<7t_P>~UJ=-6mlk;io#@W9`!f%9^;)Ypb2qWU|Sz33nH=kIS@+ z2waR^OjsPMC4?oRT1r?Ns%3;_p;}H@9;y|D6`@*5SQ)BSgjJzhO<2v~eZrbhttBux ze;r{RtNIbvhiU_1L#Q?qHil{wVG|ej2wc+JLf8_jt%R*1*V`yF;G&z_PQLwLn?bj* zlqwXaRH3MtqL^Z0ieU~Hb2#QmF^o@UI5LJY$P78gFwU4^#hBwTCB>A)loC@4Q(8=E zOc^m{FlEJ*#Z(ki5mQ-AWlU8uRWa4YRL9g1Qv-9lnA0(5ia8T=wwSXq=ZZNOQ&UV$ zOl>i>F-egTozP2qqZg*PnBJH^V)|hEis_5#C#D~!znK1*0b&MV28tPo86;*9X0VvS zm?2_@V1|krirMEyMib=Bd;sP1CWa50do=~_41s3=&k{2WGe^uE%v>>ZG4sUC!^{^m zAG1Kr0?a}&3o(ntEW#`nvlz2P%o5B}F-tMa#4N)s7qc9*Ld*)xN---jtHi9rtQNx` z|9xLKv{lZ$l{0S>vkkLd%y!HUF*`6j#q7lFmxI}l0__|zIhZ^#)Ynr^kD-R1l6eeu z^13#^uOHRN=F|^q^!e zLfbA>DHN>IkV#y}q36*nXkS)a_)3dh?wU%a#XqXDkm`zmR#~y9s*3-`30M7OtMN(- znPgQaSp82-uDUl9tL~|C;sow)mqdH2oH&vF1uG{?k)MQ0qmxk?bP6hq%AxY80;-5A zp~|QVs*0+i>gZHd1D%FWM`xfj(OKwhbPhTforh|oTBtTUAJsv1Q9X14s*f&24bVlX zA-WhfLYJV%=u*@KU51*X%aPpGZ$>nC^$&G-^}ALtcvt_5>|Ool=C1yg`MP<&ZXqpq z^{#?$EINnDXGC(dsiPfnj0`n!#Lbp~1DC_sQQ`9%7FfFHQ;D}^W zVB4k1q`>XX>%+9XK03J9M=~j}eSP$B{gF%xZ2Mz?>yL+I{Gs~|lS~SnObX1aLrrwA zjhAGssC#WpG{0R;3-N1pvbv}LQ+anj-k(J*n+up;9=j(WpT)3(*}%h1aZl(~8Kvr; z&=f()&8DV0;x$=)%@I=#VOq#(j(A-bW^=?eLzos~x+C6@HQO99-4LdQnBj;wWjQxT z%rJy$A!a(_Em`T!5i<>8T8LSWcv}{MbHpq|m=IO1JdEzX@| zjv-77G1n3A$wG3Dm}>~rLdxv=H+h@qsKq=ZN`+FfGIaNBmhFeJu_Xkpm5rN1p z)Xzf?1X86Dfygb?-$M@uQo#{{$SpL$Lk|T~-4TJvEi}+W4+m2D5rN1pG{{4b1X2|e zfyga1*h7y7QZW*N$SpL)LyrYgO%j2~Ei}|aj|Wm|5`oAqG|WSP3MfU1LgW@2?x80F zJv;`HTWExbo(%Me7({NNksf*~&?93IxrIh~=;=U@ib3QS8ttLqQAzlC|D0Y3WLawe zxd+Q8d+bx+ca`Il`~$um$YR(20kQIcHeh~_1?I`z!S2;C&;K93A4qXkEh}=R8JoM*4in1aQxrG*b=)*t?wjvO@g%)|}qdQOa5IU8d8lck%r%BZgyQP@t4DvHVbr#{Q zP@O|KCsgMV&XZahASt1#MP5rvUdX9?p{NBzWea617;0B2OuyD*uzR_)*=u;X7FB~nPr#|u$DexR5GG1+k=MPyGA z_7oLU6!WhQASogLyafOJ|1^@My!@;3{HtV037ybhdZRt2gP0DOj$%4uI*I9o=`5x* zri+*^n66^FV!DaxhUqS*JEn)29+;kDdSd?2LrTWWPr=t$hLvC@U?z&0h?yjYFPeKb z$Yi>}(}A<2O=ilTne539JDDweX0zwNe*DQ6`AN6%lkW3@C^d5~(6w@O%^W^z{U1i9 zJf{2P%M`2GIaTkEru|L2Yd%)<$>&NlU}b=5A2RL0*btVVxvG6J<3AdqOHgBUDQbc) zLru};s2REfHAh#Xt58eyF!lA<5L=^bQ5$p}8pQs##OqNzbOUOSZbXl8tOM~TG#KBJ zcr)sRZb6T-uQPE7@i8L zcq95AZ9+dFg*4iXLbL__h_<4?p>60Vv>p8&?La@Ho#+>|A7euTl!J0n9?C~4ltvk} zKPrR{KnJ3OP+@d1DuNC{MbV+C7&;6cj*dV_qN7l8bTm2!9gB`b$D@PU>s2%6H0X@V1G3Z$|7Cnc?q36+f^a7fI zUPKeoOK1{$8BIp7peg88G!?yurlHr-bo2(Af!;(j(OYO1dK=9~@1Qy8T{IWHhvuR8 z(R}m)T7dqH7NQT)BJ>ejj6Oy({%8r&j6W*o#vg4gQE>dxC)x2wOU?MBPxJNCe7#Is z#vgqq(BYn&yM)`qa9EEdL{j6djUxOhO>%}a}V*nEVSXO;Ks@I0CKab364nS z9d#Y?nGC5fSmn0N_0)0)d@h6S3j)g>u)+aS@)l=lPm16w;mkGbPfgomn1hE-_GrSq&_r|Z|V_< z+(N}XbXXwMKtv#N3mxvEKU&FJN&m!83}m{B$WKRZf4Wj0Iw_E;EFuuOg-UzqKU0fV z(LY?JK&H-!JSTGdoGN>$N+8o}L?ChtRrOG{K&IS?K;#yx?x9lynT{g@kz1&ShfWJ* zs*VUmZlTjXbVeZ4ctjv_3!UkqvjUmoBLb0IXoVjF@RxkOl52Xd9B+jk0$>AQ`_A^~ zIwz1>LL%oPx92+7L+1rDgGdA-w@^(F)e2;GkqAU?q1qlgKaiP6A`rQS>UgMbAWI)b zAaV=U^Uwu>EQ=I@$SqXgLl*|JWKskow@?EQU6ib2&$ssGv3?@A{nWzu(^bjzq&Fth zlim@?<lU>fxcg0=aA&fygb?(?fR$a!EA;kz1&jhwcev z2A>E-ZlT^Dx;K#7eIgLKh5C3XsYTOCEt*bh(fEk)(*Nu%rnCKTgLeYCJK;Y=VcBGl z{iQL-WA6qscUI%P~ndg#4C=GBTo^$li5)J)nbQTfvLzgWXE zSzZ8>`Prw4nSz-rW-4Zym}!`7#mfI+p~^n5Pucs4QXl2FzFGCx)d*`lZ|bL}#ALN; zzcTHbSkcLj?f>VRllZ);W4MR^-#B;b*W54uU#M^RM{}rF;hy>Lc^=iZ{QrD|_EgKT zj{OB|8NMZ7kG?}2&|lF;^gY^yen1Lov>AnH3;GdlMSnxv&`)SP`a9ZzenvadFKE9M zbu1_c<)S>4k5VX&GH8EP2pxb9Lii||4Dz2)yvU0R+D%9n~l*43;_+>KwVY+N+~@v z*B*H*H+y6j3%kFat1G*IQ{YGy{!P`CuD1J;>Kr*WrEBbd9cG&+lF&&IM;^rY^Z5NEgNdvaJ~(7Y^ZBPJsU2tp}q|l+R(s; zi)?6U!^JiuHgvM#78^R-aH|bnY`D#at~T6m zLpK}lu%WvRciPayhP!O&X~W$%^s?a|8+zMtuMK@{xX*^ZHr#JRKN}vfp}!3e+AzR| zhin*V!^1WVvf&XM2HWtc4MS{r%!Z*h$RM2|evr=NsX8ocz@EWcrbYjG)W23!+Je97 zzOM9Yd@D4J-z9%S!_gCH1bPyUL{A~9H62BK8cDtBXyP+y40;xgMbDve=y^0Ay?`d5 z7tuuY5}JfwMw8JiXbO52O+~MvY3Ow{9le2Opf}M>^cIqu)mg;1k<_lvCccB_pm)(+ z^d6dr-beG%2WSEMGg^o~M2pZzXfgU2EkU24rRY<%41I={qtDR_^cS=eeSub?FVSlB z6GkviS~=FhUF_!)hz?n(Ig=h@QilXU@3Cd%3XWr+WY&$XxU zID4~3Kv_7c*DXgZkM>lzTY>!*Q6J+u45e9#i@)R6MIP-tZ_PfNM*7% z)Q4oxR#eV*=&mzxr~p?i%N-`%;k%AS*O!V7#XYJ37a59sY1%)%Ci3(y+x7JHrMo<9 z+U9$%sc@I?I>w;_&reoJk-zP+6;d8gvE%WSZkBdSrpVX*$MqHI3t7P^rJECZ4AZtS z?Nz2V%cZDdd@Q(fZ3oca1^h7V74qJJPya3?jEscMsi}*4<+e zxrKUo=&rQx5rfDr)YC(Er*+R5L~fy89=a#3d&MAf3-$KUy$s=xLF5+d~(DP|ME(VcXXuOABNbB)2h}=SZx3-9$;Lr79 z8Xx`TLvGJC(L*n#^~4xNZZ=iR{r&pKtCURgr+GQ8C&f-fZXav1hh9nR$uWrBLQ_2S zYFbZ;LF5*i>Y>-tdTIAadvd3a`J@#H&&)tP# z1+xJ&&tvbW@zK``xjol>4}Fl<^J5UXg%)_|&uP6N29aB6p@%+9>xD6h+(L^y^if(b z0&+hgmQD6pY_Z2aPV2?7bCFwUiHAN(>m@OW+(Jt|^l4fzjX~rVTIQk8(t248BDc_T z4}G52%VQ9^g;sdzFKN9Z29aB6rH8&q>ydRACA*<-Pt9{VM& zckaTlg4uxCFXO&+1Q~qxXT%C-1K)4zy1yXxWM-WUp@aO1 zZqx_G7;?)L_9r?xqYK9%atjsl&>rh}=TO{8PF~7mG3EW>X#A z%j0I%G5hl9D2K=`(a90Fs7_g;lOasY3+OQaWDd{ZqpuEfv*{x|bYun}g~%;*lz+yz z>Z4)|xn+v`6CIt=#bXe;g^uyiu^D|#3?jGCasJV6)5paaa?2d=ncMa8F^1eSB|LM7 zE)iqMEpvi@LM1c$gcw9_p%eXy?$js77;?*$@+Ueeqf5mgatoFA(8(EHItG!OP3?nK zuXGvzjPJol|5M5BlR3pR_v%w(47p{>dgeY|HpY-!rkrQ)*X3dixn;_G<^f$k#*ka4 zf@5^WjII!a$SqXKLzOeSQVb%uP!$hV&FCsIh}=TeJXAfStHmI43!Um9^^iU_#*ka4 zhCk718C@d=kz43=f1-!==`n`fGG}<^5q(CCA-Bw#{=v@5=rdywxrNU5&^Z}>Hjw*V zf@PCE7CYBt=VkP{yD+R^HehOctX2k}JsVaq8!)v!c76t*#jt|efT`oLx*2>H!wO~t zrk=+x$l#-|U~;qR`X0J4gO5Vw7HZ(3i!!>wt_Q@j$sV(*-+s;s-OxP~^*lEEY{|{0 zFZR#2Q3jvw9xR*eF`F9ie)+$k#(M_GW?Rrp{D~T8@E#J&<^twYk2T5Qvlvz|8#wE) zPKGhjJ)z%x`7t%wJ<=;`vVXcbHro=XI3ihjOuFR{wDOp~%)c6&X7K*MS1g+gn9DuZ zEQ8NtSix+-T;Z|i8GIJQ3T6Y{v(UXNG*y2iyW}n0UxWyQDCtH zmN?)OwIm8Galldse5#g4fu#;u=73}p7Q2$zw`yIqqt>~OTJJjQJGDLvtarc$2mDoS zhyoiNu+ag(;Up}Z-9!9;UG7X@>E9nMGWbYmNNzT@-96R6tL+hj)B-yk@Uu*5>b}VC zkVE8_*y)I0)XwNBc3MF1=LbIp0Y1V=Znk7iG}{eDd|w?B$YihnvmKUA_E;>LU`Ai% zU*0V<_-s#MrKfDbl=K~X;vZ}tnq*Bh{`ao-|H-W~_~@?=a{FfZKhJ5yATIyLO6Ih& zofyg-H?}*IIc<{l)hOHXzc+6P@X>c3xqYd$_fRsYjZWsY(aHL1I$2*$KNINDv0oVE z_7}z&{|n>UK#z$*UJGRGaRef_&@>Od z9>}=l2t;n7HvWlUm(guvPn_IBGyIv}3>e)UJrlWw+WIrS73j9HGm%?pmOs;0LSKZkODgbP!;0ii)kUqrYlr5h3&ru4;xi&MH0p;1a-LbxQQ8xtC*^reJL zQ@RPENlITvxGbfc5}Ky;<%G)_gFr%Qcp>0ZEPq;p%+Y#EO^bLd? zQo22%eM;X*xG|+W5IUsvO@y0Lx+9@uO5aSlIi))hI;He2gj-U&Gof=z-%7YOrMnQi zr1Wis+fuqKp=(OtPPjd#yAisj^c{pdQo1{#drIF)xHF}D5PGEaU4*+*x+kG$O5aVm zJEeOOdZqL|gnLrDH=%b*-%GeRrTY;2r1X7+`%=0up>ImxPq;s&`w{x3^aF$kQo28( ze@Z_{crc|05C)|5LxhJ?dLUt7N2Bq{Pghx_(Fkx^?KT3EsrH2rPr1WEi z$5MJIVQ5O9#%uiNYqKls9d&_>>rqD&jt{w8pd%(+1O4Oj}GlG3_wz#k8kJ?_?h9WY&|CyaNY1 zis{G!yHX!RP{=!RptG3Hm@Ze%8>YLM?wB58dSH5r>51tjrWdBSnBJH^ zV)|hEis_5#C#D~!znK1*0b&MV28tPo86;*9X0VvSm?2_@V1|kriWw$m7-qPb;g}I( zMqoyY8HpJsW)x<$n9-OqV#Z*`iW!R;CuSUGyqNJAzpx<1@$8wvo{3^6(qFac$XYBj zCHW){Ocpa4Geyi4%v3Q`G1J6M!%P=59Wz7B49rY1GcmKo%)-nTGaEBU%pA;IF>^8V z#LUCY7c(ETK+FQnLNN<5i^MF#EEcmEvqa1i%u+E+G0Vg(!z>rG9J4~q3d~9|D>19Y ztir4ovl_ET%o@yEF>5jF#H_=t7qcF-LCglsMll;Po5XCwC@~7NSpZpykSfM6o%3#N}VvLVrqz?hKZUb424P*CSj;XqWB0y#S!I17;1_r7{X9B zL`e{)CZ@I+Dt{>J!PLRj6H^aUUko)m6yRW}!cn97VMd2)3}H;D#uCPc)X8v^;utDl zFqFTj@f;X01uWzgvrwXfk;;_`9GDQQiG+!vnnakyFEh9Nq?$}ly~q^8lu%72ObyjE z!n9CLCrl6348n|1%_PhW)hxoSP|YUH=I7%V`Z+lS2F2=gNzRkN$X7K7U{0v!66S_# z9${Xn<`d?JY5`$^)GhE7sbQcp0YiBLwFejq5Y$2lsty(rs4ZAbpn_ltfjWVu1gZg+ z5mRuEW3WhG%{s8$hHg=#fnb*R=5)`V&;VQr|^5x7Ubp0GYt8wlL*-bmOO zs!aqI5K#ohJ!rz_P;DV>3Ds7@)=+IDY-4DwJX5(jyq%moz&i-P-=!Dya<7Ty5-?{nwOcX~Af52PvzX;I@&e#$;T{&VY%Pblvd4ux3|H^CSclp3jDT$f z=4#rmsR7%{9@%ji2Y zx_d?y)puqZBHbfH3wT#XFUi$CGx}~w_J5kIm*wiuav^(VYB9S(b4EvJ^gS6`@ZJT^ z%MQ1anqBj|ckjd99A!7vEjUNny_w%`j6_8_?|!5oM;^%N z{<|M}kRt;!`XP5@puOy%nDOjkjtt7^N8FJ*cJ>H4GMFQeX8z5k)w45^4bww1W+Jl3 zY#3_8<2DR)$M#~@C~i|+%&aku&?Trbx)e1*m!YQUa?}i6f#NHXCbL8(vqb&YvqZ&b zh5A=lX#HQD4eGyjR@48MnV|mBEKq;SF#8^g&v^O-`$nL>nFZ=exRK~7GzvY9Mx$rY z81(G_WA9Ahq$sj|O-nU&(_K~A)u1TizAw1%qo61tiin5`;);s<&WPdyE+{T2f+*sS z3*v_22BIP$q9`JwxQ=phP;sdv>gb62zJEk!bX9nN_j%u&ckkSJT|Z8rFHe1BRb^LK zWkyCs661+`hIm_ke? zo+YLc&k>qE>Ur`D#B}0CLNiItAkQSynWRQ?jqY^Lq*XOn)5Q(*BypE-;@8i3ZlzgC z^S{5V#QV?9t@KirpIhkwH5w#+j3vFQ>gC z+|;`5ZnSPE=eN&loH?m+<|J#JImsGlPO{@GIsFsPZ-d-a@gEtDGbbe}`?7K7q~zVvICE0zp)fs4{QIME z<|OUO6wg=Zm}DsWdD=28yIXN^^8UGielw{t*ct98e`1X@C%K)$#+j2EXHNPbHFMHG z(G*2?VWt0=v5P9<^n*soElGSRJ(heJJ+3Zk$;Z`W?!(Ca#F(5IPpG$AVoY|1`-$;n zVmzgeY>DxtGu%&%rxW8D^>Is#r=8(`VoXVlsp|fg7*m|#equbE7}L}EB-Zk4>itHlx&EibPjoj;|Jr_Ze{Jq3e{GHP6jfNW zXh0&%?q*f#XuRqQxNH+^*-I@_siwkOAo-6yA-5y}wW*e^fP)4~^9jhMTD}4Eyc3mQjPNzX*<{!=^Lhf1zi5FV%cx2EmLW$3fnT0SoYG^ zskBXnZ5>H0duiKL+OER3jU<-6w0$b=P+{9g63brNF_m_zupJ|bWiS2X<|*1WeYihW z=o<5-pQ&2*54T$??Owq}=*uORz0@Ij!dPaD(uKeV%bYar_wPMc621M?4|yxbS#rZ zL=wwhYMg+GF&4>}>^T*1`MZE+znuoAQsV?fjS~0m zSE8>Cmi^bp-1KYXwF;XXNi2Km^;DWyVXsFL%U)`nfQU(lk}vAU35e{g3i~p8tFY|f zDqpAD>6;4sI+9rSQsV?f_G`MGeyf1Xcl=oP+o?%9i%-Q$)?}q}iDfUXluAukvXvr< zWiS1+Pe3%;A<|Qd#ys~`p8n>7XJJirZ{oiD);d0ZALmD5*L@-r$1L=k; z8$}vbWur->tL#S7jojxaiE*>T9291UDW4YRFwJ~%So6jSUm7QTX`JwdO9OUc{)jHi zi~ErFSzg?iv@iY4NZsj1Mxtw3PZIsddXeZP)|*66utP|PXs#FjoEj&5(N_4^p77;A zp3a4H=xhO{K?Z0h;N%kLjsQ*|adrscOcCdQ zfLb6Y$N?<{ErB{g9Z)Z*2U-hS1FH&F1y&QR2DBBl1=zCd?Dcc6!$2hdZ{6X+%A1@sos ztV=5{K+`QPwE)etw8jE7!P4Ri91a{QpedD>Q-J1DT1NqzM45seI1U&f7yz6oI1xBm za58YJ;8fsr!Rf%6f-`}}*;?2LjkC3|5kAvf;xph2!56@n0uIqQA_F)KV+vTH2z)E} z7Wl88t>u3+LCZ*cg$Y_-ts*gz%3MvP@>-R>&Kx4Ilughw&rQ3+gfH`|?2RgZV$UzJ zDMZt*@Hd+2Vuxl(#R6lmyD;{eWFsqWe6ucgPcxETQ)$_ix-gR*6PMiEEKC|Ri|6!G zmCe#jkh80btr-?=b9hd(s_emL_E0l>xLL6!&#@hnp<$X=r%`Y>%LXlcTB}&2;I&nQwp!L! zMN3~T%uOXPwhiJMS!)}wkAm0M3fkIPTPxNmcx~OFt)I1ZV~v8>HVE2AS=%7iD0pq- zplzD9jbn|1*ESDY`>bsqYZSb;Wze?H+Lp0K!E4(FZTqZk8*3E2wqwwC%G!>xM!{=4 z2W{7^?Hp?qytZ4=cF)>wu|~mb9fP(<);h)-1+R4q+TK~~6l)Z`);VZhv(`D*D0r<~ z(Duz*w^*a#weCUdk+trzM!{=6gVrl+J!6f6*Lnx-kgWBNH40wq6STfr>w}iQ&0%gT zd9hy*kH}iTczqPSc2v-g$=Xq|M!{?SgLYij`o|gtuMG&=iCG&^^6X%4DtYnbAfB4F zlS@QcqEEo-K|C|dLc{BYCHe$3tw=w_rZ#0E`p}`^ZnkIBRJ*j2g@*OPTAxoqryyQg z$wGq&OY{lYD~Q)tvd|#H5`6;p4&tav78*oYqEA5QAdanMp+STt`UG?d;_a0zG>EW7 zpMb7Gyswgl1`(F%6R=MZAFgDfL4+mx1au4H%t{*)YZSaTG-$6>+R#{|;I&JFc4^iwi8TsdyDVsLRN7^+M!{>B z2W?@cT^?%`yf!Ro?^oKeSfk*zD}r`q)~<*(3SJu?w8fP+Jk}_9?W&+%owciCje^&% z3EH(;yC&8scx^<`uFKkpSfk*z>x1@1rClFu6ufp&cq>_@9aQpGg1M>W#oj^uuF`s! zh_FPTfYITB$7ETE-b@ty`o;$BmaL79H40uE7qlNLZCtET@Y=0GyDe+C#u^2$-5#_% zvUYo{QSjQGLHnuF?u<1GUb`!3KUdmau|~mbcL(j4O1nGOD0ppr(C*3F_*kRhwR?m1 zTczC_YZSb8U(oK)+I_J`!D|zO_CVGq#2N*!9TtB1O_?OWBuRRvD$FufWtWogVW#aTgoDQmMzL|CFv!0aHtoMoY5jj%+YfH^^YCCfsC2ut({cr}P~vn(`- zutcAL*Mj(ZmWAl;PQl%5UeMmivJhz$yf!~*3$ix9Y5qTYk@e8 zc1N#O25n|jtBiNwD0r<|&}KJvZIxwfqw&&f3&XSH;t~tv7eT>mZwKw2ti4_GB4BPR zdGY-4nZgAr&M)~)fhGC`EDCFUH_Jl9Zv&R-6YyRT-_NqpAi@%T0-A?c{7O?6qTdGv zce9JbGvq=T7neLkSnKl%s0!$`ug?lQ=RT7cWz<(R5v_7SnKl%s1ECU zqbUmwA}rA-U|4vDTx(-k$uoo{`UDIQBG=y-ULwL0eFCly;*DJAqeO%y`UG4X#GAPU zNQnqb^a;2wh~v0ANQnqb^a&Ul#5=ffNQnqb^a;2jh<9^okrEM>=o2tDi1#*QpH%4a5t+7+Ph6zh%^dbs}0%*P2HK2vbAyQ#B150{iUg8f@J)+%T}HMLgp+9-Ifb=%GSn-Ew8l+T4l!C#A~DAwbg=FopC3_%GSo&F|Vy2 zwAzfV9JFIWbjIAB7kAm0M3EDatt}78eI|^P~H)!oMwr;FZ@Y;Go z+a_b{#To^#Z4k8WGqypjQSjQPLEAZFo5mUiuPq6iJ3Zsh;g`KuPU?HDXVA{dxHJ4^8mIid z)+=a#&bagcWf~m|9TKz)IByxhQVL${ z6SScj*8!nyZ6yQ7(xZYaGp>6=nMQvFzqTX7+OE#n5%Ggk@Y>NqyFTN3G?cB4E)HHh zE@-1OuA4)dM!yHI4G7vz8P^G-OruwX*G>-Ftr^!dqD-T!gx5|D+HD!vZ=y`2BZb$_ z2-@u#J0pIj6ufp;(C*0CS+PdJYXgIJXT}D`8U?Qn3ff&68x(64ymo%j?#|fxu|~mb z7Y1#7#x9IC3SPT7X!m67;#i~LwV^?~H)BI%je^&P1?|3!4U07jUb`x2_h;;?Sfk*z z5kZ@fu@SLG!D}}J?STwqp`s6c3SJu%w22uT6KfQ_HZEunW^7!nQSjOwL3=2pYoC{Y z(@^l*_@F(U(S^;+H40w4FKCZs?7mo|;I#=sdo*JcVvT~=CI)R%#wNxZ1+P6Aw8t{` zV60K_+QUJ6JYx^X8U?RS3fkn1O^P)NUVA)fPh{-zSfk*zCxZ4=#-4~Z3SN6MXwPPJ zsq^y9OTlYT1?`25Jr!#dyf!6hGcvl|dHLEXcx`IXUe4ImSfk*z=YsZXMwdJ-U(Wv(%y+R3SN6RXscG*yRk;WYaaxyZKZt>YZScpQP9?^ z)V0pbw;KhoeH^s)D|NN=a*cx5n)`ku|LX)e+zcx`c5+a{H^I9?kCuPq7M7L~Rn z)+l%_6CSiOXPNjxDR^yZSlc$0wlrQF1+RS`w4EyL^H`(cwPiuutTCQYop+`s<5`hnp;)8HVR(*F08FvrF|E#je^&z z!`cpSZq@PHD0uCMu(tgwxdvPGtEb?#pMuu2(te6H3SL_gwBD7rBGxE)?YE%ytF+%@ zje^&jtdzbjPp;I^rt)`h7~7Ny+Mg@AhJ^tvYB|R9bbcQSe$# z(C7tN6KfQ_mJ8bTm0Tq{dTtcFwsO$MRC4XnNTcAj`k;-gXgLY@7wT?9k zUTYJydn&C>tWogV>Oq@WX{*N?1+TRW+N4Tr7i$!}wsz2-thBXbje^(K3)<95TQAlq zcx}U=Jzr@X#u^2$Z4$H@m9|N&QSjR4L3_EtWoe<_n`f~lFR%>FM)#B4hY(cO0EDHX%xIx6MhS|IjiBfke*D2xvAvE zUSWN|R&o`=XnhpC_Gr_Q6)XB!Hn+d!SX(~HEt9-*lIxOONOFCWTP3-5l2=Lcs!48> zkG07(- z`Q#*@lH^m9d|HxEPx2W_J~PQ@CHd?mpOfT)N&a(^&rR~6B%hb$^OO8T*1vxT`{m*< zBP&MR1-VWPGvZzSWQ$I`+wDS@Nf-Hau}j5vBP&K0H|$v4#D30po&CkwfF;S8SW!E5jaI~3UIpMbl^RAs7MNAh-b-BNzjW6^sSO3C01p3vLJQ6x<1n7mNq) z72FF<5KI6j3MK*%3myg@6+8+&CU^{ZLhuCewBTvrS;4cwbAso9>4NFNOun9 zT)|x64Z$100>J{{ZNb~XBEcfyJ;8gx_SL}l^oaOCl@F+VB=`vEpe@#cEw)&d#Z*2O zdH#Qxu0eV~0ks6>kH65jaEQ!p27432I%`sPhVgdaD_k} zdWQ?tW%nww$yxG}Jk^w?Lg=N9!*7veI)E7z>OOj00{J(BqW; zrGPq_-YK{fxJ#gpqIV1K2F45M+euGOK;1d-6Wj+(5KI6L(}SwhWj{ebV507t$XyQ! z9s(W_(9e-xjexo~P7+K49uug0;$(q3AU-L05_nqhG%!Ul1(+&u9RUUE>i3-BIbgbA zIxs^(?>joy0qSr!TQD1#BcOL29p8Xgf!74D0rLdv(l%c}4>kIu0U6#cl>&7;YbKx{ z8NJ2;bsc+KKu<6_c>(JDwMZ3ua?wc(cn@f<|J9uTb+H_Ezp7G&-c)py0@Q)3T9s-l z!{n#~)Nld4ndqnl&|8U)NPs#hT_;cnq>%!3FuFl-129%VZy>vs?}Xc$k{F$8x3h3( zQ&RC)dH`XlXVCouy7|z92T;$RM+EA*GfAMHIUndXe86k?NI*9lddL8Dlc7@#pq?=` zf*PP!Pzz)QSs*8%LkitbfIQGrK&KMAkN_(Kbpkqu&8{#0&AJM^FW4T~L9hd`i(nUESHZ5pGCk*IJm=k1*^Np^fzIOY zDbRV^PJ&KAXF+G+7d`qfJbG7Ex>D&T=mzX3&>7Dj0#0Fa!V=&lC8s2TUcd@HC?^^@ ztqAm{a)>}@5Bmr>9mvT);4t6_fzI(AEjSuDPQYn7PQn44c;hr1a58YJfRksODg({{ z&Jvsj3=|9m1_=fM=L^mUE)-k{Tr9X47%CVF3=<3kt`b}Yj1Y_fZV=o6j1i0h#tFs& zcL?qP#tX&+_X+L;CI}_~69p522L%rT4-0f&W0GJJ@VMY{;0XaI8#uK9JPAA{cnX*z z&^dysf~mlBg6Du21TO$D3SI(jL0vf?-@&@Js^9A#P1%d^@ zLV;SR-x0h6yeoJY_(1Rh@R8sn;A6qZK+_zcmfppxET*zVums5HF15!lRb?ra&jp_Y z%LL1SZv@`}%_OVk(^N4kRjR1<@;g;%j->GsPz&S_s{BCZCjpIyG!X(TfZqga32d?w zptin@K&^Sr1ZuCV7N|w8MxZvgoItH=D+^Wz>IL;cYk}In+6dITwYos*YvhRkS7G(|%CgTE|#d=Jw>6iZ3AF?oe#O-w*4$I%j)V`+GXOuD;84 zPZz$xx>nmY$^R+2=UV>Hh@4&b`+KhEo{>4b;rI89;-1mD;-(`j#&RIEx1I)1&xnq2WI6 zDp}vUO;c~I9`}}#$6Yt+oFbd=;MCho>)X3w9hy8M+={=Z+CI|uZMduWYmoRohqdi5 z?SKYNlS+gezv6Ut zYvpVm(mEV8lh)1I`lR)9wgG8_oNY+jFlQT)Hp1XIqlC%-J@i zZF069X}g^5K-wW^JCSzE*)F7Aa`q?EpK{ib)G=p!lJ?BmUZlPF<09>yv(BW>IqOR5 znzL@CZaLeRv~SM#Bkh;7?xgNH>p|*~vja#6XWm+q`o;jjC5Ge`jPtO>~PZId`^&#$k~ykBXf2X>8P9?O*%Sf z$B>T6S$|UhoE=L#HfP6?j?3Bcq~miofHWXyCy-9a*@>hRb9NHxB$_!$C+F-G(kVGR zm2_&(P9vR`v(rhZ=j;s9896(XbY{-ZBAu19vq@*?>>ScLIU7hCn6p2V{+zRON$2Kl z5NS}(&Lf?dv-3&k=j?}U55fksG&omW!Q=<_811CA6Lno)+|VYoPxNF{{s4Z?c3sX7 z>&+*TD?E(FL`U|@ zdJ(;eK14s_NTNS+JaHm%8gV9Z4skAV5pfA|1#vYog1CVgLyRTvB<>>aBPJ4$5RVa4 zh#ABj;x%F(@h0&W@iy@;@d5D>@iDQOSVAl%z97CLip00Xcf=3GkHp`J6~wPZlS~I& ziKry1h!#W*QA=cr9FZql5(T23XhpOpRv~)Scd!G9)!@~Mw!|7lJEAA`wa9A|>ktRB zyb-w+RFQJ{{uI9vCae@vX?&!W%PuO=>(#4c}rd z1ucPkK|Rn`&=y!*ur{!+U|rzQdf?D{zOAeGu@2Rw;#fOK_a4N(hX@V<`U?62{RI7h zqXb6*{RRDj0fGU*$%2!C(*&mhX9~^)1_}lOg9L+s!GgiSMS_cfA%Y>mWrE9qVS-`6 zaKUikTEVrzXu)V;j9?7#dL8h39s9wmjH7aw;4WaiU_5ZI;9g*YU;^-v;2~g=U=lD@ zFco-S@H{X>Faww+m<7BfcnO#zm;=le%mrQ-ybdf7EC3b?76OX|i-7k9?*ktSJ_HsE z76YFNJ_D8smH|aU5%^Z{E%3eId*CO*Pe332Hv90~T%pPeD!&ST1u9wq6)o7g6l8$r zg62TApc<$V)Brg_4rnQ83DgPdfYyT6KpR0Dpsk=S&`!_}SVyo9u)bh@U?agsz$SuC zfXxJ(0qq6tfo%la0NV?;2X+$d1nex>8Q4{@E3ms@cc7!7BhX3E3Fs{740IKA1-c2k z0o?`NfgXY$KrcZrptqnmaH!x=ps%1WaD?Cp;3&aSKz~7h;CR9Dz)6CWfKvsh0%r)$ z0L~Vi4Ga_v1O^EP0fPmDfeQr}0z(Bufy)J#1H%NvfZ>ASz}14Qfsuldz-Yl};1*881T+tL;L)^{pi$_Kgit+&JUv)Ib|)mxidJG|bG z;7^r`W-@A9T*KPcYGrG?pX>1R`r^_1EiWEz>(f5IK`pDN$L4oqgmXF!=o!D}spwoBH1ZXv}A$ZFS@#WCrty{NwZ1{SChNW*%QU_)z1A;iBbcfteozWtJ1S@+ znW`q%D0r=Z&~9X^npmUYwE;n6@&|n{mpwNMUOPExw=+>qtWogVX+gU?>%P;=*2b5- z*Uk*ueOdR7U#77O;I)B4dob(v2g)>d5WF@hXpd&y-a?ti?t|9`2W>KY#_>y_;I)f_ z#;|_vX_T#vg4c!wZCcjthm>jTn0W27puLcFdnsiayDeTD7BoiKYagaequ{mSL7S6x zdpKnpyF6aIHfW56*ZxnLM!{>NgZ38FgTxvIuZ;;BW4X2ORJJw>UVFVR{aauNtM;tQ zGzwlD7uNP^*6nwdY2(th-4(QA*6o#*Y3!!?wT%zj_srB0KQ{_qyEkY*W!)ZK+1l8} z^V)=#2pVk&+6yhyD0ppF&}c`{K5Cgp!D}xCjV1-{!Io(hyf!Cjv@U4> zwoIeowYfo~DNcL8Wf}#qy&klUb8g?bOk-!+YYT$5bN0I% zsx1l{?H1bWF4HLZwY?v--E(fAyi8*!-D@8PjRp_xv6pESytX)KG;?TwzD%Rwwa9IbFu$%`w(`e=q(5wDMe*M1Ee4Kq5vDSKE7 zUaM%4ess}BQ_&*QD0nRsG#YPoY*e;33SMg-G@5go#~KB%RR@g*p6Xbm;I*2d(d46} zuCfQE;I&-PXav$RS(!$`Yb}E|nC8b=qu{l=pj||}WUNu}TI-0+B!j_RbEG#WgCQo*VYf(NSZ=pje^%U3fd?d zM`MkG*ER{-O*Edy8U?Ry7PMP(?&!AcxpBDbwe~@~HRq0f%QOy#y|zuzZl_f?eozWt z+dgP_=iG5~+1j>GwVi@?FU`5}+9>$7?HsfTId{xmwl)sJy|!!69?H2R@-mG>bg%6m zv`2I9c)d*H0N!gIgZ3D$%JFlf;I&Rcdm`tK^~=`QDb+d$?HSsk=$Bs1$Uh5vTmuT6JH40wq5wurn`HnRTUh5UKc{GB@8U?TQ4%%Be*LqR5 zL3*d!p+Q?jvw6HW3Vv;UgZ3fq>9Iz^YexiaF-_~SM!{=G1#Ky9?y*L}YyE?^j8^zq zqu{mUgZ2&W^07w2YbOP5IZgDjM!{>R2JJ^0?PHCC*Ukvq3Yzg_je^(C4qB7EYw0Qb zEztDiwShs)wj|Y- z2JMQxYvnD|mZsVlLAyHd+JMWnFH-HRppD487UD9ECS(8HEND06UHfsFMuW1~z7N{y zylY)9(`at?+K)lIIq%w@%QPCJz4lYkZppir=`!u7RQow-x8+^Cb(!{as{IzUJM*qp zyG)~*+dpV!O?t?4Z{D?emuWPDd#x&H6Y{P_yiBV~wVI$kn0M{vWm-+D<%9M}-nFKe zX*93<2Q38cvAk<*FVkpz_gbr!_(6hx$i!;eH$*+=MU0z&BTDZLUfxN$P7NLz@ zUDrh~$*%DYct!eKT}$KMh&sD2x##+Zdq#544Rtmuxo334JvVaCm^!=3-&4HRZ6>Yk z7Va2VXSXK*<;#}gp4++Sjyk(Dx#zBimEFxf5f1>|IMF%>k)8B$Hs5k=x#;s@d z^k*Teh-#vi$P+6Q^+X$Db)p@yHnASDA+ZUu8PT5Dn%Iumk=TX!6VZX#lh}*sLUbec zBYF@A5C;+m5r+_chPsGg*zepJs9>Pz(!@n6xODntLK|ID4r;@|62 zm8V|Xr)pguXFZ}N^_7V_qCnIWt%%mdD#WTp8)7wLb)qe?2GNdKlUR#bn^=cfmspS3 zfY^}OnAn8ajA&16O>9eSM{G~*NbExViP(+kKy)PbB=#cqCb|&&5c?6`i5|oOL@%N@ zaVXK3IELs?97`NeoIspNoJ^cToJyQVoKBoUoJpKboJ0JXIF~q&IG-3yTu59@3?VKd zE+d8!R}jOAtBGrg5yW-GNMaOmBXJXPGjR(sj<}7uow$Rzi@2M(hq#ZJKs-P^NIXP5 zLOe=LA|5B6Af6U;Mk`QPn(SA3wWc8;vz(sG}^_sMm=`3MdMS!1sdhflPBC z)0|F1f-0a^Pz&S)IiRJWB~T}*16m1M0S^cs03H-P2s|Qq1Xxf7EZ~A@?+e}sJ`#Kc zEEX&Vs;hx&&Sw1wojF&LvkFdIL0e!=!J0tm-r2mKN^?3FZJ@h0;I54Y8v~mPHU-)X z+5=k)wg$EnYzOQh*a6sCursiSU=Ls~!CpWYK^LIApgVAY-~iwt!9l=3fA`Umda5IN zs-p#?fzXe1tSV!vgnp#Asd5{Y|FaIIll9*x^WUEmJOzXSR?WQ~8(gp}JBHuXLrF|C+9Pv91lMjm<%yTzoL zhF_Xnq+P<+tGD&lal;-+ODwSXNcrO9<%>_2FFunl+6L+Bo^_?9g@sSW^2Ha+7iX0( zzU&s0Rucx4mft(CeDTfl#YJv0X$j#o(Jdy;AIx&$7Lzs)b|Bnh($KNomTNI--C#-r zf2VKrQd^kr^lf8IG(peck+xxdPr^2;=O>+lH?Fr$>TT0{+l=pR>YLZw7WLM?o_@hw zstTO$WDu1{O@pkpgfrX6|M5!SEXC!lK(x2|IN4nrmS1dI>j<+bk6G!;2amFN?2e-N*&b%(C0$YHERpMZ%$99`=UZBucg7kxr} zIEZ6w-Jx$Pau}>N`UE^4#5-%

Zm5m@LsJ;K?A~SL+U)Q<1}Hi9P{Sg7{FaJG4$k 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 literal 394265 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 HS+o8LAX;@( diff --git a/.vs/IoTGateway/v16/.suo b/.vs/IoTGateway/v16/.suo index 5ff1237ca44f0c27401e94b2a6f40fe691366dc8..284a0d1b3c39d5cf4b90eb2a8ced652fd3beeef9 100644 GIT binary patch delta 15731 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 oR3Wa~MbTozHjL3*KeLUDx#<=aTT|U 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 x.Method).SetSort(true).SetWidth(160), this.MakeGridHeader(x => x.DeviceAddress).SetSort(true).SetWidth(80), this.MakeGridHeader(x => x.DataType).SetSort(true).SetWidth(80), - this.MakeGridHeader(x => x.Value).SetWidth(80), - this.MakeGridHeader(x => x.CookedValue).SetWidth(80), - this.MakeGridHeader(x => x.State).SetWidth(80), + this.MakeGridHeader(x => x.Value).SetWidth(80).SetFormat((a,b)=>{ + return $"

{a.Value}
"; + }), + this.MakeGridHeader(x => x.CookedValue).SetWidth(80).SetFormat((a,b)=>{ + return $"
{a.CookedValue}
"; + }), + this.MakeGridHeader(x => x.State).SetWidth(80).SetFormat((a,b)=>{ + return $"
{a.State}
"; + }), this.MakeGridHeader(x => x.Expressions).SetWidth(150), //this.MakeGridHeader(x => x.ProtectType).SetSort(true), this.MakeGridHeader(x => x.DeviceName_view).SetSort(true).SetWidth(90), diff --git a/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml b/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml index b3225a5..f5760bf 100644 --- a/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml +++ b/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml @@ -11,5 +11,36 @@ - + + + + + \ No newline at end of file diff --git a/IoTGateway/wwwroot/mqtt.min.js b/IoTGateway/wwwroot/mqtt.min.js new file mode 100644 index 0000000..7badcf6 --- /dev/null +++ b/IoTGateway/wwwroot/mqtt.min.js @@ -0,0 +1 @@ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).mqtt=e()}}(function(){return function(){return function e(t,r,n){function i(s,a){if(!r[s]){if(!t[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[s]={exports:{}};t[s][0].call(l.exports,function(e){return i(t[s][1][e]||e)},l,l.exports,e,t,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;sthis.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&"object"==typeof this.options.authPacket)y(this,f({cmd:"auth",reasonCode:0},this.options.authPacket))}this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(function(){h("!!connectTimeout hit!! Calling _cleanUp with force `true`"),t._cleanUp(!0)},this.options.connectTimeout)},v.prototype._handlePacket=function(e,t){var r=this.options;if(5===r.protocolVersion&&r.properties&&r.properties.maximumPacketSize&&r.properties.maximumPacketSizeo.properties.topicAliasMaximum||!o.properties.topicAliasMaximum&&r.properties.topicAlias))&&delete i.properties.topicAlias),h("publish :: qos",r.qos),r.qos){case 1:case 2:this.outgoing[i.messageId]={volatile:!1,cb:n||w},this._storeProcessing?(h("_storeProcessing enabled"),this._packetIdsDuringStoreProcessing[i.messageId]=!1,this._storePacket(i,void 0,r.cbStorePut)):(h("MqttClient:publish: packet cmd: %s",i.cmd),this._sendPacket(i,void 0,r.cbStorePut));break;default:this._storeProcessing?(h("_storeProcessing enabled"),this._storePacket(i,n,r.cbStorePut)):(h("MqttClient:publish: packet cmd: %s",i.cmd),this._sendPacket(i,n,r.cbStorePut))}return this},v.prototype.subscribe=function(){for(var e,t=new Array(arguments.length),r=0;r0){var t={qos:e.qos};5===p&&(t.nl=e.nl||!1,t.rap=e.rap||!1,t.rh=e.rh||0,t.properties=e.properties),u._resubscribeTopics[e.topic]=t,b.push(e.topic)}}),u.messageIdToTopic[e.messageId]=b}return this.outgoing[e.messageId]={volatile:!0,cb:function(e,t){if(!e)for(var r=t.granted,n=0;n{h("end :: finish :: calling process.nextTick on closeStores"),p(function(){h("end :: closeStores: closing incoming and outgoing stores"),n.disconnected=!0,n.incomingStore.close(function(e){n.outgoingStore.close(function(t){if(h("end :: closeStores: emitting end"),n.emit("end"),r){let n=e||t;h("end :: closeStores: invoking callback with args"),r(n)}})}),n._deferredReconnect&&n._deferredReconnect()}.bind(n))},t)}return h("end :: (%s)",this.options.clientId),null!=e&&"boolean"==typeof e||(r=t||w,t=e,e=!1,"object"!=typeof t&&(r=t,t=null,"function"!=typeof r&&(r=w))),"object"!=typeof t&&(r=t,t=null),h("end :: cb? %s",!!r),r=r||w,this.disconnecting?(r(),this):(this._clearReconnect(),this.disconnecting=!0,!e&&Object.keys(this.outgoing).length>0?(h("end :: (%s) :: calling finish in 10ms once outgoing is empty",n.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,i,10))):(h("end :: (%s) :: immediately calling finish",n.options.clientId),i()),this)},v.prototype.removeOutgoingMessage=function(e){var t=this.outgoing[e]?this.outgoing[e].cb:null;return delete this.outgoing[e],this.outgoingStore.del({messageId:e},function(){t(new Error("Message removed"))}),this},v.prototype.reconnect=function(e){h("client reconnect");var t=this,r=function(){e?(t.options.incomingStore=e.incomingStore,t.options.outgoingStore=e.outgoingStore):(t.options.incomingStore=null,t.options.outgoingStore=null),t.incomingStore=t.options.incomingStore||new o,t.outgoingStore=t.options.outgoingStore||new o,t.disconnecting=!1,t.disconnected=!1,t._deferredReconnect=null,t._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=r:r(),this},v.prototype._reconnect=function(){h("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this._setupStream()}),h("client already connected. disconnecting first.")):(h("_reconnect: calling _setupStream"),this._setupStream())},v.prototype._setupReconnect=function(){var e=this;!e.disconnecting&&!e.reconnectTimer&&e.options.reconnectPeriod>0?(this.reconnecting||(h("_setupReconnect :: emit `offline` state"),this.emit("offline"),h("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),h("_setupReconnect :: setting reconnectTimer for %d ms",e.options.reconnectPeriod),e.reconnectTimer=setInterval(function(){h("reconnectTimer :: reconnect triggered!"),e._reconnect()},e.options.reconnectPeriod)):h("_setupReconnect :: doing nothing...")},v.prototype._clearReconnect=function(){h("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)},v.prototype._cleanUp=function(e,t){var r,n=arguments[2];if(t&&(h("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",t)),h("_cleanUp :: forced? %s",e),e)0===this.options.reconnectPeriod&&this.options.clean&&(r=this.outgoing)&&(h("flush: queue exists? %b",!!r),Object.keys(r).forEach(function(e){"function"==typeof r[e].cb&&(r[e].cb(new Error("Connection closed")),delete r[e])})),h("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{var i=f({cmd:"disconnect"},n);h("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(i,d.bind(null,this.stream.end.bind(this.stream)))}this.disconnecting||(h("_cleanUp :: client not disconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),null!==this.pingTimer&&(h("_cleanUp :: clearing pingTimer"),this.pingTimer.clear(),this.pingTimer=null),t&&!this.connected&&(h("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",t),t())},v.prototype._sendPacket=function(e,t,r){if(h("_sendPacket :: (%s) :: start",this.options.clientId),r=r||w,!this.connected)return h("_sendPacket :: client not connected. Storing packet offline."),void this._storePacket(e,t,r);switch(this._shiftPingInterval(),e.cmd){case"publish":break;case"pubrel":return void _(this,e,t,r);default:return void y(this,e,t)}switch(e.qos){case 2:case 1:_(this,e,t,r);break;case 0:default:y(this,e,t)}h("_sendPacket :: (%s) :: end",this.options.clientId)},v.prototype._storePacket=function(e,t,r){h("_storePacket :: packet: %o",e),h("_storePacket :: cb? %s",!!t),r=r||w,0===(e.qos||0)&&this.queueQoSZero||"publish"!==e.cmd?this.queue.push({packet:e,cb:t}):e.qos>0?(t=this.outgoing[e.messageId]?this.outgoing[e.messageId].cb:null,this.outgoingStore.put(e,function(e){if(e)return t&&t(e);r()})):t&&t(new Error("No connection to broker"))},v.prototype._setupPingTimer=function(){h("_setupPingTimer :: keepalive %d (seconds)",this.options.keepalive);var e=this;!this.pingTimer&&this.options.keepalive&&(this.pingResp=!0,this.pingTimer=u(function(){e._checkPing()},1e3*this.options.keepalive))},v.prototype._shiftPingInterval=function(){this.pingTimer&&this.options.keepalive&&this.options.reschedulePings&&this.pingTimer.reschedule(1e3*this.options.keepalive)},v.prototype._checkPing=function(){h("_checkPing :: checking ping..."),this.pingResp?(h("_checkPing :: ping response received. Clearing flag and sending `pingreq`"),this.pingResp=!1,this._sendPacket({cmd:"pingreq"})):(h("_checkPing :: calling _cleanUp with force true"),this._cleanUp(!0))},v.prototype._handlePingresp=function(){this.pingResp=!0},v.prototype._handleConnack=function(e){h("_handleConnack");var t=this.options,r=5===t.protocolVersion?e.reasonCode:e.returnCode;if(clearTimeout(this.connackTimer),e.properties&&(e.properties.topicAliasMaximum&&(t.properties||(t.properties={}),t.properties.topicAliasMaximum=e.properties.topicAliasMaximum),e.properties.serverKeepAlive&&t.keepalive&&(t.keepalive=e.properties.serverKeepAlive,this._shiftPingInterval()),e.properties.maximumPacketSize&&(t.properties||(t.properties={}),t.properties.maximumPacketSize=e.properties.maximumPacketSize)),0===r)this.reconnecting=!1,this._onConnect(e);else if(r>0){var n=new Error("Connection refused: "+m[r]);n.code=r,this.emit("error",n)}},v.prototype._handlePublish=function(e,t){h("_handlePublish: packet %o",e),t=void 0!==t?t:w;var r=e.topic.toString(),n=e.payload,i=e.qos,o=e.messageId,s=this,a=this.options,c=[0,16,128,131,135,144,145,151,153];switch(h("_handlePublish: qos %d",i),i){case 2:a.customHandleAcks(r,n,e,function(r,n){return r instanceof Error||(n=r,r=null),r?s.emit("error",r):-1===c.indexOf(n)?s.emit("error",new Error("Wrong reason code for pubrec")):void(n?s._sendPacket({cmd:"pubrec",messageId:o,reasonCode:n},t):s.incomingStore.put(e,function(){s._sendPacket({cmd:"pubrec",messageId:o},t)}))});break;case 1:a.customHandleAcks(r,n,e,function(i,a){return i instanceof Error||(a=i,i=null),i?s.emit("error",i):-1===c.indexOf(a)?s.emit("error",new Error("Wrong reason code for puback")):(a||s.emit("message",r,n,e),void s.handleMessage(e,function(e){if(e)return t&&t(e);s._sendPacket({cmd:"puback",messageId:o,reasonCode:a},t)}))});break;case 0:this.emit("message",r,n,e),this.handleMessage(e,t);break;default:h("_handlePublish: unknown QoS. Doing nothing.")}},v.prototype.handleMessage=function(e,t){t()},v.prototype._handleAck=function(e){var t,r=e.messageId,n=e.cmd,i=null,o=this.outgoing[r]?this.outgoing[r].cb:null,s=this;if(o){switch(h("_handleAck :: packet type",n),n){case"pubcomp":case"puback":var a=e.reasonCode;a&&a>0&&16!==a&&((t=new Error("Publish error: "+m[a])).code=a,o(t,e)),delete this.outgoing[r],this.outgoingStore.del(e,o);break;case"pubrec":i={cmd:"pubrel",qos:2,messageId:r};var c=e.reasonCode;c&&c>0&&16!==c?((t=new Error("Publish error: "+m[c])).code=c,o(t,e)):this._sendPacket(i);break;case"suback":delete this.outgoing[r];for(var u=0;u0)if(this.options.resubscribe)if(5===this.options.protocolVersion){h("_resubscribe: protocolVersion 5");for(var r=0;ri&&setTimeout(e,c,t,r,o),u&&"string"==typeof t&&(t=n.from(t,"utf8"));try{h.send(t)}catch(e){return o(e)}o()},function(e){h.close(),e()});t.objectMode||(p._writev=_),p.on("close",()=>{h.close()});const d=void 0!==h.addEventListener;function g(){r.setReadable(p),r.setWritable(p),r.emit("connect")}function b(){r.end(),r.destroy()}function m(e){r.destroy(e)}function y(e){let t=e.data;t=t instanceof ArrayBuffer?n.from(t):n.from(t,"utf8"),p.push(t)}function _(e,t){const r=new Array(e.length);for(let t=0;t{a.destroy()}),a}}).call(this)}).call(this,e("_process"),e("buffer").Buffer)},{_process:32,buffer:14,debug:15,duplexify:17,"readable-stream":51,ws:60}],6:[function(e,t,r){(function(r){(function(){"use strict";var n,i,o,s=e("readable-stream").Transform,a=e("duplexify");t.exports=function(e,t){if(t.hostname=t.hostname||t.host,!t.hostname)throw new Error("Could not determine host. Specify host manually.");var c="MQIsdp"===t.protocolId&&3===t.protocolVersion?"mqttv3.1":"mqtt";!function(e){e.hostname||(e.hostname="localhost"),e.path||(e.path="/"),e.wsOptions||(e.wsOptions={})}(t);var u=function(e,t){var r="wxs"===e.protocol?"wss":"ws",n=r+"://"+e.hostname+e.path;return e.port&&80!==e.port&&443!==e.port&&(n=r+"://"+e.hostname+":"+e.port+e.path),"function"==typeof e.transformWsUrl&&(n=e.transformWsUrl(n,e,t)),n}(t,e);n=wx.connectSocket({url:u,protocols:[c]}),i=function(){var e=new s;return e._write=function(e,t,r){n.send({data:e.buffer,success:function(){r()},fail:function(e){r(new Error(e))}})},e._flush=function(e){n.close({success:function(){e()}})},e}(),(o=a.obj())._destroy=function(e,t){n.close({success:function(){t&&t(e)}})};var l=o.destroy;return o.destroy=function(){o.destroy=l;var e=this;setTimeout(function(){n.close({fail:function(){e._destroy(new Error)}})},0)}.bind(o),n.onOpen(function(){o.setReadable(i),o.setWritable(i),o.emit("connect")}),n.onMessage(function(e){var t=e.data;t=t instanceof ArrayBuffer?r.from(t):r.from(t,"utf8"),i.push(t)}),n.onClose(function(){o.end(),o.destroy()}),n.onError(function(e){o.destroy(new Error(e.errMsg))}),o}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:14,duplexify:17,"readable-stream":51}],7:[function(e,t,r){"use strict";var n=e("xtend"),i=e("readable-stream").Readable,o={objectMode:!0},s={clean:!0};function a(e){if(!(this instanceof a))return new a(e);this.options=e||{},this.options=n(s,e),this._inflights=new Map}a.prototype.put=function(e,t){return this._inflights.set(e.messageId,e),t&&t(),this},a.prototype.createStream=function(){var e=new i(o),t=!1,r=[],n=0;return this._inflights.forEach(function(e,t){r.push(e)}),e._read=function(){!t&&n0?s-4:s;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===a&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,c[l++]=255&t);1===a&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},r.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],s=0,a=r-i;sa?a:s+16383));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,c=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function l(e,t,r){for(var i,o,s=[],a=t;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],11:[function(e,t,r){"use strict";const{Buffer:n}=e("buffer"),i=Symbol.for("BufferList");function o(e){if(!(this instanceof o))return new o(e);o._init.call(this,e)}o._init=function(e){Object.defineProperty(this,i,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)},o.prototype._new=function(e){return new o(e)},o.prototype._offset=function(e){if(0===e)return[0,0];let t=0;for(let r=0;rthis.length||e<0)return;const t=this._offset(e);return this._bufs[t[0]][t[1]]},o.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},o.prototype.copy=function(e,t,r,i){if(("number"!=typeof r||r<0)&&(r=0),("number"!=typeof i||i>this.length)&&(i=this.length),r>=this.length)return e||n.alloc(0);if(i<=0)return e||n.alloc(0);const o=!!e,s=this._offset(r),a=i-r;let c=a,u=o&&t||0,l=s[1];if(0===r&&i===this.length){if(!o)return 1===this._bufs.length?this._bufs[0]:n.concat(this._bufs,this.length);for(let t=0;tr)){this._bufs[t].copy(e,u,l,l+c),u+=r;break}this._bufs[t].copy(e,u,l),u+=r,c-=r,l&&(l=0)}return e.length>u?e.slice(0,u):e},o.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"!=typeof t?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();const r=this._offset(e),n=this._offset(t),i=this._bufs.slice(r[0],n[0]+1);return 0===n[1]?i.pop():i[i.length-1]=i[i.length-1].slice(0,n[1]),0!==r[1]&&(i[0]=i[0].slice(r[1])),this._new(i)},o.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},o.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},o.prototype.duplicate=function(){const e=this._new();for(let t=0;tthis.length?this.length:t;const i=this._offset(t);let o=i[0],s=i[1];for(;o=e.length){const r=t.indexOf(e,s);if(-1!==r)return this._reverseOffset([o,r]);s=t.length-e.length+1}else{const t=this._reverseOffset([o,s]);if(this._match(t,e))return t;s++}}s=0}return-1},o.prototype._match=function(e,t){if(this.length-ei)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=s.prototype,t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return u(e)}return a(e,t,r)}function a(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!s.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var r=0|h(e,t),n=o(r),i=n.write(e,t);i!==r&&(n=n.slice(0,i));return n}(e,t);if(ArrayBuffer.isView(e))return l(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(q(e,ArrayBuffer)||e&&q(e.buffer,ArrayBuffer))return function(e,t,r){if(t<0||e.byteLength=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return 0|e}function h(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return N(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return U(e).length;default:if(i)return n?-1:N(e).length;t=(""+t).toLowerCase(),i=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function d(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),D(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:g(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):g(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function g(e,t,r,n,i){var o,s=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){var l=-1;for(o=r;oa&&(r=a-c),o=r;o>=0;o--){for(var f=!0,h=0;hi&&(n=i):n=i;var o=t.length;n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function S(e,r,n){return 0===r&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,n))}function E(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+f<=r)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(o=e[i+1]))&&(c=(31&u)<<6|63&o)>127&&(l=c);break;case 3:o=e[i+1],s=e[i+2],128==(192&o)&&128==(192&s)&&(c=(15&u)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:o=e[i+1],s=e[i+2],a=e[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=f}return function(e){var t=e.length;if(t<=k)return String.fromCharCode.apply(String,e);var r="",n=0;for(;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,r);case"utf8":case"utf-8":return E(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return C(this,t,r);case"base64":return S(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",t=r.INSPECT_MAX_BYTES;return e=this.toString("hex",0,t).replace(/(.{2})/g,"$1 ").trim(),this.length>t&&(e+=" ... "),""},s.prototype.compare=function(e,t,r,n,i){if(q(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var o=i-n,a=r-t,c=Math.min(o,a),u=this.slice(n,i),l=e.slice(t,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return m(this,e,t,r);case"ascii":return y(this,e,t,r);case"latin1":case"binary":return _(this,e,t,r);case"base64":return w(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var k=4096;function I(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function O(e,t,r,n,i,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function x(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function P(e,t,r,i,o){return t=+t,r>>>=0,o||x(e,0,r,4),n.write(e,t,r,i,23,4),r+4}function M(e,t,r,i,o){return t=+t,r>>>=0,o||x(e,0,r,8),n.write(e,t,r,i,52,8),r+8}s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||R(e,t,this.length);for(var n=this[e],i=1,o=0;++o>>=0,t>>>=0,r||R(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||R(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||R(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){e>>>=0,t||R(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){e>>>=0,t||R(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return e>>>=0,t||R(e,4,this.length),n.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return e>>>=0,t||R(e,4,this.length),n.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return e>>>=0,t||R(e,8,this.length),n.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return e>>>=0,t||R(e,8,this.length),n.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t>>>=0,r>>>=0,n)||O(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,n)||O(this,e,t,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,255,0),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);O(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);O(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeFloatLE=function(e,t,r){return P(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return P(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return M(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return M(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(!s.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,n),t);return i},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===e.length){var i=e.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(e=i)}}else"number"==typeof e&&(e&=255);if(t<0||this.length>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function U(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(L,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function j(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function q(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function D(e){return e!=e}}).call(this)}).call(this,e("buffer").Buffer)},{"base64-js":10,buffer:14,ieee754:20}],15:[function(e,t,r){(function(n){(function(){r.formatArgs=function(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const r="color: "+this.color;e.splice(1,0,r,"color: inherit");let n=0,i=0;e[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&"%c"===e&&(i=++n)}),e.splice(i,0,r)},r.save=function(e){try{e?r.storage.setItem("debug",e):r.storage.removeItem("debug")}catch(e){}},r.load=function(){let e;try{e=r.storage.getItem("debug")}catch(e){}!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG);return e},r.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},r.storage=function(){try{return localStorage}catch(e){}}(),r.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],r.log=console.debug||console.log||(()=>{}),t.exports=e("./common")(r);const{formatters:i}=t.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}).call(this)}).call(this,e("_process"))},{"./common":16,_process:32}],16:[function(e,t,r){t.exports=function(t){function r(e){let t,i=null;function o(...e){if(!o.enabled)return;const n=o,i=Number(new Date),s=i-(t||i);n.diff=s,n.prev=t,n.curr=i,t=i,e[0]=r.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(t,i)=>{if("%%"===t)return"%";a++;const o=r.formatters[i];if("function"==typeof o){const r=e[a];t=o.call(n,r),e.splice(a,1),a--}return t}),r.formatArgs.call(n,e),(n.log||r.log).apply(n,e)}return o.namespace=e,o.useColors=r.useColors(),o.color=r.selectColor(e),o.extend=n,o.destroy=r.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null===i?r.enabled(e):i,set:e=>{i=e}}),"function"==typeof r.init&&r.init(o),o}function n(e,t){const n=r(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function i(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return r.debug=r,r.default=r,r.coerce=function(e){return e instanceof Error?e.stack||e.message:e},r.disable=function(){const e=[...r.names.map(i),...r.skips.map(i).map(e=>"-"+e)].join(",");return r.enable(""),e},r.enable=function(e){let t;r.save(e),r.names=[],r.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),i=n.length;for(t=0;t{r[e]=t[e]}),r.names=[],r.skips=[],r.formatters={},r.selectColor=function(e){let t=0;for(let r=0;r0&&a.length>o){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+' "'+String(t)+'" listeners added. Use emitter.setMaxListeners() to increase limit.');c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,"object"==typeof console&&console.warn&&console.warn("%s: %s",c.name,c.message)}}else a=s[t]=r,++e._eventsCount;return e}function h(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var e=new Array(arguments.length),t=0;t1&&(t=arguments[1]),t instanceof Error)throw t;var c=new Error('Unhandled "error" event. ('+t+")");throw c.context=t,c}if(!(r=s[e]))return!1;var u="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,i=b(e,n),o=0;o=0;s--)if(r[s]===t||r[s].listener===t){a=r[s].listener,o=s;break}if(o<0)return this;0===o?r.shift():function(e,t){for(var r=t,n=r+1,i=e.length;n=0;o--)this.removeListener(e,t[o]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],20:[function(e,t,r){r.read=function(e,t,r,n,i){var o,s,a=8*i-n-1,c=(1<>1,l=-7,f=r?i-1:0,h=r?-1:1,p=e[t+f];for(f+=h,o=p&(1<<-l)-1,p>>=-l,l+=a;l>0;o=256*o+e[t+f],f+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+e[t+f],f+=h,l-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),o-=u}return(p?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,c,u=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,d=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(s++,c/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(t*c-1)*Math.pow(2,i),s+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[r+p]=255&a,p+=d,a/=256,i-=8);for(s=s<0;e[r+p]=255&s,p+=d,s/=256,u-=8);e[r+p-d]|=128*g}},{}],21:[function(e,t,r){"function"==typeof Object.create?t.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},{}],22:[function(e,t,r){(function(e){(function(){const r=t.exports;r.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},r.codes={};for(const e in r.types){const t=r.types[e];r.codes[t]=e}r.CMD_SHIFT=4,r.CMD_MASK=240,r.DUP_MASK=8,r.QOS_MASK=3,r.QOS_SHIFT=1,r.RETAIN_MASK=1,r.VARBYTEINT_MASK=127,r.VARBYTEINT_FIN_MASK=128,r.VARBYTEINT_MAX=268435455,r.SESSIONPRESENT_MASK=1,r.SESSIONPRESENT_HEADER=e.from([r.SESSIONPRESENT_MASK]),r.CONNACK_HEADER=e.from([r.codes.connack<[0,1].map(i=>[0,1].map(o=>{const s=e.alloc(1);return s.writeUInt8(r.codes[t]<e.from([t])),r.EMPTY={pingreq:e.from([r.codes.pingreq<<4,0]),pingresp:e.from([r.codes.pingresp<<4,0]),disconnect:e.from([r.codes.disconnect<<4,0])}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:14}],23:[function(e,t,r){(function(r){(function(){const n=e("./writeToStream"),i=e("events");class o extends i{constructor(){super(),this._array=new Array(20),this._i=0}write(e){return this._array[this._i++]=e,!0}concat(){let e=0;const t=new Array(this._array.length),n=this._array;let i,o=0;for(i=0;i>8,0),r.writeUInt8(255&t,1),r}t.exports={cache:n,generateCache:function(){for(let e=0;e0&&(r|=128),o.writeUInt8(r,n++)}while(t>0&&n<4);return t>0&&(n=0),i?o.subarray(0,n):o.slice(0,n)},generate4ByteBuffer:function(t){const r=e.allocUnsafe(4);return r.writeUInt32BE(t,0),r}}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:14}],26:[function(e,t,r){t.exports=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}}},{}],27:[function(e,t,r){const n=e("bl"),i=e("events"),o=e("./packet"),s=e("./constants"),a=e("debug")("mqtt-packet:parser");class c extends i{constructor(){super(),this.parser=this.constructor.parser}static parser(e){return this instanceof c?(this.settings=e||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):(new c).parser(e)}_resetState(){a("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new o,this.error=null,this._list=n(),this._stateCounter=0}parse(e){for(this.error&&this._resetState(),this._list.append(e),a("parse: current state: %s",this._states[this._stateCounter]);(-1!==this.packet.length||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,a("parse: state complete. _stateCounter is now: %d",this._stateCounter),a("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return a("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){const e=this._list.readUInt8(0);return this.packet.cmd=s.types[e>>s.CMD_SHIFT],this.packet.retain=0!=(e&s.RETAIN_MASK),this.packet.qos=e>>s.QOS_SHIFT&s.QOS_MASK,this.packet.dup=0!=(e&s.DUP_MASK),a("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0}_parseLength(){const e=this._parseVarByteNum(!0);return e&&(this.packet.length=e.value,this._list.consume(e.bytes)),a("_parseLength %d",e.value),!!e}_parsePayload(){a("_parsePayload: payload %O",this._list);let e=!1;if(0===this.packet.length||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}e=!0}return a("_parsePayload complete result: %s",e),e}_parseConnect(){let e,t,r,n;a("_parseConnect");const i={},o=this.packet,c=this._parseString();if(null===c)return this._emitError(new Error("Cannot parse protocolId"));if("MQTT"!==c&&"MQIsdp"!==c)return this._emitError(new Error("Invalid protocolId"));if(o.protocolId=c,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(o.protocolVersion=this._list.readUInt8(this._pos),o.protocolVersion>=128&&(o.bridgeMode=!0,o.protocolVersion=o.protocolVersion-128),3!==o.protocolVersion&&4!==o.protocolVersion&&5!==o.protocolVersion)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(i.username=this._list.readUInt8(this._pos)&s.USERNAME_MASK,i.password=this._list.readUInt8(this._pos)&s.PASSWORD_MASK,i.will=this._list.readUInt8(this._pos)&s.WILL_FLAG_MASK,i.will&&(o.will={},o.will.retain=0!=(this._list.readUInt8(this._pos)&s.WILL_RETAIN_MASK),o.will.qos=(this._list.readUInt8(this._pos)&s.WILL_QOS_MASK)>>s.WILL_QOS_SHIFT),o.clean=0!=(this._list.readUInt8(this._pos)&s.CLEAN_SESSION_MASK),this._pos++,o.keepalive=this._parseNum(),-1===o.keepalive)return this._emitError(new Error("Packet too short"));if(5===o.protocolVersion){const e=this._parseProperties();Object.getOwnPropertyNames(e).length&&(o.properties=e)}const u=this._parseString();if(null===u)return this._emitError(new Error("Packet too short"));if(o.clientId=u,a("_parseConnect: packet.clientId: %s",o.clientId),i.will){if(5===o.protocolVersion){const e=this._parseProperties();Object.getOwnPropertyNames(e).length&&(o.will.properties=e)}if(null===(e=this._parseString()))return this._emitError(new Error("Cannot parse will topic"));if(o.will.topic=e,a("_parseConnect: packet.will.topic: %s",o.will.topic),null===(t=this._parseBuffer()))return this._emitError(new Error("Cannot parse will payload"));o.will.payload=t,a("_parseConnect: packet.will.paylaod: %s",o.will.payload)}if(i.username){if(null===(n=this._parseString()))return this._emitError(new Error("Cannot parse username"));o.username=n,a("_parseConnect: packet.username: %s",o.username)}if(i.password){if(null===(r=this._parseBuffer()))return this._emitError(new Error("Cannot parse password"));o.password=r}return this.settings=o,a("_parseConnect: complete"),o}_parseConnack(){a("_parseConnack");const e=this.packet;if(this._list.length<1)return null;if(e.sessionPresent=!!(this._list.readUInt8(this._pos++)&s.SESSIONPRESENT_MASK),5===this.settings.protocolVersion)this._list.length>=2?e.reasonCode=this._list.readUInt8(this._pos++):e.reasonCode=0;else{if(this._list.length<2)return null;e.returnCode=this._list.readUInt8(this._pos++)}if(-1===e.returnCode||-1===e.reasonCode)return this._emitError(new Error("Cannot parse return code"));if(5===this.settings.protocolVersion){const t=this._parseProperties();Object.getOwnPropertyNames(t).length&&(e.properties=t)}a("_parseConnack: complete")}_parsePublish(){a("_parsePublish");const e=this.packet;if(e.topic=this._parseString(),null===e.topic)return this._emitError(new Error("Cannot parse topic"));if(!(e.qos>0)||this._parseMessageId()){if(5===this.settings.protocolVersion){const t=this._parseProperties();Object.getOwnPropertyNames(t).length&&(e.properties=t)}e.payload=this._list.slice(this._pos,e.length),a("_parsePublish: payload from buffer list: %o",e.payload)}}_parseSubscribe(){a("_parseSubscribe");const e=this.packet;let t,r,n,i,o,c,u;if(1!==e.qos)return this._emitError(new Error("Wrong subscribe header"));if(e.subscriptions=[],this._parseMessageId()){if(5===this.settings.protocolVersion){const t=this._parseProperties();Object.getOwnPropertyNames(t).length&&(e.properties=t)}for(;this._pos=e.length)return this._emitError(new Error("Malformed Subscribe Payload"));n=(r=this._parseByte())&s.SUBSCRIBE_OPTIONS_QOS_MASK,c=0!=(r>>s.SUBSCRIBE_OPTIONS_NL_SHIFT&s.SUBSCRIBE_OPTIONS_NL_MASK),o=0!=(r>>s.SUBSCRIBE_OPTIONS_RAP_SHIFT&s.SUBSCRIBE_OPTIONS_RAP_MASK),i=r>>s.SUBSCRIBE_OPTIONS_RH_SHIFT&s.SUBSCRIBE_OPTIONS_RH_MASK,u={topic:t,qos:n},5===this.settings.protocolVersion?(u.nl=c,u.rap=o,u.rh=i):this.settings.bridgeMode&&(u.rh=0,u.rap=!0,u.nl=!0),a("_parseSubscribe: push subscription `%s` to subscription",u),e.subscriptions.push(u)}}}_parseSuback(){a("_parseSuback");const e=this.packet;if(this.packet.granted=[],this._parseMessageId()){if(5===this.settings.protocolVersion){const t=this._parseProperties();Object.getOwnPropertyNames(t).length&&(e.properties=t)}for(;this._pos2?(e.reasonCode=this._parseByte(),a("_parseConfirmation: packet.reasonCode `%d`",e.reasonCode)):e.reasonCode=0,e.length>3)){const t=this._parseProperties();Object.getOwnPropertyNames(t).length&&(e.properties=t)}return!0}_parseDisconnect(){const e=this.packet;if(a("_parseDisconnect"),5===this.settings.protocolVersion){this._list.length>0?e.reasonCode=this._parseByte():e.reasonCode=0;const t=this._parseProperties();Object.getOwnPropertyNames(t).length&&(e.properties=t)}return a("_parseDisconnect result: true"),!0}_parseAuth(){a("_parseAuth");const e=this.packet;if(5!==this.settings.protocolVersion)return this._emitError(new Error("Not supported auth packet for this version MQTT"));e.reasonCode=this._parseByte();const t=this._parseProperties();return Object.getOwnPropertyNames(t).length&&(e.properties=t),a("_parseAuth: result: true"),!0}_parseMessageId(){const e=this.packet;return e.messageId=this._parseNum(),null===e.messageId?(this._emitError(new Error("Cannot parse messageId")),!1):(a("_parseMessageId: packet.messageId %d",e.messageId),!0)}_parseString(e){const t=this._parseNum(),r=t+this._pos;if(-1===t||r>this._list.length||r>this.packet.length)return null;const n=this._list.toString("utf8",this._pos,r);return this._pos+=t,a("_parseString: result: %s",n),n}_parseStringPair(){return a("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){const e=this._parseNum(),t=e+this._pos;if(-1===e||t>this._list.length||t>this.packet.length)return null;const r=this._list.slice(this._pos,t);return this._pos+=e,a("_parseBuffer: result: %o",r),r}_parseNum(){if(this._list.length-this._pos<2)return-1;const e=this._list.readUInt16BE(this._pos);return this._pos+=2,a("_parseNum: result: %s",e),e}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;const e=this._list.readUInt32BE(this._pos);return this._pos+=4,a("_parse4ByteNum: result: %s",e),e}_parseVarByteNum(e){a("_parseVarByteNum");let t,r=0,n=1,i=0,o=!1;const c=this._pos?this._pos:0;for(;r<4&&c+r=r&&this._emitError(new Error("Invalid variable byte integer")),c&&(this._pos+=r),a("_parseVarByteNum: result: %o",o=!!o&&(e?{bytes:r,value:i}:i)),o}_parseByte(){let e;return this._pos=4)&&(f||u))b+=r.byteLength(f)+2;else{if(a<4)return t.emit("error",new Error("clientId must be supplied before 3.1.1")),!1;if(1*u==0)return t.emit("error",new Error("clientId must be given if cleanSession set to 0")),!1}if("number"!=typeof l||l<0||l>65535||l%1!=0)return t.emit("error",new Error("Invalid keepalive")),!1;b+=2;if(b+=1,5===a){var m=I(t,g);if(!m)return!1;b+=m.length}if(c){if("object"!=typeof c)return t.emit("error",new Error("Invalid will")),!1;if(!c.topic||"string"!=typeof c.topic)return t.emit("error",new Error("Invalid will topic")),!1;if(b+=r.byteLength(c.topic)+2,b+=2,c.payload){if(!(c.payload.length>=0))return t.emit("error",new Error("Invalid will payload")),!1;"string"==typeof c.payload?b+=r.byteLength(c.payload):b+=c.payload.length}var y={};if(5===a){if(!(y=I(t,c.properties)))return!1;b+=y.length}}let v=!1;if(null!=h){if(!O(h))return t.emit("error",new Error("Invalid username")),!1;v=!0,b+=r.byteLength(h)+2}if(null!=p){if(!v)return t.emit("error",new Error("Username is required to use password")),!1;if(!O(p))return t.emit("error",new Error("Invalid password")),!1;b+=R(p)+2}t.write(n.CONNECT_HEADER),_(t,b),k(t,s),o.bridgeMode&&(a+=128);t.write(131===a?n.VERSION131:132===a?n.VERSION132:4===a?n.VERSION4:5===a?n.VERSION5:n.VERSION3);let S=0;S|=null!=h?n.USERNAME_MASK:0,S|=null!=p?n.PASSWORD_MASK:0,S|=c&&c.retain?n.WILL_RETAIN_MASK:0,S|=c&&c.qos?c.qos<0&&d(t,p);null!=m&&m.write();return c("publish: payload: %o",h),t.write(h)}(e,t,s);case"puback":case"pubrec":case"pubrel":case"pubcomp":return function(e,t,i){const o=i?i.protocolVersion:4,s=e||{},a=s.cmd||"puback",c=s.messageId,u=s.dup&&"pubrel"===a?n.DUP_MASK:0;let l=0;const f=s.reasonCode,h=s.properties;let p=5===o?3:2;"pubrel"===a&&(l=1);if("number"!=typeof c)return t.emit("error",new Error("Invalid messageId")),!1;let g=null;if(5===o&&"object"==typeof h){if(!(g=C(t,h,i,p)))return!1;p+=g.length}t.write(n.ACKS[a][l][u][0]),_(t,p),d(t,c),5===o&&t.write(r.from([f]));null!==g&&g.write();return!0}(e,t,s);case"subscribe":return function(e,t,i){c("subscribe: packet: ");const o=i?i.protocolVersion:4,s=e||{},a=s.dup?n.DUP_MASK:0,u=s.messageId,l=s.subscriptions,f=s.properties;let h=0;if("number"!=typeof u)return t.emit("error",new Error("Invalid messageId")),!1;h+=2;let p=null;if(5===o){if(!(p=I(t,f)))return!1;h+=p.length}if("object"!=typeof l||!l.length)return t.emit("error",new Error("Invalid subscriptions")),!1;for(let e=0;e2)return t.emit("error",new Error("Invalid subscriptions - invalid Retain Handling")),!1}h+=r.byteLength(n)+2+1}c("subscribe: writing to stream: %o",n.SUBSCRIBE_HEADER),t.write(n.SUBSCRIBE_HEADER[1][a?1:0][0]),_(t,h),d(t,u),null!==p&&p.write();let g=!0;for(const e of l){const i=e.topic,s=e.qos,a=+e.nl,c=+e.rap,u=e.rh;let l;w(t,i),l=n.SUBSCRIBE_OPTIONS_QOS[s],5===o&&(l|=a?n.SUBSCRIBE_OPTIONS_NL:0,l|=c?n.SUBSCRIBE_OPTIONS_RAP:0,l|=u?n.SUBSCRIBE_OPTIONS_RH[u]:0),g=t.write(r.from([l]))}return g}(e,t,s);case"suback":return function(e,t,i){const o=i?i.protocolVersion:4,s=e||{},a=s.messageId,c=s.granted,u=s.properties;let l=0;if("number"!=typeof a)return t.emit("error",new Error("Invalid messageId")),!1;l+=2;if("object"!=typeof c||!c.length)return t.emit("error",new Error("Invalid qos vector")),!1;for(let e=0;ed===S,set(e){e?(u&&0!==Object.keys(u).length||(g=!0),d=S):(g=!1,d=E)}});const y={};function _(e,t){if(t>n.VARBYTEINT_MAX)return e.emit("error",new Error(`Invalid variable byte integer: ${t}`)),!1;let r=y[t];return r||(r=h(t),t<16384&&(y[t]=r)),c("writeVarByteInt: writing to stream: %o",r),e.write(r)}function w(e,t){const n=r.byteLength(t);return d(e,n),c("writeString: %s",t),e.write(t,"utf8")}function v(e,t,r){w(e,t),w(e,r)}function S(e,t){return c("writeNumberCached: number: %d",t),c("writeNumberCached: %o",u[t]),e.write(u[t])}function E(e,t){const r=l(t);return c("writeNumberGenerated: %o",r),e.write(r)}function k(e,t){"string"==typeof t?w(e,t):t?(d(e,t.length),e.write(t)):d(e,0)}function I(e,t){if("object"!=typeof t||null!=t.length)return{length:1,write(){A(e,{},0)}};let i=0;function o(t,i){let o=0;switch(n.propertiesTypes[t]){case"byte":if("boolean"!=typeof i)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=2;break;case"int8":if("number"!=typeof i||i<0||i>255)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=2;break;case"binary":if(i&&null===i)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=1+r.byteLength(i)+2;break;case"int16":if("number"!=typeof i||i<0||i>65535)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=3;break;case"int32":if("number"!=typeof i||i<0||i>4294967295)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=5;break;case"var":if("number"!=typeof i||i<0||i>268435455)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=1+r.byteLength(h(i));break;case"string":if("string"!=typeof i)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=3+r.byteLength(i.toString());break;case"pair":if("object"!=typeof i)return e.emit("error",new Error(`Invalid ${t}: ${i}`)),!1;o+=Object.getOwnPropertyNames(i).reduce((e,t)=>{const n=i[t];return Array.isArray(n)?e+=n.reduce((e,n)=>e+=3+r.byteLength(t.toString())+2+r.byteLength(n.toString()),0):e+=3+r.byteLength(t.toString())+2+r.byteLength(i[t].toString()),e},0);break;default:return e.emit("error",new Error(`Invalid property ${t}: ${i}`)),!1}return o}if(t)for(const e in t){let r=0,n=0;const s=t[e];if(Array.isArray(s))for(let t=0;to;){const r=i.shift();if(!r||!t[r])return!1;delete t[r],s=I(e,t)}return s}function T(e,t,i){switch(n.propertiesTypes[t]){case"byte":e.write(r.from([n.properties[t]])),e.write(r.from([+i]));break;case"int8":e.write(r.from([n.properties[t]])),e.write(r.from([i]));break;case"binary":e.write(r.from([n.properties[t]])),k(e,i);break;case"int16":e.write(r.from([n.properties[t]])),d(e,i);break;case"int32":e.write(r.from([n.properties[t]])),function(e,t){const r=p(t);c("write4ByteNumber: %o",r),e.write(r)}(e,i);break;case"var":e.write(r.from([n.properties[t]])),_(e,i);break;case"string":e.write(r.from([n.properties[t]])),w(e,i);break;case"pair":Object.getOwnPropertyNames(i).forEach(o=>{const s=i[o];Array.isArray(s)?s.forEach(i=>{e.write(r.from([n.properties[t]])),v(e,o.toString(),i.toString())}):(e.write(r.from([n.properties[t]])),v(e,o.toString(),s.toString()))});break;default:return e.emit("error",new Error(`Invalid property ${t} value: ${i}`)),!1}}function A(e,t,r){_(e,r);for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&null!==t[r]){const n=t[r];if(Array.isArray(n))for(let t=0;t=1.5*r;return Math.round(e/r)+" "+n+(i?"s":"")}t.exports=function(e,t){t=t||{};var r=typeof e;if("string"===r&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*c;case"weeks":case"week":case"w":return r*a;case"days":case"day":case"d":return r*s;case"hours":case"hour":case"hrs":case"hr":case"h":return r*o;case"minutes":case"minute":case"mins":case"min":case"m":return r*i;case"seconds":case"second":case"secs":case"sec":case"s":return r*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}(e);if("number"===r&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=s)return u(e,t,s,"day");if(t>=o)return u(e,t,o,"hour");if(t>=i)return u(e,t,i,"minute");if(t>=n)return u(e,t,n,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=s)return Math.round(e/s)+"d";if(t>=o)return Math.round(e/o)+"h";if(t>=i)return Math.round(e/i)+"m";if(t>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],30:[function(e,t,r){var n=e("wrappy");function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function o(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}t.exports=n(i),t.exports.strict=n(o),i.proto=i(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o(this)},configurable:!0})})},{wrappy:59}],31:[function(e,t,r){(function(e){(function(){"use strict";void 0===e||!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports={nextTick:function(t,r,n,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,r)});case 3:return e.nextTick(function(){t.call(null,r,n)});case 4:return e.nextTick(function(){t.call(null,r,n,i)});default:for(o=new Array(a-1),s=0;s1)for(var r=1;r= 0x80 (not a basic code point)","invalid-input":"Invalid input"},S=l-f,E=Math.floor,k=String.fromCharCode;function I(e){throw new RangeError(v[e])}function C(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function T(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+C((e=e.replace(w,".")).split("."),t).join(".")}function A(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=k((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=k(e)}).join("")}function O(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function x(e,t,r){var n=0;for(e=r?E(e/d):e>>1,e+=E(e/t);e>S*h>>1;n+=l)e=E(e/S);return E(n+(S+1)*e/(e+p))}function P(e){var t,r,n,i,o,s,a,c,p,d,y,_=[],w=e.length,v=0,S=b,k=g;for((r=e.lastIndexOf(m))<0&&(r=0),n=0;n=128&&I("not-basic"),_.push(e.charCodeAt(n));for(i=r>0?r+1:0;i=w&&I("invalid-input"),((c=(y=e.charCodeAt(i++))-48<10?y-22:y-65<26?y-65:y-97<26?y-97:l)>=l||c>E((u-v)/s))&&I("overflow"),v+=c*s,!(c<(p=a<=k?f:a>=k+h?h:a-k));a+=l)s>E(u/(d=l-p))&&I("overflow"),s*=d;k=x(v-o,t=_.length+1,0==o),E(v/t)>u-S&&I("overflow"),S+=E(v/t),v%=t,_.splice(v++,0,S)}return R(_)}function M(e){var t,r,n,i,o,s,a,c,p,d,y,_,w,v,S,C=[];for(_=(e=A(e)).length,t=b,r=0,o=g,s=0;s<_;++s)(y=e[s])<128&&C.push(k(y));for(n=i=C.length,i&&C.push(m);n<_;){for(a=u,s=0;s<_;++s)(y=e[s])>=t&&yE((u-r)/(w=n+1))&&I("overflow"),r+=(a-t)*w,t=a,s=0;s<_;++s)if((y=e[s])u&&I("overflow"),y==t){for(c=r,p=l;!(c<(d=p<=o?f:p>=o+h?h:p-o));p+=l)S=c-d,v=l-d,C.push(k(O(d+S%v,0))),c=E(S/v);C.push(k(O(c,0))),o=x(r,w,n==i),r=0,++n}++r,++t}return C.join("")}if(a={version:"1.4.1",ucs2:{decode:A,encode:R},decode:P,encode:M,toASCII:function(e){return T(e,function(e){return _.test(e)?"xn--"+M(e):e})},toUnicode:function(e){return T(e,function(e){return y.test(e)?P(e.slice(4).toLowerCase()):e})}},i&&o)if(t.exports==i)o.exports=a;else for(c in a)a.hasOwnProperty(c)&&(i[c]=a[c]);else n.punycode=a}(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],34:[function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,o){t=t||"&",r=r||"=";var s={};if("string"!=typeof e||0===e.length)return s;var a=/\+/g;e=e.split(t);var c=1e3;o&&"number"==typeof o.maxKeys&&(c=o.maxKeys);var u=e.length;c>0&&u>c&&(u=c);for(var l=0;l=0?(f=g.substr(0,b),h=g.substr(b+1)):(f=g,h=""),p=decodeURIComponent(f),d=decodeURIComponent(h),n(s,p)?i(s[p])?s[p].push(d):s[p]=[s[p],d]:s[p]=d}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],35:[function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,r,a){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?o(s(e),function(s){var a=encodeURIComponent(n(s))+r;return i(e[s])?o(e[s],function(e){return a+encodeURIComponent(n(e))}).join(t):a+encodeURIComponent(n(e[s]))}).join(t):a?encodeURIComponent(n(a))+r+encodeURIComponent(n(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function o(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}i("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError),i("ERR_INVALID_ARG_TYPE",function(e,t,r){var n,i,s,a;if("string"==typeof t&&(i="not ",t.substr(!s||s<0?0:+s,i.length)===i)?(n="must not be",t=t.replace(/^not /,"")):n="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))a="The ".concat(e," ").concat(n," ").concat(o(t,"type"));else{var c=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(c," ").concat(n," ").concat(o(t,"type"))}return a+=". Received type ".concat(typeof r)},TypeError),i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),i("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),i("ERR_STREAM_PREMATURE_CLOSE","Premature close"),i("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),i("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),i("ERR_STREAM_WRITE_AFTER_END","write after end"),i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),i("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=n},{}],38:[function(e,t,r){(function(r){(function(){"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=u;var i=e("./_stream_readable"),o=e("./_stream_writable");e("inherits")(u,i);for(var s=n(o.prototype),a=0;a0)if("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=function(e){return a.from(e)}(t)),n)s.endEmitted?S(e,new v):T(e,s,t,!0);else if(s.ended)S(e,new _);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||0!==t.length?T(e,s,t,!1):P(e,s)):T(e,s,t,!1)}else n||(s.reading=!1,P(e,s));return!s.ended&&(s.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=A?e=A:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function O(e){var t=e._readableState;u("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(u("emitReadable",t.flowing),t.emittedReadable=!0,r.nextTick(x,e))}function x(e){var t=e._readableState;u("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,U(e)}function P(e,t){t.readingMore||(t.readingMore=!0,r.nextTick(M,e,t))}function M(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){u("readable nexttick read 0"),e.read(0)}function N(e,t){u("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),U(e),t.flowing&&!t.reading&&e.read(0)}function U(e){var t=e._readableState;for(u("flow",t.flowing);t.flowing&&null!==e.read(););}function j(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function q(e){var t=e._readableState;u("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(D,t,e))}function D(e,t){if(u("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function F(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return u("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?q(this):O(this),null;if(0===(e=R(e,t))&&t.ended)return 0===t.length&&q(this),null;var n,i=t.needReadable;return u("need readable",i),(0===t.length||t.length-e0?j(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&q(this)),null!==n&&this.emit("data",n),n},I.prototype._read=function(e){S(this,new w("_read()"))},I.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,u("pipe count=%d opts=%j",i.pipesCount,t);var s=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?c:b;function a(t,r){u("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,u("cleanup"),e.removeListener("close",d),e.removeListener("finish",g),e.removeListener("drain",l),e.removeListener("error",p),e.removeListener("unpipe",a),n.removeListener("end",c),n.removeListener("end",b),n.removeListener("data",h),f=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}function c(){u("onend"),e.end()}i.endEmitted?r.nextTick(s):n.once("end",s),e.on("unpipe",a);var l=function(e){return function(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,U(e))}}(n);e.on("drain",l);var f=!1;function h(t){u("ondata");var r=e.write(t);u("dest.write",r),!1===r&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==F(i.pipes,e))&&!f&&(u("false write response, pause",i.awaitDrain),i.awaitDrain++),n.pause())}function p(t){u("onerror",t),b(),e.removeListener("error",p),0===o(e,"error")&&S(e,t)}function d(){e.removeListener("finish",g),b()}function g(){u("onfinish"),e.removeListener("close",d),b()}function b(){u("unpipe"),n.unpipe(e)}return n.on("data",h),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",p),e.once("close",d),e.once("finish",g),e.emit("pipe",n),i.flowing||(u("pipe resume"),n.resume()),e},I.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,u("on readable",i.length,i.reading),i.length?O(this):i.reading||r.nextTick(B,this))),n},I.prototype.addListener=I.prototype.on,I.prototype.removeListener=function(e,t){var n=s.prototype.removeListener.call(this,e,t);return"readable"===e&&r.nextTick(L,this),n},I.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||r.nextTick(L,this),t},I.prototype.resume=function(){var e=this._readableState;return e.flowing||(u("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(N,e,t))}(this,e)),e.paused=!1,this},I.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},I.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",function(){if(u("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(i){(u("wrapped data"),r.decoder&&(i=r.decoder.write(i)),!r.objectMode||null!==i&&void 0!==i)&&((r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause())))}),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o-1))throw new v(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(I.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(I.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),I.prototype._write=function(e,t,r){r(new g("_write()"))},I.prototype._writev=null,I.prototype.end=function(e,t,n){var i=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,n){t.ending=!0,x(e,t),n&&(t.finished?r.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,i,n),this},Object.defineProperty(I.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(I.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),I.prototype.destroy=f.destroy,I.prototype._undestroy=f.undestroy,I.prototype._destroy=function(e,t){t(e)}}).call(this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../errors":37,"./_stream_duplex":38,"./internal/streams/destroy":45,"./internal/streams/state":49,"./internal/streams/stream":50,_process:32,buffer:14,inherits:21,"util-deprecate":58}],43:[function(e,t,r){(function(r){(function(){"use strict";var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=e("./end-of-stream"),s=Symbol("lastResolve"),a=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),h=Symbol("stream");function p(e,t){return{value:e,done:t}}function d(e){var t=e[s];if(null!==t){var r=e[h].read();null!==r&&(e[l]=null,e[s]=null,e[a]=null,t(p(r,!1)))}}var g=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(p(void 0,!0));if(this[h].destroyed)return new Promise(function(t,n){r.nextTick(function(){e[c]?n(e[c]):t(p(void 0,!0))})});var n,i=this[l];if(i)n=new Promise(function(e,t){return function(r,n){e.then(function(){t[u]?r(p(void 0,!0)):t[f](r,n)},n)}}(i,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(p(o,!1));n=new Promise(this[f])}return this[l]=n,n}},Symbol.asyncIterator,function(){return this}),i(n,"return",function(){var e=this;return new Promise(function(t,r){e[h].destroy(null,function(e){e?r(e):t(p(void 0,!0))})})}),n),g);t.exports=function(e){var t,n=Object.create(b,(i(t={},h,{value:e,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,c,{value:null,writable:!0}),i(t,u,{value:e._readableState.endEmitted,writable:!0}),i(t,f,{value:function(e,t){var r=n[h].read();r?(n[l]=null,n[s]=null,n[a]=null,e(p(r,!1))):(n[s]=e,n[a]=t)},writable:!0}),t));return n[l]=null,o(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[a];return null!==t&&(n[l]=null,n[s]=null,n[a]=null,t(e)),void(n[c]=e)}var r=n[s];null!==r&&(n[l]=null,n[s]=null,n[a]=null,r(p(void 0,!0))),n[u]=!0}),e.on("readable",function(e){r.nextTick(d,e)}.bind(null,n)),n}}).call(this)}).call(this,e("_process"))},{"./end-of-stream":46,_process:32}],44:[function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return s.alloc(0);for(var t,r,n,i=s.allocUnsafe(e>>>0),o=this.head,a=0;o;)t=o.data,r=i,n=a,s.prototype.copy.call(t,r,n),a+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0===(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=s.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0===(e-=o)){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,t}},{key:c,value:function(e,t){return a(this,function(e){for(var t=1;t0,function(e){l||(l=e),e&&h.forEach(c),o||(h.forEach(c),f(l))})});return r.reduce(u)}},{"../../../errors":37,"./end-of-stream":46}],49:[function(e,t,r){"use strict";var n=e("../../../errors").codes.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(e,t,r,i){var o=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new n(i?r:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},{"../../../errors":37}],50:[function(e,t,r){t.exports=e("events").EventEmitter},{events:19}],51:[function(e,t,r){(r=t.exports=e("./lib/_stream_readable.js")).Stream=r,r.Readable=r,r.Writable=e("./lib/_stream_writable.js"),r.Duplex=e("./lib/_stream_duplex.js"),r.Transform=e("./lib/_stream_transform.js"),r.PassThrough=e("./lib/_stream_passthrough.js"),r.finished=e("./lib/internal/streams/end-of-stream.js"),r.pipeline=e("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":38,"./lib/_stream_passthrough.js":39,"./lib/_stream_readable.js":40,"./lib/_stream_transform.js":41,"./lib/_stream_writable.js":42,"./lib/internal/streams/end-of-stream.js":46,"./lib/internal/streams/pipeline.js":48}],52:[function(e,t,r){"use strict";t.exports=function(){if("function"!=typeof arguments[0])throw new Error("callback needed");if("number"!=typeof arguments[1])throw new Error("interval needed");var e;if(arguments.length>0){e=new Array(arguments.length-2);for(var t=0;t>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function l(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}r.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},{"safe-buffer":53}],56:[function(e,t,r){"use strict";var n=e("punycode"),i=e("./util");function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}r.parse=_,r.resolve=function(e,t){return _(e,!1,!0).resolve(t)},r.resolveObject=function(e,t){return e?_(e,!1,!0).resolveObject(t):t},r.format=function(e){i.isString(e)&&(e=_(e));return e instanceof o?e.format():o.prototype.format.call(e)},r.Url=o;var s=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,u=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(u),f=["%","/","?",";","#"].concat(l),h=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=e("querystring");function _(e,t,r){if(e&&i.isObject(e)&&e instanceof o)return e;var n=new o;return n.parse(e,t,r),n}o.prototype.parse=function(e,t,r){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),a=-1!==o&&o127?M+="x":M+=P[L];if(!M.match(p)){var N=O.slice(0,T),U=O.slice(T+1),j=P.match(d);j&&(N.push(j[1]),U.unshift(j[2])),U.length&&(_="/"+U.join(".")+_),this.hostname=N.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=n.toASCII(this.hostname));var q=this.port?":"+this.port:"",D=this.hostname||"";this.host=D+q,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==_[0]&&(_="/"+_))}if(!g[S])for(T=0,x=l.length;T0)&&r.host.split("@"))&&(r.auth=R.shift(),r.host=r.hostname=R.shift());return r.search=e.search,r.query=e.query,i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!E.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var I=E.slice(-1)[0],C=(r.host||e.host||E.length>1)&&("."===I||".."===I)||""===I,T=0,A=E.length;A>=0;A--)"."===(I=E[A])?E.splice(A,1):".."===I?(E.splice(A,1),T++):T&&(E.splice(A,1),T--);if(!v&&!S)for(;T--;T)E.unshift("..");!v||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),C&&"/"!==E.join("/").substr(-1)&&E.push("");var R,O=""===E[0]||E[0]&&"/"===E[0].charAt(0);k&&(r.hostname=r.host=O?"":E.length?E.shift():"",(R=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=R.shift(),r.host=r.hostname=R.shift()));return(v=v||r.host&&E.length)&&!O&&E.unshift(""),E.length?r.pathname=E.join("/"):(r.pathname=null,r.path=null),i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{"./util":57,punycode:33,querystring:36}],57:[function(e,t,r){"use strict";t.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],58:[function(e,t,r){(function(e){(function(){function r(t){try{if(!e.localStorage)return!1}catch(e){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],59:[function(e,t,r){t.exports=function e(t,r){if(t&&r)return e(t)(r);if("function"!=typeof t)throw new TypeError("need wrapper function");Object.keys(t).forEach(function(e){n[e]=t[e]});return n;function n(){for(var e=new Array(arguments.length),r=0;r DeviceThreads = new List(); - public MyMqttClient _MyMqttClient; + private MyMqttClient _MyMqttClient; + private IMqttServer _MqttServer; private string connnectSetting = IoTBackgroundService.connnectSetting; private DBTypeEnum DBType = IoTBackgroundService.DBType; private Interpreter interpreter = new(); - public DeviceService(IConfiguration ConfigRoot, DrvierService drvierManager, MyMqttClient myMqttClient) + public DeviceService(IConfiguration ConfigRoot, DrvierService drvierManager, MyMqttClient myMqttClient, IMqttServer mqttServer) { _DrvierManager = drvierManager; _MyMqttClient = myMqttClient; - + _MqttServer = mqttServer; try { @@ -135,7 +137,7 @@ namespace Plugin p.SetValue(DeviceObj, value); } - var deviceThread = new DeviceThread(Device, DeviceObj, systemManage.GatewayName, _MyMqttClient, interpreter); + var deviceThread = new DeviceThread(Device, DeviceObj, systemManage.GatewayName, _MyMqttClient, interpreter, _MqttServer); DeviceThreads.Add(deviceThread); } diff --git a/Plugins/Plugin/DeviceThread.cs b/Plugins/Plugin/DeviceThread.cs index 5476241..f5eab91 100644 --- a/Plugins/Plugin/DeviceThread.cs +++ b/Plugins/Plugin/DeviceThread.cs @@ -10,6 +10,8 @@ using IoTGateway.DataAccess; using IoTGateway.Model; using WalkingTec.Mvvm.Core; using DynamicExpresso; +using MQTTnet.Server; +using Newtonsoft.Json; namespace Plugin { @@ -24,7 +26,7 @@ namespace Plugin private CancellationTokenSource tokenSource = new CancellationTokenSource(); private Interpreter Interpreter = null; - public DeviceThread(Device device, IDriver driver, string ProjectId, MyMqttClient myMqttClient, Interpreter interpreter) + public DeviceThread(Device device, IDriver driver, string ProjectId, MyMqttClient myMqttClient, Interpreter interpreter, IMqttServer mqttServer) { Device = device; Driver = driver; @@ -93,7 +95,7 @@ namespace Plugin { ret.StatusType = VaribaleStatusTypeEnum.ExpressionError; } - } + } else ret.CookedValue = ret.Value; @@ -101,6 +103,10 @@ namespace Plugin Console.WriteLine(Driver.Connect()); payLoad.Values[item.Name] = ret.CookedValue; + + ret.VarId = item.ID; + mqttServer.PublishAsync($"internal/v1/gateway/telemetry/{Device.DeviceName}/{item.Name}", JsonConvert.SerializeObject(ret)); + } payLoad.TS = (long)(DateTime.Now - TsStartDt).TotalMilliseconds; diff --git a/Plugins/PluginInterface/DriverReturnValueModel.cs b/Plugins/PluginInterface/DriverReturnValueModel.cs index e3a4fbe..a891b82 100644 --- a/Plugins/PluginInterface/DriverReturnValueModel.cs +++ b/Plugins/PluginInterface/DriverReturnValueModel.cs @@ -12,5 +12,6 @@ namespace PluginInterface public object CookedValue { get; set; } public string Message { get; set; } public VaribaleStatusTypeEnum StatusType { get; set; } + public Guid VarId { get; set; } } }