@enegelai/bot-widget 1.16.3 → 1.16.4

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/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 me } from "lit";
2
2
  import { property as x, customElement as K, query as xe, state as Ha, queryAll as Va, eventOptions as sa } from "lit/decorators.js";
3
- import { unsafeHTML as Y } from "lit-html/directives/unsafe-html.js";
4
3
  import { when as W } from "lit/directives/when.js";
5
- import { registerIconLibrary as zi } from "@shoelace-style/shoelace";
4
+ import { unsafeHTML as Y } from "lit-html/directives/unsafe-html.js";
5
+ import { registerIconLibrary as Oi } 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 Xt } from "lit-html/directives/until.js";
26
- import Oi from "markdown-it";
27
- import Bi from "markdown-it-link-attributes";
28
- import Ut from "highlight.js";
26
+ import Bi from "markdown-it";
27
+ import qi from "markdown-it-link-attributes";
28
+ import Nt 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 qi, ref as At } from "lit/directives/ref.js";
32
- function Ua(a) {
31
+ import { createRef as Di, ref as At } from "lit/directives/ref.js";
32
+ function Na(a) {
33
33
  return typeof a == "function" ? a() : a;
34
34
  }
35
35
  const jt = class jt extends Event {
@@ -45,7 +45,7 @@ const jt = class jt extends Event {
45
45
  };
46
46
  jt.eventName = "lit-state-changed";
47
47
  let at = jt;
48
- const Di = (a, e) => e !== a && (e === e || a === a), ha = class ha extends EventTarget {
48
+ const Fi = (a, e) => e !== a && (e === e || a === a), ha = class ha extends EventTarget {
49
49
  static initPropertyMap() {
50
50
  this.propertyMap || (this.propertyMap = /* @__PURE__ */ new Map());
51
51
  }
@@ -58,7 +58,7 @@ const Di = (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 = Ua(t.initialValue);
61
+ const i = Na(t.initialValue);
62
62
  this[e] = i, t.value = i;
63
63
  }
64
64
  });
@@ -78,7 +78,7 @@ const Di = (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 || Di;
81
+ const s = i?.hasChanged || Fi;
82
82
  return {
83
83
  get() {
84
84
  return this[t];
@@ -132,7 +132,7 @@ class it {
132
132
  this.state.removeEventListener(at.eventName, this.callback);
133
133
  }
134
134
  }
135
- function O(a) {
135
+ function z(a) {
136
136
  return (e, t) => {
137
137
  if (Object.getOwnPropertyDescriptor(e, t))
138
138
  throw new Error("@property must be called before all state decorators");
@@ -146,7 +146,7 @@ function O(a) {
146
146
  }), i.createProperty(t, a), s ? Object.getOwnPropertyDescriptor(e, t) : void 0;
147
147
  };
148
148
  }
149
- function Fi(a, e) {
149
+ function ji(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 Fi(a, e) {
156
156
  return a;
157
157
  }
158
158
  new URL(location.href);
159
- const ji = {
159
+ const Hi = {
160
160
  prefix: "_ls"
161
161
  };
162
- function fe(a) {
163
- return a = { ...ji, ...a }, (e, t) => {
162
+ function ce(a) {
163
+ return a = { ...Hi, ...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 = () => Fi(localStorage.getItem(s), f) ?? Ua(w), r.propertyMap.set(t, { ...o, ...a });
170
+ o.initialValue = () => ji(localStorage.getItem(s), f) ?? Na(w), r.propertyMap.set(t, { ...o, ...a });
171
171
  }
172
172
  const p = i?.set, k = {
173
173
  ...i,
@@ -178,15 +178,15 @@ function fe(a) {
178
178
  Object.defineProperty(r.prototype, t, k);
179
179
  };
180
180
  }
181
- function Na(a) {
181
+ function Ua(a) {
182
182
  return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
183
183
  }
184
- var Pt = { exports: {} }, Hi = Pt.exports, ka;
185
- function Vi() {
184
+ var Pt = { exports: {} }, Vi = Pt.exports, ka;
185
+ function Ni() {
186
186
  return ka || (ka = 1, (function(a) {
187
187
  (function(e, t) {
188
188
  a.exports ? a.exports = t() : e.log = t();
189
- })(Hi, function() {
189
+ })(Vi, 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",
@@ -230,7 +230,7 @@ function Vi() {
230
230
  return v(M) || w.apply(this, arguments);
231
231
  }
232
232
  function P(M, L) {
233
- var C = this, Z, N, G, te = "loglevel";
233
+ var C = this, Z, U, G, te = "loglevel";
234
234
  typeof M == "string" ? te += ":" + M : typeof M == "symbol" && (te = void 0);
235
235
  function He(j) {
236
236
  var V = (s[j] || "silent").toUpperCase();
@@ -290,11 +290,11 @@ function Vi() {
290
290
  ERROR: 4,
291
291
  SILENT: 5
292
292
  }, C.methodFactory = L || _, C.getLevel = function() {
293
- return G ?? N ?? Z;
293
+ return G ?? U ?? Z;
294
294
  }, C.setLevel = function(j, V) {
295
295
  return G = pe(j), V !== !1 && He(G), k.call(C);
296
296
  }, C.setDefaultLevel = function(j) {
297
- N = pe(j), ae() || C.setLevel(j, !1);
297
+ U = pe(j), ae() || C.setLevel(j, !1);
298
298
  }, C.resetLevel = function() {
299
299
  G = null, he(), k.call(C);
300
300
  }, C.enableAll = function(j) {
@@ -329,8 +329,8 @@ function Vi() {
329
329
  });
330
330
  })(Pt)), Pt.exports;
331
331
  }
332
- var Ui = Vi();
333
- const Je = /* @__PURE__ */ Na(Ui), Ni = J`
332
+ var Ui = Ni();
333
+ const Je = /* @__PURE__ */ Ua(Ui), Wi = J`
334
334
  :host {
335
335
  --enegelai-bot-width: 420px;
336
336
  --enegelai-bot-base-font-size: 16px;
@@ -385,6 +385,14 @@ const Je = /* @__PURE__ */ Na(Ui), Ni = J`
385
385
  --symbol-size: 1.2em;
386
386
  }
387
387
 
388
+ .cb-new-conversation-wrapper {
389
+ width: 100%;
390
+ display: flex;
391
+ align-items: center;
392
+ justify-content: center;
393
+ margin: 10px 0px;
394
+ }
395
+
388
396
  @keyframes fadeIn {
389
397
  from {
390
398
  opacity: 0;
@@ -655,10 +663,10 @@ const Je = /* @__PURE__ */ Na(Ui), Ni = J`
655
663
  color: white;
656
664
  }
657
665
  `;
658
- var Wi = Object.defineProperty, Gi = Object.getOwnPropertyDescriptor, na = (a, e, t, i) => {
659
- for (var s = i > 1 ? void 0 : i ? Gi(e, t) : e, r = a.length - 1, o; r >= 0; r--)
666
+ var Gi = Object.defineProperty, Xi = Object.getOwnPropertyDescriptor, na = (a, e, t, i) => {
667
+ for (var s = i > 1 ? void 0 : i ? Xi(e, t) : e, r = a.length - 1, o; r >= 0; r--)
660
668
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
661
- return i && s && Wi(e, t, s), s;
669
+ return i && s && Gi(e, t, s), s;
662
670
  };
663
671
  let ut = class extends Fe {
664
672
  constructor() {
@@ -678,7 +686,7 @@ na([
678
686
  ut = na([
679
687
  K("cb-icon")
680
688
  ], ut);
681
- let Xi = (a) => crypto.getRandomValues(new Uint8Array(a)), Yi = (a, e, t) => {
689
+ let Yi = (a) => crypto.getRandomValues(new Uint8Array(a)), Ji = (a, e, t) => {
682
690
  let i = (2 << Math.log2(a.length - 1)) - 1, s = -~(1.6 * i * e / a.length);
683
691
  return (r = e) => {
684
692
  let o = "";
@@ -688,12 +696,12 @@ let Xi = (a) => crypto.getRandomValues(new Uint8Array(a)), Yi = (a, e, t) => {
688
696
  if (o += a[f[p] & i] || "", o.length >= r) return o;
689
697
  }
690
698
  };
691
- }, Ji = (a, e = 21) => Yi(a, e | 0, Xi);
692
- const Ki = Ji("1234567890abcdefghijklmnopqrstuvwxyz", 10);
693
- function de(a = 10) {
694
- return Ki(a);
699
+ }, Ki = (a, e = 21) => Ji(a, e | 0, Yi);
700
+ const Zi = Ki("1234567890abcdefghijklmnopqrstuvwxyz", 10);
701
+ function fe(a = 10) {
702
+ return Zi(a);
695
703
  }
696
- function Zi(a) {
704
+ function Qi(a) {
697
705
  return new Promise((e, t) => {
698
706
  try {
699
707
  navigator.clipboard.writeText(a).then(() => {
@@ -716,7 +724,7 @@ function Ga(a = !0) {
716
724
  const se = Je.noConflict();
717
725
  se.setLevel("info");
718
726
  const _a = 3e4;
719
- class Qi {
727
+ class es {
720
728
  constructor(e = {}) {
721
729
  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}`);
722
730
  }
@@ -776,7 +784,7 @@ class Qi {
776
784
  this.connecting !== e && (this.connecting = e, this.onConnecting && typeof this.onConnecting == "function" && this.onConnecting(this.connecting));
777
785
  }
778
786
  pingConnection() {
779
- this._ws && this._ws.readyState === WebSocket.OPEN && this._ws.send(JSON.stringify({ type: "heartbeat", id: de() }));
787
+ this._ws && this._ws.readyState === WebSocket.OPEN && this._ws.send(JSON.stringify({ type: "heartbeat", id: fe() }));
780
788
  }
781
789
  tick() {
782
790
  this.pingConnection(), this.lastTickTs = Date.now();
@@ -811,7 +819,7 @@ class Qi {
811
819
  sendClientInfoMessage() {
812
820
  const e = {
813
821
  type: "clientInfo",
814
- id: de(),
822
+ id: fe(),
815
823
  data: {
816
824
  referrer: window.location.href,
817
825
  userAgent: window.navigator.userAgent
@@ -877,7 +885,7 @@ class Qi {
877
885
  });
878
886
  }*/
879
887
  }
880
- class es {
888
+ class ts {
881
889
  constructor(e = {}) {
882
890
  this.name = e.name || "EventEmitter", this.events = {};
883
891
  }
@@ -1024,7 +1032,7 @@ const Sa = [
1024
1032
  7040,
1025
1033
  7458.62,
1026
1034
  7902.13
1027
- ], ts = [
1035
+ ], as = [
1028
1036
  "C",
1029
1037
  "C#",
1030
1038
  "D",
@@ -1041,9 +1049,9 @@ const Sa = [
1041
1049
  for (let a = 1; a <= 8; a++)
1042
1050
  for (let e = 0; e < Sa.length; e++) {
1043
1051
  const t = Sa[e];
1044
- We.push(t / Math.pow(2, 8 - a)), ra.push(ts[e] + a);
1052
+ We.push(t / Math.pow(2, 8 - a)), ra.push(as[e] + a);
1045
1053
  }
1046
- const Rt = [32, 2e3], Ca = We.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]), as = ra.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]);
1054
+ const Rt = [32, 2e3], Ca = We.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]), is = ra.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]);
1047
1055
  class lt {
1048
1056
  /**
1049
1057
  * Retrieves frequency domain data from an AnalyserNode adjusted to a decibel range
@@ -1064,13 +1072,13 @@ class lt {
1064
1072
  const I = s === "voice" ? Ca : We, M = Array(I.length).fill(r);
1065
1073
  for (let L = 0; L < i.length; L++) {
1066
1074
  const C = L * p, Z = i[L];
1067
- for (let N = I.length - 1; N >= 0; N--)
1068
- if (C > I[N]) {
1069
- M[N] = Math.max(M[N], Z);
1075
+ for (let U = I.length - 1; U >= 0; U--)
1076
+ if (C > I[U]) {
1077
+ M[U] = Math.max(M[U], Z);
1070
1078
  break;
1071
1079
  }
1072
1080
  }
1073
- v = M, k = s === "voice" ? Ca : We, w = s === "voice" ? as : ra;
1081
+ v = M, k = s === "voice" ? Ca : We, w = s === "voice" ? is : ra;
1074
1082
  } else
1075
1083
  v = Array.from(i), k = v.map((I, M) => p * M), w = k.map((I) => `${I.toFixed(2)} Hz`);
1076
1084
  const _ = v.map((I) => Math.max(
@@ -1146,7 +1154,7 @@ class lt {
1146
1154
  }
1147
1155
  }
1148
1156
  globalThis.AudioAnalysis = lt;
1149
- const is = `
1157
+ const ss = `
1150
1158
  class StreamProcessor extends AudioWorkletProcessor {
1151
1159
  constructor() {
1152
1160
  super();
@@ -1235,17 +1243,17 @@ class StreamProcessor extends AudioWorkletProcessor {
1235
1243
  }
1236
1244
 
1237
1245
  registerProcessor('stream_processor', StreamProcessor);
1238
- `, ss = new Blob([is], {
1246
+ `, ns = new Blob([ss], {
1239
1247
  type: "application/javascript"
1240
- }), ns = URL.createObjectURL(ss), rs = ns;
1241
- class os {
1248
+ }), rs = URL.createObjectURL(ns), os = rs;
1249
+ class cs {
1242
1250
  /**
1243
1251
  * Creates a new WavStreamPlayer instance
1244
1252
  * @param {{sampleRate?: number}} options
1245
1253
  * @returns {WavStreamPlayer}
1246
1254
  */
1247
1255
  constructor({ sampleRate: e = 44100, onPlaybackEnded: t = null } = {}) {
1248
- this.scriptSrc = rs, this.sampleRate = e, this.context = null, this.stream = null, this.analyser = null, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this.onPlaybackEnded = t && typeof t == "function" ? t : null;
1256
+ this.scriptSrc = os, this.sampleRate = e, this.context = null, this.stream = null, this.analyser = null, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this.onPlaybackEnded = t && typeof t == "function" ? t : null;
1249
1257
  }
1250
1258
  /**
1251
1259
  * Connects the audio context and enables output to speakers
@@ -1340,8 +1348,8 @@ class os {
1340
1348
  return this.getTrackSampleOffset(!0);
1341
1349
  }
1342
1350
  }
1343
- globalThis.WavStreamPlayer = os;
1344
- const cs = URL.createObjectURL(
1351
+ globalThis.WavStreamPlayer = cs;
1352
+ const ls = URL.createObjectURL(
1345
1353
  new Blob([`
1346
1354
  class UpsampleStreamPCM extends AudioWorkletProcessor {
1347
1355
  constructor(options) {
@@ -1558,7 +1566,7 @@ class Xa {
1558
1566
  /** Build the WebAudio graph. Always audible via direct path; loopback ref is optional and non-critical. */
1559
1567
  async connect() {
1560
1568
  if (this.context) return !0;
1561
- if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(cs), this._worklet = new AudioWorkletNode(this.context, "upsample-stream-pcm", {
1569
+ if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(ls), this._worklet = new AudioWorkletNode(this.context, "upsample-stream-pcm", {
1562
1570
  processorOptions: {
1563
1571
  sourceSampleRate: this.inputSampleRate,
1564
1572
  prerollSrc: Math.round(this.inputSampleRate * 0.02)
@@ -1687,7 +1695,7 @@ class Xa {
1687
1695
  }
1688
1696
  }
1689
1697
  globalThis.WavStreamPlayerV2 = Xa;
1690
- const ls = `
1698
+ const ds = `
1691
1699
  class AudioProcessor extends AudioWorkletProcessor {
1692
1700
 
1693
1701
  constructor() {
@@ -1894,17 +1902,17 @@ class AudioProcessor extends AudioWorkletProcessor {
1894
1902
  }
1895
1903
 
1896
1904
  registerProcessor('audio_processor', AudioProcessor);
1897
- `, ds = new Blob([ls], {
1905
+ `, fs = new Blob([ds], {
1898
1906
  type: "application/javascript"
1899
- }), fs = URL.createObjectURL(ds), hs = fs;
1900
- class bs {
1907
+ }), hs = URL.createObjectURL(fs), bs = hs;
1908
+ class us {
1901
1909
  /**
1902
1910
  * Create a new WavRecorder instance
1903
1911
  * @param {{sampleRate?: number, outputToSpeakers?: boolean, debug?: boolean}} [options]
1904
1912
  * @returns {WavRecorder}
1905
1913
  */
1906
1914
  constructor({ sampleRate: e = 44100, outputToSpeakers: t = !1, debug: i = !1 } = {}) {
1907
- this.scriptSrc = hs, 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 = () => {
1915
+ this.scriptSrc = bs, 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 = () => {
1908
1916
  }, this._chunkProcessorSize = void 0, this._chunkProcessorBuffer = {
1909
1917
  raw: new ArrayBuffer(0),
1910
1918
  mono: new ArrayBuffer(0)
@@ -2233,8 +2241,8 @@ use only for debugging`), o.connect(t.destination)), this.source = i, this.node
2233
2241
  return this.listenForDeviceChange(null), this.processor && await this.end(), !0;
2234
2242
  }
2235
2243
  }
2236
- globalThis.WavRecorder = bs;
2237
- const us = URL.createObjectURL(
2244
+ globalThis.WavRecorder = us;
2245
+ const ps = URL.createObjectURL(
2238
2246
  new Blob([`
2239
2247
  class DownsampleRecorder extends AudioWorkletProcessor {
2240
2248
  constructor(options) {
@@ -2455,7 +2463,7 @@ class ot {
2455
2463
  echoCancellationType: this.captureInfo.trackSettings?.echoCancellationType ?? null
2456
2464
  }, this._log("Granted track settings:", this.captureInfo.trackSettings), this.audioCtx = new (window.AudioContext || window.webkitAudioContext)({
2457
2465
  latencyHint: "interactive"
2458
- }), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(us);
2466
+ }), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(ps);
2459
2467
  const s = Math.round(this.targetSampleRate * this.chunkMs / 1e3);
2460
2468
  return this.node = new AudioWorkletNode(this.audioCtx, "downsample-recorder", {
2461
2469
  processorOptions: {
@@ -2531,7 +2539,7 @@ class ot {
2531
2539
  }
2532
2540
  }
2533
2541
  globalThis.WavRecorderV2 = ot;
2534
- class ps {
2542
+ class gs {
2535
2543
  constructor(e = {}) {
2536
2544
  this.sr = Math.max(8e3, e.sampleRate || 24e3), this.floor = Aa(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;
2537
2545
  const t = Math.max(2, e.vadFastMs ?? 10), i = Math.max(t + 20, e.vadSlowMs ?? 250);
@@ -2575,15 +2583,15 @@ class ps {
2575
2583
  this.guardRemain > 0 && this.guardRemain--;
2576
2584
  const M = e[I] / 32768, L = M * M;
2577
2585
  f = f + (1 - this.alphaFast) * (L - f), p = p + (1 - this.alphaSlow) * (L - p), this.vadEnabled && (f / (p + _) >= P ? v < this.vadAttackSamples && v++ : v = 0, v >= this.vadAttackSamples ? (w = !0, k = this.vadHangSamples) : k > 0 ? (w = !0, k--) : w = !1), w && this._shieldActive && (this._shieldActive = !1, this.target = 1, o = this.escapeAttackSamples, r = o > 0 ? (1 - s) / o : 0);
2578
- let C = 1, Z = 0, N = !1;
2586
+ let C = 1, Z = 0, U = !1;
2579
2587
  if (this.duckActive) {
2580
2588
  const te = this.guardRemain > 0;
2581
- te && this._shieldActive && !w ? (N = this._shieldHardMute, C = this._shieldHardMute ? 0 : this._shieldFloor, Z = this.attackSamples, this.guardRemain === 0 && (this._shieldActive = !1, this._shieldHardMute = !1)) : w ? (C = 1, Z = this.escapeAttackSamples) : te ? (C = this.floor, Z = this.attackSamples) : (C = 1, Z = this.releaseSamples);
2589
+ te && this._shieldActive && !w ? (U = this._shieldHardMute, C = this._shieldHardMute ? 0 : this._shieldFloor, Z = this.attackSamples, this.guardRemain === 0 && (this._shieldActive = !1, this._shieldHardMute = !1)) : w ? (C = 1, Z = this.escapeAttackSamples) : te ? (C = this.floor, Z = this.attackSamples) : (C = 1, Z = this.releaseSamples);
2582
2590
  } else
2583
2591
  C = 1, Z = this.releaseSamples;
2584
2592
  Math.abs(C - this.target) > 1e-4 && (this.target = C, o = Z, r = o > 0 ? (C - s) / o : 0, o === 0 && (s = C)), o > 0 && (s += r, o--, o === 0 && (s = this.target, r = 0));
2585
2593
  let G;
2586
- N && !w ? G = 0 : (G = e[I] * s, G > 32767 ? G = 32767 : G < -32768 && (G = -32768)), i[I] = G | 0;
2594
+ U && !w ? G = 0 : (G = e[I] * s, G > 32767 ? G = 32767 : G < -32768 && (G = -32768)), i[I] = G | 0;
2587
2595
  }
2588
2596
  return this.gain = s, this._step = r, this.rampRemain = o, this.vadFast = f, this.vadSlow = p, this._speechCount = v, this._hangRemain = k, this._speaking = w, i;
2589
2597
  }
@@ -2604,7 +2612,7 @@ function Ta(a, e) {
2604
2612
  const t = Math.max(1, a * e / 1e3);
2605
2613
  return Math.exp(-1 / t);
2606
2614
  }
2607
- class gs {
2615
+ class ms {
2608
2616
  /**
2609
2617
  * @param {object} opts
2610
2618
  * @param {number} opts.sampleRate - Hz of your PCM (e.g., 24000)
@@ -2687,11 +2695,11 @@ class gs {
2687
2695
  }
2688
2696
  I = Math.sqrt(I) + 1e-12;
2689
2697
  const M = this.sr / this.ds, L = (this.baseLatencySec + this.outputLatencySec) * 1e3 + this.latencyCompMs, C = Math.max(0, Math.round(L * M / 1e3)), Z = Math.max(1, Math.round(this.windowMs * M / 1e3));
2690
- let N = 0, G = k;
2691
- C > 0 && (N = Math.max(0, Math.min(k, C - Z)), G = Math.max(N, Math.min(k, C + Z)));
2698
+ let U = 0, G = k;
2699
+ C > 0 && (U = Math.max(0, Math.min(k, C - Z)), G = Math.max(U, Math.min(k, C + Z)));
2692
2700
  const te = Math.max(1, Math.floor(this.hop / this.ds));
2693
2701
  let He = -1;
2694
- for (let ae = N; ae <= G; ae += te) {
2702
+ for (let ae = U; ae <= G; ae += te) {
2695
2703
  let he = 0, pe = 0;
2696
2704
  for (let V = 0; V < o; V++) {
2697
2705
  const $e = _[V], Pe = P[ae + V];
@@ -2759,7 +2767,7 @@ class gs {
2759
2767
  return o;
2760
2768
  }
2761
2769
  }
2762
- class ms {
2770
+ class ys {
2763
2771
  /**
2764
2772
  * @param {object} opts
2765
2773
  * @param {number} opts.sampleRate - PCM sample rate (e.g., 24000)
@@ -2896,7 +2904,7 @@ class ms {
2896
2904
  return o;
2897
2905
  }
2898
2906
  }
2899
- class ys {
2907
+ class vs {
2900
2908
  /**
2901
2909
  * @param {object} opts
2902
2910
  * @param {number} opts.sampleRate - Mic PCM sample rate (e.g., 24000)
@@ -2939,9 +2947,9 @@ class ys {
2939
2947
  }
2940
2948
  }
2941
2949
  }
2942
- const Ne = Je.noConflict();
2943
- Ne.setLevel("info");
2944
- class pt extends es {
2950
+ const Ue = Je.noConflict();
2951
+ Ue.setLevel("info");
2952
+ class pt extends ts {
2945
2953
  constructor(e = {}) {
2946
2954
  super({ name: "WebAudioProcessorV2" }), this.options = e, this.muted = !1, this.audioRecorder = new ot({
2947
2955
  targetSampleRate: 24e3,
@@ -2953,14 +2961,14 @@ class pt extends es {
2953
2961
  primeMs: 200,
2954
2962
  // keep or remove; it’s harmless
2955
2963
  debug: !!e.debug
2956
- }), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new ys({
2964
+ }), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new vs({
2957
2965
  sampleRate: 24e3,
2958
2966
  windowMs: this.firstTurnDropMs,
2959
2967
  partialPass: !0,
2960
2968
  // pass remainder of crossing frame
2961
2969
  hardDrop: !0
2962
2970
  // set true if you prefer simpler "drop whole frame"
2963
- }), this.ducker = new ps({
2971
+ }), this.ducker = new gs({
2964
2972
  sampleRate: 24e3,
2965
2973
  floor: 0.12,
2966
2974
  attackMs: 12,
@@ -2975,7 +2983,7 @@ class pt extends es {
2975
2983
  vadSlowMs: 250,
2976
2984
  vadAttackMs: 18,
2977
2985
  vadHangMs: 120
2978
- }), this.mixMinus = new gs({
2986
+ }), this.mixMinus = new ms({
2979
2987
  sampleRate: 24e3,
2980
2988
  bufferMs: 1e3,
2981
2989
  threshold: 0.3,
@@ -2984,7 +2992,7 @@ class pt extends es {
2984
2992
  hop: 64,
2985
2993
  downsampleFactor: 3,
2986
2994
  minCorrLenMs: 15
2987
- }), this.mixMinusSmooth = new ms({
2995
+ }), this.mixMinusSmooth = new ys({
2988
2996
  sampleRate: 24e3,
2989
2997
  bufferMs: 800,
2990
2998
  lowThresh: 0.25,
@@ -3019,13 +3027,13 @@ class pt extends es {
3019
3027
  e(), this._latencyTimer = setInterval(e, 1e3);
3020
3028
  try {
3021
3029
  const t = this.audioRecorder.captureInfo?.aecGranted;
3022
- t && Ne.info("AEC granted:", t);
3030
+ t && Ue.info("AEC granted:", t);
3023
3031
  } catch {
3024
3032
  }
3025
- Ne.info("WebAudioProcessorV2 started");
3033
+ Ue.info("WebAudioProcessorV2 started");
3026
3034
  }
3027
3035
  async stop() {
3028
- this._stopRecWatchdog(), this.audioRecorder.getStatus() !== "ended" && (await this.audioRecorder.end(), this.audioRecorder = null), this.audioRecorderAnalyzer = null, this.audioPlayer?.context && (await this.audioPlayer.disconnect(), this.audioPlayer = null), this._latencyTimer && (clearInterval(this._latencyTimer), this._latencyTimer = null), this._didPlayOnce = !1, Ne.info("WebAudioProcessorV2 stopped");
3036
+ this._stopRecWatchdog(), this.audioRecorder.getStatus() !== "ended" && (await this.audioRecorder.end(), this.audioRecorder = null), this.audioRecorderAnalyzer = null, this.audioPlayer?.context && (await this.audioPlayer.disconnect(), this.audioPlayer = null), this._latencyTimer && (clearInterval(this._latencyTimer), this._latencyTimer = null), this._didPlayOnce = !1, Ue.info("WebAudioProcessorV2 stopped");
3029
3037
  }
3030
3038
  get started() {
3031
3039
  return !!(this.audioRecorder && this.audioRecorder.getStatus() !== "ended");
@@ -3047,7 +3055,7 @@ class pt extends es {
3047
3055
  }
3048
3056
  async _checkRecordingHealth(e) {
3049
3057
  const i = Date.now() - this._lastMicCaptureTime;
3050
- i > 2e3 && (Ne.warn(`WebAudioProcessorV2: large gap between mic frames: ${i} ms detected, possible lock or suspend - terminating audio`), this.emit("terminate").catch(() => {
3058
+ i > 2e3 && (Ue.warn(`WebAudioProcessorV2: large gap between mic frames: ${i} ms detected, possible lock or suspend - terminating audio`), this.emit("terminate").catch(() => {
3051
3059
  }));
3052
3060
  }
3053
3061
  // ---- Capture ----
@@ -3056,7 +3064,7 @@ class pt extends es {
3056
3064
  * Your existing 'audio' event is preserved: payload includes base64 of Int16 PCM.
3057
3065
  */
3058
3066
  async beginAudioCapture() {
3059
- !this.started || this.recording || (Ne.info("WebAudioProcessorV2: beginAudioCapture"), this._lastMicCaptureTime = Date.now(), this._startRecWatchdog(), await this.audioRecorder.record((e) => {
3067
+ !this.started || this.recording || (Ue.info("WebAudioProcessorV2: beginAudioCapture"), this._lastMicCaptureTime = Date.now(), this._startRecWatchdog(), await this.audioRecorder.record((e) => {
3060
3068
  if (e?.mono && e.mono?.byteLength) {
3061
3069
  this._lastMicCaptureTime = Date.now();
3062
3070
  let t = new Int16Array(e.mono);
@@ -3066,12 +3074,12 @@ class pt extends es {
3066
3074
  const i = this.useAdaptiveSuppressor ? this.mixMinusSmooth.filterMicFrame(t) : this.mixMinus.filterMicFrame(t) || new Int16Array(0);
3067
3075
  if (i.length === 0) return;
3068
3076
  const s = pt.arrayBufferToBase64(i);
3069
- Ne.info(`Audio: mono ${e.mono.byteLength} bytes, base64 ${s.length} bytes`), this.emit("audio", { audio: s });
3077
+ Ue.info(`Audio: mono ${e.mono.byteLength} bytes, base64 ${s.length} bytes`), this.emit("audio", { audio: s });
3070
3078
  }
3071
3079
  }));
3072
3080
  }
3073
3081
  async endAudioCapture() {
3074
- !this.started || !this.recording || (Ne.info("WebAudioProcessorV2: endAudioCapture"), this._stopRecWatchdog(), await this.audioRecorder.pause());
3082
+ !this.started || !this.recording || (Ue.info("WebAudioProcessorV2: endAudioCapture"), this._stopRecWatchdog(), await this.audioRecorder.pause());
3075
3083
  }
3076
3084
  // ---- Playback ----
3077
3085
  /**
@@ -3185,7 +3193,7 @@ function Ze(a) {
3185
3193
  }
3186
3194
  };
3187
3195
  }
3188
- function vs(a) {
3196
+ function ws(a) {
3189
3197
  return function e(t, i, s) {
3190
3198
  switch (arguments.length) {
3191
3199
  case 0:
@@ -3219,45 +3227,45 @@ function vs(a) {
3219
3227
  }
3220
3228
  };
3221
3229
  }
3222
- const ws = Number.isInteger || function(e) {
3230
+ const xs = Number.isInteger || function(e) {
3223
3231
  return e << 0 === e;
3224
3232
  };
3225
- function xs(a, e) {
3233
+ function ks(a, e) {
3226
3234
  var t = a < 0 ? e.length + a : a;
3227
3235
  return e[t];
3228
3236
  }
3229
- var ks = /* @__PURE__ */ Ze(function(e, t) {
3237
+ var _s = /* @__PURE__ */ Ze(function(e, t) {
3230
3238
  return t == null || t !== t ? e : t;
3231
3239
  });
3232
- function _s(a, e) {
3240
+ function Ss(a, e) {
3233
3241
  for (var t = e, i = 0; i < a.length; i += 1) {
3234
3242
  if (t == null)
3235
3243
  return;
3236
3244
  var s = a[i];
3237
- ws(s) ? t = xs(s, t) : t = t[s];
3245
+ xs(s) ? t = ks(s, t) : t = t[s];
3238
3246
  }
3239
3247
  return t;
3240
3248
  }
3241
- var Nt = /* @__PURE__ */ vs(function(e, t, i) {
3242
- return ks(e, _s(t, i));
3249
+ var Ut = /* @__PURE__ */ ws(function(e, t, i) {
3250
+ return _s(e, Ss(t, i));
3243
3251
  });
3244
- const Ss = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
3245
- var Cs = Object.defineProperty, B = (a, e, t, i) => {
3252
+ const Cs = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
3253
+ var As = Object.defineProperty, O = (a, e, t, i) => {
3246
3254
  for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
3247
3255
  (o = a[r]) && (s = o(e, t, s) || s);
3248
- return s && Cs(e, t, s), s;
3256
+ return s && As(e, t, s), s;
3249
3257
  };
3250
- const $ = Je.noConflict();
3251
- $.setLevel("info");
3252
- const re = "cb_", As = (a) => new Promise((e) => setTimeout(e, a));
3258
+ const E = Je.noConflict();
3259
+ E.setLevel("info");
3260
+ const ne = "cb_", Ms = (a) => new Promise((e) => setTimeout(e, a));
3253
3261
  class R extends Yt {
3254
3262
  constructor() {
3255
3263
  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}`);
3256
3264
  }
3257
3265
  // this is called at startup
3258
3266
  setSetting(e) {
3259
- $.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((t) => {
3260
- $.info(`Exception during bot initialization: ${t.message}`);
3267
+ E.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((t) => {
3268
+ E.info(`Exception during bot initialization: ${t.message}`);
3261
3269
  });
3262
3270
  }
3263
3271
  // set language
@@ -3272,7 +3280,7 @@ class R extends Yt {
3272
3280
  async initBot() {
3273
3281
  if (!this.botSettingsInitialized) {
3274
3282
  const i = `${this.setting.url.startsWith("localhost") ? "http" : "https"}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}`;
3275
- $.info(`Getting bot settings at ${i} ...`);
3283
+ E.info(`Getting bot settings at ${i} ...`);
3276
3284
  let s = null, r = null;
3277
3285
  try {
3278
3286
  s = await fetch(i, {
@@ -3282,13 +3290,13 @@ class R extends Yt {
3282
3290
  "X-Enegel-Signature": this.setting.botId
3283
3291
  //"ngrok-skip-browser-warning": "1",
3284
3292
  }
3285
- }), !s.ok || s.status !== 200 ? $.error(`Failed to get bot ${this.setting.botId} settings: ${s.status} ${s.statusText}`) : r = await s.json();
3293
+ }), !s.ok || s.status !== 200 ? E.error(`Failed to get bot ${this.setting.botId} settings: ${s.status} ${s.statusText}`) : r = await s.json();
3286
3294
  } catch (o) {
3287
- $.error(`Failed to get bot ${this.setting.botId} settings: ${o.message}`), r = null;
3295
+ E.error(`Failed to get bot ${this.setting.botId} settings: ${o.message}`), r = null;
3288
3296
  }
3289
3297
  if (this.botSettingsInitialized = !0, this.botSettings = r, !r) {
3290
- if ($.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
3291
- $.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
3298
+ if (E.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
3299
+ E.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
3292
3300
  return;
3293
3301
  }
3294
3302
  this.botSettingsInitialized = !1, setTimeout(async () => {
@@ -3296,17 +3304,17 @@ class R extends Yt {
3296
3304
  }, this.botSettingsRetryTimeout * 1e3), this.botSettingsRetryTimeout = this.botSettingsRetryTimeout * 2;
3297
3305
  return;
3298
3306
  }
3299
- $.info("Got bot settings - bot is enabled", r), this.disabled = !1, this.setting.welcomeMessage = r?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = r?.disclaimerMessage && r.disclaimerMessage !== "" ? r.disclaimerMessage : null, this.setting.engageMessage = r?.engageMessage || "How can I help ?", this.setting.engageTimeout = r?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in r ? r.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in r ? r.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in r ? r.uploadImages : !1, this.setting.newConversationTimeoutInSec = r?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in r ? r.enableNotificationSound : !0, this.setting.botAdvancedSettings = r?.botAdvancedSettings ?? {}, this.setting.startFeedbackFromMessage = "startFeedbackFromMessage" in this.setting.botAdvancedSettings ? this.setting.botAdvancedSettings.startFeedbackFromMessage : 1, this.setting.enableMultiModalConnection = this.setting.botAdvancedSettings?.enableMultiModalConnection ?? !1, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
3307
+ E.info("Got bot settings - bot is enabled", r), this.disabled = !1, this.setting.welcomeMessage = r?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = r?.disclaimerMessage && r.disclaimerMessage !== "" ? r.disclaimerMessage : null, this.setting.engageMessage = r?.engageMessage || "How can I help ?", this.setting.engageTimeout = r?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in r ? r.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in r ? r.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in r ? r.uploadImages : !1, this.setting.newConversationTimeoutInSec = r?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in r ? r.enableNotificationSound : !0, this.setting.botAdvancedSettings = r?.botAdvancedSettings ?? {}, this.setting.startFeedbackFromMessage = "startFeedbackFromMessage" in this.setting.botAdvancedSettings ? this.setting.botAdvancedSettings.startFeedbackFromMessage : 1, this.setting.enableMultiModalConnection = this.setting.botAdvancedSettings?.enableMultiModalConnection ?? !1, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
3300
3308
  this.showEngagePopup();
3301
3309
  }, this.setting.engageTimeout * 1e3);
3302
3310
  }
3303
3311
  const e = new URLSearchParams(window.location.search);
3304
3312
  if (e.has("c7o_bot_open")) {
3305
3313
  const t = e.get("c7o_bot_open");
3306
- this.open = t !== "false" && t !== "no" && t !== "0", $.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
3314
+ this.open = t !== "false" && t !== "no" && t !== "0", E.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
3307
3315
  }
3308
- this.connectWs === "true" && ($.info("appState: connectWs is true"), this.getWsClient().catch((t) => {
3309
- $.error(`Exception during ws client startup: ${t.message}`);
3316
+ this.connectWs === "true" && (E.info("appState: connectWs is true"), this.getWsClient().catch((t) => {
3317
+ E.error(`Exception during ws client startup: ${t.message}`);
3310
3318
  })), setTimeout(() => {
3311
3319
  window.dispatchEvent(
3312
3320
  new CustomEvent("c7o:bot:stateEvent", {
@@ -3329,7 +3337,7 @@ class R extends Yt {
3329
3337
  this.initStartupForm();
3330
3338
  }
3331
3339
  async clearConversation(e = !0) {
3332
- await this.stopAudio(), this.mediaStartedAudio = !1, this.wsClient && e && (await this.wsClient.stop(), this.wsClient = null), this.connected = !1, this.conversationId = de(), this.lastConversationUpdate = Date.now(), e && (this.connectWs = "false", this.shouldEngage = "true"), this.messages = [], this.unreadMessages = 0, this.actions = [], this.context = this.currentLoadContext, this.form = null, this.addMessage({
3340
+ await this.stopAudio(), this.mediaStartedAudio = !1, this.wsClient && e && (await this.wsClient.stop(), this.wsClient = null), this.connected = !1, this.conversationId = fe(), this.lastConversationUpdate = Date.now(), e && (this.connectWs = "false", this.shouldEngage = "true"), this.messages = [], this.unreadMessages = 0, this.actions = [], this.showNewConversation = !1, this.context = this.currentLoadContext, this.form = null, this.addMessage({
3333
3341
  author: "assistant",
3334
3342
  type: "text",
3335
3343
  data: {
@@ -3337,6 +3345,19 @@ class R extends Yt {
3337
3345
  }
3338
3346
  }), this.initStartupForm();
3339
3347
  }
3348
+ // AGENT // ////////////////////////////////////////////////////
3349
+ async handleAgentDisconnected(e) {
3350
+ E.info(`c7o: Agent disconnected ${this.webAudioCurrentMark}`, e), this.addMessage({
3351
+ id: e?.id || null,
3352
+ author: "assistant",
3353
+ type: "text",
3354
+ data: {
3355
+ text: "_Left chat_",
3356
+ ...e.userName && { userName: e.userName },
3357
+ ...e.userAvatar && { userAvatar: e.userAvatar }
3358
+ }
3359
+ }), this.showNewConversation = !0;
3360
+ }
3340
3361
  // BROADCAST // ///////////////////////////////////////////////////
3341
3362
  async handleBroadcastMessage(e) {
3342
3363
  const t = e?.data || null;
@@ -3356,7 +3377,7 @@ class R extends Yt {
3356
3377
  // we will start actual audio capture only after we receive mediaStarted confirmation from server
3357
3378
  async startAudio() {
3358
3379
  this.mediaStartAudioRequested || (this.webAudioProcessor || (this.webAudioProcessor = new pt(), this.webAudioProcessor.on("audio", this.onAudioChunkCaptured.bind(this)), this.webAudioProcessor.on("playbackEnded", this.onPlaybackEnded.bind(this)), this.webAudioProcessor.on("terminate", this.onWebAudioTerminate.bind(this))), await this.sendEvent({
3359
- id: de(),
3380
+ id: fe(),
3360
3381
  type: "mediaStart",
3361
3382
  mediaType: "audio",
3362
3383
  mimeType: "audio/L16",
@@ -3370,7 +3391,7 @@ class R extends Yt {
3370
3391
  }
3371
3392
  async stopAudio() {
3372
3393
  this.webAudioProcessor && (this.webAudioProcessor.removeAllListeners(), await this.stopWebAudio(), this.webAudioProcessor = null, await this.sendEvent({
3373
- id: de(),
3394
+ id: fe(),
3374
3395
  type: "mediaStop",
3375
3396
  mediaType: "audio"
3376
3397
  }), this.postBroadcastMessage({
@@ -3394,7 +3415,7 @@ class R extends Yt {
3394
3415
  }
3395
3416
  async onAudioChunkCaptured(e) {
3396
3417
  !e || !e.audio || await this.sendEvent({
3397
- id: de(),
3418
+ id: fe(),
3398
3419
  type: "media",
3399
3420
  mediaType: "audio",
3400
3421
  media: {
@@ -3404,8 +3425,8 @@ class R extends Yt {
3404
3425
  }
3405
3426
  // When finished playing audio, clear trackId and send mark message
3406
3427
  async onPlaybackEnded() {
3407
- this.webAudioCurrentMark && ($.info(`c7o: mark ${this.webAudioCurrentMark} completed`), await this.sendEvent({
3408
- id: de(),
3428
+ this.webAudioCurrentMark && (E.info(`c7o: mark ${this.webAudioCurrentMark} completed`), await this.sendEvent({
3429
+ id: fe(),
3409
3430
  type: "mediaMark",
3410
3431
  mark: {
3411
3432
  name: this.webAudioCurrentMark
@@ -3413,7 +3434,7 @@ class R extends Yt {
3413
3434
  }), this.webAudioCurrentMark = null, this.webAudioTrackId = null);
3414
3435
  }
3415
3436
  async onWebAudioTerminate() {
3416
- $.info("c7o: terminating audio"), await this.stopAudio();
3437
+ E.info("c7o: terminating audio"), await this.stopAudio();
3417
3438
  }
3418
3439
  // Confirmation from server that media started
3419
3440
  // {"type":"mediaStarted","mediaType":"audio","mediaTransport":"webmedia","webmedia":{"mimeType":"audio/L16","mediaSpec":{"sampleRate":24000,"channels":1}}}
@@ -3432,16 +3453,16 @@ class R extends Yt {
3432
3453
  if (!e || e?.type !== "media" || !e?.media || e?.mediaType !== "audio" || !e?.media?.payload || !this.webAudioProcessor || !this.webAudioStarted)
3433
3454
  return;
3434
3455
  const t = e.media.payload;
3435
- this.webAudioTrackId || (this.webAudioTrackId = de()), $.info(`${Date.now()}: Playing audio: ${t.length} bytes, trackId: ${this.webAudioTrackId}`), await this.webAudioProcessor.playAudio(t, this.webAudioTrackId);
3456
+ this.webAudioTrackId || (this.webAudioTrackId = fe()), E.info(`${Date.now()}: Playing audio: ${t.length} bytes, trackId: ${this.webAudioTrackId}`), await this.webAudioProcessor.playAudio(t, this.webAudioTrackId);
3436
3457
  }
3437
3458
  // {"type": "mediaMark","mark": {"name": "1757277902935"}}
3438
3459
  async handleMediaMark(e) {
3439
- !this.webAudioProcessor || !this.webAudioStarted || (this.webAudioCurrentMark = e?.mark?.name || null, $.info(`c7o: Current media mark set to ${this.webAudioCurrentMark}`, e));
3460
+ !this.webAudioProcessor || !this.webAudioStarted || (this.webAudioCurrentMark = e?.mark?.name || null, E.info(`c7o: Current media mark set to ${this.webAudioCurrentMark}`, e));
3440
3461
  }
3441
3462
  // Confirmation from server that media stopped
3442
3463
  //{"type":"mediaClear","mediaType":"audio"}
3443
3464
  async handleMediaClear(e) {
3444
- $.info("c7o: Got mediaClear, clearing buffered media", e), this.mediaStartedAudio = !1, !(!this.webAudioProcessor || !this.webAudioStarted) && (this.webAudioTrackId = null, await this.webAudioProcessor.interruptAudio());
3465
+ E.info("c7o: Got mediaClear, clearing buffered media", e), this.mediaStartedAudio = !1, !(!this.webAudioProcessor || !this.webAudioStarted) && (this.webAudioTrackId = null, await this.webAudioProcessor.interruptAudio());
3445
3466
  }
3446
3467
  // ////////////////////////////////////////////////////////////
3447
3468
  setPrefilledFormFields(e) {
@@ -3464,15 +3485,15 @@ class R extends Yt {
3464
3485
  return;
3465
3486
  const e = await this.getWsClient();
3466
3487
  if (!e) {
3467
- $.error("Error - failed to obtain ws client");
3488
+ E.error("Error - failed to obtain ws client");
3468
3489
  return;
3469
3490
  }
3470
3491
  const t = {
3471
- id: de(),
3492
+ id: fe(),
3472
3493
  type: "setContext",
3473
3494
  contextData: this.context
3474
3495
  };
3475
- e.sendMessage(t), $.info("Sent context:", this.context);
3496
+ e.sendMessage(t), E.info("Sent context:", this.context);
3476
3497
  }
3477
3498
  getContext() {
3478
3499
  return this.context;
@@ -3485,33 +3506,33 @@ class R extends Yt {
3485
3506
  this.initForm(this.form);
3486
3507
  return;
3487
3508
  }
3488
- const e = Nt(null, ["startupForm"], this.botSettings);
3509
+ const e = Ut(null, ["startupForm"], this.botSettings);
3489
3510
  if (!e || !e?.name) {
3490
- $.info("Startup form not present");
3511
+ E.info("Startup form not present");
3491
3512
  return;
3492
3513
  }
3493
3514
  this.initForm(e);
3494
3515
  }
3495
3516
  initForm(e = null) {
3496
- const t = e, i = Nt(null, ["name"], e);
3517
+ const t = e, i = Ut(null, ["name"], e);
3497
3518
  if (!t || !i)
3498
3519
  return;
3499
- const s = Nt(null, ["fields"], e);
3520
+ const s = Ut(null, ["fields"], e);
3500
3521
  if (!Array.isArray(s) || s.length <= 0) {
3501
- $.info("form has no fields", e);
3522
+ E.info("form has no fields", e);
3502
3523
  return;
3503
3524
  }
3504
- const r = `${re}${this.setting.botId}.${this.conversationId}.form.${i}`, o = localStorage.getItem(r);
3525
+ const r = `${ne}${this.setting.botId}.${this.conversationId}.form.${i}`, o = localStorage.getItem(r);
3505
3526
  if (o) {
3506
3527
  let f = null;
3507
3528
  try {
3508
3529
  f = JSON.parse(o);
3509
3530
  } catch (p) {
3510
- $.error(`Failed to parse stored form data: ${p.message}`), f = null;
3531
+ E.error(`Failed to parse stored form data: ${p.message}`), f = null;
3511
3532
  }
3512
3533
  if (f) {
3513
3534
  this.sendFormData(i, f).catch((p) => {
3514
- $.error(`Error when submitting form: ${p.message}`);
3535
+ E.error(`Error when submitting form: ${p.message}`);
3515
3536
  });
3516
3537
  return;
3517
3538
  }
@@ -3522,7 +3543,7 @@ class R extends Yt {
3522
3543
  this.engage = !1, this.shouldEngage = "false";
3523
3544
  }
3524
3545
  showEngagePopup() {
3525
- this.open || ($.info("Engaging User !"), this.engage = !0, this.playAudioNotification());
3546
+ this.open || (E.info("Engaging User !"), this.engage = !0, this.playAudioNotification());
3526
3547
  }
3527
3548
  playAudioNotification() {
3528
3549
  if (!this.setting.enableNotificationSound)
@@ -3533,7 +3554,7 @@ class R extends Yt {
3533
3554
  o[f] = parseInt(r.substr(f * 2, 2), 16);
3534
3555
  return o;
3535
3556
  };
3536
- let t = new Blob([e(Ss)], { type: "application/octet-stream" });
3557
+ let t = new Blob([e(Cs)], { type: "application/octet-stream" });
3537
3558
  const i = URL.createObjectURL(t);
3538
3559
  new Audio(i).play();
3539
3560
  }
@@ -3546,7 +3567,7 @@ class R extends Yt {
3546
3567
  if (this.wsClient)
3547
3568
  return this.wsClient;
3548
3569
  let t = `${this.setting.url.startsWith("localhost") ? "ws" : "wss"}://${this.setting.url}/api/bot/connect/${this.setting.orgId}/${this.setting.botId}/${this.conversationId}`;
3549
- return this.setting.enableMultiModalConnection && (t += "?multiModal=true", $.info("MultiModal connection enabled - adding multiModal=true parameter")), $.info(`Initiating ws connection to ${t} ...`), this.wsClient = new Qi({
3570
+ return this.setting.enableMultiModalConnection && (t += "?multiModal=true", E.info("MultiModal connection enabled - adding multiModal=true parameter")), E.info(`Initiating ws connection to ${t} ...`), this.wsClient = new es({
3550
3571
  url: t,
3551
3572
  orgId: this.setting.orgId,
3552
3573
  botId: this.setting.botId,
@@ -3566,11 +3587,11 @@ class R extends Yt {
3566
3587
  }), await this.wsClient.start(), this.connectWs = "true", this.wsClient;
3567
3588
  }
3568
3589
  handleWscClose(e) {
3569
- $.info(`WSC: connection closed, connected: ${this.wsClient?.connected}`, e), this.stopWebAudio().catch((t) => {
3590
+ E.info(`WSC: connection closed, connected: ${this.wsClient?.connected}`, e), this.stopWebAudio().catch((t) => {
3570
3591
  }), this.connected = !1;
3571
3592
  }
3572
3593
  async handleWscConnectError(e) {
3573
- $.info("WSC: connect error - resetting conversation", e);
3594
+ E.info("WSC: connect error - resetting conversation", e);
3574
3595
  const t = this.wsClient?.url || null;
3575
3596
  if (this.wsClient)
3576
3597
  try {
@@ -3596,15 +3617,15 @@ class R extends Yt {
3596
3617
  const s = t.includes("?"), [r, o] = s ? t.split("?") : [t, ""], f = r.split("/");
3597
3618
  f[f.length - 1] = this.conversationId;
3598
3619
  const p = f.join("/"), v = o ? `${p}?${o}` : p;
3599
- this.wsClient.url = v, await As(1e3), await this.wsClient.start(), $.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
3620
+ this.wsClient.url = v, await Ms(1e3), await this.wsClient.start(), E.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
3600
3621
  } catch (i) {
3601
- $.error(`WSC: failed to reset conversation: ${i.message}`, i);
3622
+ E.error(`WSC: failed to reset conversation: ${i.message}`, i);
3602
3623
  }
3603
3624
  }
3604
3625
  handleWscConnecting(e) {
3605
- $.info(`WSC: on connecting(${e}), connected: ${this.wsClient?.connected}`), this.connecting = e, !this.connecting && this.wsClient?.connected ? (this.connected = !0, this.context && typeof this.context == "object" && Object.keys(this.context).length > 0 && this.wsClient.queueMessage(
3626
+ E.info(`WSC: on connecting(${e}), connected: ${this.wsClient?.connected}`), this.connecting = e, !this.connecting && this.wsClient?.connected ? (this.connected = !0, this.context && typeof this.context == "object" && Object.keys(this.context).length > 0 && this.wsClient.queueMessage(
3606
3627
  {
3607
- id: de(),
3628
+ id: fe(),
3608
3629
  type: "setContext",
3609
3630
  contextData: this.context
3610
3631
  },
@@ -3619,7 +3640,7 @@ class R extends Yt {
3619
3640
  }
3620
3641
  // Update typing state based on received message
3621
3642
  updateTypingState(e) {
3622
- this.typingActive ? e && ["message", "message-chunk", "media", "typing-stopped"].includes(e?.type) && (this.typingActive = !1, $.info("c7o: typing stopped")) : e && e?.type === "typing" && (this.typingActive = !0, $.info("c7o: typing started"));
3643
+ this.typingActive ? e && ["message", "message-chunk", "media", "typing-stopped"].includes(e?.type) && (this.typingActive = !1, E.info("c7o: typing stopped")) : e && e?.type === "typing" && (this.typingActive = !0, E.info("c7o: typing started"));
3623
3644
  }
3624
3645
  handleWscMessage(e) {
3625
3646
  if (e?.type === "ack")
@@ -3692,22 +3713,14 @@ class R extends Yt {
3692
3713
  break;
3693
3714
  }
3694
3715
  case "agent-disconnected": {
3695
- this.addMessage({
3696
- id: e?.id || null,
3697
- author: "assistant",
3698
- type: "text",
3699
- data: {
3700
- text: "_Left chat_",
3701
- ...e.userName && { userName: e.userName },
3702
- ...e.userAvatar && { userAvatar: e.userAvatar }
3703
- }
3716
+ this.handleAgentDisconnected(e).catch((i) => {
3704
3717
  });
3705
3718
  break;
3706
3719
  }
3707
3720
  //{"type":"agent-connected","author":"assistant","userName":"SF DEV ADMIN"}
3708
3721
  //{"type":"agent-disconnected","author":"assistant","userName":"SF DEV ADMIN"}
3709
3722
  case "form": {
3710
- if ($.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
3723
+ if (E.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
3711
3724
  const i = this.replyMessage.data?.text || "";
3712
3725
  (this.replyMessage.isThinking || i.trim() === "") && (this.removeMessage(this.replyMessage.id), this.replyMessage = null);
3713
3726
  }
@@ -3753,7 +3766,7 @@ class R extends Yt {
3753
3766
  if (e !== -1)
3754
3767
  if (this.setting.splitMessagesAtBreak) {
3755
3768
  const t = this.streamingResponseBuffer.substring(0, e).trim(), i = this.streamingResponseBuffer.substring(e + 4).trim();
3756
- (t !== "" || this.replyMessage?.data?.text !== "") && ($.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${t} next: ${i}`), this.replyMessage = this.updateMessage(this.replyMessage, t), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: i } }, this.addMessage(this.replyMessage));
3769
+ (t !== "" || this.replyMessage?.data?.text !== "") && (E.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${t} next: ${i}`), this.replyMessage = this.updateMessage(this.replyMessage, t), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: i } }, this.addMessage(this.replyMessage));
3757
3770
  } else
3758
3771
  this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer);
3759
3772
  this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null;
@@ -3762,11 +3775,11 @@ class R extends Yt {
3762
3775
  if (!this.streamingResponseBuffer || !this.replyMessage)
3763
3776
  return;
3764
3777
  if (this.streamingResponseBuffer.indexOf("![") === -1) {
3765
- $.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
3778
+ E.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
3766
3779
  return;
3767
3780
  }
3768
3781
  const e = this.streamingResponseBuffer.lastIndexOf("]"), t = this.streamingResponseBuffer.lastIndexOf(")");
3769
- e === -1 || t === -1 || e > t || ($.info(`IMG TAG END: ${this.streamingResponseBuffer}`), this.isValidImageLink(this.streamingResponseBuffer) && (this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer)), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null);
3782
+ e === -1 || t === -1 || e > t || (E.info(`IMG TAG END: ${this.streamingResponseBuffer}`), this.isValidImageLink(this.streamingResponseBuffer) && (this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer)), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null);
3770
3783
  }
3771
3784
  isValidImageLink(e = "") {
3772
3785
  return !(e.indexOf("example.com") !== -1 || e.indexOf("imgur.com") !== -1 || e.indexOf("attachment:") !== -1);
@@ -3786,7 +3799,7 @@ class R extends Yt {
3786
3799
  this.streamingResponseBuffer = e, this.streamingResponseTagStartPos = e.indexOf("<"), this.streamingResponseCurrentTag = "br";
3787
3800
  return;
3788
3801
  } else if (e.indexOf("![") !== -1 || e.endsWith("!")) {
3789
- this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", $.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
3802
+ this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", E.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
3790
3803
  return;
3791
3804
  }
3792
3805
  this.streamingResponseLastText = t, this.replyMessage = this.updateMessage(this.replyMessage, t);
@@ -3842,7 +3855,7 @@ class R extends Yt {
3842
3855
  detail: f
3843
3856
  })
3844
3857
  ), this.sendActionCompleted(f).catch((p) => {
3845
- $.error(`Error: failed to send action completed: ${p.message}`);
3858
+ E.error(`Error: failed to send action completed: ${p.message}`);
3846
3859
  });
3847
3860
  }
3848
3861
  this.actions.splice(s, 1);
@@ -3860,10 +3873,10 @@ class R extends Yt {
3860
3873
  }
3861
3874
  }
3862
3875
  async sendMessage(e) {
3863
- e = this.formatMessage(e), $.info("Send Message:", e), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
3876
+ e = this.formatMessage(e), E.info("Send Message:", e), this.showNewConversation && (this.showNewConversation = !1), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
3864
3877
  const t = await this.getWsClient();
3865
3878
  if (!t) {
3866
- $.error("Error - failed to obtain ws client"), this.replyMessage = null;
3879
+ E.error("Error - failed to obtain ws client"), this.replyMessage = null;
3867
3880
  return;
3868
3881
  }
3869
3882
  t.sendMessage({
@@ -3874,7 +3887,7 @@ class R extends Yt {
3874
3887
  }
3875
3888
  // TODO revisit below
3876
3889
  formatMessage(e) {
3877
- return e.id || (e.id = de()), e.timestamp || (e.timestamp = Date.now()), e.author === "assistant" && !e.replyId && (e.replyId = this.messages.findLast((t) => t.author === "user")?.id || void 0), e;
3890
+ return e.id || (e.id = fe()), e.timestamp || (e.timestamp = Date.now()), e.author === "assistant" && !e.replyId && (e.replyId = this.messages.findLast((t) => t.author === "user")?.id || void 0), e;
3878
3891
  }
3879
3892
  // add message
3880
3893
  addMessage(e) {
@@ -3909,16 +3922,16 @@ class R extends Yt {
3909
3922
  // Submit current form data
3910
3923
  async submitForm(e) {
3911
3924
  if (!this.form) {
3912
- $.info("submitForm: No form is active - ignored");
3925
+ E.info("submitForm: No form is active - ignored");
3913
3926
  return;
3914
3927
  }
3915
- const t = `${re}${this.setting.botId}.${this.conversationId}.form.${this.form.name}`;
3928
+ const t = `${ne}${this.setting.botId}.${this.conversationId}.form.${this.form.name}`;
3916
3929
  await this.sendFormData(this.form.name, e), localStorage.setItem(t, JSON.stringify(e)), "name" in e && (this.feedbackName = e.name), "email" in e && (this.feedbackEmail = e.email), this.form = null;
3917
3930
  }
3918
3931
  async sendFormData(e, t) {
3919
3932
  const i = await this.getWsClient();
3920
3933
  if (!i) {
3921
- $.error("Error - failed to obtain ws client");
3934
+ E.error("Error - failed to obtain ws client");
3922
3935
  return;
3923
3936
  }
3924
3937
  i.sendMessage({
@@ -3930,7 +3943,7 @@ class R extends Yt {
3930
3943
  async sendActionCompleted(e) {
3931
3944
  const t = await this.getWsClient();
3932
3945
  if (!t) {
3933
- $.error("Error - failed to obtain ws client");
3946
+ E.error("Error - failed to obtain ws client");
3934
3947
  return;
3935
3948
  }
3936
3949
  t.sendMessage({
@@ -3941,7 +3954,7 @@ class R extends Yt {
3941
3954
  async sendEvent(e) {
3942
3955
  const t = await this.getWsClient();
3943
3956
  if (!t) {
3944
- $.error("Error - failed to obtain ws client");
3957
+ E.error("Error - failed to obtain ws client");
3945
3958
  return;
3946
3959
  }
3947
3960
  t.sendMessage(e);
@@ -3954,14 +3967,14 @@ class R extends Yt {
3954
3967
  this.feedbackMessages.push(t), this.feedbackUserMessage = this.messages.findLast((i) => i.id === t.replyId)?.data?.text || "", this.feedbackAnswer = t?.data.text || "", this.feedbackAnswerMessageId = t?.id || "", this.feedbackAnswerUserName = t?.data.userName || "", this.feedback = !0;
3955
3968
  }
3956
3969
  async submitFeedback(e, t, i) {
3957
- $.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = t;
3970
+ E.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = t;
3958
3971
  const s = await this.getWsClient();
3959
3972
  if (!s) {
3960
- $.error("Error - failed to obtain ws client"), this.replyMessage = null;
3973
+ E.error("Error - failed to obtain ws client"), this.replyMessage = null;
3961
3974
  return;
3962
3975
  }
3963
3976
  s.sendMessage({
3964
- id: de(),
3977
+ id: fe(),
3965
3978
  type: "feedback",
3966
3979
  score: this.feedbackScore,
3967
3980
  userMessage: this.feedbackUserMessage,
@@ -3999,13 +4012,13 @@ class R extends Yt {
3999
4012
  async uploadFiles(e) {
4000
4013
  if (!e?.length) return;
4001
4014
  const t = await this.filesToBase64(e);
4002
- $.info("Uploading files:", t);
4015
+ E.info("Uploading files:", t);
4003
4016
  const i = await this.getWsClient();
4004
4017
  if (!i) {
4005
- $.error("Error - failed to obtain ws client");
4018
+ E.error("Error - failed to obtain ws client");
4006
4019
  return;
4007
4020
  }
4008
- const s = de();
4021
+ const s = fe();
4009
4022
  i.sendMessage({
4010
4023
  id: s,
4011
4024
  type: "upload",
@@ -4024,50 +4037,50 @@ class R extends Yt {
4024
4037
  }
4025
4038
  notifyWidgetOpenState() {
4026
4039
  this.wsClient && this.wsClient.sendMessage({
4027
- id: de(),
4040
+ id: fe(),
4028
4041
  type: "widgetState",
4029
4042
  open: this.open
4030
4043
  });
4031
4044
  }
4032
4045
  }
4033
- B([
4034
- fe({ prefix: re }),
4035
- O({ value: "en" })
4046
+ O([
4047
+ ce({ prefix: ne }),
4048
+ z({ value: "en" })
4036
4049
  ], R.prototype, "language");
4037
- B([
4038
- fe({ prefix: re }),
4039
- O({ value: "light" })
4050
+ O([
4051
+ ce({ prefix: ne }),
4052
+ z({ value: "light" })
4040
4053
  ], R.prototype, "theme");
4041
- B([
4042
- fe({ prefix: re }),
4043
- O({ type: Boolean, value: !1 })
4054
+ O([
4055
+ ce({ prefix: ne }),
4056
+ z({ type: Boolean, value: !1 })
4044
4057
  ], R.prototype, "open");
4045
- B([
4046
- O({ type: Boolean, value: !1 })
4058
+ O([
4059
+ z({ type: Boolean, value: !1 })
4047
4060
  ], R.prototype, "alwaysOpen");
4048
- B([
4049
- fe({ prefix: re }),
4050
- O({ value: "false" })
4061
+ O([
4062
+ ce({ prefix: ne }),
4063
+ z({ value: "false" })
4051
4064
  ], R.prototype, "connectWs");
4052
- B([
4053
- fe({ prefix: re }),
4054
- O({ value: de() })
4065
+ O([
4066
+ ce({ prefix: ne }),
4067
+ z({ value: fe() })
4055
4068
  ], R.prototype, "conversationId");
4056
- B([
4057
- fe({ prefix: re }),
4058
- O({ value: 0 })
4069
+ O([
4070
+ ce({ prefix: ne }),
4071
+ z({ value: 0 })
4059
4072
  ], R.prototype, "lastConversationUpdate");
4060
- B([
4061
- fe({ prefix: re }),
4062
- O({ type: Array, value: [] })
4073
+ O([
4074
+ ce({ prefix: ne }),
4075
+ z({ type: Array, value: [] })
4063
4076
  ], R.prototype, "messages");
4064
- B([
4065
- fe({ prefix: re }),
4066
- O({ value: 0 })
4077
+ O([
4078
+ ce({ prefix: ne }),
4079
+ z({ value: 0 })
4067
4080
  ], R.prototype, "unreadMessages");
4068
- B([
4069
- fe({ prefix: re }),
4070
- O({
4081
+ O([
4082
+ ce({ prefix: ne }),
4083
+ z({
4071
4084
  type: Array,
4072
4085
  value: []
4073
4086
  /*
@@ -4110,41 +4123,45 @@ B([
4110
4123
  ],*/
4111
4124
  })
4112
4125
  ], R.prototype, "actions");
4113
- B([
4114
- fe({ prefix: re }),
4115
- O({ type: Object, value: null })
4126
+ O([
4127
+ ce({ prefix: ne }),
4128
+ z({ type: Object, value: null })
4116
4129
  ], R.prototype, "form");
4117
- B([
4118
- O({ type: Boolean, value: !1 })
4130
+ O([
4131
+ z({ type: Boolean, value: !1 })
4119
4132
  ], R.prototype, "botSettingsInitialized");
4120
- B([
4121
- O({ type: Number, value: 5 })
4133
+ O([
4134
+ z({ type: Number, value: 5 })
4122
4135
  ], R.prototype, "botSettingsRetryTimeout");
4123
- B([
4124
- O({ type: Object, value: null })
4136
+ O([
4137
+ z({ type: Object, value: null })
4125
4138
  ], R.prototype, "botSettings");
4126
- B([
4127
- O({ type: Boolean, value: !0 })
4139
+ O([
4140
+ z({ type: Boolean, value: !0 })
4128
4141
  ], R.prototype, "disabled");
4129
- B([
4130
- O({ type: Boolean, value: !1 })
4142
+ O([
4143
+ z({ type: Boolean, value: !1 })
4131
4144
  ], R.prototype, "connecting");
4132
- B([
4133
- O({ type: Boolean, value: !1 })
4145
+ O([
4146
+ z({ type: Boolean, value: !1 })
4134
4147
  ], R.prototype, "connected");
4135
- B([
4136
- fe({ prefix: re }),
4137
- O({ value: "true" })
4148
+ O([
4149
+ ce({ prefix: ne }),
4150
+ z({ value: "true" })
4138
4151
  ], R.prototype, "shouldEngage");
4139
- B([
4140
- O({ type: Boolean, value: !1 })
4152
+ O([
4153
+ z({ type: Boolean, value: !1 })
4141
4154
  ], R.prototype, "engage");
4142
- B([
4143
- O({ type: Boolean, value: !1 })
4155
+ O([
4156
+ ce({ prefix: ne }),
4157
+ z({ type: Boolean, value: !1 })
4158
+ ], R.prototype, "showNewConversation");
4159
+ O([
4160
+ z({ type: Boolean, value: !1 })
4144
4161
  ], R.prototype, "typingActive");
4145
- B([
4146
- fe({ prefix: re }),
4147
- O({
4162
+ O([
4163
+ ce({ prefix: ne }),
4164
+ z({
4148
4165
  type: Object,
4149
4166
  value: {
4150
4167
  orgId: null,
@@ -4163,61 +4180,61 @@ B([
4163
4180
  }
4164
4181
  })
4165
4182
  ], R.prototype, "setting");
4166
- B([
4167
- fe({ prefix: re }),
4168
- O({ type: Object, value: {} })
4183
+ O([
4184
+ ce({ prefix: ne }),
4185
+ z({ type: Object, value: {} })
4169
4186
  ], R.prototype, "context");
4170
- B([
4171
- O({ type: String, value: "top-end" })
4187
+ O([
4188
+ z({ type: String, value: "top-end" })
4172
4189
  ], R.prototype, "appearanceAnchorPopupPosition");
4173
- B([
4174
- O({ type: String, value: "danger" })
4190
+ O([
4191
+ z({ type: String, value: "danger" })
4175
4192
  ], R.prototype, "appearanceAnchorBadgeVariant");
4176
- B([
4177
- O({ type: String, value: "right" })
4193
+ O([
4194
+ z({ type: String, value: "right" })
4178
4195
  ], R.prototype, "appearanceUserMessageAvatarPosition");
4179
- B([
4180
- O({ type: Boolean, value: !1 })
4196
+ O([
4197
+ z({ type: Boolean, value: !1 })
4181
4198
  ], R.prototype, "feedback");
4182
- B([
4183
- O({ type: Number, value: 5 })
4199
+ O([
4200
+ z({ type: Number, value: 5 })
4184
4201
  ], R.prototype, "feedbackScore");
4185
- B([
4186
- O({ type: String, value: "" })
4202
+ O([
4203
+ z({ type: String, value: "" })
4187
4204
  ], R.prototype, "feedbackUserMessage");
4188
- B([
4189
- O({ type: String, value: "" })
4205
+ O([
4206
+ z({ type: String, value: "" })
4190
4207
  ], R.prototype, "feedbackAnswerMessageId");
4191
- B([
4192
- O({ type: String, value: "" })
4208
+ O([
4209
+ z({ type: String, value: "" })
4193
4210
  ], R.prototype, "feedbackAnswer");
4194
- B([
4195
- O({ type: String, value: "" })
4211
+ O([
4212
+ z({ type: String, value: "" })
4196
4213
  ], R.prototype, "feedbackAnswerUserName");
4197
- B([
4198
- O({ type: Array, value: [] })
4214
+ O([
4215
+ z({ type: Array, value: [] })
4199
4216
  ], R.prototype, "feedbackMessages");
4200
- B([
4201
- fe({ prefix: re }),
4202
- O({ type: String, value: "" })
4217
+ O([
4218
+ ce({ prefix: ne }),
4219
+ z({ type: String, value: "" })
4203
4220
  ], R.prototype, "feedbackName");
4204
- B([
4205
- fe({ prefix: re }),
4206
- O({ type: String, value: "" })
4221
+ O([
4222
+ ce({ prefix: ne }),
4223
+ z({ type: String, value: "" })
4207
4224
  ], R.prototype, "feedbackEmail");
4208
- B([
4209
- O({ type: Boolean, value: !1 })
4225
+ O([
4226
+ z({ type: Boolean, value: !1 })
4210
4227
  ], R.prototype, "mediaStartAudioRequested");
4211
- B([
4212
- O({ type: Boolean, value: !1 })
4228
+ O([
4229
+ z({ type: Boolean, value: !1 })
4213
4230
  ], R.prototype, "mediaStartedAudio");
4214
- B([
4215
- O({ type: Boolean, value: !1 })
4231
+ O([
4232
+ z({ type: Boolean, value: !1 })
4216
4233
  ], R.prototype, "webAudioStarted");
4217
- B([
4218
- O({ type: Boolean, value: !1 })
4234
+ O([
4235
+ z({ type: Boolean, value: !1 })
4219
4236
  ], R.prototype, "webAudioMuted");
4220
- const b = new R(), Ms = J`
4237
+ const b = new R(), Ts = J`
4221
4238
  ${ke}
4222
4239
  :host {
4223
4240
  position: relative;
@@ -4292,12 +4309,12 @@ const b = new R(), Ms = J`
4292
4309
  display: inline;
4293
4310
  }
4294
4311
  `;
4295
- var Ts = Object.defineProperty, Is = (a, e, t, i) => {
4312
+ var Is = Object.defineProperty, Es = (a, e, t, i) => {
4296
4313
  for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
4297
4314
  (o = a[r]) && (s = o(e, t, s) || s);
4298
- return s && Ts(e, t, s), s;
4315
+ return s && Is(e, t, s), s;
4299
4316
  };
4300
- zi("system", {
4317
+ Oi("system", {
4301
4318
  resolver: (a) => ""
4302
4319
  });
4303
4320
  (() => {
@@ -4307,7 +4324,7 @@ zi("system", {
4307
4324
  return !1;
4308
4325
  }
4309
4326
  })();
4310
- class ne extends Fe {
4327
+ class re extends Fe {
4311
4328
  constructor() {
4312
4329
  super(...arguments), this.lang = "en";
4313
4330
  }
@@ -4334,16 +4351,16 @@ class ne extends Fe {
4334
4351
  return this.dispatchEvent(i), i;
4335
4352
  }
4336
4353
  }
4337
- Is([
4354
+ Es([
4338
4355
  x({ type: String })
4339
- ], ne.prototype, "lang");
4340
- var Es = Object.defineProperty, $s = Object.getOwnPropertyDescriptor, Ya = (a, e, t, i) => {
4341
- for (var s = i > 1 ? void 0 : i ? $s(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4356
+ ], re.prototype, "lang");
4357
+ var $s = Object.defineProperty, Ps = Object.getOwnPropertyDescriptor, Ya = (a, e, t, i) => {
4358
+ for (var s = i > 1 ? void 0 : i ? Ps(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4342
4359
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
4343
- return i && s && Es(e, t, s), s;
4360
+ return i && s && $s(e, t, s), s;
4344
4361
  };
4345
- const Ps = '<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>';
4346
- let zt = class extends ne {
4362
+ const Ls = '<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>';
4363
+ let zt = class extends re {
4347
4364
  constructor() {
4348
4365
  super(...arguments), this.title = "ChatBot";
4349
4366
  }
@@ -4363,7 +4380,7 @@ let zt = class extends ne {
4363
4380
  ${W(
4364
4381
  b.alwaysOpen,
4365
4382
  () => u``,
4366
- () => u`<div class="cb-header-close" part="header-close">${Y(Ps)}</div>`
4383
+ () => u`<div class="cb-header-close" part="header-close">${Y(Ls)}</div>`
4367
4384
  )}
4368
4385
  </header>`;
4369
4386
  }
@@ -4405,14 +4422,14 @@ let zt = class extends ne {
4405
4422
  });
4406
4423
  }
4407
4424
  };
4408
- zt.styles = Ms;
4425
+ zt.styles = Ts;
4409
4426
  Ya([
4410
4427
  x({ type: String, attribute: "title" })
4411
4428
  ], zt.prototype, "title", 2);
4412
4429
  zt = Ya([
4413
4430
  K("cb-header")
4414
4431
  ], zt);
4415
- const Ls = J`
4432
+ const Rs = J`
4416
4433
  ${ke}
4417
4434
  .cb-footer {
4418
4435
  line-height: 60px;
@@ -4427,12 +4444,12 @@ const Ls = J`
4427
4444
  color: var(--primary-color);
4428
4445
  }
4429
4446
  `;
4430
- var Rs = Object.getOwnPropertyDescriptor, zs = (a, e, t, i) => {
4431
- for (var s = i > 1 ? void 0 : i ? Rs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4447
+ var zs = Object.getOwnPropertyDescriptor, Os = (a, e, t, i) => {
4448
+ for (var s = i > 1 ? void 0 : i ? zs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4432
4449
  (o = a[r]) && (s = o(s) || s);
4433
4450
  return s;
4434
4451
  };
4435
- let Jt = class extends ne {
4452
+ let Jt = class extends re {
4436
4453
  constructor() {
4437
4454
  super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
4438
4455
  }
@@ -4467,11 +4484,11 @@ let Jt = class extends ne {
4467
4484
  `;
4468
4485
  }
4469
4486
  };
4470
- Jt.styles = Ls;
4471
- Jt = zs([
4487
+ Jt.styles = Rs;
4488
+ Jt = Os([
4472
4489
  K("cb-footer")
4473
4490
  ], Jt);
4474
- const Os = J`
4491
+ const Bs = J`
4475
4492
  ${ke}
4476
4493
 
4477
4494
  :host {
@@ -4672,7 +4689,7 @@ const Os = J`
4672
4689
  background-size: 100%;
4673
4690
  transition: background 0s;
4674
4691
  }
4675
- `, Bs = J`
4692
+ `, Ja = J`
4676
4693
  :host {
4677
4694
  --primary-color: var(--sl-color-primary-600);
4678
4695
  }
@@ -4826,7 +4843,7 @@ const Os = J`
4826
4843
  .card-btn[aria-disabled="true"]:focus-visible {
4827
4844
  box-shadow: none;
4828
4845
  }
4829
- `, Ja = J`
4846
+ `, Ka = J`
4830
4847
  :host {
4831
4848
  --primary-color: var(--sl-color-primary-600);
4832
4849
  }
@@ -5101,7 +5118,7 @@ let Ge = class extends Fe {
5101
5118
  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);
5102
5119
  }
5103
5120
  };
5104
- Ge.styles = Ja;
5121
+ Ge.styles = Ka;
5105
5122
  je([
5106
5123
  x({ type: String })
5107
5124
  ], Ge.prototype, "variant", 2);
@@ -5334,10 +5351,10 @@ st([
5334
5351
  qe = st([
5335
5352
  K("cb-toast")
5336
5353
  ], qe);
5337
- var Us = Object.defineProperty, Ns = Object.getOwnPropertyDescriptor, wt = (a, e, t, i) => {
5338
- for (var s = i > 1 ? void 0 : i ? Ns(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5354
+ var Ns = Object.defineProperty, Us = Object.getOwnPropertyDescriptor, wt = (a, e, t, i) => {
5355
+ for (var s = i > 1 ? void 0 : i ? Us(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5339
5356
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5340
- return i && s && Us(e, t, s), s;
5357
+ return i && s && Ns(e, t, s), s;
5341
5358
  };
5342
5359
  const Tt = Je.noConflict(), Ea = "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", Ws = J`
5343
5360
  :host { display: block; width: 100%; color: var(--cb-fg, #111827); }
@@ -5447,10 +5464,10 @@ let Me = class extends Fe {
5447
5464
  }
5448
5465
  /* ----------------- CARD ----------------- */
5449
5466
  renderCard(a) {
5450
- const { title: e, subtitle: t, image_url: i, image_alt: s, buttons: r = [] } = a, o = (a.url || "").trim(), f = (a.target || "").trim(), p = o.length > 0, v = a.info?.text, k = typeof a.info?.rating == "number" ? a.info.rating : typeof a.rating == "number" ? a.rating : void 0, w = !!v, _ = typeof k == "number", P = ["card__info", w && _ ? "card__info--between" : ""].filter(Boolean).join(" "), I = r.some((N) => (N.type ?? "").toLowerCase() === "primary"), M = r.some((N) => (N.type ?? "").toLowerCase() === "secondary"), L = ["card__actions", I && M ? "card__actions--between" : ""].filter(Boolean).join(" "), C = () => {
5467
+ const { title: e, subtitle: t, image_url: i, image_alt: s, buttons: r = [] } = a, o = (a.url || "").trim(), f = (a.target || "").trim(), p = o.length > 0, v = a.info?.text, k = typeof a.info?.rating == "number" ? a.info.rating : typeof a.rating == "number" ? a.rating : void 0, w = !!v, _ = typeof k == "number", P = ["card__info", w && _ ? "card__info--between" : ""].filter(Boolean).join(" "), I = r.some((U) => (U.type ?? "").toLowerCase() === "primary"), M = r.some((U) => (U.type ?? "").toLowerCase() === "secondary"), L = ["card__actions", I && M ? "card__actions--between" : ""].filter(Boolean).join(" "), C = () => {
5451
5468
  if (!i) return Ae;
5452
- const N = u`<img class="card__image" src=${i} alt=${s ?? e ?? "Image"} draggable="false" />`;
5453
- return p ? u`<a class="card__image-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false" aria-label=${e ? `Open: ${e}` : "Open"}>${N}</a>` : N;
5469
+ const U = u`<img class="card__image" src=${i} alt=${s ?? e ?? "Image"} draggable="false" />`;
5470
+ return p ? u`<a class="card__image-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false" aria-label=${e ? `Open: ${e}` : "Open"}>${U}</a>` : U;
5454
5471
  }, Z = () => e ? p && !i ? u`<h3 class="card__title"><a class="card__title-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false">${e}</a></h3>` : u`<h3 class="card__title">${e}</h3>` : Ae;
5455
5472
  return u`
5456
5473
  <div class="card" role="group" aria-label=${e ? `Card: ${e}` : "Card"}>
@@ -5465,7 +5482,7 @@ let Me = class extends Fe {
5465
5482
  </div>` : Ae}
5466
5483
  ${r.length ? u`
5467
5484
  <div class=${L}>
5468
- ${r.map((N, G) => this.renderAnyButton(N, G))}
5485
+ ${r.map((U, G) => this.renderAnyButton(U, G))}
5469
5486
  </div>` : Ae}
5470
5487
  </div>
5471
5488
  </div>
@@ -5669,7 +5686,7 @@ let Me = class extends Fe {
5669
5686
  await o.json(), Tt.info("c7o: cart/add.js - cart updated"), Tt.info("c7o: reloading window after cart update"), window.location.reload();
5670
5687
  }
5671
5688
  };
5672
- Me.styles = [Ws, Bs, Ja];
5689
+ Me.styles = [Ws, Ja, Ka];
5673
5690
  Me.DRAG_THRESHOLD_PX = 10;
5674
5691
  wt([
5675
5692
  x({ type: Object })
@@ -5686,7 +5703,7 @@ wt([
5686
5703
  Me = wt([
5687
5704
  K("cb-block")
5688
5705
  ], Me);
5689
- var Gs = Object.defineProperty, Xs = Object.getOwnPropertyDescriptor, Ka = (a, e, t, i) => {
5706
+ var Gs = Object.defineProperty, Xs = Object.getOwnPropertyDescriptor, Za = (a, e, t, i) => {
5690
5707
  for (var s = i > 1 ? void 0 : i ? Xs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5691
5708
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5692
5709
  return i && s && Gs(e, t, s), s;
@@ -5714,10 +5731,10 @@ Ot.styles = J`
5714
5731
  gap: 0.75em; /* vertical rhythm between blocks */
5715
5732
  }
5716
5733
  `;
5717
- Ka([
5734
+ Za([
5718
5735
  x({ type: Array })
5719
5736
  ], Ot.prototype, "blocks", 2);
5720
- Ot = Ka([
5737
+ Ot = Za([
5721
5738
  K("cb-blocks")
5722
5739
  ], Ot);
5723
5740
  var Lt = { exports: {} }, Ys = Lt.exports, $a;
@@ -5785,19 +5802,19 @@ function Js() {
5785
5802
  })), h;
5786
5803
  }
5787
5804
  function w(n) {
5788
- 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, T = arguments.length > 2 ? arguments[2] : void 0, E = l || [];
5789
- function z(q) {
5790
- F(d) && d.call(T, q, this), y && z.destroy();
5805
+ 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, T = arguments.length > 2 ? arguments[2] : void 0, $ = l || [];
5806
+ function B(q) {
5807
+ F(d) && d.call(T, q, this), y && B.destroy();
5791
5808
  }
5792
- return j(E) && (E = document.querySelectorAll(E)), z.destroy = function() {
5793
- v(E, (function(q) {
5794
- var D = k(q, n, z);
5795
- D.found && D.all.splice(D.evt, 1), q.removeEventListener && q.removeEventListener(n, z, S);
5809
+ return j($) && ($ = document.querySelectorAll($)), B.destroy = function() {
5810
+ v($, (function(q) {
5811
+ var D = k(q, n, B);
5812
+ D.found && D.all.splice(D.evt, 1), q.removeEventListener && q.removeEventListener(n, B, S);
5796
5813
  }));
5797
- }, v(E, (function(q) {
5798
- var D = k(q, n, z);
5799
- (q.addEventListener && m && !D.found || !m) && (q.addEventListener(n, z, S), D.all.push({ eventName: n, fn: z }));
5800
- })), z;
5814
+ }, v($, (function(q) {
5815
+ var D = k(q, n, B);
5816
+ (q.addEventListener && m && !D.found || !m) && (q.addEventListener(n, B, S), D.all.push({ eventName: n, fn: B }));
5817
+ })), B;
5801
5818
  }
5802
5819
  function _(n, c) {
5803
5820
  v(c.split(" "), (function(l) {
@@ -5839,7 +5856,7 @@ function Js() {
5839
5856
  function Z(n) {
5840
5857
  n.style.display = "block";
5841
5858
  }
5842
- function N(n) {
5859
+ function U(n) {
5843
5860
  n.style.display = "none";
5844
5861
  }
5845
5862
  function G(n) {
@@ -5955,7 +5972,7 @@ function Js() {
5955
5972
  })), g = m.sort()[0];
5956
5973
  return document.querySelector('.gbtn[data-taborder="'.concat(g, '"]'));
5957
5974
  }
5958
- function mi(n) {
5975
+ function yi(n) {
5959
5976
  if (n.events.hasOwnProperty("keyboard")) return !1;
5960
5977
  n.events.keyboard = w("keydown", { onElement: window, withCallback: function(c, l) {
5961
5978
  var d = (c = c || window.event).keyCode;
@@ -5978,7 +5995,7 @@ function Js() {
5978
5995
  d == 39 && n.nextSlide(), d == 37 && n.prevSlide(), d == 27 && n.close();
5979
5996
  } });
5980
5997
  }
5981
- var yi = s((function n(c, l) {
5998
+ var vi = s((function n(c, l) {
5982
5999
  var d = this, h = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
5983
6000
  if (t(this, n), this.img = c, this.slide = l, this.onclose = h, this.img.setZoomEvents) return !1;
5984
6001
  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) {
@@ -6023,13 +6040,13 @@ function Js() {
6023
6040
  } }]), pa = s((function n() {
6024
6041
  var c = this, l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6025
6042
  t(this, n);
6026
- 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, T = l.instance, E = T === void 0 ? null : T;
6027
- this.el = d, this.active = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.direction = null, this.lastDirection = null, this.toleranceX = m, this.toleranceY = y, this.toleranceReached = !1, this.dragContainer = this.el, this.slide = S, this.instance = E, this.el.addEventListener("mousedown", (function(z) {
6028
- return c.dragStart(z);
6029
- }), !1), this.el.addEventListener("mouseup", (function(z) {
6030
- return c.dragEnd(z);
6031
- }), !1), this.el.addEventListener("mousemove", (function(z) {
6032
- return c.drag(z);
6043
+ 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, T = l.instance, $ = T === void 0 ? null : T;
6044
+ this.el = d, this.active = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.direction = null, this.lastDirection = null, this.toleranceX = m, this.toleranceY = y, this.toleranceReached = !1, this.dragContainer = this.el, this.slide = S, this.instance = $, this.el.addEventListener("mousedown", (function(B) {
6045
+ return c.dragStart(B);
6046
+ }), !1), this.el.addEventListener("mouseup", (function(B) {
6047
+ return c.dragEnd(B);
6048
+ }), !1), this.el.addEventListener("mousemove", (function(B) {
6049
+ return c.drag(B);
6033
6050
  }), !1);
6034
6051
  }), [{ key: "dragStart", value: function(n) {
6035
6052
  if (this.slide.classList.contains("zoomed")) this.active = !1;
@@ -6072,26 +6089,26 @@ function Js() {
6072
6089
  var d = arguments.length > 3 && arguments[3] !== void 0 && arguments[3];
6073
6090
  n.style.transition = d ? "all .2s ease" : "", n.style.transform = "translate3d(".concat(c, "px, ").concat(l, "px, 0)");
6074
6091
  } }]);
6075
- function vi(n, c, l, d) {
6092
+ function wi(n, c, l, d) {
6076
6093
  var h = n.querySelector(".gslide-media"), m = new Image(), g = "gSlideTitle_" + l, y = "gSlideDesc_" + l;
6077
6094
  m.addEventListener("load", (function() {
6078
6095
  F(d) && d();
6079
6096
  }), !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);
6080
6097
  }
6081
- function wi(n, c, l, d) {
6098
+ function xi(n, c, l, d) {
6082
6099
  var h = this, m = n.querySelector(".ginner-container"), g = "gvideo" + l, y = n.querySelector(".gslide-media"), A = this.getAllPlayers();
6083
6100
  _(m, "gvideo-container"), y.insertBefore(G('<div class="gvideo-wrapper"></div>'), y.firstChild);
6084
6101
  var S = n.querySelector(".gvideo-wrapper");
6085
6102
  he(this.settings.plyr.css, "Plyr");
6086
- var T = c.href, E = c?.videoProvider, z = !1;
6103
+ var T = c.href, $ = c?.videoProvider, B = !1;
6087
6104
  y.style.maxWidth = c.width, he(this.settings.plyr.js, "Plyr", (function() {
6088
- if (!E && T.match(/vimeo\.com\/([0-9]*)/) && (E = "vimeo"), !E && (T.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || T.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || T.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || T.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/)) && (E = "youtube"), E === "local" || !E) {
6089
- E = "local";
6105
+ if (!$ && T.match(/vimeo\.com\/([0-9]*)/) && ($ = "vimeo"), !$ && (T.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || T.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || T.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || T.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/)) && ($ = "youtube"), $ === "local" || !$) {
6106
+ $ = "local";
6090
6107
  var q = '<video id="' + g + '" ';
6091
- q += 'style="background:#000; max-width: '.concat(c.width, ';" '), q += 'preload="metadata" ', q += 'x-webkit-airplay="allow" ', q += "playsinline ", q += "controls ", q += 'class="gvideo-local">', q += '<source src="'.concat(T, '">'), z = G(q += "</video>");
6108
+ q += 'style="background:#000; max-width: '.concat(c.width, ';" '), q += 'preload="metadata" ', q += 'x-webkit-airplay="allow" ', q += "playsinline ", q += "controls ", q += 'class="gvideo-local">', q += '<source src="'.concat(T, '">'), B = G(q += "</video>");
6092
6109
  }
6093
- var D = z || G('<div id="'.concat(g, '" data-plyr-provider="').concat(E, '" data-plyr-embed-id="').concat(T, '"></div>'));
6094
- _(S, "".concat(E, "-video gvideo")), S.appendChild(D), S.setAttribute("data-id", g), S.setAttribute("data-index", l);
6110
+ var D = B || G('<div id="'.concat(g, '" data-plyr-provider="').concat($, '" data-plyr-embed-id="').concat(T, '"></div>'));
6111
+ _(S, "".concat($, "-video gvideo")), S.appendChild(D), S.setAttribute("data-id", g), S.setAttribute("data-index", l);
6095
6112
  var ee = ie(h.settings.plyr, "config") ? h.settings.plyr.config : {}, ge = new Plyr("#" + g, ee);
6096
6113
  ge.on("ready", (function(ue) {
6097
6114
  A[g] = ue.detail.plyr, F(d) && d();
@@ -6106,7 +6123,7 @@ function Js() {
6106
6123
  var c = M(n.target, ".gslide-media");
6107
6124
  n.type === "enterfullscreen" && _(c, "fullscreen"), n.type === "exitfullscreen" && P(c, "fullscreen");
6108
6125
  }
6109
- function xi(n, c, l, d) {
6126
+ function ki(n, c, l, d) {
6110
6127
  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;
6111
6128
  if (A && (j(A) && (h = G('<div class="ginlined-content">'.concat(A, "</div>"))), V(A))) {
6112
6129
  A.style.display == "none" && (A.style.display = "block");
@@ -6116,24 +6133,24 @@ function Js() {
6116
6133
  if (y) {
6117
6134
  var T = document.getElementById(y);
6118
6135
  if (!T) return !1;
6119
- var E = T.cloneNode(!0);
6120
- E.style.height = c.height, E.style.maxWidth = c.width, _(E, "ginlined-content"), h = E;
6136
+ var $ = T.cloneNode(!0);
6137
+ $.style.height = c.height, $.style.maxWidth = c.width, _($, "ginlined-content"), h = $;
6121
6138
  }
6122
6139
  if (!h) return console.error("Unable to append inline slide content", c), !1;
6123
- 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(z) {
6124
- z.preventDefault(), m.close();
6140
+ 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) {
6141
+ B.preventDefault(), m.close();
6125
6142
  } }), F(d) && d();
6126
6143
  }
6127
- function ki(n, c, l, d) {
6144
+ function _i(n, c, l, d) {
6128
6145
  var h = n.querySelector(".gslide-media"), m = (function(g) {
6129
- var y = g.url, A = g.allow, S = g.callback, T = g.appendTo, E = document.createElement("iframe");
6130
- return E.className = "vimeo-video gvideo", E.src = y, E.style.width = "100%", E.style.height = "100%", A && E.setAttribute("allow", A), E.onload = function() {
6131
- E.onload = null, _(E, "node-ready"), F(S) && S();
6132
- }, T && T.appendChild(E), E;
6146
+ var y = g.url, A = g.allow, S = g.callback, T = g.appendTo, $ = document.createElement("iframe");
6147
+ return $.className = "vimeo-video gvideo", $.src = y, $.style.width = "100%", $.style.height = "100%", A && $.setAttribute("allow", A), $.onload = function() {
6148
+ $.onload = null, _($, "node-ready"), F(S) && S();
6149
+ }, T && T.appendChild($), $;
6133
6150
  })({ url: c.href, callback: d });
6134
6151
  h.parentNode.style.maxWidth = c.width, h.parentNode.style.height = c.height, h.appendChild(m);
6135
6152
  }
6136
- var _i = s((function n() {
6153
+ var Si = s((function n() {
6137
6154
  var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6138
6155
  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));
6139
6156
  }), [{ key: "sourceType", value: function(n) {
@@ -6173,17 +6190,17 @@ function Js() {
6173
6190
  }));
6174
6191
  }
6175
6192
  if (d.description && d.description.substring(0, 1) === ".") {
6176
- var E;
6193
+ var $;
6177
6194
  try {
6178
- E = document.querySelector(d.description).innerHTML;
6195
+ $ = document.querySelector(d.description).innerHTML;
6179
6196
  } catch (q) {
6180
6197
  if (!(q instanceof DOMException)) throw q;
6181
6198
  }
6182
- E && (d.description = E);
6199
+ $ && (d.description = $);
6183
6200
  }
6184
6201
  if (!d.description) {
6185
- var z = n.querySelector(".glightbox-desc");
6186
- z && (d.description = z.innerHTML);
6202
+ var B = n.querySelector(".glightbox-desc");
6203
+ B && (d.description = B.innerHTML);
6187
6204
  }
6188
6205
  return this.setSize(d, c, n), this.slideConfig = d, d;
6189
6206
  } }, { key: "setSize", value: function(n, c) {
@@ -6200,18 +6217,18 @@ function Js() {
6200
6217
  if (I(c, "loaded")) return !1;
6201
6218
  var d = this.instance.settings, h = this.slideConfig, m = pe();
6202
6219
  F(d.beforeSlideLoad) && d.beforeSlideLoad({ index: this.index, slide: c, player: !1 });
6203
- var g = h.type, y = h.descPosition, A = c.querySelector(".gslide-media"), S = c.querySelector(".gslide-title"), T = c.querySelector(".gslide-desc"), E = c.querySelector(".gdesc-inner"), z = l, q = "gSlideTitle_" + this.index, D = "gSlideDesc_" + this.index;
6204
- if (F(d.afterSlideLoad) && (z = function() {
6220
+ var g = h.type, y = h.descPosition, A = c.querySelector(".gslide-media"), S = c.querySelector(".gslide-title"), T = c.querySelector(".gslide-desc"), $ = c.querySelector(".gdesc-inner"), B = l, q = "gSlideTitle_" + this.index, D = "gSlideDesc_" + this.index;
6221
+ if (F(d.afterSlideLoad) && (B = function() {
6205
6222
  F(l) && l(), d.afterSlideLoad({ index: n.index, slide: c, player: n.instance.getSlidePlayerInstance(n.index) });
6206
- }), h.title == "" && h.description == "" ? E && E.parentNode.parentNode.removeChild(E.parentNode) : (S && h.title !== "" ? (S.id = q, S.innerHTML = h.title) : S.parentNode.removeChild(S), T && h.description !== "" ? (T.id = D, m && d.moreLength > 0 ? (h.smallDescription = this.slideShortDesc(h.description, d.moreLength, d.moreText), T.innerHTML = h.smallDescription, this.descriptionEvents(T, h)) : T.innerHTML = h.description) : T.parentNode.removeChild(T), _(A.parentNode, "desc-".concat(y)), _(E.parentNode, "description-".concat(y))), _(A, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
6207
- if (g !== "external") return g === "inline" ? (xi.apply(this.instance, [c, h, this.index, z]), void (h.draggable && new pa({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? F(z) && z() : vi(c, h, this.index, (function() {
6223
+ }), h.title == "" && h.description == "" ? $ && $.parentNode.parentNode.removeChild($.parentNode) : (S && h.title !== "" ? (S.id = q, S.innerHTML = h.title) : S.parentNode.removeChild(S), T && h.description !== "" ? (T.id = D, m && d.moreLength > 0 ? (h.smallDescription = this.slideShortDesc(h.description, d.moreLength, d.moreText), T.innerHTML = h.smallDescription, this.descriptionEvents(T, h)) : T.innerHTML = h.description) : T.parentNode.removeChild(T), _(A.parentNode, "desc-".concat(y)), _($.parentNode, "description-".concat(y))), _(A, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
6224
+ if (g !== "external") return g === "inline" ? (ki.apply(this.instance, [c, h, this.index, B]), void (h.draggable && new pa({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? F(B) && B() : wi(c, h, this.index, (function() {
6208
6225
  var ee = c.querySelector("img");
6209
- h.draggable && new pa({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), h.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new yi(ee, c, (function() {
6226
+ h.draggable && new pa({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), h.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new vi(ee, c, (function() {
6210
6227
  n.instance.resize();
6211
- }))), F(z) && z();
6228
+ }))), F(B) && B();
6212
6229
  })));
6213
- ki.apply(this, [c, h, this.index, z]);
6214
- } else wi.apply(this.instance, [c, h, this.index, z]);
6230
+ _i.apply(this, [c, h, this.index, B]);
6231
+ } else xi.apply(this.instance, [c, h, this.index, B]);
6215
6232
  } }, { key: "slideShortDesc", value: function(n) {
6216
6233
  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");
6217
6234
  d.innerHTML = n;
@@ -6237,13 +6254,13 @@ function Js() {
6237
6254
  return G(this.instance.settings.slideHTML);
6238
6255
  } }, { key: "getConfig", value: function() {
6239
6256
  V(this.element) || this.element.hasOwnProperty("draggable") || (this.element.draggable = this.instance.settings.draggable);
6240
- var n = new _i(this.instance.settings.slideExtraAttributes);
6257
+ var n = new Si(this.instance.settings.slideExtraAttributes);
6241
6258
  return this.slideConfig = n.parseConfig(this.element, this.instance.settings), this.slideConfig;
6242
6259
  } }]);
6243
6260
  function _t(n) {
6244
6261
  return Math.sqrt(n.x * n.x + n.y * n.y);
6245
6262
  }
6246
- function Si(n, c) {
6263
+ function Ci(n, c) {
6247
6264
  var l = (function(d, h) {
6248
6265
  var m = _t(d) * _t(h);
6249
6266
  if (m === 0) return 0;
@@ -6256,7 +6273,7 @@ function Js() {
6256
6273
  return d.x * h.y - h.x * d.y;
6257
6274
  })(n, c) > 0 && (l *= -1), 180 * l / Math.PI;
6258
6275
  }
6259
- var Ci = s((function n(c) {
6276
+ var Ai = s((function n(c) {
6260
6277
  t(this, n), this.handlers = [], this.el = c;
6261
6278
  }), [{ key: "add", value: function(n) {
6262
6279
  this.handlers.push(n);
@@ -6269,15 +6286,15 @@ function Js() {
6269
6286
  typeof l == "function" && l.apply(this.el, arguments);
6270
6287
  }
6271
6288
  } }]);
6272
- function ce(n, c) {
6273
- var l = new Ci(n);
6289
+ function le(n, c) {
6290
+ var l = new Ai(n);
6274
6291
  return l.add(c), l;
6275
6292
  }
6276
- var Ai = s((function n(c, l) {
6293
+ var Mi = s((function n(c, l) {
6277
6294
  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;
6278
6295
  var d = function() {
6279
6296
  };
6280
- this.rotate = ce(this.element, l.rotate || d), this.touchStart = ce(this.element, l.touchStart || d), this.multipointStart = ce(this.element, l.multipointStart || d), this.multipointEnd = ce(this.element, l.multipointEnd || d), this.pinch = ce(this.element, l.pinch || d), this.swipe = ce(this.element, l.swipe || d), this.tap = ce(this.element, l.tap || d), this.doubleTap = ce(this.element, l.doubleTap || d), this.longTap = ce(this.element, l.longTap || d), this.singleTap = ce(this.element, l.singleTap || d), this.pressMove = ce(this.element, l.pressMove || d), this.twoFingerPressMove = ce(this.element, l.twoFingerPressMove || d), this.touchMove = ce(this.element, l.touchMove || d), this.touchEnd = ce(this.element, l.touchEnd || d), this.touchCancel = ce(this.element, l.touchCancel || d), this.translateContainer = this.element, this._cancelAllHandler = this.cancelAll.bind(this), window.addEventListener("scroll", this._cancelAllHandler), this.delta = null, this.last = null, this.now = null, this.tapTimeout = null, this.singleTapTimeout = null, this.longTapTimeout = null, this.swipeTimeout = null, this.x1 = this.x2 = this.y1 = this.y2 = null, this.preTapPosition = { x: null, y: null };
6297
+ this.rotate = le(this.element, l.rotate || d), this.touchStart = le(this.element, l.touchStart || d), this.multipointStart = le(this.element, l.multipointStart || d), this.multipointEnd = le(this.element, l.multipointEnd || d), this.pinch = le(this.element, l.pinch || d), this.swipe = le(this.element, l.swipe || d), this.tap = le(this.element, l.tap || d), this.doubleTap = le(this.element, l.doubleTap || d), this.longTap = le(this.element, l.longTap || d), this.singleTap = le(this.element, l.singleTap || d), this.pressMove = le(this.element, l.pressMove || d), this.twoFingerPressMove = le(this.element, l.twoFingerPressMove || d), this.touchMove = le(this.element, l.touchMove || d), this.touchEnd = le(this.element, l.touchEnd || d), this.touchCancel = le(this.element, l.touchCancel || d), this.translateContainer = this.element, this._cancelAllHandler = this.cancelAll.bind(this), window.addEventListener("scroll", this._cancelAllHandler), this.delta = null, this.last = null, this.now = null, this.tapTimeout = null, this.singleTapTimeout = null, this.longTapTimeout = null, this.swipeTimeout = null, this.x1 = this.x2 = this.y1 = this.y2 = null, this.preTapPosition = { x: null, y: null };
6281
6298
  }), [{ key: "start", value: function(n) {
6282
6299
  if (n.touches) if (n.target && n.target.nodeName && ["a", "button", "input"].indexOf(n.target.nodeName.toLowerCase()) >= 0) console.log("ignore drag for this touched element", n.target.nodeName.toLowerCase());
6283
6300
  else {
@@ -6297,7 +6314,7 @@ function Js() {
6297
6314
  var c = this.preV, l = n.touches.length, d = n.touches[0].pageX, h = n.touches[0].pageY;
6298
6315
  if (this.isDoubleTap = !1, l > 1) {
6299
6316
  var m = n.touches[1].pageX, g = n.touches[1].pageY, y = { x: n.touches[1].pageX - d, y: n.touches[1].pageY - h };
6300
- c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Si(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;
6317
+ c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Ci(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;
6301
6318
  } else {
6302
6319
  if (this.x2 !== null) {
6303
6320
  n.deltaX = d - this.x2, n.deltaY = h - this.y2;
@@ -6346,9 +6363,9 @@ function Js() {
6346
6363
  P(d, "greset");
6347
6364
  } }), d.style.opacity = "", m && (m.style.opacity = "");
6348
6365
  }
6349
- function Mi(n) {
6366
+ function Ti(n) {
6350
6367
  if (n.events.hasOwnProperty("touch")) return !1;
6351
- var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, T = null, E = !1, z = 1, q = 1, D = !1, ee = !1, ge = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, wa = 0, xa = 0, Ei = document.getElementById("glightbox-slider"), St = document.querySelector(".goverlay"), $i = new Ai(Ei, { touchStart: function(X) {
6368
+ var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, T = null, $ = !1, B = 1, q = 1, D = !1, ee = !1, ge = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, wa = 0, xa = 0, $i = document.getElementById("glightbox-slider"), St = document.querySelector(".goverlay"), Pi = new Mi($i, { touchStart: function(X) {
6352
6369
  if (y = !0, (I(X.targetTouches[0].target, "ginner-container") || M(X.targetTouches[0].target, ".gslide-desc") || X.targetTouches[0].target.nodeName.toLowerCase() == "a") && (y = !1), M(X.targetTouches[0].target, ".gslide-inline") && !I(X.targetTouches[0].target.parentNode, "gslide-inline") && (y = !1), y) {
6353
6370
  if (Se = X.targetTouches[0], _e.pageX = X.targetTouches[0].pageX, _e.pageY = X.targetTouches[0].pageY, wa = X.targetTouches[0].clientX, xa = X.targetTouches[0].clientY, A = n.activeSlide, S = A.querySelector(".gslide-media"), d = A.querySelector(".gslide-inline"), T = null, I(S, "gslide-image") && (T = S.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (S = A.querySelector(".ginner-container")), P(St, "greset"), X.pageX > 20 && X.pageX < window.innerWidth - 20) return;
6354
6371
  X.preventDefault();
@@ -6356,19 +6373,19 @@ function Js() {
6356
6373
  }, touchMove: function(X) {
6357
6374
  if (y && (Se = X.targetTouches[0], !D && !ee)) {
6358
6375
  if (d && d.offsetHeight > g) {
6359
- var le = _e.pageX - Se.pageX;
6360
- if (Math.abs(le) <= 13) return !1;
6376
+ var de = _e.pageX - Se.pageX;
6377
+ if (Math.abs(de) <= 13) return !1;
6361
6378
  }
6362
- E = !0;
6363
- var Ue, Ct = X.targetTouches[0].clientX, Pi = X.targetTouches[0].clientY, Li = wa - Ct, Ri = xa - Pi;
6364
- if (Math.abs(Li) > Math.abs(Ri) ? (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 && T && (Ue = 1 - Math.abs(l) / g, St.style.opacity = Ue, n.settings.touchFollowAxis && (Re = 0)), rt && (Ue = 1 - Math.abs(c) / m, S.style.opacity = Ue, n.settings.touchFollowAxis && (ze = 0)), !T) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
6379
+ $ = !0;
6380
+ var Ne, Ct = X.targetTouches[0].clientX, Li = X.targetTouches[0].clientY, Ri = wa - Ct, zi = xa - Li;
6381
+ if (Math.abs(Ri) > Math.abs(zi) ? (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 && T && (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)), !T) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
6365
6382
  C(S, "translate3d(".concat(Re, "%, ").concat(ze, "%, 0)"));
6366
6383
  }
6367
6384
  }, touchEnd: function() {
6368
6385
  if (y) {
6369
- if (E = !1, ee || D) return Le = ge, void (oe = ue);
6370
- var X = Math.abs(parseInt(ze)), le = Math.abs(parseInt(Re));
6371
- if (!(X > 29 && T)) return X < 29 && le < 25 ? (_(St, "greset"), St.style.opacity = 1, Vt(S)) : void 0;
6386
+ if ($ = !1, ee || D) return Le = ge, void (oe = ue);
6387
+ var X = Math.abs(parseInt(ze)), de = Math.abs(parseInt(Re));
6388
+ if (!(X > 29 && T)) return X < 29 && de < 25 ? (_(St, "greset"), St.style.opacity = 1, Vt(S)) : void 0;
6372
6389
  n.close();
6373
6390
  }
6374
6391
  }, multipointEnd: function() {
@@ -6376,18 +6393,18 @@ function Js() {
6376
6393
  D = !1;
6377
6394
  }), 50);
6378
6395
  }, multipointStart: function() {
6379
- D = !0, z = q || 1;
6396
+ D = !0, B = q || 1;
6380
6397
  }, pinch: function(X) {
6381
- if (!T || E) return !1;
6382
- D = !0, T.scaleX = T.scaleY = z * X.zoom;
6383
- var le = z * X.zoom;
6384
- if (ee = !0, le <= 1) return ee = !1, le = 1, oe = null, Le = null, ge = null, ue = null, void T.setAttribute("style", "");
6385
- le > 4.5 && (le = 4.5), T.style.transform = "scale3d(".concat(le, ", ").concat(le, ", 1)"), q = le;
6398
+ if (!T || $) return !1;
6399
+ D = !0, T.scaleX = T.scaleY = B * X.zoom;
6400
+ var de = B * X.zoom;
6401
+ if (ee = !0, de <= 1) return ee = !1, de = 1, oe = null, Le = null, ge = null, ue = null, void T.setAttribute("style", "");
6402
+ de > 4.5 && (de = 4.5), T.style.transform = "scale3d(".concat(de, ", ").concat(de, ", 1)"), q = de;
6386
6403
  }, pressMove: function(X) {
6387
6404
  if (ee && !D) {
6388
- var le = Se.pageX - _e.pageX, Ue = Se.pageY - _e.pageY;
6389
- Le && (le += Le), oe && (Ue += oe), ge = le, ue = Ue;
6390
- var Ct = "translate3d(".concat(le, "px, ").concat(Ue, "px, 0)");
6405
+ var de = Se.pageX - _e.pageX, Ne = Se.pageY - _e.pageY;
6406
+ Le && (de += Le), oe && (Ne += oe), ge = de, ue = Ne;
6407
+ var Ct = "translate3d(".concat(de, "px, ").concat(Ne, "px, 0)");
6391
6408
  q && (Ct += " scale3d(".concat(q, ", ").concat(q, ", 1)")), C(T, Ct);
6392
6409
  }
6393
6410
  }, swipe: function(X) {
@@ -6403,9 +6420,9 @@ function Js() {
6403
6420
  }
6404
6421
  }
6405
6422
  } });
6406
- n.events.touch = $i;
6423
+ n.events.touch = Pi;
6407
6424
  }
6408
- var ma = pe(), ya = pe() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, va = document.getElementsByTagName("html")[0], Ti = { 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">
6425
+ var ma = pe(), ya = pe() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, va = document.getElementsByTagName("html")[0], Ii = { 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">
6409
6426
  <div class="gslide-inner-content">
6410
6427
  <div class="ginner-container">
6411
6428
  <div class="gslide-media">
@@ -6427,9 +6444,9 @@ function Js() {
6427
6444
  <button class="gprev gbtn" aria-label="Previous" data-taborder="2">{prevSVG}</button>
6428
6445
  <button class="gnext gbtn" aria-label="Next" data-taborder="1">{nextSVG}</button>
6429
6446
  </div>
6430
- </div>` }, Ii = s((function n() {
6447
+ </div>` }, Ei = s((function n() {
6431
6448
  var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6432
- t(this, n), this.customOptions = c, this.settings = p(Ti, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
6449
+ t(this, n), this.customOptions = c, this.settings = p(Ii, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
6433
6450
  }), [{ key: "init", value: function() {
6434
6451
  var n = this, c = this.getSelector();
6435
6452
  c && (this.baseEvents = w("click", { onElement: c, withCallback: function(l, d) {
@@ -6450,7 +6467,7 @@ function Js() {
6450
6467
  var g = document.createElement("style");
6451
6468
  g.type = "text/css", g.className = "gcss-styles", g.innerText = ".gscrollbar-fixer {margin-right: ".concat(m, "px}"), document.head.appendChild(g), _(h, "gscrollbar-fixer");
6452
6469
  }
6453
- _(h, "glightbox-open"), _(va, "glightbox-open"), ma && (_(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"), F(this.settings.onOpen) && this.settings.onOpen(), ya && this.settings.touchNavigation && Mi(this), this.settings.keyboardNavigation && mi(this);
6470
+ _(h, "glightbox-open"), _(va, "glightbox-open"), ma && (_(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"), F(this.settings.onOpen) && this.settings.onOpen(), ya && this.settings.touchNavigation && Ti(this), this.settings.keyboardNavigation && yi(this);
6454
6471
  } }, { key: "openAt", value: function() {
6455
6472
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
6456
6473
  this.open(null, n);
@@ -6460,12 +6477,12 @@ function Js() {
6460
6477
  var d = this.slidesContainer.querySelector(".current");
6461
6478
  d && P(d, "current"), this.slideAnimateOut();
6462
6479
  var h = this.slidesContainer.querySelectorAll(".gslide")[c];
6463
- if (I(h, "loaded")) this.slideAnimateIn(h, l), N(this.loader);
6480
+ if (I(h, "loaded")) this.slideAnimateIn(h, l), U(this.loader);
6464
6481
  else {
6465
6482
  Z(this.loader);
6466
6483
  var m = this.elements[c], g = { index: this.index, slide: h, slideNode: h, slideConfig: m.slideConfig, slideIndex: this.index, trigger: m.node, player: null };
6467
6484
  this.trigger("slide_before_load", g), m.instance.setContent(h, (function() {
6468
- N(n.loader), n.resize(), n.slideAnimateIn(h, l), n.trigger("slide_after_load", g);
6485
+ U(n.loader), n.resize(), n.slideAnimateIn(h, l), n.trigger("slide_after_load", g);
6469
6486
  }));
6470
6487
  }
6471
6488
  this.slideDescription = h.querySelector(".gslide-description"), this.slideDescriptionContained = this.slideDescription && I(this.slideDescription.parentNode, "gslide-media"), this.settings.preload && (this.preloadSlide(c + 1), this.preloadSlide(c - 1)), this.updateNavigationClasses(), this.activeSlide = h;
@@ -6512,7 +6529,7 @@ function Js() {
6512
6529
  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), F(this.settings.slideRemoved) && this.settings.slideRemoved(n);
6513
6530
  } }, { key: "slideAnimateIn", value: function(n, c) {
6514
6531
  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) };
6515
- if (d.offsetWidth > 0 && h && (N(h), h.style.display = ""), P(n, this.effectsClasses), c) L(n, this.settings.cssEfects[this.settings.openEffect].in, (function() {
6532
+ 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() {
6516
6533
  l.settings.autoplayVideos && l.slidePlayerPlay(n), l.trigger("slide_changed", { prev: m, current: g }), F(l.settings.afterSlideChange) && l.settings.afterSlideChange.apply(l, [m, g]);
6517
6534
  }));
6518
6535
  else {
@@ -6649,8 +6666,8 @@ function Js() {
6649
6666
  if (h && (I(h, "description-bottom") || I(h, "description-top")) && !I(h, "gabsolute") && (y = !0), d) {
6650
6667
  if (m <= 768) d.querySelector("img");
6651
6668
  else if (y) {
6652
- var A, S, T = h.offsetHeight, E = d.querySelector("img"), z = (A = this.elements[this.index]) === null || A === void 0 ? void 0 : A.node, q = "100vh";
6653
- z && (q = (S = z.getAttribute("data-height")) !== null && S !== void 0 ? S : q), E.setAttribute("style", "max-height: calc(".concat(q, " - ").concat(T, "px)")), h.setAttribute("style", "max-width: ".concat(E.offsetWidth, "px;"));
6669
+ var A, S, T = h.offsetHeight, $ = d.querySelector("img"), B = (A = this.elements[this.index]) === null || A === void 0 ? void 0 : A.node, q = "100vh";
6670
+ B && (q = (S = B.getAttribute("data-height")) !== null && S !== void 0 ? S : q), $.setAttribute("style", "max-height: calc(".concat(q, " - ").concat(T, "px)")), h.setAttribute("style", "max-width: ".concat($.offsetWidth, "px;"));
6654
6671
  }
6655
6672
  }
6656
6673
  if (l) {
@@ -6719,14 +6736,14 @@ function Js() {
6719
6736
  return "3.3.1";
6720
6737
  } }]);
6721
6738
  return function() {
6722
- var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new Ii(n);
6739
+ var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new Ei(n);
6723
6740
  return c.init(), c;
6724
6741
  };
6725
6742
  }));
6726
6743
  })(Lt)), Lt.exports;
6727
6744
  }
6728
6745
  var Ks = Js();
6729
- const Zs = /* @__PURE__ */ Na(Ks);
6746
+ const Zs = /* @__PURE__ */ Ua(Ks);
6730
6747
  var Qs = Object.getOwnPropertyDescriptor, en = (a, e, t, i) => {
6731
6748
  for (var s = i > 1 ? void 0 : i ? Qs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6732
6749
  (o = a[r]) && (s = o(s) || s);
@@ -6778,12 +6795,12 @@ Kt.styles = J`
6778
6795
  Kt = en([
6779
6796
  K("cb-thinking")
6780
6797
  ], Kt);
6781
- var tn = Object.defineProperty, an = Object.getOwnPropertyDescriptor, Za = (a, e, t, i) => {
6798
+ var tn = Object.defineProperty, an = Object.getOwnPropertyDescriptor, Qa = (a, e, t, i) => {
6782
6799
  for (var s = i > 1 ? void 0 : i ? an(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6783
6800
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
6784
6801
  return i && s && tn(e, t, s), s;
6785
6802
  };
6786
- let Bt = class extends ne {
6803
+ let Bt = class extends re {
6787
6804
  constructor() {
6788
6805
  super(...arguments), this.files = [];
6789
6806
  }
@@ -6817,10 +6834,10 @@ Bt.styles = J`
6817
6834
  margin-right: 5px;
6818
6835
  }
6819
6836
  `;
6820
- Za([
6837
+ Qa([
6821
6838
  x({ type: Array })
6822
6839
  ], Bt.prototype, "files", 2);
6823
- Bt = Za([
6840
+ Bt = Qa([
6824
6841
  K("cb-uploading")
6825
6842
  ], Bt);
6826
6843
  const sn = J`
@@ -6918,7 +6935,7 @@ const Pa = {
6918
6935
  doc: hn,
6919
6936
  docx: bn
6920
6937
  };
6921
- let yt = class extends ne {
6938
+ let yt = class extends re {
6922
6939
  constructor() {
6923
6940
  super(...arguments), this.filename = "", this.url = "";
6924
6941
  }
@@ -6957,7 +6974,7 @@ ca([
6957
6974
  yt = ca([
6958
6975
  K("cb-file")
6959
6976
  ], yt);
6960
- const gn = '<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>', La = '<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>', Qa = '<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>', ei = '<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>', mn = J`
6977
+ const gn = '<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>', La = '<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>', ei = '<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>', ti = '<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>', mn = J`
6961
6978
  pre code.hljs {
6962
6979
  display: block;
6963
6980
  overflow-x: auto;
@@ -8410,19 +8427,19 @@ function Ra(a, e) {
8410
8427
  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>`;
8411
8428
  }
8412
8429
  function vn() {
8413
- const a = new Oi({
8430
+ const a = new Bi({
8414
8431
  html: !0,
8415
8432
  breaks: !0,
8416
8433
  linkify: !0,
8417
8434
  highlight(e, t) {
8418
- if (!!(t && Ut.getLanguage(t))) {
8435
+ if (!!(t && Nt.getLanguage(t))) {
8419
8436
  const s = t ?? "";
8420
- return Ra(Ut.highlight(e, { language: s }).value, s);
8437
+ return Ra(Nt.highlight(e, { language: s }).value, s);
8421
8438
  }
8422
- return Ra(Ut.highlightAuto(e).value, "");
8439
+ return Ra(Nt.highlightAuto(e).value, "");
8423
8440
  }
8424
8441
  });
8425
- return a.use(Bi, { attrs: { target: "_blank", rel: "noopener" } }), a;
8442
+ return a.use(qi, { attrs: { target: "_blank", rel: "noopener" } }), a;
8426
8443
  }
8427
8444
  async function Zt(a) {
8428
8445
  const t = vn().render(a);
@@ -8433,7 +8450,7 @@ var wn = Object.defineProperty, xn = Object.getOwnPropertyDescriptor, nt = (a, e
8433
8450
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
8434
8451
  return i && s && wn(e, t, s), s;
8435
8452
  };
8436
- let De = class extends ne {
8453
+ let De = class extends re {
8437
8454
  constructor() {
8438
8455
  super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Zs({
8439
8456
  touchNavigation: !0,
@@ -8500,7 +8517,7 @@ let De = class extends ne {
8500
8517
  this.copyBtns.forEach((a) => {
8501
8518
  a.addEventListener("click", () => {
8502
8519
  const e = a.parentElement?.nextElementSibling?.textContent;
8503
- e && Zi(e).then(() => {
8520
+ e && Qi(e).then(() => {
8504
8521
  a.textContent = "Success", setTimeout(() => {
8505
8522
  a.textContent = "Copy";
8506
8523
  }, 500);
@@ -8612,8 +8629,8 @@ let De = class extends ne {
8612
8629
  renderBotMessageFeedback(a) {
8613
8630
  return this.suppressFeedback || !b.setting.feedbackEnabled || this.index < b.setting.startFeedbackFromMessage * 2 ? null : u`
8614
8631
  <div class="cb-message-feedback-tools" part="feedback-wrapper">
8615
- <div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${me`${Y(Qa)}`}</div>
8616
- <div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${me`${Y(ei)}`}</div>
8632
+ <div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${me`${Y(ei)}`}</div>
8633
+ <div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${me`${Y(ti)}`}</div>
8617
8634
  </div>
8618
8635
  `;
8619
8636
  }
@@ -8694,7 +8711,7 @@ var kn = Object.defineProperty, _n = Object.getOwnPropertyDescriptor, Te = (a, e
8694
8711
  };
8695
8712
  const Oe = Je.noConflict();
8696
8713
  Oe.setLevel("info");
8697
- let ye = class extends ne {
8714
+ let ye = class extends re {
8698
8715
  constructor() {
8699
8716
  super(...arguments), this.messages = [], this.actions = [], this.form = null, this.suppressFeedback = !1, this.calendlyInjected = !1, this.activeCalendlyAction = -1, this.hubspotMeetingInjected = !1, this.activeHubspotMeetingAction = -1, this._lastScrollTop = 0, this._scrollThrottle = !1, this._userInterruptedAutoScroll = !1, this._userInterruptedMessagesLength = 0;
8700
8717
  }
@@ -9004,7 +9021,7 @@ let ye = class extends ne {
9004
9021
  `;
9005
9022
  }
9006
9023
  };
9007
- ye.styles = Os;
9024
+ ye.styles = Bs;
9008
9025
  Te([
9009
9026
  x({ type: Array })
9010
9027
  ], ye.prototype, "messages", 2);
@@ -9077,13 +9094,13 @@ const Sn = J`
9077
9094
  align-items: center;
9078
9095
  margin: 6px 2px;
9079
9096
  }
9080
- `, ti = '<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>', ai = '<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>', ii = '<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>', la = '<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>';
9097
+ `, ai = '<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>', ii = '<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>', si = '<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>', la = '<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>';
9081
9098
  var Cn = Object.defineProperty, An = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
9082
9099
  for (var s = i > 1 ? void 0 : i ? An(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9083
9100
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9084
9101
  return i && s && Cn(e, t, s), s;
9085
9102
  };
9086
- let ve = class extends ne {
9103
+ let ve = class extends re {
9087
9104
  constructor() {
9088
9105
  super(...arguments), this.store = new it(this, b), this.placeholder = "Type a message...", this.sendButtonLabel = "Send", this.enableFileUpload = !1, this.enableAudio = !1, this.value = "", this.loading = !1, this.disabled = !1, this.currentKey = "";
9089
9106
  }
@@ -9157,7 +9174,7 @@ let ve = class extends ne {
9157
9174
  ${W(
9158
9175
  b.setting.sendIconSvg !== "",
9159
9176
  () => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
9160
- () => u`<cb-icon part="user-input-send-icon" svg="${ti}"></cb-icon>`
9177
+ () => u`<cb-icon part="user-input-send-icon" svg="${ai}"></cb-icon>`
9161
9178
  )}
9162
9179
  </sl-button>
9163
9180
  ${W(
@@ -9167,7 +9184,7 @@ let ve = class extends ne {
9167
9184
  ${W(
9168
9185
  b.setting.attachIconSvg !== "",
9169
9186
  () => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
9170
- () => u`<cb-icon part="user-input-attach-icon" svg="${ai}"></cb-icon>`
9187
+ () => u`<cb-icon part="user-input-attach-icon" svg="${ii}"></cb-icon>`
9171
9188
  )}
9172
9189
  <!-- select file input -->
9173
9190
  <input type="file" id="file" name="file" class="file-input" />
@@ -9182,7 +9199,7 @@ let ve = class extends ne {
9182
9199
  ${W(
9183
9200
  b.webAudioStarted,
9184
9201
  () => u`<cb-icon svg="${la}"></cb-icon>`,
9185
- () => u`<cb-icon svg="${ii}"></cb-icon>`
9202
+ () => u`<cb-icon svg="${si}"></cb-icon>`
9186
9203
  )}
9187
9204
  </sl-button>
9188
9205
  `,
@@ -9291,7 +9308,7 @@ var En = Object.defineProperty, $n = Object.getOwnPropertyDescriptor, Ee = (a, e
9291
9308
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9292
9309
  return i && s && En(e, t, s), s;
9293
9310
  };
9294
- let we = class extends ne {
9311
+ let we = class extends re {
9295
9312
  constructor() {
9296
9313
  super(...arguments), this.store = new it(this, b), this.placeholder = "Type a message...", this.sendButtonLabel = "Send", this.enableFileUpload = !1, this.enableAudio = !1, this.value = "", this.loading = !1, this.disabled = !1, this.currentKey = "";
9297
9314
  }
@@ -9437,7 +9454,7 @@ let we = class extends ne {
9437
9454
  ${W(
9438
9455
  b.setting.sendIconSvg !== "",
9439
9456
  () => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
9440
- () => u`<cb-icon part="user-input-send-icon" svg="${ti}"></cb-icon>`
9457
+ () => u`<cb-icon part="user-input-send-icon" svg="${ai}"></cb-icon>`
9441
9458
  )}
9442
9459
  </sl-button>
9443
9460
  ${W(
@@ -9447,7 +9464,7 @@ let we = class extends ne {
9447
9464
  ${W(
9448
9465
  b.setting.attachIconSvg !== "",
9449
9466
  () => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
9450
- () => u`<cb-icon part="user-input-attach-icon" svg="${ai}"></cb-icon>`
9467
+ () => u`<cb-icon part="user-input-attach-icon" svg="${ii}"></cb-icon>`
9451
9468
  )}
9452
9469
  <!-- select file input -->
9453
9470
  <input type="file" id="file" name="file" class="file-input" />
@@ -9462,7 +9479,7 @@ let we = class extends ne {
9462
9479
  ${W(
9463
9480
  b.webAudioStarted,
9464
9481
  () => u`<cb-icon svg="${la}"></cb-icon>`,
9465
- () => u`<cb-icon svg="${ii}"></cb-icon>`
9482
+ () => u`<cb-icon svg="${si}"></cb-icon>`
9466
9483
  )}
9467
9484
  </sl-button>
9468
9485
  `,
@@ -9507,7 +9524,7 @@ Ee([
9507
9524
  we = Ee([
9508
9525
  K("cb-user-input-mm")
9509
9526
  ], we);
9510
- const si = '<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>', Pn = J`
9527
+ const ni = '<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>', Pn = J`
9511
9528
  ${ke}
9512
9529
 
9513
9530
  sl-dialog::part(base) {
@@ -9547,7 +9564,7 @@ var Ln = Object.defineProperty, Rn = Object.getOwnPropertyDescriptor, Ht = (a, e
9547
9564
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9548
9565
  return i && s && Ln(e, t, s), s;
9549
9566
  };
9550
- let ct = class extends ne {
9567
+ let ct = class extends re {
9551
9568
  constructor() {
9552
9569
  super(...arguments), this.open = !1, this.label = "Dialog", this.zindex = 100;
9553
9570
  }
@@ -9578,7 +9595,7 @@ let ct = class extends ne {
9578
9595
  <cb-icon
9579
9596
  color="default"
9580
9597
  style="font-size: 1em;"
9581
- svg="${si}"
9598
+ svg="${ni}"
9582
9599
  ></cb-icon>
9583
9600
  </sl-button>
9584
9601
  </header>
@@ -9604,12 +9621,12 @@ Ht([
9604
9621
  ct = Ht([
9605
9622
  K("cb-dialog")
9606
9623
  ], ct);
9607
- var zn = Object.defineProperty, On = Object.getOwnPropertyDescriptor, ni = (a, e, t, i) => {
9624
+ var zn = Object.defineProperty, On = Object.getOwnPropertyDescriptor, ri = (a, e, t, i) => {
9608
9625
  for (var s = i > 1 ? void 0 : i ? On(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9609
9626
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9610
9627
  return i && s && zn(e, t, s), s;
9611
9628
  };
9612
- let qt = class extends ne {
9629
+ let qt = class extends re {
9613
9630
  constructor() {
9614
9631
  super(...arguments), this.open = !1;
9615
9632
  }
@@ -9651,10 +9668,10 @@ qt.styles = J`
9651
9668
  z-index: 1000;
9652
9669
  }
9653
9670
  `;
9654
- ni([
9671
+ ri([
9655
9672
  x({ type: Boolean })
9656
9673
  ], qt.prototype, "open", 2);
9657
- qt = ni([
9674
+ qt = ri([
9658
9675
  K("cb-clear-message-dialog")
9659
9676
  ], qt);
9660
9677
  const Bn = J`
@@ -9722,7 +9739,7 @@ var qn = Object.defineProperty, Dn = Object.getOwnPropertyDescriptor, dt = (a, e
9722
9739
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9723
9740
  return i && s && qn(e, t, s), s;
9724
9741
  };
9725
- let Xe = class extends ne {
9742
+ let Xe = class extends re {
9726
9743
  constructor() {
9727
9744
  super(...arguments), this.open = !1, this.clearMessageDialogOpen = !1, this.customRequest = !1;
9728
9745
  }
@@ -9974,12 +9991,12 @@ const Fn = J`
9974
9991
  margin: 4px 4px 0px 0px;
9975
9992
  }
9976
9993
  `;
9977
- var jn = Object.defineProperty, Hn = Object.getOwnPropertyDescriptor, ri = (a, e, t, i) => {
9994
+ var jn = Object.defineProperty, Hn = Object.getOwnPropertyDescriptor, oi = (a, e, t, i) => {
9978
9995
  for (var s = i > 1 ? void 0 : i ? Hn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9979
9996
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9980
9997
  return i && s && jn(e, t, s), s;
9981
9998
  };
9982
- let Dt = class extends ne {
9999
+ let Dt = class extends re {
9983
10000
  constructor() {
9984
10001
  super(...arguments), this.store = new it(this, b), this.open = !1;
9985
10002
  }
@@ -10030,7 +10047,7 @@ let Dt = class extends ne {
10030
10047
  )}
10031
10048
  </sl-button>
10032
10049
  <div class="cb-engage-popup">
10033
- <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${me`${Y(si)}`}</div>
10050
+ <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${me`${Y(ni)}`}</div>
10034
10051
  <div class="cb-engage-popup-content">
10035
10052
  ${this.renderPopupLogo()}
10036
10053
  <div>${b.setting.engageMessage}</div>
@@ -10042,16 +10059,16 @@ let Dt = class extends ne {
10042
10059
  }
10043
10060
  };
10044
10061
  Dt.styles = Fn;
10045
- ri([
10062
+ oi([
10046
10063
  x({ type: Boolean })
10047
10064
  ], Dt.prototype, "open", 2);
10048
- Dt = ri([
10065
+ Dt = oi([
10049
10066
  K("cb-anchor")
10050
10067
  ], Dt);
10051
10068
  const Vn = J`
10052
10069
  ${ke}
10053
- `, Oa = '<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>', Nn = '<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>', Wn = '<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>';
10054
- var Gn = Object.defineProperty, Xn = Object.getOwnPropertyDescriptor, oi = (a, e, t, i) => {
10070
+ `, Oa = '<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>', Nn = '<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>', Un = '<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>', Wn = '<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>';
10071
+ var Gn = Object.defineProperty, Xn = Object.getOwnPropertyDescriptor, ci = (a, e, t, i) => {
10055
10072
  for (var s = i > 1 ? void 0 : i ? Xn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10056
10073
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10057
10074
  return i && s && Gn(e, t, s), s;
@@ -10067,18 +10084,18 @@ const Ba = {
10067
10084
  },
10068
10085
  warning: {
10069
10086
  variant: "warning",
10070
- icon: Un
10087
+ icon: Nn
10071
10088
  },
10072
10089
  success: {
10073
10090
  variant: "success",
10074
- icon: Nn
10091
+ icon: Un
10075
10092
  },
10076
10093
  info: {
10077
10094
  variant: "primary",
10078
10095
  icon: Wn
10079
10096
  }
10080
10097
  };
10081
- let Ft = class extends ne {
10098
+ let Ft = class extends re {
10082
10099
  constructor() {
10083
10100
  super(...arguments), this.status = "info";
10084
10101
  }
@@ -10088,10 +10105,10 @@ let Ft = class extends ne {
10088
10105
  }
10089
10106
  };
10090
10107
  Ft.styles = Wa;
10091
- oi([
10108
+ ci([
10092
10109
  x({ type: String })
10093
10110
  ], Ft.prototype, "status", 2);
10094
- Ft = oi([
10111
+ Ft = ci([
10095
10112
  K("cb-status-icon")
10096
10113
  ], Ft);
10097
10114
  var Yn = Object.getOwnPropertyDescriptor, Jn = (a, e, t, i) => {
@@ -10099,7 +10116,7 @@ var Yn = Object.getOwnPropertyDescriptor, Jn = (a, e, t, i) => {
10099
10116
  (o = a[r]) && (s = o(s) || s);
10100
10117
  return s;
10101
10118
  };
10102
- let Qt = class extends ne {
10119
+ let Qt = class extends re {
10103
10120
  render() {
10104
10121
  return u` <sl-alert variant="danger" open>
10105
10122
  <cb-status-icon status="error" slot="icon"></cb-status-icon>
@@ -10209,7 +10226,7 @@ var Zn = Object.defineProperty, Qn = Object.getOwnPropertyDescriptor, ft = (a, e
10209
10226
  return i && s && Zn(e, t, s), s;
10210
10227
  };
10211
10228
  const qa = Je.noConflict(), er = '<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>';
10212
- let Ye = class extends ne {
10229
+ let Ye = class extends re {
10213
10230
  constructor() {
10214
10231
  super(...arguments), this.store = new it(this, b), this.zindex = 100;
10215
10232
  }
@@ -10242,7 +10259,7 @@ let Ye = class extends ne {
10242
10259
  b.feedbackScore = 0;
10243
10260
  }}"
10244
10261
  >
10245
- ${me`${Y(ei)}`}
10262
+ ${me`${Y(ti)}`}
10246
10263
  </div>
10247
10264
  <sl-rating id="cb-feedback-rating-el" class="cb-feedback-rating" @sl-change="${this._ratingChangeHandler}" label="Rating" precision="1" .value=${b.feedbackScore}></sl-rating>
10248
10265
  <div
@@ -10251,7 +10268,7 @@ let Ye = class extends ne {
10251
10268
  b.feedbackScore = 5;
10252
10269
  }}"
10253
10270
  >
10254
- ${me`${Y(Qa)}`}
10271
+ ${me`${Y(ei)}`}
10255
10272
  </div>
10256
10273
  </div>
10257
10274
  <div style="display: flex">
@@ -10599,7 +10616,7 @@ class ar extends HTMLElement {
10599
10616
  }
10600
10617
  customElements.get("volume-visualizer") || customElements.define("volume-visualizer", ar);
10601
10618
  const da = 1, Da = 2;
10602
- class ci extends HTMLElement {
10619
+ class li extends HTMLElement {
10603
10620
  constructor() {
10604
10621
  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();
10605
10622
  }
@@ -10681,7 +10698,7 @@ class ci extends HTMLElement {
10681
10698
  this._stop(), this._analyserInput = null, this._analyserOutput = null;
10682
10699
  }
10683
10700
  }
10684
- class ir extends ci {
10701
+ class ir extends li {
10685
10702
  constructor() {
10686
10703
  super(), this._ribbons = [], this._lastTime = 0, this._ribbons.push(
10687
10704
  new It(
@@ -10784,7 +10801,7 @@ class It {
10784
10801
  }
10785
10802
  }
10786
10803
  }
10787
- class sr extends ci {
10804
+ class sr extends li {
10788
10805
  constructor() {
10789
10806
  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;
10790
10807
  }
@@ -10841,12 +10858,12 @@ var rr = Object.getOwnPropertyDescriptor, or = (a, e, t, i) => {
10841
10858
  };
10842
10859
  const bt = Je.noConflict();
10843
10860
  bt.setLevel("info");
10844
- let ea = class extends ne {
10861
+ let ea = class extends re {
10845
10862
  constructor() {
10846
10863
  super(...arguments), this.store = new it(this, b), this.unsubscribeTypingActive = b.subscribe(
10847
10864
  this._handleTypingActiveChanged.bind(this),
10848
10865
  ["typingActive"]
10849
- ), this.volumeVisualizerRef = qi(), this.volumeVisualizerInitialized = !1;
10866
+ ), this.volumeVisualizerRef = Di(), this.volumeVisualizerInitialized = !1;
10850
10867
  }
10851
10868
  /*
10852
10869
  createRenderRoot() {
@@ -10954,7 +10971,7 @@ class ta extends Error {
10954
10971
  super(`Request failed with ${f}: ${t.method} ${t.url}`), this.name = "HTTPError", this.response = e, this.request = t, this.options = i;
10955
10972
  }
10956
10973
  }
10957
- class li extends Error {
10974
+ class di extends Error {
10958
10975
  name = "NonError";
10959
10976
  value;
10960
10977
  constructor(e) {
@@ -10972,7 +10989,7 @@ class Wt extends Error {
10972
10989
  code;
10973
10990
  customRequest;
10974
10991
  constructor(e) {
10975
- const t = e?.cause ? e.cause instanceof Error ? e.cause : new li(e.cause) : void 0;
10992
+ const t = e?.cause ? e.cause instanceof Error ? e.cause : new di(e.cause) : void 0;
10976
10993
  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;
10977
10994
  }
10978
10995
  }
@@ -10995,7 +11012,7 @@ const Fa = (() => {
10995
11012
  throw s;
10996
11013
  }
10997
11014
  return a && !e;
10998
- })(), cr = typeof globalThis.AbortController == "function", di = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", lr = typeof globalThis.ReadableStream == "function", dr = typeof globalThis.FormData == "function", fi = ["get", "post", "put", "patch", "head", "delete"], fr = {
11015
+ })(), cr = typeof globalThis.AbortController == "function", fi = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", lr = typeof globalThis.ReadableStream == "function", dr = typeof globalThis.FormData == "function", hi = ["get", "post", "put", "patch", "head", "delete"], fr = {
10999
11016
  json: "application/json",
11000
11017
  text: "text/*",
11001
11018
  formData: "multipart/form-data",
@@ -11004,14 +11021,14 @@ const Fa = (() => {
11004
11021
  // Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).
11005
11022
  // We still feature-check at runtime before exposing the shortcut.
11006
11023
  bytes: "*/*"
11007
- }, Gt = 2147483647, hr = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, hi = Symbol("stop");
11008
- class bi {
11024
+ }, Gt = 2147483647, hr = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, bi = Symbol("stop");
11025
+ class ui {
11009
11026
  options;
11010
11027
  constructor(e) {
11011
11028
  this.options = e;
11012
11029
  }
11013
11030
  }
11014
- const br = (a) => new bi(a), ur = {
11031
+ const br = (a) => new ui(a), ur = {
11015
11032
  json: !0,
11016
11033
  parseJson: !0,
11017
11034
  stringifyJson: !0,
@@ -11070,7 +11087,7 @@ const br = (a) => new bi(a), ur = {
11070
11087
  return 0;
11071
11088
  }
11072
11089
  return 0;
11073
- }, ui = (a, e, t) => {
11090
+ }, pi = (a, e, t) => {
11074
11091
  let i, s = 0;
11075
11092
  return a.pipeThrough(new TransformStream({
11076
11093
  transform(r, o) {
@@ -11095,7 +11112,7 @@ const br = (a) => new bi(a), ur = {
11095
11112
  headers: a.headers
11096
11113
  });
11097
11114
  const t = Math.max(0, Number(a.headers.get("content-length")) || 0);
11098
- return new Response(ui(a.body, t, e), {
11115
+ return new Response(pi(a.body, t, e), {
11099
11116
  status: a.status,
11100
11117
  statusText: a.statusText,
11101
11118
  headers: a.headers
@@ -11107,14 +11124,14 @@ const br = (a) => new bi(a), ur = {
11107
11124
  return new Request(a, {
11108
11125
  // @ts-expect-error - Types are outdated.
11109
11126
  duplex: "half",
11110
- body: ui(a.body, i, e)
11127
+ body: pi(a.body, i, e)
11111
11128
  });
11112
11129
  }, Qe = (a) => a !== null && typeof a == "object", Et = (...a) => {
11113
11130
  for (const e of a)
11114
11131
  if ((!Qe(e) || Array.isArray(e)) && e !== void 0)
11115
11132
  throw new TypeError("The `options` argument must be an object");
11116
11133
  return fa({}, ...a);
11117
- }, pi = (a = {}, e = {}) => {
11134
+ }, gi = (a = {}, e = {}) => {
11118
11135
  const t = new globalThis.Headers(a), i = e instanceof globalThis.Headers, s = new globalThis.Headers(e);
11119
11136
  for (const [r, o] of s.entries())
11120
11137
  i && o === "undefined" || o === void 0 ? t.delete(r) : t.set(r, o);
@@ -11123,7 +11140,7 @@ const br = (a) => new bi(a), ur = {
11123
11140
  function $t(a, e, t) {
11124
11141
  return Object.hasOwn(e, t) && e[t] === void 0 ? [] : fa(a[t] ?? [], e[t] ?? []);
11125
11142
  }
11126
- const gi = (a = {}, e = {}) => ({
11143
+ const mi = (a = {}, e = {}) => ({
11127
11144
  beforeRequest: $t(a, e, "beforeRequest"),
11128
11145
  beforeRetry: $t(a, e, "beforeRetry"),
11129
11146
  afterResponse: $t(a, e, "afterResponse"),
@@ -11177,10 +11194,10 @@ const gi = (a = {}, e = {}) => ({
11177
11194
  }
11178
11195
  Qe(p) && f in e && (p = fa(e[f], p)), e = { ...e, [f]: p };
11179
11196
  }
11180
- Qe(o.hooks) && (i = gi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = pi(t, o.headers), e.headers = t);
11197
+ Qe(o.hooks) && (i = mi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = gi(t, o.headers), e.headers = t);
11181
11198
  }
11182
- return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : di ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
11183
- }, xr = (a) => fi.includes(a) ? a.toUpperCase() : a, kr = ["get", "put", "head", "delete", "options", "trace"], _r = [408, 413, 429, 500, 502, 503, 504], Sr = [413, 429, 503], ja = {
11199
+ return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : fi ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
11200
+ }, xr = (a) => hi.includes(a) ? a.toUpperCase() : a, kr = ["get", "put", "head", "delete", "options", "trace"], _r = [408, 413, 429, 500, 502, 503, 504], Sr = [413, 429, 503], ja = {
11184
11201
  limit: 2,
11185
11202
  methods: kr,
11186
11203
  statusCodes: _r,
@@ -11253,7 +11270,7 @@ class vt {
11253
11270
  let o = await i.#p();
11254
11271
  for (const f of i.#e.hooks.afterResponse) {
11255
11272
  const p = i.#d(o.clone()), v = await f(i.request, i.#o(), p, { retryCount: i.#a });
11256
- if (v instanceof globalThis.Response && (o = v), v instanceof bi)
11273
+ if (v instanceof globalThis.Response && (o = v), v instanceof ui)
11257
11274
  throw await Promise.all([
11258
11275
  p.body?.cancel(),
11259
11276
  o.body?.cancel()
@@ -11308,8 +11325,8 @@ class vt {
11308
11325
  constructor(e, t = {}) {
11309
11326
  if (this.#t = e, this.#e = {
11310
11327
  ...t,
11311
- headers: pi(this.#t.headers, t.headers),
11312
- hooks: gi({
11328
+ headers: gi(this.#t.headers, t.headers),
11329
+ hooks: mi({
11313
11330
  beforeRequest: [],
11314
11331
  beforeRetry: [],
11315
11332
  beforeError: [],
@@ -11330,7 +11347,7 @@ class vt {
11330
11347
  throw new Error("`input` must not begin with a slash when using `prefixUrl`");
11331
11348
  this.#e.prefixUrl.endsWith("/") || (this.#e.prefixUrl += "/"), this.#t = this.#e.prefixUrl + this.#t;
11332
11349
  }
11333
- cr && di && (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), Fa && (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"));
11350
+ cr && fi && (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), Fa && (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"));
11334
11351
  const i = t.headers && new globalThis.Headers(t.headers).has("content-type");
11335
11352
  if (this.#t instanceof globalThis.Request && (dr && 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), Ir(this.#e.searchParams)) {
11336
11353
  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);
@@ -11352,7 +11369,7 @@ class vt {
11352
11369
  async #u(e) {
11353
11370
  if (this.#a++, this.#a > this.#e.retry.limit)
11354
11371
  throw e;
11355
- const t = e instanceof Error ? e : new li(e);
11372
+ const t = e instanceof Error ? e : new di(e);
11356
11373
  if (t instanceof Wt)
11357
11374
  return t.customDelay ?? this.#c();
11358
11375
  if (!this.#e.retry.methods.includes(this.request.method.toLowerCase()))
@@ -11408,7 +11425,7 @@ class vt {
11408
11425
  }
11409
11426
  if (r instanceof globalThis.Response)
11410
11427
  return r;
11411
- if (r === hi)
11428
+ if (r === bi)
11412
11429
  return;
11413
11430
  }
11414
11431
  return this.#f(e);
@@ -11444,9 +11461,9 @@ class vt {
11444
11461
  }
11445
11462
  const ia = (a) => {
11446
11463
  const e = (t, i) => vt.create(t, Et(a, i));
11447
- for (const t of fi)
11464
+ for (const t of hi)
11448
11465
  e[t] = (i, s) => vt.create(i, Et(a, s, { method: t }));
11449
- return e.create = (t) => ia(Et(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), ia(Et(a, t))), e.stop = hi, e.retry = br, e;
11466
+ return e.create = (t) => ia(Et(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), ia(Et(a, t))), e.stop = bi, e.retry = br, e;
11450
11467
  }, Pr = ia();
11451
11468
  Pr.extend({
11452
11469
  hooks: {
@@ -11477,14 +11494,14 @@ async function Lr(a, e) {
11477
11494
  }).text()
11478
11495
  );
11479
11496
  }
11480
- var Rr = Object.defineProperty, zr = Object.getOwnPropertyDescriptor, U = (a, e, t, i) => {
11497
+ var Rr = Object.defineProperty, zr = Object.getOwnPropertyDescriptor, N = (a, e, t, i) => {
11481
11498
  for (var s = i > 1 ? void 0 : i ? zr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
11482
11499
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
11483
11500
  return i && s && Rr(e, t, s), s;
11484
11501
  };
11485
11502
  const Be = Je.noConflict();
11486
11503
  Be.setLevel("info");
11487
- let H = class extends ne {
11504
+ let H = class extends re {
11488
11505
  constructor() {
11489
11506
  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">
11490
11507
  <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;"/>
@@ -11548,7 +11565,7 @@ let H = class extends ne {
11548
11565
  }
11549
11566
  render() {
11550
11567
  return b.disabled && !this.alwaysOpen ? (Be.info("Bot is disabled until settings are loaded"), null) : u`
11551
- <div class="cb-wrapper${b.open ? " cb-open" : ""}" part="wrapper${b.open ? " open" : ""}" exportparts="wrapper${b.open ? " open" : ""}">
11568
+ <div class="cb-wrapper${b.open ? " cb-open" : ""}" part="wrapper${b.open ? " open" : ""}" exportparts="new-conversation-wrapper new-conversation-button wrapper${b.open ? " open" : ""}">
11552
11569
  <cb-header title="${this.name}" exportparts="header, header-logo, header-title, header-close"></cb-header>
11553
11570
  <cb-message-list
11554
11571
  .messages=${b.messages}
@@ -11556,6 +11573,15 @@ let H = class extends ne {
11556
11573
  .form=${b.form}
11557
11574
  exportparts="bot-message-list, disclaimer-message, bot-message, cb-message, bot-message-content, user-message-content, user-avatar, assistant-avatar, feedback-wrapper,feedback-up,feedback-down,form, form-title, form-input, form-submit"
11558
11575
  ></cb-message-list>
11576
+ ${W(
11577
+ b.showNewConversation,
11578
+ () => u`
11579
+ <div class="cb-new-conversation-wrapper" part="new-conversation-wrapper">
11580
+ <button type="button" class="card-btn info" part="new-conversation-button" @click=${this.clearConversation}>Start New Conversation</button>
11581
+ </div>
11582
+ `,
11583
+ () => u``
11584
+ )}
11559
11585
  <cb-audio-controls exportparts="audio-controls-wrapper, audio-controls, audio-mute-button, audio-unmute-button, audio-end-button, audio-controls-viz"></cb-audio-controls>
11560
11586
  ${this.renderUserInput()} ${this.renderFeedbackDialog()}
11561
11587
  </div>
@@ -11736,6 +11762,11 @@ let H = class extends ne {
11736
11762
  };
11737
11763
  return this._processSendMessage(e);
11738
11764
  }
11765
+ // [sv2] for testing only
11766
+ processAgentDisconnected(a) {
11767
+ b.handleAgentDisconnected(a).catch((e) => {
11768
+ });
11769
+ }
11739
11770
  _processSendMessage(a) {
11740
11771
  if (!a.data.text || typeof a.data.text != "string" || a.data.text.trim() === "") {
11741
11772
  console.log("_processSendMessage: input text is empty, ignored", a);
@@ -11787,95 +11818,95 @@ let H = class extends ne {
11787
11818
  this._messageList?.scrollToBottom();
11788
11819
  }
11789
11820
  };
11790
- H.styles = Ni;
11791
- U([
11821
+ H.styles = [Wi, Ja];
11822
+ N([
11792
11823
  x({ type: Boolean, attribute: "display-license" })
11793
11824
  ], H.prototype, "displayLicense", 2);
11794
- U([
11825
+ N([
11795
11826
  x({ type: String, attribute: "name" })
11796
11827
  ], H.prototype, "name", 2);
11797
- U([
11828
+ N([
11798
11829
  x({ type: String, attribute: "org-id" })
11799
11830
  ], H.prototype, "orgId", 2);
11800
- U([
11831
+ N([
11801
11832
  x({ type: String, attribute: "bot-id" })
11802
11833
  ], H.prototype, "botId", 2);
11803
- U([
11834
+ N([
11804
11835
  x({ type: String, attribute: "url" })
11805
11836
  ], H.prototype, "url", 2);
11806
- U([
11837
+ N([
11807
11838
  x({ type: String, attribute: "logo-url" })
11808
11839
  ], H.prototype, "logoUrl", 2);
11809
- U([
11840
+ N([
11810
11841
  x({ type: String, attribute: "logo-svg" })
11811
11842
  ], H.prototype, "logoSvg", 2);
11812
- U([
11843
+ N([
11813
11844
  x({ type: String, attribute: "close-svg" })
11814
11845
  ], H.prototype, "closeSvg", 2);
11815
- U([
11846
+ N([
11816
11847
  x({ type: String, attribute: "popup-logo-svg" })
11817
11848
  ], H.prototype, "popupLogoSvg", 2);
11818
- U([
11849
+ N([
11819
11850
  x({ type: String, attribute: "popup-logo-url" })
11820
11851
  ], H.prototype, "popupLogoUrl", 2);
11821
- U([
11852
+ N([
11822
11853
  x({ type: String, attribute: "bot-icon-svg" })
11823
11854
  ], H.prototype, "botIconSvg", 2);
11824
- U([
11855
+ N([
11825
11856
  x({ type: String, attribute: "user-icon-svg" })
11826
11857
  ], H.prototype, "userIconSvg", 2);
11827
- U([
11858
+ N([
11828
11859
  x({ type: String, attribute: "system-icon-svg" })
11829
11860
  ], H.prototype, "systemIconSvg", 2);
11830
- U([
11861
+ N([
11831
11862
  x({ type: String, attribute: "agent-icon-svg" })
11832
11863
  ], H.prototype, "agentIconSvg", 2);
11833
- U([
11864
+ N([
11834
11865
  x({ type: String, attribute: "anchor-open-svg" })
11835
11866
  ], H.prototype, "anchorOpenSvg", 2);
11836
- U([
11867
+ N([
11837
11868
  x({ type: String, attribute: "anchor-close-svg" })
11838
11869
  ], H.prototype, "anchorCloseSvg", 2);
11839
- U([
11870
+ N([
11840
11871
  x({ type: String, attribute: "send-icon-svg" })
11841
11872
  ], H.prototype, "sendIconSvg", 2);
11842
- U([
11873
+ N([
11843
11874
  x({ type: String, attribute: "attach-icon-svg" })
11844
11875
  ], H.prototype, "attachIconSvg", 2);
11845
- U([
11876
+ N([
11846
11877
  x({ type: Boolean, attribute: "stream" })
11847
11878
  ], H.prototype, "stream", 2);
11848
- U([
11879
+ N([
11849
11880
  x({ type: Boolean, attribute: "custom-request" })
11850
11881
  ], H.prototype, "customRequest", 2);
11851
- U([
11882
+ N([
11852
11883
  x({ type: Boolean, attribute: "enable-file-upload" })
11853
11884
  ], H.prototype, "enableFileUpload", 2);
11854
- U([
11885
+ N([
11855
11886
  x({ type: String, attribute: "upload-file-url" })
11856
11887
  ], H.prototype, "uploadFileUrl", 2);
11857
- U([
11888
+ N([
11858
11889
  x({ type: Boolean, attribute: "open" })
11859
11890
  ], H.prototype, "open", 2);
11860
- U([
11891
+ N([
11861
11892
  x({ type: Boolean, attribute: "always-open" })
11862
11893
  ], H.prototype, "alwaysOpen", 2);
11863
- U([
11894
+ N([
11864
11895
  x({ type: String, attribute: "prefilled-form-fields" })
11865
11896
  ], H.prototype, "prefilledFormFields", 2);
11866
- U([
11897
+ N([
11867
11898
  x({ type: Boolean })
11868
11899
  ], H.prototype, "loading", 2);
11869
- U([
11900
+ N([
11870
11901
  x({ type: Boolean })
11871
11902
  ], H.prototype, "showSetting", 2);
11872
- U([
11903
+ N([
11873
11904
  x({ type: Boolean })
11874
11905
  ], H.prototype, "showAuthAlert", 2);
11875
- U([
11906
+ N([
11876
11907
  xe("cb-message-list")
11877
11908
  ], H.prototype, "_messageList", 2);
11878
- H = U([
11909
+ H = N([
11879
11910
  K("enegelai-bot")
11880
11911
  ], H);
11881
11912
  export {