@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.
@@ -982,7 +982,7 @@
982
982
  t.parent && ir(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
983
983
  }
984
984
  function lt(e, t) {
985
- let n = Hl(e.dl_children, t);
985
+ let n = ql(e.dl_children, t);
986
986
  n >= 0 && (Go(e.dl_children, n), t.parent = null);
987
987
  }
988
988
  function it(e, t) {
@@ -1247,35 +1247,36 @@
1247
1247
  function Kt(e, t, n, r, o) {
1248
1248
  let l, i = [...e];
1249
1249
  if (t & M.WALK_LAST2FIRST) for (let e = i.length; e > 0; e--) {
1250
- l = i[e - 1];
1250
+ if (l = i[e - 1], Ut(l)) continue;
1251
1251
  let t = xt(n(l, r, o));
1252
1252
  if (t < 0) return t;
1253
1253
  }
1254
1254
  else for (let e = 0; e < i.length; e++) {
1255
- l = i[e];
1255
+ if (l = i[e], Ut(l)) continue;
1256
1256
  let t = xt(n(l, r, o));
1257
1257
  if (t < 0) return t;
1258
1258
  }
1259
1259
  return 0;
1260
1260
  }
1261
1261
  function Bt(e, t, n, r, o) {
1262
- let l, i = Kt(e, t, n, r, o);
1263
- if (i < 0) return i;
1262
+ let l, i = [...e], s = Kt(i, t, n, r, o);
1263
+ if (s < 0) return s;
1264
1264
  if (t & M.WALK_LAST2FIRST) {
1265
- for (let s = e.length; s > 0; s--) if (l = e[s - 1], i = Bt([...l.dl_children], t, n, r, o), i < 0) return i;
1266
- } else for (let s = 0; s < e.length; s++) if (l = e[s], i = Bt([...l.dl_children], t, n, r, o), i < 0) return i;
1267
- return i;
1265
+ for (let e = i.length; e > 0; e--) if (l = i[e - 1], !Ut(l) && (s = Bt(l.dl_children, t, n, r, o), s < 0)) return s;
1266
+ } else for (let e = 0; e < i.length; e++) if (l = i[e], !Ut(l) && (s = Bt(l.dl_children, t, n, r, o), s < 0)) return s;
1267
+ return s;
1268
1268
  }
1269
1269
  function Yt(e, t, n, r, o) {
1270
1270
  if (t & M.WALK_BYLEVEL) return Bt(e, t, n, r, o);
1271
- let l, i;
1272
- if (t & M.WALK_BOTTOM2TOP) for (let s = e.length; s > 0; s--) {
1273
- if (i = e[s - 1], l = Yt([...i.dl_children], t, n, r, o), l < 0) return l;
1271
+ let l, i, s = [...e];
1272
+ if (t & M.WALK_BOTTOM2TOP) {
1273
+ for (let e = s.length; e > 0; e--) if (i = s[e - 1], !Ut(i)) {
1274
+ if (l = Yt(i.dl_children, t, n, r, o), l < 0) return l;
1275
+ if (!Ut(i) && (l = xt(n(i, r, o)), l < 0)) return l;
1276
+ }
1277
+ } else for (let e = 0; e < s.length; e++) if (i = s[e], !Ut(i)) {
1274
1278
  if (l = xt(n(i, r, o)), l < 0) return l;
1275
- }
1276
- else for (let s = 0; s < e.length; s++) {
1277
- if (i = e[s], l = xt(n(i, r, o)), l < 0) return l;
1278
- if (0 === l && (l = Yt([...i.dl_children], t, n, r, o), l < 0)) return l;
1279
+ if (0 === l && !Ut(i) && (l = Yt(i.dl_children, t, n, r, o), l < 0)) return l;
1279
1280
  }
1280
1281
  return 0;
1281
1282
  }
@@ -1551,7 +1552,7 @@
1551
1552
  if (1 === x) K(n("🔄 %s %s%s %s from %s%s", t || "", e.running ? "" : "!!", kt(e), l.state_name, o && !o.running ? "!!" : "", kt(o)));
1552
1553
  else {
1553
1554
  let r = "";
1554
- s.action && (r = zl(s.action)), K(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Dt(e), Rt(e), l.state_name, "", t || "", "", r, o && !o.running ? "!!" : "", Dt(o), Rt(o)));
1555
+ s.action && (r = Ql(s.action)), K(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Dt(e), Rt(e), l.state_name, "", t || "", "", r, o && !o.running ? "!!" : "", Dt(o), Rt(o)));
1555
1556
  }
1556
1557
  r && re(e) && Vo(r) && $o(r);
1557
1558
  }
@@ -1899,23 +1900,23 @@
1899
1900
  }
1900
1901
  }
1901
1902
  function ir(e, ...t) {
1902
- let n = nr(e, ...t), r = Jl();
1903
+ let n = nr(e, ...t), r = Hl();
1903
1904
  Mn && (Mn === Fn.error ? Hn("error", n) && rr(Mn, "%c" + r + " ERROR: " + String(n), "color:red") : (Hn("error", n) && Fn.error("%c" + r + " ERROR: " + String(n), "color:red"), lr(Mn, `${r} ERROR: ${String(n)}`))), zn("error", n, r);
1904
1905
  }
1905
1906
  function sr(e, ...t) {
1906
- let n = nr(e, ...t), r = Jl();
1907
+ let n = nr(e, ...t), r = Hl();
1907
1908
  Gn && (Gn === Fn.warn ? Hn("warning", n) && rr(Gn, "%c" + r + " WARNING: " + String(n), "color:yellow") : (Hn("warning", n) && Fn.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), lr(Gn, `${r} WARNING: ${String(n)}`))), zn("warning", n, r);
1908
1909
  }
1909
1910
  function ar(e, ...t) {
1910
- let n = nr(e, ...t), r = Jl();
1911
+ let n = nr(e, ...t), r = Hl();
1911
1912
  Wn && Hn("debug", n) && rr(Wn, "%c" + r + " DEBUG: " + String(n), "color:silver"), zn("debug", n, r);
1912
1913
  }
1913
1914
  function ur(e, ...t) {
1914
- let n = nr(e, ...t), r = Jl();
1915
+ let n = nr(e, ...t), r = Hl();
1915
1916
  Wn && Hn("msg", n) && rr(Wn, "%c" + r + " MSG: " + String(n), "color:cyan"), zn("msg", n, r);
1916
1917
  }
1917
1918
  function _r(e, t) {
1918
- Hn("json", t) && (t && rr(Fn.warn, "=====> " + er(t)), rr(Fn.dir, e)), zn("json", e, Jl());
1919
+ Hn("json", t) && (t && rr(Fn.warn, "=====> " + er(t)), rr(Fn.dir, e)), zn("json", e, Hl());
1919
1920
  }
1920
1921
  function cr(e) {
1921
1922
  const t = new Array(128).fill(null);
@@ -2957,44 +2958,73 @@
2957
2958
  }
2958
2959
  return o;
2959
2960
  }
2960
- var Tl = /* @__PURE__ */ new Set();
2961
- function jl(e, t) {
2962
- Tl.has(e) || (Tl.add(e), sr(`kw_get_local_storage_value(): localStorage key "${e}" ${t}`));
2961
+ function Tl() {
2962
+ if ("undefined" == typeof window) return null;
2963
+ let e;
2964
+ try {
2965
+ e = window.localStorage;
2966
+ } catch (e) {
2967
+ const t = () => {
2968
+ throw e;
2969
+ };
2970
+ return {
2971
+ getItem: t,
2972
+ setItem: t,
2973
+ removeItem: t
2974
+ };
2975
+ }
2976
+ return e || null;
2977
+ }
2978
+ var jl = /* @__PURE__ */ new Set();
2979
+ function Ol(e, t) {
2980
+ jl.has(e) || (jl.add(e), sr(t));
2963
2981
  }
2964
- function Ol(e, t, n = !1) {
2965
- if ("undefined" == typeof window || !window.localStorage) return t;
2966
- let r;
2982
+ function Sl(e, t, n = !1) {
2983
+ const r = Tl();
2984
+ if (!r) return t;
2985
+ const o = `kw_get_local_storage_value(): localStorage key "${e}"`;
2986
+ let l;
2967
2987
  try {
2968
- r = window.localStorage.getItem(e);
2988
+ l = r.getItem(e);
2969
2989
  } catch (n) {
2970
- return jl(e, "cannot be read (storage blocked?): the default is used"), t;
2990
+ return Ol(e, `${o} cannot be read (storage blocked?): the default is used`), t;
2971
2991
  }
2972
- let o = null;
2973
- if (null !== r) try {
2974
- o = JSON.parse(r);
2992
+ let i = null;
2993
+ if (null !== l) try {
2994
+ i = JSON.parse(l);
2975
2995
  } catch (t) {
2976
- jl(e, "does not hold json: removed, the default is used"), wl(e), o = null;
2996
+ i = null;
2997
+ try {
2998
+ r.removeItem(e), sr(`${o} does not hold json: removed, the default is used`), jl.delete(e);
2999
+ } catch (t) {
3000
+ Ol(e, `${o} does not hold json and cannot be removed: the default is used`);
3001
+ }
3002
+ l = void 0;
2977
3003
  }
2978
- return null === o ? (n && Sl(e, t), t) : o;
3004
+ return void 0 !== l && jl.delete(e), null === i ? (n && wl(e, t), t) : i;
2979
3005
  }
2980
- function Sl(e, t) {
2981
- if ("undefined" == typeof window || !window.localStorage) return 0;
2982
- if (!e || void 0 === t) return ir(`kw_set_local_storage_value(): invalid key or value: key=${e}`), -1;
3006
+ function wl(e, t) {
3007
+ if (!e) return ir(`kw_set_local_storage_value(): invalid key: key=${e}`), -1;
3008
+ const n = Fe(t);
3009
+ if (void 0 === n) return ir(`kw_set_local_storage_value(): cannot save "${e}": a value with no json text`), -1;
3010
+ const r = Tl();
3011
+ if (!r) return 0;
2983
3012
  try {
2984
- return window.localStorage.setItem(e, JSON.stringify(t)), 0;
3013
+ return r.setItem(e, n), 0;
2985
3014
  } catch (t) {
2986
3015
  return ir(`kw_set_local_storage_value(): cannot save "${e}" (storage full or blocked?): ${t && t.message ? t.message : t}`), -1;
2987
3016
  }
2988
3017
  }
2989
- function wl(e) {
2990
- if ("undefined" != typeof window && window.localStorage) if (e) try {
2991
- window.localStorage.removeItem(e);
3018
+ function Nl(e) {
3019
+ const t = Tl();
3020
+ if (t) if (e) try {
3021
+ t.removeItem(e);
2992
3022
  } catch (t) {
2993
- window.console.warn(`Error removing localStorage key "${e}":`, t);
3023
+ sr(`kw_remove_local_storage_value(): cannot remove "${e}" (storage blocked?): ${t && t.message ? t.message : t}`);
2994
3024
  }
2995
- else window.console.warn(`Invalid key for localStorage removal: ${e}`);
3025
+ else ir(`kw_remove_local_storage_value(): invalid key: key=${e}`);
2996
3026
  }
2997
- function Nl(e, t) {
3027
+ function $l(e, t) {
2998
3028
  if (qo(e) || qo(t)) return !0;
2999
3029
  if (Bo(e)) {
3000
3030
  if (0 === e.length) return !0;
@@ -3005,7 +3035,7 @@
3005
3035
  } else if (Yo(e) && e === t) return !0;
3006
3036
  return !1;
3007
3037
  }
3008
- function $l(e, t, n, r, o) {
3038
+ function Al(e, t, n, r, o) {
3009
3039
  if (e && !Qo(e) && ir("GObj bad instanceof"), !t) return null;
3010
3040
  o || (o = yl);
3011
3041
  let l = [];
@@ -3016,23 +3046,23 @@
3016
3046
  if (!Yo(a)) continue;
3017
3047
  s = a;
3018
3048
  }
3019
- Nl(n, s) && o(a, r) && l.push(a);
3049
+ $l(n, s) && o(a, r) && l.push(a);
3020
3050
  }
3021
3051
  else {
3022
3052
  if (!Ko(t)) return ir("kw_collect() BAD kw parameter"), null;
3023
3053
  for (let e of Object.keys(t)) {
3024
3054
  let i = t[e];
3025
- Nl(n, e) && o(i, r) && l.push(i);
3055
+ $l(n, e) && o(i, r) && l.push(i);
3026
3056
  }
3027
3057
  }
3028
3058
  return l;
3029
3059
  }
3030
- function Al(e, t) {
3060
+ function Rl(e, t) {
3031
3061
  if (!e) return -1;
3032
3062
  for (let n = 0; n < e.length; n++) if (e[n] && e[n].id === t) return n;
3033
3063
  return -1;
3034
3064
  }
3035
- function Rl(e, t, n) {
3065
+ function Dl(e, t, n) {
3036
3066
  if (!e || !t) return ir("ERROR: str_in_list() list or str empty"), !1;
3037
3067
  let r = e.length;
3038
3068
  if (n) {
@@ -3044,7 +3074,7 @@
3044
3074
  } else for (let n = 0; n < r; n++) if (e[n] === t) return !0;
3045
3075
  return !1;
3046
3076
  }
3047
- function Dl(e, t) {
3077
+ function kl(e, t) {
3048
3078
  try {
3049
3079
  let n = e.__md_iev__;
3050
3080
  if (n) return n[t];
@@ -3052,34 +3082,34 @@
3052
3082
  return;
3053
3083
  }
3054
3084
  }
3055
- function kl(e, t, n) {
3085
+ function Cl(e, t, n) {
3056
3086
  let r = e.__md_iev__;
3057
3087
  r || (r = {}, e.__md_iev__ = r), r[t] = n;
3058
3088
  }
3059
- function Cl(e, t, n, r) {
3089
+ function Il(e, t, n, r) {
3060
3090
  if (!Qo(e)) return ir("gobj is not a GObj"), null;
3061
3091
  if (!t) return;
3062
- let o = Dl(t, n);
3063
- o || (o = [], kl(t, n, o));
3092
+ let o = kl(t, n);
3093
+ o || (o = [], Cl(t, n, o));
3064
3094
  try {
3065
3095
  Bo(o) && o.unshift(r);
3066
3096
  } catch (e) {
3067
3097
  ir(e);
3068
3098
  }
3069
3099
  }
3070
- function Il(e, t, n, r) {
3100
+ function Pl(e, t, n, r) {
3071
3101
  if (!Qo(e)) return ir("gobj is not a GObj"), null;
3072
3102
  if (!Ko(t)) return ir("kw is not a dict"), null;
3073
- let o = Dl(t, n);
3103
+ let o = kl(t, n);
3074
3104
  return o ? 0 === o.length ? (r && ir(`stack empty: ${n}`), null) : o[0] : (r && ir(`stack NOT FOUND: ${n}`), null);
3075
3105
  }
3076
- function Pl(e, t, n) {
3106
+ function Ll(e, t, n) {
3077
3107
  return Xo(n) ? ul(e, t, "__md_iev__`__msg_type__") : ml(e, t, "__md_iev__", "__msg_type__", n), 0;
3078
3108
  }
3079
- function Ll(e, t) {
3109
+ function Ul(e, t) {
3080
3110
  return fl(e, t, "__md_iev__`__msg_type__", "", 0);
3081
3111
  }
3082
- function Ul(e, t, n) {
3112
+ function Fl(e, t, n) {
3083
3113
  void 0 !== n && Yo(n) || (n = "");
3084
3114
  for (let r of Object.keys(e)) {
3085
3115
  if (!Object.prototype.hasOwnProperty.call(e, r)) continue;
@@ -3089,10 +3119,10 @@
3089
3119
  r,
3090
3120
  e[r],
3091
3121
  n
3092
- ]), Ko(e[r]) && Ul(e[r], t, n), n = n.slice(0, -o.length);
3122
+ ]), Ko(e[r]) && Fl(e[r], t, n), n = n.slice(0, -o.length);
3093
3123
  }
3094
3124
  }
3095
- function Fl(e, t, n, r) {
3125
+ function Ml(e, t, n, r) {
3096
3126
  if (!e) return null;
3097
3127
  let o, l = e.length;
3098
3128
  for (o = 0; o < l; o++) {
@@ -3101,14 +3131,14 @@
3101
3131
  let e = l.id;
3102
3132
  if (e && e === n) return l;
3103
3133
  if (r && ol(l, t)) {
3104
- let e = Fl(l[t], t, n, r);
3134
+ let e = Ml(l[t], t, n, r);
3105
3135
  if (e) return e;
3106
3136
  }
3107
3137
  }
3108
3138
  }
3109
3139
  return null;
3110
3140
  }
3111
- function Ml(e) {
3141
+ function Gl(e) {
3112
3142
  function t(e) {
3113
3143
  let t = e.replace(/-/g, "+").replace(/_/g, "/");
3114
3144
  switch (t.length % 4) {
@@ -3139,10 +3169,10 @@
3139
3169
  signature: t(n[2])
3140
3170
  };
3141
3171
  }
3142
- function Gl(e) {
3172
+ function Vl(e) {
3143
3173
  return null == e ? "" : String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
3144
3174
  }
3145
- var Vl = class {
3175
+ var Wl = class {
3146
3176
  constructor(e) {
3147
3177
  this.html = e, Object.freeze(this);
3148
3178
  }
@@ -3150,41 +3180,57 @@
3150
3180
  return this.html;
3151
3181
  }
3152
3182
  };
3153
- function Wl(e) {
3154
- return e instanceof Vl;
3155
- }
3156
3183
  function xl(e) {
3184
+ return e instanceof Wl;
3185
+ }
3186
+ function Kl(e) {
3157
3187
  const t = document.createElement("template");
3158
3188
  return t.innerHTML = e.html.trim(), t.content;
3159
3189
  }
3160
- var Kl = !1, Bl = /* @__PURE__ */ new Set();
3161
- function Yl(e) {
3190
+ var Bl = !1, Yl = /* @__PURE__ */ new Set();
3191
+ function Jl(e) {
3162
3192
  const t = document.createElement("template");
3163
3193
  return t.innerHTML = e.trim(), t.content.firstChild;
3164
3194
  }
3165
- function Jl(e) {
3195
+ function Hl(e) {
3166
3196
  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), o = e.getTimezoneOffset();
3167
3197
  return `${n}.${r}${o > 0 ? "-" : "+"}${t(Math.floor(Math.abs(o) / 60), 2)}${t(Math.abs(o) % 60, 2)}`;
3168
3198
  }
3169
- function Hl(e, t) {
3199
+ function ql(e, t) {
3170
3200
  if (!e) throw "ERROR: index_in_list() list empty";
3171
3201
  for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
3172
3202
  return -1;
3173
3203
  }
3174
- function ql() {
3204
+ function zl() {
3175
3205
  let e = "";
3176
- 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;
3206
+ const t = Tl();
3207
+ if (t) {
3208
+ try {
3209
+ e = t.getItem("host_uuid");
3210
+ } catch (t) {
3211
+ e = null, Ol("host_uuid", "node_uuid(): localStorage cannot be read (storage blocked?): a uuid of this page only");
3212
+ }
3213
+ if (!e && window.crypto?.randomUUID) {
3214
+ e = window.crypto.randomUUID();
3215
+ try {
3216
+ t.setItem("host_uuid", e);
3217
+ } catch (e) {
3218
+ Ol("host_uuid", "node_uuid(): localStorage cannot be written (storage full or blocked?): a uuid of this page only");
3219
+ }
3220
+ }
3221
+ } else e = "undefined" != typeof globalThis && globalThis.crypto?.randomUUID ? globalThis.crypto.randomUUID() : "00000000-0000-0000-0000-000000000000";
3222
+ return e;
3177
3223
  }
3178
- function zl(e) {
3224
+ function Ql(e) {
3179
3225
  let t = null;
3180
3226
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
3181
3227
  }
3182
- var Ql = 256, Xl = 1e5;
3183
- function Zl(e) {
3228
+ var Xl = 256, Zl = 1e5;
3229
+ function ei(e) {
3184
3230
  const t = String(e).replace(/`/g, "``");
3185
3231
  return "[" === t[0] ? "[" + t : t;
3186
3232
  }
3187
- function ei(e) {
3233
+ function ti(e) {
3188
3234
  if ("string" != typeof e) return null;
3189
3235
  let t = [], n = "";
3190
3236
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -3205,13 +3251,13 @@
3205
3251
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
3206
3252
  });
3207
3253
  }
3208
- function ti(e, t) {
3254
+ function ni(e, t) {
3209
3255
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
3210
3256
  }
3211
- function ni(e) {
3257
+ function ri(e) {
3212
3258
  return "persistent-attrs-" + kt(e);
3213
3259
  }
3214
- function ri(e, t) {
3260
+ function oi(e, t) {
3215
3261
  if (Yo(t)) {
3216
3262
  if (-1 === t.indexOf("^")) {
3217
3263
  let n, r, o = e.fkey;
@@ -3241,7 +3287,7 @@
3241
3287
  hook_name: t.hook_name
3242
3288
  } : (ir("bad fkey 3"), ir(e), ir(t), null);
3243
3289
  }
3244
- var oi = [
3290
+ var li = [
3245
3291
  "string",
3246
3292
  "integer",
3247
3293
  "object",
@@ -3251,7 +3297,7 @@
3251
3297
  "real",
3252
3298
  "boolean",
3253
3299
  "blob"
3254
- ], li = [
3300
+ ], ii = [
3255
3301
  "persistent",
3256
3302
  "required",
3257
3303
  "notnull",
@@ -3263,7 +3309,7 @@
3263
3309
  "stats",
3264
3310
  "rstats",
3265
3311
  "pstats"
3266
- ], ii = [
3312
+ ], si = [
3267
3313
  "hook",
3268
3314
  "fkey",
3269
3315
  "enum",
@@ -3292,7 +3338,7 @@
3292
3338
  "coordinates",
3293
3339
  "gbuffer"
3294
3340
  ];
3295
- function si(e) {
3341
+ function ai(e) {
3296
3342
  let t = {
3297
3343
  name: e.id,
3298
3344
  header: e.header,
@@ -3311,7 +3357,7 @@
3311
3357
  if (!e.flag) return t;
3312
3358
  for (let n = 0; n < e.flag.length; n++) {
3313
3359
  let r = e.flag[n];
3314
- if (Rl(ii, r)) {
3360
+ if (Dl(si, r)) {
3315
3361
  switch (r) {
3316
3362
  case "enum":
3317
3363
  t.enum_list = e.enum;
@@ -3325,7 +3371,7 @@
3325
3371
  case "file": t.is_file = !0;
3326
3372
  }
3327
3373
  t.type = r;
3328
- } else if (Rl(li, r)) switch (r) {
3374
+ } else if (Dl(ii, r)) switch (r) {
3329
3375
  case "writable":
3330
3376
  t.is_writable = !0;
3331
3377
  break;
@@ -3338,23 +3384,23 @@
3338
3384
  }
3339
3385
  return t.is_file && (t.type = "file"), t;
3340
3386
  }
3341
- var ai = [
3387
+ var ui = [
3342
3388
  k(E.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
3343
3389
  k(E.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
3344
3390
  k(E.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
3345
3391
  D()
3346
- ], ui = {
3392
+ ], _i = {
3347
3393
  periodic: !1,
3348
3394
  msec: 0,
3349
3395
  timer_id: -1
3350
- }, _i = null;
3351
- function ci(e, t, n, r) {
3396
+ }, ci = null;
3397
+ function fi(e, t, n, r) {
3352
3398
  let o = e.priv, l = o.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
3353
3399
  return o.periodic && o.msec > 0 ? o.timer_id = setTimeout(function() {
3354
3400
  jn(e, "EV_TIMEOUT", {}, e);
3355
3401
  }, o.msec) : o.timer_id = -1, Ln(e, l, {}), o.periodic || -1 !== o.timer_id || Tt(e) && mt(e), 0;
3356
3402
  }
3357
- var fi = {
3403
+ var gi = {
3358
3404
  mt_create: function(e) {
3359
3405
  let t = e.priv, n = nn(e, "subscriber");
3360
3406
  n ? kn(e, null, {}, n) : Lt(e) && (n = It(e), kn(e, null, {}, n)), t.periodic = Zt(e, "periodic"), t.msec = en(e, "msec");
@@ -3378,19 +3424,19 @@
3378
3424
  },
3379
3425
  mt_destroy: function(e) {}
3380
3426
  };
3381
- function gi(e) {
3427
+ function di(e) {
3382
3428
  return "number" == typeof e && Number.isFinite(e) ? Math.round(e) : e;
3383
3429
  }
3384
- function di(e, t) {
3385
- return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !1), void un(e, "msec", gi(t))) : (ir("not GObj TYPE"), -1);
3386
- }
3387
3430
  function bi(e, t) {
3388
- return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !0), void un(e, "msec", gi(t))) : (ir("not GObj TYPE"), -1);
3431
+ return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !1), void un(e, "msec", di(t))) : (ir("not GObj TYPE"), -1);
3432
+ }
3433
+ function pi(e, t) {
3434
+ return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !0), void un(e, "msec", di(t))) : (ir("not GObj TYPE"), -1);
3389
3435
  }
3390
- function pi(e) {
3436
+ function mi(e) {
3391
3437
  return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : void un(e, "msec", -1) : (ir("not GObj TYPE"), -1);
3392
3438
  }
3393
- var mi = [
3439
+ var hi = [
3394
3440
  k(E.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
3395
3441
  k(E.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
3396
3442
  k(E.DTP_STRING, "__username__", 0, "", "Username"),
@@ -3410,35 +3456,35 @@
3410
3456
  k(E.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
3411
3457
  k(E.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
3412
3458
  D()
3413
- ], hi = { gobj_timer: null }, yi = null;
3414
- function vi(e, t, n, r) {
3459
+ ], yi = { gobj_timer: null }, vi = null;
3460
+ function Ei(e, t, n, r) {
3415
3461
  let o = Qt(e, t);
3416
3462
  return Ko(o) || (o = {}), o[n] = r, rn(e, t, o), it(e, t);
3417
3463
  }
3418
- var Ei = -2147483648, Ti = 2147483647;
3419
- function ji(e) {
3464
+ var Ti = -2147483648, ji = 2147483647;
3465
+ function Oi(e) {
3420
3466
  if (!0 === e || !1 === e) return e;
3421
- if ("number" == typeof e) return !Number.isInteger(e) || e < Ei || e > Ti ? null : 0 !== e;
3467
+ if ("number" == typeof e) return !Number.isInteger(e) || e < Ti || e > ji ? null : 0 !== e;
3422
3468
  if ("string" != typeof e || "" === e) return null;
3423
3469
  let t = e.toLowerCase();
3424
3470
  if ("set" === t) return !0;
3425
3471
  if ("reset" === t) return !1;
3426
3472
  if (/^-?(0|[1-9][0-9]*)$/.test(e)) {
3427
3473
  let t = Number(e);
3428
- return t < Ei || t > Ti ? null : 0 !== t;
3474
+ return t < Ti || t > ji ? null : 0 !== t;
3429
3475
  }
3430
3476
  return "true" === t || "yes" === t || "on" === t || "false" !== t && "no" !== t && "off" !== t && null;
3431
3477
  }
3432
- function Oi() {
3478
+ function Si() {
3433
3479
  return `${$t()}^${Nt()}`;
3434
3480
  }
3435
- function Si(e, t, n, r) {
3481
+ function wi(e, t, n, r) {
3436
3482
  return Ln(e, t, n), 0;
3437
3483
  }
3438
- var wi = {
3484
+ var Ni = {
3439
3485
  mt_create: function(e) {
3440
3486
  let t = e.priv;
3441
- _n(e, "start_date", Jl()), _n(e, "node_uuid", ql()), e.priv.gobj_timer = _t(Rt(e), "C_TIMER", {}, e), t.periodic_timeout = Qt(e, "periodic_timeout"), function(e) {
3487
+ _n(e, "start_date", Hl()), _n(e, "node_uuid", zl()), e.priv.gobj_timer = _t(Rt(e), "C_TIMER", {}, e), t.periodic_timeout = Qt(e, "periodic_timeout"), function(e) {
3442
3488
  let t = Qt(e, "trace_levels");
3443
3489
  if (!Ko(t)) return 0;
3444
3490
  let n = t.__global_trace__;
@@ -3472,10 +3518,10 @@
3472
3518
  },
3473
3519
  mt_writing: function(e, t) {},
3474
3520
  mt_start: function(e) {
3475
- return bi(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
3521
+ return pi(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
3476
3522
  },
3477
3523
  mt_stop: function(e) {
3478
- return pi(e.priv.gobj_timer), yt(e), 0;
3524
+ return mi(e.priv.gobj_timer), yt(e), 0;
3479
3525
  },
3480
3526
  mt_destroy: function(e) {},
3481
3527
  mt_play: function(e) {
@@ -3492,24 +3538,24 @@
3492
3538
  case "get-global-no-trace": return o(0, 0, null, null, ce());
3493
3539
  case "set-global-trace":
3494
3540
  case "set-global-no-trace": {
3495
- let r = "set-global-no-trace" === t, l = n.level, i = ji(n.set);
3496
- return l ? null === i ? o(0, -1, `${Oi()}: bitmask set or re-set?`, null, null) : (r ? se(l, i) : ie(l, i)) < 0 ? o(0, -1, `${Oi()}: global trace level not found: ${l}`, null, null) : r ? (vi(e, "no_trace_levels", "__global_no_trace__", ce()), o(0, 0, null, null, ce())) : (vi(e, "trace_levels", "__global_trace__", _e()), o(0, 0, null, null, _e())) : o(0, -1, `${Oi()}: what level?`, null, null);
3541
+ let r = "set-global-no-trace" === t, l = n.level, i = Oi(n.set);
3542
+ return l ? null === i ? o(0, -1, `${Si()}: bitmask set or re-set?`, null, null) : (r ? se(l, i) : ie(l, i)) < 0 ? o(0, -1, `${Si()}: global trace level not found: ${l}`, null, null) : r ? (Ei(e, "no_trace_levels", "__global_no_trace__", ce()), o(0, 0, null, null, ce())) : (Ei(e, "trace_levels", "__global_trace__", _e()), o(0, 0, null, null, _e())) : o(0, -1, `${Si()}: what level?`, null, null);
3497
3543
  }
3498
3544
  case "get-gclass-trace":
3499
3545
  case "get-gclass-no-trace":
3500
3546
  case "set-gclass-trace":
3501
3547
  case "set-gclass-no-trace": {
3502
3548
  let r = t.indexOf("no-trace") >= 0, l = n.gclass_name || n.gclass || "", i = et(l);
3503
- if (!i) return o(0, -1, `${Oi()}: what gclass is '${l}'?`, null, null);
3549
+ if (!i) return o(0, -1, `${Si()}: what gclass is '${l}'?`, null, null);
3504
3550
  if (0 === t.indexOf("get-")) return o(0, 0, null, null, r ? de(i) : fe(i));
3505
- let s = n.level, a = ji(n.set);
3506
- return s ? null === a ? o(0, -1, `${Oi()}: bitmask set or re-set?`, null, null) : (r ? pe(i, s, a) : be(i, s, a)) < 0 ? o(0, -1, `${Oi()}: trace level of ${l} not found: ${s}`, null, null) : r ? (vi(e, "no_trace_levels", l, de(i)), o(0, 0, null, null, de(i))) : (vi(e, "trace_levels", l, ge(i)), o(0, 0, null, null, fe(i))) : o(0, -1, `${Oi()}: what level?`, null, null);
3551
+ let s = n.level, a = Oi(n.set);
3552
+ return s ? null === a ? o(0, -1, `${Si()}: bitmask set or re-set?`, null, null) : (r ? pe(i, s, a) : be(i, s, a)) < 0 ? o(0, -1, `${Si()}: trace level of ${l} not found: ${s}`, null, null) : r ? (Ei(e, "no_trace_levels", l, de(i)), o(0, 0, null, null, de(i))) : (Ei(e, "trace_levels", l, ge(i)), o(0, 0, null, null, fe(i))) : o(0, -1, `${Si()}: what level?`, null, null);
3507
3553
  }
3508
- default: return o(0, -1, `${Oi()}: command not available: ${t}`, null, null);
3554
+ default: return o(0, -1, `${Si()}: command not available: ${t}`, null, null);
3509
3555
  }
3510
3556
  }
3511
3557
  };
3512
- var Ni = "ievent_gate_stack", $i = [
3558
+ var $i = "ievent_gate_stack", Ai = [
3513
3559
  k(E.DTP_STRING, "wanted_yuno_role", A.SDF_RD, "", "wanted yuno role"),
3514
3560
  k(E.DTP_STRING, "wanted_yuno_name", A.SDF_RD, "", "wanted yuno name"),
3515
3561
  k(E.DTP_STRING, "wanted_yuno_service", A.SDF_RD, "", "wanted yuno service"),
@@ -3521,20 +3567,20 @@
3521
3567
  k(E.DTP_STRING, "cert_pem", A.SDF_PERSIST, "", "SSL server certification, PEM str format"),
3522
3568
  k(E.DTP_JSON, "extra_info", A.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
3523
3569
  k(E.DTP_LIST, "required_services", A.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."),
3524
- k(E.DTP_INTEGER, "timeout_retry", A.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"),
3570
+ k(E.DTP_INTEGER, "timeout_retry", A.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"),
3525
3571
  k(E.DTP_INTEGER, "timeout_retry_max", A.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
3526
3572
  k(E.DTP_INTEGER, "timeout_idack", A.SDF_RD, "5000", "timeout waiting idAck"),
3527
3573
  k(E.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
3528
3574
  D()
3529
- ], Ai = [
3575
+ ], Ri = [
3530
3576
  ["ievents", "Trace inter-events with metadata of kw"],
3531
3577
  ["ievents2", "Trace inter-events with full kw"],
3532
3578
  ["identity-card", "Trace identity_card messages"]
3533
3579
  ];
3534
- function Ri(e) {
3580
+ function Di(e) {
3535
3581
  return !!(3 & X(e));
3536
3582
  }
3537
- var Di = {
3583
+ var ki = {
3538
3584
  url: null,
3539
3585
  remote_yuno_name: null,
3540
3586
  remote_yuno_role: null,
@@ -3545,9 +3591,10 @@
3545
3591
  inside_on_open: !1,
3546
3592
  retry_ms: 0,
3547
3593
  retry_ms_before_session: 0,
3548
- session_since: 0
3549
- }, ki = null;
3550
- function Ci(e) {
3594
+ session_since: 0,
3595
+ retry_floor_warned: !1
3596
+ }, Ci = null;
3597
+ function Ii(e) {
3551
3598
  e.priv.websocket && ir("Websocket ALREADY setup");
3552
3599
  const t = tn(e, "url");
3553
3600
  ar(`====> Starting WebSocket to '${t}' (${kt(e)})`);
@@ -3562,7 +3609,7 @@
3562
3609
  code: 1006,
3563
3610
  reason: r.message,
3564
3611
  was_clean: !1
3565
- }, e) < 0 && di(e.priv.gobj_timer, Ji(e)), null;
3612
+ }, e) < 0 && bi(e.priv.gobj_timer, zi(e)), null;
3566
3613
  }
3567
3614
  return r ? (r.onopen = () => {
3568
3615
  n !== e.priv.ws_seq || Ut(e) || jn(e, "EV_ON_OPEN", {
@@ -3584,7 +3631,7 @@
3584
3631
  }, e));
3585
3632
  }, r) : (ir(`${kt(e)}: Failed to initialize WebSocket.`), null);
3586
3633
  }
3587
- function Ii(e, t = 1e3, n = "") {
3634
+ function Pi(e, t = 1e3, n = "") {
3588
3635
  let r = e.priv, o = r.websocket;
3589
3636
  if (r.websocket = null, o && o.readyState !== WebSocket.CLOSED && o.readyState !== WebSocket.CLOSING) {
3590
3637
  ar(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -3595,12 +3642,12 @@
3595
3642
  }
3596
3643
  } else sr("WebSocket is already closed or in the process of closing.");
3597
3644
  }
3598
- function Pi(e, t) {
3645
+ function Li(e, t) {
3599
3646
  let n = e.priv;
3600
- "ST_SESSION" === fn(e) && (performance.now() - n.session_since < Math.max(en(e, "timeout_retry"), en(e, "timeout_retry_max")) && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), Ii(e, 4002, t);
3647
+ "ST_SESSION" === fn(e) && (performance.now() - n.session_since < qi(e).max && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), Pi(e, 4002, t);
3601
3648
  }
3602
- var Li = 128;
3603
- function Ui(e, t) {
3649
+ var Ui = 128;
3650
+ function Fi(e, t) {
3604
3651
  let n = String(e), r = To(n);
3605
3652
  if (null !== r && (n = r), n.length > t) {
3606
3653
  let e = t, r = n.charCodeAt(e);
@@ -3608,25 +3655,25 @@
3608
3655
  }
3609
3656
  return n;
3610
3657
  }
3611
- function Fi(e, t, n) {
3612
- let r = Jl();
3658
+ function Mi(e, t, n) {
3659
+ let r = Hl();
3613
3660
  try {
3614
3661
  ar("\n" + r + " " + t + "\n"), $o(n);
3615
3662
  } catch (e) {
3616
3663
  ar("ERROR in trace_inter_event: " + e);
3617
3664
  }
3618
3665
  }
3619
- var Mi = class {
3666
+ var Gi = class {
3620
3667
  constructor(e, t) {
3621
3668
  this.event = e, this.kw = t || {};
3622
3669
  }
3623
3670
  };
3624
- function Gi(e, t, n, r) {
3671
+ function Vi(e, t, n, r) {
3625
3672
  return function(e, t) {
3626
3673
  let n = e.priv, r = JSON.stringify(t);
3627
- if (Ri(e)) {
3674
+ if (Di(e)) {
3628
3675
  let n = tn(e, "url"), o = Rt(wt()) + " ==> " + n, l = Qt(wt(), "trace_ievent_callback");
3629
- l ? l(o, t, 1, r.length) : Fi(0, o, t);
3676
+ l ? l(o, t, 1, r.length) : Mi(0, o, t);
3630
3677
  }
3631
3678
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return sr(`${kt(e)}: send_iev(): websocket not open, message lost`), -1;
3632
3679
  try {
@@ -3636,10 +3683,10 @@
3636
3683
  }
3637
3684
  return 0;
3638
3685
  }(e, function(e, t) {
3639
- return Xo(e) ? (ir("iev_create() event NULL"), null) : new Mi(e, t);
3686
+ return Xo(e) ? (ir("iev_create() event NULL"), null) : new Gi(e, t);
3640
3687
  }(t, n));
3641
3688
  }
3642
- function Vi(e, t, n) {
3689
+ function Wi(e, t, n) {
3643
3690
  return Xo(n) && (n = tn(e, "wanted_yuno_service")), {
3644
3691
  dst_yuno: tn(e, "wanted_yuno_name"),
3645
3692
  dst_role: tn(e, "wanted_yuno_role"),
@@ -3647,10 +3694,10 @@
3647
3694
  src_yuno: Nt(),
3648
3695
  src_role: $t(),
3649
3696
  src_service: t,
3650
- host: ql()
3697
+ host: zl()
3651
3698
  };
3652
3699
  }
3653
- function Wi(e) {
3700
+ function xi(e) {
3654
3701
  let t = e.priv, n = St(wt()), r = tn(wt(), "yuno_version"), o = tn(wt(), "yuno_release"), l = tn(wt(), "yuno_tag"), s = Qt(e, "required_services");
3655
3702
  s && s.length || (s = Qt(wt(), "required_services"));
3656
3703
  let a = {
@@ -3668,32 +3715,32 @@
3668
3715
  username: tn(wt(), "__username__"),
3669
3716
  launch_id: 0,
3670
3717
  yuno_startdate: tn(wt(), "start_date"),
3671
- id: ql(),
3718
+ id: zl(),
3672
3719
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
3673
3720
  language: "undefined" != typeof window ? window.navigator.language : "",
3674
3721
  required_services: s
3675
3722
  };
3676
- return Cl(e, a, Ni, Vi(e, Rt(It(e)), null)), Pl(e, a, "__identity__"), di(t.gobj_timer, en(e, "timeout_idack")), Gi(e, "EV_IDENTITY_CARD", a);
3723
+ return Il(e, a, $i, Wi(e, Rt(It(e)), null)), Ll(e, a, "__identity__"), bi(t.gobj_timer, en(e, "timeout_idack")), Vi(e, "EV_IDENTITY_CARD", a);
3677
3724
  }
3678
- function xi(e, t) {
3725
+ function Ki(e, t) {
3679
3726
  if (Xo(t.event)) return -1;
3680
3727
  let n = {}, r = t.__global__, o = t.__config__, l = t.__filter__, i = t.__service__, s = t.subscriber;
3681
3728
  o && (n.__config__ = o), r && (n.__global__ = r), l && (n.__filter__ = l);
3682
- return Cl(e, n, Ni, Vi(e, Rt(s), i)), Pl(e, n, "__subscribing__"), Gi(e, t.event, n);
3683
- }
3684
- function Ki(e, t, n, r) {
3685
- let o = e.priv;
3686
- return Tt(e) && (o.websocket = Ci(e)), 0;
3729
+ return Il(e, n, $i, Wi(e, Rt(s), i)), Ll(e, n, "__subscribing__"), Vi(e, t.event, n);
3687
3730
  }
3688
3731
  function Bi(e, t, n, r) {
3689
- return ar("Websocket opened: " + e.priv.url), Wi(e), 0;
3732
+ let o = e.priv;
3733
+ return Tt(e) && (o.websocket = Ii(e)), 0;
3690
3734
  }
3691
3735
  function Yi(e, t, n, r) {
3736
+ return ar("Websocket opened: " + e.priv.url), xi(e), 0;
3737
+ }
3738
+ function Ji(e, t, n, r) {
3692
3739
  let o = e.priv, l = n.url;
3693
3740
  if (void 0 !== n.ws_seq && n.ws_seq !== o.ws_seq) return 0;
3694
3741
  Xn();
3695
- const i = Ui(void 0 === n.reason ? "" : n.reason, 256);
3696
- return Ri(e) && ur(`${kt(e)}: WebSocket closed ${l} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), o.websocket && (o.websocket.onopen = null, o.websocket.onmessage = null, o.websocket.onerror = null, o.websocket.onclose = null, o.websocket = null), o.inform_on_close ? (o.inform_on_close = !1, (!n.was_clean || 1e3 !== n.code && 1001 !== n.code) && Tt(e) && sr(`${kt(e)}: session closed ${l} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), Ln(e, "EV_ON_CLOSE", {
3742
+ const i = Fi(void 0 === n.reason ? "" : n.reason, 256);
3743
+ return Di(e) && ur(`${kt(e)}: WebSocket closed ${l} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), o.websocket && (o.websocket.onopen = null, o.websocket.onmessage = null, o.websocket.onerror = null, o.websocket.onclose = null, o.websocket = null), o.inform_on_close ? (o.inform_on_close = !1, (!n.was_clean || 1e3 !== n.code && 1001 !== n.code) && Tt(e) && sr(`${kt(e)}: session closed ${l} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), Ln(e, "EV_ON_CLOSE", {
3697
3744
  url: l,
3698
3745
  remote_yuno_name: o.remote_yuno_name,
3699
3746
  remote_yuno_role: o.remote_yuno_role,
@@ -3709,24 +3756,33 @@
3709
3756
  code: n.code,
3710
3757
  reason: i,
3711
3758
  was_clean: n.was_clean
3712
- })), Tt(e) && di(o.gobj_timer, Ji(e)), 0;
3759
+ })), Tt(e) && bi(o.gobj_timer, zi(e)), 0;
3713
3760
  }
3714
- function Ji(e) {
3761
+ var Hi = 1e3;
3762
+ function qi(e) {
3715
3763
  let t = e.priv, n = en(e, "timeout_retry"), r = en(e, "timeout_retry_max");
3716
- r < n && (r = n), t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
3764
+ return n >= Hi || (t.retry_floor_warned || (t.retry_floor_warned = !0, sr(`${kt(e)}: timeout_retry ${n} ms is below ${Hi} ms: ${Hi} ms is used`)), n = Hi), r >= n || (r = n), {
3765
+ base: n,
3766
+ max: r
3767
+ };
3768
+ }
3769
+ function zi(e) {
3770
+ let t = e.priv;
3771
+ const { base: n, max: r } = qi(e);
3772
+ t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
3717
3773
  let o = .2 * t.retry_ms, l = t.retry_ms - o + 2 * Math.random() * o;
3718
3774
  return Math.max(1, Math.round(l));
3719
3775
  }
3720
- function Hi(e, t, n, r) {
3721
- return Wi(e), 0;
3776
+ function Qi(e, t, n, r) {
3777
+ return xi(e), 0;
3722
3778
  }
3723
- function qi(e, t, n, r) {
3779
+ function Xi(e, t, n, r) {
3724
3780
  let o = e.priv;
3725
- pi(o.gobj_timer);
3726
- let l = Il(e, n, Ni, !0), i = fl(e, l, "src_yuno", ""), s = fl(e, l, "src_role", ""), a = fl(e, l, "src_service", "");
3781
+ mi(o.gobj_timer);
3782
+ let l = Pl(e, n, $i, !0), i = fl(e, l, "src_yuno", ""), s = fl(e, l, "src_role", ""), a = fl(e, l, "src_service", "");
3727
3783
  _n(e, "remote_yuno_name", i), _n(e, "remote_yuno_role", s), _n(e, "remote_yuno_service", a);
3728
3784
  let u = cl(e, n, "result", -1, 0), _ = fl(e, n, "comment", "", 0), c = fl(e, n, "username", "", 0), f = bl(e, n, "services_roles", {});
3729
- if (u < 0) Ii(e), Ln(e, "EV_ON_ID_NAK", {
3785
+ if (u < 0) Pi(e), Ln(e, "EV_ON_ID_NAK", {
3730
3786
  url: tn(e, "url"),
3731
3787
  result: u,
3732
3788
  comment: _,
@@ -3743,11 +3799,11 @@
3743
3799
  services_roles: f
3744
3800
  })), o.inside_on_open = !1, function(e) {
3745
3801
  let t = In(e, null, null, null);
3746
- for (let n = 0; n < t.length; n++) xi(e, t[n]);
3802
+ for (let n = 0; n < t.length; n++) Ki(e, t[n]);
3747
3803
  }(e);
3748
3804
  return 0;
3749
3805
  }
3750
- function zi(e, t, n, r) {
3806
+ function Zi(e, t, n, r) {
3751
3807
  let o = e.priv.url, l = function(e, t) {
3752
3808
  let n;
3753
3809
  try {
@@ -3766,49 +3822,49 @@
3766
3822
  kw: o || {}
3767
3823
  } : (sr(`${kt(e)}: parsing inter_event: kw not a json object`), null) : (sr(`${kt(e)}: parsing inter_kw: no kw`), null);
3768
3824
  }(e, n.data);
3769
- if (!l) return sr(`${kt(e)}: frame dropped from ${o}: ${Ui(n.data, 256)}`), -1;
3770
- if (Ri(e)) {
3825
+ if (!l) return sr(`${kt(e)}: frame dropped from ${o}: ${Fi(n.data, 256)}`), -1;
3826
+ if (Di(e)) {
3771
3827
  let e = Rt(wt()) + " <== " + o, t = n.data.length, r = Qt(wt(), "trace_ievent_callback");
3772
- r ? r(e, l, 2, t) : Fi(0, e, l);
3828
+ r ? r(e, l, 2, t) : Mi(0, e, l);
3773
3829
  }
3774
3830
  let i = l.event, s = l.kw;
3775
3831
  if ("ST_SESSION" !== fn(e)) {
3776
3832
  if ("ev_identity_card_ack" === String(i).toLowerCase()) {
3777
3833
  if (!(jn(e, "EV_IDENTITY_CARD_ACK", s, e) < 0)) return 0;
3778
- } else sr(`${kt(e)}: event UNKNOWN in not-session state ${Ui(i, Li)}`);
3779
- return Pi(e, "event out of session"), -1;
3834
+ } else sr(`${kt(e)}: event UNKNOWN in not-session state ${Fi(i, Ui)}`);
3835
+ return Li(e, "event out of session"), -1;
3780
3836
  }
3781
3837
  l = null;
3782
- let a = Ll(e, s), u = Il(e, s, Ni), _ = fl(e, u, "dst_role", "");
3783
- if (!Xo(_) && _.toLowerCase() !== String($t()).toLowerCase()) return sr(`${kt(e)}: It's not my role, dst_role: ${Ui(_, Li)}, my_role: ${$t()}, event: ${Ui(i, Li)}`), Pi(e, "not my role"), -1;
3838
+ let a = Ul(e, s), u = Pl(e, s, $i), _ = fl(e, u, "dst_role", "");
3839
+ if (!Xo(_) && _.toLowerCase() !== String($t()).toLowerCase()) return sr(`${kt(e)}: It's not my role, dst_role: ${Fi(_, Ui)}, my_role: ${$t()}, event: ${Fi(i, Ui)}`), Li(e, "not my role"), -1;
3784
3840
  let c = fl(e, u, "dst_yuno", "");
3785
- if (!Xo(c) && c.toLowerCase() !== String(Nt()).toLowerCase()) return sr(`${kt(e)}: It's not my name, dst_yuno: ${Ui(c, Li)}, my_name: ${Nt()}, event: ${Ui(i, Li)}`), Pi(e, "not my name"), -1;
3841
+ if (!Xo(c) && c.toLowerCase() !== String(Nt()).toLowerCase()) return sr(`${kt(e)}: It's not my name, dst_yuno: ${Fi(c, Ui)}, my_name: ${Nt()}, event: ${Fi(i, Ui)}`), Li(e, "not my name"), -1;
3786
3842
  let f = fl(e, u, "dst_service", "");
3787
- if ("__subscribing__" === a) return sr(`${kt(e)}: subscription event ignored, I'm client (service: ${Ui(f, Li)}, event: ${Ui(i, Li)})`), -1;
3788
- if ("__unsubscribing__" === a) return sr(`${kt(e)}: unsubscription event ignored, I'm client (service: ${Ui(f, Li)}, event: ${Ui(i, Li)})`), -1;
3843
+ if ("__subscribing__" === a) return sr(`${kt(e)}: subscription event ignored, I'm client (service: ${Fi(f, Ui)}, event: ${Fi(i, Ui)})`), -1;
3844
+ if ("__unsubscribing__" === a) return sr(`${kt(e)}: unsubscription event ignored, I'm client (service: ${Fi(f, Ui)}, event: ${Fi(i, Ui)})`), -1;
3789
3845
  const g = Sn(i, 0, !1);
3790
3846
  if (g && dn(e, g.event_name, 0)) {
3791
3847
  const t = g.event_name;
3792
- return dn(e, t, F.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (jn(e, t, s, e), 0) : (sr(`${kt(e)}: event of the transport itself, or out of its place, DROPPED: ev '${Ui(i, Li)}'`), -1);
3848
+ return dn(e, t, F.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (jn(e, t, s, e), 0) : (sr(`${kt(e)}: event of the transport itself, or out of its place, DROPPED: ev '${Fi(i, Ui)}'`), -1);
3793
3849
  }
3794
3850
  if (!Xo(f)) {
3795
3851
  let t = nt(f, !1);
3796
- return t ? dn(t, i, F.EVF_PUBLIC_EVENT) ? (jn(t, i, s, e), 0) : (sr(`${kt(e)}: Service found but no event or not public, DROPPED: service '${kt(t)}', ev '${Ui(i, Li)}'`), -1) : (sr(`${kt(e)}: event for a service that is gone, DROPPED: service '${Ui(f, Li)}', ev '${Ui(i, Li)}'`), 0);
3852
+ return t ? dn(t, i, F.EVF_PUBLIC_EVENT) ? (jn(t, i, s, e), 0) : (sr(`${kt(e)}: Service found but no event or not public, DROPPED: service '${kt(t)}', ev '${Fi(i, Ui)}'`), -1) : (sr(`${kt(e)}: event for a service that is gone, DROPPED: service '${Fi(f, Ui)}', ev '${Fi(i, Ui)}'`), 0);
3797
3853
  }
3798
3854
  let d = Sn(i, F.EVF_PUBLIC_EVENT, !1);
3799
- return d ? (Ln(e, d.event_name, s), 0) : (sr(`${kt(e)}: event that no gclass declares public, DROPPED: ev '${Ui(i, Li)}'`), -1);
3855
+ return d ? (Ln(e, d.event_name, s), 0) : (sr(`${kt(e)}: event that no gclass declares public, DROPPED: ev '${Fi(i, Ui)}'`), -1);
3800
3856
  }
3801
- function Qi(e, t, n, r) {
3857
+ function es(e, t, n, r) {
3802
3858
  const o = n && "string" == typeof n[r] ? n[r] : "", l = n && "string" == typeof n.service ? n.service : "";
3803
- return sr(`${kt(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${Ui(o, Li)}', service '${Ui(l, Li)}'`), -1;
3859
+ return sr(`${kt(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${Fi(o, Ui)}', service '${Fi(l, Ui)}'`), -1;
3804
3860
  }
3805
- function Xi(e, t, n, r) {
3806
- return Qi(e, t, n, "__stats__");
3861
+ function ts(e, t, n, r) {
3862
+ return es(e, t, n, "__stats__");
3807
3863
  }
3808
- function Zi(e, t, n, r) {
3809
- return Qi(e, t, n, "__command__");
3864
+ function ns(e, t, n, r) {
3865
+ return es(e, t, n, "__command__");
3810
3866
  }
3811
- var es = {
3867
+ var rs = {
3812
3868
  mt_create: function(e) {
3813
3869
  let t = e.priv;
3814
3870
  t.gobj_timer = _t(Rt(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = tn(e, "url"), t.remote_yuno_name = tn(e, "remote_yuno_name"), t.remote_yuno_role = tn(e, "remote_yuno_role"), t.remote_yuno_service = tn(e, "remote_yuno_service"), _n(e, "wanted_yuno_name", t.remote_yuno_name), _n(e, "wanted_yuno_role", t.remote_yuno_role), _n(e, "wanted_yuno_service", t.remote_yuno_service);
@@ -3838,43 +3894,43 @@
3838
3894
  code: 1e3,
3839
3895
  reason: "restarted",
3840
3896
  was_clean: !0
3841
- }, e), pi(t.gobj_timer)), t.websocket = Ci(e), 0;
3897
+ }, e), mi(t.gobj_timer)), t.websocket = Ii(e), 0;
3842
3898
  },
3843
3899
  mt_stop: function(e) {
3844
3900
  let t = e.priv;
3845
- return pi(t.gobj_timer), t.websocket && Ii(e), 0;
3901
+ return mi(t.gobj_timer), t.websocket && Pi(e), 0;
3846
3902
  },
3847
3903
  mt_destroy: function(e) {},
3848
3904
  mt_stats: function(e, t, n, r) {
3849
3905
  if ("ST_SESSION" !== fn(e)) return ir("Not in session"), null;
3850
3906
  n || (n = {});
3851
- let o = Vi(e, Rt(r), fl(e, n, "service", null, 0)), l = bl(e, n, "__md_stats__", null, Un.KW_EXTRACT);
3852
- return l || (l = {}), Cl(e, n, "stats_stack", {
3907
+ let o = Wi(e, Rt(r), fl(e, n, "service", null, 0)), l = bl(e, n, "__md_stats__", null, Un.KW_EXTRACT);
3908
+ return l || (l = {}), Il(e, n, "stats_stack", {
3853
3909
  stats: t,
3854
3910
  kw: l
3855
- }), Cl(e, n, Ni, o), n.__stats__ = t, Pl(e, n, "__stats__"), Gi(e, "EV_MT_STATS", n, r), null;
3911
+ }), Il(e, n, $i, o), n.__stats__ = t, Ll(e, n, "__stats__"), Vi(e, "EV_MT_STATS", n, r), null;
3856
3912
  },
3857
3913
  mt_command_parser: function(e, t, n, r) {
3858
3914
  if ("ST_SESSION" !== fn(e)) return ir("Not in session"), null;
3859
3915
  n || (n = {});
3860
- let o = Vi(e, Rt(r), fl(e, n, "service", "", 0)), l = bl(e, n, "__md_command__", null, Un.KW_EXTRACT);
3861
- return l || (l = {}), Cl(e, n, "command_stack", {
3916
+ let o = Wi(e, Rt(r), fl(e, n, "service", "", 0)), l = bl(e, n, "__md_command__", null, Un.KW_EXTRACT);
3917
+ return l || (l = {}), Il(e, n, "command_stack", {
3862
3918
  command: t,
3863
3919
  kw: l
3864
- }), Cl(e, n, Ni, o), n.__command__ = t, Pl(e, n, "__command__"), Gi(e, "EV_MT_COMMAND", n, r), null;
3920
+ }), Il(e, n, $i, o), n.__command__ = t, Ll(e, n, "__command__"), Vi(e, "EV_MT_COMMAND", n, r), null;
3865
3921
  },
3866
3922
  mt_inject_event: function(e, t, n, r) {
3867
3923
  if ("ST_SESSION" !== fn(e)) return window.console.error("Not in session"), -1;
3868
- if (n = Do({}, Ko(n) ? n : {}), Ko(n.__md_iev__) && (n.__md_iev__ = Ao(n.__md_iev__)), Il(e, n, Ni));
3924
+ if (n = Do({}, Ko(n) ? n : {}), Ko(n.__md_iev__) && (n.__md_iev__ = Ao(n.__md_iev__)), Pl(e, n, $i));
3869
3925
  else {
3870
- let o = Vi(e, Rt(r), fl(e, n, "__service__", 0, 0));
3871
- Po(n, "__service__"), Cl(e, n, "__message__", t), Cl(e, n, Ni, o);
3926
+ let o = Wi(e, Rt(r), fl(e, n, "__service__", 0, 0));
3927
+ Po(n, "__service__"), Il(e, n, "__message__", t), Il(e, n, $i, o);
3872
3928
  }
3873
- return Pl(e, n, "__message__"), Gi(e, t, n, r);
3929
+ return Ll(e, n, "__message__"), Vi(e, t, n, r);
3874
3930
  },
3875
3931
  mt_subscription_added: function(e, t) {
3876
3932
  let n = e.priv;
3877
- return "ST_SESSION" === fn(e) && n.websocket ? n.inside_on_open ? 0 : xi(e, t) : 0;
3933
+ return "ST_SESSION" === fn(e) && n.websocket ? n.inside_on_open ? 0 : Ki(e, t) : 0;
3878
3934
  },
3879
3935
  mt_subscription_deleted: function(e, t) {
3880
3936
  let n = e.priv;
@@ -3883,7 +3939,7 @@
3883
3939
  if (Xo(t.event)) return 0;
3884
3940
  let r = {}, o = t.__global__, l = t.__config__, i = t.__filter__, s = t.__service__, a = t.subscriber;
3885
3941
  l && (r.__config__ = l), o && (r.__global__ = o), i && (r.__filter__ = i);
3886
- return Cl(e, r, Ni, Vi(e, Rt(a), s)), Pl(e, r, "__unsubscribing__"), Gi(e, t.event, r, e);
3942
+ return Il(e, r, $i, Wi(e, Rt(a), s)), Ll(e, r, "__unsubscribing__"), Vi(e, t.event, r, e);
3887
3943
  }
3888
3944
  };
3889
3945
  e.GObj = I, e.SDATA = k, e.SDATAAUTHZ = (e, t, n, r, o, l) => new R(e, t, n, null, l, r, null, 0, null, o, null), e.SDATACM = (e, t, n, r, o, l) => new R(e, t, 0, null, l, n, null, 0, o, r, null), e.SDATACM2 = (e, t, n, r, o, l, i) => new R(e, t, n, null, i, r, null, 0, l, o, null), e.SDATADF = (e, t, n, r, o, l) => new R(e, t, n, null, l, null, r, o), e.SDATAPM = (e, t, n, r, o) => new R(e, t, n, r, o), e.SDATAPM0 = (e, t, n, r, o) => new R(e, t, n, null, o, null, null, 0, null, null, r), e.SDATA_END = D, e.SDataDesc = R, e.YUNETA_VERSION = i, Object.defineProperty(e, "__yuno__", {
@@ -3897,7 +3953,7 @@
3897
3953
  return t;
3898
3954
  }, e.build_stats_response = l, e.clean_name = function(e) {
3899
3955
  return e.replace(/[?# ^:]/g, "_");
3900
- }, e.clear_timeout = pi, e.cmp_two_simple_json = nl, e.command_parameter_from_json = ke, e.command_parameter_from_text = function(e, t) {
3956
+ }, e.clear_timeout = mi, e.cmp_two_simple_json = nl, e.command_parameter_from_json = ke, e.command_parameter_from_text = function(e, t) {
3901
3957
  const n = De(e, t, !1);
3902
3958
  return void 0 !== n.value || n.refused || (n.refused = je), n;
3903
3959
  }, e.command_parser = function(e, t, n, r) {}, e.createElement2 = function e(t, n) {
@@ -3909,21 +3965,21 @@
3909
3965
  for (const n of Object.keys(o[e])) t += `${n}: ${o[e][n]};`;
3910
3966
  s.style.cssText = t;
3911
3967
  } else "style" === e ? s.style.cssText = o[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== o[e] && void 0 !== o[e] && (a = o[e], s.setAttribute("data-i18n", a)) : s.setAttribute(e, o[e]);
3912
- if (Wl(l)) s.appendChild(xl(l));
3913
- else if (Yo(l)) if (l = l.trim(), l.length > 0 && "<" === l[0] && !Kl) s.appendChild(Yl(l));
3968
+ if (xl(l)) s.appendChild(Kl(l));
3969
+ else if (Yo(l)) if (l = l.trim(), l.length > 0 && "<" === l[0] && !Bl) s.appendChild(Jl(l));
3914
3970
  else if (l.length > 0 && "<" === l[0] && function(e) {
3915
- if (Bl.size >= 100) return;
3971
+ if (Yl.size >= 100) return;
3916
3972
  const t = e.slice(0, 80);
3917
- Bl.has(t) || (Bl.add(t), sr(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
3973
+ Yl.has(t) || (Yl.add(t), sr(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
3918
3974
  }(l), n && a) s.textContent = n(a) || l;
3919
3975
  else s.textContent = l;
3920
3976
  else if (Bo(l)) {
3921
3977
  if (l.length > 0) if (Yo(l[0])) s.appendChild(e(l, n));
3922
- else for (let t of l) Array.isArray(t) ? t.length > 0 && s.appendChild(e(t, n)) : t instanceof Node ? s.appendChild(t) : Wl(t) ? s.appendChild(xl(t)) : Yo(t) ? s.appendChild(document.createTextNode(t)) : null != t && !1 !== t && ir("createElement2: child ignored, type " + typeof t);
3978
+ else for (let t of l) Array.isArray(t) ? t.length > 0 && s.appendChild(e(t, n)) : t instanceof Node ? s.appendChild(t) : xl(t) ? s.appendChild(Kl(t)) : Yo(t) ? s.appendChild(document.createTextNode(t)) : null != t && !1 !== t && ir("createElement2: child ignored, type " + typeof t);
3923
3979
  } else l instanceof HTMLElement || l instanceof Text || l instanceof SVGElement ? s.appendChild(l) : null != l && (ir("content ignored"), _r(l));
3924
3980
  if (i && "object" == typeof i) for (const e of Object.keys(i)) s.addEventListener(e, i[e]);
3925
3981
  return s;
3926
- }, e.createOneHtml = Yl, e.create_json_record = function(e, t) {
3982
+ }, e.createOneHtml = Jl, e.create_json_record = function(e, t) {
3927
3983
  let n = Ao(e);
3928
3984
  return ko(n, t), n;
3929
3985
  }, e.create_template_record = function(e, t) {
@@ -3934,21 +3990,21 @@
3934
3990
  let l = bl(null, t, e, o);
3935
3991
  Lo(n, e, l);
3936
3992
  }), n;
3937
- }, e.current_timestamp = Jl, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
3938
- let n = Ol(ni(e), null, !1), r = {};
3993
+ }, e.current_timestamp = Hl, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
3994
+ let n = Sl(ri(e), null, !1), r = {};
3939
3995
  return n && Ko(n) && (r = vl(e, n, t, !1)), r;
3940
3996
  }, e.db_load_persistent_attrs = function(e, t) {
3941
- let n = Xt(e, A.SDF_PERSIST), r = Ol(ni(e), null, !1);
3997
+ let n = Xt(e, A.SDF_PERSIST), r = Sl(ri(e), null, !1);
3942
3998
  if (r && Ko(r)) {
3943
3999
  let o = vl(e, r, t, !1);
3944
4000
  o = vl(e, o, n, !1), sn(e, o, A.SDF_PERSIST);
3945
4001
  }
3946
4002
  }, e.db_remove_persistent_attrs = function(e, t) {
3947
- let n = El(e, Ol(ni(e), null, !1), t, !1);
3948
- 0 === Vo(n) ? wl(ni(e)) : Sl(ni(e), n);
4003
+ let n = El(e, Sl(ri(e), null, !1), t, !1);
4004
+ 0 === Vo(n) ? Nl(ri(e)) : wl(ri(e), n);
3949
4005
  }, e.db_save_persistent_attrs = function(e, t) {
3950
- let n = vl(e, Xt(e, A.SDF_PERSIST), t, !1), r = Ol(ni(e), null, !1);
3951
- return r && Ko(r) && Co(n, r), Sl(ni(e), n);
4006
+ let n = vl(e, Xt(e, A.SDF_PERSIST), t, !1), r = Sl(ri(e), null, !1);
4007
+ return r && Ko(r) && Co(n, r), wl(ri(e), n);
3952
4008
  }, e.debounce = function(e, t = 0, n = !1) {
3953
4009
  let r = null, o = null, l = null;
3954
4010
  const i = (...i) => {
@@ -3972,20 +4028,20 @@
3972
4028
  return t;
3973
4029
  }, e.empty_json = function(e) {
3974
4030
  return 0 === xo(e);
3975
- }, e.empty_string = Xo, e.escapeHtml = Gl, e.event_flag_t = F, e.flat2json = function(e) {
4031
+ }, e.empty_string = Xo, e.escapeHtml = Vl, e.event_flag_t = F, e.flat2json = function(e) {
3976
4032
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
3977
4033
  let t = null;
3978
4034
  for (const n of Object.keys(e)) {
3979
- const r = ei(n);
4035
+ const r = ti(n);
3980
4036
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
3981
- if (r.length > Ql) throw new Error(`flat2json: '${n}' deeper than 256`);
4037
+ if (r.length > Xl) throw new Error(`flat2json: '${n}' deeper than 256`);
3982
4038
  const o = "number" == typeof r[0];
3983
4039
  if (null === t) t = o ? [] : {};
3984
4040
  else if (o !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
3985
4041
  let l = t;
3986
4042
  for (let t = 0; t < r.length; t++) {
3987
4043
  const o = r[t], i = "number" == typeof o, s = t === r.length - 1, a = !s && "number" == typeof r[t + 1];
3988
- if (i && o > Xl) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
4044
+ if (i && o > Zl) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
3989
4045
  if (i !== Array.isArray(l)) throw new Error(`flat2json: '${n}' uses a ${i ? "array index" : "key"} where the tree already has a ${Array.isArray(l) ? "array" : "object"}`);
3990
4046
  if (s) {
3991
4047
  if (Array.isArray(l)) {
@@ -4025,15 +4081,15 @@
4025
4081
  removed: {},
4026
4082
  changed: {}
4027
4083
  };
4028
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? ti(n[e], r[e]) || il(o.changed, e, {
4084
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? ni(n[e], r[e]) || il(o.changed, e, {
4029
4085
  from: n[e],
4030
4086
  to: r[e]
4031
4087
  }) : il(o.removed, e, n[e]);
4032
4088
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || il(o.added, e, r[e]);
4033
4089
  return o;
4034
4090
  }, e.flat_key_join = function(e) {
4035
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : Zl(e)).join("`") : "";
4036
- }, e.flat_key_split = ei, e.gclass_add_ev_action = qe, e.gclass_add_event_type = Qe, e.gclass_add_state = He, e.gclass_check_fsm = Ze, e.gclass_create = Ke, e.gclass_event_type = Xe, e.gclass_find_by_name = et, e.gclass_flag_t = P, e.gclass_unregister = Be, e.getPositionRelativeToBody = function(e) {
4091
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : ei(e)).join("`") : "";
4092
+ }, e.flat_key_split = ti, e.gclass_add_ev_action = qe, e.gclass_add_event_type = Qe, e.gclass_add_state = He, e.gclass_check_fsm = Ze, e.gclass_create = Ke, e.gclass_event_type = Xe, e.gclass_find_by_name = et, e.gclass_flag_t = P, e.gclass_unregister = Be, e.getPositionRelativeToBody = function(e) {
4037
4093
  if (!e) return {
4038
4094
  top: 0,
4039
4095
  left: 0,
@@ -4052,7 +4108,7 @@
4052
4108
  right: n + s + r,
4053
4109
  bottom: t + i + o
4054
4110
  };
4055
- }, e.get_function_name = zl, e.get_now = function() {
4111
+ }, e.get_function_name = Ql, e.get_now = function() {
4056
4112
  return Math.floor(Date.now() / 1e3);
4057
4113
  }, e.gobj_bottom_gobj = Ft, e.gobj_change_parent = function(e, t) {
4058
4114
  return Ut(e) ? (ir("gobj NULL or DESTROYED"), null) : t instanceof I ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && (lt(e.parent, e), e.parent = null), ot(t, e), t.gclass.gmt.mt_child_added && (ee(e) && ar(n("👦👦🔵 child_added(%s): %s", Ct(t), kt(e))), t.gclass.gmt.mt_child_added(t, e)), 0) : (ir(`${kt(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
@@ -4200,10 +4256,10 @@
4200
4256
  }
4201
4257
  return a ? sr(`${kt(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${a})`) : s || u || (sr(`${kt(e)}: No subscription found`), $o(n, "No subscription found")), 0;
4202
4258
  }, e.gobj_unsubscribe_list = Cn, e.gobj_walk_gobj_children = Vt, e.gobj_walk_gobj_children_tree = Wt, e.gobj_write_attr = rn, e.gobj_write_attrs = sn, e.gobj_write_bool_attr = an, e.gobj_write_integer_attr = un, e.gobj_write_str_attr = _n, e.gobj_yuno = wt, e.gobj_yuno_id = At, e.gobj_yuno_name = Nt, e.gobj_yuno_role = $t, e.html_markup = function(e) {
4203
- return "string" != typeof e ? (ir("html_markup: not a string, type " + typeof e), new Vl("")) : new Vl(e);
4204
- }, e.id_index_in_obj_list = Al, e.index_in_list = Hl, e.is_array = Bo, e.is_boolean = Ho, e.is_date = function(e) {
4259
+ return "string" != typeof e ? (ir("html_markup: not a string, type " + typeof e), new Wl("")) : new Wl(e);
4260
+ }, e.id_index_in_obj_list = Rl, e.index_in_list = ql, e.is_array = Bo, e.is_boolean = Ho, e.is_date = function(e) {
4205
4261
  return e instanceof Date && !isNaN(e);
4206
- }, e.is_function = zo, e.is_gobj = Qo, e.is_html_markup = Wl, e.is_metadata_key = function(e) {
4262
+ }, e.is_function = zo, e.is_gobj = Qo, e.is_html_markup = xl, e.is_metadata_key = function(e) {
4207
4263
  if (!Yo(e)) return !1;
4208
4264
  let t = 0;
4209
4265
  for (; t < e.length && "_" === e[t] && !(t > 2); t++);
@@ -4227,13 +4283,13 @@
4227
4283
  if (!Yo(n)) return ir(`jdb_delete: path must be a string: ${String(n)}`), null;
4228
4284
  if ("" !== n && n.split("`").includes("")) return ir(`jdb_delete: empty segment in path: '${n}'`), null;
4229
4285
  let l, i = n.split("`"), s = o;
4230
- for (; (l = i.shift()) && !Xo(l) && s;) Ko(s) && (s = bl(null, s, e.hook, null, 0)), s = Fl(s, null, l, !1);
4286
+ for (; (l = i.shift()) && !Xo(l) && s;) Ko(s) && (s = bl(null, s, e.hook, null, 0)), s = Ml(s, null, l, !1);
4231
4287
  if (!s || 0 !== i.length) return ir(`jdb_delete: path not found in topic '${t}': '${n}'`), null;
4232
- let a = Bo(s) ? s : bl(null, s, e.hook, null, 0), u = Al(a, r.id);
4288
+ let a = Bo(s) ? s : bl(null, s, e.hook, null, 0), u = Rl(a, r.id);
4233
4289
  return u < 0 ? (ir(`jdb_delete: record not found in topic '${t}': '${n}' '${r.id}'`), null) : (a.splice(u, 1), o);
4234
4290
  }, e.jdb_get = function(e, t, n, r) {
4235
4291
  let o = bl(null, bl(null, e, "topics", null, 0), t, null, 0);
4236
- return o ? (void 0 === r && (r = !0), Fl(o, e.hook, n, r)) : (ir("jdb_get: topic not found: " + t), null);
4292
+ return o ? (void 0 === r && (r = !0), Ml(o, e.hook, n, r)) : (ir("jdb_get: topic not found: " + t), null);
4237
4293
  }, e.jdb_get_by_idx = function(e, t, n) {
4238
4294
  let r = bl(null, bl(null, e, "topics", null, 0), t, null, 0);
4239
4295
  return r ? n < r.length ? r[n] : {} : (ir("jdb_get_by_idx: topic not found: " + t), null);
@@ -4246,7 +4302,7 @@
4246
4302
  let r = bl(null, e, "type", [], Un.KW_CREATE);
4247
4303
  fl(null, e, "hook", "data", Un.KW_CREATE);
4248
4304
  let o = bl(null, e, "schema", {}, Un.KW_CREATE), l = bl(null, e, "topics", {}, Un.KW_CREATE);
4249
- return Ul(o, function(e, t, n, o) {
4305
+ return Fl(o, function(e, t, n, o) {
4250
4306
  "__" === t.substring(0, 2) || Ko(n) || bl(null, l, o, Ao(r), Un.KW_CREATE);
4251
4307
  }, t), e;
4252
4308
  }, e.jdb_update = function(e, t, n, r) {
@@ -4256,7 +4312,7 @@
4256
4312
  if (!Yo(n)) return ir(`jdb_update: path must be a string: ${String(n)}`), null;
4257
4313
  if ("" !== n && n.split("`").includes("")) return ir(`jdb_update: empty segment in path: '${n}'`), null;
4258
4314
  let l, i, s = n.split("`"), a = o;
4259
- for (; (l = s.shift()) && !Xo(l) && a;) Ko(a) && (a = bl(null, a, e.hook, null, 0)), a = Fl(a, null, l, !1);
4315
+ for (; (l = s.shift()) && !Xo(l) && a;) Ko(a) && (a = bl(null, a, e.hook, null, 0)), a = Ml(a, null, l, !1);
4260
4316
  if (!a || 0 !== s.length) return ir(`jdb_update: path not found in topic '${t}': '${n}'`), null;
4261
4317
  if (Bo(a)) i = a;
4262
4318
  else {
@@ -4264,11 +4320,11 @@
4264
4320
  if (i = bl(null, a, e.hook, null, 0), null == i) i = [], Lo(a, e.hook, i);
4265
4321
  else if (!Bo(i)) return ir(`jdb_update: the hook '${e.hook}' of '${n}' is not a list in topic '${t}'`), null;
4266
4322
  }
4267
- let u = Fl(i, e.hook, r.id, !1);
4323
+ let u = Ml(i, e.hook, r.id, !1);
4268
4324
  return u ? Do(u, r) : i.push(r), o;
4269
4325
  }, e.json2flat = function(e) {
4270
4326
  const t = {}, n = (e, r, o) => {
4271
- if (o > Ql) throw new Error("json2flat: deeper than 256");
4327
+ if (o > Xl) throw new Error("json2flat: deeper than 256");
4272
4328
  if (null === e || "object" != typeof e || Array.isArray(e)) {
4273
4329
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
4274
4330
  const l = `[${t}]`;
@@ -4278,7 +4334,7 @@
4278
4334
  const t = Object.keys(e);
4279
4335
  if (t.length > 0) {
4280
4336
  for (const l of t) {
4281
- const t = Zl(l);
4337
+ const t = ei(l);
4282
4338
  n(e[l], 0 === o ? t : r + "`" + t, o + 1);
4283
4339
  }
4284
4340
  return;
@@ -4289,9 +4345,9 @@
4289
4345
  return null == e || n(e, "", 0), t;
4290
4346
  }, e.json_array_append = Fo, e.json_array_append_new = Mo, e.json_array_extend = function(e, t) {
4291
4347
  return t ? (Array.prototype.push.apply(e, t), e) : e;
4292
- }, e.json_array_remove = Go, e.json_array_size = Wo, e.json_deep_copy = Ao, e.json_is_identical = Ro, e.json_mask_secrets = No, e.json_object_del = Po, e.json_object_get = Io, e.json_object_set = Lo, e.json_object_set_new = Uo, e.json_object_size = Vo, e.json_object_update = Do, e.json_object_update_existing = ko, e.json_object_update_missing = Co, e.json_size = xo, e.jwt2json = function(e, t) {
4348
+ }, e.json_array_remove = Go, e.json_array_size = Wo, e.json_deep_copy = Ao, e.json_is_identical = Ro, e.json_mask_secrets = No, e.json_object_del = Po, e.json_object_get = Io, e.json_object_set = Lo, e.json_object_set_new = Uo, e.json_object_size = Vo, e.json_object_update = Do, e.json_object_update_existing = ko, e.json_object_update_missing = Co, e.json_size = xo, e.json_text_of = Fe, e.jwt2json = function(e, t) {
4293
4349
  try {
4294
- let n = Ml(e);
4350
+ let n = Gl(e);
4295
4351
  switch (t) {
4296
4352
  case "header": return JSON.parse(n.header);
4297
4353
  case "signature": return JSON.parse(n.signature);
@@ -4300,7 +4356,7 @@
4300
4356
  } catch (e) {
4301
4357
  return null;
4302
4358
  }
4303
- }, e.jwtDecode = Ml, e.kw_clone_by_keys = vl, e.kw_clone_by_not_keys = El, e.kw_collect = function(e, t, n, r) {
4359
+ }, e.jwtDecode = Gl, e.kw_clone_by_keys = vl, e.kw_clone_by_not_keys = El, e.kw_collect = function(e, t, n, r) {
4304
4360
  if (e && !Qo(e) && ir("GObj bad instanceof"), !t) return null;
4305
4361
  r || (r = yl);
4306
4362
  let o = [];
@@ -4322,7 +4378,7 @@
4322
4378
  let l = al(e, t, n, !1);
4323
4379
  const i = o && o & Un.KW_REQUIRED, s = o && o & Un.KW_CREATE, a = o && o & Un.KW_EXTRACT;
4324
4380
  return void 0 === l ? s && Bo(r) && t ? (pl(e, t, n, r), r) : (i && (ir(`path not found: '${n}'`), $o(t)), r) : Bo(l) ? (a && ul(e, t, n), l) : s && null === l && Bo(r) ? (pl(e, t, n, r), r) : s && null === l ? (i && (ir(`path not found: '${n}'`), $o(t)), r) : ((i || s) && (ir(`${e ? kt(e) + ": " : ""}path MUST BE a json list: '${n}'` + (s ? ", cannot create" : "")), $o(t)), r);
4325
- }, e.kw_get_local_storage_value = Ol, e.kw_get_pointer = gl, e.kw_get_real = function(e, t, n, r, o) {
4381
+ }, e.kw_get_local_storage_value = Sl, e.kw_get_pointer = gl, e.kw_get_real = function(e, t, n, r, o) {
4326
4382
  e && !Qo(e) && ir("GObj bad instanceof");
4327
4383
  let l = al(e, t, n, !1);
4328
4384
  const i = o && o & Un.KW_REQUIRED, s = o && o & Un.KW_CREATE, a = o && o & Un.KW_EXTRACT, u = o && o & Un.KW_WILD_NUMBER;
@@ -4345,7 +4401,7 @@
4345
4401
  }
4346
4402
  }
4347
4403
  return a && ul(e, t, n), _;
4348
- }, e.kw_get_str = fl, e.kw_has_key = ol, e.kw_match_simple = yl, e.kw_pop = rl, e.kw_remove_local_storage_value = wl, e.kw_select = function(e, t, n, r) {
4404
+ }, e.kw_get_str = fl, e.kw_has_key = ol, e.kw_match_simple = yl, e.kw_pop = rl, e.kw_remove_local_storage_value = Nl, e.kw_select = function(e, t, n, r) {
4349
4405
  if (e && !Qo(e) && ir("GObj bad instanceof"), !t) return null;
4350
4406
  r || (r = yl);
4351
4407
  let o = [];
@@ -4358,9 +4414,9 @@
4358
4414
  r(t, n) && o.push(Ao(t));
4359
4415
  }
4360
4416
  return o;
4361
- }, e.kw_set_dict_value = pl, e.kw_set_local_storage_value = Sl, e.kw_set_subdict_value = ml, e.kwid_collect = $l, e.kwid_find_one_record = function(e, t, n, r, o) {
4417
+ }, e.kw_set_dict_value = pl, e.kw_set_local_storage_value = wl, e.kw_set_subdict_value = ml, e.kwid_collect = Al, e.kwid_find_one_record = function(e, t, n, r, o) {
4362
4418
  e && !Qo(e) && ir("GObj bad instanceof");
4363
- let l = $l(e, t, n, r, o);
4419
+ let l = Al(e, t, n, r, o);
4364
4420
  return l && 0 !== l.length ? l[0] : null;
4365
4421
  }, e.kwid_get_ids = function(e, t) {
4366
4422
  if (e && !Qo(e) && ir("GObj bad instanceof"), !t) return [];
@@ -4375,7 +4431,7 @@
4375
4431
  }
4376
4432
  });
4377
4433
  return n;
4378
- }, e.kwid_match_id = Nl, e.kwid_new_dict = function(e, t, n) {
4434
+ }, e.kwid_match_id = $l, e.kwid_new_dict = function(e, t, n) {
4379
4435
  e && !Qo(e) && ir("GObj bad instanceof");
4380
4436
  let r = {};
4381
4437
  if (Xo(n) || (t = al(e, t, n)), Ko(t)) r = t;
@@ -4444,9 +4500,9 @@
4444
4500
  var e;
4445
4501
  }, r.send();
4446
4502
  }, e.log_debug = ar, e.log_error = ir, e.log_info = function(e, ...t) {
4447
- let n = nr(e, ...t), r = Jl();
4503
+ let n = nr(e, ...t), r = Hl();
4448
4504
  Vn && Hn("info", n) && rr(Vn, "%c" + r + " INFO: " + String(n), "color:cyan"), zn("info", n, r);
4449
- }, e.log_warning = sr, e.mask_secrets_inline = To, e.msg_iev_get_msg_type = Ll, e.msg_iev_get_stack = Il, e.msg_iev_push_stack = Cl, e.msg_iev_read_key = Dl, e.msg_iev_set_msg_type = Pl, e.msg_iev_write_key = kl, e.node_uuid = ql, e.parseBoolean = Zo, e.parseSVG = function(e) {
4505
+ }, e.log_warning = sr, e.mask_secrets_inline = To, e.msg_iev_get_msg_type = Ul, e.msg_iev_get_stack = Pl, e.msg_iev_push_stack = Il, e.msg_iev_read_key = kl, e.msg_iev_set_msg_type = Ll, e.msg_iev_write_key = Cl, e.node_uuid = zl, e.parseBoolean = Zo, e.parseSVG = function(e) {
4450
4506
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
4451
4507
  }, e.refresh_language = function(e, t) {
4452
4508
  if (!zo(t)) return void ir("You must supply a translation function");
@@ -4473,22 +4529,22 @@
4473
4529
  });
4474
4530
  }, e.register_c_ievent_cli = function() {
4475
4531
  return function(e) {
4476
- if (ki) return ir(`GClass ALREADY created: ${e}`), -1;
4532
+ if (Ci) return ir(`GClass ALREADY created: ${e}`), -1;
4477
4533
  const t = [
4478
4534
  ["ST_DISCONNECTED", [
4479
4535
  [
4480
4536
  "EV_ON_OPEN",
4481
- Bi,
4537
+ Yi,
4482
4538
  "ST_WAIT_IDENTITY_CARD_ACK"
4483
4539
  ],
4484
4540
  [
4485
4541
  "EV_ON_CLOSE",
4486
- Yi,
4542
+ Ji,
4487
4543
  null
4488
4544
  ],
4489
4545
  [
4490
4546
  "EV_TIMEOUT",
4491
- Ki,
4547
+ Bi,
4492
4548
  null
4493
4549
  ],
4494
4550
  [
@@ -4500,22 +4556,22 @@
4500
4556
  ["ST_WAIT_IDENTITY_CARD_ACK", [
4501
4557
  [
4502
4558
  "EV_ON_MESSAGE",
4503
- zi,
4559
+ Zi,
4504
4560
  null
4505
4561
  ],
4506
4562
  [
4507
4563
  "EV_IDENTITY_CARD_ACK",
4508
- qi,
4564
+ Xi,
4509
4565
  null
4510
4566
  ],
4511
4567
  [
4512
4568
  "EV_ON_CLOSE",
4513
- Yi,
4569
+ Ji,
4514
4570
  "ST_DISCONNECTED"
4515
4571
  ],
4516
4572
  [
4517
4573
  "EV_TIMEOUT",
4518
- Hi,
4574
+ Qi,
4519
4575
  null
4520
4576
  ],
4521
4577
  [
@@ -4527,22 +4583,22 @@
4527
4583
  ["ST_SESSION", [
4528
4584
  [
4529
4585
  "EV_ON_MESSAGE",
4530
- zi,
4586
+ Zi,
4531
4587
  null
4532
4588
  ],
4533
4589
  [
4534
4590
  "EV_MT_STATS",
4535
- Xi,
4591
+ ts,
4536
4592
  null
4537
4593
  ],
4538
4594
  [
4539
4595
  "EV_MT_COMMAND",
4540
- Zi,
4596
+ ns,
4541
4597
  null
4542
4598
  ],
4543
4599
  [
4544
4600
  "EV_ON_CLOSE",
4545
- Yi,
4601
+ Ji,
4546
4602
  "ST_DISCONNECTED"
4547
4603
  ],
4548
4604
  [
@@ -4553,7 +4609,7 @@
4553
4609
  ]],
4554
4610
  [null, null]
4555
4611
  ];
4556
- return (ki = Ke(e, [
4612
+ return (Ci = Ke(e, [
4557
4613
  ["EV_ON_MESSAGE", F.EVF_OUTPUT_EVENT],
4558
4614
  ["EV_IDENTITY_CARD_ACK", F.EVF_PUBLIC_EVENT],
4559
4615
  ["EV_ON_ID_NAK", F.EVF_OUTPUT_EVENT],
@@ -4564,36 +4620,36 @@
4564
4620
  ["EV_ON_OPEN_ERROR", F.EVF_OUTPUT_EVENT | F.EVF_NO_WARN_SUBS],
4565
4621
  ["EV_TIMEOUT", 0],
4566
4622
  [null, 0]
4567
- ], t, es, 0, $i, Di, 0, 0, Ai, P.gcflag_no_check_output_events)) ? 0 : -1;
4623
+ ], t, rs, 0, Ai, ki, 0, 0, Ri, P.gcflag_no_check_output_events)) ? 0 : -1;
4568
4624
  }("C_IEVENT_CLI");
4569
4625
  }, e.register_c_timer = function() {
4570
4626
  return function(e) {
4571
- if (_i) return ir(`GClass ALREADY created: ${e}`), -1;
4627
+ if (ci) return ir(`GClass ALREADY created: ${e}`), -1;
4572
4628
  const t = [["ST_IDLE", [[
4573
4629
  "EV_TIMEOUT",
4574
- ci,
4630
+ fi,
4575
4631
  null
4576
4632
  ]]]];
4577
- return (_i = Ke(e, [
4633
+ return (ci = Ke(e, [
4578
4634
  ["EV_TIMEOUT", F.EVF_OUTPUT_EVENT],
4579
4635
  ["EV_TIMEOUT_PERIODIC", F.EVF_OUTPUT_EVENT],
4580
4636
  [0, 0]
4581
- ], t, fi, 0, ai, ui, 0, 0, 0, P.gcflag_manual_start)) ? 0 : -1;
4637
+ ], t, gi, 0, ui, _i, 0, 0, 0, P.gcflag_manual_start)) ? 0 : -1;
4582
4638
  }("C_TIMER");
4583
4639
  }, e.register_c_yuno = function() {
4584
4640
  return function(e) {
4585
- if (yi) return ir(`GClass ALREADY created: ${e}`), -1;
4641
+ if (vi) return ir(`GClass ALREADY created: ${e}`), -1;
4586
4642
  const t = [["ST_IDLE", [[
4587
4643
  "EV_TIMEOUT_PERIODIC",
4588
- Si,
4644
+ wi,
4589
4645
  null
4590
4646
  ]]]];
4591
- return (yi = Ke(e, [["EV_TIMEOUT_PERIODIC", F.EVF_OUTPUT_EVENT | F.EVF_NO_WARN_SUBS], [0, 0]], t, wi, 0, mi, hi, 0, 0, 0, 0)) ? 0 : -1;
4647
+ return (vi = Ke(e, [["EV_TIMEOUT_PERIODIC", F.EVF_OUTPUT_EVENT | F.EVF_NO_WARN_SUBS], [0, 0]], t, Ni, 0, hi, yi, 0, 0, 0, 0)) ? 0 : -1;
4592
4648
  }("C_YUNO");
4593
4649
  }, e.safeSrc = function(e) {
4594
4650
  if (!e) return "";
4595
4651
  const t = String(e).trim();
4596
- return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Gl(t);
4652
+ return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Vl(t);
4597
4653
  }, e.sdata_flag_t = A, e.send_http_json_post = function(e, t, n) {
4598
4654
  let r = new XMLHttpRequest();
4599
4655
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
@@ -4617,16 +4673,16 @@
4617
4673
  }
4618
4674
  } else xn = e;
4619
4675
  }, e.set_remote_log_functions = Xn, e.set_strings_are_text = function(e) {
4620
- Kl = !!e;
4621
- }, e.set_timeout = di, e.set_timeout_periodic = bi, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Rl, e.strcasecmp = tl, e.strcmp = el, e.strings_are_text = function() {
4622
- return Kl;
4676
+ Bl = !!e;
4677
+ }, e.set_timeout = bi, e.set_timeout_periodic = pi, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Dl, e.strcasecmp = tl, e.strcmp = el, e.strings_are_text = function() {
4678
+ return Bl;
4623
4679
  }, e.strncmp = function(e, t, n) {
4624
4680
  var r = (e + "").substring(0, n), o = (t + "").substring(0, n);
4625
4681
  return r === o ? 0 : r > o ? 1 : -1;
4626
4682
  }, e.strs_in_list = function(e, t, n) {
4627
4683
  if (!e) return ir("ERROR: strs_in_list() list empty"), !1;
4628
4684
  if (!t) return ir("ERROR: strs_in_list() str empty"), !1;
4629
- for (let r = 0; r < t.length; r++) if (Rl(e, t[r], n)) return !0;
4685
+ for (let r = 0; r < t.length; r++) if (Dl(e, t[r], n)) return !0;
4630
4686
  return !1;
4631
4687
  }, e.strstr = function(e, t, n) {
4632
4688
  var r;
@@ -4649,9 +4705,9 @@
4649
4705
  let e = t.split(".");
4650
4706
  for (let t = 0; t < e.length; t++) {
4651
4707
  let r = e[t];
4652
- if (Rl(oi, r)) n.real_type || (n.real_type = r);
4653
- else if (Rl(ii, r)) n.type || (n.type = r);
4654
- else if (Rl(li, r)) switch (r) {
4708
+ if (Dl(li, r)) n.real_type || (n.real_type = r);
4709
+ else if (Dl(si, r)) n.type || (n.type = r);
4710
+ else if (Dl(ii, r)) switch (r) {
4655
4711
  case "writable":
4656
4712
  n.is_writable = !0;
4657
4713
  break;
@@ -4663,7 +4719,7 @@
4663
4719
  }
4664
4720
  }
4665
4721
  n.real_type || (n.real_type = "string");
4666
- } else Ko(t) ? (n = si(t), n.name || (n.name = e), n.header || (n.header = e)) : Bo(t) && (n.real_type = "array", n.enum_list = t);
4722
+ } else Ko(t) ? (n = ai(t), n.name || (n.name = e), n.header || (n.header = e)) : Bo(t) && (n.real_type = "array", n.enum_list = t);
4667
4723
  return n.type || (n.type = n.real_type), n;
4668
4724
  }, e.timeTracker = function(e = "Time Tracker", t = !1) {
4669
4725
  const n = e, r = performance.now();
@@ -4675,7 +4731,7 @@
4675
4731
  total: a
4676
4732
  };
4677
4733
  } };
4678
- }, e.trace_json = _r, e.trace_json_masked = $o, e.trace_level_t = B, e.trace_msg = ur, e.treedb_decoder_fkey = ri, e.treedb_decoder_hook = function(e, t) {
4734
+ }, e.trace_json = _r, e.trace_json_masked = $o, e.trace_level_t = B, e.trace_msg = ur, e.treedb_decoder_fkey = oi, e.treedb_decoder_hook = function(e, t) {
4679
4735
  if (Yo(t)) {
4680
4736
  if (-1 === t.indexOf("^")) {
4681
4737
  let n, r = e.hook;
@@ -4702,9 +4758,9 @@
4702
4758
  id: t.id
4703
4759
  } : (ir("bad hook 3"), ir(e), ir(t), null);
4704
4760
  }, e.treedb_encoder_fkey = function(e, t) {
4705
- let n = ri(e, t);
4761
+ let n = oi(e, t);
4706
4762
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
4707
- }, e.treedb_get_field_desc = si, e.treedb_hook_data_size = function(e) {
4763
+ }, e.treedb_get_field_desc = ai, e.treedb_hook_data_size = function(e) {
4708
4764
  if (Bo(e) && 1 === xo(e)) {
4709
4765
  let t = e[0];
4710
4766
  return ol(t, "size") ? t.size : 1;