homebridge-config-ui-x 5.12.0 → 5.12.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/core/auth/auth.controller.d.ts +4 -0
  3. package/dist/core/config/config.interfaces.d.ts +14 -0
  4. package/dist/core/config/config.service.d.ts +6 -0
  5. package/dist/core/config/config.service.js +8 -0
  6. package/dist/core/config/config.service.js.map +1 -1
  7. package/dist/core/config/config.startup.js +48 -17
  8. package/dist/core/config/config.startup.js.map +1 -1
  9. package/dist/core/feature-flags/feature-flags.registry.js +5 -0
  10. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
  11. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +1 -0
  12. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  13. package/dist/core/spa/spa-html.service.d.ts +5 -0
  14. package/dist/core/spa/spa-html.service.js +32 -0
  15. package/dist/core/spa/spa-html.service.js.map +1 -0
  16. package/dist/core/spa/spa.filter.d.ts +3 -0
  17. package/dist/core/spa/spa.filter.js +22 -2
  18. package/dist/core/spa/spa.filter.js.map +1 -1
  19. package/dist/core/ssl/ssl-cert-generator.service.d.ts +15 -0
  20. package/dist/core/ssl/ssl-cert-generator.service.js +125 -0
  21. package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -0
  22. package/dist/globalDefaults.js +3 -0
  23. package/dist/globalDefaults.js.map +1 -1
  24. package/dist/main.js +18 -4
  25. package/dist/main.js.map +1 -1
  26. package/dist/modules/accessories/accessories.controller.d.ts +1 -1
  27. package/dist/modules/accessories/accessories.interfaces.d.ts +94 -0
  28. package/dist/modules/accessories/accessories.interfaces.js +2 -0
  29. package/dist/modules/accessories/accessories.interfaces.js.map +1 -0
  30. package/dist/modules/accessories/accessories.module.js +2 -0
  31. package/dist/modules/accessories/accessories.module.js.map +1 -1
  32. package/dist/modules/accessories/accessories.service.d.ts +21 -3
  33. package/dist/modules/accessories/accessories.service.js +281 -17
  34. package/dist/modules/accessories/accessories.service.js.map +1 -1
  35. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +9 -0
  36. package/dist/modules/config-editor/config-editor.controller.d.ts +4 -0
  37. package/dist/modules/config-editor/config-editor.controller.js +64 -0
  38. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  39. package/dist/modules/config-editor/config-editor.service.d.ts +6 -1
  40. package/dist/modules/config-editor/config-editor.service.js +45 -1
  41. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  42. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
  43. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  44. package/dist/modules/plugins/plugins.service.js +15 -0
  45. package/dist/modules/plugins/plugins.service.js.map +1 -1
  46. package/dist/modules/server/server.controller.d.ts +50 -0
  47. package/dist/modules/server/server.controller.js +201 -2
  48. package/dist/modules/server/server.controller.js.map +1 -1
  49. package/dist/modules/server/server.service.d.ts +48 -0
  50. package/dist/modules/server/server.service.js +502 -14
  51. package/dist/modules/server/server.service.js.map +1 -1
  52. package/dist/modules/status/status.gateway.d.ts +2 -0
  53. package/dist/modules/status/status.interfaces.d.ts +11 -0
  54. package/dist/modules/status/status.service.d.ts +4 -1
  55. package/dist/modules/status/status.service.js +9 -0
  56. package/dist/modules/status/status.service.js.map +1 -1
  57. package/docs/matter-todo.md +15 -0
  58. package/docs/ssl-upload-pr.md +103 -0
  59. package/package.json +3 -1
  60. package/public/3rdpartylicenses.txt +631 -657
  61. package/public/assets/matter.svg +8 -0
  62. package/public/assets/plugin-ui-utils/ui.js +3 -0
  63. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  64. package/public/chunk-23V3ZHHN.js +4 -0
  65. package/public/chunk-2IZ5GLDL.js +1 -0
  66. package/public/chunk-2ZETN4H4.js +1 -0
  67. package/public/{chunk-NXNTFMYU.js → chunk-376NJ4JA.js} +52 -2
  68. package/public/chunk-4JPNEFLH.js +1 -0
  69. package/public/chunk-4RTFV66E.js +1 -0
  70. package/public/chunk-5GBDFFOQ.js +1 -0
  71. package/public/chunk-5J6FDLB7.js +1 -0
  72. package/public/chunk-5OAGPV2D.js +1 -0
  73. package/public/chunk-65SHUKA4.js +1 -0
  74. package/public/chunk-6BJX5CLA.js +2 -0
  75. package/public/chunk-6C4IUINW.js +12 -0
  76. package/public/chunk-6OVZOJUT.js +1 -0
  77. package/public/chunk-6SBZOHFM.js +1 -0
  78. package/public/chunk-74YM4OSM.js +1 -0
  79. package/public/chunk-7CY762OC.js +1 -0
  80. package/public/chunk-7LNXXBIE.js +1 -0
  81. package/public/chunk-7NOPBNIZ.js +1 -0
  82. package/public/chunk-7TW4U5ET.js +1 -0
  83. package/public/chunk-AKBDMFNY.js +1 -0
  84. package/public/chunk-ALWBPP22.js +1 -0
  85. package/public/chunk-B4AJQJMI.js +1 -0
  86. package/public/chunk-B6RKSEW3.js +1 -0
  87. package/public/chunk-BLF5IIQI.js +1 -0
  88. package/public/{chunk-SIVN6M76.js → chunk-BMOLDRJ3.js} +1 -1
  89. package/public/{chunk-FANHX5JR.js → chunk-BOC4GPPW.js} +1 -1
  90. package/public/chunk-BYRP6GXK.js +1 -0
  91. package/public/chunk-C5FPXJOQ.js +1 -0
  92. package/public/chunk-C72MXF33.js +1 -0
  93. package/public/chunk-CLQGWMDP.js +1 -0
  94. package/public/chunk-CXRLFGOD.js +1 -0
  95. package/public/chunk-CZI3UVMH.js +1 -0
  96. package/public/chunk-DFVNQJY7.js +1 -0
  97. package/public/chunk-DPOOINVO.js +1 -0
  98. package/public/chunk-DSCDW5PD.js +1 -0
  99. package/public/chunk-DVLX24N2.js +1 -0
  100. package/public/chunk-DYMBIGE6.js +2 -0
  101. package/public/chunk-ELSY3N4O.js +1 -0
  102. package/public/chunk-ELTBAOHD.js +19 -0
  103. package/public/chunk-ENNQMSYQ.js +1 -0
  104. package/public/chunk-F7JEYIYP.js +1 -0
  105. package/public/chunk-FBMNEU62.js +1 -0
  106. package/public/chunk-FLCYAQH5.js +1 -0
  107. package/public/chunk-G53OXLP6.js +1 -0
  108. package/public/chunk-GAYKGX4P.js +1 -0
  109. package/public/chunk-GNKBS4UO.js +1 -0
  110. package/public/chunk-GTDQP2AN.js +1 -0
  111. package/public/chunk-GXT4SPB4.js +4 -0
  112. package/public/chunk-H2UEBCT6.js +1 -0
  113. package/public/chunk-H3VX2BIO.js +1 -0
  114. package/public/chunk-H6UNJZBF.js +1 -0
  115. package/public/{chunk-V4JCOKHQ.js → chunk-H7F7H5MW.js} +1 -1
  116. package/public/chunk-IE2OD64R.js +2 -0
  117. package/public/chunk-JB4LNFON.js +1 -0
  118. package/public/chunk-JPGTD7MD.js +1 -0
  119. package/public/{chunk-N2EK3VS7.js → chunk-JRJZJIV2.js} +1 -1
  120. package/public/chunk-K45E54BZ.js +1 -0
  121. package/public/chunk-KIZPS7DE.js +1 -0
  122. package/public/chunk-KQ3Z53BI.js +1 -0
  123. package/public/chunk-L4VGJUWK.js +1 -0
  124. package/public/chunk-L6Q2JELL.js +1 -0
  125. package/public/chunk-LOHNS7FV.js +2 -0
  126. package/public/chunk-M3KQANPV.js +3 -0
  127. package/public/chunk-M6TAMCUV.js +1 -0
  128. package/public/chunk-MHFV5QSL.js +1 -0
  129. package/public/chunk-ML4BDJRC.js +1 -0
  130. package/public/chunk-MOJIJ4KI.js +1 -0
  131. package/public/chunk-NHVLW3LX.js +1 -0
  132. package/public/chunk-NJGEMRNN.js +1 -0
  133. package/public/chunk-NJRKOKSU.js +1 -0
  134. package/public/chunk-NXZQXLGL.js +2 -0
  135. package/public/chunk-O4N7TQYF.js +1 -0
  136. package/public/chunk-OB3PTX3Z.js +1 -0
  137. package/public/chunk-P5MQL2T7.js +1 -0
  138. package/public/chunk-PAWAMEPH.js +1 -0
  139. package/public/chunk-PMDJKRLE.js +1 -0
  140. package/public/chunk-PTFXXQF2.js +1 -0
  141. package/public/chunk-PYOONJ25.js +1 -0
  142. package/public/chunk-Q65KD35M.js +1 -0
  143. package/public/chunk-QCZZKIYO.js +1 -0
  144. package/public/chunk-QD637MO5.js +1 -0
  145. package/public/chunk-QDCSNDML.js +68 -0
  146. package/public/chunk-QKXN6IC6.js +1 -0
  147. package/public/chunk-QMJOVI3M.js +1 -0
  148. package/public/chunk-QZ3OEC3U.js +1 -0
  149. package/public/chunk-RMCMUFT7.js +1 -0
  150. package/public/chunk-RYV47HXJ.js +1 -0
  151. package/public/chunk-SJOWHT2B.js +1 -0
  152. package/public/chunk-SLRAVUKI.js +1 -0
  153. package/public/chunk-TFTTSOLT.js +1 -0
  154. package/public/chunk-U5D4L5DP.js +1 -0
  155. package/public/chunk-UFIZB5XW.js +1 -0
  156. package/public/chunk-UX5CFJ7O.js +4 -0
  157. package/public/chunk-V4ZGSQKL.js +1 -0
  158. package/public/chunk-VNT2T75N.js +1 -0
  159. package/public/chunk-VQZXH6H7.js +1 -0
  160. package/public/chunk-VSPME4PA.js +2 -0
  161. package/public/chunk-W76BGWDJ.js +16 -0
  162. package/public/chunk-WBNNLXVW.js +4 -0
  163. package/public/chunk-WG5DYV7E.js +1 -0
  164. package/public/chunk-WLUIIX75.js +1 -0
  165. package/public/chunk-WRZTVTB6.js +1 -0
  166. package/public/chunk-XBMS7SCE.js +5 -0
  167. package/public/chunk-XHXRISSG.js +35 -0
  168. package/public/chunk-XIHWQFTE.js +1 -0
  169. package/public/chunk-XLLRYJGK.js +1 -0
  170. package/public/chunk-XUGDJIIQ.js +1 -0
  171. package/public/chunk-YCP75D2G.js +8 -0
  172. package/public/chunk-YNWFNSNN.js +19 -0
  173. package/public/chunk-YTCGCDXK.js +1 -0
  174. package/public/chunk-YTH23ATC.js +1 -0
  175. package/public/chunk-YUNDMK7D.js +1 -0
  176. package/public/chunk-ZCGZM7LU.js +1 -0
  177. package/public/chunk-ZFKD5Q4T.js +1 -0
  178. package/public/chunk-ZJFRXDDO.js +1 -0
  179. package/public/index.html +2 -2
  180. package/public/main-YL4WUDRU.js +1 -0
  181. package/public/media/matter-P563JGDL.svg +8 -0
  182. package/public/polyfills-34U4WL3Z.js +1 -0
  183. package/public/styles-WJHG5ONB.css +1 -0
  184. package/scripts/extract-plugin-alias.js +53 -2
  185. package/public/chunk-3MO7ICHF.js +0 -1
  186. package/public/chunk-3PGUQRQW.js +0 -1
  187. package/public/chunk-3SKLXSFI.js +0 -1
  188. package/public/chunk-54X33YUH.js +0 -5
  189. package/public/chunk-56HOZZW6.js +0 -1
  190. package/public/chunk-5ZHDYUXA.js +0 -1
  191. package/public/chunk-6SUIFFAZ.js +0 -1
  192. package/public/chunk-7DOT7I4R.js +0 -1
  193. package/public/chunk-7O4JAXGA.js +0 -50
  194. package/public/chunk-A5EOSR6S.js +0 -1
  195. package/public/chunk-AIGU7Y6G.js +0 -1
  196. package/public/chunk-AK4UTJX2.js +0 -1
  197. package/public/chunk-BAHYSQO5.js +0 -1
  198. package/public/chunk-BJKMZCEQ.js +0 -1
  199. package/public/chunk-BNHW6YHK.js +0 -1
  200. package/public/chunk-BNQ6BOCY.js +0 -1
  201. package/public/chunk-BPQAV2XG.js +0 -1
  202. package/public/chunk-CCKAIEVL.js +0 -1
  203. package/public/chunk-CJJAQM22.js +0 -19
  204. package/public/chunk-D5Z6KR3J.js +0 -1
  205. package/public/chunk-DRKO4DTB.js +0 -1
  206. package/public/chunk-EBANXPKG.js +0 -1
  207. package/public/chunk-EQHGBDO3.js +0 -1
  208. package/public/chunk-GOLMQCNJ.js +0 -1
  209. package/public/chunk-GPTVUF5H.js +0 -1
  210. package/public/chunk-HRAMBCZG.js +0 -1
  211. package/public/chunk-IQUWZEQX.js +0 -1
  212. package/public/chunk-JE6FI7IW.js +0 -16
  213. package/public/chunk-JHD5MRCG.js +0 -2
  214. package/public/chunk-JI6C4NXH.js +0 -1
  215. package/public/chunk-JJZ232C2.js +0 -12
  216. package/public/chunk-JYAM3PTI.js +0 -1
  217. package/public/chunk-KCF7ILFR.js +0 -1
  218. package/public/chunk-KEKO5EFZ.js +0 -1
  219. package/public/chunk-KK7LTOA5.js +0 -1
  220. package/public/chunk-L2Y7HWNA.js +0 -1
  221. package/public/chunk-LVPMGB27.js +0 -1
  222. package/public/chunk-MA4NUDLX.js +0 -1
  223. package/public/chunk-ML7UNHWF.js +0 -1
  224. package/public/chunk-MY5KM2NY.js +0 -1
  225. package/public/chunk-NBTW66C4.js +0 -3
  226. package/public/chunk-NLWU3URB.js +0 -1
  227. package/public/chunk-NVN7DYND.js +0 -1
  228. package/public/chunk-OL7NNVJO.js +0 -1
  229. package/public/chunk-PHO7WRKK.js +0 -1
  230. package/public/chunk-PHWW4YF2.js +0 -1
  231. package/public/chunk-QPGFU6MO.js +0 -1
  232. package/public/chunk-QTIB6YCV.js +0 -1
  233. package/public/chunk-RZVF77KW.js +0 -4
  234. package/public/chunk-SNO4VAGT.js +0 -1
  235. package/public/chunk-STRTFJ4I.js +0 -1
  236. package/public/chunk-TGQIPKOK.js +0 -51
  237. package/public/chunk-TMGK6CPZ.js +0 -8
  238. package/public/chunk-UIZYHRTQ.js +0 -4
  239. package/public/chunk-UO2L3YPH.js +0 -1
  240. package/public/chunk-XCOJYJKE.js +0 -4
  241. package/public/chunk-XKFVEK25.js +0 -2
  242. package/public/chunk-XPGD2BHY.js +0 -40
  243. package/public/chunk-YBNR45V5.js +0 -5
  244. package/public/chunk-YK5NYQW5.js +0 -1
  245. package/public/chunk-ZDEL6332.js +0 -1
  246. package/public/chunk-ZRDN4L2J.js +0 -5
  247. package/public/chunk-ZYETXD5U.js +0 -1
  248. package/public/main-YYHATWMC.js +0 -1
  249. package/public/polyfills-5KWHJ7II.js +0 -2
  250. package/public/styles-G2ZRD7VU.css +0 -1
@@ -1,16 +0,0 @@
1
- import{m as Bt}from"./chunk-54X33YUH.js";import{e as yr}from"./chunk-5ZHDYUXA.js";import{k as hr,l as ht,n as br,q as vr}from"./chunk-YK5NYQW5.js";import{$b as Me,Ab as G,Bb as X,Cb as be,Mb as ye,Qa as H,_b as ue,a as Ar,ac as Re,b as Cr,db as gt,e as Aa,h as Fr,na as he,pb as Ve,rc as Q,sc as k,tb as xr,ub as gr,vb as Br,x as Er}from"./chunk-ZRDN4L2J.js";var rD=Aa((ir,fr)=>{(function(e,t){typeof ir=="object"&&typeof fr<"u"?fr.exports=t():typeof define=="function"&&define.amd?define(t):e.JSON5=t()})(ir,function(){"use strict";function e(u,a){return a={exports:{}},u(a,a.exports),a.exports}var t=e(function(u){var a=u.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=a)}),r=e(function(u){var a=u.exports={version:"2.6.5"};typeof __e=="number"&&(__e=a)}),o=r.version,f=function(u){return typeof u=="object"?u!==null:typeof u=="function"},i=function(u){if(!f(u))throw TypeError(u+" is not an object!");return u},D=function(u){try{return!!u()}catch{return!0}},l=!D(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7}),m=t.document,g=f(m)&&f(m.createElement),B=function(u){return g?m.createElement(u):{}},h=!l&&!D(function(){return Object.defineProperty(B("div"),"a",{get:function(){return 7}}).a!=7}),y=function(u,a){if(!f(u))return u;var p,s;if(a&&typeof(p=u.toString)=="function"&&!f(s=p.call(u))||typeof(p=u.valueOf)=="function"&&!f(s=p.call(u))||!a&&typeof(p=u.toString)=="function"&&!f(s=p.call(u)))return s;throw TypeError("Can't convert object to primitive value")},M=Object.defineProperty,I=l?Object.defineProperty:function(a,p,s){if(i(a),p=y(p,!0),i(s),h)try{return M(a,p,s)}catch{}if("get"in s||"set"in s)throw TypeError("Accessors not supported!");return"value"in s&&(a[p]=s.value),a},$={f:I},j=function(u,a){return{enumerable:!(u&1),configurable:!(u&2),writable:!(u&4),value:a}},T=l?function(u,a,p){return $.f(u,a,j(1,p))}:function(u,a,p){return u[a]=p,u},pe={}.hasOwnProperty,nt=function(u,a){return pe.call(u,a)},Ue=0,He=Math.random(),Uo=function(u){return"Symbol(".concat(u===void 0?"":u,")_",(++Ue+He).toString(36))},Ho=!1,$o=e(function(u){var a="__core-js_shared__",p=t[a]||(t[a]={});(u.exports=function(s,d){return p[s]||(p[s]=d!==void 0?d:{})})("versions",[]).push({version:r.version,mode:Ho?"pure":"global",copyright:"\xA9 2019 Denis Pushkarev (zloirock.ru)"})}),Yt=$o("native-function-to-string",Function.toString),qo=e(function(u){var a=Uo("src"),p="toString",s=(""+Yt).split(p);r.inspectSource=function(d){return Yt.call(d)},(u.exports=function(d,F,x,J){var N=typeof x=="function";N&&(nt(x,"name")||T(x,"name",F)),d[F]!==x&&(N&&(nt(x,a)||T(x,a,d[F]?""+d[F]:s.join(String(F)))),d===t?d[F]=x:J?d[F]?d[F]=x:T(d,F,x):(delete d[F],T(d,F,x)))})(Function.prototype,p,function(){return typeof this=="function"&&this[a]||Yt.call(this)})}),Vo=function(u){if(typeof u!="function")throw TypeError(u+" is not a function!");return u},sr=function(u,a,p){if(Vo(u),a===void 0)return u;switch(p){case 1:return function(s){return u.call(a,s)};case 2:return function(s,d){return u.call(a,s,d)};case 3:return function(s,d,F){return u.call(a,s,d,F)}}return function(){return u.apply(a,arguments)}},Xt="prototype",z=function(u,a,p){var s=u&z.F,d=u&z.G,F=u&z.S,x=u&z.P,J=u&z.B,N=d?t:F?t[a]||(t[a]={}):(t[a]||{})[Xt],je=d?r:r[a]||(r[a]={}),$e=je[Xt]||(je[Xt]={}),ae,ie,Y,qe;d&&(p=a);for(ae in p)ie=!s&&N&&N[ae]!==void 0,Y=(ie?N:p)[ae],qe=J&&ie?sr(Y,t):x&&typeof Y=="function"?sr(Function.call,Y):Y,N&&qo(N,ae,Y,u&z.U),je[ae]!=Y&&T(je,ae,qe),x&&$e[ae]!=Y&&($e[ae]=Y)};t.core=r,z.F=1,z.G=2,z.S=4,z.P=8,z.B=16,z.W=32,z.U=64,z.R=128;var it=z,Wo=Math.ceil,zo=Math.floor,Dr=function(u){return isNaN(u=+u)?0:(u>0?zo:Wo)(u)},Ko=function(u){if(u==null)throw TypeError("Can't call method on "+u);return u},Jo=function(u){return function(a,p){var s=String(Ko(a)),d=Dr(p),F=s.length,x,J;return d<0||d>=F?u?"":void 0:(x=s.charCodeAt(d),x<55296||x>56319||d+1===F||(J=s.charCodeAt(d+1))<56320||J>57343?u?s.charAt(d):x:u?s.slice(d,d+2):(x-55296<<10)+(J-56320)+65536)}},Yo=Jo(!1);it(it.P,"String",{codePointAt:function(a){return Yo(this,a)}});var uD=r.String.codePointAt,Xo=Math.max,Zo=Math.min,Qo=function(u,a){return u=Dr(u),u<0?Xo(u+a,0):Zo(u,a)},pr=String.fromCharCode,lr=String.fromCodePoint;it(it.S+it.F*(!!lr&&lr.length!=1),"String",{fromCodePoint:function(a){for(var p=arguments,s=[],d=arguments.length,F=0,x;d>F;){if(x=+p[F++],Qo(x,1114111)!==x)throw RangeError(x+" is not a valid code point");s.push(x<65536?pr(x):pr(((x-=65536)>>10)+55296,x%1024+56320))}return s.join("")}});var oD=r.String.fromCodePoint,ko=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ea=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ta=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Zt={Space_Separator:ko,ID_Start:ea,ID_Continue:ta},O={isSpaceSeparator:function(a){return typeof a=="string"&&Zt.Space_Separator.test(a)},isIdStartChar:function(a){return typeof a=="string"&&(a>="a"&&a<="z"||a>="A"&&a<="Z"||a==="$"||a==="_"||Zt.ID_Start.test(a))},isIdContinueChar:function(a){return typeof a=="string"&&(a>="a"&&a<="z"||a>="A"&&a<="Z"||a>="0"&&a<="9"||a==="$"||a==="_"||a==="\u200C"||a==="\u200D"||Zt.ID_Continue.test(a))},isDigit:function(a){return typeof a=="string"&&/[0-9]/.test(a)},isHexDigit:function(a){return typeof a=="string"&&/[0-9A-Fa-f]/.test(a)}},Qt,K,le,At,ge,oe,R,kt,ft,ra=function(a,p){Qt=String(a),K="start",le=[],At=0,ge=1,oe=0,R=void 0,kt=void 0,ft=void 0;do R=ua(),na[K]();while(R.type!=="eof");return typeof p=="function"?er({"":ft},"",p):ft};function er(u,a,p){var s=u[a];if(s!=null&&typeof s=="object")if(Array.isArray(s))for(var d=0;d<s.length;d++){var F=String(d),x=er(s,F,p);x===void 0?delete s[F]:Object.defineProperty(s,F,{value:x,writable:!0,enumerable:!0,configurable:!0})}else for(var J in s){var N=er(s,J,p);N===void 0?delete s[J]:Object.defineProperty(s,J,{value:N,writable:!0,enumerable:!0,configurable:!0})}return p.call(u,a,s)}var C,c,st,me,E;function ua(){for(C="default",c="",st=!1,me=1;;){E=de();var u=mr[C]();if(u)return u}}function de(){if(Qt[At])return String.fromCodePoint(Qt.codePointAt(At))}function n(){var u=de();return u===`
2
- `?(ge++,oe=0):u?oe+=u.length:oe++,u&&(At+=u.length),u}var mr={default:function(){switch(E){case" ":case"\v":case"\f":case" ":case"\xA0":case"\uFEFF":case`
3
- `:case"\r":case"\u2028":case"\u2029":n();return;case"/":n(),C="comment";return;case void 0:return n(),_("eof")}if(O.isSpaceSeparator(E)){n();return}return mr[K]()},comment:function(){switch(E){case"*":n(),C="multiLineComment";return;case"/":n(),C="singleLineComment";return}throw S(n())},multiLineComment:function(){switch(E){case"*":n(),C="multiLineCommentAsterisk";return;case void 0:throw S(n())}n()},multiLineCommentAsterisk:function(){switch(E){case"*":n();return;case"/":n(),C="default";return;case void 0:throw S(n())}n(),C="multiLineComment"},singleLineComment:function(){switch(E){case`
4
- `:case"\r":case"\u2028":case"\u2029":n(),C="default";return;case void 0:return n(),_("eof")}n()},value:function(){switch(E){case"{":case"[":return _("punctuator",n());case"n":return n(),Pe("ull"),_("null",null);case"t":return n(),Pe("rue"),_("boolean",!0);case"f":return n(),Pe("alse"),_("boolean",!1);case"-":case"+":n()==="-"&&(me=-1),C="sign";return;case".":c=n(),C="decimalPointLeading";return;case"0":c=n(),C="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),C="decimalInteger";return;case"I":return n(),Pe("nfinity"),_("numeric",1/0);case"N":return n(),Pe("aN"),_("numeric",NaN);case'"':case"'":st=n()==='"',c="",C="string";return}throw S(n())},identifierNameStartEscape:function(){if(E!=="u")throw S(n());n();var a=tr();switch(a){case"$":case"_":break;default:if(!O.isIdStartChar(a))throw dr();break}c+=a,C="identifierName"},identifierName:function(){switch(E){case"$":case"_":case"\u200C":case"\u200D":c+=n();return;case"\\":n(),C="identifierNameEscape";return}if(O.isIdContinueChar(E)){c+=n();return}return _("identifier",c)},identifierNameEscape:function(){if(E!=="u")throw S(n());n();var a=tr();switch(a){case"$":case"_":case"\u200C":case"\u200D":break;default:if(!O.isIdContinueChar(a))throw dr();break}c+=a,C="identifierName"},sign:function(){switch(E){case".":c=n(),C="decimalPointLeading";return;case"0":c=n(),C="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),C="decimalInteger";return;case"I":return n(),Pe("nfinity"),_("numeric",me*(1/0));case"N":return n(),Pe("aN"),_("numeric",NaN)}throw S(n())},zero:function(){switch(E){case".":c+=n(),C="decimalPoint";return;case"e":case"E":c+=n(),C="decimalExponent";return;case"x":case"X":c+=n(),C="hexadecimal";return}return _("numeric",me*0)},decimalInteger:function(){switch(E){case".":c+=n(),C="decimalPoint";return;case"e":case"E":c+=n(),C="decimalExponent";return}if(O.isDigit(E)){c+=n();return}return _("numeric",me*Number(c))},decimalPointLeading:function(){if(O.isDigit(E)){c+=n(),C="decimalFraction";return}throw S(n())},decimalPoint:function(){switch(E){case"e":case"E":c+=n(),C="decimalExponent";return}if(O.isDigit(E)){c+=n(),C="decimalFraction";return}return _("numeric",me*Number(c))},decimalFraction:function(){switch(E){case"e":case"E":c+=n(),C="decimalExponent";return}if(O.isDigit(E)){c+=n();return}return _("numeric",me*Number(c))},decimalExponent:function(){switch(E){case"+":case"-":c+=n(),C="decimalExponentSign";return}if(O.isDigit(E)){c+=n(),C="decimalExponentInteger";return}throw S(n())},decimalExponentSign:function(){if(O.isDigit(E)){c+=n(),C="decimalExponentInteger";return}throw S(n())},decimalExponentInteger:function(){if(O.isDigit(E)){c+=n();return}return _("numeric",me*Number(c))},hexadecimal:function(){if(O.isHexDigit(E)){c+=n(),C="hexadecimalInteger";return}throw S(n())},hexadecimalInteger:function(){if(O.isHexDigit(E)){c+=n();return}return _("numeric",me*Number(c))},string:function(){switch(E){case"\\":n(),c+=oa();return;case'"':if(st)return n(),_("string",c);c+=n();return;case"'":if(!st)return n(),_("string",c);c+=n();return;case`
5
- `:case"\r":throw S(n());case"\u2028":case"\u2029":ia(E);break;case void 0:throw S(n())}c+=n()},start:function(){switch(E){case"{":case"[":return _("punctuator",n())}C="value"},beforePropertyName:function(){switch(E){case"$":case"_":c=n(),C="identifierName";return;case"\\":n(),C="identifierNameStartEscape";return;case"}":return _("punctuator",n());case'"':case"'":st=n()==='"',C="string";return}if(O.isIdStartChar(E)){c+=n(),C="identifierName";return}throw S(n())},afterPropertyName:function(){if(E===":")return _("punctuator",n());throw S(n())},beforePropertyValue:function(){C="value"},afterPropertyValue:function(){switch(E){case",":case"}":return _("punctuator",n())}throw S(n())},beforeArrayValue:function(){if(E==="]")return _("punctuator",n());C="value"},afterArrayValue:function(){switch(E){case",":case"]":return _("punctuator",n())}throw S(n())},end:function(){throw S(n())}};function _(u,a){return{type:u,value:a,line:ge,column:oe}}function Pe(u){for(var a=0,p=u;a<p.length;a+=1){var s=p[a],d=de();if(d!==s)throw S(n());n()}}function oa(){var u=de();switch(u){case"b":return n(),"\b";case"f":return n(),"\f";case"n":return n(),`
6
- `;case"r":return n(),"\r";case"t":return n()," ";case"v":return n(),"\v";case"0":if(n(),O.isDigit(de()))throw S(n());return"\0";case"x":return n(),aa();case"u":return n(),tr();case`
7
- `:case"\u2028":case"\u2029":return n(),"";case"\r":return n(),de()===`
8
- `&&n(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw S(n());case void 0:throw S(n())}return n()}function aa(){var u="",a=de();if(!O.isHexDigit(a)||(u+=n(),a=de(),!O.isHexDigit(a)))throw S(n());return u+=n(),String.fromCodePoint(parseInt(u,16))}function tr(){for(var u="",a=4;a-- >0;){var p=de();if(!O.isHexDigit(p))throw S(n());u+=n()}return String.fromCodePoint(parseInt(u,16))}var na={start:function(){if(R.type==="eof")throw Ie();rr()},beforePropertyName:function(){switch(R.type){case"identifier":case"string":kt=R.value,K="afterPropertyName";return;case"punctuator":Ct();return;case"eof":throw Ie()}},afterPropertyName:function(){if(R.type==="eof")throw Ie();K="beforePropertyValue"},beforePropertyValue:function(){if(R.type==="eof")throw Ie();rr()},beforeArrayValue:function(){if(R.type==="eof")throw Ie();if(R.type==="punctuator"&&R.value==="]"){Ct();return}rr()},afterPropertyValue:function(){if(R.type==="eof")throw Ie();switch(R.value){case",":K="beforePropertyName";return;case"}":Ct()}},afterArrayValue:function(){if(R.type==="eof")throw Ie();switch(R.value){case",":K="beforeArrayValue";return;case"]":Ct()}},end:function(){}};function rr(){var u;switch(R.type){case"punctuator":switch(R.value){case"{":u={};break;case"[":u=[];break}break;case"null":case"boolean":case"numeric":case"string":u=R.value;break}if(ft===void 0)ft=u;else{var a=le[le.length-1];Array.isArray(a)?a.push(u):Object.defineProperty(a,kt,{value:u,writable:!0,enumerable:!0,configurable:!0})}if(u!==null&&typeof u=="object")le.push(u),Array.isArray(u)?K="beforeArrayValue":K="beforePropertyName";else{var p=le[le.length-1];p==null?K="end":Array.isArray(p)?K="afterArrayValue":K="afterPropertyValue"}}function Ct(){le.pop();var u=le[le.length-1];u==null?K="end":Array.isArray(u)?K="afterArrayValue":K="afterPropertyValue"}function S(u){return Ft(u===void 0?"JSON5: invalid end of input at "+ge+":"+oe:"JSON5: invalid character '"+cr(u)+"' at "+ge+":"+oe)}function Ie(){return Ft("JSON5: invalid end of input at "+ge+":"+oe)}function dr(){return oe-=5,Ft("JSON5: invalid identifier character at "+ge+":"+oe)}function ia(u){console.warn("JSON5: '"+cr(u)+"' in strings is not valid ECMAScript; consider escaping")}function cr(u){var a={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(a[u])return a[u];if(u<" "){var p=u.charCodeAt(0).toString(16);return"\\x"+("00"+p).substring(p.length)}return u}function Ft(u){var a=new SyntaxError(u);return a.lineNumber=ge,a.columnNumber=oe,a}var fa=function(a,p,s){var d=[],F="",x,J,N="",je;if(p!=null&&typeof p=="object"&&!Array.isArray(p)&&(s=p.space,je=p.quote,p=p.replacer),typeof p=="function")J=p;else if(Array.isArray(p)){x=[];for(var $e=0,ae=p;$e<ae.length;$e+=1){var ie=ae[$e],Y=void 0;typeof ie=="string"?Y=ie:(typeof ie=="number"||ie instanceof String||ie instanceof Number)&&(Y=String(ie)),Y!==void 0&&x.indexOf(Y)<0&&x.push(Y)}}return s instanceof Number?s=Number(s):s instanceof String&&(s=String(s)),typeof s=="number"?s>0&&(s=Math.min(10,Math.floor(s)),N=" ".substr(0,s)):typeof s=="string"&&(N=s.substr(0,10)),qe("",{"":a});function qe(b,q){var A=q[b];switch(A!=null&&(typeof A.toJSON5=="function"?A=A.toJSON5(b):typeof A.toJSON=="function"&&(A=A.toJSON(b))),J&&(A=J.call(q,b,A)),A instanceof Number?A=Number(A):A instanceof String?A=String(A):A instanceof Boolean&&(A=A.valueOf()),A){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof A=="string")return Et(A,!1);if(typeof A=="number")return String(A);if(typeof A=="object")return Array.isArray(A)?da(A):la(A)}function Et(b){for(var q={"'":.1,'"':.2},A={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},U="",ne=0;ne<b.length;ne++){var V=b[ne];switch(V){case"'":case'"':q[V]++,U+=V;continue;case"\0":if(O.isDigit(b[ne+1])){U+="\\x00";continue}}if(A[V]){U+=A[V];continue}if(V<" "){var Ne=V.charCodeAt(0).toString(16);U+="\\x"+("00"+Ne).substring(Ne.length);continue}U+=V}var ce=je||Object.keys(q).reduce(function(Be,Le){return q[Be]<q[Le]?Be:Le});return U=U.replace(new RegExp(ce,"g"),A[ce]),ce+U+ce}function la(b){if(d.indexOf(b)>=0)throw TypeError("Converting circular structure to JSON5");d.push(b);var q=F;F=F+N;for(var A=x||Object.keys(b),U=[],ne=0,V=A;ne<V.length;ne+=1){var Ne=V[ne],ce=qe(Ne,b);if(ce!==void 0){var Be=ma(Ne)+":";N!==""&&(Be+=" "),Be+=ce,U.push(Be)}}var Le;if(U.length===0)Le="{}";else{var xt;if(N==="")xt=U.join(","),Le="{"+xt+"}";else{var ca=`,
9
- `+F;xt=U.join(ca),Le=`{
10
- `+F+xt+`,
11
- `+q+"}"}}return d.pop(),F=q,Le}function ma(b){if(b.length===0)return Et(b,!0);var q=String.fromCodePoint(b.codePointAt(0));if(!O.isIdStartChar(q))return Et(b,!0);for(var A=q.length;A<b.length;A++)if(!O.isIdContinueChar(String.fromCodePoint(b.codePointAt(A))))return Et(b,!0);return b}function da(b){if(d.indexOf(b)>=0)throw TypeError("Converting circular structure to JSON5");d.push(b);var q=F;F=F+N;for(var A=[],U=0;U<b.length;U++){var ne=qe(String(U),b);A.push(ne!==void 0?ne:"null")}var V;if(A.length===0)V="[]";else if(N===""){var Ne=A.join(",");V="["+Ne+"]"}else{var ce=`,
12
- `+F,Be=A.join(ce);V=`[
13
- `+F+Be+`,
14
- `+q+"]"}return d.pop(),F=q,V}},sa={parse:ra,stringify:fa},Da=sa,pa=Da;return pa})});function Ca(){this.__data__=[],this.size=0}var _r=Ca;function Fa(e,t){return e===t||e!==e&&t!==t}var fe=Fa;function Ea(e,t){for(var r=e.length;r--;)if(fe(e[r][0],t))return r;return-1}var ve=Ea;var xa=Array.prototype,ga=xa.splice;function Ba(e){var t=this.__data__,r=ve(t,e);if(r<0)return!1;var o=t.length-1;return r==o?t.pop():ga.call(t,r,1),--this.size,!0}var Sr=Ba;function ha(e){var t=this.__data__,r=ve(t,e);return r<0?void 0:t[r][1]}var wr=ha;function ba(e){return ve(this.__data__,e)>-1}var Tr=ba;function ya(e,t){var r=this.__data__,o=ve(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var Or=ya;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}We.prototype.clear=_r;We.prototype.delete=Sr;We.prototype.get=wr;We.prototype.has=Tr;We.prototype.set=Or;var _e=We;function va(){this.__data__=new _e,this.size=0}var Pr=va;function _a(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Ir=_a;function Sa(e){return this.__data__.get(e)}var jr=Sa;function wa(e){return this.__data__.has(e)}var Nr=wa;var Ta=typeof global=="object"&&global&&global.Object===Object&&global,bt=Ta;var Oa=typeof self=="object"&&self&&self.Object===Object&&self,Pa=bt||Oa||Function("return this")(),P=Pa;var Ia=P.Symbol,Z=Ia;var Lr=Object.prototype,ja=Lr.hasOwnProperty,Na=Lr.toString,Dt=Z?Z.toStringTag:void 0;function La(e){var t=ja.call(e,Dt),r=e[Dt];try{e[Dt]=void 0;var o=!0}catch{}var f=Na.call(e);return o&&(t?e[Dt]=r:delete e[Dt]),f}var Mr=La;var Ma=Object.prototype,Ra=Ma.toString;function Ga(e){return Ra.call(e)}var Rr=Ga;var Ua="[object Null]",Ha="[object Undefined]",Gr=Z?Z.toStringTag:void 0;function $a(e){return e==null?e===void 0?Ha:Ua:Gr&&Gr in Object(e)?Mr(e):Rr(e)}var re=$a;function qa(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var W=qa;var Va="[object AsyncFunction]",Wa="[object Function]",za="[object GeneratorFunction]",Ka="[object Proxy]";function Ja(e){if(!W(e))return!1;var t=re(e);return t==Wa||t==za||t==Va||t==Ka}var ze=Ja;var Ya=P["__core-js_shared__"],yt=Ya;var Ur=(function(){var e=/[^.]+$/.exec(yt&&yt.keys&&yt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Xa(e){return!!Ur&&Ur in e}var Hr=Xa;var Za=Function.prototype,Qa=Za.toString;function ka(e){if(e!=null){try{return Qa.call(e)}catch{}try{return e+""}catch{}}return""}var Ae=ka;var en=/[\\^$.*+?()[\]{}|]/g,tn=/^\[object .+?Constructor\]$/,rn=Function.prototype,un=Object.prototype,on=rn.toString,an=un.hasOwnProperty,nn=RegExp("^"+on.call(an).replace(en,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fn(e){if(!W(e)||Hr(e))return!1;var t=ze(e)?nn:tn;return t.test(Ae(e))}var $r=fn;function sn(e,t){return e?.[t]}var qr=sn;function Dn(e,t){var r=qr(e,t);return $r(r)?r:void 0}var ee=Dn;var pn=ee(P,"Map"),Se=pn;var ln=ee(Object,"create"),Ce=ln;function mn(){this.__data__=Ce?Ce(null):{},this.size=0}var Vr=mn;function dn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Wr=dn;var cn="__lodash_hash_undefined__",An=Object.prototype,Cn=An.hasOwnProperty;function Fn(e){var t=this.__data__;if(Ce){var r=t[e];return r===cn?void 0:r}return Cn.call(t,e)?t[e]:void 0}var zr=Fn;var En=Object.prototype,xn=En.hasOwnProperty;function gn(e){var t=this.__data__;return Ce?t[e]!==void 0:xn.call(t,e)}var Kr=gn;var Bn="__lodash_hash_undefined__";function hn(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ce&&t===void 0?Bn:t,this}var Jr=hn;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}Ke.prototype.clear=Vr;Ke.prototype.delete=Wr;Ke.prototype.get=zr;Ke.prototype.has=Kr;Ke.prototype.set=Jr;var ur=Ke;function bn(){this.size=0,this.__data__={hash:new ur,map:new(Se||_e),string:new ur}}var Yr=bn;function yn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Xr=yn;function vn(e,t){var r=e.__data__;return Xr(t)?r[typeof t=="string"?"string":"hash"]:r.map}var we=vn;function _n(e){var t=we(this,e).delete(e);return this.size-=t?1:0,t}var Zr=_n;function Sn(e){return we(this,e).get(e)}var Qr=Sn;function wn(e){return we(this,e).has(e)}var kr=wn;function Tn(e,t){var r=we(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var eu=Tn;function Je(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}Je.prototype.clear=Yr;Je.prototype.delete=Zr;Je.prototype.get=Qr;Je.prototype.has=kr;Je.prototype.set=eu;var vt=Je;var On=200;function Pn(e,t){var r=this.__data__;if(r instanceof _e){var o=r.__data__;if(!Se||o.length<On-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new vt(o)}return r.set(e,t),this.size=r.size,this}var tu=Pn;function Ye(e){var t=this.__data__=new _e(e);this.size=t.size}Ye.prototype.clear=Pr;Ye.prototype.delete=Ir;Ye.prototype.get=jr;Ye.prototype.has=Nr;Ye.prototype.set=tu;var Te=Ye;var In="__lodash_hash_undefined__";function jn(e){return this.__data__.set(e,In),this}var ru=jn;function Nn(e){return this.__data__.has(e)}var uu=Nn;function _t(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new vt;++t<r;)this.add(e[t])}_t.prototype.add=_t.prototype.push=ru;_t.prototype.has=uu;var ou=_t;function Ln(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return!0;return!1}var au=Ln;function Mn(e,t){return e.has(t)}var nu=Mn;var Rn=1,Gn=2;function Un(e,t,r,o,f,i){var D=r&Rn,l=e.length,m=t.length;if(l!=m&&!(D&&m>l))return!1;var g=i.get(e),B=i.get(t);if(g&&B)return g==t&&B==e;var h=-1,y=!0,M=r&Gn?new ou:void 0;for(i.set(e,t),i.set(t,e);++h<l;){var I=e[h],$=t[h];if(o)var j=D?o($,I,h,t,e,i):o(I,$,h,e,t,i);if(j!==void 0){if(j)continue;y=!1;break}if(M){if(!au(t,function(T,pe){if(!nu(M,pe)&&(I===T||f(I,T,r,o,i)))return M.push(pe)})){y=!1;break}}else if(!(I===$||f(I,$,r,o,i))){y=!1;break}}return i.delete(e),i.delete(t),y}var St=Un;var Hn=P.Uint8Array,Xe=Hn;function $n(e){var t=-1,r=Array(e.size);return e.forEach(function(o,f){r[++t]=[f,o]}),r}var iu=$n;function qn(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o}),r}var fu=qn;var Vn=1,Wn=2,zn="[object Boolean]",Kn="[object Date]",Jn="[object Error]",Yn="[object Map]",Xn="[object Number]",Zn="[object RegExp]",Qn="[object Set]",kn="[object String]",ei="[object Symbol]",ti="[object ArrayBuffer]",ri="[object DataView]",su=Z?Z.prototype:void 0,or=su?su.valueOf:void 0;function ui(e,t,r,o,f,i,D){switch(r){case ri:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case ti:return!(e.byteLength!=t.byteLength||!i(new Xe(e),new Xe(t)));case zn:case Kn:case Xn:return fe(+e,+t);case Jn:return e.name==t.name&&e.message==t.message;case Zn:case kn:return e==t+"";case Yn:var l=iu;case Qn:var m=o&Vn;if(l||(l=fu),e.size!=t.size&&!m)return!1;var g=D.get(e);if(g)return g==t;o|=Wn,D.set(e,t);var B=St(l(e),l(t),o,f,i,D);return D.delete(e),B;case ei:if(or)return or.call(e)==or.call(t)}return!1}var Du=ui;function oi(e,t){for(var r=-1,o=t.length,f=e.length;++r<o;)e[f+r]=t[r];return e}var wt=oi;var ai=Array.isArray,te=ai;function ni(e,t,r){var o=t(e);return te(e)?o:wt(o,r(e))}var Tt=ni;function ii(e,t){for(var r=-1,o=e==null?0:e.length,f=0,i=[];++r<o;){var D=e[r];t(D,r,e)&&(i[f++]=D)}return i}var pu=ii;function fi(){return[]}var Ot=fi;var si=Object.prototype,Di=si.propertyIsEnumerable,lu=Object.getOwnPropertySymbols,pi=lu?function(e){return e==null?[]:(e=Object(e),pu(lu(e),function(t){return Di.call(e,t)}))}:Ot,Ze=pi;function li(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var mu=li;function mi(e){return e!=null&&typeof e=="object"}var L=mi;var di="[object Arguments]";function ci(e){return L(e)&&re(e)==di}var ar=ci;var du=Object.prototype,Ai=du.hasOwnProperty,Ci=du.propertyIsEnumerable,Fi=ar((function(){return arguments})())?ar:function(e){return L(e)&&Ai.call(e,"callee")&&!Ci.call(e,"callee")},pt=Fi;function Ei(){return!1}var cu=Ei;var Fu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Au=Fu&&typeof module=="object"&&module&&!module.nodeType&&module,xi=Au&&Au.exports===Fu,Cu=xi?P.Buffer:void 0,gi=Cu?Cu.isBuffer:void 0,Bi=gi||cu,Fe=Bi;var hi=9007199254740991,bi=/^(?:0|[1-9]\d*)$/;function yi(e,t){var r=typeof e;return t=t??hi,!!t&&(r=="number"||r!="symbol"&&bi.test(e))&&e>-1&&e%1==0&&e<t}var Pt=yi;var vi=9007199254740991;function _i(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=vi}var It=_i;var Si="[object Arguments]",wi="[object Array]",Ti="[object Boolean]",Oi="[object Date]",Pi="[object Error]",Ii="[object Function]",ji="[object Map]",Ni="[object Number]",Li="[object Object]",Mi="[object RegExp]",Ri="[object Set]",Gi="[object String]",Ui="[object WeakMap]",Hi="[object ArrayBuffer]",$i="[object DataView]",qi="[object Float32Array]",Vi="[object Float64Array]",Wi="[object Int8Array]",zi="[object Int16Array]",Ki="[object Int32Array]",Ji="[object Uint8Array]",Yi="[object Uint8ClampedArray]",Xi="[object Uint16Array]",Zi="[object Uint32Array]",w={};w[qi]=w[Vi]=w[Wi]=w[zi]=w[Ki]=w[Ji]=w[Yi]=w[Xi]=w[Zi]=!0;w[Si]=w[wi]=w[Hi]=w[Ti]=w[$i]=w[Oi]=w[Pi]=w[Ii]=w[ji]=w[Ni]=w[Li]=w[Mi]=w[Ri]=w[Gi]=w[Ui]=!1;function Qi(e){return L(e)&&It(e.length)&&!!w[re(e)]}var Eu=Qi;function ki(e){return function(t){return e(t)}}var Qe=ki;var xu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lt=xu&&typeof module=="object"&&module&&!module.nodeType&&module,ef=lt&&lt.exports===xu,nr=ef&&bt.process,tf=(function(){try{var e=lt&&lt.require&&lt.require("util").types;return e||nr&&nr.binding&&nr.binding("util")}catch{}})(),Ee=tf;var gu=Ee&&Ee.isTypedArray,rf=gu?Qe(gu):Eu,ke=rf;var uf=Object.prototype,of=uf.hasOwnProperty;function af(e,t){var r=te(e),o=!r&&pt(e),f=!r&&!o&&Fe(e),i=!r&&!o&&!f&&ke(e),D=r||o||f||i,l=D?mu(e.length,String):[],m=l.length;for(var g in e)(t||of.call(e,g))&&!(D&&(g=="length"||f&&(g=="offset"||g=="parent")||i&&(g=="buffer"||g=="byteLength"||g=="byteOffset")||Pt(g,m)))&&l.push(g);return l}var jt=af;var nf=Object.prototype;function ff(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||nf;return e===r}var et=ff;function sf(e,t){return function(r){return e(t(r))}}var Nt=sf;var Df=Nt(Object.keys,Object),Bu=Df;var pf=Object.prototype,lf=pf.hasOwnProperty;function mf(e){if(!et(e))return Bu(e);var t=[];for(var r in Object(e))lf.call(e,r)&&r!="constructor"&&t.push(r);return t}var hu=mf;function df(e){return e!=null&&It(e.length)&&!ze(e)}var Oe=df;function cf(e){return Oe(e)?jt(e):hu(e)}var tt=cf;function Af(e){return Tt(e,tt,Ze)}var mt=Af;var Cf=1,Ff=Object.prototype,Ef=Ff.hasOwnProperty;function xf(e,t,r,o,f,i){var D=r&Cf,l=mt(e),m=l.length,g=mt(t),B=g.length;if(m!=B&&!D)return!1;for(var h=m;h--;){var y=l[h];if(!(D?y in t:Ef.call(t,y)))return!1}var M=i.get(e),I=i.get(t);if(M&&I)return M==t&&I==e;var $=!0;i.set(e,t),i.set(t,e);for(var j=D;++h<m;){y=l[h];var T=e[y],pe=t[y];if(o)var nt=D?o(pe,T,y,t,e,i):o(T,pe,y,e,t,i);if(!(nt===void 0?T===pe||f(T,pe,r,o,i):nt)){$=!1;break}j||(j=y=="constructor")}if($&&!j){var Ue=e.constructor,He=t.constructor;Ue!=He&&"constructor"in e&&"constructor"in t&&!(typeof Ue=="function"&&Ue instanceof Ue&&typeof He=="function"&&He instanceof He)&&($=!1)}return i.delete(e),i.delete(t),$}var bu=xf;var gf=ee(P,"DataView"),Lt=gf;var Bf=ee(P,"Promise"),Mt=Bf;var hf=ee(P,"Set"),Rt=hf;var bf=ee(P,"WeakMap"),Gt=bf;var yu="[object Map]",yf="[object Object]",vu="[object Promise]",_u="[object Set]",Su="[object WeakMap]",wu="[object DataView]",vf=Ae(Lt),_f=Ae(Se),Sf=Ae(Mt),wf=Ae(Rt),Tf=Ae(Gt),Ge=re;(Lt&&Ge(new Lt(new ArrayBuffer(1)))!=wu||Se&&Ge(new Se)!=yu||Mt&&Ge(Mt.resolve())!=vu||Rt&&Ge(new Rt)!=_u||Gt&&Ge(new Gt)!=Su)&&(Ge=function(e){var t=re(e),r=t==yf?e.constructor:void 0,o=r?Ae(r):"";if(o)switch(o){case vf:return wu;case _f:return yu;case Sf:return vu;case wf:return _u;case Tf:return Su}return t});var xe=Ge;var Of=1,Tu="[object Arguments]",Ou="[object Array]",Ut="[object Object]",Pf=Object.prototype,Pu=Pf.hasOwnProperty;function If(e,t,r,o,f,i){var D=te(e),l=te(t),m=D?Ou:xe(e),g=l?Ou:xe(t);m=m==Tu?Ut:m,g=g==Tu?Ut:g;var B=m==Ut,h=g==Ut,y=m==g;if(y&&Fe(e)){if(!Fe(t))return!1;D=!0,B=!1}if(y&&!B)return i||(i=new Te),D||ke(e)?St(e,t,r,o,f,i):Du(e,t,m,r,o,f,i);if(!(r&Of)){var M=B&&Pu.call(e,"__wrapped__"),I=h&&Pu.call(t,"__wrapped__");if(M||I){var $=M?e.value():e,j=I?t.value():t;return i||(i=new Te),f($,j,r,o,i)}}return y?(i||(i=new Te),bu(e,t,r,o,f,i)):!1}var Iu=If;function ju(e,t,r,o,f){return e===t?!0:e==null||t==null||!L(e)&&!L(t)?e!==e&&t!==t:Iu(e,t,r,o,ju,f)}var Nu=ju;function jf(e,t){return Nu(e,t)}var Nf=jf;var Lf="[object Symbol]";function Mf(e){return typeof e=="symbol"||L(e)&&re(e)==Lf}var Lu=Mf;function Rf(e,t){for(var r=-1,o=e==null?0:e.length,f=Array(o);++r<o;)f[r]=t(e[r],r,e);return f}var Mu=Rf;var Gf=1/0,Ru=Z?Z.prototype:void 0,Gu=Ru?Ru.toString:void 0;function Uu(e){if(typeof e=="string")return e;if(te(e))return Mu(e,Uu)+"";if(Lu(e))return Gu?Gu.call(e):"";var t=e+"";return t=="0"&&1/e==-Gf?"-0":t}var Hu=Uu;function Uf(e){return e}var Ht=Uf;var $u=Object.create,Hf=(function(){function e(){}return function(t){if(!W(t))return{};if($u)return $u(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),qu=Hf;function $f(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Vu=$f;function qf(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var $t=qf;var Vf=800,Wf=16,zf=Date.now;function Kf(e){var t=0,r=0;return function(){var o=zf(),f=Wf-(o-r);if(r=o,f>0){if(++t>=Vf)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Wu=Kf;function Jf(e){return function(){return e}}var zu=Jf;var Yf=(function(){try{var e=ee(Object,"defineProperty");return e({},"",{}),e}catch{}})(),rt=Yf;var Xf=rt?function(e,t){return rt(e,"toString",{configurable:!0,enumerable:!1,value:zu(t),writable:!0})}:Ht,Ku=Xf;var Zf=Wu(Ku),Ju=Zf;function Qf(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==!1;);return e}var Yu=Qf;function kf(e,t,r){t=="__proto__"&&rt?rt(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var ut=kf;var e0=Object.prototype,t0=e0.hasOwnProperty;function r0(e,t,r){var o=e[t];(!(t0.call(e,t)&&fe(o,r))||r===void 0&&!(t in e))&&ut(e,t,r)}var qt=r0;function u0(e,t,r,o){var f=!r;r||(r={});for(var i=-1,D=t.length;++i<D;){var l=t[i],m=o?o(r[l],e[l],l,r,e):void 0;m===void 0&&(m=e[l]),f?ut(r,l,m):qt(r,l,m)}return r}var se=u0;var Xu=Math.max;function o0(e,t,r){return t=Xu(t===void 0?e.length-1:t,0),function(){for(var o=arguments,f=-1,i=Xu(o.length-t,0),D=Array(i);++f<i;)D[f]=o[t+f];f=-1;for(var l=Array(t+1);++f<t;)l[f]=o[f];return l[t]=r(D),Vu(e,this,l)}}var Zu=o0;function a0(e,t){return Ju(Zu(e,t,Ht),e+"")}var Qu=a0;function n0(e,t,r){if(!W(r))return!1;var o=typeof t;return(o=="number"?Oe(r)&&Pt(t,r.length):o=="string"&&t in r)?fe(r[t],e):!1}var ku=n0;function i0(e){return Qu(function(t,r){var o=-1,f=r.length,i=f>1?r[f-1]:void 0,D=f>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(f--,i):void 0,D&&ku(r[0],r[1],D)&&(i=f<3?void 0:i,f=1),t=Object(t);++o<f;){var l=r[o];l&&e(t,l,o,i)}return t})}var eo=i0;function f0(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var to=f0;var s0=Object.prototype,D0=s0.hasOwnProperty;function p0(e){if(!W(e))return to(e);var t=et(e),r=[];for(var o in e)o=="constructor"&&(t||!D0.call(e,o))||r.push(o);return r}var ro=p0;function l0(e){return Oe(e)?jt(e,!0):ro(e)}var De=l0;function m0(e){return e==null?"":Hu(e)}var uo=m0;var d0=Nt(Object.getPrototypeOf,Object),ot=d0;var c0="[object Object]",A0=Function.prototype,C0=Object.prototype,oo=A0.toString,F0=C0.hasOwnProperty,E0=oo.call(Object);function x0(e){if(!L(e)||re(e)!=c0)return!1;var t=ot(e);if(t===null)return!0;var r=F0.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&oo.call(r)==E0}var ao=x0;function g0(e,t){return e&&se(t,tt(t),e)}var no=g0;function B0(e,t){return e&&se(t,De(t),e)}var io=B0;var po=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fo=po&&typeof module=="object"&&module&&!module.nodeType&&module,h0=fo&&fo.exports===po,so=h0?P.Buffer:void 0,Do=so?so.allocUnsafe:void 0;function b0(e,t){if(t)return e.slice();var r=e.length,o=Do?Do(r):new e.constructor(r);return e.copy(o),o}var Vt=b0;function y0(e,t){return se(e,Ze(e),t)}var lo=y0;var v0=Object.getOwnPropertySymbols,_0=v0?function(e){for(var t=[];e;)wt(t,Ze(e)),e=ot(e);return t}:Ot,Wt=_0;function S0(e,t){return se(e,Wt(e),t)}var mo=S0;function w0(e){return Tt(e,De,Wt)}var co=w0;var T0=Object.prototype,O0=T0.hasOwnProperty;function P0(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&O0.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var Ao=P0;function I0(e){var t=new e.constructor(e.byteLength);return new Xe(t).set(new Xe(e)),t}var at=I0;function j0(e,t){var r=t?at(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var Co=j0;var N0=/\w*$/;function L0(e){var t=new e.constructor(e.source,N0.exec(e));return t.lastIndex=e.lastIndex,t}var Fo=L0;var Eo=Z?Z.prototype:void 0,xo=Eo?Eo.valueOf:void 0;function M0(e){return xo?Object(xo.call(e)):{}}var go=M0;function R0(e,t){var r=t?at(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var zt=R0;var G0="[object Boolean]",U0="[object Date]",H0="[object Map]",$0="[object Number]",q0="[object RegExp]",V0="[object Set]",W0="[object String]",z0="[object Symbol]",K0="[object ArrayBuffer]",J0="[object DataView]",Y0="[object Float32Array]",X0="[object Float64Array]",Z0="[object Int8Array]",Q0="[object Int16Array]",k0="[object Int32Array]",es="[object Uint8Array]",ts="[object Uint8ClampedArray]",rs="[object Uint16Array]",us="[object Uint32Array]";function os(e,t,r){var o=e.constructor;switch(t){case K0:return at(e);case G0:case U0:return new o(+e);case J0:return Co(e,r);case Y0:case X0:case Z0:case Q0:case k0:case es:case ts:case rs:case us:return zt(e,r);case H0:return new o;case $0:case W0:return new o(e);case q0:return Fo(e);case V0:return new o;case z0:return go(e)}}var Bo=os;function as(e){return typeof e.constructor=="function"&&!et(e)?qu(ot(e)):{}}var Kt=as;var ns="[object Map]";function is(e){return L(e)&&xe(e)==ns}var ho=is;var bo=Ee&&Ee.isMap,fs=bo?Qe(bo):ho,yo=fs;var ss="[object Set]";function Ds(e){return L(e)&&xe(e)==ss}var vo=Ds;var _o=Ee&&Ee.isSet,ps=_o?Qe(_o):vo,So=ps;var ls=1,ms=2,ds=4,wo="[object Arguments]",cs="[object Array]",As="[object Boolean]",Cs="[object Date]",Fs="[object Error]",To="[object Function]",Es="[object GeneratorFunction]",xs="[object Map]",gs="[object Number]",Oo="[object Object]",Bs="[object RegExp]",hs="[object Set]",bs="[object String]",ys="[object Symbol]",vs="[object WeakMap]",_s="[object ArrayBuffer]",Ss="[object DataView]",ws="[object Float32Array]",Ts="[object Float64Array]",Os="[object Int8Array]",Ps="[object Int16Array]",Is="[object Int32Array]",js="[object Uint8Array]",Ns="[object Uint8ClampedArray]",Ls="[object Uint16Array]",Ms="[object Uint32Array]",v={};v[wo]=v[cs]=v[_s]=v[Ss]=v[As]=v[Cs]=v[ws]=v[Ts]=v[Os]=v[Ps]=v[Is]=v[xs]=v[gs]=v[Oo]=v[Bs]=v[hs]=v[bs]=v[ys]=v[js]=v[Ns]=v[Ls]=v[Ms]=!0;v[Fs]=v[To]=v[vs]=!1;function Jt(e,t,r,o,f,i){var D,l=t&ls,m=t&ms,g=t&ds;if(r&&(D=f?r(e,o,f,i):r(e)),D!==void 0)return D;if(!W(e))return e;var B=te(e);if(B){if(D=Ao(e),!l)return $t(e,D)}else{var h=xe(e),y=h==To||h==Es;if(Fe(e))return Vt(e,l);if(h==Oo||h==wo||y&&!f){if(D=m||y?{}:Kt(e),!l)return m?mo(e,io(D,e)):lo(e,no(D,e))}else{if(!v[h])return f?e:{};D=Bo(e,h,l)}}i||(i=new Te);var M=i.get(e);if(M)return M;i.set(e,D),So(e)?e.forEach(function(j){D.add(Jt(j,t,r,j,e,i))}):yo(e)&&e.forEach(function(j,T){D.set(T,Jt(j,t,r,T,e,i))});var I=g?m?co:mt:m?De:tt,$=B?void 0:I(e);return Yu($||e,function(j,T){$&&(T=j,j=e[T]),qt(D,T,Jt(j,t,r,T,e,i))}),D}var Po=Jt;var Rs=1,Gs=4;function Us(e){return Po(e,Rs|Gs)}var Hs=Us;function $s(e){return function(t,r,o){for(var f=-1,i=Object(t),D=o(t),l=D.length;l--;){var m=D[e?l:++f];if(r(i[m],m,i)===!1)break}return t}}var Io=$s;var qs=Io(),jo=qs;function Vs(e,t,r){(r!==void 0&&!fe(e[t],r)||r===void 0&&!(t in e))&&ut(e,t,r)}var dt=Vs;function Ws(e){return L(e)&&Oe(e)}var No=Ws;function zs(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var ct=zs;function Ks(e){return se(e,De(e))}var Lo=Ks;function Js(e,t,r,o,f,i,D){var l=ct(e,r),m=ct(t,r),g=D.get(m);if(g){dt(e,r,g);return}var B=i?i(l,m,r+"",e,t,D):void 0,h=B===void 0;if(h){var y=te(m),M=!y&&Fe(m),I=!y&&!M&&ke(m);B=m,y||M||I?te(l)?B=l:No(l)?B=$t(l):M?(h=!1,B=Vt(m,!0)):I?(h=!1,B=zt(m,!0)):B=[]:ao(m)||pt(m)?(B=l,pt(l)?B=Lo(l):(!W(l)||ze(l))&&(B=Kt(m))):h=!1}h&&(D.set(m,B),f(B,m,o,i,D),D.delete(m)),dt(e,r,B)}var Mo=Js;function Ro(e,t,r,o,f){e!==t&&jo(t,function(i,D){if(f||(f=new Te),W(i))Mo(e,t,D,r,Ro,o,f);else{var l=o?o(ct(e,D),i,D+"",e,t,f):void 0;l===void 0&&(l=i),dt(e,D,l)}},De)}var Go=Ro;var Ys=eo(function(e,t,r){Go(e,t,r)}),Xs=Ys;var Zs=0;function Qs(e){var t=++Zs;return uo(e)+t}var ks=Qs;var XA=(()=>{class e{$activeModal=he(Bt);$router=he(yr);onRestartHomebridgeClick(){this.$router.navigate(["/restart"]),this.$activeModal.close()}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=gt({type:e,selectors:[["ng-component"]],decls:23,vars:18,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[1,"fas","fa-power-off","primary-text","mb-3",2,"font-size","75px"],[1,"mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(o,f){o&1&&(G(0,"div",0)(1,"div",1)(2,"h5",2),ue(3),Q(4,"translate"),X(),G(5,"button",3),Q(6,"translate"),ye("click",function(){return f.dismissModal()}),X()(),G(7,"div",4),be(8,"i",5),G(9,"p",6),ue(10),Q(11,"translate"),X()(),G(12,"div",7)(13,"div",8)(14,"button",9),Q(15,"translate"),ye("click",function(){return f.dismissModal()}),ue(16),Q(17,"translate"),X()(),be(18,"div",10),G(19,"div",11)(20,"button",12),ye("click",function(){return f.onRestartHomebridgeClick()}),ue(21),Q(22,"translate"),X()()()()),o&2&&(H(3),Me(k(4,6,"platform.version.service_restart_required")),H(2),Ve("aria-label",k(6,8,"form.button_close")),H(5),Me(k(11,10,"plugins.settings.restart_required")),H(4),Ve("aria-label",k(15,12,"form.button_close")),H(2),Re(" ",k(17,14,"form.button_close")," "),H(5),Re(" ",k(22,16,"menu.tooltip_restart")," "))},dependencies:[ht],encapsulation:2})}return e})();function tD(e,t){if(e&1&&(G(0,"li",9)(1,"span",15),be(2,"i",16),X(),G(3,"span",17),ue(4),be(5,"br"),G(6,"small",18),ue(7),X()()()),e&2){let r=t.$implicit;H(4),Re(" ",r.name),H(3),Me(r.username)}}var nC=(()=>{class e{$activeModal=he(Bt);$api=he(vr);$toastr=he(br);$translate=he(hr);bridges=[];onRestartChildBridgeClick(){return Fr(this,null,function*(){try{for(let r of this.bridges)yield Er(this.$api.put(`/server/restart/${r.username}`,{}));this.$toastr.success(this.$translate.instant("plugins.manage.child_bridge_restart"),this.$translate.instant("toast.title_success"))}catch(r){console.error(r),this.$toastr.error(this.$translate.instant("plugins.manage.child_bridge_restart_failed"),this.$translate.instant("toast.title_error"))}finally{this.$activeModal.close()}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=gt({type:e,selectors:[["ng-component"]],inputs:{bridges:"bridges"},decls:27,vars:18,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[1,"fas","fa-power-off","primary-text","mb-3",2,"font-size","75px"],[1,"w-100"],[1,"text-center"],[1,"list-group","list-group-box","mb-0","w-75","mx-auto"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"],["type","button",1,"btn","btn-primary",3,"click"],[1,"me-3"],[1,"fas","fa-hap"],[1,"flex-grow-1","text-start"],[1,"grey-text","font-monospace"]],template:function(o,f){o&1&&(G(0,"div",0)(1,"div",1)(2,"h5",2),ue(3),Q(4,"translate"),X(),G(5,"button",3),Q(6,"translate"),ye("click",function(){return f.dismissModal()}),X()(),G(7,"div",4),be(8,"i",5),G(9,"p",6),ue(10),Q(11,"translate"),X(),G(12,"div",7)(13,"ul",8),gr(14,tD,8,2,"li",9,xr),X()()(),G(16,"div",10)(17,"div",11)(18,"button",12),Q(19,"translate"),ye("click",function(){return f.dismissModal()}),ue(20),Q(21,"translate"),X()(),be(22,"div",7),G(23,"div",13)(24,"button",14),ye("click",function(){return f.onRestartChildBridgeClick()}),ue(25),Q(26,"translate"),X()()()()),o&2&&(H(3),Me(k(4,6,"platform.version.service_restart_required")),H(2),Ve("aria-label",k(6,8,"form.button_close")),H(5),Me(k(11,10,"restart.child_bridge_list")),H(4),Br(f.bridges),H(4),Ve("aria-label",k(19,12,"form.button_close")),H(2),Re(" ",k(21,14,"form.button_close")," "),H(5),Re(" ",k(26,16,"menu.tooltip_restart")," "))},dependencies:[ht],encapsulation:2})}return e})();function sC(e,{isDebugModeEnabled:t}){return{type:"object",required:["username"],additionalProperties:!1,title:e.instant("child_bridge.bridge_settings"),properties:Cr(Ar({username:{type:"string",title:e.instant("users.label_username"),description:`The child bridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
15
- Example: 0E:89:49:64:91:86.`,pattern:"^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$"},port:{type:"number",title:e.instant("accessories.bridge_port"),description:"The port the child bridge listens on.",minimum:1025,maximum:65534},pin:{type:"string",title:"Bridge PIN",description:`The child bridge pin.
16
- Example: 630-27-655.`,pattern:"^([0-9]{3}-[0-9]{2}-[0-9]{3})$"},name:{type:"string",title:e.instant("child_bridge.config.name"),description:"The name of the child bridge.",maxLength:64},manufacturer:{type:"string",title:e.instant("child_bridge.config.manufacturer"),description:"The child bridge manufacturer to be displayed in HomeKit.",maxLength:32},firmwareRevision:{type:"string",title:e.instant("child_bridge.config.firmware"),description:"The child bridge firmware version to be displayed in HomeKit.",maxLength:64},model:{type:"string",title:e.instant("child_bridge.config.model"),description:"The child bridge model to be displayed in HomeKit.",maxLength:32}},t?{debugModeEnabled:{type:"boolean",title:"Debug Mode",description:"Enable verbose logging for debugging."}}:{}),{env:{type:"object",additionalProperties:!1,title:"Environment Variables",description:"Environment variables to set for this child bridge.",properties:{DEBUG:{type:"string",title:"DEBUG",description:e.instant("settings.service.debug_tooltip")},NODE_OPTIONS:{type:"string",title:"NODE_OPTIONS",description:e.instant("settings.service.node_tooltip")}}}})}}export{Hs as a,Nf as b,Xs as c,ks as d,XA as e,nC as f,rD as g,sC as h};
@@ -1,2 +0,0 @@
1
- import{a as D}from"./chunk-3PGUQRQW.js";import{Cb as g,Da as l,F as c,Rb as y,Sa as w,Sb as b,Ta as u,Tb as E,Yc as N,db as h,eb as C,ha as _,hb as f,ja as M,jc as O,la as v,na as a}from"./chunk-ZRDN4L2J.js";var T=["editorContainer"],z="[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}",I=new v("NGX_MONACO_EDITOR_CONFIG"),R=!1,q,x=(()=>{let i=class i{constructor(){this.config=a(I),this.onInit=new w,this._insideNg=!1}set insideNg(e){this._insideNg=e,this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get insideNg(){return this._insideNg}ngAfterViewInit(){R?q.then(()=>{this.initMonaco(this._options,this.insideNg)}):(R=!0,q=new Promise(e=>{let t=this.config.baseUrl;if((t==="assets"||!t)&&(t="./assets/monaco/min/vs"),typeof window.monaco=="object"){this.initMonaco(this._options,this.insideNg),e();return}let o=r=>{let m=r||window.require,p={paths:{vs:`${t}`}};Object.assign(p,this.config.requireConfig||{}),m.config(p),m(["vs/editor/editor.main"],()=>{typeof this.config.onMonacoLoad=="function"&&this.config.onMonacoLoad(),this.initMonaco(this._options,this.insideNg),e()})};if(this.config.monacoRequire)o(this.config.monacoRequire);else if(window.require)if(window.require.config)o();else{var s=`${t}/loader.js`,d=new XMLHttpRequest;d.addEventListener("load",()=>{let r=document.createElement("script");r.type="text/javascript",r.text=["var nodeRequire = require;",d.responseText.replace('"use strict";',""),"var monacoAmdRequire = require;","require = nodeRequire;","require.nodeRequire = require;"].join(`
2
- `),document.body.appendChild(r),o(window.monacoAmdRequire)}),d.open("GET",s),d.send()}else{let r=document.createElement("script");r.type="text/javascript",r.src=`${t}/loader.js`,r.addEventListener("load",()=>{o()}),document.body.appendChild(r)}}))}ngOnDestroy(){this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._editor&&(this._editor.dispose(),this._editor=void 0)}};i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=h({type:i,selectors:[["ng-component"]],viewQuery:function(t,o){if(t&1&&y(T,7),t&2){let s;b(s=E())&&(o._editorContainer=s.first)}},inputs:{insideNg:"insideNg"},outputs:{onInit:"onInit"},standalone:!1,decls:0,vars:0,template:function(t,o){},encapsulation:2});let n=i;return n})(),X=(()=>{let i=class i extends x{constructor(){super(...arguments),this.zone=a(u),this._value="",this.propagateChange=e=>{},this.onTouched=()=>{}}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set model(e){this.options.model=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}writeValue(e){this._value=e||"",setTimeout(()=>{this._editor&&!this.options.model&&this._editor.setValue(this._value)})}registerOnChange(e){this.propagateChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.options.readOnly=e||this._options.readOnly}initMonaco(e,t){let o=!!e.model;if(o){let s=monaco.editor.getModel(e.model.uri||"");s?(e.model=s,e.model.setValue(this._value)):e.model=monaco.editor.createModel(e.model.value,e.model.language,e.model.uri)}t?this._editor=monaco.editor.create(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.create(this._editorContainer.nativeElement,e)}),o||this._editor.setValue(this._value),this._editor.onDidChangeModelContent(s=>{let d=this._editor.getValue();this.zone.run(()=>{this.propagateChange(d),this._value=d})}),this._editor.onDidBlurEditorWidget(()=>{this.onTouched()}),this._editor.setTheme=s=>{this.options.theme=s,monaco.editor.setTheme(s)},this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}};i.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(i)))(o||i)}})(),i.\u0275cmp=h({type:i,selectors:[["ngx-monaco-editor"]],inputs:{options:"options",model:"model"},features:[O([{provide:D,useExisting:_(()=>i),multi:!0}]),f],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(t,o){t&1&&g(0,"div",1,0)},styles:["[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}"],changeDetection:0});let n=i;return n})(),$=(()=>{let i=class i extends x{constructor(){super(...arguments),this.zone=a(u)}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set originalModel(e){this._originalModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}set modifiedModel(e){this._modifiedModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}initMonaco(e,t){if(!this._originalModel||!this._modifiedModel)throw new Error("originalModel or modifiedModel not found for ngx-monaco-diff-editor");this._originalModel.language=this._originalModel.language||e.language,this._modifiedModel.language=this._modifiedModel.language||e.language;let o=monaco.editor.createModel(this._originalModel.code,this._originalModel.language),s=monaco.editor.createModel(this._modifiedModel.code,this._modifiedModel.language);this._editorContainer.nativeElement.innerHTML="";let d=e.theme;t?this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e)}),e.theme=d,this._editor.setModel({original:o,modified:s}),this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}};i.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(i)))(o||i)}})(),i.\u0275cmp=h({type:i,selectors:[["ngx-monaco-diff-editor"]],inputs:{options:"options",originalModel:"originalModel",modifiedModel:"modifiedModel"},features:[f],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(t,o){t&1&&g(0,"div",1,0)},styles:[z],changeDetection:0});let n=i;return n})(),H=(()=>{let i=class i{static forRoot(e={}){return{ngModule:i,providers:[{provide:I,useValue:e}]}}};i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=C({type:i}),i.\u0275inj=M({imports:[N]});let n=i;return n})();export{X as a,$ as b,H as c};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk-NVN7DYND.js";import"./chunk-AIGU7Y6G.js";import"./chunk-L2Y7HWNA.js";import{h as r}from"./chunk-5ZHDYUXA.js";import"./chunk-D5Z6KR3J.js";import"./chunk-YK5NYQW5.js";import{eb as e,ja as o}from"./chunk-ZRDN4L2J.js";var c=[{path:"",loadComponent:()=>import("./chunk-BJKMZCEQ.js").then(t=>t.SettingsComponent),canActivate:[n]}],m=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=e({type:t});static \u0275inj=o({imports:[r.forChild(c),r]})}return t})();var l=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=e({type:t});static \u0275inj=o({imports:[m]})}return t})();export{l as SettingsModule};
@@ -1,12 +0,0 @@
1
- import{a as g,b,c as z}from"./chunk-SIVN6M76.js";import{a as u}from"./chunk-3SKLXSFI.js";import{P as l,g as h,ia as f,n as c,na as a}from"./chunk-ZRDN4L2J.js";var d=h(g(),1),p=h(b(),1),w=h(z(),1);var x=(()=>{class r{$ws=a(u);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;searchFilter=null;logBuffer=[];maxBufferSize=1e3;term;startTerminal(e,s={},n,F){this.pluginName=F,this.elementResize=n,this.io=this.$ws.connectToNamespace("log"),this.term=new w.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new d.FitAddon,this.webLinksAddon=new p.WebLinksAddon,this.resize=new c,this.term.open(e.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.subscribe(()=>{this.term.reset(),this.logBuffer=[],this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.on("disconnect",()=>{this.term.write(`
2
- \r
3
- \rWebsocket failed to connect. Is the server running?
4
- \r
5
- \r`)}),this.resize.pipe(l(500)).subscribe(t=>{this.io.socket.emit("resize",t)}),this.io.socket.on("stdout",t=>{if(this.pluginName){let m=t.split(`
6
- \r`),i=!1;m.forEach(o=>{if(o){if(i)if(o.match(/36m\[.*?\]/))i=!1;else{this.term.write(`${o}
7
- \r`);return}o.includes(`36m[${this.pluginName}]`)&&(this.term.write(`${o}
8
- \r`),i=!0)}})}else this.logBuffer.push(t),this.logBuffer.length>this.maxBufferSize&&this.logBuffer.shift(),this.searchFilter?t.split(`
9
- \r`).forEach(i=>{i&&this.lineMatchesFilter(i)&&this.term.write(`${i}
10
- \r`)}):this.term.write(t)}),this.term.onResize(t=>{this.resize.next(t)}),this.elementResize&&this.elementResize.pipe(l(100)).subscribe({next:()=>{this.fitAddon.fit()}})}setSearchFilter(e){this.searchFilter=e.toLowerCase(),this.redrawTerminalWithFilter()}clearSearchFilter(){this.searchFilter=null,this.redrawTerminalWithFilter()}getSearchFilter(){return this.searchFilter}scrollToBottom(){this.term&&setTimeout(()=>this.term.scrollToLine(this.term.buffer.active.length),10)}lineMatchesFilter(e){return this.searchFilter?e.replace(/\x1b\[[0-9;]*m/g,"").toLowerCase().includes(this.searchFilter):!0}redrawTerminalWithFilter(){this.term&&(this.term.clear(),this.logBuffer.forEach(e=>{this.searchFilter?e.split(`
11
- \r`).forEach(n=>{n&&this.lineMatchesFilter(n)&&this.term.write(`${n}
12
- \r`)}):this.term.write(e)}))}destroyTerminal(){this.io.end(),this.term.dispose(),this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.logBuffer=[],this.searchFilter=null}static \u0275fac=function(s){return new(s||r)};static \u0275prov=f({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();export{x as a};
@@ -1 +0,0 @@
1
- import{ia as o,n as e}from"./chunk-ZRDN4L2J.js";var n=new e,f=(()=>{class t{readyEvent;constructor(){this.readyEvent=n}static \u0275fac=function(r){return new(r||t)};static \u0275prov=o({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function d(){n.next(void 0)}export{f as a,d as b};
@@ -1 +0,0 @@
1
- import{e as u,h as s}from"./chunk-5ZHDYUXA.js";import{k as p,n as l,q as d}from"./chunk-YK5NYQW5.js";import{eb as n,h as f,ia as c,ja as i,na as e,x as m}from"./chunk-ZRDN4L2J.js";var a=(()=>{class t{$api=e(d);$router=e(u);$toastr=e(l);$translate=e(p);resolve(){return f(this,null,function*(){try{let o=yield m(this.$api.get("/config-editor"));return JSON.stringify(o,null,4)}catch(o){console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(r){return new(r||t)};static \u0275prov=c({token:t,factory:t.\u0275fac})}return t})();var y=[{path:"",loadComponent:()=>import("./chunk-CJJAQM22.js").then(t=>t.ConfigEditorComponent),resolve:{config:a}}],v=(()=>{class t{static \u0275fac=function(r){return new(r||t)};static \u0275mod=n({type:t});static \u0275inj=i({imports:[s.forChild(y),s]})}return t})();var T=(()=>{class t{static \u0275fac=function(r){return new(r||t)};static \u0275mod=n({type:t});static \u0275inj=i({providers:[a],imports:[v]})}return t})();export{T as ConfigEditorModule};
@@ -1 +0,0 @@
1
- import{a as D}from"./chunk-3SKLXSFI.js";import"./chunk-L2Y7HWNA.js";import{e as E}from"./chunk-5ZHDYUXA.js";import{b as R}from"./chunk-D5Z6KR3J.js";import{k as T,l as I,n as O,q as B}from"./chunk-YK5NYQW5.js";import{$b as l,Ib as S,Lb as w,Nb as d,Pc as k,Qa as i,_b as a,ac as h,db as $,lc as b,mc as g,na as m,qb as _,rb as f,rc as o,sa as C,sc as c,ta as y,wb as v,xb as r,yb as n,zb as x}from"./chunk-ZRDN4L2J.js";var U=(t,p)=>({"fas fa-circle-notch fa-spin":t,"far fa-check-circle":p}),F=t=>({"grey-text":t}),P=(t,p)=>({"far fa-circle":t,"fas fa-circle-notch fa-spin":p});function j(t,p){if(t&1&&(r(0,"div",7),a(1),n()),t&2){let e=d();i(),l(e.error)}}function M(t,p){if(t&1&&(r(0,"p",9),a(1),o(2,"translate"),n(),r(3,"div",10)(4,"div",11)(5,"span"),x(6,"i",12),a(7),o(8,"translate"),n()(),r(9,"div",11)(10,"span",12),x(11,"i",12),a(12),o(13,"translate"),n()()()),t&2){let e=d();i(),l(c(2,6,"restart.please_wait_while_server_restarts")),i(5),v("ngClass",g(12,U,!e.uiOnline,e.uiOnline)),i(),h(" ",c(8,8,"restart.ui_online")," "),i(3),v("ngClass",b(15,F,!e.uiOnline)),i(),v("ngClass",g(17,P,!e.uiOnline,e.uiOnline)),i(),h(" ",c(13,10,"restart.service_ready")," ")}}function V(t,p){if(t&1){let e=S();r(0,"p",15)(1,"button",16),w("click",function(){C(e);let u=d(2);return y(u.viewLogs())}),a(2),o(3,"translate"),n()()}t&2&&(i(2),l(c(3,1,"menu.tooltip_view_logs")))}function z(t,p){if(t&1&&(r(0,"div",8)(1,"p"),a(2),o(3,"translate"),n(),r(4,"p",13),a(5),o(6,"translate"),r(7,"span",14),a(8),n()(),_(9,V,4,3,"p",15),n()),t&2){let e=d();i(2),l(c(3,4,"restart.server_is_taking_long_time_to_restart")),i(3),h(" ",c(6,6,"restart.label_restart_command_executed"),": "),i(3),l(e.resp.command||"End Process"),i(),f(e.uiOnline?9:-1)}}var X=(()=>{class t{$api=m(B);$router=m(E);$settings=m(R);$toastr=m(O);$translate=m(T);$ws=m(D);checkTimeout;checkDelay;io;uiOnline=!1;error=!1;resp={};timeout=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$router.parseUrl(this.$router.url).queryParams.restarting?(this.uiOnline=!0,this.checkIfServerUp()):this.$api.put("/server/restart",{}).subscribe({next:s=>{this.resp=s,this.checkIfServerUp(),s.restartingUI||(this.uiOnline=!0)},error:s=>{console.error(s),this.error=this.$translate.instant("restart.toast_server_restart_error"),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}viewLogs(){this.$router.navigate(["/logs"])}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{this.uiOnline=!0,(e.status==="ok"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("restart.toast_server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},7e3),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},4e4)}static \u0275fac=function(s){return new(s||t)};static \u0275cmp=$({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[3,"ngClass"],[1,"grey-text","mb-0"],[1,"font-monospace"],[1,"mt-2","mb-0"],[1,"btn","btn-primary","mb-0",3,"click"]],template:function(s,u){s&1&&(r(0,"div",0)(1,"h3",1),a(2),o(3,"translate"),n()(),r(4,"div",2)(5,"div",3),x(6,"i",4),n(),r(7,"div",5)(8,"h4",6),a(9),o(10,"translate"),n(),_(11,j,2,1,"div",7)(12,M,14,20),_(13,z,10,8,"div",8),n()()),s&2&&(i(2),l(c(3,4,"menu.restart.title")),i(7),l(c(10,6,"restart.title_restart")),i(2),f(u.error?11:12),i(2),f(u.timeout?13:-1))},dependencies:[k,I],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{X as RestartComponent};
@@ -1 +0,0 @@
1
- import{a as me}from"./chunk-N2EK3VS7.js";import{a as le}from"./chunk-TMGK6CPZ.js";import{g as Q,m as k,n as ae}from"./chunk-54X33YUH.js";import{A as re,C as A,D as G,b as q,c as F,d as g,e as V,f as z,g as N,j as S,m as R,p as O,q as L,r as J}from"./chunk-3PGUQRQW.js";import{b as H}from"./chunk-L2Y7HWNA.js";import{c as oe}from"./chunk-5ZHDYUXA.js";import{a as Ce,b as se}from"./chunk-D5Z6KR3J.js";import{k as T,l as E,n as B,q as M}from"./chunk-YK5NYQW5.js";import{$b as d,Ec as ne,Ib as I,Lb as f,Nb as _,Pc as j,Qa as e,_b as m,ac as x,bc as ee,db as y,g as xe,h as W,lc as D,mc as te,na as c,pb as u,qb as w,rb as h,rc as a,sa as $,sc as o,ta as U,tb as X,tc as ie,ub as Y,vb as Z,wb as b,xb as i,yb as t,zb as p}from"./chunk-ZRDN4L2J.js";function we(r,C){r&1&&(i(0,"ngb-alert",13)(1,"p",20),m(2),a(3,"translate"),t()()),r&2&&(b("dismissible",!1),e(2),d(o(3,2,"login.invalid_password")))}var pe=(()=>{class r{$activeModal=c(k);$api=c(M);$toastr=c(B);$translate=c(T);invalidCredentials=!1;formGroup=new N({password:new S("",[g.required])});disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))},error:()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(s){return new(s||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:34,vars:27,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","password","autocomplete","current-password",1,"form-control","custom-input",3,"formControl","placeholder"],["type","error",1,"mt-3","mb-0",3,"dismissible"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"mb-0"]],template:function(s,l){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),a(4,"translate"),t(),i(5,"button",3),a(6,"translate"),f("click",function(){return l.dismissModal()}),t()(),i(7,"div",4)(8,"div",5),p(9,"i",6),t(),i(10,"ul",7)(11,"li"),m(12),a(13,"translate"),t()(),i(14,"ul",8)(15,"li",9)(16,"label",10),m(17),a(18,"translate"),t(),i(19,"div",11),p(20,"input",12),a(21,"translate"),t()()(),w(22,we,4,4,"ngb-alert",13),t(),i(23,"div",14)(24,"div",15)(25,"button",16),a(26,"translate"),f("click",function(){return l.dismissModal()}),m(27),a(28,"translate"),t()(),p(29,"div",17),i(30,"div",18)(31,"button",19),f("click",function(){return l.disable2fa()}),m(32),a(33,"translate"),t()()()()),s&2&&(e(3),d(o(4,11,"users.setup_2fa_disable")),e(2),u("aria-label",o(6,13,"form.button_close")),e(7),d(o(13,15,"users.setup_2fa_disable_current_password")),e(5),d(o(18,17,"users.label_password")),e(3),b("formControl",l.formGroup.controls.password)("placeholder",o(21,19,"users.label_password")),e(2),h(l.invalidCredentials&&!l.formGroup.controls.password.value?22:-1),e(3),u("aria-label",o(26,21,"form.button_close")),e(2),x(" ",o(28,23,"form.button_close")," "),e(4),b("disabled",l.formGroup.invalid),e(),x(" ",o(33,25,"form.button_disable")," "))},dependencies:[A,F,V,G,O,Q,E],encapsulation:2})}return r})();var de=xe(Ce(),1);var he=r=>({timeDiffError:r});function ge(r,C){r&1&&(i(0,"li"),m(1),a(2,"translate"),t()),r&2&&(e(),d(o(2,1,"users.setup_2fa_scan_qr_code")))}function Se(r,C){if(r&1&&(i(0,"ngb-alert",8)(1,"p",16),m(2),a(3,"translate"),t(),i(4,"p",17),m(5),a(6,"translate"),t()()),r&2){let n=_();b("dismissible",!1),e(2),d(o(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),d(ie(6,5,"users.setup_2fa_server_time_out",D(8,he,n.timeDiffError)))}}function ye(r,C){r&1&&p(0,"i",27)}function Ee(r,C){r&1&&p(0,"i",28)}function $e(r,C){if(r&1){let n=I();i(0,"div",21),m(1),a(2,"translate"),p(3,"br"),m(4),i(5,"a",26),f("click",function(){$(n);let l=_(2);return U(l.copySecretToClipboard())}),w(6,ye,1,0,"i",27)(7,Ee,1,0,"i",28),t()()}if(r&2){let n=_(2);e(),x(" ",o(2,3,"users.setup_2fa_scan_qr_manual")),e(3),x(" ",n.otpSecret," "),e(2),h(n.secretCopied?6:7)}}function Ue(r,C){if(r&1&&(i(0,"ul",9)(1,"li",18)(2,"div",19),p(3,"app-qrcode",20),t(),w(4,$e,8,5,"div",21),t(),i(5,"li",22)(6,"label",23),m(7),a(8,"translate"),t(),i(9,"div",24),p(10,"input",25),t()()()),r&2){let n=_();e(3),b("data",n.otpString),e(),h(n.otpSecret?4:-1),e(3),d(o(8,4,"users.setup_2fa_enter_code")),e(3),b("formControl",n.formGroup.controls.code)}}function ke(r,C){if(r&1){let n=I();i(0,"button",29),a(1,"translate"),f("click",function(){$(n);let l=_();return U(l.dismissModal())}),m(2),a(3,"translate"),t()}r&2&&(u("aria-label",o(1,2,"form.button_close")),e(2),x(" ",o(3,4,"form.button_close")," "))}function Te(r,C){if(r&1){let n=I();i(0,"button",29),a(1,"translate"),f("click",function(){$(n);let l=_();return U(l.dismissModal())}),m(2),a(3,"translate"),t()}r&2&&(u("aria-label",o(1,2,"form.button_close")),e(2),x(" ",o(3,4,"form.button_close")," "))}function Be(r,C){if(r&1){let n=I();i(0,"button",30),f("click",function(){$(n);let l=_();return U(l.enable2fa())}),m(1),a(2,"translate"),t()}if(r&2){let n=_();b("disabled",n.formGroup.invalid),e(),x(" ",o(2,2,"form.button_enable")," ")}}var ce=(()=>{class r{$activeModal=c(k);$api=c(M);$toastr=c(B);$translate=c(T);copyTimeout=null;user;timeDiffError=null;otpString;otpSecret;secretCopied=!1;formGroup=new N({code:new S("",[g.required,g.minLength(6),g.maxLength(6)])});ngOnInit(){this.$api.post("/users/otp/setup",{}).subscribe({next:n=>{this.checkTimeDiff(n.timestamp),this.timeDiffError||(this.otpString=n.otpauth,this.otpSecret=new URL(this.otpString).searchParams.get("secret")||"")},error:n=>{this.$activeModal.dismiss(),console.error(n),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:n=>{console.error(n),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}copySecretToClipboard(){return W(this,null,function*(){yield navigator.clipboard.writeText(this.otpSecret),this.secretCopied=!0,this.copyTimeout&&clearTimeout(this.copyTimeout),this.copyTimeout=setTimeout(()=>{this.secretCopied=!1},3e3)})}dismissModal(){this.$activeModal.dismiss("Dismiss")}checkTimeDiff(n){let s=(0,de.default)(n).diff(new Date,"millisecond");s<-5e3||s>5e3?this.timeDiffError=s:this.timeDiffError=null}static \u0275fac=function(s){return new(s||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],inputs:{user:"user"},decls:24,vars:15,consts:[[1,"modal-content","setup2fa"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fw-bold","mb-1"],[1,"mb-0"],[1,"list-group-item","text-center"],[1,"text-center","w-100","d-flex","justify-content-center","my-2"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"grey-text","small","mt-0","mb-1"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control","custom-input",3,"formControl"],["href","javascript:void(0)",1,"ms-1","text-primary",3,"click"],[1,"fas","fa-check","green-text"],[1,"fas","fa-copy"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(s,l){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),a(4,"translate"),t(),i(5,"button",3),a(6,"translate"),f("click",function(){return l.dismissModal()}),t()(),i(7,"div",4)(8,"div",5),p(9,"i",6),t(),i(10,"ul",7)(11,"li"),m(12),a(13,"translate"),t(),w(14,ge,3,3,"li"),t(),w(15,Se,7,10,"ngb-alert",8),w(16,Ue,11,6,"ul",9),t(),i(17,"div",10)(18,"div",11),w(19,ke,4,6,"button",12),t(),i(20,"div",13),w(21,Te,4,6,"button",12),t(),i(22,"div",14),w(23,Be,3,4,"button",15),t()()()),s&2&&(e(3),d(o(4,9,"users.setup_2fa")),e(2),u("aria-label",o(6,11,"form.button_close")),e(7),d(o(13,13,"users.setup_2fa_warning")),e(2),h(l.timeDiffError?-1:14),e(),h(l.timeDiffError?15:-1),e(),h(l.timeDiffError?-1:16),e(3),h(l.timeDiffError?-1:19),e(2),h(l.timeDiffError?21:-1),e(2),h(l.timeDiffError?-1:23))},dependencies:[Q,le,A,F,V,re,G,O,E],encapsulation:2})}return r})();var ue=r=>({"is-invalid":r}),fe=(()=>{class r{$activeModal=c(k);$api=c(M);$toastr=c(B);$translate=c(T);form=new N({username:new S("",[g.required]),name:new S("",[g.required]),password:new S("",[g.compose([g.required,g.minLength(4)])]),passwordConfirm:new S("",[g.required]),admin:new S(!0)},this.matchPassword);onSubmit({value:n}){this.$api.post("/users",n).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))},error:s=>{this.$toastr.error(s.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(n){let s=n.get("password").value,l=n.get("passwordConfirm").value;if(s!==l)n.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(s){return new(s||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:58,vars:50,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input",3,"ngClass"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input",3,"ngClass"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["formControlName","admin","type","checkbox","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(s,l){s&1&&(i(0,"div",0)(1,"form",1),f("ngSubmit",function(){return l.onSubmit(l.form)}),i(2,"div",2)(3,"h5",3),m(4),a(5,"translate"),t(),i(6,"button",4),a(7,"translate"),f("click",function(){return l.dismissModal()}),t()(),i(8,"div",5)(9,"div",6),p(10,"i",7),t(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),a(15,"translate"),t(),i(16,"div",11),p(17,"input",12),a(18,"translate"),t()(),i(19,"li",9)(20,"label",13),m(21),a(22,"translate"),t(),i(23,"div",11),p(24,"input",14),a(25,"translate"),t()(),i(26,"li",9)(27,"label",15),m(28),a(29,"translate"),t(),i(30,"div",11),p(31,"input",16),a(32,"translate"),t()(),i(33,"li",9)(34,"label",17),m(35),a(36,"translate"),t(),i(37,"div",11),p(38,"input",18),a(39,"translate"),t()(),i(40,"li",19)(41,"span",20),m(42),a(43,"translate"),t(),i(44,"div",21),p(45,"input",22),a(46,"translate"),p(47,"label",23),t()()()(),i(48,"div",24)(49,"div",20)(50,"button",25),f("click",function(){return l.dismissModal()}),m(51),a(52,"translate"),t()(),p(53,"div",26),i(54,"div",27)(55,"button",28),m(56),a(57,"translate"),t()()()()()),s&2&&(e(),b("formGroup",l.form),e(3),d(o(5,18,"users.title_add_user")),e(2),u("aria-label",o(7,20,"form.button_close")),e(8),d(o(15,22,"users.label_username")),e(3),u("aria-label",o(18,24,"users.label_username")),e(4),d(o(22,26,"users.label_full_name")),e(3),u("aria-label",o(25,28,"users.label_full_name")),e(4),d(o(29,30,"users.label_password")),e(3),b("ngClass",D(46,ue,l.form.controls.password.dirty&&l.form.controls.password.errors)),u("aria-label",o(32,32,"users.label_password")),e(4),d(o(36,34,"users.label_confirm_password")),e(3),b("ngClass",D(48,ue,l.form.controls.passwordConfirm.dirty&&l.form.controls.passwordConfirm.errors)),u("aria-label",o(39,36,"users.label_confirm_password")),e(4),d(o(43,38,"users.label_admin_user")),e(3),u("aria-label",o(46,40,"users.label_admin_user")),e(6),x(" ",o(52,42,"form.button_close")," "),e(4),b("disabled",!l.form.valid),e(),x(" ",o(57,44,"form.button_save")," "))},dependencies:[A,R,F,q,V,z,G,L,J,j,E],encapsulation:2})}return r})();var be=r=>({"is-invalid":r});function Me(r,C){if(r&1&&(i(0,"li",9)(1,"label",27),m(2),a(3,"translate"),t(),i(4,"div",11),p(5,"input",28),a(6,"translate"),t()()),r&2){let n=_();e(2),d(o(3,3,"users.label_confirm_password")),e(3),b("ngClass",D(7,be,n.form.controls.passwordConfirm.dirty&&n.form.controls.passwordConfirm.errors)),u("aria-label",o(6,5,"users.label_confirm_password"))}}var _e=(()=>{class r{$activeModal=c(k);$api=c(M);$auth=c(H);$cdr=c(ne);$toastr=c(B);$translate=c(T);initialFormValue={};user;isCurrentUser=!1;form=new N({username:new S("",[g.required]),name:new S("",[g.required]),password:new S(""),passwordConfirm:new S(""),admin:new S(!0)},this.matchPassword);ngOnInit(){this.isCurrentUser=this.$auth.user.username===this.user.username,this.form.patchValue(this.user),this.initialFormValue=this.form.getRawValue(),this.form.valueChanges.subscribe(()=>this.$cdr.detectChanges())}onSubmit({value:n}){this.$api.patch(`/users/${this.user.id}`,n).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser&&n.username!==this.$auth.user.username&&this.$auth.logout()},error:s=>{console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}isFormUnchanged(){return this.form.controls.password.value?!1:JSON.stringify(this.form.getRawValue())===JSON.stringify(this.initialFormValue)}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(n){let s=n.get("password").value,l=n.get("passwordConfirm").value;if(s!==l)n.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(s){return new(s||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],inputs:{user:"user"},decls:52,vars:42,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input",3,"ngClass"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input",3,"ngClass"]],template:function(s,l){s&1&&(i(0,"div",0)(1,"form",1),f("ngSubmit",function(){return l.onSubmit(l.form)}),i(2,"div",2)(3,"h5",3),m(4),a(5,"translate"),t(),i(6,"button",4),a(7,"translate"),f("click",function(){return l.dismissModal()}),t()(),i(8,"div",5)(9,"div",6),p(10,"i",7),t(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),a(15,"translate"),t(),i(16,"div",11),p(17,"input",12),a(18,"translate"),t()(),i(19,"li",9)(20,"label",13),m(21),a(22,"translate"),t(),i(23,"div",11),p(24,"input",14),a(25,"translate"),t()(),i(26,"li",9)(27,"label",15),m(28),a(29,"translate"),t(),i(30,"div",11),p(31,"input",16),a(32,"translate"),t()(),w(33,Me,7,9,"li",9),i(34,"li",17)(35,"span",18),m(36),a(37,"translate"),t(),i(38,"div",19),p(39,"input",20),a(40,"translate"),p(41,"label",21),t()()()(),i(42,"div",22)(43,"div",18)(44,"button",23),f("click",function(){return l.dismissModal()}),m(45),a(46,"translate"),t()(),p(47,"div",24),i(48,"div",25)(49,"button",26),m(50),a(51,"translate"),t()()()()()),s&2&&(e(),b("formGroup",l.form),e(3),d(o(5,16,"users.title_edit_user")),e(2),u("aria-label",o(7,18,"form.button_close")),e(8),d(o(15,20,"users.label_username")),e(3),u("aria-label",o(18,22,"users.label_username")),e(4),d(o(22,24,"users.label_full_name")),e(3),u("aria-label",o(25,26,"users.label_full_name")),e(4),d(o(29,28,"users.label_new_password")),e(3),b("ngClass",D(40,be,l.form.controls.password.dirty&&l.form.controls.password.errors)),u("aria-label",o(32,30,"users.label_new_password")),e(2),h(l.form.controls.password.value?33:-1),e(3),d(o(37,32,"users.label_admin_user")),e(3),u("aria-label",o(40,34,"users.label_admin_user")),e(6),x(" ",o(46,36,"form.button_close")," "),e(4),b("disabled",!l.form.valid||l.isFormUnchanged()),e(),x(" ",o(51,38,"form.button_save")," "))},dependencies:[A,R,F,q,V,z,G,L,J,j,E],encapsulation:2})}return r})();var ve=(()=>{class r{$activeModal=c(k);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(s){return new(s||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:46,vars:36,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"mb-2","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(s,l){s&1&&(i(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),m(4),a(5,"translate"),t(),i(6,"button",3),a(7,"translate"),f("click",function(){return l.dismissModal()}),t()(),i(8,"div",4)(9,"div",5),p(10,"i",6),t(),i(11,"h5",7),m(12),a(13,"translate"),t(),i(14,"ul",8)(15,"li"),m(16),a(17,"translate"),t(),i(18,"ul",9)(19,"li"),m(20),a(21,"translate"),t(),i(22,"li"),m(23),a(24,"translate"),t(),i(25,"li"),m(26),a(27,"translate"),a(28,"translate"),t(),i(29,"li"),m(30),a(31,"translate"),t(),i(32,"li"),m(33),a(34,"translate"),t()(),i(35,"li"),m(36),a(37,"translate"),t()(),p(38,"app-support-banner"),t(),i(39,"div",10),p(40,"div",11),i(41,"div",12)(42,"button",13),f("click",function(){return l.dismissModal()}),m(43),a(44,"translate"),t()(),p(45,"div",14),t()()()),s&2&&(e(4),d(o(5,12,"support.title")),e(2),u("aria-label",o(7,14,"form.button_close")),e(6),d(o(13,16,"users.title_users")),e(4),d(o(17,18,"users.support.acc_1")),e(4),d(o(21,20,"menu.label_status")),e(3),d(o(24,22,"menu.label_plugins")),e(3),ee("",o(27,24,"menu.label_accessories")," (",o(28,26,"users.support.control"),")"),e(4),d(o(31,28,"menu.linux.label_logs")),e(3),d(o(34,30,"support.title")),e(3),d(o(37,32,"users.support.acc_2")),e(7),x(" ",o(44,34,"form.button_close")," "))},dependencies:[me,E],encapsulation:2})}return r})();var Ie=(r,C)=>({"fa-user-secret":r,"fa-user":C});function De(r,C){if(r&1){let n=I();i(0,"button",23),f("click",function(){$(n);let l=_(2).$implicit,v=_();return U(v.disable2fa(l))}),m(1),a(2,"translate"),t()}if(r&2){let n=_(2).$implicit,s=_();b("disabled",n.username!==s.username),e(),x(" ",o(2,2,"users.setup_2fa_disable")," ")}}function Fe(r,C){if(r&1){let n=I();i(0,"button",24),f("click",function(){$(n);let l=_(2).$implicit,v=_();return U(v.setup2fa(l))}),m(1),a(2,"translate"),t()}if(r&2){let n=_(2).$implicit,s=_();b("disabled",n.username!==s.username),e(),x(" ",o(2,2,"users.setup_2fa")," ")}}function Ve(r,C){if(r&1&&w(0,De,3,4,"button",21)(1,Fe,3,4,"button",22),r&2){let n=_().$implicit;h(n.otpActive?0:1)}}function Ne(r,C){r&1&&p(0,"div")}function Ae(r,C){if(r&1){let n=I();i(0,"div",9)(1,"div",10)(2,"div",11)(3,"div",12)(4,"span",13)(5,"h4"),m(6),t(),i(7,"h5",14),p(8,"i",15),m(9),t()()(),i(10,"div",16),w(11,Ve,2,1)(12,Ne,1,0,"div"),i(13,"div")(14,"button",17),a(15,"translate"),f("click",function(){let l=$(n).$implicit,v=_();return U(v.openEditUser(l))}),p(16,"i",18),t(),i(17,"button",19),a(18,"translate"),f("click",function(){let l=$(n).$implicit,v=_();return U(v.deleteUser(l.id))}),p(19,"i",20),t()()()()()()}if(r&2){let n=C.$implicit,s=_();e(6),d(n.name),e(2),b("ngClass",te(11,Ie,n.admin,!n.admin)),e(),x(" ",n.username," "),e(2),h(n.admin?11:12),e(3),u("aria-label",o(15,7,"form.button_edit")),e(3),b("disabled",s.username===n.username),u("aria-label",o(18,9,"form.button_delete"))}}var Ot=(()=>{class r{$api=c(M);$auth=c(H);$modal=c(ae);$route=c(oe);$settings=c(se);$toastr=c(B);$translate=c(T);homebridgeUsers=[];username=this.$auth.user.username;isAdmin=this.$auth.user.admin;ngOnInit(){let n=this.$translate.instant("users.title_users");this.$settings.setPageTitle(n),this.$route.data.subscribe(s=>{this.homebridgeUsers=s.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").subscribe(n=>{this.homebridgeUsers=n})}openAddNewUser(){this.$modal.open(fe,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(n){let s=this.$modal.open(_e,{size:"lg",backdrop:"static"});s.componentInstance.user=n,s.result.finally(()=>{this.reloadUsers()})}deleteUser(n){this.$api.delete(`/users/${n}`).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.toast_user_deleted"),this.$translate.instant("toast.title_success")),this.reloadUsers()},error:s=>{console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))}})}setup2fa(n){let s=this.$modal.open(ce,{size:"lg",backdrop:"static"});s.componentInstance.user=n,s.result.finally(()=>{this.reloadUsers()})}disable2fa(n){let s=this.$modal.open(pe,{size:"lg",backdrop:"static"});s.componentInstance.user=n,s.result.finally(()=>{this.reloadUsers()})}openSupport(){this.$modal.open(ve,{size:"lg",backdrop:"static"})}static \u0275fac=function(s){return new(s||r)};static \u0275cmp=y({type:r,selectors:[["app-users"]],decls:15,vars:9,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"btn","btn-elegant","waves-effect","m-0","me-2",3,"click"],[1,"fas","fa-user-plus"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[1,"small","text-truncate","grey-text"],[1,"fas",3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-user-pen"],[1,"btn","btn-danger","m-0","ms-2",3,"click","disabled"],[1,"fas","fa-trash"],[1,"btn","btn-elegant","m-0",3,"disabled"],[1,"btn","btn-primary","m-0",3,"disabled"],[1,"btn","btn-elegant","m-0",3,"click","disabled"],[1,"btn","btn-primary","m-0",3,"click","disabled"]],template:function(s,l){s&1&&(i(0,"div",0)(1,"div",1)(2,"h3",2),m(3),a(4,"translate"),t()(),i(5,"div",3)(6,"button",4),a(7,"translate"),f("click",function(){return l.openAddNewUser()}),p(8,"i",5),t(),i(9,"button",6),a(10,"translate"),f("click",function(){return l.openSupport()}),p(11,"i",7),t()()(),i(12,"div",8),Y(13,Ae,20,14,"div",9,X),t()),s&2&&(e(3),d(o(4,3,"users.title_users")),e(3),u("aria-label",o(7,5,"users.button_add_user")),e(3),u("aria-label",o(10,7,"support.title")),e(4),Z(l.homebridgeUsers))},dependencies:[j,E],encapsulation:2})}return r})();export{Ot as UsersComponent};
@@ -1 +0,0 @@
1
- import{b as $}from"./chunk-D5Z6KR3J.js";import{p as h,q as S}from"./chunk-YK5NYQW5.js";import{A as w,D as T,eb as E,fd as j,h as a,ia as d,ja as v,la as y,ma as l,na as p,s as f,x as c,xa as I,y as k}from"./chunk-ZRDN4L2J.js";var g=new y("JWT_OPTIONS"),m=(()=>{class i{constructor(e=null){this.tokenGetter=e&&e.tokenGetter||function(){}}urlBase64Decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:{t+="==";break}case 3:{t+="=";break}default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)}b64decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="";if(e=String(e).replace(/=+$/,""),e.length%4===1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(let r=0,s,n,D=0;n=e.charAt(D++);~n&&(s=r%4?s*64+n:n,r++%4)?o+=String.fromCharCode(255&s>>(-2*r&6)):0)n=t.indexOf(n);return o}b64DecodeUnicode(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)).join(""))}decodeToken(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._decodeToken(t)):this._decodeToken(e)}_decodeToken(e){if(!e||e==="")return null;let t=e.split(".");if(t.length!==3)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");let o=this.urlBase64Decode(t[1]);if(!o)throw new Error("Cannot decode the token.");return JSON.parse(o)}getTokenExpirationDate(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._getTokenExpirationDate(t)):this._getTokenExpirationDate(e)}_getTokenExpirationDate(e){let t;if(t=this.decodeToken(e),!t||!t.hasOwnProperty("exp"))return null;let o=new Date(0);return o.setUTCSeconds(t.exp),o}isTokenExpired(e=this.tokenGetter(),t){return e instanceof Promise?e.then(o=>this._isTokenExpired(o,t)):this._isTokenExpired(e,t)}_isTokenExpired(e,t){if(!e||e==="")return!0;let o=this.getTokenExpirationDate(e);return t=t||0,o===null?!1:!(o.valueOf()>new Date().valueOf()+t*1e3)}getAuthScheme(e,t){return typeof e=="function"?e(t):e}}return i.\u0275fac=function(e){return new(e||i)(l(g))},i.\u0275prov=d({token:i,factory:i.\u0275fac}),i})(),x=i=>i instanceof Promise?T(()=>i):f(i),b=(()=>{class i{constructor(e,t,o){this.jwtHelper=t,this.document=o,this.standardPorts=["80","443"],this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||e.authScheme===""?e.authScheme:"Bearer ",this.allowedDomains=e.allowedDomains||[],this.disallowedRoutes=e.disallowedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}isAllowedDomain(e){let t=new URL(e.url,this.document.location.origin);if(t.host===this.document.location.host)return!0;let o=`${t.hostname}${t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""}`;return this.allowedDomains.findIndex(r=>typeof r=="string"?r===o:r instanceof RegExp?r.test(o):!1)>-1}isDisallowedRoute(e){let t=new URL(e.url,this.document.location.origin);return this.disallowedRoutes.findIndex(o=>{if(typeof o=="string"){let r=new URL(o,this.document.location.origin);return r.hostname===t.hostname&&r.pathname===t.pathname}return o instanceof RegExp?o.test(e.url):!1})>-1}handleInterception(e,t,o){let r=this.jwtHelper.getAuthScheme(this.authScheme,t);if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");let s=f(!1);return this.skipWhenExpired&&(s=e?x(this.jwtHelper.isTokenExpired(e)):f(!0)),e?s.pipe(k(n=>n&&this.skipWhenExpired?t.clone():t.clone({setHeaders:{[this.headerName]:`${r}${e}`}})),w(n=>o.handle(n))):o.handle(t)}intercept(e,t){if(!this.isAllowedDomain(e)||this.isDisallowedRoute(e))return t.handle(e);let o=this.tokenGetter(e);return x(o).pipe(w(r=>this.handleInterception(r,e,t)))}}return i.\u0275fac=function(e){return new(e||i)(l(g),l(m),l(I))},i.\u0275prov=d({token:i,factory:i.\u0275fac}),i})(),U=(()=>{class i{constructor(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}static forRoot(e){return{ngModule:i,providers:[{provide:j,useClass:b,multi:!0},e.jwtOptionsProvider||{provide:g,useValue:e.config},m]}}}return i.\u0275fac=function(e){return new(e||i)(l(i,12))},i.\u0275mod=E({type:i}),i.\u0275inj=v({}),i})();var X=(()=>{class i{$api=p(S);$jwtHelper=p(m);$settings=p($);token;user={};logoutTimer;lastRefreshTime=Date.now();isRefreshing=!1;constructor(){this.loadToken()}login(e){return a(this,null,function*(){let t=yield c(this.$api.post("/auth/login",e));if(!this.validateToken(t.access_token))throw new Error("Invalid username or password.");window.localStorage.setItem(h.jwt.tokenKey,t.access_token),yield this.$settings.getAppSettings()})}noauth(){return a(this,null,function*(){let e=yield c(this.$api.post("/auth/noauth",{}));if(this.validateToken(e.access_token))window.localStorage.setItem(h.jwt.tokenKey,e.access_token),yield this.$settings.getAppSettings();else throw new Error("Invalid username or password.")})}logout(){this.user=null,this.token=null,clearTimeout(this.logoutTimer),window.localStorage.removeItem(h.jwt.tokenKey),window.location.reload()}loadToken(){return a(this,null,function*(){this.$settings.settingsLoaded||(yield c(this.$settings.onSettingsLoaded));let e=window.localStorage.getItem(h.jwt.tokenKey);e&&this.validateToken(e)})}checkToken(){return a(this,null,function*(){if(!this.token||this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){console.warn("Token expired on client side, logging out immediately"),this.logout();return}try{return yield c(this.$api.get("/auth/check"))}catch(e){throw e.status===401&&(console.warn("Current token is not valid on server"),this.logout()),e}})}isLoggedIn(){return this.$settings.env.instanceId!==this.user.instanceId?(console.error("Token does not match instance"),!1):this.user&&this.token&&!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)}validateToken(e){try{return this.$jwtHelper.isTokenExpired(e,this.$settings.serverTimeOffset)&&this.logout(),this.user=this.$jwtHelper.decodeToken(e),this.token=e,this.setLogoutTimer(),!0}catch{return window.localStorage.removeItem(h.jwt.tokenKey),this.token=null,!1}}setLogoutTimer(){if(clearTimeout(this.logoutTimer),!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){let e=this.$settings.sessionTimeout*1e3;e<=2147483647&&(this.logoutTimer=setTimeout(()=>a(this,null,function*(){this.$settings.formAuth===!1?(yield this.noauth(),window.location.reload()):this.logout()}),e))}}checkAndRefreshIfNeeded(){return a(this,null,function*(){if(!this.$settings.formAuth||!this.$settings.sessionTimeoutInactivityBased||!this.token||!this.isLoggedIn()||this.isRefreshing)return;let t=Date.now()-this.lastRefreshTime,r=this.$settings.sessionTimeout*1e3*.7;if(t>r)try{yield this.refreshSession()}catch(s){console.error("Failed to refresh session:",s)}})}refreshSession(){return a(this,null,function*(){if(!this.isRefreshing){this.isRefreshing=!0;try{let e=yield c(this.$api.post("/auth/refresh",{}));e.access_token&&(this.token=e.access_token,window.localStorage.setItem(h.jwt.tokenKey,e.access_token),this.lastRefreshTime=Date.now(),this.setLogoutTimer())}finally{this.isRefreshing=!1}}})}static \u0275fac=function(t){return new(t||i)};static \u0275prov=d({token:i,factory:i.\u0275fac})}return i})();export{U as a,X as b};
@@ -1 +0,0 @@
1
- import{b as C}from"./chunk-D5Z6KR3J.js";import{k as I,l as y,p as S}from"./chunk-YK5NYQW5.js";import{$b as d,Lb as x,Ma as _,Nb as B,Pc as E,Qa as e,_b as r,ac as s,db as k,mc as w,na as g,pb as o,qb as f,rb as h,rc as i,sc as n,wb as v,xb as t,yb as a,zb as p}from"./chunk-ZRDN4L2J.js";var F=(l,b)=>({"fa-chevron-down":l,"fa-chevron-right":b});function $(l,b){l&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),l&2&&(e(3),s(" ",n(4,12,"support.links.documentation")),e(4),d(n(8,14,"support.links.documentation_sub")),e(2),o("aria-label",n(10,16,"support.links.documentation")),e(5),s(" ",n(15,18,"support.links.issue")),e(4),d(n(19,20,"support.links.issue_sub")),e(2),o("aria-label",n(21,22,"support.links.issue")),e(5),s(" ",n(26,24,"support.links.discord")),e(4),d(n(30,26,"support.links.discord_sub")),e(2),o("aria-label",n(32,28,"support.links.discord")),e(5),s(" ",n(37,30,"support.links.reddit")),e(4),d(n(41,32,"support.links.reddit_sub")),e(2),o("aria-label",n(43,34,"support.links.reddit")))}function P(l,b){if(l&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),l&2){let u=B();e(3),s(" ",n(4,16,"support.dev.item_swagger")),e(4),d(n(8,18,"support.dev.item_swagger_sub")),e(2),v("href",u.swaggerUrl,_),o("aria-label",n(10,20,"support.dev.item_swagger")),e(5),s(" ",n(15,22,"support.dev.api")),e(4),d(n(19,24,"support.dev.api_sub")),e(2),o("aria-label",n(21,26,"support.dev.api")),e(5),s(" ",n(26,28,"support.dev.api_hap")),e(4),d(n(30,30,"support.dev.api_hap_sub")),e(2),o("aria-label",n(32,32,"support.dev.api_hap")),e(5),s(" ",n(37,34,"support.dev.template")),e(4),d(n(41,36,"support.dev.template_sub")),e(2),o("aria-label",n(43,38,"support.dev.template")),e(5),s(" ",n(48,40,"support.dev.verified")),e(4),d(n(52,42,"support.dev.verified_sub")),e(2),o("aria-label",n(54,44,"support.dev.verified"))}}var z=(()=>{class l{$settings=g(C);$translate=g(I);swaggerEndpoint="/swagger";showFields={general:!0,dev:!0};ngOnInit(){let u=this.$translate.instant("support.title");this.$settings.setPageTitle(u)}get swaggerUrl(){return S.production?this.swaggerEndpoint:`${S.api.origin}${this.swaggerEndpoint}`}toggleSection(u){this.showFields[u]=!this.showFields[u]}static \u0275fac=function(c){return new(c||l)};static \u0275cmp=k({type:l,selectors:[["ng-component"]],decls:18,vars:23,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa",3,"ngClass"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(c,m){c&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),x("click",function(){return m.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),f(10,$,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),x("click",function(){return m.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),f(17,P,56,46,"ul",8),a()),c&2&&(e(2),d(n(3,11,"support.title")),e(3),o("aria-expanded",m.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),e(2),v("ngClass",w(17,F,m.showFields.general,!m.showFields.general)),e(),s(" ",n(9,13,"support.links.title")," "),e(2),h(m.showFields.general?10:-1),e(2),o("aria-expanded",m.showFields.dev?"true":"false")("aria-controls","fieldsDev"),e(2),v("ngClass",w(20,F,m.showFields.dev,!m.showFields.dev)),e(),s(" ",n(16,15,"support.dev.title")," "),e(2),h(m.showFields.dev?17:-1))},dependencies:[E,y],encapsulation:2})}return l})();export{z as SupportComponent};
@@ -1 +0,0 @@
1
- import{ia as e,n as r}from"./chunk-ZRDN4L2J.js";var i=(()=>{class t{raspberryPiThrottled=new r;formAuthEnabled=new r;static \u0275fac=function(o){return new(o||t)};static \u0275prov=e({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();export{i as a};
@@ -1 +0,0 @@
1
- import{a as E}from"./chunk-ZDEL6332.js";import{a as S}from"./chunk-YBNR45V5.js";import"./chunk-SIVN6M76.js";import"./chunk-QTIB6YCV.js";import"./chunk-54X33YUH.js";import"./chunk-3PGUQRQW.js";import"./chunk-3SKLXSFI.js";import"./chunk-L2Y7HWNA.js";import{b as C}from"./chunk-D5Z6KR3J.js";import{k as $,l as _}from"./chunk-YK5NYQW5.js";import{$b as y,Ab as l,Bb as m,Cb as g,Cc as w,Lb as h,Pa as a,Qa as c,Ub as f,Vb as v,_b as p,db as u,n as d,na as s,rc as T,sc as b}from"./chunk-ZRDN4L2J.js";var k=["terminaloutput"],x=(()=>{class r{$terminal=s(S);$settings=s(C);$navigationGuard=s(E);$translate=s($);resizeEvent=new d;termTarget=w("terminaloutput");onWindowResize(){this.resizeEvent.next(void 0)}onBeforeUnload(t){return this.$navigationGuard.handleBeforeUnload(t)}onWindowFocus(){this.activateTerminal()}onClick(){this.activateTerminal()}activateTerminal(){this.$terminal.isTerminalReady()&&this.$terminal.term&&this.$terminal.term.focus()}ngOnInit(){let t=this.$translate.instant("menu.linux.label_terminal");if(this.$settings.setPageTitle(t),window.document.querySelector("body").classList.add("bg-black"),this.$settings.actualLightingMode==="light"){window.document.querySelector("body").classList.add("light-mode");let e=this.termTarget()?.nativeElement;e&&e.classList.add("light-mode")}this.$terminal.isTerminalReady()&&this.$terminal.destroyTerminal(),this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()?this.$terminal.reconnectTerminal(this.termTarget(),{},this.resizeEvent):(!this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()&&this.$terminal.destroyPersistentSession(),this.$terminal.startTerminal(this.termTarget(),{},this.resizeEvent)),setTimeout(()=>{this.activateTerminal()},100)}ngAfterViewInit(){document.addEventListener("visibilitychange",this.onVisibilityChange.bind(this))}onVisibilityChange(){!document.hidden&&this.$terminal.isTerminalReady()&&setTimeout(()=>{this.activateTerminal()},100)}canDeactivate(t){let e=this.$navigationGuard.canDeactivate();if(e===!1||e instanceof Promise&&e.then)return e;if(this.$settings.actualLightingMode!=="light")return window.document.querySelector("body").classList.remove("bg-black"),Promise.resolve(!0);window.document.querySelector("body").classList.remove("light-mode");let n=t&&(t.includes("/platform-tools/terminal")||t.includes("/logs"));return new Promise(o=>{let i=this.termTarget()?.nativeElement;i&&i.classList.add("fade-out"),n?setTimeout(()=>{o(!0)},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black")},250),setTimeout(()=>{o(!0)},500))})}ngOnDestroy(){document.removeEventListener("visibilitychange",this.onVisibilityChange.bind(this)),window.document.querySelector("body").classList.remove("light-mode"),this.$settings.env.terminal?.persistence?this.$terminal.detachTerminal():this.$terminal.destroyPersistentSession()}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=u({type:r,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&f(n.termTarget,k,5),e&2&&v()},hostBindings:function(e,n){e&1&&h("resize",function(i){return n.onWindowResize(i)},a)("beforeunload",function(i){return n.onBeforeUnload(i)},a)("focus",function(i){return n.onWindowFocus(i)},a)("click",function(i){return n.onClick(i)})},decls:8,vars:3,consts:[["terminaloutput",""],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","docker-terminal",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){e&1&&(l(0,"div",1)(1,"div",2)(2,"h3",3),p(3),T(4,"translate"),m()()(),l(5,"div",4),g(6,"div",5,0),m()),e&2&&(c(3),y(b(4,1,"menu.linux.label_terminal")))},dependencies:[_],styles:["body.light-mode{transition:background-color .25s ease-in-out}#docker-terminal.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}#docker-terminal.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}@keyframes _ngcontent-%COMP%_fadeIn{to{opacity:1}}@keyframes _ngcontent-%COMP%_fadeOut{to{opacity:0}}.adjust-for-mobile[_ngcontent-%COMP%]{height:calc(100% - 60px)}"]})}return r})();export{x as TerminalComponent};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunk-3SKLXSFI.js";import"./chunk-L2Y7HWNA.js";import{e as $}from"./chunk-5ZHDYUXA.js";import{b as S}from"./chunk-D5Z6KR3J.js";import{k as g,l as _,n as E,q as y}from"./chunk-YK5NYQW5.js";import{$b as s,Ab as r,Bb as i,Cb as u,Nb as v,Qa as n,_b as a,db as x,na as o,qb as c,rb as d,rc as m,sc as l}from"./chunk-ZRDN4L2J.js";function C(t,f){if(t&1&&(r(0,"div",7),a(1),i()),t&2){let e=v();n(),s(e.error)}}function w(t,f){t&1&&(r(0,"p",9),a(1),m(2,"translate"),i(),r(3,"div",10)(4,"div",11),u(5,"i",12),i()()),t&2&&(n(),s(l(2,1,"restart.please_wait_while_server_restarts")))}function k(t,f){t&1&&(r(0,"div",8),a(1),m(2,"translate"),i()),t&2&&(n(),s(l(2,1,"platform.linux.long_time")))}var z=(()=>{class t{$api=o(y);$router=o($);$settings=o(S);$toastr=o(E);$translate=o(g);$ws=o(T);checkTimeout;checkDelay;io;resp={};timeout=!1;error=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$api.put("/platform-tools/linux/restart-host",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp()},error:e=>{console.error(e),this.error=this.$translate.instant("platform.linux.server_restart_error"),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="ok"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},3e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},12e4)}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=x({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-circle-notch","fa-spin"]],template:function(p,h){p&1&&(r(0,"div",0)(1,"h3",1),a(2),m(3,"translate"),i()(),r(4,"div",2)(5,"div",3),u(6,"i",4),i(),r(7,"div",5)(8,"h4",6),a(9),m(10,"translate"),i(),c(11,C,2,1,"div",7)(12,w,6,3),c(13,k,3,3,"div",8),i()()),p&2&&(n(2),s(l(3,4,"menu.restart.title")),n(7),s(l(10,6,"platform.linux.restarting_server")),n(2),d(h.error?11:12),n(2),d(h.timeout?13:-1))},dependencies:[_],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{z as RestartLinuxComponent};