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