@yuneta/gobj-js 7.26.26 → 7.26.27

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.
@@ -147,7 +147,7 @@ var u = "7.0.0a", a = null, c = null, _ = null, f = null, g = null, d = null, b
147
147
  DTP_DICT: 6,
148
148
  DTP_JSON: 7,
149
149
  DTP_POINTER: 8
150
- }), S = (e) => e === O.DTP_STRING, j = (e) => e === O.DTP_BOOLEAN, N = (e) => e === O.DTP_REAL, w = (e) => e === O.DTP_LIST, $ = (e) => e === O.DTP_DICT, R = (e) => e === O.DTP_JSON;
150
+ }), S = (e) => e === O.DTP_STRING, j = (e) => e === O.DTP_BOOLEAN, N = (e) => e === O.DTP_REAL, $ = (e) => e === O.DTP_LIST, w = (e) => e === O.DTP_DICT, R = (e) => e === O.DTP_JSON;
151
151
  O.DTP_POINTER;
152
152
  var A = (e) => ((e) => e === O.DTP_INTEGER)(e) || N(e) || j(e), D = Object.freeze({
153
153
  SDF_NOTACCESS: 1,
@@ -422,10 +422,10 @@ function Ne(e) {
422
422
  const t = Go(e) ? mt(e) : e;
423
423
  return t ? ie(t.no_trace_level, t.s_user_trace_level) : (Hr(`gobj_get_gclass_trace_no_level: gclass NOT FOUND: ${e}`), []);
424
424
  }
425
- function we(e) {
425
+ function $e(e) {
426
426
  return oe = Number(e) || 0, 0;
427
427
  }
428
- function $e(e, t, n) {
428
+ function we(e, t, n) {
429
429
  const r = Go(e) ? mt(e) : e;
430
430
  if (!r) return Hr(`gobj_set_gclass_trace: gclass NOT FOUND: ${e}`), -1;
431
431
  const l = null === t ? 4294967295 : se(t, "gobj_set_gclass_trace", r.s_user_trace_level || null);
@@ -597,7 +597,7 @@ function Ke(e) {
597
597
  }(e)) return t;
598
598
  }
599
599
  function Be(e, t) {
600
- return S(e) ? Go(t) : $(e) ? Fo(t) : w(e) ? Mo(t) : !A(e) || "number" == typeof t || "boolean" == typeof t;
600
+ return S(e) ? Go(t) : w(e) ? Fo(t) : $(e) ? Mo(t) : !A(e) || "number" == typeof t || "boolean" == typeof t;
601
601
  }
602
602
  function Ye(e) {
603
603
  return e >= -0x8000000000000000 && e < 0x8000000000000000;
@@ -661,7 +661,7 @@ function qe(e, t, n) {
661
661
  refused: "a number out of its range"
662
662
  };
663
663
  }
664
- if ($(e) || w(e)) {
664
+ if (w(e) || $(e)) {
665
665
  const n = Ke(t);
666
666
  return void 0 !== n && Be(e, n) ? {
667
667
  value: n,
@@ -717,7 +717,7 @@ function ze(e, t) {
717
717
  refused: null
718
718
  } : r;
719
719
  }
720
- return S(e) || $(e) || w(e) || A(e) ? n ? {
720
+ return S(e) || w(e) || $(e) || A(e) ? n ? {
721
721
  value: void 0,
722
722
  refused: "a text with a NUL in it"
723
723
  } : Go(t) && !S(e) ? qe(e, t, !0) : Be(e, t) ? A(e) ? function(e, t) {
@@ -1034,7 +1034,7 @@ function Ot(e, t) {
1034
1034
  t.parent && Hr(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
1035
1035
  }
1036
1036
  function St(e, t) {
1037
- let n = Ns(e.dl_children, t);
1037
+ let n = $s(e.dl_children, t);
1038
1038
  n >= 0 && (Co(e.dl_children, n), t.parent = null);
1039
1039
  }
1040
1040
  function jt(e, t) {
@@ -1043,10 +1043,10 @@ function jt(e, t) {
1043
1043
  function Nt(e, t) {
1044
1044
  return en(e) ? c ? c(e, t) : -1 : (Hr(`${an(e)}: Only gobj services can load/save writable-persistent`), -1);
1045
1045
  }
1046
- function wt(e, t) {
1046
+ function $t(e, t) {
1047
1047
  return en(e) ? _ ? _(e, t) : -1 : (Hr(`${an(e)}: Only gobj services can load/save writable-persistent`), -1);
1048
1048
  }
1049
- function $t(e, t) {
1049
+ function wt(e, t) {
1050
1050
  return f ? f(e, t) : null;
1051
1051
  }
1052
1052
  function Rt(e, t) {
@@ -1332,35 +1332,36 @@ function En(e) {
1332
1332
  function vn(e, t, n, r, l) {
1333
1333
  let o, i = [...e];
1334
1334
  if (t & J.WALK_LAST2FIRST) for (let e = i.length; e > 0; e--) {
1335
- o = i[e - 1];
1335
+ if (o = i[e - 1], dn(o)) continue;
1336
1336
  let t = En(n(o, r, l));
1337
1337
  if (t < 0) return t;
1338
1338
  }
1339
1339
  else for (let e = 0; e < i.length; e++) {
1340
- o = i[e];
1340
+ if (o = i[e], dn(o)) continue;
1341
1341
  let t = En(n(o, r, l));
1342
1342
  if (t < 0) return t;
1343
1343
  }
1344
1344
  return 0;
1345
1345
  }
1346
1346
  function Tn(e, t, n, r, l) {
1347
- let o, i = vn(e, t, n, r, l);
1348
- if (i < 0) return i;
1347
+ let o, i = [...e], s = vn(i, t, n, r, l);
1348
+ if (s < 0) return s;
1349
1349
  if (t & J.WALK_LAST2FIRST) {
1350
- for (let s = e.length; s > 0; s--) if (o = e[s - 1], i = Tn([...o.dl_children], t, n, r, l), i < 0) return i;
1351
- } else for (let s = 0; s < e.length; s++) if (o = e[s], i = Tn([...o.dl_children], t, n, r, l), i < 0) return i;
1352
- return i;
1350
+ for (let e = i.length; e > 0; e--) if (o = i[e - 1], !dn(o) && (s = Tn(o.dl_children, t, n, r, l), s < 0)) return s;
1351
+ } else for (let e = 0; e < i.length; e++) if (o = i[e], !dn(o) && (s = Tn(o.dl_children, t, n, r, l), s < 0)) return s;
1352
+ return s;
1353
1353
  }
1354
1354
  function On(e, t, n, r, l) {
1355
1355
  if (t & J.WALK_BYLEVEL) return Tn(e, t, n, r, l);
1356
- let o, i;
1357
- if (t & J.WALK_BOTTOM2TOP) for (let s = e.length; s > 0; s--) {
1358
- if (i = e[s - 1], o = On([...i.dl_children], t, n, r, l), o < 0) return o;
1356
+ let o, i, s = [...e];
1357
+ if (t & J.WALK_BOTTOM2TOP) {
1358
+ for (let e = s.length; e > 0; e--) if (i = s[e - 1], !dn(i)) {
1359
+ if (o = On(i.dl_children, t, n, r, l), o < 0) return o;
1360
+ if (!dn(i) && (o = En(n(i, r, l)), o < 0)) return o;
1361
+ }
1362
+ } else for (let e = 0; e < s.length; e++) if (i = s[e], !dn(i)) {
1359
1363
  if (o = En(n(i, r, l)), o < 0) return o;
1360
- }
1361
- else for (let s = 0; s < e.length; s++) {
1362
- if (i = e[s], o = En(n(i, r, l)), o < 0) return o;
1363
- if (0 === o && (o = On([...i.dl_children], t, n, r, l), o < 0)) return o;
1364
+ if (0 === o && !dn(i) && (o = On(i.dl_children, t, n, r, l), o < 0)) return o;
1364
1365
  }
1365
1366
  return 0;
1366
1367
  }
@@ -1394,7 +1395,7 @@ function Nn(e, t) {
1394
1395
  }
1395
1396
  return null;
1396
1397
  }
1397
- function wn(e, t) {
1398
+ function $n(e, t) {
1398
1399
  if (dn(e)) return Hr("gobj NULL or DESTROYED"), null;
1399
1400
  t = t || {};
1400
1401
  let n = [];
@@ -1405,7 +1406,7 @@ function wn(e, t) {
1405
1406
  }
1406
1407
  return n;
1407
1408
  }
1408
- function $n(e, t) {
1409
+ function wn(e, t) {
1409
1410
  t = t || {};
1410
1411
  let n = [];
1411
1412
  return function e(n, r) {
@@ -1452,7 +1453,7 @@ function Cn(e, t, n) {
1452
1453
  const o = l[n];
1453
1454
  if (o.name && (-1 === t || o.flag & t)) {
1454
1455
  let t;
1455
- !e.gclass.gmt.mt_reading || e.obflag & B.obflag_destroyed ? t = No(e.jn_attrs, o.name) : (t = e.gclass.gmt.mt_reading(e, o.name), void 0 === t && (t = No(e.jn_attrs, o.name))), $o(r, o.name, t);
1456
+ !e.gclass.gmt.mt_reading || e.obflag & B.obflag_destroyed ? t = No(e.jn_attrs, o.name) : (t = e.gclass.gmt.mt_reading(e, o.name), void 0 === t && (t = No(e.jn_attrs, o.name))), wo(r, o.name, t);
1456
1457
  }
1457
1458
  }
1458
1459
  return r;
@@ -1680,7 +1681,7 @@ function or(e, n, r, l) {
1680
1681
  if (1 === Q) ee(t("🔄 %s %s%s %s from %s%s", n || "", e.running ? "" : "!!", an(e), o.state_name, l && !l.running ? "!!" : "", an(l)));
1681
1682
  else {
1682
1683
  let r = "";
1683
- s.action && (r = Rs(s.action)), ee(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", un(e), sn(e), o.state_name, "", n || "", "", r, l && !l.running ? "!!" : "", un(l), sn(l)));
1684
+ s.action && (r = As(s.action)), ee(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", un(e), sn(e), o.state_name, "", n || "", "", r, l && !l.running ? "!!" : "", un(l), sn(l)));
1684
1685
  }
1685
1686
  r && ge(e) && ko(r) && yo(r);
1686
1687
  }
@@ -1825,11 +1826,11 @@ function dr(e, n, r, l) {
1825
1826
  }
1826
1827
  if (li(n, "__hard_subscription__")) {
1827
1828
  let t = ci(e, n, "__hard_subscription__", !1);
1828
- wo(n, "__hard_subscription__"), t && (o |= ir.__hard_subscription__);
1829
+ $o(n, "__hard_subscription__"), t && (o |= ir.__hard_subscription__);
1829
1830
  }
1830
1831
  if (li(n, "__own_event__")) {
1831
1832
  let t = ci(e, n, "__own_event__", !1);
1832
- wo(n, "__own_event__"), t && (o |= ir.__own_event__);
1833
+ $o(n, "__own_event__"), t && (o |= ir.__own_event__);
1833
1834
  }
1834
1835
  }
1835
1836
  Lo(s) > 0 && Ro(l, "__local__", Eo(s)), Lo(u) > 0 && Ro(l, "__filter__", Eo(u)), qo(a) || Ro(l, "__service__", a);
@@ -1973,7 +1974,7 @@ Object.freeze({
1973
1974
  JSON_FALSE: 7,
1974
1975
  JSON_NULL: 8
1975
1976
  });
1976
- var Sr = "undefined" != typeof window ? window.console : console, jr = Sr.error, Nr = Sr.warn, wr = Sr.info, $r = Sr.debug, Rr = null, Ar = 600, Dr = [];
1977
+ var Sr = "undefined" != typeof window ? window.console : console, jr = Sr.error, Nr = Sr.warn, $r = Sr.info, wr = Sr.debug, Rr = null, Ar = 600, Dr = [];
1977
1978
  function Cr(e) {
1978
1979
  if ((e = "function" == typeof e ? e : null) && e !== Rr) {
1979
1980
  Rr = e;
@@ -2100,27 +2101,27 @@ function qr(e, ...t) {
2100
2101
  }
2101
2102
  }
2102
2103
  function Hr(e, ...t) {
2103
- let n = Br(e, ...t), r = Ss();
2104
+ let n = Br(e, ...t), r = js();
2104
2105
  jr && (jr === Sr.error ? Ur("error", n) && Yr(jr, "%c" + r + " ERROR: " + String(n), "color:red") : (Ur("error", n) && Sr.error("%c" + r + " ERROR: " + String(n), "color:red"), qr(jr, `${r} ERROR: ${String(n)}`))), Mr("error", n, r);
2105
2106
  }
2106
2107
  function zr(e, ...t) {
2107
- let n = Br(e, ...t), r = Ss();
2108
+ let n = Br(e, ...t), r = js();
2108
2109
  Nr && (Nr === Sr.warn ? Ur("warning", n) && Yr(Nr, "%c" + r + " WARNING: " + String(n), "color:yellow") : (Ur("warning", n) && Sr.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), qr(Nr, `${r} WARNING: ${String(n)}`))), Mr("warning", n, r);
2109
2110
  }
2110
2111
  function Qr(e, ...t) {
2111
- let n = Br(e, ...t), r = Ss();
2112
- wr && Ur("info", n) && Yr(wr, "%c" + r + " INFO: " + String(n), "color:cyan"), Mr("info", n, r);
2112
+ let n = Br(e, ...t), r = js();
2113
+ $r && Ur("info", n) && Yr($r, "%c" + r + " INFO: " + String(n), "color:cyan"), Mr("info", n, r);
2113
2114
  }
2114
2115
  function Xr(e, ...t) {
2115
- let n = Br(e, ...t), r = Ss();
2116
- $r && Ur("debug", n) && Yr($r, "%c" + r + " DEBUG: " + String(n), "color:silver"), Mr("debug", n, r);
2116
+ let n = Br(e, ...t), r = js();
2117
+ wr && Ur("debug", n) && Yr(wr, "%c" + r + " DEBUG: " + String(n), "color:silver"), Mr("debug", n, r);
2117
2118
  }
2118
2119
  function Zr(e, ...t) {
2119
- let n = Br(e, ...t), r = Ss();
2120
- $r && Ur("msg", n) && Yr($r, "%c" + r + " MSG: " + String(n), "color:cyan"), Mr("msg", n, r);
2120
+ let n = Br(e, ...t), r = js();
2121
+ wr && Ur("msg", n) && Yr(wr, "%c" + r + " MSG: " + String(n), "color:cyan"), Mr("msg", n, r);
2121
2122
  }
2122
2123
  function el(e, t) {
2123
- Ur("json", t) && (t && Yr(Sr.warn, "=====> " + xr(t)), Yr(Sr.dir, e)), Mr("json", e, Ss());
2124
+ Ur("json", t) && (t && Yr(Sr.warn, "=====> " + xr(t)), Yr(Sr.dir, e)), Mr("json", e, js());
2124
2125
  }
2125
2126
  function tl(e) {
2126
2127
  const t = new Array(128).fill(null);
@@ -2342,8 +2343,8 @@ function jl(e, t) {
2342
2343
  function Nl(e) {
2343
2344
  return e >= 65 && e <= 90 ? e - 65 : e >= 97 && e <= 122 ? e - 97 + 26 : e >= 48 && e <= 57 ? e - 48 + 52 : 43 === e ? 62 : 47 === e ? 63 : -1;
2344
2345
  }
2345
- var wl = " \r\n\"',;}]\0";
2346
- function $l(e, t) {
2346
+ var $l = " \r\n\"',;}]\0";
2347
+ function wl(e, t) {
2347
2348
  const n = jl(e, t);
2348
2349
  if (!n) return [0, 0];
2349
2350
  const r = 5 === n ? "basic" : "bearer";
@@ -2357,7 +2358,7 @@ function $l(e, t) {
2357
2358
  return n < e.length && e[n] === e[o] && n > o + 1 ? [o - t, n + 1 - o] : [0, 0];
2358
2359
  }
2359
2360
  let i = o;
2360
- for (; i < e.length && wl.indexOf(e[i]) < 0;) i++;
2361
+ for (; i < e.length && $l.indexOf(e[i]) < 0;) i++;
2361
2362
  if (i === o) return [0, 0];
2362
2363
  if (!l) {
2363
2364
  let t = i;
@@ -2400,7 +2401,7 @@ function $l(e, t) {
2400
2401
  }
2401
2402
  function Rl(e, t) {
2402
2403
  const n = e[t];
2403
- return "e" === n ? [0, Sl(e, t)] : "b" === n || "B" === n ? $l(e, t) : [0, 0];
2404
+ return "e" === n ? [0, Sl(e, t)] : "b" === n || "B" === n ? wl(e, t) : [0, 0];
2404
2405
  }
2405
2406
  function Al(e, t) {
2406
2407
  const n = e[t];
@@ -2834,10 +2835,10 @@ function jo(e, t) {
2834
2835
  function No(e, t) {
2835
2836
  if (e && Object.prototype.hasOwnProperty.call(e, t)) return e[t];
2836
2837
  }
2837
- function wo(e, t) {
2838
+ function $o(e, t) {
2838
2839
  e && Object.prototype.hasOwnProperty.call(e, t) && delete e[t];
2839
2840
  }
2840
- function $o(e, t, n) {
2841
+ function wo(e, t, n) {
2841
2842
  ii(e, t, n);
2842
2843
  }
2843
2844
  function Ro(e, t, n) {
@@ -3257,55 +3258,84 @@ function Ni(e, t, n, r) {
3257
3258
  if (!Fo(t)) return l;
3258
3259
  if (Oo(l, t), Go(n) && !qo(n)) {
3259
3260
  let o = n;
3260
- Object.prototype.hasOwnProperty.call(t, o) ? wo(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3261
- } else if (Fo(n) && ko(n) > 0) for (let o of Object.keys(n)) Object.prototype.hasOwnProperty.call(t, o) ? wo(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3261
+ Object.prototype.hasOwnProperty.call(t, o) ? $o(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3262
+ } else if (Fo(n) && ko(n) > 0) for (let o of Object.keys(n)) Object.prototype.hasOwnProperty.call(t, o) ? $o(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3262
3263
  else {
3263
3264
  if (!(Mo(n) && Po(n) > 0)) return {};
3264
3265
  for (let o = 0; o < n.length; o++) {
3265
3266
  let i = n[o];
3266
- Object.prototype.hasOwnProperty.call(t, i) ? wo(l, i) : r && Hr(`${an(e)}: key not found: ${i}`);
3267
+ Object.prototype.hasOwnProperty.call(t, i) ? $o(l, i) : r && Hr(`${an(e)}: key not found: ${i}`);
3267
3268
  }
3268
3269
  }
3269
3270
  return l;
3270
3271
  }
3272
+ function $i() {
3273
+ if ("undefined" == typeof window) return null;
3274
+ let e;
3275
+ try {
3276
+ e = window.localStorage;
3277
+ } catch (e) {
3278
+ const t = () => {
3279
+ throw e;
3280
+ };
3281
+ return {
3282
+ getItem: t,
3283
+ setItem: t,
3284
+ removeItem: t
3285
+ };
3286
+ }
3287
+ return e || null;
3288
+ }
3271
3289
  var wi = /* @__PURE__ */ new Set();
3272
- function $i(e, t) {
3273
- wi.has(e) || (wi.add(e), zr(`kw_get_local_storage_value(): localStorage key "${e}" ${t}`));
3290
+ function Ri(e, t) {
3291
+ wi.has(e) || (wi.add(e), zr(t));
3274
3292
  }
3275
- function Ri(e, t, n = !1) {
3276
- if ("undefined" == typeof window || !window.localStorage) return t;
3277
- let r;
3293
+ function Ai(e, t, n = !1) {
3294
+ const r = $i();
3295
+ if (!r) return t;
3296
+ const l = `kw_get_local_storage_value(): localStorage key "${e}"`;
3297
+ let o;
3278
3298
  try {
3279
- r = window.localStorage.getItem(e);
3299
+ o = r.getItem(e);
3280
3300
  } catch (n) {
3281
- return $i(e, "cannot be read (storage blocked?): the default is used"), t;
3301
+ return Ri(e, `${l} cannot be read (storage blocked?): the default is used`), t;
3282
3302
  }
3283
- let l = null;
3284
- if (null !== r) try {
3285
- l = JSON.parse(r);
3303
+ let i = null;
3304
+ if (null !== o) try {
3305
+ i = JSON.parse(o);
3286
3306
  } catch (t) {
3287
- $i(e, "does not hold json: removed, the default is used"), Di(e), l = null;
3307
+ i = null;
3308
+ try {
3309
+ r.removeItem(e), zr(`${l} does not hold json: removed, the default is used`), wi.delete(e);
3310
+ } catch (t) {
3311
+ Ri(e, `${l} does not hold json and cannot be removed: the default is used`);
3312
+ }
3313
+ o = void 0;
3288
3314
  }
3289
- return null === l ? (n && Ai(e, t), t) : l;
3315
+ return void 0 !== o && wi.delete(e), null === i ? (n && Di(e, t), t) : i;
3290
3316
  }
3291
- function Ai(e, t) {
3292
- if ("undefined" == typeof window || !window.localStorage) return 0;
3293
- if (!e || void 0 === t) return Hr(`kw_set_local_storage_value(): invalid key or value: key=${e}`), -1;
3317
+ function Di(e, t) {
3318
+ if (!e) return Hr(`kw_set_local_storage_value(): invalid key: key=${e}`), -1;
3319
+ const n = nt(t);
3320
+ if (void 0 === n) return Hr(`kw_set_local_storage_value(): cannot save "${e}": a value with no json text`), -1;
3321
+ const r = $i();
3322
+ if (!r) return 0;
3294
3323
  try {
3295
- return window.localStorage.setItem(e, JSON.stringify(t)), 0;
3324
+ return r.setItem(e, n), 0;
3296
3325
  } catch (t) {
3297
3326
  return Hr(`kw_set_local_storage_value(): cannot save "${e}" (storage full or blocked?): ${t && t.message ? t.message : t}`), -1;
3298
3327
  }
3299
3328
  }
3300
- function Di(e) {
3301
- if ("undefined" != typeof window && window.localStorage) if (e) try {
3302
- window.localStorage.removeItem(e);
3329
+ function Ci(e) {
3330
+ const t = $i();
3331
+ if (t) if (e) try {
3332
+ t.removeItem(e);
3303
3333
  } catch (t) {
3304
- window.console.warn(`Error removing localStorage key "${e}":`, t);
3334
+ zr(`kw_remove_local_storage_value(): cannot remove "${e}" (storage blocked?): ${t && t.message ? t.message : t}`);
3305
3335
  }
3306
- else window.console.warn(`Invalid key for localStorage removal: ${e}`);
3336
+ else Hr(`kw_remove_local_storage_value(): invalid key: key=${e}`);
3307
3337
  }
3308
- function Ci(e, t) {
3338
+ function Ii(e, t) {
3309
3339
  if (xo(e) || xo(t)) return !0;
3310
3340
  if (Mo(e)) {
3311
3341
  if (0 === e.length) return !0;
@@ -3316,7 +3346,7 @@ function Ci(e, t) {
3316
3346
  } else if (Go(e) && e === t) return !0;
3317
3347
  return !1;
3318
3348
  }
3319
- function Ii(e, t, n, r, l) {
3349
+ function ki(e, t, n, r, l) {
3320
3350
  if (e && !Jo(e) && Hr("GObj bad instanceof"), !t) return null;
3321
3351
  l || (l = vi);
3322
3352
  let o = [];
@@ -3327,18 +3357,18 @@ function Ii(e, t, n, r, l) {
3327
3357
  if (!Go(u)) continue;
3328
3358
  s = u;
3329
3359
  }
3330
- Ci(n, s) && l(u, r) && o.push(u);
3360
+ Ii(n, s) && l(u, r) && o.push(u);
3331
3361
  }
3332
3362
  else {
3333
3363
  if (!Fo(t)) return Hr("kw_collect() BAD kw parameter"), null;
3334
3364
  for (let e of Object.keys(t)) {
3335
3365
  let i = t[e];
3336
- Ci(n, e) && l(i, r) && o.push(i);
3366
+ Ii(n, e) && l(i, r) && o.push(i);
3337
3367
  }
3338
3368
  }
3339
3369
  return o;
3340
3370
  }
3341
- function ki(e, t, n) {
3371
+ function Pi(e, t, n) {
3342
3372
  e && !Jo(e) && Hr("GObj bad instanceof");
3343
3373
  let r = {};
3344
3374
  if (qo(n) || (t = ui(e, t, n)), Fo(t)) r = t;
@@ -3349,7 +3379,7 @@ function ki(e, t, n) {
3349
3379
  else Hr(`${an(e)} kwid_new_dict: data type unknown`);
3350
3380
  return r;
3351
3381
  }
3352
- function Pi(e, t, n) {
3382
+ function Li(e, t, n) {
3353
3383
  if (e && !Jo(e) && Hr("GObj bad instanceof"), qo(n) || (t = ui(e, t, n)), Mo(t)) return t;
3354
3384
  if (Fo(t)) {
3355
3385
  let n = [];
@@ -3361,12 +3391,12 @@ function Pi(e, t, n) {
3361
3391
  }
3362
3392
  return Hr(`${an(e)} kwid_new_list: wrong type for list`), [];
3363
3393
  }
3364
- function Li(e, t, n, r, l) {
3394
+ function Ui(e, t, n, r, l) {
3365
3395
  e && !Jo(e) && Hr("GObj bad instanceof");
3366
- let o = Ii(e, t, n, r, l);
3396
+ let o = ki(e, t, n, r, l);
3367
3397
  return o && 0 !== o.length ? o[0] : null;
3368
3398
  }
3369
- function Ui(e, t) {
3399
+ function Fi(e, t) {
3370
3400
  if (e && !Jo(e) && Hr("GObj bad instanceof"), !t) return [];
3371
3401
  let n = [];
3372
3402
  if (Go(t)) n.push(t);
@@ -3380,7 +3410,7 @@ function Ui(e, t) {
3380
3410
  });
3381
3411
  return n;
3382
3412
  }
3383
- function Fi(e, t, n) {
3413
+ function Mi(e, t, n) {
3384
3414
  t = t || "id", n = n || "value";
3385
3415
  let r = [];
3386
3416
  if (Mo(e)) for (let l = 0; l < e.length; l++) {
@@ -3417,12 +3447,12 @@ function Fi(e, t, n) {
3417
3447
  else Hr("list2options(): case2 not implemented");
3418
3448
  return r;
3419
3449
  }
3420
- function Mi(e, t) {
3450
+ function Gi(e, t) {
3421
3451
  if (!e) return -1;
3422
3452
  for (let n = 0; n < e.length; n++) if (e[n] && e[n].id === t) return n;
3423
3453
  return -1;
3424
3454
  }
3425
- function Gi(e, t, n) {
3455
+ function Vi(e, t, n) {
3426
3456
  if (!e || !t) return Hr("ERROR: str_in_list() list or str empty"), !1;
3427
3457
  let r = e.length;
3428
3458
  if (n) {
@@ -3434,17 +3464,17 @@ function Gi(e, t, n) {
3434
3464
  } else for (let n = 0; n < r; n++) if (e[n] === t) return !0;
3435
3465
  return !1;
3436
3466
  }
3437
- function Vi(e, t, n) {
3467
+ function Wi(e, t, n) {
3438
3468
  if (!e) return Hr("ERROR: strs_in_list() list empty"), !1;
3439
3469
  if (!t) return Hr("ERROR: strs_in_list() str empty"), !1;
3440
- for (let r = 0; r < t.length; r++) if (Gi(e, t[r], n)) return !0;
3470
+ for (let r = 0; r < t.length; r++) if (Vi(e, t[r], n)) return !0;
3441
3471
  return !1;
3442
3472
  }
3443
- function Wi(e, t) {
3473
+ function xi(e, t) {
3444
3474
  for (let n = 0; n < e.length; n++) if (t === e[n]) return e.splice(n, 1), !0;
3445
3475
  return !1;
3446
3476
  }
3447
- function xi(e, t) {
3477
+ function Ki(e, t) {
3448
3478
  try {
3449
3479
  let n = e.__md_iev__;
3450
3480
  if (n) return n[t];
@@ -3452,34 +3482,34 @@ function xi(e, t) {
3452
3482
  return;
3453
3483
  }
3454
3484
  }
3455
- function Ki(e, t, n) {
3485
+ function Bi(e, t, n) {
3456
3486
  let r = e.__md_iev__;
3457
3487
  r || (r = {}, e.__md_iev__ = r), r[t] = n;
3458
3488
  }
3459
- function Bi(e, t, n, r) {
3489
+ function Yi(e, t, n, r) {
3460
3490
  if (!Jo(e)) return Hr("gobj is not a GObj"), null;
3461
3491
  if (!t) return;
3462
- let l = xi(t, n);
3463
- l || (l = [], Ki(t, n, l));
3492
+ let l = Ki(t, n);
3493
+ l || (l = [], Bi(t, n, l));
3464
3494
  try {
3465
3495
  Mo(l) && l.unshift(r);
3466
3496
  } catch (e) {
3467
3497
  Hr(e);
3468
3498
  }
3469
3499
  }
3470
- function Yi(e, t, n, r) {
3500
+ function Ji(e, t, n, r) {
3471
3501
  if (!Jo(e)) return Hr("gobj is not a GObj"), null;
3472
3502
  if (!Fo(t)) return Hr("kw is not a dict"), null;
3473
- let l = xi(t, n);
3503
+ let l = Ki(t, n);
3474
3504
  return l ? 0 === l.length ? (r && Hr(`stack empty: ${n}`), null) : l[0] : (r && Hr(`stack NOT FOUND: ${n}`), null);
3475
3505
  }
3476
- function Ji(e, t, n) {
3506
+ function qi(e, t, n) {
3477
3507
  return qo(n) ? ai(e, t, "__md_iev__`__msg_type__") : yi(e, t, "__md_iev__", "__msg_type__", n), 0;
3478
3508
  }
3479
- function qi(e, t) {
3509
+ function Hi(e, t) {
3480
3510
  return gi(e, t, "__md_iev__`__msg_type__", "", 0);
3481
3511
  }
3482
- function Hi(e, t, n) {
3512
+ function zi(e, t, n) {
3483
3513
  let r = new XMLHttpRequest();
3484
3514
  r.open("GET", e, !0), r.setRequestHeader("Accept", "application/json"), r.onreadystatechange = function() {
3485
3515
  if (4 === r.readyState) if (200 === r.status || 0 === (e = r).status && e.responseText && e.responseURL.startsWith("file:")) try {
@@ -3491,13 +3521,13 @@ function Hi(e, t, n) {
3491
3521
  var e;
3492
3522
  }, r.send();
3493
3523
  }
3494
- function zi(e, t, n) {
3524
+ function Qi(e, t, n) {
3495
3525
  let r = new XMLHttpRequest();
3496
3526
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
3497
3527
  4 === r.readyState && n(r.status, r.responseText);
3498
3528
  }, r.send(t);
3499
3529
  }
3500
- function Qi(e, t, n) {
3530
+ function Xi(e, t, n) {
3501
3531
  void 0 !== n && Go(n) || (n = "");
3502
3532
  for (let r of Object.keys(e)) {
3503
3533
  if (!Object.prototype.hasOwnProperty.call(e, r)) continue;
@@ -3507,62 +3537,62 @@ function Qi(e, t, n) {
3507
3537
  r,
3508
3538
  e[r],
3509
3539
  n
3510
- ]), Fo(e[r]) && Qi(e[r], t, n), n = n.slice(0, -l.length);
3540
+ ]), Fo(e[r]) && Xi(e[r], t, n), n = n.slice(0, -l.length);
3511
3541
  }
3512
3542
  }
3513
- function Xi(e, t, n) {
3543
+ function Zi(e, t, n) {
3514
3544
  n && (e = Eo(e));
3515
3545
  let r = pi(null, e, "type", [], Or.KW_CREATE);
3516
3546
  gi(null, e, "hook", "data", Or.KW_CREATE);
3517
3547
  let l = pi(null, e, "schema", {}, Or.KW_CREATE), o = pi(null, e, "topics", {}, Or.KW_CREATE);
3518
- return Qi(l, function(e, t, n, l) {
3548
+ return Xi(l, function(e, t, n, l) {
3519
3549
  "__" === t.substring(0, 2) || Fo(n) || pi(null, o, l, Eo(r), Or.KW_CREATE);
3520
3550
  }, t), e;
3521
3551
  }
3522
- function Zi(e, t, n, r) {
3552
+ function es(e, t, n, r) {
3523
3553
  let l = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3524
3554
  if (!l) return Hr("jdb_update: topic not found: " + t), null;
3525
3555
  if (!Fo(r) || qo(r.id)) return Hr(`jdb_update: record without id: ${Wr(r)}`), null;
3526
3556
  if (!Go(n)) return Hr(`jdb_update: path must be a string: ${String(n)}`), null;
3527
3557
  if ("" !== n && n.split("`").includes("")) return Hr(`jdb_update: empty segment in path: '${n}'`), null;
3528
3558
  let o, i, s = n.split("`"), u = l;
3529
- for (; (o = s.shift()) && !qo(o) && u;) Fo(u) && (u = pi(null, u, e.hook, null, 0)), u = ls(u, null, o, !1);
3559
+ for (; (o = s.shift()) && !qo(o) && u;) Fo(u) && (u = pi(null, u, e.hook, null, 0)), u = os(u, null, o, !1);
3530
3560
  if (!u || 0 !== s.length) return Hr(`jdb_update: path not found in topic '${t}': '${n}'`), null;
3531
3561
  if (Mo(u)) i = u;
3532
3562
  else {
3533
3563
  if (u.id === r.id) return Oo(u, r), l;
3534
- if (i = pi(null, u, e.hook, null, 0), null == i) i = [], $o(u, e.hook, i);
3564
+ if (i = pi(null, u, e.hook, null, 0), null == i) i = [], wo(u, e.hook, i);
3535
3565
  else if (!Mo(i)) return Hr(`jdb_update: the hook '${e.hook}' of '${n}' is not a list in topic '${t}'`), null;
3536
3566
  }
3537
- let a = ls(i, e.hook, r.id, !1);
3567
+ let a = os(i, e.hook, r.id, !1);
3538
3568
  return a ? Oo(a, r) : i.push(r), l;
3539
3569
  }
3540
- function es(e, t, n, r) {
3570
+ function ts(e, t, n, r) {
3541
3571
  let l = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3542
3572
  if (!l) return Hr("jdb_delete: topic not found: " + t), null;
3543
3573
  if (!Fo(r) || qo(r.id)) return Hr(`jdb_delete: record without id: ${Wr(r)}`), null;
3544
3574
  if (!Go(n)) return Hr(`jdb_delete: path must be a string: ${String(n)}`), null;
3545
3575
  if ("" !== n && n.split("`").includes("")) return Hr(`jdb_delete: empty segment in path: '${n}'`), null;
3546
3576
  let o, i = n.split("`"), s = l;
3547
- for (; (o = i.shift()) && !qo(o) && s;) Fo(s) && (s = pi(null, s, e.hook, null, 0)), s = ls(s, null, o, !1);
3577
+ for (; (o = i.shift()) && !qo(o) && s;) Fo(s) && (s = pi(null, s, e.hook, null, 0)), s = os(s, null, o, !1);
3548
3578
  if (!s || 0 !== i.length) return Hr(`jdb_delete: path not found in topic '${t}': '${n}'`), null;
3549
- let u = Mo(s) ? s : pi(null, s, e.hook, null, 0), a = Mi(u, r.id);
3579
+ let u = Mo(s) ? s : pi(null, s, e.hook, null, 0), a = Gi(u, r.id);
3550
3580
  return a < 0 ? (Hr(`jdb_delete: record not found in topic '${t}': '${n}' '${r.id}'`), null) : (u.splice(a, 1), l);
3551
3581
  }
3552
- function ts(e, t) {
3582
+ function ns(e, t) {
3553
3583
  let n = pi(null, e, "topics", null, 0);
3554
3584
  if (!n) return Hr("jdb topics section not found"), Zr(e), null;
3555
3585
  return pi(null, n, t, null, 0) || (Hr("jdb topic not found: " + t), Zr(n), null);
3556
3586
  }
3557
- function ns(e, t, n, r) {
3587
+ function rs(e, t, n, r) {
3558
3588
  let l = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3559
- return l ? (void 0 === r && (r = !0), ls(l, e.hook, n, r)) : (Hr("jdb_get: topic not found: " + t), null);
3589
+ return l ? (void 0 === r && (r = !0), os(l, e.hook, n, r)) : (Hr("jdb_get: topic not found: " + t), null);
3560
3590
  }
3561
- function rs(e, t, n) {
3591
+ function ls(e, t, n) {
3562
3592
  let r = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3563
3593
  return r ? n < r.length ? r[n] : {} : (Hr("jdb_get_by_idx: topic not found: " + t), null);
3564
3594
  }
3565
- function ls(e, t, n, r) {
3595
+ function os(e, t, n, r) {
3566
3596
  if (!e) return null;
3567
3597
  let l, o = e.length;
3568
3598
  for (l = 0; l < o; l++) {
@@ -3571,18 +3601,18 @@ function ls(e, t, n, r) {
3571
3601
  let e = o.id;
3572
3602
  if (e && e === n) return o;
3573
3603
  if (r && li(o, t)) {
3574
- let e = ls(o[t], t, n, r);
3604
+ let e = os(o[t], t, n, r);
3575
3605
  if (e) return e;
3576
3606
  }
3577
3607
  }
3578
3608
  }
3579
3609
  return null;
3580
3610
  }
3581
- function os(e, t) {
3611
+ function is(e, t) {
3582
3612
  let n = Eo(e);
3583
3613
  return So(n, t), n;
3584
3614
  }
3585
- function is(e) {
3615
+ function ss(e) {
3586
3616
  function t(e) {
3587
3617
  let t = e.replace(/-/g, "+").replace(/_/g, "/");
3588
3618
  switch (t.length % 4) {
@@ -3613,9 +3643,9 @@ function is(e) {
3613
3643
  signature: t(n[2])
3614
3644
  };
3615
3645
  }
3616
- function ss(e, t) {
3646
+ function us(e, t) {
3617
3647
  try {
3618
- let n = is(e);
3648
+ let n = ss(e);
3619
3649
  switch (t) {
3620
3650
  case "header": return JSON.parse(n.header);
3621
3651
  case "signature": return JSON.parse(n.signature);
@@ -3625,15 +3655,15 @@ function ss(e, t) {
3625
3655
  return null;
3626
3656
  }
3627
3657
  }
3628
- function us(e) {
3658
+ function as(e) {
3629
3659
  return null == e ? "" : String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
3630
3660
  }
3631
- function as(e) {
3661
+ function cs(e) {
3632
3662
  if (!e) return "";
3633
3663
  const t = String(e).trim();
3634
- return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : us(t);
3664
+ return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : as(t);
3635
3665
  }
3636
- var cs = class {
3666
+ var _s = class {
3637
3667
  constructor(e) {
3638
3668
  this.html = e, Object.freeze(this);
3639
3669
  }
@@ -3641,28 +3671,28 @@ var cs = class {
3641
3671
  return this.html;
3642
3672
  }
3643
3673
  };
3644
- function _s(e) {
3645
- return "string" != typeof e ? (Hr("html_markup: not a string, type " + typeof e), new cs("")) : new cs(e);
3646
- }
3647
3674
  function fs(e) {
3648
- return e instanceof cs;
3675
+ return "string" != typeof e ? (Hr("html_markup: not a string, type " + typeof e), new _s("")) : new _s(e);
3649
3676
  }
3650
3677
  function gs(e) {
3678
+ return e instanceof _s;
3679
+ }
3680
+ function ds(e) {
3651
3681
  const t = document.createElement("template");
3652
3682
  return t.innerHTML = e.html.trim(), t.content;
3653
3683
  }
3654
- var ds = !1, bs = /* @__PURE__ */ new Set();
3655
- function ps(e) {
3656
- ds = !!e;
3684
+ var bs = !1, ps = /* @__PURE__ */ new Set();
3685
+ function hs(e) {
3686
+ bs = !!e;
3657
3687
  }
3658
- function hs() {
3659
- return ds;
3688
+ function ms() {
3689
+ return bs;
3660
3690
  }
3661
- function ms(e) {
3691
+ function ys(e) {
3662
3692
  const t = document.createElement("template");
3663
3693
  return t.innerHTML = e.trim(), t.content.firstChild;
3664
3694
  }
3665
- function ys(e, t) {
3695
+ function Es(e, t) {
3666
3696
  let [n, r, l, o] = e;
3667
3697
  if (!n) return void Hr("Tag must be a valid HTML element.");
3668
3698
  let i = document.createElement(n), s = "";
@@ -3671,22 +3701,22 @@ function ys(e, t) {
3671
3701
  for (const n of Object.keys(r[e])) t += `${n}: ${r[e][n]};`;
3672
3702
  i.style.cssText = t;
3673
3703
  } else "style" === e ? i.style.cssText = r[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== r[e] && void 0 !== r[e] && (s = r[e], i.setAttribute("data-i18n", s)) : i.setAttribute(e, r[e]);
3674
- if (fs(l)) i.appendChild(gs(l));
3675
- else if (Go(l)) if (l = l.trim(), l.length > 0 && "<" === l[0] && !ds) i.appendChild(ms(l));
3704
+ if (gs(l)) i.appendChild(ds(l));
3705
+ else if (Go(l)) if (l = l.trim(), l.length > 0 && "<" === l[0] && !bs) i.appendChild(ys(l));
3676
3706
  else if (l.length > 0 && "<" === l[0] && function(e) {
3677
- if (bs.size >= 100) return;
3707
+ if (ps.size >= 100) return;
3678
3708
  const t = e.slice(0, 80);
3679
- bs.has(t) || (bs.add(t), zr(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
3709
+ ps.has(t) || (ps.add(t), zr(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
3680
3710
  }(l), t && s) i.textContent = t(s) || l;
3681
3711
  else i.textContent = l;
3682
3712
  else if (Mo(l)) {
3683
- if (l.length > 0) if (Go(l[0])) i.appendChild(ys(l, t));
3684
- else for (let e of l) Array.isArray(e) ? e.length > 0 && i.appendChild(ys(e, t)) : e instanceof Node ? i.appendChild(e) : fs(e) ? i.appendChild(gs(e)) : Go(e) ? i.appendChild(document.createTextNode(e)) : null != e && !1 !== e && Hr("createElement2: child ignored, type " + typeof e);
3713
+ if (l.length > 0) if (Go(l[0])) i.appendChild(Es(l, t));
3714
+ else for (let e of l) Array.isArray(e) ? e.length > 0 && i.appendChild(Es(e, t)) : e instanceof Node ? i.appendChild(e) : gs(e) ? i.appendChild(ds(e)) : Go(e) ? i.appendChild(document.createTextNode(e)) : null != e && !1 !== e && Hr("createElement2: child ignored, type " + typeof e);
3685
3715
  } else l instanceof HTMLElement || l instanceof Text || l instanceof SVGElement ? i.appendChild(l) : null != l && (Hr("content ignored"), el(l));
3686
3716
  if (o && "object" == typeof o) for (const e of Object.keys(o)) i.addEventListener(e, o[e]);
3687
3717
  return i;
3688
3718
  }
3689
- function Es(e) {
3719
+ function vs(e) {
3690
3720
  if (!e) return {
3691
3721
  top: 0,
3692
3722
  left: 0,
@@ -3706,10 +3736,10 @@ function Es(e) {
3706
3736
  bottom: t + i + l
3707
3737
  };
3708
3738
  }
3709
- function vs(e) {
3739
+ function Ts(e) {
3710
3740
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3711
3741
  }
3712
- function Ts(e, t) {
3742
+ function Os(e, t) {
3713
3743
  if (!Yo(t)) return void Hr("You must supply a translation function");
3714
3744
  e || (e = document);
3715
3745
  const n = (t) => {
@@ -3733,7 +3763,7 @@ function Ts(e, t) {
3733
3763
  n && e.setAttribute("placeholder", t(n));
3734
3764
  });
3735
3765
  }
3736
- function Os(e = "Time Tracker", t = !1) {
3766
+ function Ss(e = "Time Tracker", t = !1) {
3737
3767
  const n = e, r = performance.now();
3738
3768
  let l = r;
3739
3769
  return t && zr(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
@@ -3744,30 +3774,46 @@ function Os(e = "Time Tracker", t = !1) {
3744
3774
  };
3745
3775
  } };
3746
3776
  }
3747
- function Ss(e) {
3777
+ function js(e) {
3748
3778
  const t = (e, t) => String(e).padStart(t, "0"), n = `${(e = e || /* @__PURE__ */ new Date()).getFullYear()}-${t(e.getMonth() + 1, 2)}-${t(e.getDate(), 2)}T${t(e.getHours(), 2)}:${t(e.getMinutes(), 2)}:${t(e.getSeconds(), 2)}`, r = t(e.getMilliseconds(), 3), l = e.getTimezoneOffset();
3749
3779
  return `${n}.${r}${l > 0 ? "-" : "+"}${t(Math.floor(Math.abs(l) / 60), 2)}${t(Math.abs(l) % 60, 2)}`;
3750
3780
  }
3751
- function js() {
3781
+ function Ns() {
3752
3782
  return Math.floor(Date.now() / 1e3);
3753
3783
  }
3754
- function Ns(e, t) {
3784
+ function $s(e, t) {
3755
3785
  if (!e) throw "ERROR: index_in_list() list empty";
3756
3786
  for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
3757
3787
  return -1;
3758
3788
  }
3759
3789
  function ws() {
3760
3790
  let e = "";
3761
- return "undefined" != typeof window && window.localStorage ? (e = window.localStorage.getItem("host_uuid"), !e && window.crypto?.randomUUID && (e = window.crypto.randomUUID(), window.localStorage.setItem("host_uuid", e))) : e = "undefined" != typeof globalThis && globalThis.crypto?.randomUUID ? globalThis.crypto.randomUUID() : "00000000-0000-0000-0000-000000000000", e;
3791
+ const t = $i();
3792
+ if (t) {
3793
+ try {
3794
+ e = t.getItem("host_uuid");
3795
+ } catch (t) {
3796
+ e = null, Ri("host_uuid", "node_uuid(): localStorage cannot be read (storage blocked?): a uuid of this page only");
3797
+ }
3798
+ if (!e && window.crypto?.randomUUID) {
3799
+ e = window.crypto.randomUUID();
3800
+ try {
3801
+ t.setItem("host_uuid", e);
3802
+ } catch (e) {
3803
+ Ri("host_uuid", "node_uuid(): localStorage cannot be written (storage full or blocked?): a uuid of this page only");
3804
+ }
3805
+ }
3806
+ } else e = "undefined" != typeof globalThis && globalThis.crypto?.randomUUID ? globalThis.crypto.randomUUID() : "00000000-0000-0000-0000-000000000000";
3807
+ return e;
3762
3808
  }
3763
- function $s(e) {
3809
+ function Rs(e) {
3764
3810
  return e.replace(/[?# ^:]/g, "_");
3765
3811
  }
3766
- function Rs(e) {
3812
+ function As(e) {
3767
3813
  let t = null;
3768
3814
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
3769
3815
  }
3770
- function As(e, t = 0, n = !1) {
3816
+ function Ds(e, t = 0, n = !1) {
3771
3817
  let r = null, l = null, o = null;
3772
3818
  const i = (...i) => {
3773
3819
  o = this, l = i;
@@ -3782,20 +3828,20 @@ function As(e, t = 0, n = !1) {
3782
3828
  clearTimeout(r), r = null, l = null, o = null;
3783
3829
  }, i;
3784
3830
  }
3785
- function Ds(...e) {
3831
+ function Cs(...e) {
3786
3832
  let t = "", n = 0;
3787
3833
  for (let r of e) null != r && "" !== r && (r = String(r), r = 0 === n ? r.replace(/\/+$/, "") : r.replace(/^\/+/, "").replace(/\/+$/, ""), "" !== r && (n > 0 && (t += "/"), t += r, n++));
3788
3834
  return t;
3789
3835
  }
3790
- var Cs = 256, Is = 1e5;
3791
- function ks(e) {
3836
+ var Is = 256, ks = 1e5;
3837
+ function Ps(e) {
3792
3838
  const t = String(e).replace(/`/g, "``");
3793
3839
  return "[" === t[0] ? "[" + t : t;
3794
3840
  }
3795
- function Ps(e) {
3796
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : ks(e)).join("`") : "";
3797
- }
3798
3841
  function Ls(e) {
3842
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : Ps(e)).join("`") : "";
3843
+ }
3844
+ function Us(e) {
3799
3845
  if ("string" != typeof e) return null;
3800
3846
  let t = [], n = "";
3801
3847
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -3816,9 +3862,9 @@ function Ls(e) {
3816
3862
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
3817
3863
  });
3818
3864
  }
3819
- function Us(e) {
3865
+ function Fs(e) {
3820
3866
  const t = {}, n = (e, r, l) => {
3821
- if (l > Cs) throw new Error("json2flat: deeper than 256");
3867
+ if (l > Is) throw new Error("json2flat: deeper than 256");
3822
3868
  if (null === e || "object" != typeof e || Array.isArray(e)) {
3823
3869
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
3824
3870
  const o = `[${t}]`;
@@ -3828,7 +3874,7 @@ function Us(e) {
3828
3874
  const t = Object.keys(e);
3829
3875
  if (t.length > 0) {
3830
3876
  for (const o of t) {
3831
- const t = ks(o);
3877
+ const t = Ps(o);
3832
3878
  n(e[o], 0 === l ? t : r + "`" + t, l + 1);
3833
3879
  }
3834
3880
  return;
@@ -3838,20 +3884,20 @@ function Us(e) {
3838
3884
  };
3839
3885
  return null == e || n(e, "", 0), t;
3840
3886
  }
3841
- function Fs(e) {
3887
+ function Ms(e) {
3842
3888
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
3843
3889
  let t = null;
3844
3890
  for (const n of Object.keys(e)) {
3845
- const r = Ls(n);
3891
+ const r = Us(n);
3846
3892
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
3847
- if (r.length > Cs) throw new Error(`flat2json: '${n}' deeper than 256`);
3893
+ if (r.length > Is) throw new Error(`flat2json: '${n}' deeper than 256`);
3848
3894
  const l = "number" == typeof r[0];
3849
3895
  if (null === t) t = l ? [] : {};
3850
3896
  else if (l !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
3851
3897
  let o = t;
3852
3898
  for (let t = 0; t < r.length; t++) {
3853
3899
  const l = r[t], i = "number" == typeof l, s = t === r.length - 1, u = !s && "number" == typeof r[t + 1];
3854
- if (i && l > Is) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
3900
+ if (i && l > ks) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
3855
3901
  if (i !== Array.isArray(o)) throw new Error(`flat2json: '${n}' uses a ${i ? "array index" : "key"} where the tree already has a ${Array.isArray(o) ? "array" : "object"}`);
3856
3902
  if (s) {
3857
3903
  if (Array.isArray(o)) {
@@ -3875,23 +3921,23 @@ function Fs(e) {
3875
3921
  }
3876
3922
  return null === t ? {} : t;
3877
3923
  }
3878
- function Ms(e, t) {
3924
+ function Gs(e, t) {
3879
3925
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
3880
3926
  }
3881
- function Gs(e, t) {
3927
+ function Vs(e, t) {
3882
3928
  const n = e && "object" == typeof e ? e : {}, r = t && "object" == typeof t ? t : {}, l = {
3883
3929
  added: {},
3884
3930
  removed: {},
3885
3931
  changed: {}
3886
3932
  };
3887
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? Ms(n[e], r[e]) || ii(l.changed, e, {
3933
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? Gs(n[e], r[e]) || ii(l.changed, e, {
3888
3934
  from: n[e],
3889
3935
  to: r[e]
3890
3936
  }) : ii(l.removed, e, n[e]);
3891
3937
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || ii(l.added, e, r[e]);
3892
3938
  return l;
3893
3939
  }
3894
- function Vs(e, t) {
3940
+ function Ws(e, t) {
3895
3941
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat_apply: a flat json is an object of id -> value");
3896
3942
  if (null === t || "object" != typeof t) throw new Error("flat_apply: a diff is the object flat_diff() answers");
3897
3943
  for (const n of Object.keys(t.removed || {})) delete e[n];
@@ -3903,36 +3949,36 @@ function Vs(e, t) {
3903
3949
  }
3904
3950
  return e;
3905
3951
  }
3906
- function Ws(e) {
3952
+ function xs(e) {
3907
3953
  return "persistent-attrs-" + an(e);
3908
3954
  }
3909
- function xs(e, t) {
3910
- let n = Cn(e, D.SDF_PERSIST), r = Ri(Ws(e), null, !1);
3955
+ function Ks(e, t) {
3956
+ let n = Cn(e, D.SDF_PERSIST), r = Ai(xs(e), null, !1);
3911
3957
  if (r && Fo(r)) {
3912
3958
  let l = ji(e, r, t, !1);
3913
3959
  l = ji(e, l, n, !1), Vn(e, l, D.SDF_PERSIST);
3914
3960
  }
3915
3961
  }
3916
- function Ks(e, t) {
3917
- let n = ji(e, Cn(e, D.SDF_PERSIST), t, !1), r = Ri(Ws(e), null, !1);
3918
- return r && Fo(r) && jo(n, r), Ai(Ws(e), n);
3919
- }
3920
3962
  function Bs(e, t) {
3921
- let n = Ni(e, Ri(Ws(e), null, !1), t, !1);
3922
- 0 === ko(n) ? Di(Ws(e)) : Ai(Ws(e), n);
3963
+ let n = ji(e, Cn(e, D.SDF_PERSIST), t, !1), r = Ai(xs(e), null, !1);
3964
+ return r && Fo(r) && jo(n, r), Di(xs(e), n);
3923
3965
  }
3924
3966
  function Ys(e, t) {
3925
- let n = Ri(Ws(e), null, !1), r = {};
3967
+ let n = Ni(e, Ai(xs(e), null, !1), t, !1);
3968
+ 0 === ko(n) ? Ci(xs(e)) : Di(xs(e), n);
3969
+ }
3970
+ function Js(e, t) {
3971
+ let n = Ai(xs(e), null, !1), r = {};
3926
3972
  return n && Fo(n) && (r = ji(e, n, t, !1)), r;
3927
3973
  }
3928
- function Js(e) {
3974
+ function qs(e) {
3929
3975
  if (Mo(e) && 1 === Lo(e)) {
3930
3976
  let t = e[0];
3931
3977
  return li(t, "size") ? t.size : 1;
3932
3978
  }
3933
3979
  return Lo(e);
3934
3980
  }
3935
- function qs(e, t) {
3981
+ function Hs(e, t) {
3936
3982
  if (Go(t)) {
3937
3983
  if (-1 === t.indexOf("^")) {
3938
3984
  let n, r, l = e.fkey;
@@ -3962,11 +4008,11 @@ function qs(e, t) {
3962
4008
  hook_name: t.hook_name
3963
4009
  } : (Hr("bad fkey 3"), Hr(e), Hr(t), null);
3964
4010
  }
3965
- function Hs(e, t) {
3966
- let n = qs(e, t);
4011
+ function zs(e, t) {
4012
+ let n = Hs(e, t);
3967
4013
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3968
4014
  }
3969
- function zs(e, t) {
4015
+ function Qs(e, t) {
3970
4016
  if (Go(t)) {
3971
4017
  if (-1 === t.indexOf("^")) {
3972
4018
  let n, r = e.hook;
@@ -3993,7 +4039,7 @@ function zs(e, t) {
3993
4039
  id: t.id
3994
4040
  } : (Hr("bad hook 3"), Hr(e), Hr(t), null);
3995
4041
  }
3996
- var Qs = [
4042
+ var Xs = [
3997
4043
  "string",
3998
4044
  "integer",
3999
4045
  "object",
@@ -4003,7 +4049,7 @@ var Qs = [
4003
4049
  "real",
4004
4050
  "boolean",
4005
4051
  "blob"
4006
- ], Xs = [
4052
+ ], Zs = [
4007
4053
  "persistent",
4008
4054
  "required",
4009
4055
  "notnull",
@@ -4015,7 +4061,7 @@ var Qs = [
4015
4061
  "stats",
4016
4062
  "rstats",
4017
4063
  "pstats"
4018
- ], Zs = [
4064
+ ], eu = [
4019
4065
  "hook",
4020
4066
  "fkey",
4021
4067
  "enum",
@@ -4044,7 +4090,7 @@ var Qs = [
4044
4090
  "coordinates",
4045
4091
  "gbuffer"
4046
4092
  ];
4047
- function eu(e) {
4093
+ function tu(e) {
4048
4094
  let t = {
4049
4095
  name: e.id,
4050
4096
  header: e.header,
@@ -4063,7 +4109,7 @@ function eu(e) {
4063
4109
  if (!e.flag) return t;
4064
4110
  for (let n = 0; n < e.flag.length; n++) {
4065
4111
  let r = e.flag[n];
4066
- if (Gi(Zs, r)) {
4112
+ if (Vi(eu, r)) {
4067
4113
  switch (r) {
4068
4114
  case "enum":
4069
4115
  t.enum_list = e.enum;
@@ -4077,7 +4123,7 @@ function eu(e) {
4077
4123
  case "file": t.is_file = !0;
4078
4124
  }
4079
4125
  t.type = r;
4080
- } else if (Gi(Xs, r)) switch (r) {
4126
+ } else if (Vi(Zs, r)) switch (r) {
4081
4127
  case "writable":
4082
4128
  t.is_writable = !0;
4083
4129
  break;
@@ -4090,7 +4136,7 @@ function eu(e) {
4090
4136
  }
4091
4137
  return t.is_file && (t.type = "file"), t;
4092
4138
  }
4093
- function tu(e, t) {
4139
+ function nu(e, t) {
4094
4140
  let n = {
4095
4141
  name: e,
4096
4142
  header: e,
@@ -4108,9 +4154,9 @@ function tu(e, t) {
4108
4154
  let e = t.split(".");
4109
4155
  for (let t = 0; t < e.length; t++) {
4110
4156
  let r = e[t];
4111
- if (Gi(Qs, r)) n.real_type || (n.real_type = r);
4112
- else if (Gi(Zs, r)) n.type || (n.type = r);
4113
- else if (Gi(Xs, r)) switch (r) {
4157
+ if (Vi(Xs, r)) n.real_type || (n.real_type = r);
4158
+ else if (Vi(eu, r)) n.type || (n.type = r);
4159
+ else if (Vi(Zs, r)) switch (r) {
4114
4160
  case "writable":
4115
4161
  n.is_writable = !0;
4116
4162
  break;
@@ -4122,35 +4168,35 @@ function tu(e, t) {
4122
4168
  }
4123
4169
  }
4124
4170
  n.real_type || (n.real_type = "string");
4125
- } else Fo(t) ? (n = eu(t), n.name || (n.name = e), n.header || (n.header = e)) : Mo(t) && (n.real_type = "array", n.enum_list = t);
4171
+ } else Fo(t) ? (n = tu(t), n.name || (n.name = e), n.header || (n.header = e)) : Mo(t) && (n.real_type = "array", n.enum_list = t);
4126
4172
  return n.type || (n.type = n.real_type), n;
4127
4173
  }
4128
- function nu(e, t) {
4174
+ function ru(e, t) {
4129
4175
  let n = {};
4130
4176
  return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
4131
4177
  let l;
4132
4178
  Fo(r) && (l = r.default);
4133
4179
  let o = pi(null, t, e, l);
4134
- $o(n, e, o);
4180
+ wo(n, e, o);
4135
4181
  }), n;
4136
4182
  }
4137
- var ru = [
4183
+ var lu = [
4138
4184
  k(O.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
4139
4185
  k(O.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
4140
4186
  k(O.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
4141
4187
  I()
4142
- ], lu = {
4188
+ ], ou = {
4143
4189
  periodic: !1,
4144
4190
  msec: 0,
4145
4191
  timer_id: -1
4146
- }, ou = null;
4147
- function iu(e, t, n, r) {
4192
+ }, iu = null;
4193
+ function su(e, t, n, r) {
4148
4194
  let l = e.priv, o = l.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
4149
4195
  return l.periodic && l.msec > 0 ? l.timer_id = setTimeout(function() {
4150
4196
  or(e, "EV_TIMEOUT", {}, e);
4151
4197
  }, l.msec) : l.timer_id = -1, Er(e, o, {}), l.periodic || -1 !== l.timer_id || Xt(e) && Yt(e), 0;
4152
4198
  }
4153
- var su = {
4199
+ var uu = {
4154
4200
  mt_create: function(e) {
4155
4201
  let t = e.priv, n = Ln(e, "subscriber");
4156
4202
  n ? dr(e, null, {}, n) : gn(e) && (n = _n(e), dr(e, null, {}, n)), t.periodic = In(e, "periodic"), t.msec = kn(e, "msec");
@@ -4174,34 +4220,34 @@ var su = {
4174
4220
  },
4175
4221
  mt_destroy: function(e) {}
4176
4222
  };
4177
- function uu() {
4223
+ function au() {
4178
4224
  return function(e) {
4179
- if (ou) return Hr(`GClass ALREADY created: ${e}`), -1;
4225
+ if (iu) return Hr(`GClass ALREADY created: ${e}`), -1;
4180
4226
  const t = [["ST_IDLE", [[
4181
4227
  "EV_TIMEOUT",
4182
- iu,
4228
+ su,
4183
4229
  null
4184
4230
  ]]]];
4185
- return (ou = ut(e, [
4231
+ return (iu = ut(e, [
4186
4232
  ["EV_TIMEOUT", Y.EVF_OUTPUT_EVENT],
4187
4233
  ["EV_TIMEOUT_PERIODIC", Y.EVF_OUTPUT_EVENT],
4188
4234
  [0, 0]
4189
- ], t, su, 0, ru, lu, 0, 0, 0, x.gcflag_manual_start)) ? 0 : -1;
4235
+ ], t, uu, 0, lu, ou, 0, 0, 0, x.gcflag_manual_start)) ? 0 : -1;
4190
4236
  }("C_TIMER");
4191
4237
  }
4192
- function au(e) {
4238
+ function cu(e) {
4193
4239
  return "number" == typeof e && Number.isFinite(e) ? Math.round(e) : e;
4194
4240
  }
4195
- function cu(e, t) {
4196
- return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !1), void xn(e, "msec", au(t))) : (Hr("not GObj TYPE"), -1);
4197
- }
4198
4241
  function _u(e, t) {
4199
- return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !0), void xn(e, "msec", au(t))) : (Hr("not GObj TYPE"), -1);
4242
+ return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !1), void xn(e, "msec", cu(t))) : (Hr("not GObj TYPE"), -1);
4200
4243
  }
4201
- function fu(e) {
4244
+ function fu(e, t) {
4245
+ return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !0), void xn(e, "msec", cu(t))) : (Hr("not GObj TYPE"), -1);
4246
+ }
4247
+ function gu(e) {
4202
4248
  return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : void xn(e, "msec", -1) : (Hr("not GObj TYPE"), -1);
4203
4249
  }
4204
- var gu = [
4250
+ var du = [
4205
4251
  k(O.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
4206
4252
  k(O.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
4207
4253
  k(O.DTP_STRING, "__username__", 0, "", "Username"),
@@ -4221,35 +4267,35 @@ var gu = [
4221
4267
  k(O.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
4222
4268
  k(O.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
4223
4269
  I()
4224
- ], du = { gobj_timer: null }, bu = null;
4225
- function pu(e, t, n, r) {
4270
+ ], bu = { gobj_timer: null }, pu = null;
4271
+ function hu(e, t, n, r) {
4226
4272
  let l = Dn(e, t);
4227
4273
  return Fo(l) || (l = {}), l[n] = r, Un(e, t, l), Nt(e, t);
4228
4274
  }
4229
- var hu = -2147483648, mu = 2147483647;
4230
- function yu(e) {
4275
+ var mu = -2147483648, yu = 2147483647;
4276
+ function Eu(e) {
4231
4277
  if (!0 === e || !1 === e) return e;
4232
- if ("number" == typeof e) return !Number.isInteger(e) || e < hu || e > mu ? null : 0 !== e;
4278
+ if ("number" == typeof e) return !Number.isInteger(e) || e < mu || e > yu ? null : 0 !== e;
4233
4279
  if ("string" != typeof e || "" === e) return null;
4234
4280
  let t = e.toLowerCase();
4235
4281
  if ("set" === t) return !0;
4236
4282
  if ("reset" === t) return !1;
4237
4283
  if (/^-?(0|[1-9][0-9]*)$/.test(e)) {
4238
4284
  let t = Number(e);
4239
- return t < hu || t > mu ? null : 0 !== t;
4285
+ return t < mu || t > yu ? null : 0 !== t;
4240
4286
  }
4241
4287
  return "true" === t || "yes" === t || "on" === t || "false" !== t && "no" !== t && "off" !== t && null;
4242
4288
  }
4243
- function Eu() {
4289
+ function vu() {
4244
4290
  return `${ln()}^${rn()}`;
4245
4291
  }
4246
- function vu(e, t, n, r) {
4292
+ function Tu(e, t, n, r) {
4247
4293
  return Er(e, t, n), 0;
4248
4294
  }
4249
- var Tu = {
4295
+ var Ou = {
4250
4296
  mt_create: function(e) {
4251
4297
  let t = e.priv;
4252
- Kn(e, "start_date", Ss()), Kn(e, "node_uuid", ws()), e.priv.gobj_timer = Lt(sn(e), "C_TIMER", {}, e), t.periodic_timeout = Dn(e, "periodic_timeout"), function(e) {
4298
+ Kn(e, "start_date", js()), Kn(e, "node_uuid", ws()), e.priv.gobj_timer = Lt(sn(e), "C_TIMER", {}, e), t.periodic_timeout = Dn(e, "periodic_timeout"), function(e) {
4253
4299
  let t = Dn(e, "trace_levels");
4254
4300
  if (!Fo(t)) return 0;
4255
4301
  let n = t.__global_trace__;
@@ -4260,8 +4306,8 @@ var Tu = {
4260
4306
  for (const [n, r] of Object.entries(t)) {
4261
4307
  let t = mt(n);
4262
4308
  if (t) if (Mo(r)) {
4263
- $e(t, null, !1);
4264
- for (let e of r) $e(t, e, !0);
4309
+ we(t, null, !1);
4310
+ for (let e of r) we(t, e, !0);
4265
4311
  } else Hr(`${sn(e)}: trace_levels of ${n} MUST be a list`);
4266
4312
  }
4267
4313
  }(e), function(e) {
@@ -4283,10 +4329,10 @@ var Tu = {
4283
4329
  },
4284
4330
  mt_writing: function(e, t) {},
4285
4331
  mt_start: function(e) {
4286
- return _u(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
4332
+ return fu(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
4287
4333
  },
4288
4334
  mt_stop: function(e) {
4289
- return fu(e.priv.gobj_timer), qt(e), 0;
4335
+ return gu(e.priv.gobj_timer), qt(e), 0;
4290
4336
  },
4291
4337
  mt_destroy: function(e) {},
4292
4338
  mt_play: function(e) {
@@ -4303,35 +4349,35 @@ var Tu = {
4303
4349
  case "get-global-no-trace": return o(0, 0, null, null, Oe());
4304
4350
  case "set-global-trace":
4305
4351
  case "set-global-no-trace": {
4306
- let r = "set-global-no-trace" === t, l = n.level, i = yu(n.set);
4307
- return l ? null === i ? o(0, -1, `${Eu()}: bitmask set or re-set?`, null, null) : (r ? he(l, i) : pe(l, i)) < 0 ? o(0, -1, `${Eu()}: global trace level not found: ${l}`, null, null) : r ? (pu(e, "no_trace_levels", "__global_no_trace__", Oe()), o(0, 0, null, null, Oe())) : (pu(e, "trace_levels", "__global_trace__", Te()), o(0, 0, null, null, Te())) : o(0, -1, `${Eu()}: what level?`, null, null);
4352
+ let r = "set-global-no-trace" === t, l = n.level, i = Eu(n.set);
4353
+ return l ? null === i ? o(0, -1, `${vu()}: bitmask set or re-set?`, null, null) : (r ? he(l, i) : pe(l, i)) < 0 ? o(0, -1, `${vu()}: global trace level not found: ${l}`, null, null) : r ? (hu(e, "no_trace_levels", "__global_no_trace__", Oe()), o(0, 0, null, null, Oe())) : (hu(e, "trace_levels", "__global_trace__", Te()), o(0, 0, null, null, Te())) : o(0, -1, `${vu()}: what level?`, null, null);
4308
4354
  }
4309
4355
  case "get-gclass-trace":
4310
4356
  case "get-gclass-no-trace":
4311
4357
  case "set-gclass-trace":
4312
4358
  case "set-gclass-no-trace": {
4313
4359
  let r = t.indexOf("no-trace") >= 0, l = n.gclass_name || n.gclass || "", i = mt(l);
4314
- if (!i) return o(0, -1, `${Eu()}: what gclass is '${l}'?`, null, null);
4360
+ if (!i) return o(0, -1, `${vu()}: what gclass is '${l}'?`, null, null);
4315
4361
  if (0 === t.indexOf("get-")) return o(0, 0, null, null, r ? Ne(i) : Se(i));
4316
- let s = n.level, u = yu(n.set);
4317
- return s ? null === u ? o(0, -1, `${Eu()}: bitmask set or re-set?`, null, null) : (r ? Ae(i, s, u) : $e(i, s, u)) < 0 ? o(0, -1, `${Eu()}: trace level of ${l} not found: ${s}`, null, null) : r ? (pu(e, "no_trace_levels", l, Ne(i)), o(0, 0, null, null, Ne(i))) : (pu(e, "trace_levels", l, je(i)), o(0, 0, null, null, Se(i))) : o(0, -1, `${Eu()}: what level?`, null, null);
4362
+ let s = n.level, u = Eu(n.set);
4363
+ return s ? null === u ? o(0, -1, `${vu()}: bitmask set or re-set?`, null, null) : (r ? Ae(i, s, u) : we(i, s, u)) < 0 ? o(0, -1, `${vu()}: trace level of ${l} not found: ${s}`, null, null) : r ? (hu(e, "no_trace_levels", l, Ne(i)), o(0, 0, null, null, Ne(i))) : (hu(e, "trace_levels", l, je(i)), o(0, 0, null, null, Se(i))) : o(0, -1, `${vu()}: what level?`, null, null);
4318
4364
  }
4319
- default: return o(0, -1, `${Eu()}: command not available: ${t}`, null, null);
4365
+ default: return o(0, -1, `${vu()}: command not available: ${t}`, null, null);
4320
4366
  }
4321
4367
  }
4322
4368
  };
4323
- function Ou() {
4369
+ function Su() {
4324
4370
  return function(e) {
4325
- if (bu) return Hr(`GClass ALREADY created: ${e}`), -1;
4371
+ if (pu) return Hr(`GClass ALREADY created: ${e}`), -1;
4326
4372
  const t = [["ST_IDLE", [[
4327
4373
  "EV_TIMEOUT_PERIODIC",
4328
- vu,
4374
+ Tu,
4329
4375
  null
4330
4376
  ]]]];
4331
- return (bu = ut(e, [["EV_TIMEOUT_PERIODIC", Y.EVF_OUTPUT_EVENT | Y.EVF_NO_WARN_SUBS], [0, 0]], t, Tu, 0, gu, du, 0, 0, 0, 0)) ? 0 : -1;
4377
+ return (pu = ut(e, [["EV_TIMEOUT_PERIODIC", Y.EVF_OUTPUT_EVENT | Y.EVF_NO_WARN_SUBS], [0, 0]], t, Ou, 0, du, bu, 0, 0, 0, 0)) ? 0 : -1;
4332
4378
  }("C_YUNO");
4333
4379
  }
4334
- var Su = "ievent_gate_stack", ju = [
4380
+ var ju = "ievent_gate_stack", Nu = [
4335
4381
  k(O.DTP_STRING, "wanted_yuno_role", D.SDF_RD, "", "wanted yuno role"),
4336
4382
  k(O.DTP_STRING, "wanted_yuno_name", D.SDF_RD, "", "wanted yuno name"),
4337
4383
  k(O.DTP_STRING, "wanted_yuno_service", D.SDF_RD, "", "wanted yuno service"),
@@ -4343,12 +4389,12 @@ var Su = "ievent_gate_stack", ju = [
4343
4389
  k(O.DTP_STRING, "cert_pem", D.SDF_PERSIST, "", "SSL server certification, PEM str format"),
4344
4390
  k(O.DTP_JSON, "extra_info", D.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
4345
4391
  k(O.DTP_LIST, "required_services", D.SDF_RD, "[]", "Services this LINK requires (identity card). Empty = the yuno's `required_services`, as before. A yuno with several links to DIFFERENT backends must set it per link: the yuno-wide list is the union, so every backend is told the service names of all the others."),
4346
- k(O.DTP_INTEGER, "timeout_retry", D.SDF_RD, "5000", "First reconnect delay (ms). It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
4392
+ k(O.DTP_INTEGER, "timeout_retry", D.SDF_RD, "5000", "First reconnect delay (ms), at least 1000. It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
4347
4393
  k(O.DTP_INTEGER, "timeout_retry_max", D.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
4348
4394
  k(O.DTP_INTEGER, "timeout_idack", D.SDF_RD, "5000", "timeout waiting idAck"),
4349
4395
  k(O.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
4350
4396
  I()
4351
- ], Nu = [
4397
+ ], $u = [
4352
4398
  ["ievents", "Trace inter-events with metadata of kw"],
4353
4399
  ["ievents2", "Trace inter-events with full kw"],
4354
4400
  ["identity-card", "Trace identity_card messages"]
@@ -4356,7 +4402,7 @@ var Su = "ievent_gate_stack", ju = [
4356
4402
  function wu(e) {
4357
4403
  return !!(3 & ue(e));
4358
4404
  }
4359
- var $u = {
4405
+ var Ru = {
4360
4406
  url: null,
4361
4407
  remote_yuno_name: null,
4362
4408
  remote_yuno_role: null,
@@ -4367,9 +4413,10 @@ var $u = {
4367
4413
  inside_on_open: !1,
4368
4414
  retry_ms: 0,
4369
4415
  retry_ms_before_session: 0,
4370
- session_since: 0
4371
- }, Ru = null;
4372
- function Au(e) {
4416
+ session_since: 0,
4417
+ retry_floor_warned: !1
4418
+ }, Au = null;
4419
+ function Du(e) {
4373
4420
  e.priv.websocket && Hr("Websocket ALREADY setup");
4374
4421
  const t = Pn(e, "url");
4375
4422
  Xr(`====> Starting WebSocket to '${t}' (${an(e)})`);
@@ -4384,7 +4431,7 @@ function Au(e) {
4384
4431
  code: 1006,
4385
4432
  reason: r.message,
4386
4433
  was_clean: !1
4387
- }, e) < 0 && cu(e.priv.gobj_timer, Ku(e)), null;
4434
+ }, e) < 0 && _u(e.priv.gobj_timer, Ju(e)), null;
4388
4435
  }
4389
4436
  return r ? (r.onopen = () => {
4390
4437
  n !== e.priv.ws_seq || dn(e) || or(e, "EV_ON_OPEN", {
@@ -4406,7 +4453,7 @@ function Au(e) {
4406
4453
  }, e));
4407
4454
  }, r) : (Hr(`${an(e)}: Failed to initialize WebSocket.`), null);
4408
4455
  }
4409
- function Du(e, t = 1e3, n = "") {
4456
+ function Cu(e, t = 1e3, n = "") {
4410
4457
  let r = e.priv, l = r.websocket;
4411
4458
  if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
4412
4459
  Xr(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -4417,12 +4464,12 @@ function Du(e, t = 1e3, n = "") {
4417
4464
  }
4418
4465
  } else zr("WebSocket is already closed or in the process of closing.");
4419
4466
  }
4420
- function Cu(e, t) {
4467
+ function Iu(e, t) {
4421
4468
  let n = e.priv;
4422
- "ST_SESSION" === Yn(e) && (performance.now() - n.session_since < Math.max(kn(e, "timeout_retry"), kn(e, "timeout_retry_max")) && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), Du(e, 4002, t);
4469
+ "ST_SESSION" === Yn(e) && (performance.now() - n.session_since < Yu(e).max && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), Cu(e, 4002, t);
4423
4470
  }
4424
- var Iu = 128;
4425
- function ku(e, t) {
4471
+ var ku = 128;
4472
+ function Pu(e, t) {
4426
4473
  let n = String(e), r = fo(n);
4427
4474
  if (null !== r && (n = r), n.length > t) {
4428
4475
  let e = t, r = n.charCodeAt(e);
@@ -4430,25 +4477,25 @@ function ku(e, t) {
4430
4477
  }
4431
4478
  return n;
4432
4479
  }
4433
- function Pu(e, t, n) {
4434
- let r = Ss();
4480
+ function Lu(e, t, n) {
4481
+ let r = js();
4435
4482
  try {
4436
4483
  Xr("\n" + r + " " + t + "\n"), yo(n);
4437
4484
  } catch (e) {
4438
4485
  Xr("ERROR in trace_inter_event: " + e);
4439
4486
  }
4440
4487
  }
4441
- var Lu = class {
4488
+ var Uu = class {
4442
4489
  constructor(e, t) {
4443
4490
  this.event = e, this.kw = t || {};
4444
4491
  }
4445
4492
  };
4446
- function Uu(e, t, n, r) {
4493
+ function Fu(e, t, n, r) {
4447
4494
  return function(e, t) {
4448
4495
  let n = e.priv, r = JSON.stringify(t);
4449
4496
  if (wu(e)) {
4450
4497
  let n = Pn(e, "url"), l = sn(nn()) + " ==> " + n, o = Dn(nn(), "trace_ievent_callback");
4451
- o ? o(l, t, 1, r.length) : Pu(0, l, t);
4498
+ o ? o(l, t, 1, r.length) : Lu(0, l, t);
4452
4499
  }
4453
4500
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return zr(`${an(e)}: send_iev(): websocket not open, message lost`), -1;
4454
4501
  try {
@@ -4458,10 +4505,10 @@ function Uu(e, t, n, r) {
4458
4505
  }
4459
4506
  return 0;
4460
4507
  }(e, function(e, t) {
4461
- return qo(e) ? (Hr("iev_create() event NULL"), null) : new Lu(e, t);
4508
+ return qo(e) ? (Hr("iev_create() event NULL"), null) : new Uu(e, t);
4462
4509
  }(t, n));
4463
4510
  }
4464
- function Fu(e, t, n) {
4511
+ function Mu(e, t, n) {
4465
4512
  return qo(n) && (n = Pn(e, "wanted_yuno_service")), {
4466
4513
  dst_yuno: Pn(e, "wanted_yuno_name"),
4467
4514
  dst_role: Pn(e, "wanted_yuno_role"),
@@ -4472,7 +4519,7 @@ function Fu(e, t, n) {
4472
4519
  host: ws()
4473
4520
  };
4474
4521
  }
4475
- function Mu(e) {
4522
+ function Gu(e) {
4476
4523
  let t = e.priv, n = tn(nn()), r = Pn(nn(), "yuno_version"), l = Pn(nn(), "yuno_release"), o = Pn(nn(), "yuno_tag"), i = Dn(e, "required_services");
4477
4524
  i && i.length || (i = Dn(nn(), "required_services"));
4478
4525
  let s = {
@@ -4495,26 +4542,26 @@ function Mu(e) {
4495
4542
  language: "undefined" != typeof window ? window.navigator.language : "",
4496
4543
  required_services: i
4497
4544
  };
4498
- return Bi(e, s, Su, Fu(e, sn(_n(e)), null)), Ji(e, s, "__identity__"), cu(t.gobj_timer, kn(e, "timeout_idack")), Uu(e, "EV_IDENTITY_CARD", s);
4545
+ return Yi(e, s, ju, Mu(e, sn(_n(e)), null)), qi(e, s, "__identity__"), _u(t.gobj_timer, kn(e, "timeout_idack")), Fu(e, "EV_IDENTITY_CARD", s);
4499
4546
  }
4500
- function Gu(e, t) {
4547
+ function Vu(e, t) {
4501
4548
  if (qo(t.event)) return -1;
4502
4549
  let n = {}, r = t.__global__, l = t.__config__, o = t.__filter__, i = t.__service__, s = t.subscriber;
4503
4550
  l && (n.__config__ = l), r && (n.__global__ = r), o && (n.__filter__ = o);
4504
- return Bi(e, n, Su, Fu(e, sn(s), i)), Ji(e, n, "__subscribing__"), Uu(e, t.event, n);
4505
- }
4506
- function Vu(e, t, n, r) {
4507
- let l = e.priv;
4508
- return Xt(e) && (l.websocket = Au(e)), 0;
4551
+ return Yi(e, n, ju, Mu(e, sn(s), i)), qi(e, n, "__subscribing__"), Fu(e, t.event, n);
4509
4552
  }
4510
4553
  function Wu(e, t, n, r) {
4511
- return Xr("Websocket opened: " + e.priv.url), Mu(e), 0;
4554
+ let l = e.priv;
4555
+ return Xt(e) && (l.websocket = Du(e)), 0;
4512
4556
  }
4513
4557
  function xu(e, t, n, r) {
4558
+ return Xr("Websocket opened: " + e.priv.url), Gu(e), 0;
4559
+ }
4560
+ function Ku(e, t, n, r) {
4514
4561
  let l = e.priv, o = n.url;
4515
4562
  if (void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq) return 0;
4516
4563
  Vr();
4517
- const i = ku(void 0 === n.reason ? "" : n.reason, 256);
4564
+ const i = Pu(void 0 === n.reason ? "" : n.reason, 256);
4518
4565
  return wu(e) && Zr(`${an(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, (!n.was_clean || 1e3 !== n.code && 1001 !== n.code) && Xt(e) && zr(`${an(e)}: session closed ${o} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), Er(e, "EV_ON_CLOSE", {
4519
4566
  url: o,
4520
4567
  remote_yuno_name: l.remote_yuno_name,
@@ -4531,24 +4578,33 @@ function xu(e, t, n, r) {
4531
4578
  code: n.code,
4532
4579
  reason: i,
4533
4580
  was_clean: n.was_clean
4534
- })), Xt(e) && cu(l.gobj_timer, Ku(e)), 0;
4581
+ })), Xt(e) && _u(l.gobj_timer, Ju(e)), 0;
4535
4582
  }
4536
- function Ku(e) {
4583
+ var Bu = 1e3;
4584
+ function Yu(e) {
4537
4585
  let t = e.priv, n = kn(e, "timeout_retry"), r = kn(e, "timeout_retry_max");
4538
- r < n && (r = n), t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
4586
+ return n >= Bu || (t.retry_floor_warned || (t.retry_floor_warned = !0, zr(`${an(e)}: timeout_retry ${n} ms is below ${Bu} ms: ${Bu} ms is used`)), n = Bu), r >= n || (r = n), {
4587
+ base: n,
4588
+ max: r
4589
+ };
4590
+ }
4591
+ function Ju(e) {
4592
+ let t = e.priv;
4593
+ const { base: n, max: r } = Yu(e);
4594
+ t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
4539
4595
  let l = .2 * t.retry_ms, o = t.retry_ms - l + 2 * Math.random() * l;
4540
4596
  return Math.max(1, Math.round(o));
4541
4597
  }
4542
- function Bu(e, t, n, r) {
4543
- return Mu(e), 0;
4598
+ function qu(e, t, n, r) {
4599
+ return Gu(e), 0;
4544
4600
  }
4545
- function Yu(e, t, n, r) {
4601
+ function Hu(e, t, n, r) {
4546
4602
  let l = e.priv;
4547
- fu(l.gobj_timer);
4548
- let o = Yi(e, n, Su, !0), i = gi(e, o, "src_yuno", ""), s = gi(e, o, "src_role", ""), u = gi(e, o, "src_service", "");
4603
+ gu(l.gobj_timer);
4604
+ let o = Ji(e, n, ju, !0), i = gi(e, o, "src_yuno", ""), s = gi(e, o, "src_role", ""), u = gi(e, o, "src_service", "");
4549
4605
  Kn(e, "remote_yuno_name", i), Kn(e, "remote_yuno_role", s), Kn(e, "remote_yuno_service", u);
4550
4606
  let a = _i(e, n, "result", -1, 0), c = gi(e, n, "comment", "", 0), _ = gi(e, n, "username", "", 0), f = pi(e, n, "services_roles", {});
4551
- if (a < 0) Du(e), Er(e, "EV_ON_ID_NAK", {
4607
+ if (a < 0) Cu(e), Er(e, "EV_ON_ID_NAK", {
4552
4608
  url: Pn(e, "url"),
4553
4609
  result: a,
4554
4610
  comment: c,
@@ -4565,11 +4621,11 @@ function Yu(e, t, n, r) {
4565
4621
  services_roles: f
4566
4622
  })), l.inside_on_open = !1, function(e) {
4567
4623
  let t = hr(e, null, null, null);
4568
- for (let n = 0; n < t.length; n++) Gu(e, t[n]);
4624
+ for (let n = 0; n < t.length; n++) Vu(e, t[n]);
4569
4625
  }(e);
4570
4626
  return 0;
4571
4627
  }
4572
- function Ju(e, t, n, r) {
4628
+ function zu(e, t, n, r) {
4573
4629
  let l = e.priv.url, o = function(e, t) {
4574
4630
  let n;
4575
4631
  try {
@@ -4588,49 +4644,49 @@ function Ju(e, t, n, r) {
4588
4644
  kw: l || {}
4589
4645
  } : (zr(`${an(e)}: parsing inter_event: kw not a json object`), null) : (zr(`${an(e)}: parsing inter_kw: no kw`), null);
4590
4646
  }(e, n.data);
4591
- if (!o) return zr(`${an(e)}: frame dropped from ${l}: ${ku(n.data, 256)}`), -1;
4647
+ if (!o) return zr(`${an(e)}: frame dropped from ${l}: ${Pu(n.data, 256)}`), -1;
4592
4648
  if (wu(e)) {
4593
4649
  let e = sn(nn()) + " <== " + l, t = n.data.length, r = Dn(nn(), "trace_ievent_callback");
4594
- r ? r(e, o, 2, t) : Pu(0, e, o);
4650
+ r ? r(e, o, 2, t) : Lu(0, e, o);
4595
4651
  }
4596
4652
  let i = o.event, s = o.kw;
4597
4653
  if ("ST_SESSION" !== Yn(e)) {
4598
4654
  if ("ev_identity_card_ack" === String(i).toLowerCase()) {
4599
4655
  if (!(or(e, "EV_IDENTITY_CARD_ACK", s, e) < 0)) return 0;
4600
- } else zr(`${an(e)}: event UNKNOWN in not-session state ${ku(i, Iu)}`);
4601
- return Cu(e, "event out of session"), -1;
4656
+ } else zr(`${an(e)}: event UNKNOWN in not-session state ${Pu(i, ku)}`);
4657
+ return Iu(e, "event out of session"), -1;
4602
4658
  }
4603
4659
  o = null;
4604
- let u = qi(e, s), a = Yi(e, s, Su), c = gi(e, a, "dst_role", "");
4605
- if (!qo(c) && c.toLowerCase() !== String(ln()).toLowerCase()) return zr(`${an(e)}: It's not my role, dst_role: ${ku(c, Iu)}, my_role: ${ln()}, event: ${ku(i, Iu)}`), Cu(e, "not my role"), -1;
4660
+ let u = Hi(e, s), a = Ji(e, s, ju), c = gi(e, a, "dst_role", "");
4661
+ if (!qo(c) && c.toLowerCase() !== String(ln()).toLowerCase()) return zr(`${an(e)}: It's not my role, dst_role: ${Pu(c, ku)}, my_role: ${ln()}, event: ${Pu(i, ku)}`), Iu(e, "not my role"), -1;
4606
4662
  let _ = gi(e, a, "dst_yuno", "");
4607
- if (!qo(_) && _.toLowerCase() !== String(rn()).toLowerCase()) return zr(`${an(e)}: It's not my name, dst_yuno: ${ku(_, Iu)}, my_name: ${rn()}, event: ${ku(i, Iu)}`), Cu(e, "not my name"), -1;
4663
+ if (!qo(_) && _.toLowerCase() !== String(rn()).toLowerCase()) return zr(`${an(e)}: It's not my name, dst_yuno: ${Pu(_, ku)}, my_name: ${rn()}, event: ${Pu(i, ku)}`), Iu(e, "not my name"), -1;
4608
4664
  let f = gi(e, a, "dst_service", "");
4609
- if ("__subscribing__" === u) return zr(`${an(e)}: subscription event ignored, I'm client (service: ${ku(f, Iu)}, event: ${ku(i, Iu)})`), -1;
4610
- if ("__unsubscribing__" === u) return zr(`${an(e)}: unsubscription event ignored, I'm client (service: ${ku(f, Iu)}, event: ${ku(i, Iu)})`), -1;
4665
+ if ("__subscribing__" === u) return zr(`${an(e)}: subscription event ignored, I'm client (service: ${Pu(f, ku)}, event: ${Pu(i, ku)})`), -1;
4666
+ if ("__unsubscribing__" === u) return zr(`${an(e)}: unsubscription event ignored, I'm client (service: ${Pu(f, ku)}, event: ${Pu(i, ku)})`), -1;
4611
4667
  const g = sr(i, 0, !1);
4612
4668
  if (g && Hn(e, g.event_name, 0)) {
4613
4669
  const t = g.event_name;
4614
- return Hn(e, t, Y.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (or(e, t, s, e), 0) : (zr(`${an(e)}: event of the transport itself, or out of its place, DROPPED: ev '${ku(i, Iu)}'`), -1);
4670
+ return Hn(e, t, Y.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (or(e, t, s, e), 0) : (zr(`${an(e)}: event of the transport itself, or out of its place, DROPPED: ev '${Pu(i, ku)}'`), -1);
4615
4671
  }
4616
4672
  if (!qo(f)) {
4617
4673
  let t = vt(f, !1);
4618
- return t ? Hn(t, i, Y.EVF_PUBLIC_EVENT) ? (or(t, i, s, e), 0) : (zr(`${an(e)}: Service found but no event or not public, DROPPED: service '${an(t)}', ev '${ku(i, Iu)}'`), -1) : (zr(`${an(e)}: event for a service that is gone, DROPPED: service '${ku(f, Iu)}', ev '${ku(i, Iu)}'`), 0);
4674
+ return t ? Hn(t, i, Y.EVF_PUBLIC_EVENT) ? (or(t, i, s, e), 0) : (zr(`${an(e)}: Service found but no event or not public, DROPPED: service '${an(t)}', ev '${Pu(i, ku)}'`), -1) : (zr(`${an(e)}: event for a service that is gone, DROPPED: service '${Pu(f, ku)}', ev '${Pu(i, ku)}'`), 0);
4619
4675
  }
4620
4676
  let d = sr(i, Y.EVF_PUBLIC_EVENT, !1);
4621
- return d ? (Er(e, d.event_name, s), 0) : (zr(`${an(e)}: event that no gclass declares public, DROPPED: ev '${ku(i, Iu)}'`), -1);
4677
+ return d ? (Er(e, d.event_name, s), 0) : (zr(`${an(e)}: event that no gclass declares public, DROPPED: ev '${Pu(i, ku)}'`), -1);
4622
4678
  }
4623
- function qu(e, t, n, r) {
4679
+ function Qu(e, t, n, r) {
4624
4680
  const l = n && "string" == typeof n[r] ? n[r] : "", o = n && "string" == typeof n.service ? n.service : "";
4625
- return zr(`${an(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${ku(l, Iu)}', service '${ku(o, Iu)}'`), -1;
4681
+ return zr(`${an(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${Pu(l, ku)}', service '${Pu(o, ku)}'`), -1;
4626
4682
  }
4627
- function Hu(e, t, n, r) {
4628
- return qu(e, t, n, "__stats__");
4683
+ function Xu(e, t, n, r) {
4684
+ return Qu(e, t, n, "__stats__");
4629
4685
  }
4630
- function zu(e, t, n, r) {
4631
- return qu(e, t, n, "__command__");
4686
+ function Zu(e, t, n, r) {
4687
+ return Qu(e, t, n, "__command__");
4632
4688
  }
4633
- var Qu = {
4689
+ var ea = {
4634
4690
  mt_create: function(e) {
4635
4691
  let t = e.priv;
4636
4692
  t.gobj_timer = Lt(sn(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = Pn(e, "url"), t.remote_yuno_name = Pn(e, "remote_yuno_name"), t.remote_yuno_role = Pn(e, "remote_yuno_role"), t.remote_yuno_service = Pn(e, "remote_yuno_service"), Kn(e, "wanted_yuno_name", t.remote_yuno_name), Kn(e, "wanted_yuno_role", t.remote_yuno_role), Kn(e, "wanted_yuno_service", t.remote_yuno_service);
@@ -4660,43 +4716,43 @@ var Qu = {
4660
4716
  code: 1e3,
4661
4717
  reason: "restarted",
4662
4718
  was_clean: !0
4663
- }, e), fu(t.gobj_timer)), t.websocket = Au(e), 0;
4719
+ }, e), gu(t.gobj_timer)), t.websocket = Du(e), 0;
4664
4720
  },
4665
4721
  mt_stop: function(e) {
4666
4722
  let t = e.priv;
4667
- return fu(t.gobj_timer), t.websocket && Du(e), 0;
4723
+ return gu(t.gobj_timer), t.websocket && Cu(e), 0;
4668
4724
  },
4669
4725
  mt_destroy: function(e) {},
4670
4726
  mt_stats: function(e, t, n, r) {
4671
4727
  if ("ST_SESSION" !== Yn(e)) return Hr("Not in session"), null;
4672
4728
  n || (n = {});
4673
- let l = Fu(e, sn(r), gi(e, n, "service", null, 0)), o = pi(e, n, "__md_stats__", null, Or.KW_EXTRACT);
4674
- return o || (o = {}), Bi(e, n, "stats_stack", {
4729
+ let l = Mu(e, sn(r), gi(e, n, "service", null, 0)), o = pi(e, n, "__md_stats__", null, Or.KW_EXTRACT);
4730
+ return o || (o = {}), Yi(e, n, "stats_stack", {
4675
4731
  stats: t,
4676
4732
  kw: o
4677
- }), Bi(e, n, Su, l), n.__stats__ = t, Ji(e, n, "__stats__"), Uu(e, "EV_MT_STATS", n, r), null;
4733
+ }), Yi(e, n, ju, l), n.__stats__ = t, qi(e, n, "__stats__"), Fu(e, "EV_MT_STATS", n, r), null;
4678
4734
  },
4679
4735
  mt_command_parser: function(e, t, n, r) {
4680
4736
  if ("ST_SESSION" !== Yn(e)) return Hr("Not in session"), null;
4681
4737
  n || (n = {});
4682
- let l = Fu(e, sn(r), gi(e, n, "service", "", 0)), o = pi(e, n, "__md_command__", null, Or.KW_EXTRACT);
4683
- return o || (o = {}), Bi(e, n, "command_stack", {
4738
+ let l = Mu(e, sn(r), gi(e, n, "service", "", 0)), o = pi(e, n, "__md_command__", null, Or.KW_EXTRACT);
4739
+ return o || (o = {}), Yi(e, n, "command_stack", {
4684
4740
  command: t,
4685
4741
  kw: o
4686
- }), Bi(e, n, Su, l), n.__command__ = t, Ji(e, n, "__command__"), Uu(e, "EV_MT_COMMAND", n, r), null;
4742
+ }), Yi(e, n, ju, l), n.__command__ = t, qi(e, n, "__command__"), Fu(e, "EV_MT_COMMAND", n, r), null;
4687
4743
  },
4688
4744
  mt_inject_event: function(e, t, n, r) {
4689
4745
  if ("ST_SESSION" !== Yn(e)) return window.console.error("Not in session"), -1;
4690
- if (n = Oo({}, Fo(n) ? n : {}), Fo(n.__md_iev__) && (n.__md_iev__ = Eo(n.__md_iev__)), Yi(e, n, Su));
4746
+ if (n = Oo({}, Fo(n) ? n : {}), Fo(n.__md_iev__) && (n.__md_iev__ = Eo(n.__md_iev__)), Ji(e, n, ju));
4691
4747
  else {
4692
- let l = Fu(e, sn(r), gi(e, n, "__service__", 0, 0));
4693
- wo(n, "__service__"), Bi(e, n, "__message__", t), Bi(e, n, Su, l);
4748
+ let l = Mu(e, sn(r), gi(e, n, "__service__", 0, 0));
4749
+ $o(n, "__service__"), Yi(e, n, "__message__", t), Yi(e, n, ju, l);
4694
4750
  }
4695
- return Ji(e, n, "__message__"), Uu(e, t, n, r);
4751
+ return qi(e, n, "__message__"), Fu(e, t, n, r);
4696
4752
  },
4697
4753
  mt_subscription_added: function(e, t) {
4698
4754
  let n = e.priv;
4699
- return "ST_SESSION" === Yn(e) && n.websocket ? n.inside_on_open ? 0 : Gu(e, t) : 0;
4755
+ return "ST_SESSION" === Yn(e) && n.websocket ? n.inside_on_open ? 0 : Vu(e, t) : 0;
4700
4756
  },
4701
4757
  mt_subscription_deleted: function(e, t) {
4702
4758
  let n = e.priv;
@@ -4705,27 +4761,27 @@ var Qu = {
4705
4761
  if (qo(t.event)) return 0;
4706
4762
  let r = {}, l = t.__global__, o = t.__config__, i = t.__filter__, s = t.__service__, u = t.subscriber;
4707
4763
  o && (r.__config__ = o), l && (r.__global__ = l), i && (r.__filter__ = i);
4708
- return Bi(e, r, Su, Fu(e, sn(u), s)), Ji(e, r, "__unsubscribing__"), Uu(e, t.event, r, e);
4764
+ return Yi(e, r, ju, Mu(e, sn(u), s)), qi(e, r, "__unsubscribing__"), Fu(e, t.event, r, e);
4709
4765
  }
4710
4766
  };
4711
- function Xu() {
4767
+ function ta() {
4712
4768
  return function(e) {
4713
- if (Ru) return Hr(`GClass ALREADY created: ${e}`), -1;
4769
+ if (Au) return Hr(`GClass ALREADY created: ${e}`), -1;
4714
4770
  const t = [
4715
4771
  ["ST_DISCONNECTED", [
4716
4772
  [
4717
4773
  "EV_ON_OPEN",
4718
- Wu,
4774
+ xu,
4719
4775
  "ST_WAIT_IDENTITY_CARD_ACK"
4720
4776
  ],
4721
4777
  [
4722
4778
  "EV_ON_CLOSE",
4723
- xu,
4779
+ Ku,
4724
4780
  null
4725
4781
  ],
4726
4782
  [
4727
4783
  "EV_TIMEOUT",
4728
- Vu,
4784
+ Wu,
4729
4785
  null
4730
4786
  ],
4731
4787
  [
@@ -4737,22 +4793,22 @@ function Xu() {
4737
4793
  ["ST_WAIT_IDENTITY_CARD_ACK", [
4738
4794
  [
4739
4795
  "EV_ON_MESSAGE",
4740
- Ju,
4796
+ zu,
4741
4797
  null
4742
4798
  ],
4743
4799
  [
4744
4800
  "EV_IDENTITY_CARD_ACK",
4745
- Yu,
4801
+ Hu,
4746
4802
  null
4747
4803
  ],
4748
4804
  [
4749
4805
  "EV_ON_CLOSE",
4750
- xu,
4806
+ Ku,
4751
4807
  "ST_DISCONNECTED"
4752
4808
  ],
4753
4809
  [
4754
4810
  "EV_TIMEOUT",
4755
- Bu,
4811
+ qu,
4756
4812
  null
4757
4813
  ],
4758
4814
  [
@@ -4764,22 +4820,22 @@ function Xu() {
4764
4820
  ["ST_SESSION", [
4765
4821
  [
4766
4822
  "EV_ON_MESSAGE",
4767
- Ju,
4823
+ zu,
4768
4824
  null
4769
4825
  ],
4770
4826
  [
4771
4827
  "EV_MT_STATS",
4772
- Hu,
4828
+ Xu,
4773
4829
  null
4774
4830
  ],
4775
4831
  [
4776
4832
  "EV_MT_COMMAND",
4777
- zu,
4833
+ Zu,
4778
4834
  null
4779
4835
  ],
4780
4836
  [
4781
4837
  "EV_ON_CLOSE",
4782
- xu,
4838
+ Ku,
4783
4839
  "ST_DISCONNECTED"
4784
4840
  ],
4785
4841
  [
@@ -4790,7 +4846,7 @@ function Xu() {
4790
4846
  ]],
4791
4847
  [null, null]
4792
4848
  ];
4793
- return (Ru = ut(e, [
4849
+ return (Au = ut(e, [
4794
4850
  ["EV_ON_MESSAGE", Y.EVF_OUTPUT_EVENT],
4795
4851
  ["EV_IDENTITY_CARD_ACK", Y.EVF_PUBLIC_EVENT],
4796
4852
  ["EV_ON_ID_NAK", Y.EVF_OUTPUT_EVENT],
@@ -4801,9 +4857,9 @@ function Xu() {
4801
4857
  ["EV_ON_OPEN_ERROR", Y.EVF_OUTPUT_EVENT | Y.EVF_NO_WARN_SUBS],
4802
4858
  ["EV_TIMEOUT", 0],
4803
4859
  [null, 0]
4804
- ], t, Qu, 0, ju, $u, 0, 0, Nu, x.gcflag_no_check_output_events)) ? 0 : -1;
4860
+ ], t, ea, 0, Nu, Ru, 0, 0, $u, x.gcflag_no_check_output_events)) ? 0 : -1;
4805
4861
  }("C_IEVENT_CLI");
4806
4862
  }
4807
- export { W as GObj, k as SDATA, F as SDATAAUTHZ, P as SDATACM, L as SDATACM2, G as SDATADF, U as SDATAPM, M as SDATAPM0, I as SDATA_END, C as SDataDesc, u as YUNETA_VERSION, m as __yuno__, o as build_command_response, Ds as build_path, s as build_stats_response, $s as clean_name, fu as clear_timeout, Zo as cmp_two_simple_json, ze as command_parameter_from_json, He as command_parameter_from_text, l as command_parser, ys as createElement2, ms as createOneHtml, os as create_json_record, nu as create_template_record, Ss as current_timestamp, O as data_type_t, Ys as db_list_persistent_attrs, xs as db_load_persistent_attrs, Bs as db_remove_persistent_attrs, Ks as db_save_persistent_attrs, As as debounce, Wi as delete_from_list, vo as duplicate_objects, Uo as empty_json, qo as empty_string, us as escapeHtml, Y as event_flag_t, Fs as flat2json, Vs as flat_apply, Gs as flat_diff, Ps as flat_key_join, Ls as flat_key_split, gt as gclass_add_ev_action, bt as gclass_add_event_type, ft as gclass_add_state, ht as gclass_check_fsm, ut as gclass_create, pt as gclass_event_type, mt as gclass_find_by_name, x as gclass_flag_t, at as gclass_unregister, Es as getPositionRelativeToBody, Rs as get_function_name, js as get_now, bn as gobj_bottom_gobj, Jn as gobj_change_parent, Bn as gobj_change_state, vr as gobj_command, Ut as gobj_create, Dt as gobj_create2, kt as gobj_create_default_service, Lt as gobj_create_pure_child, It as gobj_create_service, Pt as gobj_create_volatil, Ct as gobj_create_yuno, Yn as gobj_current_state, Et as gobj_default_service, tr as gobj_deliver_posted_events, Ft as gobj_destroy, Nn as gobj_find_child, sr as gobj_find_event_type, Sn as gobj_find_gobj, vt as gobj_find_service, yr as gobj_find_subscribings, hr as gobj_find_subscriptions, K as gobj_flag_t, cn as gobj_full_name, un as gobj_gclass_name, Se as gobj_get_gclass_trace_level, je as gobj_get_gclass_trace_level2, Ne as gobj_get_gclass_trace_no_level, Te as gobj_get_global_trace_level, Oe as gobj_get_global_trace_no_level, me as gobj_global_trace_level, ye as gobj_global_trace_no_level, An as gobj_has_attr, Hn as gobj_has_event, zn as gobj_has_output_event, ot as gobj_hsdata, dn as gobj_is_destroying, tn as gobj_is_playing, gn as gobj_is_pure_child, Xt as gobj_is_running, en as gobj_is_service, fn as gobj_is_volatil, $t as gobj_list_persistent_attrs, mr as gobj_list_subscriptions, jt as gobj_load_persistent_attrs, wn as gobj_match_children, $n as gobj_match_children_tree, jn as gobj_match_gobj, sn as gobj_name, _n as gobj_parent, Qt as gobj_pause, zt as gobj_play, Zn as gobj_post_event, er as gobj_posted_events_size, Er as gobj_publish_event, Dn as gobj_read_attr, Cn as gobj_read_attrs, In as gobj_read_bool_attr, kn as gobj_read_integer_attr, Ln as gobj_read_pointer_attr, Pn as gobj_read_str_attr, wt as gobj_remove_persistent_attrs, Ce as gobj_repr_global_trace_levels, Gn as gobj_reset_volatil_attrs, Nt as gobj_save_persistent_attrs, Rn as gobj_search_path, or as gobj_send_event, yt as gobj_services, pn as gobj_set_bottom_gobj, we as gobj_set_deep_trace, Ae as gobj_set_gclass_no_trace, $e as gobj_set_gclass_trace, he as gobj_set_global_no_trace, ve as gobj_set_global_no_trace2, pe as gobj_set_global_trace, Ee as gobj_set_global_trace2, De as gobj_set_gobj_no_trace, Re as gobj_set_gobj_trace, X as gobj_set_trace_machine_format, an as gobj_short_name, Mt as gobj_start, xt as gobj_start_children, Bt as gobj_start_tree, Ie as gobj_start_up, Tr as gobj_stats, Yt as gobj_stop, qt as gobj_stop_children, Ht as gobj_stop_tree, dr as gobj_subscribe_event, ue as gobj_trace_level, Z as gobj_trace_machine_format, ae as gobj_trace_no_level, br as gobj_unsubscribe_event, pr as gobj_unsubscribe_list, mn as gobj_walk_gobj_children, yn as gobj_walk_gobj_children_tree, Un as gobj_write_attr, Vn as gobj_write_attrs, Wn as gobj_write_bool_attr, xn as gobj_write_integer_attr, Kn as gobj_write_str_attr, nn as gobj_yuno, on as gobj_yuno_id, rn as gobj_yuno_name, ln as gobj_yuno_role, _s as html_markup, Mi as id_index_in_obj_list, Ns as index_in_list, Mo as is_array, Wo as is_boolean, Bo as is_date, Yo as is_function, Jo as is_gobj, fs as is_html_markup, ti as is_metadata_key, xo as is_null, Vo as is_number, Fo as is_object, ni as is_private_key, Ko as is_pure_number, _l as is_secret_name, Go as is_string, es as jdb_delete, ns as jdb_get, rs as jdb_get_by_idx, ts as jdb_get_topic, Xi as jdb_init, Zi as jdb_update, Us as json2flat, Ao as json_array_append, Do as json_array_append_new, Io as json_array_extend, Co as json_array_remove, Po as json_array_size, Eo as json_deep_copy, To as json_is_identical, mo as json_mask_secrets, wo as json_object_del, No as json_object_get, $o as json_object_set, Ro as json_object_set_new, ko as json_object_size, Oo as json_object_update, So as json_object_update_existing, jo as json_object_update_missing, Lo as json_size, ss as jwt2json, is as jwtDecode, ji as kw_clone_by_keys, Ni as kw_clone_by_not_keys, Si as kw_collect, ai as kw_delete, Ti as kw_find_json_in_list, ui as kw_find_path, Or as kw_flag_t, ci as kw_get_bool, bi as kw_get_dict, pi as kw_get_dict_value, _i as kw_get_int, hi as kw_get_list, Ri as kw_get_local_storage_value, di as kw_get_pointer, fi as kw_get_real, gi as kw_get_str, li as kw_has_key, vi as kw_match_simple, ri as kw_pop, Di as kw_remove_local_storage_value, Oi as kw_select, mi as kw_set_dict_value, Ai as kw_set_local_storage_value, yi as kw_set_subdict_value, Ii as kwid_collect, Li as kwid_find_one_record, Ui as kwid_get_ids, Ci as kwid_match_id, ki as kwid_new_dict, Pi as kwid_new_list, Fi as list2options, Hi as load_json_file, Xr as log_debug, Hr as log_error, Qr as log_info, zr as log_warning, fo as mask_secrets_inline, qi as msg_iev_get_msg_type, Yi as msg_iev_get_stack, Bi as msg_iev_push_stack, xi as msg_iev_read_key, Ji as msg_iev_set_msg_type, Ki as msg_iev_write_key, ws as node_uuid, Ho as parseBoolean, vs as parseSVG, Ts as refresh_language, Xu as register_c_ievent_cli, uu as register_c_timer, Ou as register_c_yuno, as as safeSrc, D as sdata_flag_t, zi as send_http_json_post, kr as set_console_log_enabled, Lr as set_console_log_filter, Cr as set_log_callback, Vr as set_remote_log_functions, ps as set_strings_are_text, cu as set_timeout, _u as set_timeout_periodic, t as sprintf, i as stats_parser, Gi as str_in_list, Xo as strcasecmp, Qo as strcmp, hs as strings_are_text, zo as strncmp, Vi as strs_in_list, ei as strstr, tu as template_get_field_desc, Os as timeTracker, el as trace_json, yo as trace_json_masked, te as trace_level_t, Zr as trace_msg, qs as treedb_decoder_fkey, zs as treedb_decoder_hook, Hs as treedb_encoder_fkey, eu as treedb_get_field_desc, Js as treedb_hook_data_size, n as vsprintf, J as walk_type_t };
4863
+ export { W as GObj, k as SDATA, F as SDATAAUTHZ, P as SDATACM, L as SDATACM2, G as SDATADF, U as SDATAPM, M as SDATAPM0, I as SDATA_END, C as SDataDesc, u as YUNETA_VERSION, m as __yuno__, o as build_command_response, Cs as build_path, s as build_stats_response, Rs as clean_name, gu as clear_timeout, Zo as cmp_two_simple_json, ze as command_parameter_from_json, He as command_parameter_from_text, l as command_parser, Es as createElement2, ys as createOneHtml, is as create_json_record, ru as create_template_record, js as current_timestamp, O as data_type_t, Js as db_list_persistent_attrs, Ks as db_load_persistent_attrs, Ys as db_remove_persistent_attrs, Bs as db_save_persistent_attrs, Ds as debounce, xi as delete_from_list, vo as duplicate_objects, Uo as empty_json, qo as empty_string, as as escapeHtml, Y as event_flag_t, Ms as flat2json, Ws as flat_apply, Vs as flat_diff, Ls as flat_key_join, Us as flat_key_split, gt as gclass_add_ev_action, bt as gclass_add_event_type, ft as gclass_add_state, ht as gclass_check_fsm, ut as gclass_create, pt as gclass_event_type, mt as gclass_find_by_name, x as gclass_flag_t, at as gclass_unregister, vs as getPositionRelativeToBody, As as get_function_name, Ns as get_now, bn as gobj_bottom_gobj, Jn as gobj_change_parent, Bn as gobj_change_state, vr as gobj_command, Ut as gobj_create, Dt as gobj_create2, kt as gobj_create_default_service, Lt as gobj_create_pure_child, It as gobj_create_service, Pt as gobj_create_volatil, Ct as gobj_create_yuno, Yn as gobj_current_state, Et as gobj_default_service, tr as gobj_deliver_posted_events, Ft as gobj_destroy, Nn as gobj_find_child, sr as gobj_find_event_type, Sn as gobj_find_gobj, vt as gobj_find_service, yr as gobj_find_subscribings, hr as gobj_find_subscriptions, K as gobj_flag_t, cn as gobj_full_name, un as gobj_gclass_name, Se as gobj_get_gclass_trace_level, je as gobj_get_gclass_trace_level2, Ne as gobj_get_gclass_trace_no_level, Te as gobj_get_global_trace_level, Oe as gobj_get_global_trace_no_level, me as gobj_global_trace_level, ye as gobj_global_trace_no_level, An as gobj_has_attr, Hn as gobj_has_event, zn as gobj_has_output_event, ot as gobj_hsdata, dn as gobj_is_destroying, tn as gobj_is_playing, gn as gobj_is_pure_child, Xt as gobj_is_running, en as gobj_is_service, fn as gobj_is_volatil, wt as gobj_list_persistent_attrs, mr as gobj_list_subscriptions, jt as gobj_load_persistent_attrs, $n as gobj_match_children, wn as gobj_match_children_tree, jn as gobj_match_gobj, sn as gobj_name, _n as gobj_parent, Qt as gobj_pause, zt as gobj_play, Zn as gobj_post_event, er as gobj_posted_events_size, Er as gobj_publish_event, Dn as gobj_read_attr, Cn as gobj_read_attrs, In as gobj_read_bool_attr, kn as gobj_read_integer_attr, Ln as gobj_read_pointer_attr, Pn as gobj_read_str_attr, $t as gobj_remove_persistent_attrs, Ce as gobj_repr_global_trace_levels, Gn as gobj_reset_volatil_attrs, Nt as gobj_save_persistent_attrs, Rn as gobj_search_path, or as gobj_send_event, yt as gobj_services, pn as gobj_set_bottom_gobj, $e as gobj_set_deep_trace, Ae as gobj_set_gclass_no_trace, we as gobj_set_gclass_trace, he as gobj_set_global_no_trace, ve as gobj_set_global_no_trace2, pe as gobj_set_global_trace, Ee as gobj_set_global_trace2, De as gobj_set_gobj_no_trace, Re as gobj_set_gobj_trace, X as gobj_set_trace_machine_format, an as gobj_short_name, Mt as gobj_start, xt as gobj_start_children, Bt as gobj_start_tree, Ie as gobj_start_up, Tr as gobj_stats, Yt as gobj_stop, qt as gobj_stop_children, Ht as gobj_stop_tree, dr as gobj_subscribe_event, ue as gobj_trace_level, Z as gobj_trace_machine_format, ae as gobj_trace_no_level, br as gobj_unsubscribe_event, pr as gobj_unsubscribe_list, mn as gobj_walk_gobj_children, yn as gobj_walk_gobj_children_tree, Un as gobj_write_attr, Vn as gobj_write_attrs, Wn as gobj_write_bool_attr, xn as gobj_write_integer_attr, Kn as gobj_write_str_attr, nn as gobj_yuno, on as gobj_yuno_id, rn as gobj_yuno_name, ln as gobj_yuno_role, fs as html_markup, Gi as id_index_in_obj_list, $s as index_in_list, Mo as is_array, Wo as is_boolean, Bo as is_date, Yo as is_function, Jo as is_gobj, gs as is_html_markup, ti as is_metadata_key, xo as is_null, Vo as is_number, Fo as is_object, ni as is_private_key, Ko as is_pure_number, _l as is_secret_name, Go as is_string, ts as jdb_delete, rs as jdb_get, ls as jdb_get_by_idx, ns as jdb_get_topic, Zi as jdb_init, es as jdb_update, Fs as json2flat, Ao as json_array_append, Do as json_array_append_new, Io as json_array_extend, Co as json_array_remove, Po as json_array_size, Eo as json_deep_copy, To as json_is_identical, mo as json_mask_secrets, $o as json_object_del, No as json_object_get, wo as json_object_set, Ro as json_object_set_new, ko as json_object_size, Oo as json_object_update, So as json_object_update_existing, jo as json_object_update_missing, Lo as json_size, nt as json_text_of, us as jwt2json, ss as jwtDecode, ji as kw_clone_by_keys, Ni as kw_clone_by_not_keys, Si as kw_collect, ai as kw_delete, Ti as kw_find_json_in_list, ui as kw_find_path, Or as kw_flag_t, ci as kw_get_bool, bi as kw_get_dict, pi as kw_get_dict_value, _i as kw_get_int, hi as kw_get_list, Ai as kw_get_local_storage_value, di as kw_get_pointer, fi as kw_get_real, gi as kw_get_str, li as kw_has_key, vi as kw_match_simple, ri as kw_pop, Ci as kw_remove_local_storage_value, Oi as kw_select, mi as kw_set_dict_value, Di as kw_set_local_storage_value, yi as kw_set_subdict_value, ki as kwid_collect, Ui as kwid_find_one_record, Fi as kwid_get_ids, Ii as kwid_match_id, Pi as kwid_new_dict, Li as kwid_new_list, Mi as list2options, zi as load_json_file, Xr as log_debug, Hr as log_error, Qr as log_info, zr as log_warning, fo as mask_secrets_inline, Hi as msg_iev_get_msg_type, Ji as msg_iev_get_stack, Yi as msg_iev_push_stack, Ki as msg_iev_read_key, qi as msg_iev_set_msg_type, Bi as msg_iev_write_key, ws as node_uuid, Ho as parseBoolean, Ts as parseSVG, Os as refresh_language, ta as register_c_ievent_cli, au as register_c_timer, Su as register_c_yuno, cs as safeSrc, D as sdata_flag_t, Qi as send_http_json_post, kr as set_console_log_enabled, Lr as set_console_log_filter, Cr as set_log_callback, Vr as set_remote_log_functions, hs as set_strings_are_text, _u as set_timeout, fu as set_timeout_periodic, t as sprintf, i as stats_parser, Vi as str_in_list, Xo as strcasecmp, Qo as strcmp, ms as strings_are_text, zo as strncmp, Wi as strs_in_list, ei as strstr, nu as template_get_field_desc, Ss as timeTracker, el as trace_json, yo as trace_json_masked, te as trace_level_t, Zr as trace_msg, Hs as treedb_decoder_fkey, Qs as treedb_decoder_hook, zs as treedb_encoder_fkey, tu as treedb_get_field_desc, qs as treedb_hook_data_size, n as vsprintf, J as walk_type_t };
4808
4864
 
4809
4865
  //# sourceMappingURL=gobj-js.es.min.js.map