@enegelai/bot-widget 1.16.6 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/enegelaibot.umd.js +216 -216
- package/dist/index.es.js +629 -619
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { css as J, LitElement as Fe, html as u, nothing as Ae, svg as pe } from "lit";
|
|
2
|
-
import { property as x, customElement as Z, query as xe, state as
|
|
2
|
+
import { property as x, customElement as Z, query as xe, state as Va, queryAll as Na, eventOptions as na } from "lit/decorators.js";
|
|
3
3
|
import { when as W } from "lit/directives/when.js";
|
|
4
4
|
import { unsafeHTML as G } from "lit-html/directives/unsafe-html.js";
|
|
5
|
-
import { registerIconLibrary as
|
|
5
|
+
import { registerIconLibrary as qi } from "@shoelace-style/shoelace";
|
|
6
6
|
import "@shoelace-style/shoelace/dist/components/button/button.js";
|
|
7
7
|
import "@shoelace-style/shoelace/dist/components/avatar/avatar.js";
|
|
8
8
|
import "@shoelace-style/shoelace/dist/components/input/input.js";
|
|
@@ -23,13 +23,13 @@ import "@shoelace-style/shoelace/dist/components/progress-bar/progress-bar.js";
|
|
|
23
23
|
import "@shoelace-style/shoelace/dist/components/badge/badge.js";
|
|
24
24
|
import { repeat as et } from "lit/directives/repeat.js";
|
|
25
25
|
import { until as Pt } from "lit-html/directives/until.js";
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
import
|
|
26
|
+
import Di from "markdown-it";
|
|
27
|
+
import Fi from "markdown-it-link-attributes";
|
|
28
|
+
import Wt from "highlight.js";
|
|
29
29
|
import "@shoelace-style/shoelace/dist/components/popup/popup.js";
|
|
30
30
|
import "@shoelace-style/shoelace/dist/components/rating/rating.js";
|
|
31
|
-
import { createRef as
|
|
32
|
-
function
|
|
31
|
+
import { createRef as ji, ref as At } from "lit/directives/ref.js";
|
|
32
|
+
function Ua(a) {
|
|
33
33
|
return typeof a == "function" ? a() : a;
|
|
34
34
|
}
|
|
35
35
|
const Ht = class Ht extends Event {
|
|
@@ -45,7 +45,7 @@ const Ht = class Ht extends Event {
|
|
|
45
45
|
};
|
|
46
46
|
Ht.eventName = "lit-state-changed";
|
|
47
47
|
let at = Ht;
|
|
48
|
-
const
|
|
48
|
+
const Hi = (a, e) => e !== a && (e === e || a === a), ba = class ba extends EventTarget {
|
|
49
49
|
static initPropertyMap() {
|
|
50
50
|
this.propertyMap || (this.propertyMap = /* @__PURE__ */ new Map());
|
|
51
51
|
}
|
|
@@ -58,7 +58,7 @@ const ji = (a, e) => e !== a && (e === e || a === a), ha = class ha extends Even
|
|
|
58
58
|
constructor() {
|
|
59
59
|
super(), this.hookMap = /* @__PURE__ */ new Map(), this.constructor.finalize(), this.propertyMap && [...this.propertyMap].forEach(([e, t]) => {
|
|
60
60
|
if (t.initialValue !== void 0) {
|
|
61
|
-
const i =
|
|
61
|
+
const i = Ua(t.initialValue);
|
|
62
62
|
this[e] = i, t.value = i;
|
|
63
63
|
}
|
|
64
64
|
});
|
|
@@ -78,7 +78,7 @@ const ji = (a, e) => e !== a && (e === e || a === a), ha = class ha extends Even
|
|
|
78
78
|
Object.defineProperty(this.prototype, e, s);
|
|
79
79
|
}
|
|
80
80
|
static getPropertyDescriptor(e, t, i) {
|
|
81
|
-
const s = i?.hasChanged ||
|
|
81
|
+
const s = i?.hasChanged || Hi;
|
|
82
82
|
return {
|
|
83
83
|
get() {
|
|
84
84
|
return this[t];
|
|
@@ -119,8 +119,8 @@ const ji = (a, e) => e !== a && (e === e || a === a), ha = class ha extends Even
|
|
|
119
119
|
this.dispatchEvent(new at(e, t, i));
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
|
-
|
|
123
|
-
let
|
|
122
|
+
ba.finalized = !1;
|
|
123
|
+
let Jt = ba;
|
|
124
124
|
class it {
|
|
125
125
|
constructor(e, t, i) {
|
|
126
126
|
this.host = e, this.state = t, this.callback = i || (() => this.host.requestUpdate()), this.host.addController(this);
|
|
@@ -146,7 +146,7 @@ function z(a) {
|
|
|
146
146
|
}), i.createProperty(t, a), s ? Object.getOwnPropertyDescriptor(e, t) : void 0;
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
|
-
function
|
|
149
|
+
function Vi(a, e) {
|
|
150
150
|
if (a !== null && (e === Boolean || e === Number || e === Array || e === Object))
|
|
151
151
|
try {
|
|
152
152
|
a = JSON.parse(a);
|
|
@@ -156,18 +156,18 @@ function Hi(a, e) {
|
|
|
156
156
|
return a;
|
|
157
157
|
}
|
|
158
158
|
new URL(location.href);
|
|
159
|
-
const
|
|
159
|
+
const Ni = {
|
|
160
160
|
prefix: "_ls"
|
|
161
161
|
};
|
|
162
162
|
function ce(a) {
|
|
163
|
-
return a = { ...
|
|
163
|
+
return a = { ...Ni, ...a }, (e, t) => {
|
|
164
164
|
const i = Object.getOwnPropertyDescriptor(e, t);
|
|
165
165
|
if (!i)
|
|
166
166
|
throw new Error("@local-storage decorator need to be called after @property");
|
|
167
167
|
const s = `${a?.prefix || ""}_${a?.key || String(t)}`, r = e.constructor, o = r.propertyMap.get(t), f = o?.type;
|
|
168
168
|
if (o) {
|
|
169
169
|
const w = o.initialValue;
|
|
170
|
-
o.initialValue = () =>
|
|
170
|
+
o.initialValue = () => Vi(localStorage.getItem(s), f) ?? Ua(w), r.propertyMap.set(t, { ...o, ...a });
|
|
171
171
|
}
|
|
172
172
|
const p = i?.set, k = {
|
|
173
173
|
...i,
|
|
@@ -178,15 +178,15 @@ function ce(a) {
|
|
|
178
178
|
Object.defineProperty(r.prototype, t, k);
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function Wa(a) {
|
|
182
182
|
return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
|
|
183
183
|
}
|
|
184
|
-
var Lt = { exports: {} },
|
|
185
|
-
function
|
|
186
|
-
return
|
|
184
|
+
var Lt = { exports: {} }, Ui = Lt.exports, _a;
|
|
185
|
+
function Wi() {
|
|
186
|
+
return _a || (_a = 1, (function(a) {
|
|
187
187
|
(function(e, t) {
|
|
188
188
|
a.exports ? a.exports = t() : e.log = t();
|
|
189
|
-
})(
|
|
189
|
+
})(Ui, function() {
|
|
190
190
|
var e = function() {
|
|
191
191
|
}, t = "undefined", i = typeof window !== t && typeof window.navigator !== t && /Trident\/|MSIE /.test(window.navigator.userAgent), s = [
|
|
192
192
|
"trace",
|
|
@@ -232,36 +232,36 @@ function Ui() {
|
|
|
232
232
|
function P(M, L) {
|
|
233
233
|
var C = this, K, U, X, te = "loglevel";
|
|
234
234
|
typeof M == "string" ? te += ":" + M : typeof M == "symbol" && (te = void 0);
|
|
235
|
-
function He(
|
|
236
|
-
var
|
|
235
|
+
function He(H) {
|
|
236
|
+
var N = (s[H] || "silent").toUpperCase();
|
|
237
237
|
if (!(typeof window === t || !te)) {
|
|
238
238
|
try {
|
|
239
|
-
window.localStorage[te] =
|
|
239
|
+
window.localStorage[te] = N;
|
|
240
240
|
return;
|
|
241
241
|
} catch {
|
|
242
242
|
}
|
|
243
243
|
try {
|
|
244
|
-
window.document.cookie = encodeURIComponent(te) + "=" +
|
|
244
|
+
window.document.cookie = encodeURIComponent(te) + "=" + N + ";";
|
|
245
245
|
} catch {
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
function ae() {
|
|
250
|
-
var
|
|
250
|
+
var H;
|
|
251
251
|
if (!(typeof window === t || !te)) {
|
|
252
252
|
try {
|
|
253
|
-
|
|
253
|
+
H = window.localStorage[te];
|
|
254
254
|
} catch {
|
|
255
255
|
}
|
|
256
|
-
if (typeof
|
|
256
|
+
if (typeof H === t)
|
|
257
257
|
try {
|
|
258
|
-
var
|
|
259
|
-
Pe !== -1 && (
|
|
260
|
-
|
|
258
|
+
var N = window.document.cookie, $e = encodeURIComponent(te), Pe = N.indexOf($e + "=");
|
|
259
|
+
Pe !== -1 && (H = /^([^;]+)/.exec(
|
|
260
|
+
N.slice(Pe + $e.length + 1)
|
|
261
261
|
)[1]);
|
|
262
262
|
} catch {
|
|
263
263
|
}
|
|
264
|
-
return C.levels[
|
|
264
|
+
return C.levels[H] === void 0 && (H = void 0), H;
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
function he() {
|
|
@@ -276,11 +276,11 @@ function Ui() {
|
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
function ge(
|
|
280
|
-
var
|
|
281
|
-
if (typeof
|
|
282
|
-
return
|
|
283
|
-
throw new TypeError("log.setLevel() called with invalid level: " +
|
|
279
|
+
function ge(H) {
|
|
280
|
+
var N = H;
|
|
281
|
+
if (typeof N == "string" && C.levels[N.toUpperCase()] !== void 0 && (N = C.levels[N.toUpperCase()]), typeof N == "number" && N >= 0 && N <= C.levels.SILENT)
|
|
282
|
+
return N;
|
|
283
|
+
throw new TypeError("log.setLevel() called with invalid level: " + H);
|
|
284
284
|
}
|
|
285
285
|
C.name = M, C.levels = {
|
|
286
286
|
TRACE: 0,
|
|
@@ -291,25 +291,25 @@ function Ui() {
|
|
|
291
291
|
SILENT: 5
|
|
292
292
|
}, C.methodFactory = L || _, C.getLevel = function() {
|
|
293
293
|
return X ?? U ?? K;
|
|
294
|
-
}, C.setLevel = function(
|
|
295
|
-
return X = ge(
|
|
296
|
-
}, C.setDefaultLevel = function(
|
|
297
|
-
U = ge(
|
|
294
|
+
}, C.setLevel = function(H, N) {
|
|
295
|
+
return X = ge(H), N !== !1 && He(X), k.call(C);
|
|
296
|
+
}, C.setDefaultLevel = function(H) {
|
|
297
|
+
U = ge(H), ae() || C.setLevel(H, !1);
|
|
298
298
|
}, C.resetLevel = function() {
|
|
299
299
|
X = null, he(), k.call(C);
|
|
300
|
-
}, C.enableAll = function(
|
|
301
|
-
C.setLevel(C.levels.TRACE,
|
|
302
|
-
}, C.disableAll = function(
|
|
303
|
-
C.setLevel(C.levels.SILENT,
|
|
300
|
+
}, C.enableAll = function(H) {
|
|
301
|
+
C.setLevel(C.levels.TRACE, H);
|
|
302
|
+
}, C.disableAll = function(H) {
|
|
303
|
+
C.setLevel(C.levels.SILENT, H);
|
|
304
304
|
}, C.rebuild = function() {
|
|
305
305
|
if (o !== C && (K = ge(o.getLevel())), k.call(C), o === C)
|
|
306
|
-
for (var
|
|
307
|
-
r[
|
|
306
|
+
for (var H in r)
|
|
307
|
+
r[H].rebuild();
|
|
308
308
|
}, K = ge(
|
|
309
309
|
o ? o.getLevel() : "WARN"
|
|
310
310
|
);
|
|
311
|
-
var
|
|
312
|
-
|
|
311
|
+
var j = ae();
|
|
312
|
+
j != null && (X = ge(j)), k.call(C);
|
|
313
313
|
}
|
|
314
314
|
o = new P(), o.getLogger = function(L) {
|
|
315
315
|
if (typeof L != "symbol" && typeof L != "string" || L === "")
|
|
@@ -329,8 +329,8 @@ function Ui() {
|
|
|
329
329
|
});
|
|
330
330
|
})(Lt)), Lt.exports;
|
|
331
331
|
}
|
|
332
|
-
var
|
|
333
|
-
const Je = /* @__PURE__ */
|
|
332
|
+
var Gi = Wi();
|
|
333
|
+
const Je = /* @__PURE__ */ Wa(Gi), Xi = J`
|
|
334
334
|
:host {
|
|
335
335
|
--enegelai-bot-width: 420px;
|
|
336
336
|
--enegelai-bot-base-font-size: 16px;
|
|
@@ -638,7 +638,7 @@ const Je = /* @__PURE__ */ Ua(Wi), Gi = J`
|
|
|
638
638
|
}
|
|
639
639
|
|
|
640
640
|
|
|
641
|
-
`,
|
|
641
|
+
`, Ga = J`
|
|
642
642
|
${ke}
|
|
643
643
|
|
|
644
644
|
:host {
|
|
@@ -663,10 +663,10 @@ const Je = /* @__PURE__ */ Ua(Wi), Gi = J`
|
|
|
663
663
|
color: white;
|
|
664
664
|
}
|
|
665
665
|
`;
|
|
666
|
-
var
|
|
667
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
666
|
+
var Yi = Object.defineProperty, Ji = Object.getOwnPropertyDescriptor, ra = (a, e, t, i) => {
|
|
667
|
+
for (var s = i > 1 ? void 0 : i ? Ji(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
668
668
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
669
|
-
return i && s &&
|
|
669
|
+
return i && s && Yi(e, t, s), s;
|
|
670
670
|
};
|
|
671
671
|
let ut = class extends Fe {
|
|
672
672
|
constructor() {
|
|
@@ -676,17 +676,17 @@ let ut = class extends Fe {
|
|
|
676
676
|
return u`<span class="cb-icon" part="base">${G(this.svg)}</span>`;
|
|
677
677
|
}
|
|
678
678
|
};
|
|
679
|
-
ut.styles =
|
|
680
|
-
|
|
679
|
+
ut.styles = Ga;
|
|
680
|
+
ra([
|
|
681
681
|
x({ type: String })
|
|
682
682
|
], ut.prototype, "color", 2);
|
|
683
|
-
|
|
683
|
+
ra([
|
|
684
684
|
x({ type: String })
|
|
685
685
|
], ut.prototype, "svg", 2);
|
|
686
|
-
ut =
|
|
686
|
+
ut = ra([
|
|
687
687
|
Z("cb-icon")
|
|
688
688
|
], ut);
|
|
689
|
-
let
|
|
689
|
+
let Zi = (a) => crypto.getRandomValues(new Uint8Array(a)), Ki = (a, e, t) => {
|
|
690
690
|
let i = (2 << Math.log2(a.length - 1)) - 1, s = -~(1.6 * i * e / a.length);
|
|
691
691
|
return (r = e) => {
|
|
692
692
|
let o = "";
|
|
@@ -696,12 +696,12 @@ let Ji = (a) => crypto.getRandomValues(new Uint8Array(a)), Zi = (a, e, t) => {
|
|
|
696
696
|
if (o += a[f[p] & i] || "", o.length >= r) return o;
|
|
697
697
|
}
|
|
698
698
|
};
|
|
699
|
-
},
|
|
700
|
-
const
|
|
699
|
+
}, Qi = (a, e = 21) => Ki(a, e | 0, Zi);
|
|
700
|
+
const es = Qi("1234567890abcdefghijklmnopqrstuvwxyz", 10);
|
|
701
701
|
function fe(a = 10) {
|
|
702
|
-
return
|
|
702
|
+
return es(a);
|
|
703
703
|
}
|
|
704
|
-
function
|
|
704
|
+
function ts(a) {
|
|
705
705
|
return new Promise((e, t) => {
|
|
706
706
|
try {
|
|
707
707
|
navigator.clipboard.writeText(a).then(() => {
|
|
@@ -712,7 +712,7 @@ function es(a) {
|
|
|
712
712
|
}
|
|
713
713
|
});
|
|
714
714
|
}
|
|
715
|
-
function
|
|
715
|
+
function Xa(a = !0, e = null) {
|
|
716
716
|
return new Promise((t) => {
|
|
717
717
|
const i = document.createElement("input");
|
|
718
718
|
i.type = "file", a && (i.multiple = !0), i.accept = e || ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3", i.style.display = "none", i.addEventListener("change", () => {
|
|
@@ -721,10 +721,16 @@ function Ga(a = !0, e = null) {
|
|
|
721
721
|
}), i.click();
|
|
722
722
|
});
|
|
723
723
|
}
|
|
724
|
+
function Vt(a) {
|
|
725
|
+
if (!a || typeof a != "string")
|
|
726
|
+
return "";
|
|
727
|
+
let e = a.replace(/&(?!lt;|gt;)/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
728
|
+
return e = e.replace(/<br\s*\/?>/gi, "<br>"), e;
|
|
729
|
+
}
|
|
724
730
|
const se = Je.noConflict();
|
|
725
731
|
se.setLevel("info");
|
|
726
|
-
const
|
|
727
|
-
class
|
|
732
|
+
const Sa = 3e4;
|
|
733
|
+
class as {
|
|
728
734
|
constructor(e = {}) {
|
|
729
735
|
this.id = 0, this.url = e?.url || null, this.orgId = e?.orgId || null, this.botId = e?.botId || null, this.convId = e?.convId || null, this._options = e || {}, this._ws = null, this.started = !1, this.connected = !1, this.connecting = !1, this.suspendDetected = !1, this.onMessage = e?.onMessage || null, this.onConnecting = e?.onConnecting || null, this.onConnectError = e?.onConnectError || null, this.onClose = e?.onClose || null, this.queue = e?.queue || [], this.pause = (t) => new Promise((i) => setTimeout(i, t)), this.lastTickTs = 0, this.lastAckTs = 0, this.tickInterval = null, se.info(`WSC: Created, url: ${this.url}`);
|
|
730
736
|
}
|
|
@@ -792,7 +798,7 @@ class ts {
|
|
|
792
798
|
async start() {
|
|
793
799
|
this.started = !0, this.connect(), this.lastTickTs = Date.now(), this.tickInterval = setInterval(() => {
|
|
794
800
|
this.tick();
|
|
795
|
-
},
|
|
801
|
+
}, Sa);
|
|
796
802
|
}
|
|
797
803
|
async stop() {
|
|
798
804
|
this.started = !1, this.disconnect(), this.tickInterval && (clearInterval(this.tickInterval), this.tickInterval = null);
|
|
@@ -835,7 +841,7 @@ class ts {
|
|
|
835
841
|
const e = Date.now();
|
|
836
842
|
let t = !1;
|
|
837
843
|
const i = e - this.lastAckTs;
|
|
838
|
-
i >
|
|
844
|
+
i > Sa + 5e3 && (t = !0, se.info(`WSC: checkConnection: connection loss detected - last ack delay ${i} msec, reconnecting`)), t && this.disconnect();
|
|
839
845
|
}
|
|
840
846
|
sendMessage(e) {
|
|
841
847
|
if (this.checkConnection(), !this.connected) {
|
|
@@ -885,7 +891,7 @@ class ts {
|
|
|
885
891
|
});
|
|
886
892
|
}*/
|
|
887
893
|
}
|
|
888
|
-
class
|
|
894
|
+
class is {
|
|
889
895
|
constructor(e = {}) {
|
|
890
896
|
this.name = e.name || "EventEmitter", this.events = {};
|
|
891
897
|
}
|
|
@@ -1019,7 +1025,7 @@ class Ze {
|
|
|
1019
1025
|
}
|
|
1020
1026
|
}
|
|
1021
1027
|
globalThis.WavPacker = Ze;
|
|
1022
|
-
const
|
|
1028
|
+
const Ca = [
|
|
1023
1029
|
4186.01,
|
|
1024
1030
|
4434.92,
|
|
1025
1031
|
4698.63,
|
|
@@ -1032,7 +1038,7 @@ const Sa = [
|
|
|
1032
1038
|
7040,
|
|
1033
1039
|
7458.62,
|
|
1034
1040
|
7902.13
|
|
1035
|
-
],
|
|
1041
|
+
], ss = [
|
|
1036
1042
|
"C",
|
|
1037
1043
|
"C#",
|
|
1038
1044
|
"D",
|
|
@@ -1045,13 +1051,13 @@ const Sa = [
|
|
|
1045
1051
|
"A",
|
|
1046
1052
|
"A#",
|
|
1047
1053
|
"B"
|
|
1048
|
-
], We = [],
|
|
1054
|
+
], We = [], oa = [];
|
|
1049
1055
|
for (let a = 1; a <= 8; a++)
|
|
1050
|
-
for (let e = 0; e <
|
|
1051
|
-
const t =
|
|
1052
|
-
We.push(t / Math.pow(2, 8 - a)),
|
|
1056
|
+
for (let e = 0; e < Ca.length; e++) {
|
|
1057
|
+
const t = Ca[e];
|
|
1058
|
+
We.push(t / Math.pow(2, 8 - a)), oa.push(ss[e] + a);
|
|
1053
1059
|
}
|
|
1054
|
-
const zt = [32, 2e3],
|
|
1060
|
+
const zt = [32, 2e3], Aa = We.filter((a, e) => We[e] > zt[0] && We[e] < zt[1]), ns = oa.filter((a, e) => We[e] > zt[0] && We[e] < zt[1]);
|
|
1055
1061
|
class lt {
|
|
1056
1062
|
/**
|
|
1057
1063
|
* Retrieves frequency domain data from an AnalyserNode adjusted to a decibel range
|
|
@@ -1069,7 +1075,7 @@ class lt {
|
|
|
1069
1075
|
const f = t / 2, p = 1 / i.length * f;
|
|
1070
1076
|
let v, k, w;
|
|
1071
1077
|
if (s === "music" || s === "voice") {
|
|
1072
|
-
const E = s === "voice" ?
|
|
1078
|
+
const E = s === "voice" ? Aa : We, M = Array(E.length).fill(r);
|
|
1073
1079
|
for (let L = 0; L < i.length; L++) {
|
|
1074
1080
|
const C = L * p, K = i[L];
|
|
1075
1081
|
for (let U = E.length - 1; U >= 0; U--)
|
|
@@ -1078,7 +1084,7 @@ class lt {
|
|
|
1078
1084
|
break;
|
|
1079
1085
|
}
|
|
1080
1086
|
}
|
|
1081
|
-
v = M, k = s === "voice" ?
|
|
1087
|
+
v = M, k = s === "voice" ? Aa : We, w = s === "voice" ? ns : oa;
|
|
1082
1088
|
} else
|
|
1083
1089
|
v = Array.from(i), k = v.map((E, M) => p * M), w = k.map((E) => `${E.toFixed(2)} Hz`);
|
|
1084
1090
|
const _ = v.map((E) => Math.max(
|
|
@@ -1154,7 +1160,7 @@ class lt {
|
|
|
1154
1160
|
}
|
|
1155
1161
|
}
|
|
1156
1162
|
globalThis.AudioAnalysis = lt;
|
|
1157
|
-
const
|
|
1163
|
+
const rs = `
|
|
1158
1164
|
class StreamProcessor extends AudioWorkletProcessor {
|
|
1159
1165
|
constructor() {
|
|
1160
1166
|
super();
|
|
@@ -1243,17 +1249,17 @@ class StreamProcessor extends AudioWorkletProcessor {
|
|
|
1243
1249
|
}
|
|
1244
1250
|
|
|
1245
1251
|
registerProcessor('stream_processor', StreamProcessor);
|
|
1246
|
-
`,
|
|
1252
|
+
`, os = new Blob([rs], {
|
|
1247
1253
|
type: "application/javascript"
|
|
1248
|
-
}),
|
|
1249
|
-
class
|
|
1254
|
+
}), cs = URL.createObjectURL(os), ls = cs;
|
|
1255
|
+
class ds {
|
|
1250
1256
|
/**
|
|
1251
1257
|
* Creates a new WavStreamPlayer instance
|
|
1252
1258
|
* @param {{sampleRate?: number}} options
|
|
1253
1259
|
* @returns {WavStreamPlayer}
|
|
1254
1260
|
*/
|
|
1255
1261
|
constructor({ sampleRate: e = 44100, onPlaybackEnded: t = null } = {}) {
|
|
1256
|
-
this.scriptSrc =
|
|
1262
|
+
this.scriptSrc = ls, this.sampleRate = e, this.context = null, this.stream = null, this.analyser = null, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this.onPlaybackEnded = t && typeof t == "function" ? t : null;
|
|
1257
1263
|
}
|
|
1258
1264
|
/**
|
|
1259
1265
|
* Connects the audio context and enables output to speakers
|
|
@@ -1348,8 +1354,8 @@ class ls {
|
|
|
1348
1354
|
return this.getTrackSampleOffset(!0);
|
|
1349
1355
|
}
|
|
1350
1356
|
}
|
|
1351
|
-
globalThis.WavStreamPlayer =
|
|
1352
|
-
const
|
|
1357
|
+
globalThis.WavStreamPlayer = ds;
|
|
1358
|
+
const fs = URL.createObjectURL(
|
|
1353
1359
|
new Blob([`
|
|
1354
1360
|
class UpsampleStreamPCM extends AudioWorkletProcessor {
|
|
1355
1361
|
constructor(options) {
|
|
@@ -1521,7 +1527,7 @@ class UpsampleStreamPCM extends AudioWorkletProcessor {
|
|
|
1521
1527
|
registerProcessor('upsample-stream-pcm', UpsampleStreamPCM);
|
|
1522
1528
|
`], { type: "application/javascript" })
|
|
1523
1529
|
);
|
|
1524
|
-
class
|
|
1530
|
+
class Ya {
|
|
1525
1531
|
/**
|
|
1526
1532
|
* @param {{
|
|
1527
1533
|
* inputSampleRate?: number,
|
|
@@ -1566,7 +1572,7 @@ class Xa {
|
|
|
1566
1572
|
/** Build the WebAudio graph. Always audible via direct path; loopback ref is optional and non-critical. */
|
|
1567
1573
|
async connect() {
|
|
1568
1574
|
if (this.context) return !0;
|
|
1569
|
-
if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(
|
|
1575
|
+
if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(fs), this._worklet = new AudioWorkletNode(this.context, "upsample-stream-pcm", {
|
|
1570
1576
|
processorOptions: {
|
|
1571
1577
|
sourceSampleRate: this.inputSampleRate,
|
|
1572
1578
|
prerollSrc: Math.round(this.inputSampleRate * 0.02)
|
|
@@ -1694,8 +1700,8 @@ class Xa {
|
|
|
1694
1700
|
return this.connect();
|
|
1695
1701
|
}
|
|
1696
1702
|
}
|
|
1697
|
-
globalThis.WavStreamPlayerV2 =
|
|
1698
|
-
const
|
|
1703
|
+
globalThis.WavStreamPlayerV2 = Ya;
|
|
1704
|
+
const hs = `
|
|
1699
1705
|
class AudioProcessor extends AudioWorkletProcessor {
|
|
1700
1706
|
|
|
1701
1707
|
constructor() {
|
|
@@ -1902,17 +1908,17 @@ class AudioProcessor extends AudioWorkletProcessor {
|
|
|
1902
1908
|
}
|
|
1903
1909
|
|
|
1904
1910
|
registerProcessor('audio_processor', AudioProcessor);
|
|
1905
|
-
`,
|
|
1911
|
+
`, bs = new Blob([hs], {
|
|
1906
1912
|
type: "application/javascript"
|
|
1907
|
-
}),
|
|
1908
|
-
class
|
|
1913
|
+
}), us = URL.createObjectURL(bs), ps = us;
|
|
1914
|
+
class gs {
|
|
1909
1915
|
/**
|
|
1910
1916
|
* Create a new WavRecorder instance
|
|
1911
1917
|
* @param {{sampleRate?: number, outputToSpeakers?: boolean, debug?: boolean}} [options]
|
|
1912
1918
|
* @returns {WavRecorder}
|
|
1913
1919
|
*/
|
|
1914
1920
|
constructor({ sampleRate: e = 44100, outputToSpeakers: t = !1, debug: i = !1 } = {}) {
|
|
1915
|
-
this.scriptSrc =
|
|
1921
|
+
this.scriptSrc = ps, this.sampleRate = e, this.outputToSpeakers = t, this.debug = !!i, this._deviceChangeCallback = null, this._devices = [], this.stream = null, this.processor = null, this.source = null, this.node = null, this.recording = !1, this._lastEventId = 0, this.eventReceipts = {}, this.eventTimeout = 5e3, this._chunkProcessor = () => {
|
|
1916
1922
|
}, this._chunkProcessorSize = void 0, this._chunkProcessorBuffer = {
|
|
1917
1923
|
raw: new ArrayBuffer(0),
|
|
1918
1924
|
mono: new ArrayBuffer(0)
|
|
@@ -2241,8 +2247,8 @@ use only for debugging`), o.connect(t.destination)), this.source = i, this.node
|
|
|
2241
2247
|
return this.listenForDeviceChange(null), this.processor && await this.end(), !0;
|
|
2242
2248
|
}
|
|
2243
2249
|
}
|
|
2244
|
-
globalThis.WavRecorder =
|
|
2245
|
-
const
|
|
2250
|
+
globalThis.WavRecorder = gs;
|
|
2251
|
+
const ms = URL.createObjectURL(
|
|
2246
2252
|
new Blob([`
|
|
2247
2253
|
class DownsampleRecorder extends AudioWorkletProcessor {
|
|
2248
2254
|
constructor(options) {
|
|
@@ -2463,7 +2469,7 @@ class ot {
|
|
|
2463
2469
|
echoCancellationType: this.captureInfo.trackSettings?.echoCancellationType ?? null
|
|
2464
2470
|
}, this._log("Granted track settings:", this.captureInfo.trackSettings), this.audioCtx = new (window.AudioContext || window.webkitAudioContext)({
|
|
2465
2471
|
latencyHint: "interactive"
|
|
2466
|
-
}), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(
|
|
2472
|
+
}), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(ms);
|
|
2467
2473
|
const s = Math.round(this.targetSampleRate * this.chunkMs / 1e3);
|
|
2468
2474
|
return this.node = new AudioWorkletNode(this.audioCtx, "downsample-recorder", {
|
|
2469
2475
|
processorOptions: {
|
|
@@ -2539,11 +2545,11 @@ class ot {
|
|
|
2539
2545
|
}
|
|
2540
2546
|
}
|
|
2541
2547
|
globalThis.WavRecorderV2 = ot;
|
|
2542
|
-
class
|
|
2548
|
+
class ys {
|
|
2543
2549
|
constructor(e = {}) {
|
|
2544
|
-
this.sr = Math.max(8e3, e.sampleRate || 24e3), this.floor =
|
|
2550
|
+
this.sr = Math.max(8e3, e.sampleRate || 24e3), this.floor = Ma(e.floor ?? 0.12), this.attackSamples = Ce(e.attackMs ?? 12, this.sr), this.releaseSamples = Ce(e.releaseMs ?? 150, this.sr), this.escapeAttackSamples = Ce(e.escapeAttackMs ?? 10, this.sr), this.defaultGuardSamples = Ce(e.defaultGuardMs ?? 0, this.sr), this.gain = 1, this.target = 1, this.rampRemain = 0, this._step = 0, this.duckActive = !1, this.guardRemain = 0, this.vadEnabled = e.vadEnabled !== !1;
|
|
2545
2551
|
const t = Math.max(2, e.vadFastMs ?? 10), i = Math.max(t + 20, e.vadSlowMs ?? 250);
|
|
2546
|
-
this.alphaFast =
|
|
2552
|
+
this.alphaFast = Ia(t, this.sr), this.alphaSlow = Ia(i, this.sr), this.vadFast = 0, this.vadSlow = 1e-12, this.vadRatio = Ta(e.vadTriggerDb ?? 9), this.vadAttackSamples = Ce(e.vadAttackMs ?? 18, this.sr), this.vadHangSamples = Ce(e.vadHangMs ?? 120, this.sr), this._speechCount = 0, this._hangRemain = 0, this._speaking = !1, this._nextShield = null, this._shieldActive = !1, this._shieldFloor = this.floor, this._shieldHardMute = !1, this._eps = 1e-12;
|
|
2547
2553
|
}
|
|
2548
2554
|
/** Arm a one‑shot, VAD‑escapable shield for the NEXT TTS start. */
|
|
2549
2555
|
armFirstTurnShield({
|
|
@@ -2557,8 +2563,8 @@ class ms {
|
|
|
2557
2563
|
vadAttackMs: r,
|
|
2558
2564
|
vadHangMs: o
|
|
2559
2565
|
} = {}) {
|
|
2560
|
-
const p = { durationSamp: Ce(e, this.sr), floor:
|
|
2561
|
-
s != null && (p.vadRatio =
|
|
2566
|
+
const p = { durationSamp: Ce(e, this.sr), floor: Ma(t), hardMute: !!i };
|
|
2567
|
+
s != null && (p.vadRatio = Ta(s)), r != null && (p.vadAttackSamples = Ce(r, this.sr)), o != null && (p.vadHangSamples = Ce(o, this.sr)), this._nextShield = p;
|
|
2562
2568
|
}
|
|
2563
2569
|
onTTSStart(e) {
|
|
2564
2570
|
if (this.duckActive = !0, this._nextShield) {
|
|
@@ -2599,20 +2605,20 @@ class ms {
|
|
|
2599
2605
|
this.target = e, this.rampRemain = t, this.rampRemain <= 0 ? (this.gain = this.target, this._step = 0) : this._step = (this.target - this.gain) / this.rampRemain;
|
|
2600
2606
|
}
|
|
2601
2607
|
}
|
|
2602
|
-
function
|
|
2608
|
+
function Ma(a) {
|
|
2603
2609
|
return Math.max(0, Math.min(1, a));
|
|
2604
2610
|
}
|
|
2605
2611
|
function Ce(a, e) {
|
|
2606
2612
|
return Math.max(0, Math.round(a * e / 1e3));
|
|
2607
2613
|
}
|
|
2608
|
-
function
|
|
2614
|
+
function Ta(a) {
|
|
2609
2615
|
return Math.pow(10, a / 10);
|
|
2610
2616
|
}
|
|
2611
|
-
function
|
|
2617
|
+
function Ia(a, e) {
|
|
2612
2618
|
const t = Math.max(1, a * e / 1e3);
|
|
2613
2619
|
return Math.exp(-1 / t);
|
|
2614
2620
|
}
|
|
2615
|
-
class
|
|
2621
|
+
class vs {
|
|
2616
2622
|
/**
|
|
2617
2623
|
* @param {object} opts
|
|
2618
2624
|
* @param {number} opts.sampleRate - Hz of your PCM (e.g., 24000)
|
|
@@ -2701,12 +2707,12 @@ class ys {
|
|
|
2701
2707
|
let He = -1;
|
|
2702
2708
|
for (let ae = U; ae <= X; ae += te) {
|
|
2703
2709
|
let he = 0, ge = 0;
|
|
2704
|
-
for (let
|
|
2705
|
-
const $e = _[
|
|
2710
|
+
for (let N = 0; N < o; N++) {
|
|
2711
|
+
const $e = _[N], Pe = P[ae + N];
|
|
2706
2712
|
he += $e * Pe, ge += Pe * Pe;
|
|
2707
2713
|
}
|
|
2708
|
-
const
|
|
2709
|
-
if (
|
|
2714
|
+
const j = E * (Math.sqrt(ge) + 1e-12), H = j > 0 ? he / j : 0;
|
|
2715
|
+
if (H > He && (He = H), He > Math.min(0.98, this.threshold + 0.25)) break;
|
|
2710
2716
|
}
|
|
2711
2717
|
if (He >= this.threshold) {
|
|
2712
2718
|
if (this._holdRemain = Math.max(this._holdRemain, Math.round(this.holdMs * this.sr / 1e3)), this.mode === "drop") return null;
|
|
@@ -2767,7 +2773,7 @@ class ys {
|
|
|
2767
2773
|
return o;
|
|
2768
2774
|
}
|
|
2769
2775
|
}
|
|
2770
|
-
class
|
|
2776
|
+
class ws {
|
|
2771
2777
|
/**
|
|
2772
2778
|
* @param {object} opts
|
|
2773
2779
|
* @param {number} opts.sampleRate - PCM sample rate (e.g., 24000)
|
|
@@ -2904,7 +2910,7 @@ class vs {
|
|
|
2904
2910
|
return o;
|
|
2905
2911
|
}
|
|
2906
2912
|
}
|
|
2907
|
-
class
|
|
2913
|
+
class xs {
|
|
2908
2914
|
/**
|
|
2909
2915
|
* @param {object} opts
|
|
2910
2916
|
* @param {number} opts.sampleRate - Mic PCM sample rate (e.g., 24000)
|
|
@@ -2949,26 +2955,26 @@ class ws {
|
|
|
2949
2955
|
}
|
|
2950
2956
|
const Ue = Je.noConflict();
|
|
2951
2957
|
Ue.setLevel("info");
|
|
2952
|
-
class pt extends
|
|
2958
|
+
class pt extends is {
|
|
2953
2959
|
constructor(e = {}) {
|
|
2954
2960
|
super({ name: "WebAudioProcessorV2" }), this.options = e, this.muted = !1, this.audioRecorder = new ot({
|
|
2955
2961
|
targetSampleRate: 24e3,
|
|
2956
2962
|
debug: !!e.debug
|
|
2957
|
-
}), this.audioPlayer = new
|
|
2963
|
+
}), this.audioPlayer = new Ya({
|
|
2958
2964
|
inputSampleRate: 24e3,
|
|
2959
2965
|
onPlaybackEnded: this.handleOnPlaybackEnded.bind(this),
|
|
2960
2966
|
firstTurnRampInMs: 200,
|
|
2961
2967
|
primeMs: 200,
|
|
2962
2968
|
// keep or remove; it’s harmless
|
|
2963
2969
|
debug: !!e.debug
|
|
2964
|
-
}), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new
|
|
2970
|
+
}), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new xs({
|
|
2965
2971
|
sampleRate: 24e3,
|
|
2966
2972
|
windowMs: this.firstTurnDropMs,
|
|
2967
2973
|
partialPass: !0,
|
|
2968
2974
|
// pass remainder of crossing frame
|
|
2969
2975
|
hardDrop: !0
|
|
2970
2976
|
// set true if you prefer simpler "drop whole frame"
|
|
2971
|
-
}), this.ducker = new
|
|
2977
|
+
}), this.ducker = new ys({
|
|
2972
2978
|
sampleRate: 24e3,
|
|
2973
2979
|
floor: 0.12,
|
|
2974
2980
|
attackMs: 12,
|
|
@@ -2983,7 +2989,7 @@ class pt extends as {
|
|
|
2983
2989
|
vadSlowMs: 250,
|
|
2984
2990
|
vadAttackMs: 18,
|
|
2985
2991
|
vadHangMs: 120
|
|
2986
|
-
}), this.mixMinus = new
|
|
2992
|
+
}), this.mixMinus = new vs({
|
|
2987
2993
|
sampleRate: 24e3,
|
|
2988
2994
|
bufferMs: 1e3,
|
|
2989
2995
|
threshold: 0.3,
|
|
@@ -2992,7 +2998,7 @@ class pt extends as {
|
|
|
2992
2998
|
hop: 64,
|
|
2993
2999
|
downsampleFactor: 3,
|
|
2994
3000
|
minCorrLenMs: 15
|
|
2995
|
-
}), this.mixMinusSmooth = new
|
|
3001
|
+
}), this.mixMinusSmooth = new ws({
|
|
2996
3002
|
sampleRate: 24e3,
|
|
2997
3003
|
bufferMs: 800,
|
|
2998
3004
|
lowThresh: 0.25,
|
|
@@ -3167,17 +3173,17 @@ class pt extends as {
|
|
|
3167
3173
|
}
|
|
3168
3174
|
}
|
|
3169
3175
|
globalThis.WebAudioProcessorV2 = pt;
|
|
3170
|
-
var
|
|
3171
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
3176
|
+
var ks = Object.defineProperty, _s = Object.getOwnPropertyDescriptor, st = (a, e, t, i) => {
|
|
3177
|
+
for (var s = i > 1 ? void 0 : i ? _s(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
3172
3178
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
3173
|
-
return i && s &&
|
|
3179
|
+
return i && s && ks(e, t, s), s;
|
|
3174
3180
|
};
|
|
3175
|
-
const Mt = "cb-toast-outlet",
|
|
3176
|
-
function
|
|
3181
|
+
const Mt = "cb-toast-outlet", Ea = "cb-toast-outlet-style";
|
|
3182
|
+
function Ss() {
|
|
3177
3183
|
let a = document.getElementById(Mt);
|
|
3178
|
-
if (a || (a = document.createElement("div"), a.id = Mt, document.body.appendChild(a)), !document.getElementById(
|
|
3184
|
+
if (a || (a = document.createElement("div"), a.id = Mt, document.body.appendChild(a)), !document.getElementById(Ea)) {
|
|
3179
3185
|
const e = document.createElement("style");
|
|
3180
|
-
e.id =
|
|
3186
|
+
e.id = Ea, e.textContent = `
|
|
3181
3187
|
/* Global outlet that holds all toasts */
|
|
3182
3188
|
#${Mt} {
|
|
3183
3189
|
position: fixed;
|
|
@@ -3201,8 +3207,8 @@ function _s() {
|
|
|
3201
3207
|
}
|
|
3202
3208
|
return a;
|
|
3203
3209
|
}
|
|
3204
|
-
function
|
|
3205
|
-
const e =
|
|
3210
|
+
function Ja(a) {
|
|
3211
|
+
const e = Ss(), t = document.createElement("cb-toast");
|
|
3206
3212
|
return t.message = a.message, t.variant = a.variant ?? "success", t.duration = typeof a.duration == "number" ? a.duration : 3e3, t.closeable = !!a.closeable, t.icon = a.icon ?? "", t.ariaLive = a.ariaLive ?? "polite", e.appendChild(t), t;
|
|
3207
3213
|
}
|
|
3208
3214
|
let qe = class extends Fe {
|
|
@@ -3407,7 +3413,7 @@ function Ke(a) {
|
|
|
3407
3413
|
}
|
|
3408
3414
|
};
|
|
3409
3415
|
}
|
|
3410
|
-
function
|
|
3416
|
+
function Cs(a) {
|
|
3411
3417
|
return function e(t, i, s) {
|
|
3412
3418
|
switch (arguments.length) {
|
|
3413
3419
|
case 0:
|
|
@@ -3441,45 +3447,47 @@ function Ss(a) {
|
|
|
3441
3447
|
}
|
|
3442
3448
|
};
|
|
3443
3449
|
}
|
|
3444
|
-
const
|
|
3450
|
+
const As = Number.isInteger || function(e) {
|
|
3445
3451
|
return e << 0 === e;
|
|
3446
3452
|
};
|
|
3447
|
-
function
|
|
3453
|
+
function Ms(a, e) {
|
|
3448
3454
|
var t = a < 0 ? e.length + a : a;
|
|
3449
3455
|
return e[t];
|
|
3450
3456
|
}
|
|
3451
|
-
var
|
|
3457
|
+
var Ts = /* @__PURE__ */ Ke(function(e, t) {
|
|
3452
3458
|
return t == null || t !== t ? e : t;
|
|
3453
3459
|
});
|
|
3454
|
-
function
|
|
3460
|
+
function Is(a, e) {
|
|
3455
3461
|
for (var t = e, i = 0; i < a.length; i += 1) {
|
|
3456
3462
|
if (t == null)
|
|
3457
3463
|
return;
|
|
3458
3464
|
var s = a[i];
|
|
3459
|
-
|
|
3465
|
+
As(s) ? t = Ms(s, t) : t = t[s];
|
|
3460
3466
|
}
|
|
3461
3467
|
return t;
|
|
3462
3468
|
}
|
|
3463
|
-
var
|
|
3464
|
-
return
|
|
3469
|
+
var Gt = /* @__PURE__ */ Cs(function(e, t, i) {
|
|
3470
|
+
return Ts(e, Is(t, i));
|
|
3465
3471
|
});
|
|
3466
|
-
const Is = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
|
|
3467
|
-
var
|
|
3472
|
+
const Es = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
|
|
3473
|
+
var $s = Object.defineProperty, O = (a, e, t, i) => {
|
|
3468
3474
|
for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
|
|
3469
3475
|
(o = a[r]) && (s = o(e, t, s) || s);
|
|
3470
|
-
return s &&
|
|
3476
|
+
return s && $s(e, t, s), s;
|
|
3471
3477
|
};
|
|
3472
3478
|
const T = Je.noConflict();
|
|
3473
3479
|
T.setLevel("info");
|
|
3474
|
-
const ne = "cb_",
|
|
3475
|
-
class R extends
|
|
3480
|
+
const ne = "cb_", Ps = (a) => new Promise((e) => setTimeout(e, a));
|
|
3481
|
+
class R extends Jt {
|
|
3476
3482
|
constructor() {
|
|
3477
3483
|
super(), this.actionIdCounter = 0, this.currentLoadContext = {}, this.prefilledFormValues = {}, this.wsClient = null, this.webAudioProcessor = null, this.webAudioTrackId = null, this.webAudioCurrentMark = null, this.replyMessage = null, this.streamingResponseInProgress = !1, this.streamingResponseLastText = null, this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null, this.tabsBroadcastChannel = new BroadcastChannel("c7o-bot-tabs"), this.tabId = "c7o-bot-tab-" + (self.crypto?.randomUUID?.() || Math.random().toString(36).slice(2)), this.tabsBroadcastChannel.addEventListener("message", this.handleBroadcastMessage.bind(this)), console.log(`c7o: AppState: created, tabId=${this.tabId}`);
|
|
3478
3484
|
}
|
|
3479
3485
|
// this is called at startup
|
|
3480
3486
|
setSetting(e) {
|
|
3481
|
-
T.info("appState: Startup: setSetting", e)
|
|
3482
|
-
|
|
3487
|
+
T.info("appState: Startup: setSetting", e);
|
|
3488
|
+
const t = this.setting;
|
|
3489
|
+
!!t && (t.orgId !== e.orgId || t.botId !== e.botId || t.url !== e.url || t.version !== e.version) && (this.botSettingsInitialized = !1, this.botSettings = null, this.botSettingsRetryTimeout = 5, this.disabled = !1), this.setting = e, this.initBot().catch((s) => {
|
|
3490
|
+
T.info(`Exception during bot initialization: ${s.message}`);
|
|
3483
3491
|
});
|
|
3484
3492
|
}
|
|
3485
3493
|
// set language
|
|
@@ -3493,22 +3501,22 @@ class R extends Yt {
|
|
|
3493
3501
|
// todo Form disappears on refresh !!!
|
|
3494
3502
|
async initBot() {
|
|
3495
3503
|
if (!this.botSettingsInitialized) {
|
|
3496
|
-
const
|
|
3497
|
-
T.info(`Getting bot settings at ${
|
|
3498
|
-
let
|
|
3504
|
+
const t = this.setting.url.startsWith("localhost") ? "http" : "https", i = this.setting.version && this.setting.version !== "current" ? `?version=${encodeURIComponent(this.setting.version)}` : "", s = `${t}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}${i}`;
|
|
3505
|
+
T.info(`Getting bot settings at ${s} ...`);
|
|
3506
|
+
let r = null, o = null;
|
|
3499
3507
|
try {
|
|
3500
|
-
|
|
3508
|
+
r = await fetch(s, {
|
|
3501
3509
|
//mode: 'no-cors',
|
|
3502
3510
|
headers: {
|
|
3503
3511
|
"Access-Control-Allow-Origin": "null",
|
|
3504
3512
|
"X-Enegel-Signature": this.setting.botId
|
|
3505
3513
|
//"ngrok-skip-browser-warning": "1",
|
|
3506
3514
|
}
|
|
3507
|
-
}), !
|
|
3508
|
-
} catch (
|
|
3509
|
-
T.error(`Failed to get bot ${this.setting.botId} settings: ${
|
|
3515
|
+
}), !r.ok || r.status !== 200 ? T.error(`Failed to get bot ${this.setting.botId} settings: ${r.status} ${r.statusText}`) : o = await r.json();
|
|
3516
|
+
} catch (f) {
|
|
3517
|
+
T.error(`Failed to get bot ${this.setting.botId} settings: ${f.message}`), o = null;
|
|
3510
3518
|
}
|
|
3511
|
-
if (this.botSettingsInitialized = !0, this.botSettings =
|
|
3519
|
+
if (this.botSettingsInitialized = !0, this.botSettings = o, !o) {
|
|
3512
3520
|
if (T.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
|
|
3513
3521
|
T.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
|
|
3514
3522
|
return;
|
|
@@ -3518,7 +3526,7 @@ class R extends Yt {
|
|
|
3518
3526
|
}, this.botSettingsRetryTimeout * 1e3), this.botSettingsRetryTimeout = this.botSettingsRetryTimeout * 2;
|
|
3519
3527
|
return;
|
|
3520
3528
|
}
|
|
3521
|
-
T.info("Got bot settings - bot is enabled",
|
|
3529
|
+
T.info("Got bot settings - bot is enabled", o), this.disabled = !1, this.setting.welcomeMessage = o?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = o?.disclaimerMessage && o.disclaimerMessage !== "" ? o.disclaimerMessage : null, this.setting.engageMessage = o?.engageMessage || "How can I help ?", this.setting.engageTimeout = o?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in o ? o.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in o ? o.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in o ? o.uploadImages : !1, this.setting.newConversationTimeoutInSec = o?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in o ? o.enableNotificationSound : !0, this.setting.botAdvancedSettings = o?.botAdvancedSettings ?? {}, this.setting.startFeedbackFromMessage = "startFeedbackFromMessage" in this.setting.botAdvancedSettings ? this.setting.botAdvancedSettings.startFeedbackFromMessage : 1, this.setting.enableMultiModalConnection = this.setting.botAdvancedSettings?.enableMultiModalConnection ?? !1, this.setting.enablePassContextOnConnect = this.setting.botAdvancedSettings?.enablePassContextOnConnect ?? !1, this.setting.enableShowFullDisclaimerMessage = this.setting.botAdvancedSettings?.enableShowFullDisclaimerMessage ?? !1, this.setting.fileUploadEnabledExtensions = this.setting.botAdvancedSettings?.fileUploadEnabledExtensions || ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3", this.setting.fileUploadMaxFileSizeMB = this.setting.botAdvancedSettings?.fileUploadMaxFileSizeMB || 30, this.setting.enableAgentDisconnectedMessage = this.setting.botAdvancedSettings?.enableAgentDisconnectedMessage ?? !1, this.setting.showNewConversationOnAgentDisconnected = this.setting.botAdvancedSettings?.showNewConversationOnAgentDisconnected ?? !1, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
|
|
3522
3530
|
this.showEngagePopup();
|
|
3523
3531
|
}, this.setting.engageTimeout * 1e3);
|
|
3524
3532
|
}
|
|
@@ -3737,7 +3745,7 @@ class R extends Yt {
|
|
|
3737
3745
|
this.initForm(this.form);
|
|
3738
3746
|
return;
|
|
3739
3747
|
}
|
|
3740
|
-
const e =
|
|
3748
|
+
const e = Gt(null, ["startupForm"], this.botSettings);
|
|
3741
3749
|
if (!e || !e?.name) {
|
|
3742
3750
|
T.info("Startup form not present");
|
|
3743
3751
|
return;
|
|
@@ -3745,10 +3753,10 @@ class R extends Yt {
|
|
|
3745
3753
|
this.initForm(e);
|
|
3746
3754
|
}
|
|
3747
3755
|
initForm(e = null) {
|
|
3748
|
-
const t = e, i =
|
|
3756
|
+
const t = e, i = Gt(null, ["name"], e);
|
|
3749
3757
|
if (!t || !i)
|
|
3750
3758
|
return;
|
|
3751
|
-
const s =
|
|
3759
|
+
const s = Gt(null, ["fields"], e);
|
|
3752
3760
|
if (!Array.isArray(s) || s.length <= 0) {
|
|
3753
3761
|
T.info("form has no fields", e);
|
|
3754
3762
|
return;
|
|
@@ -3785,7 +3793,7 @@ class R extends Yt {
|
|
|
3785
3793
|
o[f] = parseInt(r.substr(f * 2, 2), 16);
|
|
3786
3794
|
return o;
|
|
3787
3795
|
};
|
|
3788
|
-
let t = new Blob([e(
|
|
3796
|
+
let t = new Blob([e(Es)], { type: "application/octet-stream" });
|
|
3789
3797
|
const i = URL.createObjectURL(t);
|
|
3790
3798
|
new Audio(i).play();
|
|
3791
3799
|
}
|
|
@@ -3799,14 +3807,14 @@ class R extends Yt {
|
|
|
3799
3807
|
return this.wsClient;
|
|
3800
3808
|
let t = `${this.setting.url.startsWith("localhost") ? "ws" : "wss"}://${this.setting.url}/api/bot/connect/${this.setting.orgId}/${this.setting.botId}/${this.conversationId}`;
|
|
3801
3809
|
const i = new URL(t);
|
|
3802
|
-
if (this.setting.enableMultiModalConnection && (i.searchParams.set("multiModal", "true"), T.info("MultiModal connection enabled - adding multiModal=true parameter")), this.setting.enablePassContextOnConnect && this.context && typeof this.context == "object")
|
|
3810
|
+
if (this.setting.version && this.setting.version !== "current" && i.searchParams.set("version", this.setting.version), this.setting.enableMultiModalConnection && (i.searchParams.set("multiModal", "true"), T.info("MultiModal connection enabled - adding multiModal=true parameter")), this.setting.enablePassContextOnConnect && this.context && typeof this.context == "object")
|
|
3803
3811
|
try {
|
|
3804
3812
|
const s = JSON.stringify(this.context);
|
|
3805
3813
|
i.searchParams.set("context", s), T.info("Adding context to connect URL");
|
|
3806
3814
|
} catch (s) {
|
|
3807
3815
|
T.error(`Failed to stringify context: ${s.message}`);
|
|
3808
3816
|
}
|
|
3809
|
-
return t = i.toString(), T.info(`Initiating ws connection to ${t} ...`), this.wsClient = new
|
|
3817
|
+
return t = i.toString(), T.info(`Initiating ws connection to ${t} ...`), this.wsClient = new as({
|
|
3810
3818
|
url: t,
|
|
3811
3819
|
orgId: this.setting.orgId,
|
|
3812
3820
|
botId: this.setting.botId,
|
|
@@ -3856,7 +3864,7 @@ class R extends Yt {
|
|
|
3856
3864
|
const s = t.includes("?"), [r, o] = s ? t.split("?") : [t, ""], f = r.split("/");
|
|
3857
3865
|
f[f.length - 1] = this.conversationId;
|
|
3858
3866
|
const p = f.join("/"), v = o ? `${p}?${o}` : p;
|
|
3859
|
-
this.wsClient.url = v, await
|
|
3867
|
+
this.wsClient.url = v, await Ps(1e3), await this.wsClient.start(), T.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
|
|
3860
3868
|
} catch (i) {
|
|
3861
3869
|
T.error(`WSC: failed to reset conversation: ${i.message}`, i);
|
|
3862
3870
|
}
|
|
@@ -4246,7 +4254,7 @@ class R extends Yt {
|
|
|
4246
4254
|
if (s) {
|
|
4247
4255
|
T.error(
|
|
4248
4256
|
`File "${s.name}" exceeds the ${t} MB limit and will not be uploaded.`
|
|
4249
|
-
),
|
|
4257
|
+
), Ja({
|
|
4250
4258
|
message: `File is larger than ${t} MB`,
|
|
4251
4259
|
variant: "danger",
|
|
4252
4260
|
duration: 3800,
|
|
@@ -4410,8 +4418,10 @@ O([
|
|
|
4410
4418
|
orgId: null,
|
|
4411
4419
|
botId: null,
|
|
4412
4420
|
url: null,
|
|
4421
|
+
version: "current",
|
|
4413
4422
|
welcomeMessage: null,
|
|
4414
4423
|
disclaimerMessage: null,
|
|
4424
|
+
enableShowFullDisclaimerMessage: !1,
|
|
4415
4425
|
splitMessagesAtBreak: !1,
|
|
4416
4426
|
feedbackEnabled: !1,
|
|
4417
4427
|
startFeedbackFromMessage: 1,
|
|
@@ -4482,7 +4492,7 @@ O([
|
|
|
4482
4492
|
O([
|
|
4483
4493
|
z({ type: Boolean, value: !1 })
|
|
4484
4494
|
], R.prototype, "webAudioMuted");
|
|
4485
|
-
const b = new R(),
|
|
4495
|
+
const b = new R(), Ls = J`
|
|
4486
4496
|
${ke}
|
|
4487
4497
|
:host {
|
|
4488
4498
|
position: relative;
|
|
@@ -4557,12 +4567,12 @@ const b = new R(), Ps = J`
|
|
|
4557
4567
|
display: inline;
|
|
4558
4568
|
}
|
|
4559
4569
|
`;
|
|
4560
|
-
var
|
|
4570
|
+
var Rs = Object.defineProperty, zs = (a, e, t, i) => {
|
|
4561
4571
|
for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
|
|
4562
4572
|
(o = a[r]) && (s = o(e, t, s) || s);
|
|
4563
|
-
return s &&
|
|
4573
|
+
return s && Rs(e, t, s), s;
|
|
4564
4574
|
};
|
|
4565
|
-
|
|
4575
|
+
qi("system", {
|
|
4566
4576
|
resolver: (a) => ""
|
|
4567
4577
|
});
|
|
4568
4578
|
(() => {
|
|
@@ -4599,15 +4609,15 @@ class re extends Fe {
|
|
|
4599
4609
|
return this.dispatchEvent(i), i;
|
|
4600
4610
|
}
|
|
4601
4611
|
}
|
|
4602
|
-
|
|
4612
|
+
zs([
|
|
4603
4613
|
x({ type: String })
|
|
4604
4614
|
], re.prototype, "lang");
|
|
4605
|
-
var
|
|
4606
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
4615
|
+
var Os = Object.defineProperty, Bs = Object.getOwnPropertyDescriptor, Za = (a, e, t, i) => {
|
|
4616
|
+
for (var s = i > 1 ? void 0 : i ? Bs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
4607
4617
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
4608
|
-
return i && s &&
|
|
4618
|
+
return i && s && Os(e, t, s), s;
|
|
4609
4619
|
};
|
|
4610
|
-
const
|
|
4620
|
+
const qs = '<svg viewBox="0 0 16 16" width="16px" height="16px"><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"></path></svg>';
|
|
4611
4621
|
let Ot = class extends re {
|
|
4612
4622
|
constructor() {
|
|
4613
4623
|
super(...arguments), this.title = "ChatBot";
|
|
@@ -4624,11 +4634,11 @@ let Ot = class extends re {
|
|
|
4624
4634
|
() => u`<img class="cb-header-logo" part="header-logo" src="${b.setting.logoUrl}" />`,
|
|
4625
4635
|
() => u`<div class="cb-header-logo" part="header-logo">${G(b.setting.logoSvg)}</div>`
|
|
4626
4636
|
)}
|
|
4627
|
-
<div class="cb-header-title" part="header-title">${this.title}</div>
|
|
4637
|
+
<div class="cb-header-title" part="header-title">${Vt(this.title)}</div>
|
|
4628
4638
|
${W(
|
|
4629
4639
|
b.alwaysOpen,
|
|
4630
4640
|
() => u``,
|
|
4631
|
-
() => u`<div class="cb-header-close" part="header-close">${G(
|
|
4641
|
+
() => u`<div class="cb-header-close" part="header-close">${G(qs)}</div>`
|
|
4632
4642
|
)}
|
|
4633
4643
|
</header>`;
|
|
4634
4644
|
}
|
|
@@ -4670,14 +4680,14 @@ let Ot = class extends re {
|
|
|
4670
4680
|
});
|
|
4671
4681
|
}
|
|
4672
4682
|
};
|
|
4673
|
-
Ot.styles =
|
|
4674
|
-
|
|
4683
|
+
Ot.styles = Ls;
|
|
4684
|
+
Za([
|
|
4675
4685
|
x({ type: String, attribute: "title" })
|
|
4676
4686
|
], Ot.prototype, "title", 2);
|
|
4677
|
-
Ot =
|
|
4687
|
+
Ot = Za([
|
|
4678
4688
|
Z("cb-header")
|
|
4679
4689
|
], Ot);
|
|
4680
|
-
const
|
|
4690
|
+
const Ds = J`
|
|
4681
4691
|
${ke}
|
|
4682
4692
|
.cb-footer {
|
|
4683
4693
|
line-height: 60px;
|
|
@@ -4692,12 +4702,12 @@ const qs = J`
|
|
|
4692
4702
|
color: var(--primary-color);
|
|
4693
4703
|
}
|
|
4694
4704
|
`;
|
|
4695
|
-
var
|
|
4696
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
4705
|
+
var Fs = Object.getOwnPropertyDescriptor, js = (a, e, t, i) => {
|
|
4706
|
+
for (var s = i > 1 ? void 0 : i ? Fs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
4697
4707
|
(o = a[r]) && (s = o(s) || s);
|
|
4698
4708
|
return s;
|
|
4699
4709
|
};
|
|
4700
|
-
let
|
|
4710
|
+
let Zt = class extends re {
|
|
4701
4711
|
constructor() {
|
|
4702
4712
|
super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
4703
4713
|
}
|
|
@@ -4732,11 +4742,11 @@ let Jt = class extends re {
|
|
|
4732
4742
|
`;
|
|
4733
4743
|
}
|
|
4734
4744
|
};
|
|
4735
|
-
|
|
4736
|
-
|
|
4745
|
+
Zt.styles = Ds;
|
|
4746
|
+
Zt = js([
|
|
4737
4747
|
Z("cb-footer")
|
|
4738
|
-
],
|
|
4739
|
-
const
|
|
4748
|
+
], Zt);
|
|
4749
|
+
const Hs = J`
|
|
4740
4750
|
${ke}
|
|
4741
4751
|
|
|
4742
4752
|
:host {
|
|
@@ -4937,7 +4947,7 @@ const js = J`
|
|
|
4937
4947
|
background-size: 100%;
|
|
4938
4948
|
transition: background 0s;
|
|
4939
4949
|
}
|
|
4940
|
-
`,
|
|
4950
|
+
`, Ka = J`
|
|
4941
4951
|
:host {
|
|
4942
4952
|
--primary-color: var(--sl-color-primary-600);
|
|
4943
4953
|
}
|
|
@@ -5091,7 +5101,7 @@ const js = J`
|
|
|
5091
5101
|
.card-btn[aria-disabled="true"]:focus-visible {
|
|
5092
5102
|
box-shadow: none;
|
|
5093
5103
|
}
|
|
5094
|
-
`,
|
|
5104
|
+
`, Qa = J`
|
|
5095
5105
|
:host {
|
|
5096
5106
|
--primary-color: var(--sl-color-primary-600);
|
|
5097
5107
|
}
|
|
@@ -5182,10 +5192,10 @@ const js = J`
|
|
|
5182
5192
|
}
|
|
5183
5193
|
.split-btn[aria-expanded="true"] .split-btn__caret { transform: rotate(180deg); }
|
|
5184
5194
|
`;
|
|
5185
|
-
var
|
|
5186
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
5195
|
+
var Vs = Object.defineProperty, Ns = Object.getOwnPropertyDescriptor, je = (a, e, t, i) => {
|
|
5196
|
+
for (var s = i > 1 ? void 0 : i ? Ns(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
5187
5197
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
5188
|
-
return i && s &&
|
|
5198
|
+
return i && s && Vs(e, t, s), s;
|
|
5189
5199
|
};
|
|
5190
5200
|
let gt = class extends Fe {
|
|
5191
5201
|
constructor() {
|
|
@@ -5366,7 +5376,7 @@ let Ge = class extends Fe {
|
|
|
5366
5376
|
this._onDocPointerDown && (document.removeEventListener("pointerdown", this._onDocPointerDown, { capture: !0 }), this._onDocPointerDown = void 0), this._onKeydown && (document.removeEventListener("keydown", this._onKeydown, { capture: !0 }), this._onKeydown = void 0);
|
|
5367
5377
|
}
|
|
5368
5378
|
};
|
|
5369
|
-
Ge.styles =
|
|
5379
|
+
Ge.styles = Qa;
|
|
5370
5380
|
je([
|
|
5371
5381
|
x({ type: String })
|
|
5372
5382
|
], Ge.prototype, "variant", 2);
|
|
@@ -5385,12 +5395,12 @@ je([
|
|
|
5385
5395
|
Ge = je([
|
|
5386
5396
|
Z("cb-split-button")
|
|
5387
5397
|
], Ge);
|
|
5388
|
-
var
|
|
5389
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
5398
|
+
var Us = Object.defineProperty, Ws = Object.getOwnPropertyDescriptor, wt = (a, e, t, i) => {
|
|
5399
|
+
for (var s = i > 1 ? void 0 : i ? Ws(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
5390
5400
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
5391
|
-
return i && s &&
|
|
5401
|
+
return i && s && Us(e, t, s), s;
|
|
5392
5402
|
};
|
|
5393
|
-
const Tt = Je.noConflict(),
|
|
5403
|
+
const Tt = Je.noConflict(), $a = "M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z", Gs = J`
|
|
5394
5404
|
:host { display: block; width: 100%; color: var(--cb-fg, #111827); }
|
|
5395
5405
|
|
|
5396
5406
|
/* CARD */
|
|
@@ -5577,9 +5587,9 @@ let Me = class extends Fe {
|
|
|
5577
5587
|
`;
|
|
5578
5588
|
return u`
|
|
5579
5589
|
<span class="star" role="img" aria-label="${e.toFixed(2)} filled">
|
|
5580
|
-
<svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${
|
|
5590
|
+
<svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
|
|
5581
5591
|
<div class="star__fill" style="${s}">
|
|
5582
|
-
<svg viewBox="0 0 16 16" aria-hidden="true"><path d="${
|
|
5592
|
+
<svg viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
|
|
5583
5593
|
</div>
|
|
5584
5594
|
</span>
|
|
5585
5595
|
`;
|
|
@@ -5710,7 +5720,7 @@ let Me = class extends Fe {
|
|
|
5710
5720
|
body: JSON.stringify(r)
|
|
5711
5721
|
});
|
|
5712
5722
|
if (!o.ok) {
|
|
5713
|
-
Tt.error("c7o: cart/add.js failed"),
|
|
5723
|
+
Tt.error("c7o: cart/add.js failed"), Ja({
|
|
5714
5724
|
message: "Unable to add item to cart.",
|
|
5715
5725
|
variant: "danger",
|
|
5716
5726
|
duration: 2800,
|
|
@@ -5721,7 +5731,7 @@ let Me = class extends Fe {
|
|
|
5721
5731
|
await o.json(), Tt.info("c7o: cart/add.js - cart updated"), Tt.info("c7o: reloading window after cart update"), window.location.reload();
|
|
5722
5732
|
}
|
|
5723
5733
|
};
|
|
5724
|
-
Me.styles = [
|
|
5734
|
+
Me.styles = [Gs, Ka, Qa];
|
|
5725
5735
|
Me.DRAG_THRESHOLD_PX = 10;
|
|
5726
5736
|
wt([
|
|
5727
5737
|
x({ type: Object })
|
|
@@ -5730,18 +5740,18 @@ wt([
|
|
|
5730
5740
|
xe(".horizontal-carousel")
|
|
5731
5741
|
], Me.prototype, "_hCarousel", 2);
|
|
5732
5742
|
wt([
|
|
5733
|
-
|
|
5743
|
+
Va()
|
|
5734
5744
|
], Me.prototype, "_canPrev", 2);
|
|
5735
5745
|
wt([
|
|
5736
|
-
|
|
5746
|
+
Va()
|
|
5737
5747
|
], Me.prototype, "_canNext", 2);
|
|
5738
5748
|
Me = wt([
|
|
5739
5749
|
Z("cb-block")
|
|
5740
5750
|
], Me);
|
|
5741
|
-
var
|
|
5742
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
5751
|
+
var Xs = Object.defineProperty, Ys = Object.getOwnPropertyDescriptor, ei = (a, e, t, i) => {
|
|
5752
|
+
for (var s = i > 1 ? void 0 : i ? Ys(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
5743
5753
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
5744
|
-
return i && s &&
|
|
5754
|
+
return i && s && Xs(e, t, s), s;
|
|
5745
5755
|
};
|
|
5746
5756
|
let Bt = class extends Fe {
|
|
5747
5757
|
constructor() {
|
|
@@ -5766,18 +5776,18 @@ Bt.styles = J`
|
|
|
5766
5776
|
gap: 0.75em; /* vertical rhythm between blocks */
|
|
5767
5777
|
}
|
|
5768
5778
|
`;
|
|
5769
|
-
|
|
5779
|
+
ei([
|
|
5770
5780
|
x({ type: Array })
|
|
5771
5781
|
], Bt.prototype, "blocks", 2);
|
|
5772
|
-
Bt =
|
|
5782
|
+
Bt = ei([
|
|
5773
5783
|
Z("cb-blocks")
|
|
5774
5784
|
], Bt);
|
|
5775
|
-
var Rt = { exports: {} },
|
|
5776
|
-
function
|
|
5777
|
-
return
|
|
5785
|
+
var Rt = { exports: {} }, Js = Rt.exports, Pa;
|
|
5786
|
+
function Zs() {
|
|
5787
|
+
return Pa || (Pa = 1, (function(a, e) {
|
|
5778
5788
|
(function(t, i) {
|
|
5779
5789
|
a.exports = i();
|
|
5780
|
-
})(
|
|
5790
|
+
})(Js, (function() {
|
|
5781
5791
|
function t(n, c) {
|
|
5782
5792
|
if (!(n instanceof c)) throw new TypeError("Cannot call a class as a function");
|
|
5783
5793
|
}
|
|
@@ -5823,7 +5833,7 @@ function Js() {
|
|
|
5823
5833
|
return n;
|
|
5824
5834
|
}
|
|
5825
5835
|
function v(n, c) {
|
|
5826
|
-
if ((
|
|
5836
|
+
if ((N(n) || n === window || n === document) && (n = [n]), Pe(n) || Ve(n) || (n = [n]), ua(n) != 0) {
|
|
5827
5837
|
if (Pe(n) && !Ve(n)) for (var l = n.length, d = 0; d < l && c.call(n[d], n[d], d, n) !== !1; d++) ;
|
|
5828
5838
|
else if (Ve(n)) {
|
|
5829
5839
|
for (var h in n) if (ie(n, h) && c.call(n[h], n[h], h, n) === !1) break;
|
|
@@ -5832,16 +5842,16 @@ function Js() {
|
|
|
5832
5842
|
}
|
|
5833
5843
|
function k(n) {
|
|
5834
5844
|
var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, l = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, d = n[f] = n[f] || [], h = { all: d, evt: null, found: null };
|
|
5835
|
-
return c && l &&
|
|
5845
|
+
return c && l && ua(d) > 0 && v(d, (function(m, g) {
|
|
5836
5846
|
if (m.eventName == c && m.fn.toString() == l.toString()) return h.found = !0, h.evt = g, !1;
|
|
5837
5847
|
})), h;
|
|
5838
5848
|
}
|
|
5839
5849
|
function w(n) {
|
|
5840
5850
|
var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, l = c.onElement, d = c.withCallback, h = c.avoidDuplicate, m = h === void 0 || h, g = c.once, y = g !== void 0 && g, A = c.useCapture, S = A !== void 0 && A, I = arguments.length > 2 ? arguments[2] : void 0, $ = l || [];
|
|
5841
5851
|
function B(q) {
|
|
5842
|
-
|
|
5852
|
+
j(d) && d.call(I, q, this), y && B.destroy();
|
|
5843
5853
|
}
|
|
5844
|
-
return
|
|
5854
|
+
return H($) && ($ = document.querySelectorAll($)), B.destroy = function() {
|
|
5845
5855
|
v($, (function(q) {
|
|
5846
5856
|
var D = k(q, n, B);
|
|
5847
5857
|
D.found && D.all.splice(D.evt, 1), q.removeEventListener && q.removeEventListener(n, B, S);
|
|
@@ -5873,14 +5883,14 @@ function Js() {
|
|
|
5873
5883
|
function L(n) {
|
|
5874
5884
|
var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", l = arguments.length > 2 && arguments[2] !== void 0 && arguments[2];
|
|
5875
5885
|
if (!n || c === "") return !1;
|
|
5876
|
-
if (c === "none") return
|
|
5886
|
+
if (c === "none") return j(l) && l(), !1;
|
|
5877
5887
|
var d = He(), h = c.split(" ");
|
|
5878
5888
|
v(h, (function(m) {
|
|
5879
5889
|
_(n, "g" + m);
|
|
5880
5890
|
})), w(d, { onElement: n, avoidDuplicate: !1, once: !0, withCallback: function(m, g) {
|
|
5881
5891
|
v(h, (function(y) {
|
|
5882
5892
|
P(g, "g" + y);
|
|
5883
|
-
})),
|
|
5893
|
+
})), j(l) && l();
|
|
5884
5894
|
} });
|
|
5885
5895
|
}
|
|
5886
5896
|
function C(n) {
|
|
@@ -5918,17 +5928,17 @@ function Js() {
|
|
|
5918
5928
|
}
|
|
5919
5929
|
function he(n, c, l) {
|
|
5920
5930
|
if (be(n)) console.error("Inject assets error");
|
|
5921
|
-
else if (
|
|
5931
|
+
else if (j(c) && (l = c, c = !1), H(c) && c in window) j(l) && l();
|
|
5922
5932
|
else {
|
|
5923
5933
|
var d;
|
|
5924
5934
|
if (n.indexOf(".css") !== -1) {
|
|
5925
|
-
if ((d = document.querySelectorAll('link[href="' + n + '"]')) && d.length > 0) return void (
|
|
5935
|
+
if ((d = document.querySelectorAll('link[href="' + n + '"]')) && d.length > 0) return void (j(l) && l());
|
|
5926
5936
|
var h = document.getElementsByTagName("head")[0], m = h.querySelectorAll('link[rel="stylesheet"]'), g = document.createElement("link");
|
|
5927
|
-
return g.rel = "stylesheet", g.type = "text/css", g.href = n, g.media = "all", m ? h.insertBefore(g, m[0]) : h.appendChild(g), void (
|
|
5937
|
+
return g.rel = "stylesheet", g.type = "text/css", g.href = n, g.media = "all", m ? h.insertBefore(g, m[0]) : h.appendChild(g), void (j(l) && l());
|
|
5928
5938
|
}
|
|
5929
5939
|
if ((d = document.querySelectorAll('script[src="' + n + '"]')) && d.length > 0) {
|
|
5930
|
-
if (
|
|
5931
|
-
if (
|
|
5940
|
+
if (j(l)) {
|
|
5941
|
+
if (H(c)) return ae((function() {
|
|
5932
5942
|
return window[c] !== void 0;
|
|
5933
5943
|
}), (function() {
|
|
5934
5944
|
l();
|
|
@@ -5938,8 +5948,8 @@ function Js() {
|
|
|
5938
5948
|
} else {
|
|
5939
5949
|
var y = document.createElement("script");
|
|
5940
5950
|
y.type = "text/javascript", y.src = n, y.onload = function() {
|
|
5941
|
-
if (
|
|
5942
|
-
if (
|
|
5951
|
+
if (j(l)) {
|
|
5952
|
+
if (H(c)) return ae((function() {
|
|
5943
5953
|
return window[c] !== void 0;
|
|
5944
5954
|
}), (function() {
|
|
5945
5955
|
l();
|
|
@@ -5953,13 +5963,13 @@ function Js() {
|
|
|
5953
5963
|
function ge() {
|
|
5954
5964
|
return "navigator" in window && window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i);
|
|
5955
5965
|
}
|
|
5956
|
-
function
|
|
5966
|
+
function j(n) {
|
|
5957
5967
|
return typeof n == "function";
|
|
5958
5968
|
}
|
|
5959
|
-
function
|
|
5969
|
+
function H(n) {
|
|
5960
5970
|
return typeof n == "string";
|
|
5961
5971
|
}
|
|
5962
|
-
function
|
|
5972
|
+
function N(n) {
|
|
5963
5973
|
return !(!n || !n.nodeType || n.nodeType != 1);
|
|
5964
5974
|
}
|
|
5965
5975
|
function $e(n) {
|
|
@@ -5969,7 +5979,7 @@ function Js() {
|
|
|
5969
5979
|
return n && n.length && isFinite(n.length);
|
|
5970
5980
|
}
|
|
5971
5981
|
function Ve(n) {
|
|
5972
|
-
return o(n) === "object" && n != null && !
|
|
5982
|
+
return o(n) === "object" && n != null && !j(n) && !$e(n);
|
|
5973
5983
|
}
|
|
5974
5984
|
function be(n) {
|
|
5975
5985
|
return n == null;
|
|
@@ -5977,7 +5987,7 @@ function Js() {
|
|
|
5977
5987
|
function ie(n, c) {
|
|
5978
5988
|
return n !== null && hasOwnProperty.call(n, c);
|
|
5979
5989
|
}
|
|
5980
|
-
function
|
|
5990
|
+
function ua(n) {
|
|
5981
5991
|
if (Ve(n)) {
|
|
5982
5992
|
if (n.keys) return n.keys().length;
|
|
5983
5993
|
var c = 0;
|
|
@@ -5989,7 +5999,7 @@ function Js() {
|
|
|
5989
5999
|
function xt(n) {
|
|
5990
6000
|
return !isNaN(parseFloat(n)) && isFinite(n);
|
|
5991
6001
|
}
|
|
5992
|
-
function
|
|
6002
|
+
function pa() {
|
|
5993
6003
|
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1, c = document.querySelectorAll(".gbtn[data-taborder]:not(.disabled)");
|
|
5994
6004
|
if (!c.length) return !1;
|
|
5995
6005
|
if (c.length == 1) return c[0];
|
|
@@ -6007,7 +6017,7 @@ function Js() {
|
|
|
6007
6017
|
})), g = m.sort()[0];
|
|
6008
6018
|
return document.querySelector('.gbtn[data-taborder="'.concat(g, '"]'));
|
|
6009
6019
|
}
|
|
6010
|
-
function
|
|
6020
|
+
function wi(n) {
|
|
6011
6021
|
if (n.events.hasOwnProperty("keyboard")) return !1;
|
|
6012
6022
|
n.events.keyboard = w("keydown", { onElement: window, withCallback: function(c, l) {
|
|
6013
6023
|
var d = (c = c || window.event).keyCode;
|
|
@@ -6021,16 +6031,16 @@ function Js() {
|
|
|
6021
6031
|
var g = document.querySelectorAll(".gbtn[data-taborder]");
|
|
6022
6032
|
if (!g || g.length <= 0) return;
|
|
6023
6033
|
if (!h) {
|
|
6024
|
-
var y =
|
|
6034
|
+
var y = pa();
|
|
6025
6035
|
return void (y && (y.focus(), _(y, "focused")));
|
|
6026
6036
|
}
|
|
6027
|
-
var A =
|
|
6037
|
+
var A = pa(h.getAttribute("data-taborder"));
|
|
6028
6038
|
P(h, "focused"), A && (A.focus(), _(A, "focused"));
|
|
6029
6039
|
}
|
|
6030
6040
|
d == 39 && n.nextSlide(), d == 37 && n.prevSlide(), d == 27 && n.close();
|
|
6031
6041
|
} });
|
|
6032
6042
|
}
|
|
6033
|
-
var
|
|
6043
|
+
var xi = s((function n(c, l) {
|
|
6034
6044
|
var d = this, h = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
|
|
6035
6045
|
if (t(this, n), this.img = c, this.slide = l, this.onclose = h, this.img.setZoomEvents) return !1;
|
|
6036
6046
|
this.active = !1, this.zoomedIn = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.img.addEventListener("mousedown", (function(m) {
|
|
@@ -6072,7 +6082,7 @@ function Js() {
|
|
|
6072
6082
|
n.style.transform = "translate3d(" + c + "px, " + l + "px, 0)";
|
|
6073
6083
|
} }, { key: "widowWidth", value: function() {
|
|
6074
6084
|
return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
6075
|
-
} }]),
|
|
6085
|
+
} }]), ga = s((function n() {
|
|
6076
6086
|
var c = this, l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
6077
6087
|
t(this, n);
|
|
6078
6088
|
var d = l.dragEl, h = l.toleranceX, m = h === void 0 ? 40 : h, g = l.toleranceY, y = g === void 0 ? 65 : g, A = l.slide, S = A === void 0 ? null : A, I = l.instance, $ = I === void 0 ? null : I;
|
|
@@ -6124,13 +6134,13 @@ function Js() {
|
|
|
6124
6134
|
var d = arguments.length > 3 && arguments[3] !== void 0 && arguments[3];
|
|
6125
6135
|
n.style.transition = d ? "all .2s ease" : "", n.style.transform = "translate3d(".concat(c, "px, ").concat(l, "px, 0)");
|
|
6126
6136
|
} }]);
|
|
6127
|
-
function
|
|
6137
|
+
function ki(n, c, l, d) {
|
|
6128
6138
|
var h = n.querySelector(".gslide-media"), m = new Image(), g = "gSlideTitle_" + l, y = "gSlideDesc_" + l;
|
|
6129
6139
|
m.addEventListener("load", (function() {
|
|
6130
|
-
|
|
6140
|
+
j(d) && d();
|
|
6131
6141
|
}), !1), m.src = c.href, c.sizes != "" && c.srcset != "" && (m.sizes = c.sizes, m.srcset = c.srcset), m.alt = "", be(c.alt) || c.alt === "" || (m.alt = c.alt), c.title !== "" && m.setAttribute("aria-labelledby", g), c.description !== "" && m.setAttribute("aria-describedby", y), c.hasOwnProperty("_hasCustomWidth") && c._hasCustomWidth && (m.style.width = c.width), c.hasOwnProperty("_hasCustomHeight") && c._hasCustomHeight && (m.style.height = c.height), h.insertBefore(m, h.firstChild);
|
|
6132
6142
|
}
|
|
6133
|
-
function
|
|
6143
|
+
function _i(n, c, l, d) {
|
|
6134
6144
|
var h = this, m = n.querySelector(".ginner-container"), g = "gvideo" + l, y = n.querySelector(".gslide-media"), A = this.getAllPlayers();
|
|
6135
6145
|
_(m, "gvideo-container"), y.insertBefore(X('<div class="gvideo-wrapper"></div>'), y.firstChild);
|
|
6136
6146
|
var S = n.querySelector(".gvideo-wrapper");
|
|
@@ -6146,21 +6156,21 @@ function Js() {
|
|
|
6146
6156
|
_(S, "".concat($, "-video gvideo")), S.appendChild(D), S.setAttribute("data-id", g), S.setAttribute("data-index", l);
|
|
6147
6157
|
var ee = ie(h.settings.plyr, "config") ? h.settings.plyr.config : {}, me = new Plyr("#" + g, ee);
|
|
6148
6158
|
me.on("ready", (function(ue) {
|
|
6149
|
-
A[g] = ue.detail.plyr,
|
|
6159
|
+
A[g] = ue.detail.plyr, j(d) && d();
|
|
6150
6160
|
})), ae((function() {
|
|
6151
6161
|
return n.querySelector("iframe") && n.querySelector("iframe").dataset.ready == "true";
|
|
6152
6162
|
}), (function() {
|
|
6153
6163
|
h.resize(n);
|
|
6154
|
-
})), me.on("enterfullscreen",
|
|
6164
|
+
})), me.on("enterfullscreen", ma), me.on("exitfullscreen", ma);
|
|
6155
6165
|
}));
|
|
6156
6166
|
}
|
|
6157
|
-
function
|
|
6167
|
+
function ma(n) {
|
|
6158
6168
|
var c = M(n.target, ".gslide-media");
|
|
6159
6169
|
n.type === "enterfullscreen" && _(c, "fullscreen"), n.type === "exitfullscreen" && P(c, "fullscreen");
|
|
6160
6170
|
}
|
|
6161
|
-
function
|
|
6171
|
+
function Si(n, c, l, d) {
|
|
6162
6172
|
var h, m = this, g = n.querySelector(".gslide-media"), y = !(!ie(c, "href") || !c.href) && c.href.split("#").pop().trim(), A = !(!ie(c, "content") || !c.content) && c.content;
|
|
6163
|
-
if (A && (
|
|
6173
|
+
if (A && (H(A) && (h = X('<div class="ginlined-content">'.concat(A, "</div>"))), N(A))) {
|
|
6164
6174
|
A.style.display == "none" && (A.style.display = "block");
|
|
6165
6175
|
var S = document.createElement("div");
|
|
6166
6176
|
S.className = "ginlined-content", S.appendChild(A), h = S;
|
|
@@ -6174,18 +6184,18 @@ function Js() {
|
|
|
6174
6184
|
if (!h) return console.error("Unable to append inline slide content", c), !1;
|
|
6175
6185
|
g.style.height = c.height, g.style.width = c.width, g.appendChild(h), this.events["inlineclose" + y] = w("click", { onElement: g.querySelectorAll(".gtrigger-close"), withCallback: function(B) {
|
|
6176
6186
|
B.preventDefault(), m.close();
|
|
6177
|
-
} }),
|
|
6187
|
+
} }), j(d) && d();
|
|
6178
6188
|
}
|
|
6179
|
-
function
|
|
6189
|
+
function Ci(n, c, l, d) {
|
|
6180
6190
|
var h = n.querySelector(".gslide-media"), m = (function(g) {
|
|
6181
6191
|
var y = g.url, A = g.allow, S = g.callback, I = g.appendTo, $ = document.createElement("iframe");
|
|
6182
6192
|
return $.className = "vimeo-video gvideo", $.src = y, $.style.width = "100%", $.style.height = "100%", A && $.setAttribute("allow", A), $.onload = function() {
|
|
6183
|
-
$.onload = null, _($, "node-ready"),
|
|
6193
|
+
$.onload = null, _($, "node-ready"), j(S) && S();
|
|
6184
6194
|
}, I && I.appendChild($), $;
|
|
6185
6195
|
})({ url: c.href, callback: d });
|
|
6186
6196
|
h.parentNode.style.maxWidth = c.width, h.parentNode.style.height = c.height, h.appendChild(m);
|
|
6187
6197
|
}
|
|
6188
|
-
var
|
|
6198
|
+
var Ai = s((function n() {
|
|
6189
6199
|
var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
6190
6200
|
t(this, n), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: !1, zoomable: !0, draggable: !0 }, Ve(c) && (this.defaults = p(this.defaults, c));
|
|
6191
6201
|
}), [{ key: "sourceType", value: function(n) {
|
|
@@ -6193,7 +6203,7 @@ function Js() {
|
|
|
6193
6203
|
return (n = n.toLowerCase()).match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/) !== null ? "image" : n.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || n.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || n.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || n.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/) || n.match(/vimeo\.com\/([0-9]*)/) || n.match(/\.(mp4|ogg|webm|mov)/) !== null ? "video" : n.match(/\.(mp3|wav|wma|aac|ogg)/) !== null ? "audio" : n.indexOf("#") > -1 && c.split("#").pop().trim() !== "" ? "inline" : n.indexOf("goajax=true") > -1 ? "ajax" : "external";
|
|
6194
6204
|
} }, { key: "parseConfig", value: function(n, c) {
|
|
6195
6205
|
var l = this, d = p({ descPosition: c.descPosition }, this.defaults);
|
|
6196
|
-
if (Ve(n) && !
|
|
6206
|
+
if (Ve(n) && !N(n)) {
|
|
6197
6207
|
ie(n, "type") || (ie(n, "content") && n.content ? n.type = "inline" : ie(n, "href") && (n.type = this.sourceType(n.href)));
|
|
6198
6208
|
var h = p(d, n);
|
|
6199
6209
|
return this.setSize(h, c), h;
|
|
@@ -6251,19 +6261,19 @@ function Js() {
|
|
|
6251
6261
|
var n = this, c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, l = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
|
|
6252
6262
|
if (E(c, "loaded")) return !1;
|
|
6253
6263
|
var d = this.instance.settings, h = this.slideConfig, m = ge();
|
|
6254
|
-
|
|
6264
|
+
j(d.beforeSlideLoad) && d.beforeSlideLoad({ index: this.index, slide: c, player: !1 });
|
|
6255
6265
|
var g = h.type, y = h.descPosition, A = c.querySelector(".gslide-media"), S = c.querySelector(".gslide-title"), I = c.querySelector(".gslide-desc"), $ = c.querySelector(".gdesc-inner"), B = l, q = "gSlideTitle_" + this.index, D = "gSlideDesc_" + this.index;
|
|
6256
|
-
if (
|
|
6257
|
-
|
|
6266
|
+
if (j(d.afterSlideLoad) && (B = function() {
|
|
6267
|
+
j(l) && l(), d.afterSlideLoad({ index: n.index, slide: c, player: n.instance.getSlidePlayerInstance(n.index) });
|
|
6258
6268
|
}), h.title == "" && h.description == "" ? $ && $.parentNode.parentNode.removeChild($.parentNode) : (S && h.title !== "" ? (S.id = q, S.innerHTML = h.title) : S.parentNode.removeChild(S), I && h.description !== "" ? (I.id = D, m && d.moreLength > 0 ? (h.smallDescription = this.slideShortDesc(h.description, d.moreLength, d.moreText), I.innerHTML = h.smallDescription, this.descriptionEvents(I, h)) : I.innerHTML = h.description) : I.parentNode.removeChild(I), _(A.parentNode, "desc-".concat(y)), _($.parentNode, "description-".concat(y))), _(A, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
|
|
6259
|
-
if (g !== "external") return g === "inline" ? (
|
|
6269
|
+
if (g !== "external") return g === "inline" ? (Si.apply(this.instance, [c, h, this.index, B]), void (h.draggable && new ga({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? j(B) && B() : ki(c, h, this.index, (function() {
|
|
6260
6270
|
var ee = c.querySelector("img");
|
|
6261
|
-
h.draggable && new
|
|
6271
|
+
h.draggable && new ga({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), h.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new xi(ee, c, (function() {
|
|
6262
6272
|
n.instance.resize();
|
|
6263
|
-
}))),
|
|
6273
|
+
}))), j(B) && B();
|
|
6264
6274
|
})));
|
|
6265
|
-
|
|
6266
|
-
} else
|
|
6275
|
+
Ci.apply(this, [c, h, this.index, B]);
|
|
6276
|
+
} else _i.apply(this.instance, [c, h, this.index, B]);
|
|
6267
6277
|
} }, { key: "slideShortDesc", value: function(n) {
|
|
6268
6278
|
var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 50, l = arguments.length > 2 && arguments[2] !== void 0 && arguments[2], d = document.createElement("div");
|
|
6269
6279
|
d.innerHTML = n;
|
|
@@ -6288,14 +6298,14 @@ function Js() {
|
|
|
6288
6298
|
} }, { key: "create", value: function() {
|
|
6289
6299
|
return X(this.instance.settings.slideHTML);
|
|
6290
6300
|
} }, { key: "getConfig", value: function() {
|
|
6291
|
-
|
|
6292
|
-
var n = new
|
|
6301
|
+
N(this.element) || this.element.hasOwnProperty("draggable") || (this.element.draggable = this.instance.settings.draggable);
|
|
6302
|
+
var n = new Ai(this.instance.settings.slideExtraAttributes);
|
|
6293
6303
|
return this.slideConfig = n.parseConfig(this.element, this.instance.settings), this.slideConfig;
|
|
6294
6304
|
} }]);
|
|
6295
6305
|
function _t(n) {
|
|
6296
6306
|
return Math.sqrt(n.x * n.x + n.y * n.y);
|
|
6297
6307
|
}
|
|
6298
|
-
function
|
|
6308
|
+
function Mi(n, c) {
|
|
6299
6309
|
var l = (function(d, h) {
|
|
6300
6310
|
var m = _t(d) * _t(h);
|
|
6301
6311
|
if (m === 0) return 0;
|
|
@@ -6308,7 +6318,7 @@ function Js() {
|
|
|
6308
6318
|
return d.x * h.y - h.x * d.y;
|
|
6309
6319
|
})(n, c) > 0 && (l *= -1), 180 * l / Math.PI;
|
|
6310
6320
|
}
|
|
6311
|
-
var
|
|
6321
|
+
var Ti = s((function n(c) {
|
|
6312
6322
|
t(this, n), this.handlers = [], this.el = c;
|
|
6313
6323
|
}), [{ key: "add", value: function(n) {
|
|
6314
6324
|
this.handlers.push(n);
|
|
@@ -6322,10 +6332,10 @@ function Js() {
|
|
|
6322
6332
|
}
|
|
6323
6333
|
} }]);
|
|
6324
6334
|
function le(n, c) {
|
|
6325
|
-
var l = new
|
|
6335
|
+
var l = new Ti(n);
|
|
6326
6336
|
return l.add(c), l;
|
|
6327
6337
|
}
|
|
6328
|
-
var
|
|
6338
|
+
var Ii = s((function n(c, l) {
|
|
6329
6339
|
t(this, n), this.element = typeof c == "string" ? document.querySelector(c) : c, this.start = this.start.bind(this), this.move = this.move.bind(this), this.end = this.end.bind(this), this.cancel = this.cancel.bind(this), this.element.addEventListener("touchstart", this.start, !1), this.element.addEventListener("touchmove", this.move, !1), this.element.addEventListener("touchend", this.end, !1), this.element.addEventListener("touchcancel", this.cancel, !1), this.preV = { x: null, y: null }, this.pinchStartLen = null, this.zoom = 1, this.isDoubleTap = !1;
|
|
6330
6340
|
var d = function() {
|
|
6331
6341
|
};
|
|
@@ -6349,7 +6359,7 @@ function Js() {
|
|
|
6349
6359
|
var c = this.preV, l = n.touches.length, d = n.touches[0].pageX, h = n.touches[0].pageY;
|
|
6350
6360
|
if (this.isDoubleTap = !1, l > 1) {
|
|
6351
6361
|
var m = n.touches[1].pageX, g = n.touches[1].pageY, y = { x: n.touches[1].pageX - d, y: n.touches[1].pageY - h };
|
|
6352
|
-
c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle =
|
|
6362
|
+
c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Mi(y, c), this.rotate.dispatch(n, this.element)), c.x = y.x, c.y = y.y, this.x2 !== null && this.sx2 !== null ? (n.deltaX = (d - this.x2 + m - this.sx2) / 2, n.deltaY = (h - this.y2 + g - this.sy2) / 2) : (n.deltaX = 0, n.deltaY = 0), this.twoFingerPressMove.dispatch(n, this.element), this.sx2 = m, this.sy2 = g;
|
|
6353
6363
|
} else {
|
|
6354
6364
|
if (this.x2 !== null) {
|
|
6355
6365
|
n.deltaX = d - this.x2, n.deltaY = h - this.y2;
|
|
@@ -6389,7 +6399,7 @@ function Js() {
|
|
|
6389
6399
|
} }, { key: "destroy", value: function() {
|
|
6390
6400
|
return this.singleTapTimeout && clearTimeout(this.singleTapTimeout), this.tapTimeout && clearTimeout(this.tapTimeout), this.longTapTimeout && clearTimeout(this.longTapTimeout), this.swipeTimeout && clearTimeout(this.swipeTimeout), this.element.removeEventListener("touchstart", this.start), this.element.removeEventListener("touchmove", this.move), this.element.removeEventListener("touchend", this.end), this.element.removeEventListener("touchcancel", this.cancel), this.rotate.del(), this.touchStart.del(), this.multipointStart.del(), this.multipointEnd.del(), this.pinch.del(), this.swipe.del(), this.tap.del(), this.doubleTap.del(), this.longTap.del(), this.singleTap.del(), this.pressMove.del(), this.twoFingerPressMove.del(), this.touchMove.del(), this.touchEnd.del(), this.touchCancel.del(), this.preV = this.pinchStartLen = this.zoom = this.isDoubleTap = this.delta = this.last = this.now = this.tapTimeout = this.singleTapTimeout = this.longTapTimeout = this.swipeTimeout = this.x1 = this.x2 = this.y1 = this.y2 = this.preTapPosition = this.rotate = this.touchStart = this.multipointStart = this.multipointEnd = this.pinch = this.swipe = this.tap = this.doubleTap = this.longTap = this.singleTap = this.pressMove = this.touchMove = this.touchEnd = this.touchCancel = this.twoFingerPressMove = null, window.removeEventListener("scroll", this._cancelAllHandler), null;
|
|
6391
6401
|
} }]);
|
|
6392
|
-
function
|
|
6402
|
+
function Ut(n) {
|
|
6393
6403
|
var c = (function() {
|
|
6394
6404
|
var g, y = document.createElement("fakeelement"), A = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" };
|
|
6395
6405
|
for (g in A) if (y.style[g] !== void 0) return A[g];
|
|
@@ -6398,11 +6408,11 @@ function Js() {
|
|
|
6398
6408
|
P(d, "greset");
|
|
6399
6409
|
} }), d.style.opacity = "", m && (m.style.opacity = "");
|
|
6400
6410
|
}
|
|
6401
|
-
function
|
|
6411
|
+
function Ei(n) {
|
|
6402
6412
|
if (n.events.hasOwnProperty("touch")) return !1;
|
|
6403
|
-
var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, I = null, $ = !1, B = 1, q = 1, D = !1, ee = !1, me = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {},
|
|
6413
|
+
var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, I = null, $ = !1, B = 1, q = 1, D = !1, ee = !1, me = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, xa = 0, ka = 0, Li = document.getElementById("glightbox-slider"), St = document.querySelector(".goverlay"), Ri = new Ii(Li, { touchStart: function(Y) {
|
|
6404
6414
|
if (y = !0, (E(Y.targetTouches[0].target, "ginner-container") || M(Y.targetTouches[0].target, ".gslide-desc") || Y.targetTouches[0].target.nodeName.toLowerCase() == "a") && (y = !1), M(Y.targetTouches[0].target, ".gslide-inline") && !E(Y.targetTouches[0].target.parentNode, "gslide-inline") && (y = !1), y) {
|
|
6405
|
-
if (Se = Y.targetTouches[0], _e.pageX = Y.targetTouches[0].pageX, _e.pageY = Y.targetTouches[0].pageY,
|
|
6415
|
+
if (Se = Y.targetTouches[0], _e.pageX = Y.targetTouches[0].pageX, _e.pageY = Y.targetTouches[0].pageY, xa = Y.targetTouches[0].clientX, ka = Y.targetTouches[0].clientY, A = n.activeSlide, S = A.querySelector(".gslide-media"), d = A.querySelector(".gslide-inline"), I = null, E(S, "gslide-image") && (I = S.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (S = A.querySelector(".ginner-container")), P(St, "greset"), Y.pageX > 20 && Y.pageX < window.innerWidth - 20) return;
|
|
6406
6416
|
Y.preventDefault();
|
|
6407
6417
|
}
|
|
6408
6418
|
}, touchMove: function(Y) {
|
|
@@ -6412,15 +6422,15 @@ function Js() {
|
|
|
6412
6422
|
if (Math.abs(de) <= 13) return !1;
|
|
6413
6423
|
}
|
|
6414
6424
|
$ = !0;
|
|
6415
|
-
var Ne, Ct = Y.targetTouches[0].clientX,
|
|
6416
|
-
if (Math.abs(
|
|
6425
|
+
var Ne, Ct = Y.targetTouches[0].clientX, zi = Y.targetTouches[0].clientY, Oi = xa - Ct, Bi = ka - zi;
|
|
6426
|
+
if (Math.abs(Oi) > Math.abs(Bi) ? (ht = !1, rt = !0) : (rt = !1, ht = !0), c = Se.pageX - _e.pageX, Re = 100 * c / m, l = Se.pageY - _e.pageY, ze = 100 * l / g, ht && I && (Ne = 1 - Math.abs(l) / g, St.style.opacity = Ne, n.settings.touchFollowAxis && (Re = 0)), rt && (Ne = 1 - Math.abs(c) / m, S.style.opacity = Ne, n.settings.touchFollowAxis && (ze = 0)), !I) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
|
|
6417
6427
|
C(S, "translate3d(".concat(Re, "%, ").concat(ze, "%, 0)"));
|
|
6418
6428
|
}
|
|
6419
6429
|
}, touchEnd: function() {
|
|
6420
6430
|
if (y) {
|
|
6421
6431
|
if ($ = !1, ee || D) return Le = me, void (oe = ue);
|
|
6422
6432
|
var Y = Math.abs(parseInt(ze)), de = Math.abs(parseInt(Re));
|
|
6423
|
-
if (!(Y > 29 && I)) return Y < 29 && de < 25 ? (_(St, "greset"), St.style.opacity = 1,
|
|
6433
|
+
if (!(Y > 29 && I)) return Y < 29 && de < 25 ? (_(St, "greset"), St.style.opacity = 1, Ut(S)) : void 0;
|
|
6424
6434
|
n.close();
|
|
6425
6435
|
}
|
|
6426
6436
|
}, multipointEnd: function() {
|
|
@@ -6446,18 +6456,18 @@ function Js() {
|
|
|
6446
6456
|
if (!ee) if (D) D = !1;
|
|
6447
6457
|
else {
|
|
6448
6458
|
if (Y.direction == "Left") {
|
|
6449
|
-
if (n.index == n.elements.length - 1) return
|
|
6459
|
+
if (n.index == n.elements.length - 1) return Ut(S);
|
|
6450
6460
|
n.nextSlide();
|
|
6451
6461
|
}
|
|
6452
6462
|
if (Y.direction == "Right") {
|
|
6453
|
-
if (n.index == 0) return
|
|
6463
|
+
if (n.index == 0) return Ut(S);
|
|
6454
6464
|
n.prevSlide();
|
|
6455
6465
|
}
|
|
6456
6466
|
}
|
|
6457
6467
|
} });
|
|
6458
|
-
n.events.touch =
|
|
6468
|
+
n.events.touch = Ri;
|
|
6459
6469
|
}
|
|
6460
|
-
var
|
|
6470
|
+
var ya = ge(), va = ge() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, wa = document.getElementsByTagName("html")[0], $i = { selector: ".glightbox", elements: null, skin: "clean", theme: "clean", closeButton: !0, startAt: null, autoplayVideos: !0, autofocusVideos: !0, descPosition: "bottom", width: "900px", height: "506px", videosWidth: "960px", beforeSlideChange: null, afterSlideChange: null, beforeSlideLoad: null, afterSlideLoad: null, slideInserted: null, slideRemoved: null, slideExtraAttributes: null, onOpen: null, onClose: null, loop: !1, zoomable: !0, draggable: !0, dragAutoSnap: !1, dragToleranceX: 40, dragToleranceY: 65, preload: !0, oneSlidePerOpen: !1, touchNavigation: !0, touchFollowAxis: !0, keyboardNavigation: !0, closeOnOutsideClick: !0, plugins: !1, plyr: { css: "https://cdn.plyr.io/3.6.12/plyr.css", js: "https://cdn.plyr.io/3.6.12/plyr.js", config: { ratio: "16:9", fullscreen: { enabled: !0, iosNative: !0 }, youtube: { noCookie: !0, rel: 0, showinfo: 0, iv_load_policy: 3 }, vimeo: { byline: !1, portrait: !1, title: !1, transparent: !1 } } }, openEffect: "zoom", closeEffect: "zoom", slideEffect: "slide", moreText: "See more", moreLength: 60, cssEfects: { fade: { in: "fadeIn", out: "fadeOut" }, zoom: { in: "zoomIn", out: "zoomOut" }, slide: { in: "slideInRight", out: "slideOutLeft" }, slideBack: { in: "slideInLeft", out: "slideOutRight" }, none: { in: "none", out: "none" } }, svg: { close: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z"/></g></g><g><g><path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"/></g></g></svg>', next: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"> <g><path d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z"/></g></svg>', prev: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"><g><path d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z"/></g></svg>' }, slideHTML: `<div class="gslide">
|
|
6461
6471
|
<div class="gslide-inner-content">
|
|
6462
6472
|
<div class="ginner-container">
|
|
6463
6473
|
<div class="gslide-media">
|
|
@@ -6479,9 +6489,9 @@ function Js() {
|
|
|
6479
6489
|
<button class="gprev gbtn" aria-label="Previous" data-taborder="2">{prevSVG}</button>
|
|
6480
6490
|
<button class="gnext gbtn" aria-label="Next" data-taborder="1">{nextSVG}</button>
|
|
6481
6491
|
</div>
|
|
6482
|
-
</div>` },
|
|
6492
|
+
</div>` }, Pi = s((function n() {
|
|
6483
6493
|
var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
6484
|
-
t(this, n), this.customOptions = c, this.settings = p(
|
|
6494
|
+
t(this, n), this.customOptions = c, this.settings = p($i, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
|
|
6485
6495
|
}), [{ key: "init", value: function() {
|
|
6486
6496
|
var n = this, c = this.getSelector();
|
|
6487
6497
|
c && (this.baseEvents = w("click", { onElement: c, withCallback: function(l, d) {
|
|
@@ -6492,7 +6502,7 @@ function Js() {
|
|
|
6492
6502
|
if (this.elements.length === 0) return !1;
|
|
6493
6503
|
this.activeSlide = null, this.prevActiveSlideIndex = null, this.prevActiveSlide = null;
|
|
6494
6504
|
var l = xt(c) ? c : this.settings.startAt;
|
|
6495
|
-
if (
|
|
6505
|
+
if (N(n)) {
|
|
6496
6506
|
var d = n.getAttribute("data-gallery");
|
|
6497
6507
|
d && (this.fullElementsList = this.elements, this.elements = this.getGalleryElements(this.elements, d)), be(l) && (l = this.getElementIndex(n)) < 0 && (l = 0);
|
|
6498
6508
|
}
|
|
@@ -6502,7 +6512,7 @@ function Js() {
|
|
|
6502
6512
|
var g = document.createElement("style");
|
|
6503
6513
|
g.type = "text/css", g.className = "gcss-styles", g.innerText = ".gscrollbar-fixer {margin-right: ".concat(m, "px}"), document.head.appendChild(g), _(h, "gscrollbar-fixer");
|
|
6504
6514
|
}
|
|
6505
|
-
_(h, "glightbox-open"), _(
|
|
6515
|
+
_(h, "glightbox-open"), _(wa, "glightbox-open"), ya && (_(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(l, !0), this.elements.length === 1 ? (_(this.prevButton, "glightbox-button-hidden"), _(this.nextButton, "glightbox-button-hidden")) : (P(this.prevButton, "glightbox-button-hidden"), P(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = !0, this.trigger("open"), j(this.settings.onOpen) && this.settings.onOpen(), va && this.settings.touchNavigation && Ei(this), this.settings.keyboardNavigation && wi(this);
|
|
6506
6516
|
} }, { key: "openAt", value: function() {
|
|
6507
6517
|
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
|
6508
6518
|
this.open(null, n);
|
|
@@ -6556,21 +6566,21 @@ function Js() {
|
|
|
6556
6566
|
}
|
|
6557
6567
|
(this.settings.preload && this.index == 0 && c == 0 || this.index - 1 == c || this.index + 1 == c) && this.preloadSlide(c), this.index === 0 && c === 0 && (this.index = 1), this.updateNavigationClasses(), y = this.slidesContainer.querySelectorAll(".gslide")[c], A = this.getSlidePlayerInstance(c), h.slideNode = y;
|
|
6558
6568
|
}
|
|
6559
|
-
this.trigger("slide_inserted", { index: c, slide: y, slideNode: y, slideConfig: d, slideIndex: c, trigger: null, player: A }),
|
|
6569
|
+
this.trigger("slide_inserted", { index: c, slide: y, slideNode: y, slideConfig: d, slideIndex: c, trigger: null, player: A }), j(this.settings.slideInserted) && this.settings.slideInserted({ index: c, slide: y, player: A });
|
|
6560
6570
|
} }, { key: "removeSlide", value: function() {
|
|
6561
6571
|
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1;
|
|
6562
6572
|
if (n < 0 || n > this.elements.length - 1) return !1;
|
|
6563
6573
|
var c = this.slidesContainer && this.slidesContainer.querySelectorAll(".gslide")[n];
|
|
6564
|
-
c && (this.getActiveSlideIndex() == n && (n == this.elements.length - 1 ? this.prevSlide() : this.nextSlide()), c.parentNode.removeChild(c)), this.elements.splice(n, 1), this.trigger("slide_removed", n),
|
|
6574
|
+
c && (this.getActiveSlideIndex() == n && (n == this.elements.length - 1 ? this.prevSlide() : this.nextSlide()), c.parentNode.removeChild(c)), this.elements.splice(n, 1), this.trigger("slide_removed", n), j(this.settings.slideRemoved) && this.settings.slideRemoved(n);
|
|
6565
6575
|
} }, { key: "slideAnimateIn", value: function(n, c) {
|
|
6566
6576
|
var l = this, d = n.querySelector(".gslide-media"), h = n.querySelector(".gslide-description"), m = { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlide, slideConfig: be(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: be(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, g = { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideConfig: this.elements[this.index].slideConfig, slideIndex: this.index, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) };
|
|
6567
6577
|
if (d.offsetWidth > 0 && h && (U(h), h.style.display = ""), P(n, this.effectsClasses), c) L(n, this.settings.cssEfects[this.settings.openEffect].in, (function() {
|
|
6568
|
-
l.settings.autoplayVideos && l.slidePlayerPlay(n), l.trigger("slide_changed", { prev: m, current: g }),
|
|
6578
|
+
l.settings.autoplayVideos && l.slidePlayerPlay(n), l.trigger("slide_changed", { prev: m, current: g }), j(l.settings.afterSlideChange) && l.settings.afterSlideChange.apply(l, [m, g]);
|
|
6569
6579
|
}));
|
|
6570
6580
|
else {
|
|
6571
6581
|
var y = this.settings.slideEffect, A = y !== "none" ? this.settings.cssEfects[y].in : y;
|
|
6572
6582
|
this.prevActiveSlideIndex > this.index && this.settings.slideEffect == "slide" && (A = this.settings.cssEfects.slideBack.in), L(n, A, (function() {
|
|
6573
|
-
l.settings.autoplayVideos && l.slidePlayerPlay(n), l.trigger("slide_changed", { prev: m, current: g }),
|
|
6583
|
+
l.settings.autoplayVideos && l.slidePlayerPlay(n), l.trigger("slide_changed", { prev: m, current: g }), j(l.settings.afterSlideChange) && l.settings.afterSlideChange.apply(l, [m, g]);
|
|
6574
6584
|
}));
|
|
6575
6585
|
}
|
|
6576
6586
|
setTimeout((function() {
|
|
@@ -6581,7 +6591,7 @@ function Js() {
|
|
|
6581
6591
|
var n = this.prevActiveSlide;
|
|
6582
6592
|
P(n, this.effectsClasses), _(n, "prev");
|
|
6583
6593
|
var c = this.settings.slideEffect, l = c !== "none" ? this.settings.cssEfects[c].out : c;
|
|
6584
|
-
this.slidePlayerPause(n), this.trigger("slide_before_change", { prev: { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlideIndex, slideConfig: be(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: be(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, current: { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideIndex: this.index, slideConfig: this.elements[this.index].slideConfig, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) } }),
|
|
6594
|
+
this.slidePlayerPause(n), this.trigger("slide_before_change", { prev: { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlideIndex, slideConfig: be(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: be(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, current: { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideIndex: this.index, slideConfig: this.elements[this.index].slideConfig, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) } }), j(this.settings.beforeSlideChange) && this.settings.beforeSlideChange.apply(this, [{ index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, { index: this.index, slide: this.activeSlide, player: this.getSlidePlayerInstance(this.index) }]), this.prevActiveSlideIndex > this.index && this.settings.slideEffect == "slide" && (l = this.settings.cssEfects.slideBack.out), L(n, l, (function() {
|
|
6585
6595
|
var d = n.querySelector(".ginner-container"), h = n.querySelector(".gslide-media"), m = n.querySelector(".gslide-description");
|
|
6586
6596
|
d.style.transform = "", h.style.transform = "", P(h, "greset"), h.style.opacity = "", m && (m.style.opacity = ""), P(n, "prev");
|
|
6587
6597
|
}));
|
|
@@ -6591,7 +6601,7 @@ function Js() {
|
|
|
6591
6601
|
var c = "gvideo" + n, l = this.getAllPlayers();
|
|
6592
6602
|
return !(!ie(l, c) || !l[c]) && l[c];
|
|
6593
6603
|
} }, { key: "stopSlideVideo", value: function(n) {
|
|
6594
|
-
if (
|
|
6604
|
+
if (N(n)) {
|
|
6595
6605
|
var c = n.querySelector(".gvideo-wrapper");
|
|
6596
6606
|
c && (n = c.getAttribute("data-index"));
|
|
6597
6607
|
}
|
|
@@ -6599,14 +6609,14 @@ function Js() {
|
|
|
6599
6609
|
var l = this.getSlidePlayerInstance(n);
|
|
6600
6610
|
l && l.playing && l.pause();
|
|
6601
6611
|
} }, { key: "slidePlayerPause", value: function(n) {
|
|
6602
|
-
if (
|
|
6612
|
+
if (N(n)) {
|
|
6603
6613
|
var c = n.querySelector(".gvideo-wrapper");
|
|
6604
6614
|
c && (n = c.getAttribute("data-index"));
|
|
6605
6615
|
}
|
|
6606
6616
|
var l = this.getSlidePlayerInstance(n);
|
|
6607
6617
|
l && l.playing && l.pause();
|
|
6608
6618
|
} }, { key: "playSlideVideo", value: function(n) {
|
|
6609
|
-
if (
|
|
6619
|
+
if (N(n)) {
|
|
6610
6620
|
var c = n.querySelector(".gvideo-wrapper");
|
|
6611
6621
|
c && (n = c.getAttribute("data-index"));
|
|
6612
6622
|
}
|
|
@@ -6615,8 +6625,8 @@ function Js() {
|
|
|
6615
6625
|
l && !l.playing && l.play();
|
|
6616
6626
|
} }, { key: "slidePlayerPlay", value: function(n) {
|
|
6617
6627
|
var c;
|
|
6618
|
-
if (!
|
|
6619
|
-
if (
|
|
6628
|
+
if (!ya || (c = this.settings.plyr.config) !== null && c !== void 0 && c.muted) {
|
|
6629
|
+
if (N(n)) {
|
|
6620
6630
|
var l = n.querySelector(".gvideo-wrapper");
|
|
6621
6631
|
l && (n = l.getAttribute("data-index"));
|
|
6622
6632
|
}
|
|
@@ -6689,7 +6699,7 @@ function Js() {
|
|
|
6689
6699
|
n.preventOutsideClick || E(document.body, "glightbox-mobile") || M(S.target, ".ginner-container") || M(S.target, ".gbtn") || E(S.target, "gnext") || E(S.target, "gprev") || n.close();
|
|
6690
6700
|
} })), v(this.elements, (function(S, I) {
|
|
6691
6701
|
n.slidesContainer.appendChild(S.instance.create()), S.slideNode = n.slidesContainer.querySelectorAll(".gslide")[I];
|
|
6692
|
-
})),
|
|
6702
|
+
})), va && _(document.body, "glightbox-touch"), this.events.resize = w("resize", { onElement: window, withCallback: function() {
|
|
6693
6703
|
n.resize();
|
|
6694
6704
|
} }), this.built = !0;
|
|
6695
6705
|
} }, { key: "resize", value: function() {
|
|
@@ -6745,7 +6755,7 @@ function Js() {
|
|
|
6745
6755
|
n.events = null;
|
|
6746
6756
|
}
|
|
6747
6757
|
var d = document.body;
|
|
6748
|
-
P(
|
|
6758
|
+
P(wa, "glightbox-open"), P(d, "glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"), n.modal.parentNode.removeChild(n.modal), n.trigger("close"), j(n.settings.onClose) && n.settings.onClose();
|
|
6749
6759
|
var h = document.querySelector(".gcss-styles");
|
|
6750
6760
|
h && h.parentNode.removeChild(h), n.lightboxOpen = !1, n.closing = null;
|
|
6751
6761
|
}));
|
|
@@ -6753,7 +6763,7 @@ function Js() {
|
|
|
6753
6763
|
this.close(), this.clearAllEvents(), this.baseEvents && this.baseEvents.destroy();
|
|
6754
6764
|
} }, { key: "on", value: function(n, c) {
|
|
6755
6765
|
var l = arguments.length > 2 && arguments[2] !== void 0 && arguments[2];
|
|
6756
|
-
if (!n || !
|
|
6766
|
+
if (!n || !j(c)) throw new TypeError("Event name and callback must be defined");
|
|
6757
6767
|
this.apiEvents.push({ evt: n, once: l, callback: c });
|
|
6758
6768
|
} }, { key: "once", value: function(n, c) {
|
|
6759
6769
|
this.on(n, c, !0);
|
|
@@ -6771,25 +6781,25 @@ function Js() {
|
|
|
6771
6781
|
return "3.3.1";
|
|
6772
6782
|
} }]);
|
|
6773
6783
|
return function() {
|
|
6774
|
-
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new
|
|
6784
|
+
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new Pi(n);
|
|
6775
6785
|
return c.init(), c;
|
|
6776
6786
|
};
|
|
6777
6787
|
}));
|
|
6778
6788
|
})(Rt)), Rt.exports;
|
|
6779
6789
|
}
|
|
6780
|
-
var
|
|
6781
|
-
const
|
|
6782
|
-
var
|
|
6783
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6790
|
+
var Ks = Zs();
|
|
6791
|
+
const Qs = /* @__PURE__ */ Wa(Ks);
|
|
6792
|
+
var en = Object.getOwnPropertyDescriptor, tn = (a, e, t, i) => {
|
|
6793
|
+
for (var s = i > 1 ? void 0 : i ? en(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6784
6794
|
(o = a[r]) && (s = o(s) || s);
|
|
6785
6795
|
return s;
|
|
6786
6796
|
};
|
|
6787
|
-
let
|
|
6797
|
+
let Kt = class extends Fe {
|
|
6788
6798
|
render() {
|
|
6789
6799
|
return u` <div class="cb-thinking"><span></span><span></span><span></span></div>`;
|
|
6790
6800
|
}
|
|
6791
6801
|
};
|
|
6792
|
-
|
|
6802
|
+
Kt.styles = J`
|
|
6793
6803
|
.cb-thinking {
|
|
6794
6804
|
text-align: center;
|
|
6795
6805
|
}
|
|
@@ -6827,13 +6837,13 @@ Zt.styles = J`
|
|
|
6827
6837
|
}
|
|
6828
6838
|
}
|
|
6829
6839
|
`;
|
|
6830
|
-
|
|
6840
|
+
Kt = tn([
|
|
6831
6841
|
Z("cb-thinking")
|
|
6832
|
-
],
|
|
6833
|
-
var
|
|
6834
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6842
|
+
], Kt);
|
|
6843
|
+
var an = Object.defineProperty, sn = Object.getOwnPropertyDescriptor, ti = (a, e, t, i) => {
|
|
6844
|
+
for (var s = i > 1 ? void 0 : i ? sn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6835
6845
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
6836
|
-
return i && s &&
|
|
6846
|
+
return i && s && an(e, t, s), s;
|
|
6837
6847
|
};
|
|
6838
6848
|
let qt = class extends re {
|
|
6839
6849
|
constructor() {
|
|
@@ -6869,13 +6879,13 @@ qt.styles = J`
|
|
|
6869
6879
|
margin-right: 5px;
|
|
6870
6880
|
}
|
|
6871
6881
|
`;
|
|
6872
|
-
|
|
6882
|
+
ti([
|
|
6873
6883
|
x({ type: Array })
|
|
6874
6884
|
], qt.prototype, "files", 2);
|
|
6875
|
-
qt =
|
|
6885
|
+
qt = ti([
|
|
6876
6886
|
Z("cb-uploading")
|
|
6877
6887
|
], qt);
|
|
6878
|
-
const
|
|
6888
|
+
const nn = J`
|
|
6879
6889
|
${ke}
|
|
6880
6890
|
:host {
|
|
6881
6891
|
}
|
|
@@ -6896,10 +6906,10 @@ const sn = J`
|
|
|
6896
6906
|
margin-right: 0.2em;
|
|
6897
6907
|
}
|
|
6898
6908
|
`;
|
|
6899
|
-
var
|
|
6900
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6909
|
+
var rn = Object.defineProperty, on = Object.getOwnPropertyDescriptor, ca = (a, e, t, i) => {
|
|
6910
|
+
for (var s = i > 1 ? void 0 : i ? on(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6901
6911
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
6902
|
-
return i && s &&
|
|
6912
|
+
return i && s && rn(e, t, s), s;
|
|
6903
6913
|
};
|
|
6904
6914
|
let mt = class extends Fe {
|
|
6905
6915
|
constructor() {
|
|
@@ -6946,29 +6956,29 @@ mt.styles = J`
|
|
|
6946
6956
|
text-decoration: underline;
|
|
6947
6957
|
}
|
|
6948
6958
|
`;
|
|
6949
|
-
|
|
6959
|
+
ca([
|
|
6950
6960
|
x({ type: String })
|
|
6951
6961
|
], mt.prototype, "url", 2);
|
|
6952
|
-
|
|
6962
|
+
ca([
|
|
6953
6963
|
x({ type: Boolean })
|
|
6954
6964
|
], mt.prototype, "inverse", 2);
|
|
6955
|
-
mt =
|
|
6965
|
+
mt = ca([
|
|
6956
6966
|
Z("cb-external-link")
|
|
6957
6967
|
], mt);
|
|
6958
|
-
const
|
|
6959
|
-
var
|
|
6960
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6968
|
+
const cn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-2v-1h2a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337zm4.689-3.999h-.894L4.9 13.289h-.035l-.832-1.439h-.932l1.228 1.983l-1.24 2.016h.862l.853-1.415h.035l.85 1.415h.907l-1.253-1.992zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', ln = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m1.217-1.333v3.999h1.46q.602 0 .998-.237a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.589-.68q-.396-.234-1.005-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082h-.563zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638z"/></svg>', dn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2H9v-1h3a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM.706 13.189v2.66H0V11.85h.806l1.14 2.596h.026l1.14-2.596h.8v3.999h-.716v-2.66h-.038l-.946 2.159h-.516l-.952-2.16H.706Zm3.919 2.66V11.85h1.459q.609 0 1.005.234t.589.68q.195.445.196 1.075q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562q.279 0 .484-.082a.8.8 0 0 0 .334-.252a1.1 1.1 0 0 0 .196-.422q.067-.252.067-.592a2.1 2.1 0 0 0-.117-.753a.9.9 0 0 0-.354-.454q-.238-.152-.61-.152"/></svg>', fn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM3.517 14.841a1.13 1.13 0 0 0 .401.823q.195.162.478.252q.284.091.665.091q.507 0 .859-.158q.354-.158.539-.44q.187-.284.187-.656q0-.336-.134-.56a1 1 0 0 0-.375-.357a2 2 0 0 0-.566-.21l-.621-.144a1 1 0 0 1-.404-.176a.37.37 0 0 1-.144-.299q0-.234.185-.384q.188-.152.512-.152q.214 0 .37.068a.6.6 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.1 1.1 0 0 0-.2-.566a1.2 1.2 0 0 0-.5-.41a1.8 1.8 0 0 0-.78-.152q-.439 0-.776.15q-.337.149-.527.421q-.19.273-.19.639q0 .302.122.524q.124.223.352.367q.228.143.539.213l.618.144q.31.073.463.193a.39.39 0 0 1 .152.326a.5.5 0 0 1-.085.29a.56.56 0 0 1-.255.193q-.167.07-.413.07q-.175 0-.32-.04a.8.8 0 0 1-.248-.115a.58.58 0 0 1-.255-.384zM.806 13.693q0-.373.102-.633a.87.87 0 0 1 .302-.399a.8.8 0 0 1 .475-.137q.225 0 .398.097a.7.7 0 0 1 .272.26a.85.85 0 0 1 .12.381h.765v-.072a1.33 1.33 0 0 0-.466-.964a1.4 1.4 0 0 0-.489-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.572.632q-.195.41-.196.979v.498q0 .568.193.976q.197.407.572.626q.375.217.914.217q.439 0 .785-.164t.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.8.8 0 0 1-.118.363a.7.7 0 0 1-.272.25a.9.9 0 0 1-.401.087a.85.85 0 0 1-.478-.132a.83.83 0 0 1-.299-.392a1.7 1.7 0 0 1-.102-.627zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879z"/></svg>', hn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m2.817-1.333h-1.6v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474q.162-.302.161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H4.15V12.48h.66q.327 0 .512.181q.185.183.185.522m2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662z"/></svg>', bn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zm-7.839 9.166v.522q0 .384-.117.641a.86.86 0 0 1-.322.387a.9.9 0 0 1-.469.126a.9.9 0 0 1-.471-.126a.87.87 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522q0-.386.117-.641a.87.87 0 0 1 .32-.387a.87.87 0 0 1 .471-.129q.264 0 .469.13a.86.86 0 0 1 .322.386q.117.255.117.641m.803.519v-.513q0-.565-.205-.972a1.46 1.46 0 0 0-.589-.63q-.381-.22-.917-.22q-.533 0-.92.22a1.44 1.44 0 0 0-.589.627q-.204.406-.205.975v.513q0 .563.205.973q.205.406.59.627q.386.216.92.216q.535 0 .916-.216q.383-.22.59-.627q.204-.41.204-.973M0 11.926v4h1.459q.603 0 .999-.238a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.59-.68q-.395-.234-1.004-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082H.79V12.57Zm7.422.483a1.7 1.7 0 0 0-.103.633v.495q0 .369.103.627a.83.83 0 0 0 .298.393a.85.85 0 0 0 .478.131a.9.9 0 0 0 .401-.088a.7.7 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.27 1.27 0 0 1-.226.674q-.205.29-.55.454a1.8 1.8 0 0 1-.786.164q-.54 0-.914-.216a1.4 1.4 0 0 1-.571-.627q-.194-.408-.194-.976v-.498q0-.568.197-.978q.195-.411.571-.633q.378-.223.911-.223q.328 0 .607.097q.28.093.489.272a1.33 1.33 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.8.8 0 0 0-.398-.097a.8.8 0 0 0-.475.138a.87.87 0 0 0-.301.398"/></svg>', un = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V11h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zm-6.839 9.688v-.522a1.5 1.5 0 0 0-.117-.641a.86.86 0 0 0-.322-.387a.86.86 0 0 0-.469-.129a.87.87 0 0 0-.471.13a.87.87 0 0 0-.32.386a1.5 1.5 0 0 0-.117.641v.522q0 .384.117.641a.87.87 0 0 0 .32.387a.9.9 0 0 0 .471.126a.9.9 0 0 0 .469-.126a.86.86 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642m.803-.516v.513q0 .563-.205.973a1.47 1.47 0 0 1-.589.627q-.381.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.46 1.46 0 0 1-.589-.627a2.15 2.15 0 0 1-.205-.973v-.513q0-.569.205-.975q.205-.411.59-.627q.386-.22.92-.22q.535 0 .916.22q.383.219.59.63q.204.406.204.972M1 15.925v-3.999h1.459q.609 0 1.005.235q.396.233.589.68q.196.445.196 1.074q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-.999.237zm1.354-3.354H1.79v2.707h.563q.277 0 .483-.082a.8.8 0 0 0 .334-.252q.132-.17.196-.422a2.3 2.3 0 0 0 .068-.592q0-.45-.118-.753a.9.9 0 0 0-.354-.454q-.237-.152-.61-.152Zm6.756 1.116q0-.373.103-.633a.87.87 0 0 1 .301-.398a.8.8 0 0 1 .475-.138q.225 0 .398.097a.7.7 0 0 1 .273.26a.85.85 0 0 1 .12.381h.765v-.073a1.33 1.33 0 0 0-.466-.964a1.4 1.4 0 0 0-.49-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.571.633q-.197.41-.197.978v.498q0 .568.194.976q.195.406.571.627q.375.216.914.216q.44 0 .785-.164t.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.7.7 0 0 1-.273.248a.9.9 0 0 1-.401.088a.85.85 0 0 1-.478-.131a.83.83 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627zm5.092-1.76h.894l-1.275 2.006l1.254 1.992h-.908l-.85-1.415h-.035l-.852 1.415h-.862l1.24-2.015l-1.228-1.984h.932l.832 1.439h.035z"/></svg>';
|
|
6969
|
+
var pn = Object.defineProperty, gn = Object.getOwnPropertyDescriptor, la = (a, e, t, i) => {
|
|
6970
|
+
for (var s = i > 1 ? void 0 : i ? gn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6961
6971
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
6962
|
-
return i && s &&
|
|
6972
|
+
return i && s && pn(e, t, s), s;
|
|
6963
6973
|
};
|
|
6964
|
-
const
|
|
6965
|
-
pdf:
|
|
6966
|
-
txt:
|
|
6967
|
-
md:
|
|
6968
|
-
csv:
|
|
6969
|
-
ppd:
|
|
6970
|
-
doc:
|
|
6971
|
-
docx:
|
|
6974
|
+
const La = {
|
|
6975
|
+
pdf: ln,
|
|
6976
|
+
txt: cn,
|
|
6977
|
+
md: dn,
|
|
6978
|
+
csv: fn,
|
|
6979
|
+
ppd: hn,
|
|
6980
|
+
doc: bn,
|
|
6981
|
+
docx: un
|
|
6972
6982
|
};
|
|
6973
6983
|
let yt = class extends re {
|
|
6974
6984
|
constructor() {
|
|
@@ -6994,22 +7004,22 @@ let yt = class extends re {
|
|
|
6994
7004
|
return u`
|
|
6995
7005
|
<cb-icon
|
|
6996
7006
|
class="cb-file-icon"
|
|
6997
|
-
svg="${
|
|
7007
|
+
svg="${La[this.type] || La.txt}"
|
|
6998
7008
|
></cb-icon>
|
|
6999
7009
|
`;
|
|
7000
7010
|
}
|
|
7001
7011
|
};
|
|
7002
|
-
yt.styles =
|
|
7003
|
-
|
|
7012
|
+
yt.styles = nn;
|
|
7013
|
+
la([
|
|
7004
7014
|
x({ type: String })
|
|
7005
7015
|
], yt.prototype, "filename", 2);
|
|
7006
|
-
|
|
7016
|
+
la([
|
|
7007
7017
|
x({ type: String })
|
|
7008
7018
|
], yt.prototype, "url", 2);
|
|
7009
|
-
yt =
|
|
7019
|
+
yt = la([
|
|
7010
7020
|
Z("cb-file")
|
|
7011
7021
|
], yt);
|
|
7012
|
-
const
|
|
7022
|
+
const mn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z"/><path d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1zM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z"/></g></svg>', Ra = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 8a3 3 0 1 0 0-6a3 3 0 0 0 0 6m2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10s-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664z"/></svg>', ai = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M5 9v12H1V9zm4 12a2 2 0 0 1-2-2V9c0-.55.22-1.05.59-1.41L14.17 1l1.06 1.06c.27.27.44.64.44 1.05l-.03.32L14.69 8H21a2 2 0 0 1 2 2v2c0 .26-.05.5-.14.73l-3.02 7.05C19.54 20.5 18.83 21 18 21zm0-2h9.03L21 12v-2h-8.79l1.13-5.32L9 9.03z"/></svg>', ii = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M19 15V3h4v12zM15 3a2 2 0 0 1 2 2v10c0 .55-.22 1.05-.59 1.41L9.83 23l-1.06-1.06c-.27-.27-.44-.64-.44-1.06l.03-.31l.95-4.57H3a2 2 0 0 1-2-2v-2c0-.26.05-.5.14-.73l3.02-7.05C4.46 3.5 5.17 3 6 3zm0 2H5.97L3 12v2h8.78l-1.13 5.32L15 14.97z"/></svg>', yn = J`
|
|
7013
7023
|
pre code.hljs {
|
|
7014
7024
|
display: block;
|
|
7015
7025
|
overflow-x: auto;
|
|
@@ -8224,9 +8234,9 @@ const gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
|
|
|
8224
8234
|
white-space: pre-wrap;
|
|
8225
8235
|
color: var(--n-text-color);
|
|
8226
8236
|
}
|
|
8227
|
-
`,
|
|
8237
|
+
`, vn = J`
|
|
8228
8238
|
${ke}
|
|
8229
|
-
${
|
|
8239
|
+
${yn}
|
|
8230
8240
|
|
|
8231
8241
|
.cb-message-row {
|
|
8232
8242
|
width: 100%;
|
|
@@ -8467,36 +8477,36 @@ const gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
|
|
|
8467
8477
|
filter: alpha(opacity=80);
|
|
8468
8478
|
}
|
|
8469
8479
|
`;
|
|
8470
|
-
function
|
|
8480
|
+
function za(a, e) {
|
|
8471
8481
|
return `<pre class="code-block-wrapper"><div class="code-block-header"><span class="code-block-header__lang">${e}</span><span class="code-block-header__copy">Copy</span></div><code class="hljs code-block-body ${e}">${a}</code></pre>`;
|
|
8472
8482
|
}
|
|
8473
|
-
function
|
|
8474
|
-
const a = new
|
|
8483
|
+
function wn() {
|
|
8484
|
+
const a = new Di({
|
|
8475
8485
|
html: !0,
|
|
8476
8486
|
breaks: !0,
|
|
8477
8487
|
linkify: !0,
|
|
8478
8488
|
highlight(e, t) {
|
|
8479
|
-
if (!!(t &&
|
|
8489
|
+
if (!!(t && Wt.getLanguage(t))) {
|
|
8480
8490
|
const s = t ?? "";
|
|
8481
|
-
return
|
|
8491
|
+
return za(Wt.highlight(e, { language: s }).value, s);
|
|
8482
8492
|
}
|
|
8483
|
-
return
|
|
8493
|
+
return za(Wt.highlightAuto(e).value, "");
|
|
8484
8494
|
}
|
|
8485
8495
|
});
|
|
8486
|
-
return a.use(
|
|
8496
|
+
return a.use(Fi, { attrs: { target: "_blank", rel: "noopener" } }), a;
|
|
8487
8497
|
}
|
|
8488
|
-
async function
|
|
8489
|
-
const t =
|
|
8498
|
+
async function Qt(a) {
|
|
8499
|
+
const t = wn().render(a);
|
|
8490
8500
|
return u`${G(t)}`;
|
|
8491
8501
|
}
|
|
8492
|
-
var
|
|
8493
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
8502
|
+
var xn = Object.defineProperty, kn = Object.getOwnPropertyDescriptor, nt = (a, e, t, i) => {
|
|
8503
|
+
for (var s = i > 1 ? void 0 : i ? kn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
8494
8504
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
8495
|
-
return i && s &&
|
|
8505
|
+
return i && s && xn(e, t, s), s;
|
|
8496
8506
|
};
|
|
8497
8507
|
let De = class extends re {
|
|
8498
8508
|
constructor() {
|
|
8499
|
-
super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox =
|
|
8509
|
+
super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Qs({
|
|
8500
8510
|
touchNavigation: !0,
|
|
8501
8511
|
loop: !0,
|
|
8502
8512
|
autoplayVideos: !0,
|
|
@@ -8561,7 +8571,7 @@ let De = class extends re {
|
|
|
8561
8571
|
this.copyBtns.forEach((a) => {
|
|
8562
8572
|
a.addEventListener("click", () => {
|
|
8563
8573
|
const e = a.parentElement?.nextElementSibling?.textContent;
|
|
8564
|
-
e &&
|
|
8574
|
+
e && ts(e).then(() => {
|
|
8565
8575
|
a.textContent = "Success", setTimeout(() => {
|
|
8566
8576
|
a.textContent = "Copy";
|
|
8567
8577
|
}, 500);
|
|
@@ -8601,7 +8611,7 @@ let De = class extends re {
|
|
|
8601
8611
|
return u`<div class="cb-message__buttons ${a}">
|
|
8602
8612
|
<!-- delete button -->
|
|
8603
8613
|
<sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
|
|
8604
|
-
<cb-icon svg="${
|
|
8614
|
+
<cb-icon svg="${mn}" style="font-size: 1em !important;"></cb-icon>
|
|
8605
8615
|
</sl-button>
|
|
8606
8616
|
</div>`;
|
|
8607
8617
|
}
|
|
@@ -8644,7 +8654,7 @@ let De = class extends re {
|
|
|
8644
8654
|
`;
|
|
8645
8655
|
}
|
|
8646
8656
|
async _getMessageText(a) {
|
|
8647
|
-
return
|
|
8657
|
+
return Qt(Vt(a.data.text));
|
|
8648
8658
|
}
|
|
8649
8659
|
renderMessageContent(a) {
|
|
8650
8660
|
return a.isThinking ? u`<cb-thinking></cb-thinking>` : a.isUploading ? u`<cb-uploading .files="${a.data.files || []}"></cb-uploading>` : a.type === "text" ? u`<div class="cb-message-text">
|
|
@@ -8666,7 +8676,7 @@ let De = class extends re {
|
|
|
8666
8676
|
(e) => u`<div>${e.name}</div>`
|
|
8667
8677
|
)}` : u`<div class="cb-message-text">
|
|
8668
8678
|
${Pt(
|
|
8669
|
-
|
|
8679
|
+
Qt(a.data.text?.toString() || "").then((e) => u`${e}`)
|
|
8670
8680
|
)}
|
|
8671
8681
|
</div>`;
|
|
8672
8682
|
}
|
|
@@ -8699,8 +8709,8 @@ let De = class extends re {
|
|
|
8699
8709
|
renderBotMessageFeedback(a) {
|
|
8700
8710
|
return this.suppressFeedback || !b.setting.feedbackEnabled || this.index < b.setting.startFeedbackFromMessage * 2 ? null : u`
|
|
8701
8711
|
<div class="cb-message-feedback-tools" part="feedback-wrapper">
|
|
8702
|
-
<div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${pe`${G(
|
|
8703
|
-
<div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${pe`${G(
|
|
8712
|
+
<div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${pe`${G(ai)}`}</div>
|
|
8713
|
+
<div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${pe`${G(ii)}`}</div>
|
|
8704
8714
|
</div>
|
|
8705
8715
|
`;
|
|
8706
8716
|
}
|
|
@@ -8711,7 +8721,7 @@ let De = class extends re {
|
|
|
8711
8721
|
return u`
|
|
8712
8722
|
<div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
|
|
8713
8723
|
<!--<sl-avatar class="avatar user-avatar small" label="User">
|
|
8714
|
-
<cb-icon slot="icon" svg="${
|
|
8724
|
+
<cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
|
|
8715
8725
|
//appState.appearanceUserMessageAvatarPosition
|
|
8716
8726
|
</sl-avatar>-->
|
|
8717
8727
|
${W(
|
|
@@ -8734,7 +8744,7 @@ let De = class extends re {
|
|
|
8734
8744
|
return u`
|
|
8735
8745
|
<div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
|
|
8736
8746
|
<!--<sl-avatar class="avatar user-avatar small" label="User">
|
|
8737
|
-
<cb-icon slot="icon" svg="${
|
|
8747
|
+
<cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
|
|
8738
8748
|
//appState.appearanceUserMessageAvatarPosition
|
|
8739
8749
|
</sl-avatar>-->
|
|
8740
8750
|
${W(
|
|
@@ -8752,7 +8762,7 @@ let De = class extends re {
|
|
|
8752
8762
|
`;
|
|
8753
8763
|
}
|
|
8754
8764
|
};
|
|
8755
|
-
De.styles =
|
|
8765
|
+
De.styles = vn;
|
|
8756
8766
|
nt([
|
|
8757
8767
|
x({ type: Object })
|
|
8758
8768
|
], De.prototype, "message", 2);
|
|
@@ -8766,18 +8776,18 @@ nt([
|
|
|
8766
8776
|
x({ type: Boolean })
|
|
8767
8777
|
], De.prototype, "suppressFeedback", 2);
|
|
8768
8778
|
nt([
|
|
8769
|
-
|
|
8779
|
+
Na(".code-block-header__copy")
|
|
8770
8780
|
], De.prototype, "copyBtns", 2);
|
|
8771
8781
|
nt([
|
|
8772
|
-
|
|
8782
|
+
Na("img")
|
|
8773
8783
|
], De.prototype, "glightboxImages", 2);
|
|
8774
8784
|
De = nt([
|
|
8775
8785
|
Z("cb-message")
|
|
8776
8786
|
], De);
|
|
8777
|
-
var
|
|
8778
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
8787
|
+
var _n = Object.defineProperty, Sn = Object.getOwnPropertyDescriptor, Te = (a, e, t, i) => {
|
|
8788
|
+
for (var s = i > 1 ? void 0 : i ? Sn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
8779
8789
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
8780
|
-
return i && s &&
|
|
8790
|
+
return i && s && _n(e, t, s), s;
|
|
8781
8791
|
};
|
|
8782
8792
|
const Oe = Je.noConflict();
|
|
8783
8793
|
Oe.setLevel("info");
|
|
@@ -8824,10 +8834,10 @@ let ye = class extends re {
|
|
|
8824
8834
|
}
|
|
8825
8835
|
renderDisclaimerMessage() {
|
|
8826
8836
|
return !b.setting.disclaimerMessage || !b.isConversationStart() ? null : u`
|
|
8827
|
-
<details class="cb-disclaimer-wrapper" part="disclaimer-wrapper">
|
|
8837
|
+
<details class="cb-disclaimer-wrapper" part="disclaimer-wrapper" ?open=${b.setting.enableShowFullDisclaimerMessage}>
|
|
8828
8838
|
<summary class="cb-disclaimer-message" part="disclaimer-message">
|
|
8829
8839
|
${Pt(
|
|
8830
|
-
|
|
8840
|
+
Qt(b.setting.disclaimerMessage).then((a) => u`${a}`)
|
|
8831
8841
|
)}
|
|
8832
8842
|
</summary>
|
|
8833
8843
|
</details>
|
|
@@ -9091,7 +9101,7 @@ let ye = class extends re {
|
|
|
9091
9101
|
`;
|
|
9092
9102
|
}
|
|
9093
9103
|
};
|
|
9094
|
-
ye.styles =
|
|
9104
|
+
ye.styles = Hs;
|
|
9095
9105
|
Te([
|
|
9096
9106
|
x({ type: Array })
|
|
9097
9107
|
], ye.prototype, "messages", 2);
|
|
@@ -9111,18 +9121,18 @@ Te([
|
|
|
9111
9121
|
xe(".cb-input-form")
|
|
9112
9122
|
], ye.prototype, "_inputForm", 2);
|
|
9113
9123
|
Te([
|
|
9114
|
-
|
|
9124
|
+
na({ capture: !1, passive: !0 })
|
|
9115
9125
|
], ye.prototype, "invokeLinkAction", 1);
|
|
9116
9126
|
Te([
|
|
9117
|
-
|
|
9127
|
+
na({ capture: !1, passive: !0 })
|
|
9118
9128
|
], ye.prototype, "invokeCalendlyAction", 1);
|
|
9119
9129
|
Te([
|
|
9120
|
-
|
|
9130
|
+
na({ capture: !1, passive: !0 })
|
|
9121
9131
|
], ye.prototype, "invokeHubspotMeetingAction", 1);
|
|
9122
9132
|
ye = Te([
|
|
9123
9133
|
Z("cb-message-list")
|
|
9124
9134
|
], ye);
|
|
9125
|
-
const
|
|
9135
|
+
const Cn = J`
|
|
9126
9136
|
${ke}
|
|
9127
9137
|
|
|
9128
9138
|
:host {
|
|
@@ -9164,11 +9174,11 @@ const Sn = J`
|
|
|
9164
9174
|
align-items: center;
|
|
9165
9175
|
margin: 6px 2px;
|
|
9166
9176
|
}
|
|
9167
|
-
`,
|
|
9168
|
-
var
|
|
9169
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9177
|
+
`, si = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576zm6.787-8.201L1.591 6.602l4.339 2.76z"/></svg>', ni = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M4.5 3a2.5 2.5 0 0 1 5 0v9a1.5 1.5 0 0 1-3 0V5a.5.5 0 0 1 1 0v7a.5.5 0 0 0 1 0V3a1.5 1.5 0 1 0-3 0v9a2.5 2.5 0 0 0 5 0V5a.5.5 0 0 1 1 0v7a3.5 3.5 0 1 1-7 0z"/></svg>', ri = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3m5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72z"/></svg>', da = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z"/></svg>';
|
|
9178
|
+
var An = Object.defineProperty, Mn = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
|
|
9179
|
+
for (var s = i > 1 ? void 0 : i ? Mn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9170
9180
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9171
|
-
return i && s &&
|
|
9181
|
+
return i && s && An(e, t, s), s;
|
|
9172
9182
|
};
|
|
9173
9183
|
let ve = class extends re {
|
|
9174
9184
|
constructor() {
|
|
@@ -9205,7 +9215,7 @@ let ve = class extends re {
|
|
|
9205
9215
|
});
|
|
9206
9216
|
}
|
|
9207
9217
|
async _sendFileHandler() {
|
|
9208
|
-
const a = await
|
|
9218
|
+
const a = await Xa(!1, b.setting.fileUploadEnabledExtensions);
|
|
9209
9219
|
this.emit("message:send:file", {
|
|
9210
9220
|
detail: {
|
|
9211
9221
|
files: a
|
|
@@ -9244,7 +9254,7 @@ let ve = class extends re {
|
|
|
9244
9254
|
${W(
|
|
9245
9255
|
b.setting.sendIconSvg !== "",
|
|
9246
9256
|
() => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
|
|
9247
|
-
() => u`<cb-icon part="user-input-send-icon" svg="${
|
|
9257
|
+
() => u`<cb-icon part="user-input-send-icon" svg="${si}"></cb-icon>`
|
|
9248
9258
|
)}
|
|
9249
9259
|
</sl-button>
|
|
9250
9260
|
${W(
|
|
@@ -9254,7 +9264,7 @@ let ve = class extends re {
|
|
|
9254
9264
|
${W(
|
|
9255
9265
|
b.setting.attachIconSvg !== "",
|
|
9256
9266
|
() => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
|
|
9257
|
-
() => u`<cb-icon part="user-input-attach-icon" svg="${
|
|
9267
|
+
() => u`<cb-icon part="user-input-attach-icon" svg="${ni}"></cb-icon>`
|
|
9258
9268
|
)}
|
|
9259
9269
|
<!-- select file input -->
|
|
9260
9270
|
<input type="file" id="file" name="file" class="file-input" />
|
|
@@ -9268,8 +9278,8 @@ let ve = class extends re {
|
|
|
9268
9278
|
<sl-button @click=${this._toggleAudioHandler} name="paperclip" label="Audio" size="small" class="audio-button" variant="text" circle>
|
|
9269
9279
|
${W(
|
|
9270
9280
|
b.webAudioStarted,
|
|
9271
|
-
() => u`<cb-icon svg="${
|
|
9272
|
-
() => u`<cb-icon svg="${
|
|
9281
|
+
() => u`<cb-icon svg="${da}"></cb-icon>`,
|
|
9282
|
+
() => u`<cb-icon svg="${ri}"></cb-icon>`
|
|
9273
9283
|
)}
|
|
9274
9284
|
</sl-button>
|
|
9275
9285
|
`,
|
|
@@ -9283,7 +9293,7 @@ let ve = class extends re {
|
|
|
9283
9293
|
a.key === "Enter" && !a.shiftKey && this._sendHandler();
|
|
9284
9294
|
}
|
|
9285
9295
|
};
|
|
9286
|
-
ve.styles =
|
|
9296
|
+
ve.styles = Cn;
|
|
9287
9297
|
Ie([
|
|
9288
9298
|
x({ type: String, attribute: "placeholder" })
|
|
9289
9299
|
], ve.prototype, "placeholder", 2);
|
|
@@ -9314,7 +9324,7 @@ Ie([
|
|
|
9314
9324
|
ve = Ie([
|
|
9315
9325
|
Z("cb-user-input")
|
|
9316
9326
|
], ve);
|
|
9317
|
-
const
|
|
9327
|
+
const Tn = J`
|
|
9318
9328
|
${ke}
|
|
9319
9329
|
|
|
9320
9330
|
:host {
|
|
@@ -9372,11 +9382,11 @@ const Mn = J`
|
|
|
9372
9382
|
border-radius: 40px;
|
|
9373
9383
|
outline: none !important;
|
|
9374
9384
|
}
|
|
9375
|
-
`,
|
|
9376
|
-
var
|
|
9377
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9385
|
+
`, In = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>', En = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M8 18c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m4 4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v18c0 .55.45 1 1 1m-8-8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1m12 4c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m3-7v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1"/></svg>', Oa = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="m4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"/></svg>';
|
|
9386
|
+
var $n = Object.defineProperty, Pn = Object.getOwnPropertyDescriptor, Ee = (a, e, t, i) => {
|
|
9387
|
+
for (var s = i > 1 ? void 0 : i ? Pn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9378
9388
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9379
|
-
return i && s &&
|
|
9389
|
+
return i && s && $n(e, t, s), s;
|
|
9380
9390
|
};
|
|
9381
9391
|
let we = class extends re {
|
|
9382
9392
|
constructor() {
|
|
@@ -9419,7 +9429,7 @@ let we = class extends re {
|
|
|
9419
9429
|
});
|
|
9420
9430
|
}
|
|
9421
9431
|
async _sendFileHandler() {
|
|
9422
|
-
const a = await
|
|
9432
|
+
const a = await Xa(!1, b.setting.fileUploadEnabledExtensions);
|
|
9423
9433
|
this.emit("message:send:file", {
|
|
9424
9434
|
detail: {
|
|
9425
9435
|
files: a
|
|
@@ -9451,7 +9461,7 @@ let we = class extends re {
|
|
|
9451
9461
|
await b.toggleAudio();
|
|
9452
9462
|
}
|
|
9453
9463
|
getCtrlIconSvg() {
|
|
9454
|
-
return this.value && this.value !== "" || b.webAudioStarted ?
|
|
9464
|
+
return this.value && this.value !== "" || b.webAudioStarted ? Oa : En;
|
|
9455
9465
|
}
|
|
9456
9466
|
getCtrlClass() {
|
|
9457
9467
|
return this.value && this.value !== "" ? "" : b.webAudioStarted || b.mediaStartAudioRequested ? "disabled" : "";
|
|
@@ -9469,7 +9479,7 @@ let we = class extends re {
|
|
|
9469
9479
|
this.enableFileUpload,
|
|
9470
9480
|
() => u`
|
|
9471
9481
|
<button type="button" class="circle-btn" part="upload-button" title="Upload" @click=${this._sendFileHandler}>
|
|
9472
|
-
${G(
|
|
9482
|
+
${G(In)}
|
|
9473
9483
|
</button>
|
|
9474
9484
|
`,
|
|
9475
9485
|
() => u``
|
|
@@ -9524,7 +9534,7 @@ let we = class extends re {
|
|
|
9524
9534
|
${W(
|
|
9525
9535
|
b.setting.sendIconSvg !== "",
|
|
9526
9536
|
() => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
|
|
9527
|
-
() => u`<cb-icon part="user-input-send-icon" svg="${
|
|
9537
|
+
() => u`<cb-icon part="user-input-send-icon" svg="${si}"></cb-icon>`
|
|
9528
9538
|
)}
|
|
9529
9539
|
</sl-button>
|
|
9530
9540
|
${W(
|
|
@@ -9534,7 +9544,7 @@ let we = class extends re {
|
|
|
9534
9544
|
${W(
|
|
9535
9545
|
b.setting.attachIconSvg !== "",
|
|
9536
9546
|
() => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
|
|
9537
|
-
() => u`<cb-icon part="user-input-attach-icon" svg="${
|
|
9547
|
+
() => u`<cb-icon part="user-input-attach-icon" svg="${ni}"></cb-icon>`
|
|
9538
9548
|
)}
|
|
9539
9549
|
<!-- select file input -->
|
|
9540
9550
|
<input type="file" id="file" name="file" class="file-input" />
|
|
@@ -9548,8 +9558,8 @@ let we = class extends re {
|
|
|
9548
9558
|
<sl-button @click=${this._toggleAudioHandler} name="paperclip" label="Audio" size="small" class="audio-button" variant="text" circle>
|
|
9549
9559
|
${W(
|
|
9550
9560
|
b.webAudioStarted,
|
|
9551
|
-
() => u`<cb-icon svg="${
|
|
9552
|
-
() => u`<cb-icon svg="${
|
|
9561
|
+
() => u`<cb-icon svg="${da}"></cb-icon>`,
|
|
9562
|
+
() => u`<cb-icon svg="${ri}"></cb-icon>`
|
|
9553
9563
|
)}
|
|
9554
9564
|
</sl-button>
|
|
9555
9565
|
`,
|
|
@@ -9563,7 +9573,7 @@ let we = class extends re {
|
|
|
9563
9573
|
a.key === "Enter" && !a.shiftKey && this._sendHandler();
|
|
9564
9574
|
}
|
|
9565
9575
|
};
|
|
9566
|
-
we.styles =
|
|
9576
|
+
we.styles = Tn;
|
|
9567
9577
|
Ee([
|
|
9568
9578
|
x({ type: String, attribute: "placeholder" })
|
|
9569
9579
|
], we.prototype, "placeholder", 2);
|
|
@@ -9594,7 +9604,7 @@ Ee([
|
|
|
9594
9604
|
we = Ee([
|
|
9595
9605
|
Z("cb-user-input-mm")
|
|
9596
9606
|
], we);
|
|
9597
|
-
const
|
|
9607
|
+
const oi = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"/></svg>', Ln = J`
|
|
9598
9608
|
${ke}
|
|
9599
9609
|
|
|
9600
9610
|
sl-dialog::part(base) {
|
|
@@ -9629,10 +9639,10 @@ const ri = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="c
|
|
|
9629
9639
|
gap: 8px;
|
|
9630
9640
|
}
|
|
9631
9641
|
`;
|
|
9632
|
-
var
|
|
9633
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9642
|
+
var Rn = Object.defineProperty, zn = Object.getOwnPropertyDescriptor, Nt = (a, e, t, i) => {
|
|
9643
|
+
for (var s = i > 1 ? void 0 : i ? zn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9634
9644
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9635
|
-
return i && s &&
|
|
9645
|
+
return i && s && Rn(e, t, s), s;
|
|
9636
9646
|
};
|
|
9637
9647
|
let ct = class extends re {
|
|
9638
9648
|
constructor() {
|
|
@@ -9665,7 +9675,7 @@ let ct = class extends re {
|
|
|
9665
9675
|
<cb-icon
|
|
9666
9676
|
color="default"
|
|
9667
9677
|
style="font-size: 1em;"
|
|
9668
|
-
svg="${
|
|
9678
|
+
svg="${oi}"
|
|
9669
9679
|
></cb-icon>
|
|
9670
9680
|
</sl-button>
|
|
9671
9681
|
</header>
|
|
@@ -9678,23 +9688,23 @@ let ct = class extends re {
|
|
|
9678
9688
|
</sl-dialog>`;
|
|
9679
9689
|
}
|
|
9680
9690
|
};
|
|
9681
|
-
ct.styles =
|
|
9682
|
-
|
|
9691
|
+
ct.styles = Ln;
|
|
9692
|
+
Nt([
|
|
9683
9693
|
x({ type: Boolean })
|
|
9684
9694
|
], ct.prototype, "open", 2);
|
|
9685
|
-
|
|
9695
|
+
Nt([
|
|
9686
9696
|
x({ type: String, attribute: "label" })
|
|
9687
9697
|
], ct.prototype, "label", 2);
|
|
9688
|
-
|
|
9698
|
+
Nt([
|
|
9689
9699
|
x({ type: Number })
|
|
9690
9700
|
], ct.prototype, "zindex", 2);
|
|
9691
|
-
ct =
|
|
9701
|
+
ct = Nt([
|
|
9692
9702
|
Z("cb-dialog")
|
|
9693
9703
|
], ct);
|
|
9694
|
-
var
|
|
9695
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9704
|
+
var On = Object.defineProperty, Bn = Object.getOwnPropertyDescriptor, ci = (a, e, t, i) => {
|
|
9705
|
+
for (var s = i > 1 ? void 0 : i ? Bn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9696
9706
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9697
|
-
return i && s &&
|
|
9707
|
+
return i && s && On(e, t, s), s;
|
|
9698
9708
|
};
|
|
9699
9709
|
let Dt = class extends re {
|
|
9700
9710
|
constructor() {
|
|
@@ -9738,13 +9748,13 @@ Dt.styles = J`
|
|
|
9738
9748
|
z-index: 1000;
|
|
9739
9749
|
}
|
|
9740
9750
|
`;
|
|
9741
|
-
|
|
9751
|
+
ci([
|
|
9742
9752
|
x({ type: Boolean })
|
|
9743
9753
|
], Dt.prototype, "open", 2);
|
|
9744
|
-
Dt =
|
|
9754
|
+
Dt = ci([
|
|
9745
9755
|
Z("cb-clear-message-dialog")
|
|
9746
9756
|
], Dt);
|
|
9747
|
-
const
|
|
9757
|
+
const qn = J`
|
|
9748
9758
|
:host {
|
|
9749
9759
|
// width: 380px;
|
|
9750
9760
|
|
|
@@ -9804,10 +9814,10 @@ const Bn = J`
|
|
|
9804
9814
|
grid-column-start: 2;
|
|
9805
9815
|
}
|
|
9806
9816
|
`;
|
|
9807
|
-
var
|
|
9808
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9817
|
+
var Dn = Object.defineProperty, Fn = Object.getOwnPropertyDescriptor, dt = (a, e, t, i) => {
|
|
9818
|
+
for (var s = i > 1 ? void 0 : i ? Fn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9809
9819
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9810
|
-
return i && s &&
|
|
9820
|
+
return i && s && Dn(e, t, s), s;
|
|
9811
9821
|
};
|
|
9812
9822
|
let Xe = class extends re {
|
|
9813
9823
|
constructor() {
|
|
@@ -9928,7 +9938,7 @@ let Xe = class extends re {
|
|
|
9928
9938
|
});
|
|
9929
9939
|
}
|
|
9930
9940
|
};
|
|
9931
|
-
Xe.styles =
|
|
9941
|
+
Xe.styles = qn;
|
|
9932
9942
|
dt([
|
|
9933
9943
|
x({ type: Boolean })
|
|
9934
9944
|
], Xe.prototype, "open", 2);
|
|
@@ -9947,7 +9957,7 @@ dt([
|
|
|
9947
9957
|
Xe = dt([
|
|
9948
9958
|
Z("cb-setting")
|
|
9949
9959
|
], Xe);
|
|
9950
|
-
const
|
|
9960
|
+
const jn = J`
|
|
9951
9961
|
${ke}
|
|
9952
9962
|
:host {
|
|
9953
9963
|
--primary-color: var(--sl-color-primary-600);
|
|
@@ -10061,10 +10071,10 @@ const Fn = J`
|
|
|
10061
10071
|
margin: 4px 4px 0px 0px;
|
|
10062
10072
|
}
|
|
10063
10073
|
`;
|
|
10064
|
-
var
|
|
10065
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10074
|
+
var Hn = Object.defineProperty, Vn = Object.getOwnPropertyDescriptor, li = (a, e, t, i) => {
|
|
10075
|
+
for (var s = i > 1 ? void 0 : i ? Vn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10066
10076
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
10067
|
-
return i && s &&
|
|
10077
|
+
return i && s && Hn(e, t, s), s;
|
|
10068
10078
|
};
|
|
10069
10079
|
let Ft = class extends re {
|
|
10070
10080
|
constructor() {
|
|
@@ -10117,7 +10127,7 @@ let Ft = class extends re {
|
|
|
10117
10127
|
)}
|
|
10118
10128
|
</sl-button>
|
|
10119
10129
|
<div class="cb-engage-popup">
|
|
10120
|
-
<div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${pe`${G(
|
|
10130
|
+
<div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${pe`${G(oi)}`}</div>
|
|
10121
10131
|
<div class="cb-engage-popup-content">
|
|
10122
10132
|
${this.renderPopupLogo()}
|
|
10123
10133
|
<div>${b.setting.engageMessage}</div>
|
|
@@ -10128,41 +10138,41 @@ let Ft = class extends re {
|
|
|
10128
10138
|
`;
|
|
10129
10139
|
}
|
|
10130
10140
|
};
|
|
10131
|
-
Ft.styles =
|
|
10132
|
-
|
|
10141
|
+
Ft.styles = jn;
|
|
10142
|
+
li([
|
|
10133
10143
|
x({ type: Boolean })
|
|
10134
10144
|
], Ft.prototype, "open", 2);
|
|
10135
|
-
Ft =
|
|
10145
|
+
Ft = li([
|
|
10136
10146
|
Z("cb-anchor")
|
|
10137
10147
|
], Ft);
|
|
10138
|
-
const
|
|
10148
|
+
const Nn = J`
|
|
10139
10149
|
${ke}
|
|
10140
|
-
`,
|
|
10141
|
-
var
|
|
10142
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10150
|
+
`, Ba = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M4.54.146A.5.5 0 0 1 4.893 0h6.214a.5.5 0 0 1 .353.146l4.394 4.394a.5.5 0 0 1 .146.353v6.214a.5.5 0 0 1-.146.353l-4.394 4.394a.5.5 0 0 1-.353.146H4.893a.5.5 0 0 1-.353-.146L.146 11.46A.5.5 0 0 1 0 11.107V4.893a.5.5 0 0 1 .146-.353zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', Un = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016a.15.15 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.2.2 0 0 1-.054.06a.1.1 0 0 1-.066.017H1.146a.1.1 0 0 1-.066-.017a.2.2 0 0 1-.054-.06a.18.18 0 0 1 .002-.183L7.884 2.073a.15.15 0 0 1 .054-.057m1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', Wn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M2.5 8a5.5 5.5 0 0 1 8.25-4.764a.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0a5.5 5.5 0 1 1-11 0"/><path d="M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293L5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0z"/></g></svg>', Gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><path d="m8.93 6.588l-2.29.287l-.082.38l.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319c.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246c-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0"/></g></svg>';
|
|
10151
|
+
var Xn = Object.defineProperty, Yn = Object.getOwnPropertyDescriptor, di = (a, e, t, i) => {
|
|
10152
|
+
for (var s = i > 1 ? void 0 : i ? Yn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10143
10153
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
10144
|
-
return i && s &&
|
|
10154
|
+
return i && s && Xn(e, t, s), s;
|
|
10145
10155
|
};
|
|
10146
|
-
const
|
|
10156
|
+
const qa = {
|
|
10147
10157
|
error: {
|
|
10148
10158
|
variant: "danger",
|
|
10149
|
-
icon:
|
|
10159
|
+
icon: Ba
|
|
10150
10160
|
},
|
|
10151
10161
|
danger: {
|
|
10152
10162
|
variant: "danger",
|
|
10153
|
-
icon:
|
|
10163
|
+
icon: Ba
|
|
10154
10164
|
},
|
|
10155
10165
|
warning: {
|
|
10156
10166
|
variant: "warning",
|
|
10157
|
-
icon:
|
|
10167
|
+
icon: Un
|
|
10158
10168
|
},
|
|
10159
10169
|
success: {
|
|
10160
10170
|
variant: "success",
|
|
10161
|
-
icon:
|
|
10171
|
+
icon: Wn
|
|
10162
10172
|
},
|
|
10163
10173
|
info: {
|
|
10164
10174
|
variant: "primary",
|
|
10165
|
-
icon:
|
|
10175
|
+
icon: Gn
|
|
10166
10176
|
}
|
|
10167
10177
|
};
|
|
10168
10178
|
let jt = class extends re {
|
|
@@ -10170,23 +10180,23 @@ let jt = class extends re {
|
|
|
10170
10180
|
super(...arguments), this.status = "info";
|
|
10171
10181
|
}
|
|
10172
10182
|
render() {
|
|
10173
|
-
const { variant: a, icon: e } =
|
|
10183
|
+
const { variant: a, icon: e } = qa[this.status] || qa.info;
|
|
10174
10184
|
return u`<cb-icon svg=${e} color="${a}"></cb-icon>`;
|
|
10175
10185
|
}
|
|
10176
10186
|
};
|
|
10177
|
-
jt.styles =
|
|
10178
|
-
|
|
10187
|
+
jt.styles = Ga;
|
|
10188
|
+
di([
|
|
10179
10189
|
x({ type: String })
|
|
10180
10190
|
], jt.prototype, "status", 2);
|
|
10181
|
-
jt =
|
|
10191
|
+
jt = di([
|
|
10182
10192
|
Z("cb-status-icon")
|
|
10183
10193
|
], jt);
|
|
10184
|
-
var
|
|
10185
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10194
|
+
var Jn = Object.getOwnPropertyDescriptor, Zn = (a, e, t, i) => {
|
|
10195
|
+
for (var s = i > 1 ? void 0 : i ? Jn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10186
10196
|
(o = a[r]) && (s = o(s) || s);
|
|
10187
10197
|
return s;
|
|
10188
10198
|
};
|
|
10189
|
-
let
|
|
10199
|
+
let ea = class extends re {
|
|
10190
10200
|
render() {
|
|
10191
10201
|
return u` <sl-alert variant="danger" open>
|
|
10192
10202
|
<cb-status-icon status="error" slot="icon"></cb-status-icon>
|
|
@@ -10202,11 +10212,11 @@ let Qt = class extends re {
|
|
|
10202
10212
|
this.emit("setting:show");
|
|
10203
10213
|
}
|
|
10204
10214
|
};
|
|
10205
|
-
|
|
10206
|
-
|
|
10215
|
+
ea.styles = Nn;
|
|
10216
|
+
ea = Zn([
|
|
10207
10217
|
Z("cb-auth-alert")
|
|
10208
|
-
],
|
|
10209
|
-
const
|
|
10218
|
+
], ea);
|
|
10219
|
+
const Kn = J`
|
|
10210
10220
|
sl-dialog::part(base) {
|
|
10211
10221
|
z-index: 1000;
|
|
10212
10222
|
}
|
|
@@ -10290,25 +10300,25 @@ const Zn = J`
|
|
|
10290
10300
|
filter: alpha(opacity=80);
|
|
10291
10301
|
}
|
|
10292
10302
|
`;
|
|
10293
|
-
var
|
|
10294
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10303
|
+
var Qn = Object.defineProperty, er = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
|
|
10304
|
+
for (var s = i > 1 ? void 0 : i ? er(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10295
10305
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
10296
|
-
return i && s &&
|
|
10306
|
+
return i && s && Qn(e, t, s), s;
|
|
10297
10307
|
};
|
|
10298
|
-
const
|
|
10308
|
+
const Da = Je.noConflict(), tr = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16"><path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/></svg>';
|
|
10299
10309
|
let Ye = class extends re {
|
|
10300
10310
|
constructor() {
|
|
10301
10311
|
super(...arguments), this.store = new it(this, b), this.zindex = 100;
|
|
10302
10312
|
}
|
|
10303
10313
|
connectedCallback() {
|
|
10304
|
-
super.connectedCallback(),
|
|
10314
|
+
super.connectedCallback(), Da.info("connectedCallback");
|
|
10305
10315
|
}
|
|
10306
10316
|
firstUpdated() {
|
|
10307
|
-
this._rating.getSymbol = () =>
|
|
10317
|
+
this._rating.getSymbol = () => tr;
|
|
10308
10318
|
}
|
|
10309
10319
|
_stateEventHandler(a) {
|
|
10310
10320
|
const e = a.detail, t = e?.type || null;
|
|
10311
|
-
|
|
10321
|
+
Da.info(`FEEDBACK: stateEvent: ${t}`, e);
|
|
10312
10322
|
}
|
|
10313
10323
|
_cancelHandler() {
|
|
10314
10324
|
b.feedback && (console.log("Feedback dialog cancelled"), b.feedback = !1);
|
|
@@ -10329,7 +10339,7 @@ let Ye = class extends re {
|
|
|
10329
10339
|
b.feedbackScore = 0;
|
|
10330
10340
|
}}"
|
|
10331
10341
|
>
|
|
10332
|
-
${pe`${G(
|
|
10342
|
+
${pe`${G(ii)}`}
|
|
10333
10343
|
</div>
|
|
10334
10344
|
<sl-rating id="cb-feedback-rating-el" class="cb-feedback-rating" @sl-change="${this._ratingChangeHandler}" label="Rating" precision="1" .value=${b.feedbackScore}></sl-rating>
|
|
10335
10345
|
<div
|
|
@@ -10338,7 +10348,7 @@ let Ye = class extends re {
|
|
|
10338
10348
|
b.feedbackScore = 5;
|
|
10339
10349
|
}}"
|
|
10340
10350
|
>
|
|
10341
|
-
${pe`${G(
|
|
10351
|
+
${pe`${G(ai)}`}
|
|
10342
10352
|
</div>
|
|
10343
10353
|
</div>
|
|
10344
10354
|
<div style="display: flex">
|
|
@@ -10355,11 +10365,11 @@ let Ye = class extends re {
|
|
|
10355
10365
|
b.feedbackScore = this._rating.value;
|
|
10356
10366
|
}
|
|
10357
10367
|
async _submitHandler() {
|
|
10358
|
-
const a = this._name?.value || "", e = this._email?.value || "", t = this._comments?.value || "";
|
|
10368
|
+
const a = this._name?.value || "", e = this._email?.value || "", t = Vt(this._comments?.value || "");
|
|
10359
10369
|
this._comments.value = "", await b.submitFeedback(a, e, t);
|
|
10360
10370
|
}
|
|
10361
10371
|
};
|
|
10362
|
-
Ye.styles =
|
|
10372
|
+
Ye.styles = Kn;
|
|
10363
10373
|
ft([
|
|
10364
10374
|
x({ type: Number })
|
|
10365
10375
|
], Ye.prototype, "zindex", 2);
|
|
@@ -10378,7 +10388,7 @@ ft([
|
|
|
10378
10388
|
Ye = ft([
|
|
10379
10389
|
Z("cb-dialog-feedback")
|
|
10380
10390
|
], Ye);
|
|
10381
|
-
const
|
|
10391
|
+
const ar = J`
|
|
10382
10392
|
${ke}
|
|
10383
10393
|
:host {
|
|
10384
10394
|
display: block;
|
|
@@ -10461,7 +10471,7 @@ const tr = J`
|
|
|
10461
10471
|
display: inline;
|
|
10462
10472
|
}
|
|
10463
10473
|
`;
|
|
10464
|
-
class
|
|
10474
|
+
class ir extends HTMLElement {
|
|
10465
10475
|
static get observedAttributes() {
|
|
10466
10476
|
return ["audio-selector", "max-additional-height", "disabled", "fft-size"];
|
|
10467
10477
|
}
|
|
@@ -10684,9 +10694,9 @@ class ar extends HTMLElement {
|
|
|
10684
10694
|
this._animationId && (cancelAnimationFrame(this._animationId), this._animationId = null);
|
|
10685
10695
|
}
|
|
10686
10696
|
}
|
|
10687
|
-
customElements.get("volume-visualizer") || customElements.define("volume-visualizer",
|
|
10688
|
-
const
|
|
10689
|
-
class
|
|
10697
|
+
customElements.get("volume-visualizer") || customElements.define("volume-visualizer", ir);
|
|
10698
|
+
const fa = 1, Fa = 2;
|
|
10699
|
+
class fi extends HTMLElement {
|
|
10690
10700
|
constructor() {
|
|
10691
10701
|
super(), this.attachShadow({ mode: "open" }), this._analyserInput = null, this._dataArrayInput = null, this._analyserOutput = null, this._dataArrayOutput = null, this._thinking = !1, this._muted = !1, this._fftSize = 512, this._smoothingTimeConstant = 0.55, this._canvas = null, this._context = null, this._lastTime = 0, this._render();
|
|
10692
10702
|
}
|
|
@@ -10725,7 +10735,7 @@ class di extends HTMLElement {
|
|
|
10725
10735
|
}
|
|
10726
10736
|
return r;
|
|
10727
10737
|
};
|
|
10728
|
-
return this._analyserOutput && (this._analyserOutput.getByteFrequencyData(this._dataArrayOutput), e(this._dataArrayOutput)) ? { data: t(this._dataArrayOutput), source:
|
|
10738
|
+
return this._analyserOutput && (this._analyserOutput.getByteFrequencyData(this._dataArrayOutput), e(this._dataArrayOutput)) ? { data: t(this._dataArrayOutput), source: Fa, hasActivity: !0 } : this._analyserInput && !this._muted && (this._analyserInput.getByteFrequencyData(this._dataArrayInput), e(this._dataArrayInput)) ? { data: t(this._dataArrayInput), source: fa, hasActivity: !0 } : this._analyserOutput ? { data: t(this._dataArrayOutput), source: Fa, hasActivity: !1 } : { data: [], source: null, hasActivity: !1 };
|
|
10729
10739
|
}
|
|
10730
10740
|
_render() {
|
|
10731
10741
|
const e = `
|
|
@@ -10768,7 +10778,7 @@ class di extends HTMLElement {
|
|
|
10768
10778
|
this._stop(), this._analyserInput = null, this._analyserOutput = null;
|
|
10769
10779
|
}
|
|
10770
10780
|
}
|
|
10771
|
-
class
|
|
10781
|
+
class sr extends fi {
|
|
10772
10782
|
constructor() {
|
|
10773
10783
|
super(), this._ribbons = [], this._lastTime = 0, this._ribbons.push(
|
|
10774
10784
|
new It(
|
|
@@ -10812,7 +10822,7 @@ class ir extends di {
|
|
|
10812
10822
|
f.update(s, i, this._thinking), f.draw(e, t, r, this._thinking);
|
|
10813
10823
|
}
|
|
10814
10824
|
}
|
|
10815
|
-
customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid",
|
|
10825
|
+
customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid", sr);
|
|
10816
10826
|
class It {
|
|
10817
10827
|
constructor(e, t, i, s) {
|
|
10818
10828
|
this.inputColorRGB = t, this.outputColorRGB = i, this.currentColorRGB = { ...i }, this.options = s, this.segments = e, this.renderPoints = Array(e).fill(0), this.targetPoints = Array(e).fill(0), this.velocity = Array(e).fill(0), this.springStrength = s.springStrength || 10, this.damping = s.damping || 0.5, this.phase = s.phase || 0, this.scale = s.scale || 1, this.thinkingPhase = 0;
|
|
@@ -10843,7 +10853,7 @@ class It {
|
|
|
10843
10853
|
e.bezierCurveTo(E, M, L, C, k, w);
|
|
10844
10854
|
}
|
|
10845
10855
|
}
|
|
10846
|
-
e.lineTo(t, 0), e.lineTo(0, 0), s ===
|
|
10856
|
+
e.lineTo(t, 0), e.lineTo(0, 0), s === fa && !r ? this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.inputColorRGB, 0.02) : this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.outputColorRGB, 0.02);
|
|
10847
10857
|
const f = e.createLinearGradient(0, 0, 0, i);
|
|
10848
10858
|
f.addColorStop(0, this._rgbToString(this.currentColorRGB, 0.5)), f.addColorStop(0.5, this._rgbToString(this.currentColorRGB, 0.75)), f.addColorStop(1, this._rgbToString(this.currentColorRGB, 0.25));
|
|
10849
10859
|
const p = e.createLinearGradient(0, 0, t, 0);
|
|
@@ -10871,7 +10881,7 @@ class It {
|
|
|
10871
10881
|
}
|
|
10872
10882
|
}
|
|
10873
10883
|
}
|
|
10874
|
-
class
|
|
10884
|
+
class nr extends fi {
|
|
10875
10885
|
constructor() {
|
|
10876
10886
|
super(), this._numBars = 32, this._renderHeights = Array(this._numBars).fill(0), this._targetHeights = Array(this._numBars).fill(0), this._velocity = Array(this._numBars).fill(0), this._springStrength = 25, this._damping = 0.75, this._inputColor = { r: 255, g: 126, b: 103 }, this._outputColor = { r: 99, g: 193, b: 208 }, this._currentColor = { ...this._outputColor }, this._thinkingPhase = 0;
|
|
10877
10887
|
}
|
|
@@ -10888,7 +10898,7 @@ class sr extends di {
|
|
|
10888
10898
|
_draw(e, t, i) {
|
|
10889
10899
|
e.clearRect(0, 0, t.width, t.height);
|
|
10890
10900
|
const { data: s, source: r, hasActivity: o } = this._getAudioFrequencyData();
|
|
10891
|
-
if (r ===
|
|
10901
|
+
if (r === fa && !this._thinking ? this._currentColor = this._lerpColor(this._currentColor, this._inputColor, 0.1) : this._currentColor = this._lerpColor(this._currentColor, this._outputColor, 0.1), this._thinking) {
|
|
10892
10902
|
this._thinkingPhase -= i * 4;
|
|
10893
10903
|
for (let w = 0; w < this._numBars; w++) {
|
|
10894
10904
|
const _ = w / this._numBars;
|
|
@@ -10919,21 +10929,21 @@ class sr extends di {
|
|
|
10919
10929
|
e.restore();
|
|
10920
10930
|
}
|
|
10921
10931
|
}
|
|
10922
|
-
customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars",
|
|
10923
|
-
const
|
|
10924
|
-
var
|
|
10925
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10932
|
+
customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars", nr);
|
|
10933
|
+
const rr = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28m-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3c.22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52c-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21L21 19.73z"/></svg>';
|
|
10934
|
+
var or = Object.getOwnPropertyDescriptor, cr = (a, e, t, i) => {
|
|
10935
|
+
for (var s = i > 1 ? void 0 : i ? or(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10926
10936
|
(o = a[r]) && (s = o(s) || s);
|
|
10927
10937
|
return s;
|
|
10928
10938
|
};
|
|
10929
10939
|
const bt = Je.noConflict();
|
|
10930
10940
|
bt.setLevel("info");
|
|
10931
|
-
let
|
|
10941
|
+
let ta = class extends re {
|
|
10932
10942
|
constructor() {
|
|
10933
10943
|
super(...arguments), this.store = new it(this, b), this.unsubscribeTypingActive = b.subscribe(
|
|
10934
10944
|
this._handleTypingActiveChanged.bind(this),
|
|
10935
10945
|
["typingActive"]
|
|
10936
|
-
), this.volumeVisualizerRef =
|
|
10946
|
+
), this.volumeVisualizerRef = ji(), this.volumeVisualizerInitialized = !1;
|
|
10937
10947
|
}
|
|
10938
10948
|
/*
|
|
10939
10949
|
createRenderRoot() {
|
|
@@ -10963,7 +10973,7 @@ let ea = class extends re {
|
|
|
10963
10973
|
!0,
|
|
10964
10974
|
() => u`
|
|
10965
10975
|
<button type="button" part="${b.webAudioMuted ? "audio-unmute-button" : "audio-mute-button"}" class="circle-btn ${b.webAudioMuted ? "danger" : "clear"}" title="${b.webAudioMuted ? "Unmute" : "Mute"}" @click=${this._toggleMute}>
|
|
10966
|
-
${G(
|
|
10976
|
+
${G(rr)}
|
|
10967
10977
|
</button>
|
|
10968
10978
|
`,
|
|
10969
10979
|
() => u``
|
|
@@ -10972,7 +10982,7 @@ let ea = class extends re {
|
|
|
10972
10982
|
${this.renderVisualizer()}
|
|
10973
10983
|
</div>
|
|
10974
10984
|
<button type="button" part="audio-end-button" class="circle-btn clear" title="End" @click=${this._toggleHangup}>
|
|
10975
|
-
${G(
|
|
10985
|
+
${G(da)}
|
|
10976
10986
|
</button>
|
|
10977
10987
|
</div>
|
|
10978
10988
|
</div>` : null;
|
|
@@ -11028,11 +11038,11 @@ let ea = class extends re {
|
|
|
11028
11038
|
b.webAudioStarted && (bt.info(`Typing state changed: ${e}`), this.volumeVisualizerRef.value && this.volumeVisualizerRef.value.setThinking(e));
|
|
11029
11039
|
}
|
|
11030
11040
|
};
|
|
11031
|
-
|
|
11032
|
-
|
|
11041
|
+
ta.styles = ar;
|
|
11042
|
+
ta = cr([
|
|
11033
11043
|
Z("cb-audio-controls")
|
|
11034
|
-
],
|
|
11035
|
-
class
|
|
11044
|
+
], ta);
|
|
11045
|
+
class aa extends Error {
|
|
11036
11046
|
response;
|
|
11037
11047
|
request;
|
|
11038
11048
|
options;
|
|
@@ -11041,7 +11051,7 @@ class ta extends Error {
|
|
|
11041
11051
|
super(`Request failed with ${f}: ${t.method} ${t.url}`), this.name = "HTTPError", this.response = e, this.request = t, this.options = i;
|
|
11042
11052
|
}
|
|
11043
11053
|
}
|
|
11044
|
-
class
|
|
11054
|
+
class hi extends Error {
|
|
11045
11055
|
name = "NonError";
|
|
11046
11056
|
value;
|
|
11047
11057
|
constructor(e) {
|
|
@@ -11053,17 +11063,17 @@ class fi extends Error {
|
|
|
11053
11063
|
super(t), this.value = e;
|
|
11054
11064
|
}
|
|
11055
11065
|
}
|
|
11056
|
-
class
|
|
11066
|
+
class Xt extends Error {
|
|
11057
11067
|
name = "ForceRetryError";
|
|
11058
11068
|
customDelay;
|
|
11059
11069
|
code;
|
|
11060
11070
|
customRequest;
|
|
11061
11071
|
constructor(e) {
|
|
11062
|
-
const t = e?.cause ? e.cause instanceof Error ? e.cause : new
|
|
11072
|
+
const t = e?.cause ? e.cause instanceof Error ? e.cause : new hi(e.cause) : void 0;
|
|
11063
11073
|
super(e?.code ? `Forced retry: ${e.code}` : "Forced retry", t ? { cause: t } : void 0), this.customDelay = e?.delay, this.code = e?.code, this.customRequest = e?.request;
|
|
11064
11074
|
}
|
|
11065
11075
|
}
|
|
11066
|
-
const
|
|
11076
|
+
const ja = (() => {
|
|
11067
11077
|
let a = !1, e = !1;
|
|
11068
11078
|
const t = typeof globalThis.ReadableStream == "function", i = typeof globalThis.Request == "function";
|
|
11069
11079
|
if (t && i)
|
|
@@ -11082,7 +11092,7 @@ const Fa = (() => {
|
|
|
11082
11092
|
throw s;
|
|
11083
11093
|
}
|
|
11084
11094
|
return a && !e;
|
|
11085
|
-
})(),
|
|
11095
|
+
})(), lr = typeof globalThis.AbortController == "function", bi = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", dr = typeof globalThis.ReadableStream == "function", fr = typeof globalThis.FormData == "function", ui = ["get", "post", "put", "patch", "head", "delete"], hr = {
|
|
11086
11096
|
json: "application/json",
|
|
11087
11097
|
text: "text/*",
|
|
11088
11098
|
formData: "multipart/form-data",
|
|
@@ -11091,14 +11101,14 @@ const Fa = (() => {
|
|
|
11091
11101
|
// Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).
|
|
11092
11102
|
// We still feature-check at runtime before exposing the shortcut.
|
|
11093
11103
|
bytes: "*/*"
|
|
11094
|
-
},
|
|
11095
|
-
class
|
|
11104
|
+
}, Yt = 2147483647, br = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, pi = Symbol("stop");
|
|
11105
|
+
class gi {
|
|
11096
11106
|
options;
|
|
11097
11107
|
constructor(e) {
|
|
11098
11108
|
this.options = e;
|
|
11099
11109
|
}
|
|
11100
11110
|
}
|
|
11101
|
-
const
|
|
11111
|
+
const ur = (a) => new gi(a), pr = {
|
|
11102
11112
|
json: !0,
|
|
11103
11113
|
parseJson: !0,
|
|
11104
11114
|
stringifyJson: !0,
|
|
@@ -11112,10 +11122,10 @@ const br = (a) => new pi(a), ur = {
|
|
|
11112
11122
|
onUploadProgress: !0,
|
|
11113
11123
|
fetch: !0,
|
|
11114
11124
|
context: !0
|
|
11115
|
-
},
|
|
11125
|
+
}, gr = {
|
|
11116
11126
|
next: !0
|
|
11117
11127
|
// Next.js cache revalidation (revalidate, tags)
|
|
11118
|
-
},
|
|
11128
|
+
}, mr = {
|
|
11119
11129
|
method: !0,
|
|
11120
11130
|
headers: !0,
|
|
11121
11131
|
body: !0,
|
|
@@ -11130,13 +11140,13 @@ const br = (a) => new pi(a), ur = {
|
|
|
11130
11140
|
signal: !0,
|
|
11131
11141
|
window: !0,
|
|
11132
11142
|
duplex: !0
|
|
11133
|
-
},
|
|
11143
|
+
}, yr = (a) => {
|
|
11134
11144
|
if (!a)
|
|
11135
11145
|
return 0;
|
|
11136
11146
|
if (a instanceof FormData) {
|
|
11137
11147
|
let e = 0;
|
|
11138
11148
|
for (const [t, i] of a)
|
|
11139
|
-
e +=
|
|
11149
|
+
e += br, e += new TextEncoder().encode(`Content-Disposition: form-data; name="${t}"`).length, e += typeof i == "string" ? new TextEncoder().encode(i).length : i.size;
|
|
11140
11150
|
return e;
|
|
11141
11151
|
}
|
|
11142
11152
|
if (a instanceof Blob)
|
|
@@ -11157,7 +11167,7 @@ const br = (a) => new pi(a), ur = {
|
|
|
11157
11167
|
return 0;
|
|
11158
11168
|
}
|
|
11159
11169
|
return 0;
|
|
11160
|
-
},
|
|
11170
|
+
}, mi = (a, e, t) => {
|
|
11161
11171
|
let i, s = 0;
|
|
11162
11172
|
return a.pipeThrough(new TransformStream({
|
|
11163
11173
|
transform(r, o) {
|
|
@@ -11172,7 +11182,7 @@ const br = (a) => new pi(a), ur = {
|
|
|
11172
11182
|
i && (s += i.byteLength, t?.({ percent: 1, totalBytes: Math.max(e, s), transferredBytes: s }, i));
|
|
11173
11183
|
}
|
|
11174
11184
|
}));
|
|
11175
|
-
},
|
|
11185
|
+
}, vr = (a, e) => {
|
|
11176
11186
|
if (!a.body)
|
|
11177
11187
|
return a;
|
|
11178
11188
|
if (a.status === 204)
|
|
@@ -11182,40 +11192,40 @@ const br = (a) => new pi(a), ur = {
|
|
|
11182
11192
|
headers: a.headers
|
|
11183
11193
|
});
|
|
11184
11194
|
const t = Math.max(0, Number(a.headers.get("content-length")) || 0);
|
|
11185
|
-
return new Response(
|
|
11195
|
+
return new Response(mi(a.body, t, e), {
|
|
11186
11196
|
status: a.status,
|
|
11187
11197
|
statusText: a.statusText,
|
|
11188
11198
|
headers: a.headers
|
|
11189
11199
|
});
|
|
11190
|
-
},
|
|
11200
|
+
}, wr = (a, e, t) => {
|
|
11191
11201
|
if (!a.body)
|
|
11192
11202
|
return a;
|
|
11193
|
-
const i =
|
|
11203
|
+
const i = yr(t ?? a.body);
|
|
11194
11204
|
return new Request(a, {
|
|
11195
11205
|
// @ts-expect-error - Types are outdated.
|
|
11196
11206
|
duplex: "half",
|
|
11197
|
-
body:
|
|
11207
|
+
body: mi(a.body, i, e)
|
|
11198
11208
|
});
|
|
11199
11209
|
}, Qe = (a) => a !== null && typeof a == "object", Et = (...a) => {
|
|
11200
11210
|
for (const e of a)
|
|
11201
11211
|
if ((!Qe(e) || Array.isArray(e)) && e !== void 0)
|
|
11202
11212
|
throw new TypeError("The `options` argument must be an object");
|
|
11203
|
-
return
|
|
11204
|
-
},
|
|
11213
|
+
return ha({}, ...a);
|
|
11214
|
+
}, yi = (a = {}, e = {}) => {
|
|
11205
11215
|
const t = new globalThis.Headers(a), i = e instanceof globalThis.Headers, s = new globalThis.Headers(e);
|
|
11206
11216
|
for (const [r, o] of s.entries())
|
|
11207
11217
|
i && o === "undefined" || o === void 0 ? t.delete(r) : t.set(r, o);
|
|
11208
11218
|
return t;
|
|
11209
11219
|
};
|
|
11210
11220
|
function $t(a, e, t) {
|
|
11211
|
-
return Object.hasOwn(e, t) && e[t] === void 0 ? [] :
|
|
11221
|
+
return Object.hasOwn(e, t) && e[t] === void 0 ? [] : ha(a[t] ?? [], e[t] ?? []);
|
|
11212
11222
|
}
|
|
11213
|
-
const
|
|
11223
|
+
const vi = (a = {}, e = {}) => ({
|
|
11214
11224
|
beforeRequest: $t(a, e, "beforeRequest"),
|
|
11215
11225
|
beforeRetry: $t(a, e, "beforeRetry"),
|
|
11216
11226
|
afterResponse: $t(a, e, "afterResponse"),
|
|
11217
11227
|
beforeError: $t(a, e, "beforeError")
|
|
11218
|
-
}),
|
|
11228
|
+
}), xr = (a, e) => {
|
|
11219
11229
|
const t = new URLSearchParams();
|
|
11220
11230
|
for (const i of [a, e])
|
|
11221
11231
|
if (i !== void 0)
|
|
@@ -11237,7 +11247,7 @@ const yi = (a = {}, e = {}) => ({
|
|
|
11237
11247
|
t.append(r, o);
|
|
11238
11248
|
}
|
|
11239
11249
|
return t;
|
|
11240
|
-
},
|
|
11250
|
+
}, ha = (...a) => {
|
|
11241
11251
|
let e = {}, t = {}, i = {}, s;
|
|
11242
11252
|
const r = [];
|
|
11243
11253
|
for (const o of a)
|
|
@@ -11259,28 +11269,28 @@ const yi = (a = {}, e = {}) => ({
|
|
|
11259
11269
|
continue;
|
|
11260
11270
|
}
|
|
11261
11271
|
if (f === "searchParams") {
|
|
11262
|
-
p == null ? s = void 0 : s = s === void 0 ? p :
|
|
11272
|
+
p == null ? s = void 0 : s = s === void 0 ? p : xr(s, p);
|
|
11263
11273
|
continue;
|
|
11264
11274
|
}
|
|
11265
|
-
Qe(p) && f in e && (p =
|
|
11275
|
+
Qe(p) && f in e && (p = ha(e[f], p)), e = { ...e, [f]: p };
|
|
11266
11276
|
}
|
|
11267
|
-
Qe(o.hooks) && (i =
|
|
11277
|
+
Qe(o.hooks) && (i = vi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = yi(t, o.headers), e.headers = t);
|
|
11268
11278
|
}
|
|
11269
|
-
return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] :
|
|
11270
|
-
},
|
|
11279
|
+
return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : bi ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
|
|
11280
|
+
}, kr = (a) => ui.includes(a) ? a.toUpperCase() : a, _r = ["get", "put", "head", "delete", "options", "trace"], Sr = [408, 413, 429, 500, 502, 503, 504], Cr = [413, 429, 503], Ha = {
|
|
11271
11281
|
limit: 2,
|
|
11272
|
-
methods:
|
|
11273
|
-
statusCodes:
|
|
11274
|
-
afterStatusCodes:
|
|
11282
|
+
methods: _r,
|
|
11283
|
+
statusCodes: Sr,
|
|
11284
|
+
afterStatusCodes: Cr,
|
|
11275
11285
|
maxRetryAfter: Number.POSITIVE_INFINITY,
|
|
11276
11286
|
backoffLimit: Number.POSITIVE_INFINITY,
|
|
11277
11287
|
delay: (a) => 0.3 * 2 ** (a - 1) * 1e3,
|
|
11278
11288
|
jitter: void 0,
|
|
11279
11289
|
retryOnTimeout: !1
|
|
11280
|
-
},
|
|
11290
|
+
}, Ar = (a = {}) => {
|
|
11281
11291
|
if (typeof a == "number")
|
|
11282
11292
|
return {
|
|
11283
|
-
...
|
|
11293
|
+
...Ha,
|
|
11284
11294
|
limit: a
|
|
11285
11295
|
};
|
|
11286
11296
|
if (a.methods && !Array.isArray(a.methods))
|
|
@@ -11288,27 +11298,27 @@ const yi = (a = {}, e = {}) => ({
|
|
|
11288
11298
|
if (a.statusCodes && !Array.isArray(a.statusCodes))
|
|
11289
11299
|
throw new Error("retry.statusCodes must be an array");
|
|
11290
11300
|
return {
|
|
11291
|
-
...
|
|
11301
|
+
...Ha,
|
|
11292
11302
|
...a
|
|
11293
11303
|
};
|
|
11294
11304
|
};
|
|
11295
|
-
class
|
|
11305
|
+
class ia extends Error {
|
|
11296
11306
|
request;
|
|
11297
11307
|
constructor(e) {
|
|
11298
11308
|
super(`Request timed out: ${e.method} ${e.url}`), this.name = "TimeoutError", this.request = e;
|
|
11299
11309
|
}
|
|
11300
11310
|
}
|
|
11301
|
-
async function
|
|
11311
|
+
async function Mr(a, e, t, i) {
|
|
11302
11312
|
return new Promise((s, r) => {
|
|
11303
11313
|
const o = setTimeout(() => {
|
|
11304
|
-
t && t.abort(), r(new
|
|
11314
|
+
t && t.abort(), r(new ia(a));
|
|
11305
11315
|
}, i.timeout);
|
|
11306
11316
|
i.fetch(a, e).then(s).catch(r).then(() => {
|
|
11307
11317
|
clearTimeout(o);
|
|
11308
11318
|
});
|
|
11309
11319
|
});
|
|
11310
11320
|
}
|
|
11311
|
-
async function
|
|
11321
|
+
async function Tr(a, { signal: e }) {
|
|
11312
11322
|
return new Promise((t, i) => {
|
|
11313
11323
|
e && (e.throwIfAborted(), e.addEventListener("abort", s, { once: !0 }));
|
|
11314
11324
|
function s() {
|
|
@@ -11319,35 +11329,35 @@ async function Mr(a, { signal: e }) {
|
|
|
11319
11329
|
}, a);
|
|
11320
11330
|
});
|
|
11321
11331
|
}
|
|
11322
|
-
const
|
|
11332
|
+
const Ir = (a, e) => {
|
|
11323
11333
|
const t = {};
|
|
11324
11334
|
for (const i in e)
|
|
11325
|
-
Object.hasOwn(e, i) && !(i in
|
|
11335
|
+
Object.hasOwn(e, i) && !(i in mr) && !(i in pr) && (!(i in a) || i in gr) && (t[i] = e[i]);
|
|
11326
11336
|
return t;
|
|
11327
|
-
},
|
|
11328
|
-
function Er(a) {
|
|
11329
|
-
return a instanceof ta || a?.name === ta.name;
|
|
11330
|
-
}
|
|
11337
|
+
}, Er = (a) => a === void 0 ? !1 : Array.isArray(a) ? a.length > 0 : a instanceof URLSearchParams ? a.size > 0 : typeof a == "object" ? Object.keys(a).length > 0 : typeof a == "string" ? a.trim().length > 0 : !!a;
|
|
11331
11338
|
function $r(a) {
|
|
11332
11339
|
return a instanceof aa || a?.name === aa.name;
|
|
11333
11340
|
}
|
|
11341
|
+
function Pr(a) {
|
|
11342
|
+
return a instanceof ia || a?.name === ia.name;
|
|
11343
|
+
}
|
|
11334
11344
|
class vt {
|
|
11335
11345
|
static create(e, t) {
|
|
11336
11346
|
const i = new vt(e, t), s = async () => {
|
|
11337
|
-
if (typeof i.#e.timeout == "number" && i.#e.timeout >
|
|
11338
|
-
throw new RangeError(`The \`timeout\` option cannot be greater than ${
|
|
11347
|
+
if (typeof i.#e.timeout == "number" && i.#e.timeout > Yt)
|
|
11348
|
+
throw new RangeError(`The \`timeout\` option cannot be greater than ${Yt}`);
|
|
11339
11349
|
await Promise.resolve();
|
|
11340
11350
|
let o = await i.#p();
|
|
11341
11351
|
for (const f of i.#e.hooks.afterResponse) {
|
|
11342
11352
|
const p = i.#d(o.clone()), v = await f(i.request, i.#o(), p, { retryCount: i.#a });
|
|
11343
|
-
if (v instanceof globalThis.Response && (o = v), v instanceof
|
|
11353
|
+
if (v instanceof globalThis.Response && (o = v), v instanceof gi)
|
|
11344
11354
|
throw await Promise.all([
|
|
11345
11355
|
p.body?.cancel(),
|
|
11346
11356
|
o.body?.cancel()
|
|
11347
|
-
]), new
|
|
11357
|
+
]), new Xt(v.options);
|
|
11348
11358
|
}
|
|
11349
11359
|
if (i.#d(o), !o.ok && (typeof i.#e.throwHttpErrors == "function" ? i.#e.throwHttpErrors(o.status) : i.#e.throwHttpErrors)) {
|
|
11350
|
-
let f = new
|
|
11360
|
+
let f = new aa(o, i.request, i.#o());
|
|
11351
11361
|
for (const p of i.#e.hooks.beforeError)
|
|
11352
11362
|
f = await p(f, { retryCount: i.#a });
|
|
11353
11363
|
throw f;
|
|
@@ -11355,16 +11365,16 @@ class vt {
|
|
|
11355
11365
|
if (i.#e.onDownloadProgress) {
|
|
11356
11366
|
if (typeof i.#e.onDownloadProgress != "function")
|
|
11357
11367
|
throw new TypeError("The `onDownloadProgress` option must be a function");
|
|
11358
|
-
if (!
|
|
11368
|
+
if (!dr)
|
|
11359
11369
|
throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
|
|
11360
|
-
return
|
|
11370
|
+
return vr(o.clone(), i.#e.onDownloadProgress);
|
|
11361
11371
|
}
|
|
11362
11372
|
return o;
|
|
11363
11373
|
}, r = i.#f(s).finally(async () => {
|
|
11364
11374
|
const o = i.#n, f = [];
|
|
11365
11375
|
o && !o.bodyUsed && f.push(o.body?.cancel()), i.request.bodyUsed || f.push(i.request.body?.cancel()), await Promise.all(f);
|
|
11366
11376
|
});
|
|
11367
|
-
for (const [o, f] of Object.entries(
|
|
11377
|
+
for (const [o, f] of Object.entries(hr))
|
|
11368
11378
|
o === "bytes" && typeof globalThis.Response?.prototype?.bytes != "function" || (r[o] = async () => {
|
|
11369
11379
|
i.request.headers.set("accept", i.request.headers.get("accept") || f);
|
|
11370
11380
|
const p = await r;
|
|
@@ -11395,17 +11405,17 @@ class vt {
|
|
|
11395
11405
|
constructor(e, t = {}) {
|
|
11396
11406
|
if (this.#t = e, this.#e = {
|
|
11397
11407
|
...t,
|
|
11398
|
-
headers:
|
|
11399
|
-
hooks:
|
|
11408
|
+
headers: yi(this.#t.headers, t.headers),
|
|
11409
|
+
hooks: vi({
|
|
11400
11410
|
beforeRequest: [],
|
|
11401
11411
|
beforeRetry: [],
|
|
11402
11412
|
beforeError: [],
|
|
11403
11413
|
afterResponse: []
|
|
11404
11414
|
}, t.hooks),
|
|
11405
|
-
method:
|
|
11415
|
+
method: kr(t.method ?? this.#t.method ?? "GET"),
|
|
11406
11416
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
11407
11417
|
prefixUrl: String(t.prefixUrl || ""),
|
|
11408
|
-
retry:
|
|
11418
|
+
retry: Ar(t.retry),
|
|
11409
11419
|
throwHttpErrors: t.throwHttpErrors ?? !0,
|
|
11410
11420
|
timeout: t.timeout ?? 1e4,
|
|
11411
11421
|
fetch: t.fetch ?? globalThis.fetch.bind(globalThis),
|
|
@@ -11417,16 +11427,16 @@ class vt {
|
|
|
11417
11427
|
throw new Error("`input` must not begin with a slash when using `prefixUrl`");
|
|
11418
11428
|
this.#e.prefixUrl.endsWith("/") || (this.#e.prefixUrl += "/"), this.#t = this.#e.prefixUrl + this.#t;
|
|
11419
11429
|
}
|
|
11420
|
-
|
|
11430
|
+
lr && bi && (this.#s = this.#e.signal ?? this.#t.signal, this.#i = new globalThis.AbortController(), this.#e.signal = this.#s ? AbortSignal.any([this.#s, this.#i.signal]) : this.#i.signal), ja && (this.#e.duplex = "half"), this.#e.json !== void 0 && (this.#e.body = this.#e.stringifyJson?.(this.#e.json) ?? JSON.stringify(this.#e.json), this.#e.headers.set("content-type", this.#e.headers.get("content-type") ?? "application/json"));
|
|
11421
11431
|
const i = t.headers && new globalThis.Headers(t.headers).has("content-type");
|
|
11422
|
-
if (this.#t instanceof globalThis.Request && (
|
|
11432
|
+
if (this.#t instanceof globalThis.Request && (fr && this.#e.body instanceof globalThis.FormData || this.#e.body instanceof URLSearchParams) && !i && this.#e.headers.delete("content-type"), this.request = new globalThis.Request(this.#t, this.#e), Er(this.#e.searchParams)) {
|
|
11423
11433
|
const r = "?" + (typeof this.#e.searchParams == "string" ? this.#e.searchParams.replace(/^\?/, "") : new URLSearchParams(vt.#b(this.#e.searchParams)).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, r);
|
|
11424
11434
|
this.request = new globalThis.Request(o, this.#e);
|
|
11425
11435
|
}
|
|
11426
11436
|
if (this.#e.onUploadProgress) {
|
|
11427
11437
|
if (typeof this.#e.onUploadProgress != "function")
|
|
11428
11438
|
throw new TypeError("The `onUploadProgress` option must be a function");
|
|
11429
|
-
if (!
|
|
11439
|
+
if (!ja)
|
|
11430
11440
|
throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");
|
|
11431
11441
|
this.request = this.#h(this.request, this.#e.body ?? void 0);
|
|
11432
11442
|
}
|
|
@@ -11439,8 +11449,8 @@ class vt {
|
|
|
11439
11449
|
async #u(e) {
|
|
11440
11450
|
if (this.#a++, this.#a > this.#e.retry.limit)
|
|
11441
11451
|
throw e;
|
|
11442
|
-
const t = e instanceof Error ? e : new
|
|
11443
|
-
if (t instanceof
|
|
11452
|
+
const t = e instanceof Error ? e : new hi(e);
|
|
11453
|
+
if (t instanceof Xt)
|
|
11444
11454
|
return t.customDelay ?? this.#c();
|
|
11445
11455
|
if (!this.#e.retry.methods.includes(this.request.method.toLowerCase()))
|
|
11446
11456
|
throw e;
|
|
@@ -11451,9 +11461,9 @@ class vt {
|
|
|
11451
11461
|
if (i === !0)
|
|
11452
11462
|
return this.#c();
|
|
11453
11463
|
}
|
|
11454
|
-
if (
|
|
11464
|
+
if (Pr(e) && !this.#e.retry.retryOnTimeout)
|
|
11455
11465
|
throw e;
|
|
11456
|
-
if (
|
|
11466
|
+
if ($r(e)) {
|
|
11457
11467
|
if (!this.#e.retry.statusCodes.includes(e.response.status))
|
|
11458
11468
|
throw e;
|
|
11459
11469
|
const i = e.response.headers.get("Retry-After") ?? e.response.headers.get("RateLimit-Reset") ?? e.response.headers.get("X-RateLimit-Retry-After") ?? e.response.headers.get("X-RateLimit-Reset") ?? e.response.headers.get("X-Rate-Limit-Reset");
|
|
@@ -11475,10 +11485,10 @@ class vt {
|
|
|
11475
11485
|
try {
|
|
11476
11486
|
return await e();
|
|
11477
11487
|
} catch (t) {
|
|
11478
|
-
const i = Math.min(await this.#u(t),
|
|
11488
|
+
const i = Math.min(await this.#u(t), Yt);
|
|
11479
11489
|
if (this.#a < 1)
|
|
11480
11490
|
throw t;
|
|
11481
|
-
if (await
|
|
11491
|
+
if (await Tr(i, this.#s ? { signal: this.#s } : {}), t instanceof Xt && t.customRequest) {
|
|
11482
11492
|
const s = this.#e.signal ? new globalThis.Request(t.customRequest, { signal: this.#e.signal }) : new globalThis.Request(t.customRequest);
|
|
11483
11493
|
this.#l(s);
|
|
11484
11494
|
}
|
|
@@ -11495,7 +11505,7 @@ class vt {
|
|
|
11495
11505
|
}
|
|
11496
11506
|
if (r instanceof globalThis.Response)
|
|
11497
11507
|
return r;
|
|
11498
|
-
if (r ===
|
|
11508
|
+
if (r === pi)
|
|
11499
11509
|
return;
|
|
11500
11510
|
}
|
|
11501
11511
|
return this.#f(e);
|
|
@@ -11512,8 +11522,8 @@ class vt {
|
|
|
11512
11522
|
break;
|
|
11513
11523
|
}
|
|
11514
11524
|
}
|
|
11515
|
-
const e =
|
|
11516
|
-
return this.#n = this.request, this.request = this.#n.clone(), this.#e.timeout === !1 ? this.#e.fetch(this.#n, e) :
|
|
11525
|
+
const e = Ir(this.request, this.#e);
|
|
11526
|
+
return this.#n = this.request, this.request = this.#n.clone(), this.#e.timeout === !1 ? this.#e.fetch(this.#n, e) : Mr(this.#n, e, this.#i, this.#e);
|
|
11517
11527
|
}
|
|
11518
11528
|
#o() {
|
|
11519
11529
|
if (!this.#r) {
|
|
@@ -11526,16 +11536,16 @@ class vt {
|
|
|
11526
11536
|
this.#r = void 0, this.request = this.#h(e);
|
|
11527
11537
|
}
|
|
11528
11538
|
#h(e, t) {
|
|
11529
|
-
return !this.#e.onUploadProgress || !e.body ? e :
|
|
11539
|
+
return !this.#e.onUploadProgress || !e.body ? e : wr(e, this.#e.onUploadProgress, t ?? this.#e.body ?? void 0);
|
|
11530
11540
|
}
|
|
11531
11541
|
}
|
|
11532
|
-
const
|
|
11542
|
+
const sa = (a) => {
|
|
11533
11543
|
const e = (t, i) => vt.create(t, Et(a, i));
|
|
11534
|
-
for (const t of
|
|
11544
|
+
for (const t of ui)
|
|
11535
11545
|
e[t] = (i, s) => vt.create(i, Et(a, s, { method: t }));
|
|
11536
|
-
return e.create = (t) =>
|
|
11537
|
-
},
|
|
11538
|
-
|
|
11546
|
+
return e.create = (t) => sa(Et(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), sa(Et(a, t))), e.stop = pi, e.retry = ur, e;
|
|
11547
|
+
}, Lr = sa();
|
|
11548
|
+
Lr.extend({
|
|
11539
11549
|
hooks: {
|
|
11540
11550
|
beforeRequest: [
|
|
11541
11551
|
() => {
|
|
@@ -11543,7 +11553,7 @@ Pr.extend({
|
|
|
11543
11553
|
]
|
|
11544
11554
|
}
|
|
11545
11555
|
});
|
|
11546
|
-
async function
|
|
11556
|
+
async function Rr(a, e) {
|
|
11547
11557
|
const { onmessage: t, onclose: i, ...s } = e, r = async (o, f) => {
|
|
11548
11558
|
const { value: p, done: v } = await f.read();
|
|
11549
11559
|
v ? (o.close(), i?.()) : (t?.(p), o.enqueue(p), r(o, f));
|
|
@@ -11564,16 +11574,16 @@ async function Lr(a, e) {
|
|
|
11564
11574
|
}).text()
|
|
11565
11575
|
);
|
|
11566
11576
|
}
|
|
11567
|
-
var
|
|
11568
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
11577
|
+
var zr = Object.defineProperty, Or = Object.getOwnPropertyDescriptor, V = (a, e, t, i) => {
|
|
11578
|
+
for (var s = i > 1 ? void 0 : i ? Or(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
11569
11579
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
11570
|
-
return i && s &&
|
|
11580
|
+
return i && s && zr(e, t, s), s;
|
|
11571
11581
|
};
|
|
11572
11582
|
const Be = Je.noConflict();
|
|
11573
11583
|
Be.setLevel("info");
|
|
11574
|
-
let
|
|
11584
|
+
let F = class extends re {
|
|
11575
11585
|
constructor() {
|
|
11576
|
-
super(...arguments), this.store = new it(this, b), this.displayLicense = !1, this.name = "ChatBot", this.orgId = "", this.botId = "", this.url = "ws://localhost:3070", this.logoUrl = "", this.logoSvg = `<svg width="24" height="24" viewBox="0 0 203 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
11586
|
+
super(...arguments), this.store = new it(this, b), this.displayLicense = !1, this.name = "ChatBot", this.orgId = "", this.botId = "", this.version = "current", this.url = "ws://localhost:3070", this.logoUrl = "", this.logoSvg = `<svg width="24" height="24" viewBox="0 0 203 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
11577
11587
|
<path d="M100.438 0C155.665 0 200.438 44.7723 200.438 100C200.438 155.228 155.665 200 100.438 200C45.2098 200 0.4375 155.228 0.4375 100C0.4375 44.7723 45.2098 0 100.438 0ZM130.093 60.6063C120.409 60.6063 115.205 61.458 109.344 65.0325C100.122 70.6592 95.629 80.1958 94.2273 93.877C94.1468 94.5544 93.8048 97.2571 93.4091 100.349C93.3152 101.06 93.2281 101.771 93.1409 102.455C92.7318 105.573 92.3093 108.739 92.0142 110.408C90.8808 117.041 89.2914 123.761 83.8927 126.759C83.6915 126.873 83.4702 126.967 83.2556 127.067C78.6013 129.093 72.2905 128.898 72.2905 128.898C72.2905 128.898 69.1988 128.885 69.1787 128.885C69.172 128.885 69.1921 128.885 69.1921 128.898L68.1057 143.632C87.7824 143.666 93.0537 139.213 93.0537 139.213C102.275 133.586 106.768 124.049 108.17 110.368C108.251 109.677 108.593 106.894 109.002 103.735C109.096 103.004 109.196 102.273 109.283 101.576C109.679 98.5246 110.095 95.4798 110.383 93.8435C111.517 87.2108 113.106 80.4842 118.505 77.4931C118.706 77.3791 118.921 77.2852 119.135 77.1846C123.756 75.1727 130.107 75.3471 130.107 75.3471C132.494 75.3269 133.219 75.4007 133.286 75.4074L134.292 60.6264C132.783 60.6264 130.107 60.6264 130.107 60.6264L130.093 60.6063Z" fill="#010101" style="fill:#010101;fill:color(display-p3 0.0039 0.0039 0.0039);fill-opacity:1;"/>
|
|
11578
11588
|
</svg>`, this.closeSvg = '<svg viewBox="0 0 16 16" width="1.4em" height="1.4em"><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"></path></svg>', this.logoSvgGradient = `<svg width="28" height="28" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
11579
11589
|
<g clip-path="url(#clip0_830_884)">
|
|
@@ -11599,7 +11609,7 @@ let H = class extends re {
|
|
|
11599
11609
|
this._chatbotToggleHandler(a);
|
|
11600
11610
|
}, this.handleFormSubmitEvent = (a) => {
|
|
11601
11611
|
this._formSubmitHandler(a);
|
|
11602
|
-
}, this.fetchStream =
|
|
11612
|
+
}, this.fetchStream = Rr;
|
|
11603
11613
|
}
|
|
11604
11614
|
/**
|
|
11605
11615
|
* decodeStreamData
|
|
@@ -11727,7 +11737,7 @@ let H = class extends re {
|
|
|
11727
11737
|
_initSetting() {
|
|
11728
11738
|
Be.info("_initSetting");
|
|
11729
11739
|
const a = b.setting;
|
|
11730
|
-
a.orgId = this.orgId, a.botId = this.botId, a.url = this.url, a.logoUrl = this.logoUrl, a.logoSvg = this.logoSvg, a.closeSvg = this.closeSvg, a.popupLogoSvg = this.popupLogoSvg, a.popupLogoUrl = this.popupLogoUrl, a.botIconSvg = this.botIconSvg, a.userIconSvg = this.userIconSvg, a.systemIconSvg = this.systemIconSvg, a.agentIconSvg = this.agentIconSvg, a.infoIconSvg = this.infoIconSvg, a.anchorOpenSvg = this.anchorOpenSvg, a.anchorCloseSvg = this.anchorCloseSvg, a.sendIconSvg = this.sendIconSvg, a.attachIconSvg = this.attachIconSvg, b.setSetting(a);
|
|
11740
|
+
a.orgId = this.orgId, a.botId = this.botId, a.url = this.url, a.version = this.version || "current", a.logoUrl = this.logoUrl, a.logoSvg = this.logoSvg, a.closeSvg = this.closeSvg, a.popupLogoSvg = this.popupLogoSvg, a.popupLogoUrl = this.popupLogoUrl, a.botIconSvg = this.botIconSvg, a.userIconSvg = this.userIconSvg, a.systemIconSvg = this.systemIconSvg, a.agentIconSvg = this.agentIconSvg, a.infoIconSvg = this.infoIconSvg, a.anchorOpenSvg = this.anchorOpenSvg, a.anchorCloseSvg = this.anchorCloseSvg, a.sendIconSvg = this.sendIconSvg, a.attachIconSvg = this.attachIconSvg, b.setSetting(a);
|
|
11731
11741
|
let e = {};
|
|
11732
11742
|
try {
|
|
11733
11743
|
e = JSON.parse(this.prefilledFormFields);
|
|
@@ -11814,9 +11824,6 @@ let H = class extends re {
|
|
|
11814
11824
|
}
|
|
11815
11825
|
}
|
|
11816
11826
|
}
|
|
11817
|
-
sanitizeInputText(a) {
|
|
11818
|
-
return !a || typeof a != "string" ? "" : a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
11819
|
-
}
|
|
11820
11827
|
sendMessage(a) {
|
|
11821
11828
|
if (!a || typeof a != "string" || a.trim() === "") {
|
|
11822
11829
|
console.log("sendMessage: input text is empty or not string, ignored", a);
|
|
@@ -11846,7 +11853,7 @@ let H = class extends re {
|
|
|
11846
11853
|
console.log("_processSendMessage: input text is empty, ignored", a);
|
|
11847
11854
|
return;
|
|
11848
11855
|
}
|
|
11849
|
-
a.data.text =
|
|
11856
|
+
a.data.text = Vt(a.data.text.trim()), b.isConversationStart() && (console.log("Start of conversation detected, emitting c7o:bot:conversationStart", a), a.conversationId = b.conversationId, this.emitExt("c7o:bot:conversationStart", {
|
|
11850
11857
|
detail: a
|
|
11851
11858
|
})), b.sendMessage(a), setTimeout(() => {
|
|
11852
11859
|
this._scrollToBottom();
|
|
@@ -11892,100 +11899,103 @@ let H = class extends re {
|
|
|
11892
11899
|
this._messageList?.scrollToBottom();
|
|
11893
11900
|
}
|
|
11894
11901
|
};
|
|
11895
|
-
|
|
11896
|
-
|
|
11902
|
+
F.styles = [Xi, Ka];
|
|
11903
|
+
V([
|
|
11897
11904
|
x({ type: Boolean, attribute: "display-license" })
|
|
11898
|
-
],
|
|
11899
|
-
|
|
11905
|
+
], F.prototype, "displayLicense", 2);
|
|
11906
|
+
V([
|
|
11900
11907
|
x({ type: String, attribute: "name" })
|
|
11901
|
-
],
|
|
11902
|
-
|
|
11908
|
+
], F.prototype, "name", 2);
|
|
11909
|
+
V([
|
|
11903
11910
|
x({ type: String, attribute: "org-id" })
|
|
11904
|
-
],
|
|
11905
|
-
|
|
11911
|
+
], F.prototype, "orgId", 2);
|
|
11912
|
+
V([
|
|
11906
11913
|
x({ type: String, attribute: "bot-id" })
|
|
11907
|
-
],
|
|
11908
|
-
|
|
11914
|
+
], F.prototype, "botId", 2);
|
|
11915
|
+
V([
|
|
11916
|
+
x({ type: String, attribute: "version" })
|
|
11917
|
+
], F.prototype, "version", 2);
|
|
11918
|
+
V([
|
|
11909
11919
|
x({ type: String, attribute: "url" })
|
|
11910
|
-
],
|
|
11911
|
-
|
|
11920
|
+
], F.prototype, "url", 2);
|
|
11921
|
+
V([
|
|
11912
11922
|
x({ type: String, attribute: "logo-url" })
|
|
11913
|
-
],
|
|
11914
|
-
|
|
11923
|
+
], F.prototype, "logoUrl", 2);
|
|
11924
|
+
V([
|
|
11915
11925
|
x({ type: String, attribute: "logo-svg" })
|
|
11916
|
-
],
|
|
11917
|
-
|
|
11926
|
+
], F.prototype, "logoSvg", 2);
|
|
11927
|
+
V([
|
|
11918
11928
|
x({ type: String, attribute: "close-svg" })
|
|
11919
|
-
],
|
|
11920
|
-
|
|
11929
|
+
], F.prototype, "closeSvg", 2);
|
|
11930
|
+
V([
|
|
11921
11931
|
x({ type: String, attribute: "popup-logo-svg" })
|
|
11922
|
-
],
|
|
11923
|
-
|
|
11932
|
+
], F.prototype, "popupLogoSvg", 2);
|
|
11933
|
+
V([
|
|
11924
11934
|
x({ type: String, attribute: "popup-logo-url" })
|
|
11925
|
-
],
|
|
11926
|
-
|
|
11935
|
+
], F.prototype, "popupLogoUrl", 2);
|
|
11936
|
+
V([
|
|
11927
11937
|
x({ type: String, attribute: "bot-icon-svg" })
|
|
11928
|
-
],
|
|
11929
|
-
|
|
11938
|
+
], F.prototype, "botIconSvg", 2);
|
|
11939
|
+
V([
|
|
11930
11940
|
x({ type: String, attribute: "user-icon-svg" })
|
|
11931
|
-
],
|
|
11932
|
-
|
|
11941
|
+
], F.prototype, "userIconSvg", 2);
|
|
11942
|
+
V([
|
|
11933
11943
|
x({ type: String, attribute: "system-icon-svg" })
|
|
11934
|
-
],
|
|
11935
|
-
|
|
11944
|
+
], F.prototype, "systemIconSvg", 2);
|
|
11945
|
+
V([
|
|
11936
11946
|
x({ type: String, attribute: "agent-icon-svg" })
|
|
11937
|
-
],
|
|
11938
|
-
|
|
11947
|
+
], F.prototype, "agentIconSvg", 2);
|
|
11948
|
+
V([
|
|
11939
11949
|
x({ type: String, attribute: "info-icon-svg" })
|
|
11940
|
-
],
|
|
11941
|
-
|
|
11950
|
+
], F.prototype, "infoIconSvg", 2);
|
|
11951
|
+
V([
|
|
11942
11952
|
x({ type: String, attribute: "anchor-open-svg" })
|
|
11943
|
-
],
|
|
11944
|
-
|
|
11953
|
+
], F.prototype, "anchorOpenSvg", 2);
|
|
11954
|
+
V([
|
|
11945
11955
|
x({ type: String, attribute: "anchor-close-svg" })
|
|
11946
|
-
],
|
|
11947
|
-
|
|
11956
|
+
], F.prototype, "anchorCloseSvg", 2);
|
|
11957
|
+
V([
|
|
11948
11958
|
x({ type: String, attribute: "send-icon-svg" })
|
|
11949
|
-
],
|
|
11950
|
-
|
|
11959
|
+
], F.prototype, "sendIconSvg", 2);
|
|
11960
|
+
V([
|
|
11951
11961
|
x({ type: String, attribute: "attach-icon-svg" })
|
|
11952
|
-
],
|
|
11953
|
-
|
|
11962
|
+
], F.prototype, "attachIconSvg", 2);
|
|
11963
|
+
V([
|
|
11954
11964
|
x({ type: Boolean, attribute: "stream" })
|
|
11955
|
-
],
|
|
11956
|
-
|
|
11965
|
+
], F.prototype, "stream", 2);
|
|
11966
|
+
V([
|
|
11957
11967
|
x({ type: Boolean, attribute: "custom-request" })
|
|
11958
|
-
],
|
|
11959
|
-
|
|
11968
|
+
], F.prototype, "customRequest", 2);
|
|
11969
|
+
V([
|
|
11960
11970
|
x({ type: Boolean, attribute: "enable-file-upload" })
|
|
11961
|
-
],
|
|
11962
|
-
|
|
11971
|
+
], F.prototype, "enableFileUpload", 2);
|
|
11972
|
+
V([
|
|
11963
11973
|
x({ type: String, attribute: "upload-file-url" })
|
|
11964
|
-
],
|
|
11965
|
-
|
|
11974
|
+
], F.prototype, "uploadFileUrl", 2);
|
|
11975
|
+
V([
|
|
11966
11976
|
x({ type: Boolean, attribute: "open" })
|
|
11967
|
-
],
|
|
11968
|
-
|
|
11977
|
+
], F.prototype, "open", 2);
|
|
11978
|
+
V([
|
|
11969
11979
|
x({ type: Boolean, attribute: "always-open" })
|
|
11970
|
-
],
|
|
11971
|
-
|
|
11980
|
+
], F.prototype, "alwaysOpen", 2);
|
|
11981
|
+
V([
|
|
11972
11982
|
x({ type: String, attribute: "prefilled-form-fields" })
|
|
11973
|
-
],
|
|
11974
|
-
|
|
11983
|
+
], F.prototype, "prefilledFormFields", 2);
|
|
11984
|
+
V([
|
|
11975
11985
|
x({ type: Boolean })
|
|
11976
|
-
],
|
|
11977
|
-
|
|
11986
|
+
], F.prototype, "loading", 2);
|
|
11987
|
+
V([
|
|
11978
11988
|
x({ type: Boolean })
|
|
11979
|
-
],
|
|
11980
|
-
|
|
11989
|
+
], F.prototype, "showSetting", 2);
|
|
11990
|
+
V([
|
|
11981
11991
|
x({ type: Boolean })
|
|
11982
|
-
],
|
|
11983
|
-
|
|
11992
|
+
], F.prototype, "showAuthAlert", 2);
|
|
11993
|
+
V([
|
|
11984
11994
|
xe("cb-message-list")
|
|
11985
|
-
],
|
|
11986
|
-
|
|
11995
|
+
], F.prototype, "_messageList", 2);
|
|
11996
|
+
F = V([
|
|
11987
11997
|
Z("enegelai-bot")
|
|
11988
|
-
],
|
|
11998
|
+
], F);
|
|
11989
11999
|
export {
|
|
11990
|
-
|
|
12000
|
+
F as default
|
|
11991
12001
|
};
|