@vindral/web-sdk 4.3.1 → 4.3.2
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/{B9WEkxkT.js → BsJtUY1Z.js} +2 -2
- package/{BNxcJNN7.js → C8g5RSrs.js} +1 -1
- package/{DtpcQ7ay.js → CLJilV9Y.js} +1 -1
- package/{Dfj0VbOY.js → DZobqUqG.js} +244 -154
- package/core.d.ts +3 -1
- package/core.js +1 -1
- package/legacy.d.ts +3 -1
- package/legacy.es.js +380 -286
- package/legacy.umd.js +12 -12
- package/package.json +1 -1
- package/player.d.ts +3 -1
- package/player.js +2 -2
- package/react.d.ts +3 -1
- package/vindral-player-component.js +2 -2
package/legacy.es.js
CHANGED
|
@@ -632,11 +632,11 @@ var Ue, We, Ge, Ke, qe, Je, Ye, Xe, Ze, Qe, $e, et, tt, nt, rt = t((() => {
|
|
|
632
632
|
})), It, Lt = t((() => {
|
|
633
633
|
ce(), Ft(), m(), It = class {
|
|
634
634
|
constructor(e = 10) {
|
|
635
|
-
p(this, "rates", void 0), p(this, "_total", 0), p(this, "accumulatedValues", 0), p(this, "lastTickTime",
|
|
635
|
+
p(this, "rates", void 0), p(this, "_total", 0), p(this, "accumulatedValues", 0), p(this, "lastTickTime", performance.now()), p(this, "add", (e) => {
|
|
636
636
|
this.accumulatedValues += e, this._total += e;
|
|
637
637
|
}), p(this, "tick", () => {
|
|
638
|
-
let e = this.accumulatedValues / ((
|
|
639
|
-
this.rates.push(
|
|
638
|
+
let e = performance.now(), t = this.accumulatedValues / ((e - this.lastTickTime) / 1e3);
|
|
639
|
+
this.rates.push(t), this.accumulatedValues = 0, this.lastTickTime = e;
|
|
640
640
|
}), this.rates = new C(e);
|
|
641
641
|
}
|
|
642
642
|
get total() {
|
|
@@ -1004,18 +1004,18 @@ var Mn = t((() => {
|
|
|
1004
1004
|
}
|
|
1005
1005
|
}, Vn = Hn, p(Hn, "create", () => new Vn());
|
|
1006
1006
|
})), Wn, Gn, Kn, qn, Jn = t((() => {
|
|
1007
|
-
Wn = (e, t =
|
|
1007
|
+
Wn = (e, t = performance.now()) => {
|
|
1008
1008
|
let n = e.length;
|
|
1009
1009
|
if (n > 0) {
|
|
1010
1010
|
let r = e[n - 1];
|
|
1011
1011
|
r.end || (r.end = t);
|
|
1012
1012
|
}
|
|
1013
|
-
}, Gn = (e, t =
|
|
1014
|
-
Wn(e), e.push({ start: t });
|
|
1013
|
+
}, Gn = (e, t = performance.now()) => {
|
|
1014
|
+
Wn(e, t), e.push({ start: t });
|
|
1015
1015
|
}, Kn = (e) => e.reduce((e, t) => {
|
|
1016
1016
|
var n;
|
|
1017
|
-
return e + (((n = t.end) == null ?
|
|
1018
|
-
}, 0), qn = (e, t, n =
|
|
1017
|
+
return e + (((n = t.end) == null ? performance.now() : n) - t.start);
|
|
1018
|
+
}, 0), qn = (e, t, n = performance.now()) => e.reduce((e, r) => {
|
|
1019
1019
|
var i;
|
|
1020
1020
|
let a = Math.max(n - t, r.start), o = (i = r.end) == null ? n : i;
|
|
1021
1021
|
return Math.max(0, o - a) + e;
|
|
@@ -4299,10 +4299,10 @@ var al = class extends Ut {
|
|
|
4299
4299
|
})), p(this, "onBufferStateChange", () => {
|
|
4300
4300
|
this.emit("buffer state", this.getBufferState());
|
|
4301
4301
|
}), p(this, "onSeekStart", () => {
|
|
4302
|
-
this.seekStartTime =
|
|
4302
|
+
this.seekStartTime = performance.now();
|
|
4303
4303
|
}), p(this, "onSeekEnd", () => {
|
|
4304
4304
|
if (!this.seekStartTime) return;
|
|
4305
|
-
let e =
|
|
4305
|
+
let e = performance.now() - this.seekStartTime;
|
|
4306
4306
|
this.seekTimes.push(e), this._totalSeekTime += e, this.seekStartTime = void 0;
|
|
4307
4307
|
}), this.logger = i, this._userProvidedMuted = n, this.element = document.createElement(e), this.element instanceof HTMLVideoElement && (this.element.playsInline = !0), this.element.controls = !1, this.element.autoplay = t, this.element.muted = n, r !== void 0 && (this.element.volume = r), this.element.style.display = "block", this.element.style.width = "100%", this.element.disableRemotePlayback = !0, this.element.setAttribute("poster", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg=="), this.onPlayPause(), setTimeout(() => {
|
|
4308
4308
|
!this.element || !a || this.element.setAttribute("poster", a);
|
|
@@ -4389,7 +4389,7 @@ var sl, cl = .15, ll = .2, ul = .4, dl = .5, fl = .6, pl = 15, ml = {
|
|
|
4389
4389
|
maxCooldownRatio: 2
|
|
4390
4390
|
}, hl = (e) => (t) => t > e, gl = class {
|
|
4391
4391
|
constructor(e, t, n, r) {
|
|
4392
|
-
p(this, "qualityOfServiceSource", void 0), p(this, "config", void 0), p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "isSuspended", !1), p(this, "lastAdaptTime",
|
|
4392
|
+
p(this, "qualityOfServiceSource", void 0), p(this, "config", void 0), p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "isSuspended", !1), p(this, "lastAdaptTime", performance.now()), p(this, "isEnabled", !0), p(this, "load", () => {
|
|
4393
4393
|
this.emitter.on("buffer state", this.onBufferState), this.emitter.on("adapted level", this.onAdaptedLevel);
|
|
4394
4394
|
}), p(this, "unload", () => {
|
|
4395
4395
|
this.emitter.off("buffer state", this.onBufferState), this.emitter.off("adapted level", this.onAdaptedLevel);
|
|
@@ -4398,12 +4398,12 @@ var sl, cl = .15, ll = .2, ul = .4, dl = .5, fl = .6, pl = 15, ml = {
|
|
|
4398
4398
|
}), p(this, "unsuspend", () => {
|
|
4399
4399
|
this.reset(), this.isSuspended = !1;
|
|
4400
4400
|
}), p(this, "reset", (e = 0) => {
|
|
4401
|
-
this.lastAdaptTime =
|
|
4401
|
+
this.lastAdaptTime = performance.now() + e;
|
|
4402
4402
|
}), p(this, "getStatistics", () => ({ isAbrEnabled: this.isEnabled })), p(this, "isQoSOk", (e) => {
|
|
4403
4403
|
let t = this.qualityOfServiceSource.getLevelStats(e), { upgradesFromLevel: n, downgradesFromLevel: r } = t == null ? {
|
|
4404
4404
|
upgradesFromLevel: [],
|
|
4405
4405
|
downgradesFromLevel: []
|
|
4406
|
-
} : t, i =
|
|
4406
|
+
} : t, i = performance.now() - this.config.maxDowngradeLookbackMs, a = r.filter(hl(i)).length, o = n.filter(hl(i)).length;
|
|
4407
4407
|
if (a - o > this.config.maxRecentDowngradesCount) return this.logger.debug("Recent downgrades count is over maximum", {
|
|
4408
4408
|
downgrades: a - o,
|
|
4409
4409
|
maxRecentDowngradesCount: this.config.maxRecentDowngradesCount
|
|
@@ -4417,13 +4417,13 @@ var sl, cl = .15, ll = .2, ul = .4, dl = .5, fl = .6, pl = 15, ml = {
|
|
|
4417
4417
|
recentDowngrades: a,
|
|
4418
4418
|
timeSpentPlayingInAtLeastLevelRatio: s
|
|
4419
4419
|
}), !1;
|
|
4420
|
-
let l = Math.max(0, r.length - n.length - c), u =
|
|
4420
|
+
let l = Math.max(0, r.length - n.length - c), u = performance.now() - this.config.maxDowngradeLookbackMs * l, d = r.filter(hl(u)).length;
|
|
4421
4421
|
return d && l > this.config.maxCooldownRatio ? (this.logger.debug("Too many downgrades compared to time spent playing", {
|
|
4422
4422
|
downgradesWithinCooldownTime: d,
|
|
4423
4423
|
cooldownRatio: l
|
|
4424
4424
|
}), !1) : !0;
|
|
4425
4425
|
}), p(this, "onBufferState", (e) => {
|
|
4426
|
-
if (!this.isEnabled || this.isSuspended || this.lastAdaptTime + this.config.cooldownTime >
|
|
4426
|
+
if (!this.isEnabled || this.isSuspended || this.lastAdaptTime + this.config.cooldownTime > performance.now()) return;
|
|
4427
4427
|
let { bufferFullness: t, general: n } = this.qualityOfServiceSource.getMetrics(), r = this.qualityOfServiceSource.getBufferFullnessRegression();
|
|
4428
4428
|
if (!r) return;
|
|
4429
4429
|
let i = 10 * 1e3, a = 30 * 1e3, { slope: o } = r, s = r.predict(pl), c = o < 0, l = r.predict(pl) < ul && r.slope < 0, u = r.predict(pl) > fl, d = this.qualityOfServiceSource.timeSpentBufferingLast(a), f = this.qualityOfServiceSource.timeSpentActiveLast(a), p = this.qualityOfServiceSource.bufferingEventsLast(a), m = f > 0 ? d / f : 0, h = this.qualityOfServiceSource.getTargetBufferTime();
|
|
@@ -4465,7 +4465,7 @@ var _l, vl = {
|
|
|
4465
4465
|
maxBufferingRatio: { last30Seconds: .15 }
|
|
4466
4466
|
}, yl = class e {
|
|
4467
4467
|
constructor(t, n, r, i, a) {
|
|
4468
|
-
p(this, "qualityOfServiceSource", void 0), p(this, "targetBufferTimeTarget", void 0), p(this, "config", void 0), p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "isSuspended", !1), p(this, "lastIncreaseTime",
|
|
4468
|
+
p(this, "qualityOfServiceSource", void 0), p(this, "targetBufferTimeTarget", void 0), p(this, "config", void 0), p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "isSuspended", !1), p(this, "lastIncreaseTime", performance.now()), p(this, "bufferTimeAdjustmentCount", 0), p(this, "load", () => {
|
|
4469
4469
|
this.emitter.on("buffer state", this.onBufferState);
|
|
4470
4470
|
}), p(this, "unload", () => {
|
|
4471
4471
|
this.emitter.off("buffer state", this.onBufferState);
|
|
@@ -4474,10 +4474,10 @@ var _l, vl = {
|
|
|
4474
4474
|
}), p(this, "unsuspend", () => {
|
|
4475
4475
|
this.reset(), this.isSuspended = !1;
|
|
4476
4476
|
}), p(this, "reset", () => {
|
|
4477
|
-
this.lastIncreaseTime =
|
|
4477
|
+
this.lastIncreaseTime = performance.now();
|
|
4478
4478
|
}), p(this, "getStatistics", () => ({ bufferTimeAdjustmentCount: this.bufferTimeAdjustmentCount })), p(this, "onBufferState", (t) => {
|
|
4479
4479
|
let { minBufferTime: n, maxBufferTime: r, cooldownTime: i } = this.config;
|
|
4480
|
-
if (this.isSuspended || this.lastIncreaseTime + i >
|
|
4480
|
+
if (this.isSuspended || this.lastIncreaseTime + i > performance.now() || this.targetBufferTimeTarget.targetBufferTime >= r) return;
|
|
4481
4481
|
let a = this.qualityOfServiceSource.timeSpentBufferingLast(30 * 1e3), o = this.qualityOfServiceSource.bufferingEventsLast(30 * 1e3), s = a / this.qualityOfServiceSource.timeSpentActiveLast(30 * 1e3), c = Math.ceil(Math.max((r - n) / (e.BUFFER_TIME_MAX_STEPS - 1), e.BUFFER_TIME_STEP_SIZE));
|
|
4482
4482
|
(s > this.config.maxBufferingRatio.last30Seconds || o > this.config.maxBufferingEvents.last30Seconds) && (this.targetBufferTimeTarget.targetBufferTime = Math.min(r, this.targetBufferTimeTarget.targetBufferTime + c), this.bufferTimeAdjustmentCount++, this.reset());
|
|
4483
4483
|
}), this.qualityOfServiceSource = r, this.targetBufferTimeTarget = i, this.config = R(R({}, vl), a), this.emitter = t, this.logger = n;
|
|
@@ -5927,8 +5927,8 @@ var hp = /* @__PURE__ */ new WeakMap(), gp = /* @__PURE__ */ new WeakMap(), _p =
|
|
|
5927
5927
|
onOk(t) {
|
|
5928
5928
|
let n = Math.max(0, Date.now() - A(vp, this)), r = Number(t.expires);
|
|
5929
5929
|
if (r > 0) {
|
|
5930
|
-
let t = Math.max(e.minGraceTime, Math.min(r / 10, e.maxGraceTime));
|
|
5931
|
-
Promise.race([ir(
|
|
5930
|
+
let t = Math.max(e.minGraceTime, Math.min(r / 10, e.maxGraceTime)), i = Math.min(r - t - n, e.maxTimeout);
|
|
5931
|
+
Promise.race([ir(i), this.done().catch(x)]).then(() => A(yp, this).resolve(this.expiryState())).catch(x);
|
|
5932
5932
|
}
|
|
5933
5933
|
A(hp, this).resolve(t);
|
|
5934
5934
|
}
|
|
@@ -5957,7 +5957,7 @@ var hp = /* @__PURE__ */ new WeakMap(), gp = /* @__PURE__ */ new WeakMap(), _p =
|
|
|
5957
5957
|
return A(yp, this).promise;
|
|
5958
5958
|
}
|
|
5959
5959
|
};
|
|
5960
|
-
p(xp, "maxGraceTime", 15e3), p(xp, "minGraceTime", 3e3), T(), k(), j(), N();
|
|
5960
|
+
p(xp, "maxGraceTime", 15e3), p(xp, "minGraceTime", 3e3), p(xp, "maxTimeout", 2147483647), T(), k(), j(), N();
|
|
5961
5961
|
var Sp = /* @__PURE__ */ new WeakMap(), Cp = /* @__PURE__ */ new WeakMap(), wp = class {
|
|
5962
5962
|
constructor(e) {
|
|
5963
5963
|
w(this, Sp, void 0), w(this, Cp, !1), O(Sp, this, e);
|
|
@@ -8555,8 +8555,8 @@ function Fv(e, t) {
|
|
|
8555
8555
|
};
|
|
8556
8556
|
r = s, i = c, a = v;
|
|
8557
8557
|
let h = p.producerReferenceTime(), g = A(Cv, n).get(t.track.namespace) || 0;
|
|
8558
|
-
if (h &&
|
|
8559
|
-
A(Cv, n).set(t.track.namespace,
|
|
8558
|
+
if (h && performance.now() - g > 1e3) {
|
|
8559
|
+
A(Cv, n).set(t.track.namespace, performance.now());
|
|
8560
8560
|
let r = e.wallclock() - h.getTime();
|
|
8561
8561
|
A(hv, n).debug("timing-info", {
|
|
8562
8562
|
mediaType: p.mediaType(),
|
|
@@ -8712,7 +8712,7 @@ var Uv = /* @__PURE__ */ function(e) {
|
|
|
8712
8712
|
}
|
|
8713
8713
|
n && this.emit("error", n), this.emit("close", this);
|
|
8714
8714
|
}), p(this, "onOpen", () => {
|
|
8715
|
-
this.logger.info("Opened", R({}, this.options)), this.readyState() === WebSocket.OPEN && (this.clearConnectTimeout(), this._connectTime =
|
|
8715
|
+
this.logger.info("Opened", R({}, this.options)), this.readyState() === WebSocket.OPEN && (this.clearConnectTimeout(), this._connectTime = performance.now() - this.connectStartTime, this.reconnectState.reconnectRetries = 0, this._isConnectInProgress = !1, this.emit("open", this));
|
|
8716
8716
|
}), p(this, "clearConnectTimeout", () => {
|
|
8717
8717
|
this.connectTimeout && (clearTimeout(this.connectTimeout), this.connectTimeout = void 0);
|
|
8718
8718
|
}), p(this, "startConnectTimeout", () => {
|
|
@@ -8732,7 +8732,7 @@ var Uv = /* @__PURE__ */ function(e) {
|
|
|
8732
8732
|
try {
|
|
8733
8733
|
if (!n.shouldContinueConnecting) return n._isConnectInProgress = !1, n.logger.info("Connection aborted"), !1;
|
|
8734
8734
|
let e = yield n.options.connectHandler();
|
|
8735
|
-
if (n.connectStartTime =
|
|
8735
|
+
if (n.connectStartTime = performance.now(), !n.shouldContinueConnecting) return n._isConnectInProgress = !1, n.logger.info("Connection aborted"), !1;
|
|
8736
8736
|
n.logger.info("Connecting websocket", R(R({}, n.options), {}, { url: e }));
|
|
8737
8737
|
let r = new WebSocket(e);
|
|
8738
8738
|
return t = r, r.binaryType = "arraybuffer", r.onmessage = n.onMessage, r.addEventListener("error", n.onError), r.addEventListener("close", n.onClose), r.addEventListener("open", n.onOpen), n.websocket = r, n.startConnectTimeout(), !0;
|
|
@@ -8764,7 +8764,7 @@ var Gv, Kv = 65536 * 8, qv = .9, Jv = 40, Yv = (e) => {
|
|
|
8764
8764
|
}, Xv = class e {
|
|
8765
8765
|
constructor(t, n, r, i) {
|
|
8766
8766
|
var a = this;
|
|
8767
|
-
p(this, "emitter", void 0), p(this, "transport", void 0), p(this, "logger", void 0), p(this, "config", void 0), p(this, "rtts", void 0), p(this, "lastPingSentTime",
|
|
8767
|
+
p(this, "emitter", void 0), p(this, "transport", void 0), p(this, "logger", void 0), p(this, "config", void 0), p(this, "rtts", void 0), p(this, "lastPingSentTime", performance.now()), p(this, "isPingInFlight", !1), p(this, "connectCount", 0), p(this, "missedPings", 0), p(this, "isContextSwitchInProgress", !1), p(this, "signalBuffer", []), p(this, "dataBuffer", []), p(this, "disconnected", new S()), p(this, "unload", () => {
|
|
8768
8768
|
this.logger.debug("Unloading module..."), this.close("Unloading"), this.emitter.off("send signal", this.sendSignal), this.emitter.off("disconnect", this.close), this.emitter.off("reconnect", this.reconnect), this.logger.debug("Unloaded module");
|
|
8769
8769
|
}), p(this, "suspend", () => {
|
|
8770
8770
|
this.resetPingState(), this.transport.suspend();
|
|
@@ -8834,7 +8834,7 @@ var Gv, Kv = 65536 * 8, qv = .9, Jv = 40, Yv = (e) => {
|
|
|
8834
8834
|
if (!vr(t)) return;
|
|
8835
8835
|
switch (t.type) {
|
|
8836
8836
|
case "pong":
|
|
8837
|
-
this.lastPingSentTime && (this.rtts.push(
|
|
8837
|
+
this.lastPingSentTime && (this.rtts.push(performance.now() - this.lastPingSentTime), this.isPingInFlight = !1, this.emitter.emit("rtt", At(this.rtts.items())));
|
|
8838
8838
|
break;
|
|
8839
8839
|
case "context switch":
|
|
8840
8840
|
this.logger.info("Starting context switch"), this.emitter.emit("context switch started"), this.isContextSwitchInProgress = !0;
|
|
@@ -8872,12 +8872,12 @@ var Gv, Kv = 65536 * 8, qv = .9, Jv = 40, Yv = (e) => {
|
|
|
8872
8872
|
this.close(e);
|
|
8873
8873
|
}), p(this, "resetPingState", () => {
|
|
8874
8874
|
this.missedPings = 0, this.isPingInFlight = !1;
|
|
8875
|
-
}), p(this, "pingCooldownExpired", () =>
|
|
8875
|
+
}), p(this, "pingCooldownExpired", () => performance.now() - this.lastPingSentTime > e.PING_INTERVAL), p(this, "sendPing", () => {
|
|
8876
8876
|
if (this.isPingInFlight) {
|
|
8877
8877
|
this.missedPings++, this.missedPings > e.MAX_MISSED_PINGS && this.reconnect("missed pings");
|
|
8878
8878
|
return;
|
|
8879
8879
|
}
|
|
8880
|
-
this.isPingInFlight = !0, this.lastPingSentTime =
|
|
8880
|
+
this.isPingInFlight = !0, this.lastPingSentTime = performance.now(), this.missedPings = 0, this.sendSignal({ type: "ping" });
|
|
8881
8881
|
}), this.logger = n, this.emitter = t, this.config = r, this.rtts = i, this.emitter.on("send signal", this.sendSignal), this.emitter.on("disconnect", this.close), this.emitter.on("reconnect", this.reconnect), this.disconnected.promise.catch(x), this.transport = this.connectWebSocketTransport();
|
|
8882
8882
|
}
|
|
8883
8883
|
closed() {
|
|
@@ -8959,7 +8959,9 @@ var ry, iy = /* @__PURE__ */ new WeakMap(), ay = /* @__PURE__ */ new WeakMap(),
|
|
|
8959
8959
|
transportSelectionReason: void 0
|
|
8960
8960
|
};
|
|
8961
8961
|
}), p(this, "connect", () => {
|
|
8962
|
-
O(ay, this, !0),
|
|
8962
|
+
if (O(ay, this, !0), A(oy, this)) return;
|
|
8963
|
+
let e = performance.now();
|
|
8964
|
+
A(py, this) === void 0 && O(uy, this, e), A(dy, this) === void 0 && O(dy, this, e), O(oy, this, E(by, this, Oy).call(this));
|
|
8963
8965
|
}), w(this, _y, () => {
|
|
8964
8966
|
A(py, this) !== void 0 || A(uy, this) === void 0 || !A(ay, this) || (O(py, this, performance.now() - A(uy, this)), O(uy, this, void 0));
|
|
8965
8967
|
}), p(this, "disconnect", (e = "Disconnect Requested") => {
|
|
@@ -8979,7 +8981,7 @@ var ry, iy = /* @__PURE__ */ new WeakMap(), ay = /* @__PURE__ */ new WeakMap(),
|
|
|
8979
8981
|
throw i.emitter.emit("error", bi(e instanceof Error ? e : void 0)), e;
|
|
8980
8982
|
}
|
|
8981
8983
|
})), w(this, yy, M(function* () {
|
|
8982
|
-
let t =
|
|
8984
|
+
let t = performance.now(), n = () => performance.now() - t, r = globalThis.AbortController ? new AbortController() : void 0, a = setTimeout(() => r == null ? void 0 : r.abort(), e.PING_TIMEOUT);
|
|
8983
8985
|
try {
|
|
8984
8986
|
return yield fetch(new URL("/api/v4/connect/ping", i.config.options.get("url")).toString(), {
|
|
8985
8987
|
method: "HEAD",
|
|
@@ -9004,9 +9006,9 @@ var ry, iy = /* @__PURE__ */ new WeakMap(), ay = /* @__PURE__ */ new WeakMap(),
|
|
|
9004
9006
|
return function(e) {
|
|
9005
9007
|
return t.apply(this, arguments);
|
|
9006
9008
|
};
|
|
9007
|
-
}()), w(this, wy, (e =
|
|
9009
|
+
}()), w(this, wy, (e = performance.now()) => {
|
|
9008
9010
|
A(Ey, this).call(this, e), A(hy, this).push(e);
|
|
9009
|
-
}), w(this, Ty, (t =
|
|
9011
|
+
}), w(this, Ty, (t = performance.now()) => (A(Ey, this).call(this, t), A(hy, this).length >= e.RECONNECT_BACKOFF_BURST_THRESHOLD)), w(this, Ey, (t) => {
|
|
9010
9012
|
for (; A(hy, this).length > 0;) {
|
|
9011
9013
|
let n = A(hy, this)[0];
|
|
9012
9014
|
if (n === void 0 || n > t - e.RECONNECT_BACKOFF_BURST_WINDOW_MS) return;
|
|
@@ -9023,7 +9025,7 @@ var ry, iy = /* @__PURE__ */ new WeakMap(), ay = /* @__PURE__ */ new WeakMap(),
|
|
|
9023
9025
|
get estimatedBandwidth() {
|
|
9024
9026
|
return this.connectionImpl && "estimatedBandwidth" in this.connectionImpl && this.connectionImpl.estimatedBandwidth ? this.connectionImpl.estimatedBandwidth : Yv(this.rtt);
|
|
9025
9027
|
}
|
|
9026
|
-
get
|
|
9028
|
+
get firstConnectStartTime() {
|
|
9027
9029
|
return A(dy, this);
|
|
9028
9030
|
}
|
|
9029
9031
|
get lastConnectionTime() {
|
|
@@ -9062,7 +9064,7 @@ function Oy() {
|
|
|
9062
9064
|
} catch (e) {
|
|
9063
9065
|
throw o = "cached_edge", e;
|
|
9064
9066
|
}
|
|
9065
|
-
A(xy, e).call(e), O(ly, e, (a = A(ly, e), a++, a)), O(sy, e, 0), O(fy, e,
|
|
9067
|
+
A(xy, e).call(e), O(ly, e, (a = A(ly, e), a++, a)), O(sy, e, 0), O(fy, e, performance.now()), A(_y, e).call(e), yield e.connectionImpl.closed(), e.logger.info("Connection closed"), o = "cached_edge";
|
|
9066
9068
|
} catch (n) {
|
|
9067
9069
|
e.logger.warn("Failed to connect", n);
|
|
9068
9070
|
let r = t.shiftedEdge();
|
|
@@ -9568,13 +9570,13 @@ var Ny, Py = t((() => {
|
|
|
9568
9570
|
this.decoder.unload();
|
|
9569
9571
|
}), p(this, "enqueue", (e) => {
|
|
9570
9572
|
try {
|
|
9571
|
-
let t =
|
|
9573
|
+
let t = performance.now(), n = this.decoder.decode(new Uint8Array(e.data));
|
|
9572
9574
|
this.decodedSamples.push(R(R({}, e), {}, {
|
|
9573
9575
|
type: "audio",
|
|
9574
9576
|
format: "f32",
|
|
9575
9577
|
data: n,
|
|
9576
9578
|
statistics: {
|
|
9577
|
-
decodeTime:
|
|
9579
|
+
decodeTime: performance.now() - t,
|
|
9578
9580
|
transportTimeFromWorker: 0,
|
|
9579
9581
|
transportTimeToWorker: 0,
|
|
9580
9582
|
samplesInBatch: 1
|
|
@@ -9612,7 +9614,7 @@ function $y(e) {
|
|
|
9612
9614
|
}
|
|
9613
9615
|
}
|
|
9614
9616
|
var eb, tb, nb = t((() => {
|
|
9615
|
-
eb = "var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateWrapper = (obj, member, setter, getter) => ({\n set _(value) {\n __privateSet(obj, member, value, setter);\n },\n get _() {\n return __privateGet(obj, member, getter);\n }\n});\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n(function() {\n var _e2, _t, _n, _a, _e3, _t2, _n2, _r, _b, _i, _c, _d, _e4;\n var e = class {\n constructor(e2 = 50) {\n __publicField(this, \"maxSize\");\n __publicField(this, \"values\", []);\n __publicField(this, \"start\", 0);\n __publicField(this, \"size\", () => this.values.length - this.start);\n __publicField(this, \"compact\", () => {\n if (this.start !== 0) {\n if (this.start >= this.values.length) {\n this.values = [], this.start = 0;\n return;\n }\n this.start < 32 && this.start * 2 < this.values.length || (this.values = this.values.slice(this.start), this.start = 0);\n }\n });\n __publicField(this, \"push\", (e2) => {\n this.isFull() && (this.start++, this.compact()), this.values.push(e2);\n });\n __publicField(this, \"clear\", () => {\n this.values = [], this.start = 0;\n });\n __publicField(this, \"pop\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values[this.start];\n return this.start++, this.compact(), e2;\n });\n __publicField(this, \"popLast\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values.pop();\n return this.start >= this.values.length && this.clear(), e2;\n });\n __publicField(this, \"peekFirst\", () => this.isEmpty() ? void 0 : this.values[this.start]);\n __publicField(this, \"peekLast\", () => this.isEmpty() ? void 0 : this.values[this.values.length - 1]);\n __publicField(this, \"isFull\", () => this.size() >= this.maxSize);\n __publicField(this, \"isEmpty\", () => this.size() === 0);\n __publicField(this, \"items\", () => this.start === 0 ? this.values : this.values.slice(this.start));\n __publicField(this, \"filterPop\", (e2) => {\n for (; !this.isEmpty(); ) {\n let t2 = this.peekFirst();\n if (t2 === void 0 || e2(t2)) return;\n this.pop();\n }\n });\n this.maxSize = e2;\n }\n }, t = (_a = class {\n constructor(e2, t2 = 0) {\n __privateAdd(this, _e2);\n __privateAdd(this, _t);\n __privateAdd(this, _n);\n __publicField(this, \"position\", () => __privateGet(this, _n));\n __publicField(this, \"peekBit\", () => this.getBit(__privateGet(this, _t), __privateGet(this, _n)));\n __publicField(this, \"readBit\", () => {\n let e2 = this.peekBit();\n return __privateWrapper(this, _n)._++, e2;\n });\n __publicField(this, \"readBits\", (e2) => {\n let t2 = 0;\n for (let n2 = 0; n2 < e2; n2++) t2 = t2 << 1 | (this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) ? 1 : 0);\n return t2;\n });\n __publicField(this, \"remainingBits\", () => __privateGet(this, _t).byteLength * 8 - __privateGet(this, _n));\n __publicField(this, \"readSignedExpGolomb\", () => {\n let e2 = this.readUnsignedExpGolomb();\n return e2 & 1 ? (e2 + 1) / 2 : -(e2 / 2);\n });\n __publicField(this, \"readUnsignedExpGolomb\", () => {\n let e2 = 0;\n for (; this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) === 0; ) e2++;\n let t2 = 1 << e2;\n for (let n2 = e2 - 1; n2 >= 0; n2--) t2 |= this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) << n2;\n return t2 - 1;\n });\n __publicField(this, \"getBit\", (e2, t2) => {\n if (e2.byteLength * 8 <= t2) throw Error(`BitReader: Out of bounds`);\n return e2[t2 >> 3] >> 7 - (t2 & 7) & 1;\n });\n __privateSet(this, _e2, e2), __privateSet(this, _t, new Uint8Array(__privateGet(this, _e2))), __privateSet(this, _n, t2);\n }\n bytes() {\n return __privateGet(this, _t);\n }\n }, _e2 = new WeakMap(), _t = new WeakMap(), _n = new WeakMap(), _a);\n let n = [`off`, `error`, `warn`, `info`, `debug`, `trace`];\n var r = (_b = class {\n constructor({ context: e2, logLevel: t2, debug: n2 }) {\n __privateAdd(this, _e3, /* @__PURE__ */ new Map());\n __privateAdd(this, _t2, ``);\n __privateAdd(this, _n2, false);\n __privateAdd(this, _r, `off`);\n __publicField(this, \"trace\", (...e2) => {\n });\n __publicField(this, \"debug\", (...e2) => {\n });\n __publicField(this, \"info\", (...e2) => {\n });\n __publicField(this, \"warn\", (...e2) => {\n });\n __publicField(this, \"error\", (...e2) => {\n });\n __publicField(this, \"table\", (...e2) => {\n });\n __publicField(this, \"count\", (...e2) => {\n });\n __privateSet(this, _t2, e2), __privateSet(this, _r, t2), __privateSet(this, _n2, n2 || false), this.setLevel(t2), this.setDebug(__privateGet(this, _n2));\n }\n setDebug(e2) {\n __privateSet(this, _n2, e2);\n for (let [t2, n2] of __privateGet(this, _e3)) n2.setDebug(e2);\n e2 ? (this.table = console.table.bind(console), this.count = console.count.bind(console)) : (this.table = () => {\n }, this.count = () => {\n });\n }\n setLevel(e2) {\n __privateSet(this, _r, e2);\n for (let [t3, n2] of __privateGet(this, _e3)) n2.setLevel(e2);\n let t2 = n.indexOf(e2);\n for (let [e3, r2] of n.entries()) r2 !== `off` && (e3 <= t2 ? this[r2] = console[r2].bind(console, `%c%s %c%s`, `font-weight:bold;`, r2.toUpperCase(), `font-weight:normal;`, __privateGet(this, _t2)) : this[r2] = () => {\n });\n }\n createContext(t2) {\n let n2 = __privateGet(this, _e3).get(t2);\n if (!n2) {\n let n3 = new _b({ context: `${t2}`, logLevel: __privateGet(this, _r), debug: __privateGet(this, _n2) });\n return __privateGet(this, _e3).set(t2, n3), n3;\n }\n return n2;\n }\n static get() {\n return __privateGet(_b, _i) || __privateSet(_b, _i, new _b({ context: `Vindral`, logLevel: `off` })), __privateGet(_b, _i);\n }\n }, _e3 = new WeakMap(), _t2 = new WeakMap(), _n2 = new WeakMap(), _r = new WeakMap(), _i = new WeakMap(), __privateAdd(_b, _i), _b);\n let i = { backgroundColor: `rgba(0,0,0,0.6)`, textPadding: 8, fontSize: `28px`, lineGap: 16 };\n function a(e2, t2) {\n let n2 = t2 * 0.05, r2 = e2 * 0.035;\n return `${Math.max(Math.round(Math.min(n2, r2)), 16)}px`;\n }\n function o(e2) {\n var _a2;\n let { subtitleWidth: t2, subtitleHeight: n2, canvasWidth: r2, canvasHeight: i2, containerWidth: a2, bottomPadding: o2 } = e2, s2 = (_a2 = e2.baseMargin) != null ? _a2 : 20, c2 = r2 / a2, l2 = t2 * c2, u2 = n2 * c2;\n return { drawWidth: l2, drawHeight: u2, x: (r2 - l2) / 2, y: i2 - u2 - (o2 + s2) * c2 };\n }\n var s = class extends Error {\n constructor(e2, t2, n2 = {}) {\n super(e2);\n __publicField(this, \"props\");\n __publicField(this, \"extra\", {});\n __publicField(this, \"code\", () => this.props.code);\n __publicField(this, \"isFatal\", () => this.props.isFatal);\n __publicField(this, \"source\", () => this.props.source);\n __publicField(this, \"type\", () => {\n var _a2;\n return (_a2 = this.props.type) != null ? _a2 : `external`;\n });\n __publicField(this, \"toStringifiable\", () => {\n var _a2;\n let e2 = this.source(), t2 = e2 instanceof Error ? e2.stack : this.stack;\n return __spreadProps(__spreadValues({}, this.extra), { code: this.props.code, isFatal: this.props.isFatal, type: this.props.type, message: this.message, sourceMessage: (_a2 = this.source()) == null ? void 0 : _a2.message, stack: t2 });\n });\n this.props = t2, this.extra = n2, Object.setPrototypeOf(this, new.target.prototype);\n }\n };\n let c = (e2, t2) => new s(`No init segment for rendition id ${e2} for channel ${t2}`, { isFatal: false, code: `missing_init_segment`, type: `internal` }), l = (e2) => {\n let t2 = e2.getUint32(0, false), n2 = e2.getUint8(0) << 16 | e2.getUint16(1, false), r2 = 0;\n return n2 === 1 ? r2 += 3 : t2 === 1 && (r2 += 4), r2;\n }, u = (e2) => l(new DataView(e2, 0)) !== 0, d = (e2, t2 = 0) => {\n for (let n2 = t2; n2 < e2.byteLength - 4; n2++) {\n let t3 = e2.getUint32(n2) === 1, r2 = (e2.getUint8(n2) << 16 | e2.getUint16(n2 + 1)) == 1;\n if (t3 || r2) return { position: n2, nalPrefixSize: t3 ? 4 : 3 };\n }\n }, f = (e2) => e2 & 31, p = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = d(n2);\n for (; r2; ) {\n let { position: i2, nalPrefixSize: a2 } = r2, o2 = d(n2, i2 + 4), s2 = o2 ? o2.position - i2 - a2 : void 0;\n if (!t2(new DataView(e2, i2 + a2, s2), a2)) return;\n r2 = o2;\n }\n }, m = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = 0;\n for (; r2 < e2.byteLength; ) {\n let i2 = n2.getUint32(r2);\n if (!t2(new DataView(e2, r2 + 4, i2))) return;\n r2 += i2 + 4;\n }\n }, h = (e2) => {\n let t2 = [], n2 = [];\n if (!u(e2)) {\n let r2 = new DataView(e2, 0), i2 = r2.getUint8(5) & 31, a2 = 6;\n for (let n3 = 0; n3 < i2; n3++) {\n let n4 = r2.getUint16(a2);\n t2.push(e2.slice(a2 + 2, a2 + 2 + n4)), a2 += n4 + 2;\n }\n let o2 = r2.getUint8(a2);\n a2 += 1;\n for (let t3 = 0; t3 < o2; t3++) {\n let t4 = r2.getUint16(a2);\n n2.push(e2.slice(a2 + 2, a2 + 2 + t4)), a2 += t4 + 2;\n }\n return { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }\n return p(e2, (e3) => {\n let r2 = e3.byteOffset + e3.byteLength;\n switch (f(e3.getUint8(0))) {\n case 8:\n n2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n case 7:\n t2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n }\n return true;\n }), { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }, g = (e2) => {\n var _a2;\n let n2 = new DataView(e2), r2 = n2.getUint8(1), i2 = n2.getUint8(2), a2 = n2.getUint8(3), o2 = new t(e2, 32);\n o2.readUnsignedExpGolomb();\n let s2 = 1;\n switch (r2) {\n case 100:\n case 110:\n case 122:\n case 244:\n case 44:\n case 83:\n case 86:\n case 118:\n case 128:\n case 138:\n case 144:\n if (s2 = o2.readUnsignedExpGolomb(), s2 === 3 && o2.readBits(1), o2.readUnsignedExpGolomb() + 8, o2.readUnsignedExpGolomb() + 8, o2.readBit(), o2.readBit()) {\n for (let e3 = 0; e3 < (s2 === 3 ? 12 : 8); e3++) if (o2.readBit()) {\n let t2 = e3 < 6 ? 16 : 64, n3 = 0, r3 = 8, i3 = 8;\n for (let e4 = 0; e4 < t2; e4++) i3 !== 0 && (n3 = o2.readSignedExpGolomb(), i3 = (r3 + n3 + 256) % 256), r3 = i3 === 0 ? r3 : i3;\n }\n }\n break;\n default:\n break;\n }\n o2.readUnsignedExpGolomb();\n let c2 = o2.readUnsignedExpGolomb();\n if (c2 === 0) o2.readUnsignedExpGolomb();\n else if (c2 === 1) throw Error(`Unhandled case`);\n o2.readUnsignedExpGolomb(), o2.readBit();\n let l2 = o2.readUnsignedExpGolomb(), u2 = o2.readUnsignedExpGolomb(), d2 = o2.readBit();\n d2 === 0 && o2.readBit(), o2.readBit();\n let f2 = l2 + 1, p2 = u2 + 1;\n if (p2 *= 2 - d2, p2 *= 16, f2 *= 16, o2.readBit()) {\n let e3 = s2 === 1 ? 1 : 0, t2 = 1 << (s2 === 1 || s2 === 2 ? 1 : 0), n3 = 2 - d2 << e3, r3 = o2.readUnsignedExpGolomb() * t2, i3 = o2.readUnsignedExpGolomb() * t2, a3 = o2.readUnsignedExpGolomb() * n3, c3 = o2.readUnsignedExpGolomb() * n3;\n f2 -= r3 + i3, p2 -= a3 + c3;\n }\n let m2 = { numerator: 1, denumerator: 1 };\n return o2.readBit() && o2.readBit() && (m2 = (_a2 = _[o2.readBits(8)]) != null ? _a2 : { numerator: 0, denumerator: 0 }), { width: f2, height: p2, pixelAspectRatio: m2, profileIdc: r2, constraintFlags: i2, levelIdc: a2 };\n }, _ = [{ numerator: 0, denumerator: 0 }, { numerator: 1, denumerator: 1 }, { numerator: 12, denumerator: 11 }, { numerator: 10, denumerator: 11 }, { numerator: 16, denumerator: 11 }, { numerator: 40, denumerator: 33 }, { numerator: 24, denumerator: 11 }, { numerator: 20, denumerator: 11 }, { numerator: 32, denumerator: 11 }, { numerator: 80, denumerator: 33 }, { numerator: 18, denumerator: 11 }, { numerator: 15, denumerator: 11 }, { numerator: 64, denumerator: 33 }, { numerator: 160, denumerator: 99 }, { numerator: 4, denumerator: 3 }, { numerator: 3, denumerator: 2 }, { numerator: 2, denumerator: 1 }], v = (e2) => {\n let n2 = new t(e2);\n return n2.peekBit() === 1 && n2.readBits(32), S(n2), C(n2);\n }, y = (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = v(e2), n2 = t2.seqProfile, r2 = (_b2 = (_a2 = t2.operatingPoints[0]) == null ? void 0 : _a2.seqLevelIdx) != null ? _b2 : 0, i2 = (_d2 = (_c2 = t2.operatingPoints[0]) == null ? void 0 : _c2.tier) != null ? _d2 : 0, a2 = t2.colorConfig.bitDepth, o2 = `av01.${n2}.${r2.toString().padStart(2, `0`)}${i2 === 0 ? `M` : `H`}.${a2.toString().padStart(2, `0`)}`;\n return { codecString: `${o2}.${t2.colorConfig.monoChrome ? 1 : 0}.${`${t2.colorConfig.subsamplingX}${t2.colorConfig.subsamplingY}${t2.colorConfig.chromaSamplePosition}`}.${t2.colorConfig.colorPrimaries.toString().padStart(2, `0`)}.${t2.colorConfig.transferCharacteristics.toString().padStart(2, `0`)}.${t2.colorConfig.matrixCoefficients.toString().padStart(2, `0`)}.${t2.colorConfig.colorRange ? 1 : 0}`, fallbackCodecString: o2, width: t2.maxFrameWidth, height: t2.maxFrameHeight };\n }, b = (e2) => {\n let t2 = 0, n2 = 0;\n for (let r2 = 0; r2 < 8; r2++) {\n let i2 = e2.readBits(8);\n if (t2 |= (i2 & 127) << r2 * 7, n2 += 1, (i2 & 128) != 128) break;\n }\n return [n2, t2];\n }, x = (e2) => {\n let t2 = 0;\n for (; t2 < 100 && e2.readBit() === 0; ) t2++;\n return t2 >= 32 ? 0 : e2.readBits(t2) + (1 << t2) - 1;\n }, S = (e2) => {\n let t2 = e2.remainingBits() / 8, n2 = e2.readBits(8);\n if (n2 >> 7 & 1) return;\n let r2 = n2 >> 3 & 15, i2 = n2 >> 2 & 1, a2 = n2 >> 1 & 1;\n i2 === 1 && e2.readBits(8);\n let [o2, s2] = a2 ? b(e2) : [0, t2];\n return { headerLength: 1 + i2 + o2, type: r2, obuSize: s2 };\n }, ee = (e2) => {\n let t2 = e2.readBits(32), n2 = e2.readBits(32), r2 = e2.readBit() !== 0, i2 = 0;\n return r2 && (i2 = x(e2) + 1), { timescale: n2, equalPictureInterval: r2, numUnitsInDisplayTick: t2, numTicksPerPicture: i2 };\n }, C = (e2) => {\n let t2 = e2.readBits(3), n2 = e2.readBit() !== 0, r2 = e2.readBit() !== 0, i2, a2 = false, o2 = false, s2 = false, c2 = 0, l2 = 0, u2 = [];\n if (r2) e2.readBits(5);\n else {\n if (o2 = e2.readBit() !== 0, o2 && (i2 = ee(e2), a2 = e2.readBit() !== 0, a2)) throw Error(`Not implemented`);\n s2 = e2.readBit() !== 0;\n let t3 = e2.readBits(5) + 1;\n for (let n3 = 0; n3 < t3; n3++) {\n let t4 = e2.readBits(12), n4 = e2.readBits(5), r3 = 0;\n if (n4 > 7 && (r3 = e2.readBit()), a2) throw Error(`decoderModelInfoPresentFlag==1`);\n s2 && e2.readBit() !== 0 && e2.readBits(4), u2.push({ tier: r3, operatingPointIdc: t4, seqLevelIdx: n4 });\n }\n }\n let d2 = e2.readBits(4) + 1, f2 = e2.readBits(4) + 1, p2 = e2.readBits(d2) + 1, m2 = e2.readBits(f2) + 1, h2 = false;\n h2 = r2 ? false : e2.readBit() !== 0, h2 && (c2 = e2.readBits(4) + 2, l2 = e2.readBits(3) + 1);\n let g2 = e2.readBit() !== 0, _2 = e2.readBit() !== 0, v2 = e2.readBit() !== 0, y2 = false, b2 = false, x2 = false, S2 = false, C2 = false, w2 = false, T2 = false, E2 = 2, D2 = 2, O2 = 0;\n r2 || (y2 = e2.readBit() !== 0, b2 = e2.readBit() !== 0, x2 = e2.readBit() !== 0, S2 = e2.readBit() !== 0, C2 = e2.readBit() !== 0, C2 && (w2 = e2.readBit() !== 0, T2 = e2.readBit() !== 0), E2 = e2.readBit() === 0 ? e2.readBit() : 2, D2 = E2 > 0 ? e2.readBit() > 0 ? 2 : e2.readBit() : 2, O2 = C2 ? e2.readBits(3) : 0);\n let k2 = e2.readBit() !== 0, A2 = e2.readBit() !== 0, j2 = e2.readBit() !== 0;\n return { seqProfile: t2, stillPicture: n2, reducedStillPictureHeader: r2, timingInfoPresentFlag: o2, timingInfo: i2 != null ? i2 : { equalPictureInterval: false, numUnitsInDisplayTick: 0, timescale: 0, numTicksPerPicture: 0 }, decoderModelInfoPresentFlag: a2, initialDisplayDelayPresentFlag: s2, operatingPoints: u2, frameWidthBits: d2, frameHeightBits: f2, maxFrameWidth: p2, maxFrameHeight: m2, frameIdNumbersPresentFlag: h2, deltaFrameIdLength: c2, additionalFrameIdLength: l2, use_128x128Superblock: g2, enableFilterIntra: _2, enableIntraEdgeFilter: v2, enableInterintraCompound: y2, enableMaskedCompound: b2, enableWarpedMotion: x2, enableDualFilter: S2, enableOrderHint: C2, enableJntComp: w2, enableRefFrameMvs: T2, seqForceScreenContentTools: E2, seqForceIntegerMv: D2, orderHintBits: O2, enableSuperres: k2, enableCdef: A2, enableRestoration: j2, colorConfig: te(e2, t2), filmGrainParamsPresent: e2.readBit() !== 0 };\n }, te = (e2, t2) => {\n let n2 = e2.readBit() !== 0, r2 = 8, i2 = false;\n t2 === 2 && n2 ? r2 = e2.readBit() === 0 ? 10 : 12 : t2 <= 2 && (r2 = n2 ? 10 : 8), i2 = t2 === 1 ? false : e2.readBit() !== 0;\n let a2 = i2 ? 1 : 3, o2 = e2.readBit() !== 0, s2 = 2, c2 = 2, l2 = 2, u2 = false, d2 = 0, f2 = 0, p2 = 0, m2 = false;\n return o2 && (s2 = e2.readBits(8), c2 = e2.readBits(8), l2 = e2.readBits(8)), i2 ? (u2 = e2.readBit() !== 0, d2 = 1, f2 = 1, p2 = 0, m2 = false, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : s2 === 1 && c2 === 13 && l2 === 0 ? (u2 = true, d2 = 0, f2 = 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : (u2 = e2.readBit() !== 0, t2 === 0 ? (d2 = 1, f2 = 1) : t2 === 1 ? (d2 = 0, f2 = 0) : r2 === 12 ? (d2 = e2.readBit(), f2 = d2 === 0 ? 0 : e2.readBit()) : (d2 = 1, f2 = 0), d2 !== 0 && f2 !== 0 && (p2 = e2.readBits(2)), m2 = e2.readBit() !== 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 });\n };\n var w = (function() {\n var e2 = typeof document < `u` && document.currentScript ? document.currentScript.src : void 0;\n return (function(t2) {\n t2 || (t2 = {});\n var n2;\n n2 || (n2 = t2 === void 0 ? {} : t2);\n var r2, i2;\n n2.ready = new Promise(function(e3, t3) {\n r2 = e3, i2 = t3;\n });\n var a2 = {}, o2;\n for (o2 in n2) n2.hasOwnProperty(o2) && (a2[o2] = n2[o2]);\n var s2 = ``, c2;\n s2 = self.location.href, e2 && (s2 = e2), s2 = s2.indexOf(`blob:`) === 0 ? `` : s2.substr(0, s2.lastIndexOf(`/`) + 1), c2 = function(e3) {\n try {\n var t3 = new XMLHttpRequest();\n return t3.open(`GET`, e3, false), t3.responseType = `arraybuffer`, t3.send(null), new Uint8Array(t3.response);\n } catch (t4) {\n if (e3 = ie2(e3)) return e3;\n throw t4;\n }\n };\n var l2 = n2.printErr || console.warn.bind(console);\n for (o2 in a2) a2.hasOwnProperty(o2) && (n2[o2] = a2[o2]);\n a2 = null;\n var u2;\n n2.wasmBinary && (u2 = n2.wasmBinary), n2.noExitRuntime, typeof WebAssembly != `object` && D2(`no native wasm support detected`);\n var d2, f2 = false, p2, m2, h2, g2, _2, v2, y2;\n function b2() {\n var e3 = d2.buffer;\n p2 = e3, n2.HEAP8 = m2 = new Int8Array(e3), n2.HEAP16 = g2 = new Int16Array(e3), n2.HEAP32 = _2 = new Int32Array(e3), n2.HEAPU8 = h2 = new Uint8Array(e3), n2.HEAPU16 = new Uint16Array(e3), n2.HEAPU32 = new Uint32Array(e3), n2.HEAPF32 = v2 = new Float32Array(e3), n2.HEAPF64 = y2 = new Float64Array(e3);\n }\n var x2, S2 = [], ee2 = [], C2 = [];\n function te2() {\n var e3 = n2.preRun.shift();\n S2.unshift(e3);\n }\n var w2 = 0, T2 = null, E2 = null;\n n2.preloadedImages = {}, n2.preloadedAudios = {};\n function D2(e3) {\n throw n2.onAbort && n2.onAbort(e3), l2(e3), f2 = true, e3 = new WebAssembly.RuntimeError(`abort(` + e3 + `). Build with -s ASSERTIONS=1 for more info.`), i2(e3), e3;\n }\n var O2 = `data:application/octet-stream;base64,`, k2 = `data:application/octet-stream;base64,AGFzbQEAAAABYQ5gAn9/AX9gCX9/f39/f39/fwBgAX8AYAF/AX9gA39/fwF/YAR/f39/AX9gAn9/AGADf39/AGAEf39/fwBgBn9/f39/fwBgAABgCH9/f39/f39/AGAAAX9gBX9/f39/AX8CDQIBYQFhAAQBYQFiAAMDMjEAAAQCAAUEBQMAAQQHAQMAAwAECQgBBgoIAAYEAgABAQEBAgcGAgsFAg0AAgwJAwMFBAUBcAEBAQUHAQGAAoCAAgYJAX8BQbDEwAILB0EQAWMCAAFkABkBZQAIAWYALAFnAAoBaAArAWkABQFqACoBawApAWwAMgFtADEBbgAwAW8ALwFwAC4BcQAtAXIBAAqOigYx8QIBA38gABAQIgJBf0wEQCAAQQEQCxogAUEANgIAQQAPCwJAAkAgAkGAgICABE8EQCAAQQMQC0F/RgRAQQEPCyABIAJBHXZBAXFBAWo2AgAMAQsgAkGAgICAAk8EQCAAQQUQC0F/RgRAQQEPCyABIAJBG3ZBA3FBA2o2AgAMAQsgAkGAgICAAU8EQCAAQQcQC0F/RgRAQQEPCyABIAJBGXZBB3FBB2o2AgAMAQsCfwJAQYCAgMAAIgMgAnENAEEBIQQDQCADQQF2IgNFDQEgAiADcQ0BIARBAWohBAwACwALIAQiAkEEaiIDQSBGCwRAIAFBADYCACAAQSAQCxpBASEDIABBARADQQFHDQIgABAQIQIgAEEgEAtBf0YNAgJAAkAgAg4CAAEECyABQX82AgAMAgsgAUF/NgIAQQEPCyAAIAJBBWoQCxogACADEAMiAEF/RgRAQQEPCyABIABBfyADdEF/c2o2AgALQQAhAwsgAwuIAgEHfyAAKAIEIQQCQCAAKAIMQQN0IgcgACgCECIIayICQSBOBEAgBCgAACIDQRh0IANBCHRBgID8B3FyIANBCHZBgP4DcSADQRh2cnIhAyAAKAIIIgJFDQEgAyACdCAELQAEQQggAmt2ciEDDAELIAJBAUgEQAwBCyAELQAAIAAoAggiBUEYaiIGdCEDIAIgBWpBCGsiAkEBSA0AA0AgBC0AASAGQQhrIgZ0IANyIQMgAkEISiEFIARBAWohBCACQQhrIQIgBQ0ACwsgACABIAhqIgQ2AhAgACAEQQdxNgIIQX8hAiAEIAdNBH8gACAAKAIAIARBA3ZqNgIEIANBICABa3YFQX8LC/ICAgJ/AX4CQCACRQ0AIAAgAmoiA0EBayABOgAAIAAgAToAACACQQNJDQAgA0ECayABOgAAIAAgAToAASADQQNrIAE6AAAgACABOgACIAJBB0kNACADQQRrIAE6AAAgACABOgADIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAAC8wMAQd/AkAgAEUNACAAQQhrIgMgAEEEaygCACIBQXhxIgBqIQUCQCABQQFxDQAgAUEDcUUNASADIAMoAgAiAWsiA0HIwAAoAgBJDQEgACABaiEAIANBzMAAKAIARwRAIAFB/wFNBEAgAygCCCICIAFBA3YiBEEDdEHgwABqRhogAiADKAIMIgFGBEBBuMAAQbjAACgCAEF+IAR3cTYCAAwDCyACIAE2AgwgASACNgIIDAILIAMoAhghBgJAIAMgAygCDCIBRwRAIAMoAggiAiABNgIMIAEgAjYCCAwBCwJAIANBFGoiAigCACIEDQAgA0EQaiICKAIAIgQNAEEAIQEMAQsDQCACIQcgBCIBQRRqIgIoAgAiBA0AIAFBEGohAiABKAIQIgQNAAsgB0EANgIACyAGRQ0BAkAgAyADKAIcIgJBAnRB6MIAaiIEKAIARgRAIAQgATYCACABDQFBvMAAQbzAACgCAEF+IAJ3cTYCAAwDCyAGQRBBFCAGKAIQIANGG2ogATYCACABRQ0CCyABIAY2AhggAygCECICBEAgASACNgIQIAIgATYCGAsgAygCFCICRQ0BIAEgAjYCFCACIAE2AhgMAQsgBSgCBCIBQQNxQQNHDQBBwMAAIAA2AgAgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgAPCyADIAVPDQAgBSgCBCIBQQFxRQ0AAkAgAUECcUUEQCAFQdDAACgCAEYEQEHQwAAgAzYCAEHEwABBxMAAKAIAIABqIgA2AgAgAyAAQQFyNgIEIANBzMAAKAIARw0DQcDAAEEANgIAQczAAEEANgIADwsgBUHMwAAoAgBGBEBBzMAAIAM2AgBBwMAAQcDAACgCACAAaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAPCyABQXhxIABqIQACQCABQf8BTQRAIAUoAggiAiABQQN2IgRBA3RB4MAAakYaIAIgBSgCDCIBRgRAQbjAAEG4wAAoAgBBfiAEd3E2AgAMAgsgAiABNgIMIAEgAjYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiAUcEQCAFKAIIIgJByMAAKAIASRogAiABNgIMIAEgAjYCCAwBCwJAIAVBFGoiAigCACIEDQAgBUEQaiICKAIAIgQNAEEAIQEMAQsDQCACIQcgBCIBQRRqIgIoAgAiBA0AIAFBEGohAiABKAIQIgQNAAsgB0EANgIACyAGRQ0AAkAgBSAFKAIcIgJBAnRB6MIAaiIEKAIARgRAIAQgATYCACABDQFBvMAAQbzAACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogATYCACABRQ0BCyABIAY2AhggBSgCECICBEAgASACNgIQIAIgATYCGAsgBSgCFCICRQ0AIAEgAjYCFCACIAE2AhgLIAMgAEEBcjYCBCAAIANqIAA2AgAgA0HMwAAoAgBHDQFBwMAAIAA2AgAPCyAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAAsgAEH/AU0EQCAAQQN2IgFBA3RB4MAAaiEAAn9BuMAAKAIAIgJBASABdCIBcUUEQEG4wAAgASACcjYCACAADAELIAAoAggLIQIgACADNgIIIAIgAzYCDCADIAA2AgwgAyACNgIIDwtBHyECIANCADcCECAAQf///wdNBEAgAEEIdiIBIAFBgP4/akEQdkEIcSIBdCICIAJBgOAfakEQdkEEcSICdCIEIARBgIAPakEQdkECcSIEdEEPdiABIAJyIARyayIBQQF0IAAgAUEVanZBAXFyQRxqIQILIAMgAjYCHCACQQJ0QejCAGohAQJAAkACQEG8wAAoAgAiBEEBIAJ0IgdxRQRAQbzAACAEIAdyNgIAIAEgAzYCACADIAE2AhgMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgASgCACEBA0AgASIEKAIEQXhxIABGDQIgAkEddiEBIAJBAXQhAiAEIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAM2AhAgAyAENgIYCyADIAM2AgwgAyADNgIIDAELIAQoAggiACADNgIMIAQgAzYCCCADQQA2AhggAyAENgIMIAMgADYCCAtB2MAAQdjAACgCAEEBayIAQX8gABs2AgALC3QBAn8jAEEQayICJAAgAkEANgIMIAAgAkEMahACIQACfyACKAIMIgNBf0YEQEEBIABFDQEaIAFBgICAgHg2AgBBAAwBC0EBIAANABogASADQQFqQQF2IgFBACABayADQQFxGzYCAEEACyEAIAJBEGokACAAC/ALARR/IAFBoD1qLQAAQQxsIgZB1DxqKAIAIQQgBkHQPGooAgAgAUGQPGotAAAiB3QhBSACRQRAIAAgACgCACAFbDYCAAsgBCAHdCEBAkACQCADQZz/A3EEQCAAIAZB2DxqKAIAIAd0IgMgACgCPGw2AjwgACAAKAI4IAFsNgI4QQEhAiAAIAAoAiwgBWwiByAAKAIMIAVsIgRqIgwgACgCICABbCINIAAoAjQgAWwiDkEBdWoiEGsiBjYCLCAAKAIoIREgACAEIAdrIgQgDUEBdSAOayINayIHNgIoIAAoAiQhCCAAIAQgDWoiBDYCJCAAIAAoAhwgAWwiDiAAKAIIIAFsIgpqIhIgACgCECADbCIPIAAoAjAgA2wiC0EBdWoiE2siDTYCHCAAKAIYIQkgACAKIA5rIgogD0EBdSALayIPayIONgIYIAAoAhQhCyAAIAogD2oiCjYCFCAAIAUgC2wiDyAAKAIAIgtqIhQgACgCBCABbCIVIAEgCWwiCUEBdWoiFmsiBTYCDCAAIAsgD2siCyAVQQF1IAlrIglrIg82AgggACAJIAtqIgs2AgQgACABIAhsIgggACgCOCIJayIVIAMgEWwiEUEBdSAAKAI8IhdrIgNrIgE2AjggACADIBVqIgM2AjQgACAIIAlqIgggF0EBdSARaiIJayIRNgI8IAAgFCAWaiIUIAwgEGoiDGtBIGoiECASIBNqIhJBAXUgCCAJaiIIayITa0EGdSIJNgIgIAAgECATakEGdSIQNgIQIAAgDCAUakEgaiIMIAhBAXUgEmoiCGtBBnUiEjYCMCAAIAggDGpBBnUiDDYCACAMQYAEakH/B0sNAiAQQYAEakH/B0sNAiAJQYAEakH/B0sNAiASQYAEakH/B0sNAiAAIAQgC2pBIGoiDCADQQF1IApqIhBrQQZ1Igg2AjQgACALIARrQSBqIgQgCkEBdSADayIDa0EGdSIKNgIkIAAgAyAEakEGdSIDNgIUIAAgDCAQakEGdSIENgIEIARBgARqQf8HSw0CIANBgARqQf8HSw0CIApBgARqQf8HSw0CIAhBgARqQf8HSw0CIAAgByAPakEgaiIDIAFBAXUgDmoiBGtBBnUiCjYCOCAAIA8gB2tBIGoiByAOQQF1IAFrIgFrQQZ1Ig42AiggACABIAdqQQZ1IgE2AhggACADIARqQQZ1IgM2AgggA0GABGpB/wdLDQIgAUGABGpB/wdLDQIgDkGABGpB/wdLDQIgCkGABGpB/wdLDQIgACAFIAZqQSBqIgEgEUEBdSANaiIDa0EGdSIHNgI8IAAgBSAGa0EgaiIFIA1BAXUgEWsiBmtBBnUiBDYCLCAAIAUgBmpBBnUiBTYCHCAAIAEgA2pBBnUiADYCDCAAQYAEakH/B0sNAiAFQYAEakH/B0sNAiAEQYAEakH/B0sNAiAHQYAEakH/B00NAQwCCyADQeIAcUUEQEEBIQIgACgCAEEgakEGdSIBQYAEakH/B0sNAiAAIAE2AjggACABNgI8IAAgATYCNCAAIAE2AjAgACABNgIsIAAgATYCKCAAIAE2AiQgACABNgIgIAAgATYCHCAAIAE2AhggACABNgIUIAAgATYCECAAIAE2AgwgACABNgIIIAAgATYCBCAAIAE2AgAMAQtBASECIAAgACgCBCABbCIEIAAoAhggAWwiDUEBdWoiAyAAKAIAIgYgACgCFCAFbCIHaiIFakEgakEGdSIBNgIwIAAgBSADa0EgakEGdSIDNgIMIAAgBEEBdSANayIEIAYgB2tqQSBqQQZ1IgU2AgQgACABNgIAIAAgATYCICAAIAU2AjQgACABNgIQIAAgBTYCJCAAIAU2AhQgACADNgI8IAAgBiAEIAdqa0EgakEGdSIGNgIIIAAgBjYCOCAAIAY2AiggACAGNgIYIAAgAzYCLCAAIAM2AhwgAUGABGpB/wdLDQEgBUGABGpB/wdLDQEgBkGABGpB/wdLDQEgA0GABGpB/wdLDQELQQAhAgsgAguDBAEDfyACQYAETwRAIAAgASACEAAaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkEBSARAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALuREBDH8jAEGAAWsiCSQAIAAQECEEQQEhBgJAAkACfyACQQFNBEAgBEEASA0CIARBGXZB/gBxQYAIaiAEQYCAgOAATw0BGiAEQRV2Qf4PcUHACGogBEGAgIAITw0BGiAEQRF2Qf7/AXFBkAlqIARBgICAAU8NARogBEEQdkEBdEGQCmoMAQsgAkEDTQRAIARBf0wEQEECQaIQIARBgICAgARxGyEGDAMLIARBGXZB/gBxQdAKaiAEQYCAgIABTw0BGiAEQRZ2Qf4HcUGQC2ogBEGAgIAQTw0BGiAEQRF2Qf7/AXFB0AtqDAELIAJBB00EQCAEQRl2Qf4AcUHQDWogBEH/////AUsNARogBEEVdkH+D3FB0A5qDAELIARBGXZB/gBxQdAQaiACQRBNDQAaIARBHXYiAgRAIAJBAXRB0BFqDAELIARBF3ZB/gNxQeARagsvAQAiBg0AQQEhCwwBC0EBIQsgBkELdiIKIANLDQBBICAGQR9xIgVrIQICQCAKRQRAQQAhBgwBCyAEIAV0IQQCQCAGQQV2QT9xIg1FBEAMAQsgAiANSQRAIAAgBRALQX9GDQMgABAQIQRBICECCyAEIA10IQVBASANQQFrdCEIIARBICANa3YhBANAIAlBQGsgB0ECdGpBf0EBIAQgCHEbNgIAIAdBAWohByAIQQF2IggNAAsgAiANayECIAUhBAsgByAKSQRAIA1BA0kiDyAGQf+vAUtxIQYDQCACQQ9NBEAgAEEgIAJrEAtBf0YEQAwFCyAAEBAhBEEgIQILQQAhDkEAIQUCfwJAAn8CQAJAIARBAEgNAEEBIQUgBEH/////A0sNAEECIQUgBEH/////AUsNAEEDIQUgBEH/////AEsNAEEEIQUgBEH///8/Sw0AQQUhBSAEQf///x9LDQBBBiEFIARB////D0sNAEEHIQUgBEH///8HSw0AQQghBSAEQf///wNLDQBBCSEFIARB////AUsNAEEKIQUgBEH///8ASw0AQQshBSAEQf//P0sNAEEMIQUgBEH//x9LDQBBDSEFIARB//8PSw0AIARB//8HSw0BIARBgIB8cUGAgARHBEAMCQsgBEEQdCEMQQ8gBkEBIAYbIgZ0IQhBDCEFIAJBEGsMAgsgBSAGdCEIIAIgBUEBaiIFayECIAQgBXQhBCAGBEAgBiEFIAQhDAwDC0EBDAMLQQ4gBnQhCCAGQQQgBhshBSAEQQ90IQwgAkEPawshAiAGRSEOCyACIAVPBH8gAiAFawUgAEEgIAJrEAtBf0YEQAwGCyAAEBAhDEEgIAVrCyECIAwgBXQhBCAMQSAgBWt2IAhqIQhBASAGIA4bCyEGIAlBQGsgB0ECdGpBACAIQQJqIAggByANRhsgCCAPGyIMQQJqQQF2IgVrIAUgDEEBcRs2AgAgBiAGQQZJIAVBAyAGQQFrdEpxaiEGIAdBAWoiByAKRw0ACwtBACEIAkAgAyAKTQRAQQAhBwwBCwJAIAJBCEsEQCACIQYMAQtBICEGIABBICACaxALQX9GDQMgABAQIQQLAkACQAJ/AkAgA0EERwRAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCkEBaw4ODgABAgMEBQYHCAkKCwwQCyAEQRp2QeASagwOCyAEQRp2QaATagwNCyAEQRt2QeATagwMCyAEQRt2QYAUagwLCyAEQRp2QaAUagwKCyAEQRp2QeAUagwJCyAEQRp2QaAVagwICyAEQRp2QeAVagwHCyAEQRt2QaAWagwGCyAEQRx2QcAWagwFCyAEQRx2QdAWagwECyAEQR12QeAWagwDCyAEQR52QegWagwCCyAEQQBIBEBBASECDAQLQREhAiAKQQNGDQNBEiECIARB/////wNLDQNBIiECIApBAkYNA0EzQSMgBEGAgICAAkkbIQIMAwsgBEEXdkHAEmogBEEbdkGgEmogBEGAgICAAUkbCy0AACICDQEMBAtBAUERIARBf0obIQILIAJBBHYhByAGIAJBD3EiA2shAiAEIAN0IQQLIApBAWsiBQRAA0ACQCAHBEAgAkEKTQRAIABBICACaxALQX9GBEAMBwsgABAQIQRBICECCwJAAn8CQAJAAkACQAJAAkACQCAHQQFrDgYGAAECAwQFCyAEQR52Qe4WagwGCyAEQR52QfIWagwFCyAEQR12QfYWagwECyAEQR12Qf4WagwDCyAEQR12QYYXagwCCwJ/QfMAIARBGXZB8ABxayAEQYCAgIACTw0AGkH0ACAEQf////8ASw0AGkGFASAEQf///z9LDQAaQZYBIARB////H0sNABpBpwEgBEH///8PSw0AGkG4ASAEQf///wdLDQAaQckBIARB////A0sNABpB2gEgBEH///8BSw0AGkEAQesBIARBgICAAUkbCyIGQQR2IAdNDQIMCAsgBEEfdkHsFmoLLQAAIQYLIAZFBEAMBgsgCSAIQQJ0aiAGQQR2IgNBAWo2AgAgByADayEHIAIgBkEPcSIDayECIAQgA3QhBAwBCyAJIAhBAnRqQQE2AgBBACEHCyAIQQFqIgggBUcNAAsgASAHQQJ0aiAJQUBrIAVBAnRqKAIANgIAQQEgB3QhBiAFRQ0BIApBAmshAyAFQQFxBH8gASAJIANBAnQiBGooAgAgB2oiB0ECdGogCUFAayAEaigCADYCAEEBIAd0IAZyIQYgCkEDawUgAwshBCADRQ0BA0AgASAJIARBAnQiBWooAgAgB2oiA0ECdGogCUFAayAFaigCADYCACABIAkgBEEBayIFQQJ0IgxqKAIAIANqIgdBAnRqIAlBQGsgDGooAgA2AgBBASADdCAGckEBIAd0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FUUEQANAIAMgAiIALQAAOgAAIAMgAC0AAToAASADIAAtAAI6AAIgAyAALQADOgADIAMgAC0ABDoABCADIAAtAAU6AAUgAyAALQAGOgAGIAMgAC0ABzoAByADQQhqIQMgAEEIaiECIAdBCGsiBw0ACyAAQQdqIQALIAMgAC0AACAOEAQaIAEgCGohASAKQQFrIgoNAAsMAwsgC0EHcSEQIAQgBmogDWogBCAPIAQgD0obQX9zaiANQQAgDUEAShtrQQdJIREDQCALIQcgASEDIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAILIA4EQCALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEgCS0AACAMEAQiFSAMaiEDIAshByAJIQIgECIBBEADQCADIAIiAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohAiABQQFrIgENAAsLIBFFBEADQCADIAIiAC0AADoAACADIAAtAAE6AAEgAyAALQACOgACIAMgAC0AAzoAAyADIAAtAAQ6AAQgAyAALQAFOgAFIAMgAC0ABjoABiADIAAtAAc6AAcgA0EIaiEDIABBCGohAiAHQQhrIgcNAAsgAEEHaiEACyADIAAtAAAgDhAEGiAIIBVqIQEgCkEBayIKDQALDAILIAtBB3EhECAEIAZqIA1qIAQgDyAEIA9KG0F/c2ogDUEAIA1BAEoba0EHSSERA0AgASAJLQAAIAwQBCIBIAxqIQMgCyEHIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAELIAEgCCAKbGohAQsgEkUNACALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgECICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyARDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASAEIAlqIQkgEkEBayISDQALCwJAIBZFDQAgCSAEayEJIBdFBEAgFCAFa0EDcSIDBEADQCATQQFrIRMgASAJIAsQCCAIaiEBIANBAWsiAw0ACwsgFCAFQX9zakEDSQ0BA0AgASAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiEBIBNBBGsiEw0ACwwBCyALQQdxIQUgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khBANAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgBSICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyAEDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASATQQFrIhMNAAsLC+kCAQN/IAFBA3RB8DZqIgMoAgAhBSADLQAEIQMgAUEDdEGwNWoiAS0ABCEEAkAgASgCAEEERgRAIAIgBEEBdGouAQAhASAFQQRGBEAgASACIANBAXRqLgEAakEBakEBdQ8LAn8gACgCzAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALMASADQQF0ai4BHGpBAWpBAXUPCyAFQQRGBEAgAiADQQF0ai4BACEBAn8gACgCyAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALIASAEQQF0ai4BHGpBAWpBAXUPCwJ/IAAoAsgBIgEEQCAAKAIEIAEoAgRGDAELQQALIgIEfyAAKALIASAEQQF0ai4BHAVBAAshAQJ/IAAoAswBIgQEQCAAKAIEIAQoAgRGDAELQQALRQ0AIAAoAswBIANBAXRqLgEcIQAgAkUEQCAADwsgACABakEBakEBdSEBCyABC/IDAQN/IAEoAgAiA0H///8HRwRAIAEoAgQhBCAAIAIgAkEDcSACQRBJIgIbQQJ0IgVB8ClqKAIAQRBBCCACGyICbGogBUGwKWooAgBqIgAgAyAALQAAakGwLmotAAA6AAAgASgCCCEDIAAgBCAALQABakGwLmotAAA6AAEgASgCDCEEIAAgAyAALQACakGwLmotAAA6AAIgACAEIAAtAANqQbAuai0AADoAAyABKAIUIQMgACACaiIAIAEoAhAgAC0AAGpBsC5qLQAAOgAAIAEoAhghBCAAIAMgAC0AAWpBsC5qLQAAOgABIAEoAhwhAyAAIAQgAC0AAmpBsC5qLQAAOgACIAAgAyAALQADakGwLmotAAA6AAMgASgCJCEDIAAgAmoiACABKAIgIAAtAABqQbAuai0AADoAACABKAIoIQQgACADIAAtAAFqQbAuai0AADoAASABKAIsIQMgACAEIAAtAAJqQbAuai0AADoAAiAAIAMgAC0AA2pBsC5qLQAAOgADIAEoAjQhAyAAIAJqIgAgASgCMCAALQAAakGwLmotAAA6AAAgASgCOCECIAAgAyAALQABakGwLmotAAA6AAEgASgCPCEBIAAgAiAALQACakGwLmotAAA6AAIgACABIAAtAANqQbAuai0AADoAAwsL8CUBFH8gAyAFaiIbIAEuAQAiDkECdWohDSAEIAZqIhwgAS4BAiIKQQJ1aiELIAIoAghBBHQhAyACKAIEQQR0IQQgACAGQQR0aiAFaiEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOQQNxQQR0IApBA3FBAnRyQdA7aigCAA4PAAECAwQFBgcICQoLDA0ODwsgAigCACAJIA0g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ADcDEAJ/AkAgAgRAIABBACAIa0HYAWxqKALEAQ0BC0EADAELIAYgCyAIQQR0ayIELQAFIAQtAARqIAQtAAZqIAQtAAdqIhggBC0AAyAELQACIAQtAAEgBC0AAGpqaiIXaiIFIAQtAA8gBC0ADiAELQANIAQtAAxqamoiGiAELQALIAQtAAogBC0ACSAELQAIampqIhlqIgRrIgc2AhQgBiAEIAVqIgo2AhBBASEbQQELIQUCQCANQQFrIAJGDQAgACAIQdgBbGooAsQBRQRADAELIAYgCyAIQQh0aiICLQAFIAItAARqIAItAAZqIAItAAdqIh4gAi0AAyACLQACIAItAAEgAi0AAGpqaiIfaiIEIAItAA8gAi0ADiACLQANIAItAAxqamoiICACLQALIAItAAogAi0ACSACLQAIampqIiFqIgJrIAdqIgc2AhQgBiACIARqIApqIgo2AhBBASEWIAVBAWohBQsCfwJAIANFDQAgAEEUaygCAEUNACAGIAtBAWsiAiAIQQZ0IhBqIgQgCEEEdCIJai0AACAELQAAaiAEIAhBBXQiDmotAABqIAQgCEEwbCIPai0AAGoiHCACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIh1qIgwgBCAQaiICIBBqIgQgCWotAAAgBC0AAGogBCAOai0AAGogBCAPai0AAGoiECACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIg5qIgJrIgQ2AiAgBiACIAxqIApqIgo2AhBBASEPIAVBAWohCUEBDAELQQAhBCAFIQlBAAshAgJAAkACQAJAAkAgAyAIQQFrRwRAIAAoApwDDQELQQAhDCAFDQEMAgsgBCALQRBqIgQgCEEGdCIRaiIAIAhBBHQiDGotAAAgAC0AAGogACAIQQV0IhJqLQAAaiAAIAhBMGwiE2otAABqIAQgE2otAAAgBCASai0AACAEIAxqLQAAIAstABBqampqIgsgACARaiIAIBFqIgQgDGotAAAgBC0AAGogBCASai0AAGogBCATai0AAGoiESAAIBNqLQAAIAAgEmotAAAgACAMai0AACAALQAAampqIgBqIgxraiEEIAsgDGogCmohCkEBIQwgAkEBaiECIAlBAWohCSAPRSAFQQBHckUEQCAcIB1qIA5qIBBqIAAgC2ogEWpr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IAhrQQJ0ampBEGpBBXVBsC5qLQAAIAAtABBqQQFqQQF2OgAQIAAgAiALai0AACAHIAQgEGoiBEEEdGogBSANaiIFayAEIAVrQQJ0ampBEGpBBXVBsC5qLQAAIAAtAABqQQFqQQF2OgAAIAJBAWohAiAAQQFqIQAgAUEBaiEBIANBAWsiAw0ACyAAIBFqIQAgASAPaiEBIAIgD2ohAiAKQQFrIgoNAAsLIBJBwANqJAALtQUBBH8gACgCFCEDIAAoAhAhBCAAKAIEIQUgACgCDCICIAEpAgA3AgAgAiABKQIINwIIIAIgBUEEdCIAaiICIAEpAhA3AgAgAiABKQIYNwIIIAAgAmoiAiABKQIgNwIAIAIgASkCKDcCCCAAIAJqIgIgASkCMDcCACACIAEpAjg3AgggACACaiICIAEpAkA3AgAgAiABKQJINwIIIAAgAmoiAiABKQJQNwIAIAIgASkCWDcCCCAAIAJqIgIgASkCYDcCACACIAEpAmg3AgggACACaiICIAEpAnA3AgAgAiABKQJ4NwIIIAAgAmoiAiABKQKAATcCACACIAEpAogBNwIIIAAgAmoiAiABKQKQATcCACACIAEpApgBNwIIIAAgAmoiAiABKQKgATcCACACIAEpAqgBNwIIIAAgAmoiAiABKQKwATcCACACIAEpArgBNwIIIAAgAmoiAiABKQLAATcCACACIAEpAsgBNwIIIAAgAmoiAiABKQLQATcCACACIAEpAtgBNwIIIAAgAmoiAiABKQLgATcCACACIAEpAugBNwIIIAAgAmoiACABKQLwATcCACAAIAEpAvgBNwIIIAQgASkCgAI3AgAgBCAFQQN0IgBqIgQgASkCiAI3AgAgACAEaiIEIAEpApACNwIAIAAgBGoiBCABKQKYAjcCACAAIARqIgQgASkCoAI3AgAgACAEaiIEIAEpAqgCNwIAIAAgBGoiBCABKQKwAjcCACAAIARqIAEpArgCNwIAIAMgASkCwAI3AgAgACADaiIDIAEpAsgCNwIAIAAgA2oiAyABKQLQAjcCACAAIANqIgMgASkC2AI3AgAgACADaiIDIAEpAuACNwIAIAAgA2oiAyABKQLoAjcCACAAIANqIgMgASkC8AI3AgAgACADaiABKQL4AjcCAAsDAAELqAwBCn8CQCABQQRPBEBBACADayIMQQF0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aiICIAYoAgA2AgAgAiAGKAIkNgIMIAIgBigCHDYCBCACIAYoAiA2AgggACAEQQFqNgIQIAZBADYCGCAGKAIUDQAgACABQQFrIgE2AiwLIAEgA0sNAAsMAQsgASgCACECIAAoAgwgACgCECIDQQR0aiIBIAU2AgwgASACNgIAIAEgBzYCCCABIAY2AgQgACADQQFqNgIQIAAoAhwhAwsgACgCACADQQFqECYLC14BAX8gAEHECWoiACgCFCIEIAAoAhBJBH8gACAEQQFqNgIUIAAoAgwgBEEEdGoFQQALIgBFBEBBAA8LIAEgACgCBDYCACACIAAoAgw2AgAgAyAAKAIINgIAIAAoAgALtAMBA38DQCAAIAJBAnRqIgEoAhQiAwRAIAMoAigQBSABKAIUQQA2AiggASgCFCgCVBAFIAEoAhRBADYCVCABKAIUEAUgAUEANgIUCyACQQFqIgJBIEcNAAtBACECA0AgACACQQJ0aiIBKAKUASIDBEAgAygCFBAFIAEoApQBQQA2AhQgASgClAEoAhgQBSABKAKUAUEANgIYIAEoApQBKAIcEAUgASgClAFBADYCHCABKAKUASgCLBAFIAEoApQBQQA2AiwgASgClAEQBSABQQA2ApQBCyACQQFqIgJBgAJHDQALIAAoArAaEAUgAEEANgKwGiAAKAK8CRAFIABBADYCvAkgACgClAkQBSAAQQA2ApQJIAAoArwaIgEEQCABEAUgAEEANgK8GgtBACEBQQAhAwJAIABBxAlqIgIoAgAiAEUNACACKAIcQX9GBEAgACEBDAELIAAhAQNAIAEgA0EobCIAaigCBBAFIAIoAgAiASAAakEANgIEIANBAWoiAyACKAIcQQFqSQ0ACwsgARAFIAJBADYCACACKAIEEAUgAkEANgIEIAIoAgwQBSACQQA2AgwL/tEDAkN/An4jAEGQAWsiGCQAIBhBADYCDAJAAkACQCAAKAKQGkUNACAAKAKUGiABRw0AIBggAEGsGmooAgA2AiAgGCAAQaQaaikCADcDGCAAKQKcGiFIIBhBADYCICAYQQA2AhggGCBINwMQIBggSD4CFCAEIAAoApgaNgIADAELQQYhIgJ/IAEhCAJAAkAgAkEESQ0AIAgtAAANACAILQABDQAgCC0AAiINQQFLDQBBAyEGIAhBA2ohBUECIQcCQANAIAUhCSANQf8BcSIBBH9BACENIAFBAUZBACAHQQFLGw0CQQAFIAdBAWoLIQcgCUEBaiEFIAktAAAhDSAGQQFqIgYgAkcNAAsgBCACNgIAQQEMAwsgBiEBQQAhB0EAIQUDQEEBIAcgDSAJLQAAIgpFaiILQQJGGyAHIApBA0YbIQcCQCAKQQFHDQAgC0ECSQ0AIBggASAGIAtqayICNgIcQQAgC0EDayIBIAEgC0sbIQ0MAwtBACALIAobIQ1BASAFIAtBAksbIAUgChshBSAJQQFqIQkgAUEBaiIBIAJHDQALIBggAiAGIA1qayICNgIcDAELIBggAjYCHEEBIQdBACENCyAYQQA2AiAgGEEANgIYIBggBiAIaiIBNgIUIBggATYCECAEIAYgDWogAmo2AgBBASENAkAgBQ0AQQAhDSAHRQ0AIBgCfyAYKAIcIgZFBEAgASECQQAMAQsgASECQQAhCQNAIAZBAWshBiACLQAAIQUCfwJAIAlBAkcNACAFQQNGBEBBASAGRQ0GGkEBIAItAAFBA0sNBhpBACEJIAJBAWoMAgsgBUEDTw0AQQEMBQsgASAFOgAAQQAgCUEBaiAFGyEJIAFBAWohASACQQFqCyECIAYNAAsgGCgCHAsgASACa2o2AhwLIA0LDQEgACAYKQMQNwKcGiAAQawaaiAYKAIgNgIAIABBpBpqIBgpAxg3AgAgBCgCACEBIAAgCDYClBogACABNgKYGgsgAEEANgKQGkEHISJBASECAkAgGEEQaiIBQQEQA0F/Rg0AIBggAUECEAM2AowBIBggAUEFEAMiATYCiAEgAUECa0EDSQ0AAkAgAUEMSw0AQQEgAXQiCUHAPHFFBEAgCUGgA3FFDQEgGCgCjAFFDQIgAUEGRw0BDAILIBgoAowBDQELQQAhAgsgAg0AIBgoAogBQQFrQQtLBEBBACEiDAELAn8gGEEQaiEGQQAhCSMAQSBrIgUkACAYQQA2AgwCQCAYKAKIASIBQRJLDQBBASABdCIBQcDfH3FFBEAgAUEicUUNASAAQbQKaigCAARAIBhBATYCDCAAQQA2ArQKCyAGIAVBHGoQHyIJDQFB8P8DIQkgACAFKAIcQQJ0aigClAEiDUUNASAAIA0oAgQiAUECdGooAhQiCEUNAQJAIAAoAggiAkEgRg0AIAEgAkYNACAYKAKIAUEFRw0CCwJAIABBmApqKAIAIgEgGCgCjAEiAkYNACABQQAgAhsNACAYQQE2AgwLIBgoAogBIQECQAJAIAAoApQKQQVGBEAgAUEFRw0BDAILIAFBBUcNAQsgGEEBNgIMC0EBIQkgCCgCDCELIwBBIGsiByQAIAcgBigCEDYCECAHIAYpAgg3AwggByAGKQIANwMAAkAgByAHQRxqEAIiAQ0AIAcgB0EcahACIgENACAHIAdBHGoQAiIBDQBBACEBA0AgASICQQFqIQEgCyACdg0ACyAHIAJBAWsQAyIBQX9GBEBBASEBDAELIAUgATYCGEEAIQELIAdBIGokACABDQEgBSgCGCIBIABBnApqKAIARwRAIAAgATYCnAogGEEBNgIMCyAYKAKIAUEFRgRAIAgoAgwhCyAFQRRqIQojAEEgayIHJAAgByAGKAIQNgIQIAcgBikCADcDACAHIAYpAgg3AwgCQCAHIAdBHGoQAiIBDQAgByAHQRxqEAIiAQ0AIAcgB0EcahACIgENAEEAIQEDQCABIgJBAWohASALIAJ2DQALIAcgAkEBaxADQX9GBEBBASEBDAELIAcgChACIQELIAdBIGokACABDQICQCAAKAKUCkEFRwRAIAUoAhQhAQwBCyAAQaAKaigCACIBIAUoAhQiAkYNACAYQQE2AgwgAiEBCyAAQaAKaiABNgIACwJAAkACQCAIKAIQDgIAAQILIBgoAogBIQsjAEEgayIHJAAgByAGKAIQNgIQIAcgBikCCDcDCCAHIAYpAgA3AwACQCAHIAdBHGoQAiIBDQAgByAHQRxqEAIiAQ0AIAcgB0EcahACIgENACAIKAIMIQpBACEBA0AgASICQQFqIQEgCiACdg0ACyAHIAJBAWsQA0F/RgRAQQEhAQwBCyALQQVGBEAgByAHQRxqEAIiAQ0BCyAIKAIUIQtBACEBA0AgASICQQFqIQEgCyACdg0ACyAHIAJBAWsQAyIBQX9GBEBBASEBDAELIAUgATYCCEEAIQELIAdBIGokACABDQMgBSgCCCIBIABBpApqKAIARwRAIAAgATYCpAogGEEBNgIMCyANKAIIRQ0BIBgoAogBIQcgBUEQaiENIwBBIGsiCSQAIAkgBigCEDYCECAJIAYpAgg3AwggCSAGKQIANwMAAkAgCSAJQRxqEAIiAQ0AIAkgCUEcahACIgENACAJIAlBHGoQAiIBDQAgCCgCDCEGQQAhAQNAIAEiAkEBaiEBIAYgAnYNAAsgCSACQQFrEANBf0YEQEEBIQEMAQsgB0EFRgRAIAkgCUEcahACIgENAQsgCCgCFCEGQQAhAQNAIAEiAkEBaiEBIAYgAnYNAAsgCSACQQFrEANBf0YEQEEBIQEMAQsgCSANEAYhAQsgCUEgaiQAIAEiCQ0DIAUoAhAiASAAQagKaigCAEYNASAAIAE2AqgKIBhBATYCDAwBCyAIKAIYDQAgGCgCiAEhCyANKAIIIQogBUEIaiEHIwBBIGsiCSQAIAkgBigCEDYCECAJIAYpAgg3AwggCSAGKQIANwMAAkAgCSAJQRxqEAIiAQ0AIAkgCUEcahACIgENACAJIAlBHGoQAiIBDQAgCCgCDCEGQQAhAQNAIAEiAkEBaiEBIAYgAnYNAAsgCSACQQFrEANBf0YEQEEBIQEMAQsgC0EFRgRAIAkgCUEcahACIgENAQsgCSAHEAYiAQ0AIAoEQCAJIAdBBGoQBiIBDQELQQAhAQsgCUEgaiQAIAEiCQ0CIAUoAggiASAAQawKaigCAEcEQCAAIAE2AqwKIBhBATYCDAsgDSgCCEUNACAFKAIMIgEgAEGwCmooAgBGDQAgACABNgKwCiAYQQE2AgwLIAAgGCkCiAE3ApQKQQAhCQwBCyAYQQE2AgwLIAVBIGokACAJCwRAQQQhIiAJQfD/A0YNAUEIISIMAQsCQCAYKAIMBEACQCAAKAKgCUUNACAAKAIQRQ0AQQkhIiAAKAK0Gg0DAkAgACgCpAlFBEAgAEHECWoiAiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKIAIQJCAAIABBuApqQQAQJQwBCyAAIABBuApqIABB3ApqKAIAECULIARBADYCACAAQQA2ApwJIABBATYCkBoMAgsgAEEANgKcCSAAQQA2AqQJC0EAISICQAJAAkAgGCgCiAFBAWsOCAIEBAQCBAABBAsCfyMAQRBrIgUkACAYQShqQQBB3AAQBCEDAkAgGEEQaiIBQQgQAyICQX9GBEBBASECDAELIAMgAjYCACABQQEQAxogAUEBEAMaIAFBARADQX9GBEBBASECDAELIAFBBRADQX9GBEBBASECDAELIAFBCBADIgJBf0YEQEEBIQIMAQsgAyACNgIEIAEgA0EIahACIgINACADKAIIQR9LBEBBASECDAELIAEgBUEMahACIgINAEEBIQIgBSgCDCIEQQxLDQAgA0EBIARBBGp0NgIMIAEgBUEMahACIgINACAFKAIMIgJBAksEQEEBIQIMAQsgAyACNgIQAkACQAJAIAIOAgABAgsgASAFQQxqEAIiAg0CIAUoAgwiAkEMSwRAQQEhAgwDCyADQQEgAkEEanQ2AhQMAQtBASECIAFBARADIgRBf0YNASADIARBAUY2AhggASADQRxqEAYiAg0BIAEgA0EgahAGIgINASABIANBJGoQAiICDQFBASECIAMoAiQiBEH/AUsNASAEBEAgAyAEQQJ0EAoiAjYCKCACRQRAQf//AyECDAMLIAEgAhAGIgINAkEBIQYDQCAGIAMoAiRPDQIgBkECdCECIAZBAWohBiABIAIgAygCKGoQBiICRQ0ACwwCCyADQQA2AigLIAEgA0EsahACIgINAEEBIQIgAygCLEEQSw0AIAFBARADIgRBf0YNACADIARBAUY2AjAgASAFQQxqEAIiAg0AIAMgBSgCDEEBajYCNCABIAVBDGoQAiICDQBBASECIAMgBSgCDEEBajYCOCABQQEQA0EBakECSQ0AIAFBARADQX9GDQAgAUEBEAMiBEF/Rg0AIAMgBEEBRiICNgI8AkAgAkUEQCADKAI4IQkgAygCNCEGDAELIAEgA0FAaxACIgINASABIANBxABqEAIiAg0BIAEgA0HIAGoQAiICDQEgASADQcwAahACIgINAUEBIQIgAygCQCADKAJEQX9zIAMoAjQiBkEDdGpKDQEgAygCSCADKAJMQX9zIAMoAjgiCUEDdGpKDQELIAYgCWwhAkH/////ByEGAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIEQQprDioAAQIDEBAQEBAQBAUGEBAQEBAQEAcICRAQEBAQEBAKCwwQEBAQEBAQDQ4QC0GApAkhBCACQeMASwwOC0GAjBUhBCACQYwDSwwNC0GA2DchBCACQYwDSwwMC0GA2DchBCACQYwDSwwLC0GA2DchBCACQYwDSwwKC0GAsO8AIQQgAkGYBksMCQtBgOy9ASEEIAJB1AxLDAgLQYDsvQEhBCACQdQMSwwHC0GA8KUDIQQgAkGQHEsMBgtBgIDg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OA0CIAEoAgAhEANAQQAhBEH/////ByEDQQAhAgNAIBAgAkEobGoiCigCGARAIAogBCAKKAIQIgogA0giDxshBCAKIAMgDxshAwsgAkEBaiICIAdNDQALAkAgBEUNACABKAIMIAEoAhAiA0EEdGoiAiAEKAIANgIAIAIgBCgCJDYCDCACIAQoAhw2AgQgAiAEKAIgNgIIIAEgA0EBajYCECAEQQA2AhggBCgCFA0AIAEgBkEBayIGNgIsCyAGIAdPDQALCyABKAIAIgMgB0EobGoiAiAFNgIMIAJCgICAgBA3AhAgAkEANgIYIAIgBTYCCCABIAlBAWo2AiggASAGQQFqNgIsIAMgB0EBahAmIAVBAWogASgCICIGcCIFIAhHDQALAkAgASgCECIJRQ0AIAEoAgAiBiABKAIcIgNBKGxqIgUoAgAhBCABKAIMIQdBACECA0AgBCAHIAJBBHRqKAIARwRAIAkgAkEBaiICRw0BDAILCyADRQ0AQQAhAgNAIAsgBiACQShsaiIJKAIARwRAIAMgAkEBaiICRw0BDAILCyAJIAQ2AgAgBSALNgIACyANDQQgASgCMCECDAILA0AMAAsACyANDQILIAIgCEYNACABIAggASgCICIBakEBayABcDYCMAtBAAwCCyABIAg2AjBBAAwBCyANCw0DCyAAQcQJaiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKCyAAQdgKaiAdQdwHEAghFCAAQQE2AqQJIAAgGCkDiAE3AtAKIAAoApQJIQ0gAEGYC2ooAgAhA0EAIQlBACEQIAAoAhAiASgCNCIKIAEoAjgiBWwhBgJAIAAoAgwiASgCDCIHQQFGBEAgDUEAIAZBAnQQBBoMAQsCQAJAAkAgASgCECICQQNrQQJNBEAgASgCJCADbCIDIAYgAyAGSRshDyABKAIgIQMgAkF+cUEERw0BIAYgD2sgDyADGyEJCwJAAkACQAJAAkACQCACDgYBAgMABQQACyAGRQ0HIAZBA3EhECABKAIsIQJBACEBIAZBAWtBA08EQCAGQXxxIQQDQCANIAFBAnQiA2ogAiADaigCADYCACANIANBBHIiCWogAiAJaigCADYCACANIANBCHIiCWogAiAJaigCADYCACANIANBDHIiA2ogAiADaigCADYCACABQQRqIQEgBEEEayIEDQALCyAQRQ0HA0AgDSABQQJ0IgNqIAIgA2ooAgA2AgAgAUEBaiEBIBBBAWsiEA0ACwwHCyAHRQ0FIAEoAhQhA0EAIQkDQEEAIRAgBiAJTQ0HA0AgAyAQQQJ0aiIFKAIAIQQCQCAGIAlNDQAgBEUNAEEBIQEgCSECA0AgDSACQQJ0aiAQNgIAIAEgBSgCACIETw0BIAEgCWoiAiAGTw0BIAFBAWohAQwACwALIAcgEEEBaiIQS0EAIAYgBCAJaiIJSxsNAAsgBiAJSw0ACwwGCyAGRQ0FQQAhAQNAIA0gAUECdGogASAKbiICIAdsQQF2IAEgAiAKbGtqIAdwNgIAIAFBAWoiASAGRw0ACwwFCyABKAIcIQUgASgCGCEIAkAgBkUNACAHQQFrIQEgBkEHcSEQQQAhCSAGQQFrQQdPBEAgBkF4cSEEA0AgDSAJQQJ0IgJqIAE2AgAgDSACQQRyaiABNgIAIA0gAkEIcmogATYCACANIAJBDHJqIAE2AgAgDSACQRByaiABNgIAIA0gAkEUcmogATYCACANIAJBGHJqIAE2AgAgDSACQRxyaiABNgIAIAlBCGohCSAEQQhrIgQNAAsLIBBFDQADQCANIAlBAnRqIAE2AgAgCUEBaiEJIBBBAWsiEA0ACwsgB0ECayEBA0ACQCAIIAEiAkECdCIBaigCACIDIApuIgQgASAFaigCACIBIApuIglLDQAgAyAEIApsayIDIAEgCSAKbGsiBksNAANAIAQgCmwhByADIQEDQCANIAEgB2pBAnRqIAI2AgAgAUEBaiIBIAZNDQALIARBAWoiBCAJTQ0ACwsgAkEBayEBIAINAAsMBAsgCkUNAyAFRQ0DQQEgASgCICIHayEIIAVBfnEhBiAFQQFxIQtBACEDA0AgAyEBQQAhAiAGIQQgBUEBRwRAA0AgDSACIApsIBBqQQJ0aiAHIAggASAJSRs2AgAgDSACQQFyIApsIBBqQQJ0aiAHIAggAUEBaiAJSRs2AgAgAkECaiECIAFBAmohASAEQQJrIgQNAAsLIAsEQCANIAIgCmwgEGpBAnRqIAcgCCABIAlJGzYCAAsgAyAFaiEDIBBBAWoiECAKRw0ACwwDCyAGRQ0CQQEgASgCICICayEDIAZBA3EhBEEAIQEgBkEBa0EDTwRAIAZBfHEhBQNAIA0gAUECdGogAiADIAEgCUkbNgIAIA0gAUEBciIGQQJ0aiACIAMgBiAJSRs2AgAgDSABQQJyIgZBAnRqIAIgAyAGIAlJGzYCACANIAFBA3IiBkECdGogAiADIAYgCUkbNgIAIAFBBGohASAFQQRrIgUNAAsLIARFDQIDQCANIAFBAnRqIAIgAyABIAlJGzYCACABQQFqIQEgBEEBayIEDQALDAILAkAgBkUNACAGQQdxIQlBACECIAZBAWtBB08EQCAGQXhxIRADQCANIAJBAnQiAWpBATYCACANIAFBBHJqQQE2AgAgDSABQQhyakEBNgIAIA0gAUEMcmpBATYCACANIAFBEHJqQQE2AgAgDSABQRRyakEBNgIAIA0gAUEYcmpBATYCACANIAFBHHJqQQE2AgAgAkEIaiECIBBBCGsiEA0ACwsgCUUNAANAIA0gAkECdGpBATYCACACQQFqIQIgCUEBayIJDQALCyAPRQ0BIApBAWshDCAFQQFrIR1BASADQQF0IgFrIQQgAUEBayEGIANBAWshAiAFIANrQQF2IgghCyAKIANrQQF2IgchCSAIIQUgByEBQQAhEANAIA0gBSAKbCABakECdGoiESgCACIbQQFGBEAgEUEANgIACyAbQQFGIRECQAJAIAJBf0cNACABIAlHDQBBACECIAYhAyAJQQEgCUEBShtBAWsiASEJDAELAkAgAkEBRw0AIAEgB0cNAEEAIQIgBCEDIAdBAWoiASAMIAEgDEgbIgEhBwwBCwJAIANBf0cNACAFIAtHDQBBACEDIAQhAiALQQEgC0EBShtBAWsiBSELDAELAkAgA0EBRw0AIAUgCEcNAEEAIQMgBiECIAhBAWoiBSAdIAUgHUgbIgUhCAwBCyADIAVqIQUgASACaiEBCyAQIBFqIhAgD0kNAAsMAQsgBkUNAANADAALAAsLIABBxAlqIggQJEEPISICfyAAQeQKaigCACEFIABBhAtqKAIAIQlBACECIAgoAigiAwRAIAgoAgAhBANAIAQgAkEobGoiASgCFEEBa0EBTQRAIAEgBSABKAIMIgFJBH8gASAIKAIgawUgAQs2AggLIAJBAWoiAiADRw0ACwtBACAAQZwLaiINKAIARQ0AGkEAIQZBACANKAIEIgJBAksNABogBSEBA0ACQAJAAkACQAJAAkACQAJAIAIOAwABAwELIAEg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IAEgAmoiAS0AADoABCADIAEgAmoiAS0AADoABSADIAEgAmoiAS0AADoABiADIAEgAmoiAS0AADoAByADIAEgAmoiAS0AADoACCADIAEgAmoiAS0AADoACSADIAEgAmoiAS0AADoACiADIAEgAmoiAS0AADoACyADIAEgAmoiAS0AADoADCADIAEgAmoiAS0AADoADSADIAEgAmoiAS0AADoADiADIAEgAmotAAA6AA8gA0EQaiEDCyAdKAIAIAUgEGwiEEEIdGogDyAFQQN0IgFsQQN0aiALQQN0aiEKIAFB+P///wdxIQEgDkUEQCAIIAogAUF/c2oiAi0AADoAACAIIAogAWstAAA6AAEgCCACLQACOgACIAggAi0AAzoAAyAIIAItAAQ6AAQgCCACLQAFOgAFIAggAi0ABjoABiAIIAItAAc6AAcgCCACQQhqIgItAAA6AAggCCAQQQZ0IAJqIgJBCGstAAA6AAkgCCACQQdrLQAAOgAKIAggAkEGay0AADoACyAIIAJBBWstAAA6AAwgCCACQQRrLQAAOgANIAggAkEDay0AADoADiAIIAJBAmstAAA6AA8gCCACQQFrLQAAOgAQIAggAi0AADoAEQsgC0UNACADIApBAWsiAi0AADoAACADIAEgAmoiAi0AADoAASADIAEgAmoiAi0AADoAAiADIAEgAmoiAi0AADoAAyADIAEgAmoiAi0AADoABCADIAEgAmoiAi0AADoABSADIAEgAmoiAi0AADoABiADIAEgAmoiAi0AADoAByADIAEgAmogECAFa0EGdGoiAi0AADoACCADIAEgAmoiAi0AADoACSADIAEgAmoiAi0AADoACiADIAEgAmoiAi0AADoACyADIAEgAmoiAi0AADoADCADIAEgAmoiAi0AADoADSADIAEgAmoiAi0AADoADiADIAEgAmotAAA6AA8LAkACQEECIAYoAgAiAUEGRyABQQZJG0EBRgRAAn8gDCEDIA1ByAJqIQgCfyAGKALIASIBBEAgBigCBCABKAIERgwBC0EACyELAkAgE0UNACALRQ0AQQAgC0ECIAYoAsgBKAIAIgFBBkcgAUEGSRtBAkYbIQsLAn8gBigCzAEiAQRAIAYoAgQgASgCBEYMAQtBAAshBQJAIBNFDQAgBUUNAEEAIAVBAiAGKALMASgCACIBQQZHIAFBBkkbQQJGGyEFCwJ/IAYoAtQBIgEEQCAGKAIEIAEoAgRGDAELQQALIQICQCATRQ0AIAJFDQBBAiAGKALUASgCACIBQQZHIAFBBkkbQQJHIQILAkACQAJAAkACQAJAIAYoAgBBAWpBA3EOAwABAgMLQQEgBUUNBRpBASEHIAMhAQNAIAEgES0AIToAACABIBEtACI6AAEgASARLQAjOgACIAEgES0AJDoAAyABIBEtACU6AAQgASARLQAmOgAFIAEgES0AJzoABiABIBEtACg6AAcgASARLQApOgAIIAEgES0AKjoACSABIBEtACs6AAogASARLQAsOgALIAEgES0ALToADCABIBEtAC46AA0gASARLQAvOgAOIAEgES0AMDoADyAHQRBGDQQgAUEQaiEBIAdBAWohBwwACwALQQEgC0UNBBogAyEBA0AgASAHIBFqIgItAAA6AAAgASACLQAAOgABIAEgAi0AADoAAiABIAItAAA6AAMgASACLQAAOgAEIAEgAi0AADoABSABIAItAAA6AAYgASACLQAAOgAHIAEgAi0AADoACCABIAItAAA6AAkgASACLQAAOgAKIAEgAi0AADoACyABIAItAAA6AAwgASACLQAAOgANIAEgAi0AADoADiABIAItAAA6AA8gAUEQaiEBIAdBAWoiB0EQRw0ACwwCCyADAn8CQCALRQ0AIAVFDQAgES0ADyARLQAwIBEtAA4gES0ALyARLQANIBEtAC4gES0ADCARLQAtIBEtAAsgES0ALCARLQAKIBEtACsgES0ACSARLQAqIBEtAAggES0AKSARLQAHIBEtACggES0ABiARLQAnIBEtAAUgES0AJiARLQAEIBEtACUgES0AAyARLQAkIBEtAAIgES0AIyARLQABIBEtACIgES0AISARLQAAampqampqampqampqampqampqampqampqampqampqakEQakEFdgwBCyALBEAgES0ADyARLQAOIBEtAA0gES0ADCARLQALIBEtAAogES0ACSARLQAIIBEtAAcgES0ABiARLQAFIBEtAAQgES0AAyARLQACIBEtAAAgES0AAWpqampqampqampqampqakEIakEEdgwBC0GAASAFRQ0AGiARLQAwIBEtAC8gES0ALiARLQAtIBEtACwgES0AKyARLQAqIBEtACkgES0AKCAR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BS0AAyAFLQACIAUtAAAgBS0AAWpqakECakECdiIDCyEGIAIgA0H/AXFBgYKECGwiAzYAHCACIAZB/wFxQYGChAhsIgY2ABggAiADNgAUIAIgBjYAECACIAM2AAwgAiAGNgAIIAIgAzYABCACIAY2AAACQCAZBEAgBS0AByAFLQAGIAUtAAUgBS0ABGpqaiIKQQJqQQJ2IQMgEEUEQCADIQYMAgsgAyEGIActAAggBy0AByAHLQAGIAogBy0ABWpqampBBGpBA3YhAwwBCyAQRQRAQYABIQNBgAEhBgwBCyAHLQAIIActAAcgBy0ABSAHLQAGampqQQJqQQJ2IQMgBy0ABCAHLQADIActAAEgBy0AAmpqakECakECdiEGCyACIANB/wFxQYGChAhsIgM2ADwgAiAGQf8BcUGBgoQIbCIGNgA4IAIgAzYANCACIAY2ADAgAiADNgAsIAIgBjYAKCACIAM2ACQgAiAGNgAgDAQLIBkNAkEBDAULQQEgEEUNBBogAiAHLQABOgAAIAIgBy0AAToACCACIActAAE6ABAgAiAHLQABOgAYIAIgBy0AAToAICACIActAAE6ACggAiAHLQABOgAwIAIgBy0AAToAOCACIActAAI6AAEgAiAHLQACOgAJIAIgBy0AAjoAESACIActAAI6ABkgAiAHLQACOgAhIAIgBy0AAjoAKSACIActAAI6ADEgAiAHLQACOgA5IAIgBy0AAzoAAiACIActAAM6AAogAiAHLQADOgASIAIgBy0AAzoAGiACIActAAM6ACIgAiAHLQADOgAqIAIgBy0AAzoAMiACIActAAM6ADogAiAHLQAEOgADIAIgBy0ABDoACyACIActAAQ6ABMgAiAHLQAEOgAbIAIgBy0ABDoAIyACIActAAQ6ACsgAiAHLQAEOgAzIAIgBy0ABDoAOyACIActAAU6AAQgAiAHLQAFOgAMIAIgBy0ABToAFCACIActAAU6ABwgAiAHLQAFOgAkIAIgBy0ABToALCACIActAAU6ADQgAiAHLQAFOgA8IAIgBy0ABjoABSACIActAAY6AA0gAiAHLQAGOgAVIAIgBy0ABjoAHSACIActAAY6ACUgAiAHLQAGOgAtIAIgBy0ABjoANSACIActAAY6AD0gAiAHLQAHOgAGIAIgBy0ABzoADiACIActAAc6ABYgAiAHLQAHOgAeIAIgBy0ABzoAJiACIActAAc6AC4gAiAHLQAHOgA2IAIgBy0ABzoAPiACIActAAg6AAcgAiAHLQAIOgAPIAIgBy0ACDoAFyACIActAAg6AB8gAiAHLQAIOgAnIAIgBy0ACDoALyACIActAAg6ADcgAiAHLQAIOgA/DAILQQEgFUUNAxogBy0ABSAHLQADayAHLQAGIActAAJrQQF0aiAHLQAHIActAAFrQQNsaiAHLQAIIgMgBy0AACIKa0ECdGpBEWxBEGpBBXUiBkF9bCEXIAMgBS0AByIOakEEdCAFLQAEIAUtAAJrIA4gCmtBAnRqIAUtAAUgBS0AAWtBAXRqIAUtAAYgBS0AAGtBA2xqQRFsQRBqQQV1IhxBfWxqQRBqIQ5BByEKIAIhAwNAIAMgDiAXaiIeQQV1QbAuai0AADoAACADIAYgHmoiHkEFdUGwLmotAAA6AAEgAyAGIB5qIh5BBXVBsC5qLQAAOgACIAMgBiAeaiIeQQV1QbAuai0AADoAAyADIAYgHmoiHkEFdUGwLmotAAA6AAQgAyAGIB5qIh5BBXVBsC5qLQAAOgAFIAMgBiAeaiIeQQV1QbAuai0AADoABiADIAYgHmpBBXVBsC5qLQAAOgAHIApFDQIgDiAcaiEOIANBCGohAyAKQQFrIQoMAAsACyACIAUtAAA6AAAgAiAFLQAAOgABIAIgBS0AADoAAiACIAUtAAA6AAMgAiAFLQAAOgAEIAIgBS0AADoABSACIAUtAAA6AAYgAiAFLQAAOgAHIAIgBS0AAToACCACIAUtAAE6AAkgAiAFLQABOgAKIAIgBS0AAToACyACIAUtAAE6AAwgAiAFLQABOgANIAIgBS0AAToADiACIAUtAAE6AA8gAiAFLQACOgAQIAIgBS0AAjoAESACIAUtAAI6ABIgAiAFLQACOgATIAIgBS0AAjoAFCACIAUtAAI6ABUgAiAFLQACOgAWIAIgBS0AAjoAFyACIAUtAAM6ABggAiAFLQADOgAZIAIgBS0AAzoAGiACIAUtAAM6ABsgAiAFLQADOgAcIAIgBS0AAzoAHSACIAUtAAM6AB4gAiAFLQADOgAfIAIgBS0ABDoAICACIAUtAAQ6ACEgAiAFLQAEOgAiIAIgBS0ABDoAIyACIAUtAAQ6ACQgAiAFLQAEOgAlIAIgBS0ABDoAJiACIAUtAAQ6ACcgAiAFLQAFOgAoIAIgBS0ABToAKSACIAUtAAU6ACogAiAFLQAFOgArIAIgBS0ABToALCACIAUtAAU6AC0gAiAFLQAFOgAuIAIgBS0ABToALyACIAUtAAY6ADAgAiAFLQAGOgAxIAIgBS0ABjoAMiACIAUtAAY6ADMgAiAFLQAGOgA0IAIgBS0ABjoANSACIAUtAAY6ADYgAiAFLQAGOgA3IAIgBS0ABzoAOCACIAUtAAc6ADkgAiAFLQAHOgA6IAIgBS0ABzoAOyACIAUtAAc6ADwgAiAFLQAHOgA9IAIgBS0ABzoAPiACIAUtAAc6AD8LQQAhDgNAIAggDkEGdGoiAygCACIXQf///wdHBEAgAygCBCEcIAIgCyALQQNxIAtBEEkiBhtBAnQiHkHwKWooAgBBEEEIIAYbIgpsaiAeQbApaigCAGoiBiAXIAYtAABqQbAuai0AADoAACADKAIIIRcgBiAcIAYtAAFqQbAuai0AADoAASADKAIMIRwgBiAXIAYtAAJqQbAuai0AADoAAiAGIBwgBi0AA2pBsC5qLQAAOgADIAMoAhQhFyAGIApqIgYgAygCECAGLQAAakGwLmotAAA6AAAgAygCGCEcIAYgFyAGLQABakGwLmotAAA6AAEgAygCHCEXIAYgHCAGLQACakGwLmotAAA6AAIgBiAXIAYtAANqQbAuai0AADoAAyADKAIkIRcgBiAKaiIGIAMoAiAgBi0AAGpBsC5qLQAAOgAAIAMoAighHCAGIBcgBi0AAWpBsC5qLQAAOgABIAMoAiwhFyAGIBwgBi0AAmpBsC5qLQAAOgACIAYgFyAGLQADakGwLmotAAA6AAMgAygCNCEXIAYgCmoiBiADKAIwIAYtAABqQbAuai0AADoAACADKAI4IQogBiAXIAYtAAFqQbAuai0AADoAASADKAI8IQMgBiAKIAYtAAJqQbAuai0AADoAAiAGIAMgBi0AA2pBsC5qLQAAOgADCyALQQFqIQsgDkEBaiIOQQRHDQALIAhBgAJqIQggBUEIaiEFIAdBCWohByACQUBrIQIgD0EBaiIPQQJHDQALQQALDQBBACEBIBIoAsQBQQFLDQAgHSAMEBgLIBFB0ABqJAAgASIDRQ0BDAILIAEhC0EAIQNBACECQQAhCkEAIRNBACEPQQAhEkEAIRkjAEEgayIQJAAgECAdKAIEIgE2AgwgECAdKAIINgIQIAQgAW4iBUEEdCERIAQgASAFbGtBBHQhDgJAAkACfwJAAn8CQAJAAkACQAJAIAYiBSgCACIWDgQAAAECAwsgBSgCBCEBQQEhCkF/IQhBACEGQX8hDEEBIQMCf0EAIAUoAsgBIgdFDQAaQQAgBygCBCABRw0AGkEAIQNBACAHKAIAQQVLDQAaIAcoAmghDCAHKAKYASICQRB2CyEHAkAgBSgCzAEiE0UNACABIBMoAgRHDQBBACEKIBMoAgBBBUsNACATKAKsASISQRB2IQYgEygCbCEICyANKAKQASETAkAgFkUEQCADIApyDQEgAkH//wNxIAdBEHRyIAxyRQ0BIBJB//8DcSAGQRB0ciAIckUNAQsgDS8BoAEhGQJAAn8CQAJAIAUoAtABIg9FDQAgDygCBCABRw0AIA8oAgBBBUsNASAPKAJsIQMgDygCrAEMAgsCQCAFKALUASIPRQ0AIA8oAgQgAUcNACAPKAIAQQVLDQEgDygCcCEDIA8oAsABDAILIAMgCkEBc3JBAUcNAgtBfyEDQQALIQEgCCATRiIKIAwgE0YiCGogAyATRmpBAUcEQCAGIAcgBkEQdEEQdSIGIAdBEHRBEHUiA0oiBxsiCCADIAYgAyADIAZKGyAHGyIGIAFBEHUiAyADIAZIGyAIQRB0QRB1IANIGyEHIBIgAiASQRB0QRB1IgMgAkEQdEEQdSICSiIGGyIIQf//A3EgAiADIAIgAiADShsgBhsiAiABQRB0QRB1IgEgASACSBsgCEEQdEEQdSABSBshAgwBCyACIBIgCBshAiAHIAYgCBshByAIDQAgCg0AIAFBEHYhByABIQILQQEhCCACIBlqIg9BEHRBEHVBgEBrQf//AEsNCSAHIA0vAaIBaiIZQRB0QRB1QYAQakH/H0sNCQsgKCATEBMiAkUEQEEBIQgMCQsgBSAZOwHCASAFIA87AcABIAUgAjYCdCAFIBM2AmQgBSACNgKAASAFIAI2AnwgBSACNgJ4IAUgEzYCcCAFIBM2AmwgBSATNgJoIAUgBSgCwAEiATYCvAEgBSABNgK4ASAFIAE2ArQBIAUgATYCsAEgBSABNgKsASAFIAE2AqgBIAUgATYCpAEgBSABNgKgASAFIAE2ApwBIAUgATYCmAEgBSABNgKUASAFIAE2ApABIAUgATYCjAEgBSABNgKIASAFIAE2AoQBIBAgAjYCCCALIAVBhAFqIBBBCGogDiARQQBBAEEQQRAQDwwHCyANKAKQASEMIAUoAgQhAyAFKALMASIBRQ0EIAMgASgCBEcNBCABKAIAQQZPBEAgDEF/RiECQQEhCkEAIQZBAAwGCyABKAJsIAxGIQJBASEKIAEoAqwBIgZBEHYMBQsgDSgCkAEhEiAFKAIEIQIgBSgCyAEiAUUNASACIAEoAgRHDQECfyABKAIAQQZPBEAgEkF/RiEMQQAhBkEADAELIAEoAmggEkYhDCABKAKYASIGQRB2CyEDQQAMAgsgBUGEAWohDANAAn8gDSATQQJ0IhJqIhciJCgCsAEiAUECTQRAIAFBAnRBnDVqKAIADAELQQQLIR4gBSASaiIBIBcoAsABNgJkIAEgKCAXKALAARATIgE2AnQgAUUEQEEBIQgMBwsgHgRAIAwgE0EEdCIWaiImISUgDCAWQQxyaiIaQQJqISEgDCAWQQhyaiIqIS4gDCAWQQRyaiIfIStBACECA0AgDSAWaiACQQJ0aiIBLwHSASEsIAEvAdABIS0gFygCwAEhHEEBIQ9BfyEZAn8CQCAFIBNBB3QgJCgCsAEiJ0EFdGogAkEDdGoiBkGwGWooAgAQESIDRQ0AQQAhB0EAIQFBfyADKAIEIAUoAgRHDQEaQQAhDyADKAIAQQVLDQAgAyAGQbQZai0AACIIQQJ0aigChAEiAUEQdiEHIAMgCEH8AXFqKAJkDAELQQAhB0EAIQFBfwshLwJAAkACQCAFIAZBsB1qKAIAEBEiFUUEQEEAIQMMAQtBACEDIBUoAgQgBSgCBEYNAQtBACEKQQAhCAwBC0EBIQggFSgCAEEFSwRAQQAhCgwBCyAVIAZBtB1qLQAAIhlBAnRqKAKEASIKQRB2IQMgFSAZQfwBcWooAmQhGQsCQAJ/AkACQCAFIAZBsCFqKAIAEBEiFUUNACAVKAIEIAUoAgRHDQAgFSgCAEEFSw0BIBUgBkG0IWotAAAiBkH8AXFqKAJkIQ8gFSAGQQJ0aigChAEMAgsCQCAFIAZBsCVqKAIAEBEiFUUNACAVKAIEIAUoAgRHDQAgFSgCAEEFSw0BIBUgBkG0JWotAAAiBkH8AXFqKAJkIQ8gFSAGQQJ0aigChAEMAgsgCCAPckEBRw0CC0F/IQ9BAAshBiAZIBxGIhkgHCAvRiIIaiAPIBxGakEBRwRAIAMgByADQRB0QRB1IgggB0EQdEEQdSIDSiIHGyIPIAMgCCADIAMgCEobIAcbIgcgBkEQdSIDIAMgB0gbIA9BEHRBEHUgA0gbIQcgCiABIApBEHRBEHUiAyABQRB0QRB1IgFKIggbIgpB//8DcSABIAMgASABIANKGyAIGyIDIAZBEHRBEHUiASABIANIGyAKQRB0QRB1IAFIGyEBDAELIAEgCiAIGyEBIAcgAyAIGyEHIAgNACAZDQAgBkEQdiEHIAYhAQtBASEIIAEgLWoiAUEQdEEQdUGAQGtB//8ASw0IIAcgLGoiA0EQdEEQdUGAEGpB/x9LDQgCQAJ/AkACQAJAAkAgJw4EAAECAwULICYgATsBACAlIAM7AQIgHyABOwEAICsgAzsBAiAqIAE7AQAgLiADOwECIBogATsBACAhDAMLIAwgAkEBdCASakECdCIGaiIHIAM7AQIgByABOwEAIAwgBkEEcmoiBiABOwEAIAZBAmoMAgsgBSACIBJqQQJ0aiIGIAE7AYwBIAYgAzsBhgEgBiABOwGEASAGQY4BagwBCyAFIAIgEmpBAnRqIgYgATsBhAEgBkGGAWoLIAM7AQALIAJBAWoiAiAeRw0ACwsgE0EBaiITQQRHDQALQQAhAgNAIBAgBSACQQJ0IgZqKAJ0NgIIIAJBAUtBA3QhASACQQN0QQhxIQMCQAJAAkACQAJAIAYgDWooArABDgMAAQIDCyALIAUgAkEEdGpBhAFqIBBBCGogDiARIAMgAUEIQQgQDwwDCyALIAUgAkEEdGoiBkGEAWogEEEIaiAOIBEgAyABQQhBBBAPIAsgBkGMAWogEEEIaiAOIBEgAyABQQRyQQhBBBAPDAILIAsgBSACQQR0aiIGQYQBaiAQQQhqIA4gESADIAFBBEEIEA8gCyAGQYgBaiAQQQhqIA4gESADQQRyIAFBBEEIEA8MAQsgCyAFIAJBBHRqIgZBhAFqIBBBCGogDiARIAMgAUEEQQQQDyALIAZBiAFqIBBBCGogDiARIANBBHIiByABQQRBBBAPIAsgBkGMAWogEEEIaiAOIBEgAyABQQRyIgFBBEEEEA8gCyAGQZABaiAQQQhqIA4gESAHIAFBBEEEEA8LIAJBAWoiAkEERw0ACwwECyASQX9GIQxBACEGQQELIQcgDS8BoAEhEwJAAkAgDA0AAn8CfwJAAkAgBSgCzAEiAUUNACABKAIEIAJHDQAgASgCAEEGTw0BIAEoAmwgEkYhDCABKAJwIQogASgCvAEhCCABKAKsASIBQRB2DAMLAkAgBSgC1AEiAUUNACABKAIEIAJHDQAgASgCAEEGTw0BIBJBf0YhDCABKAJwIQogASgCwAEMAgsgB0UNAwtBfyEKIBJBf0YhDEEACyEIQQAhAUEACyEHIAwgCiASRmpBAUcEQCAHIAMgB0EQdEEQdSIHIANBEHRBEHUiAkoiAxsiCiACIAcgAiACIAdKGyADGyIDIAhBEHUiAiACIANIGyAKQRB0QRB1IAJIGyEHIAEgBiABQRB0QRB1IgIgBkEQdEEQdSIBSiIDGyIGQf//A3EgASACIAEgASACShsgAxsiAiAIQRB0QRB1IgEgASACSBsgBkEQdEEQdSABSBshAQwCCyAMDQEgCEEQdiEHIAghAQwBCyADIQcgBiEBC0EBIQggASATaiICQRB0QRB1QYBAa0H//wBLDQMgByANLwGiAWoiA0EQdEEQdUGAEGpB/x9LDQMgKCASEBMiAUUNAyAFIAM7AbIBIAUgAjsBsAEgBSABNgJ0IAUgEjYCZCAFIAE2AnwgBSASNgJsIAUgBSgCsAEiATYCrAEgBSABNgKoASAFIAE2AqQBIAUgATYCkAEgBSABNgKMASAFIAE2AogBIAUgATYChAEgDSgClAEhByAFKAIEIQwCQAJAIAUoAtABIgJFDQAgAigCBCAMRw0AQQAhCiACKAIAQQVLBEBBfyEDQQAhAgwCCyACKAJsIQMgAigCrAEhAgwBC0EBIQpBfyEDQQAhAiAFKALMASIGRQ0AIAYoAgQgDEcNAEEAIQogBigCAEEFSw0AIAYoAmwhAyAGKAKwASECCyANLwGkASETAkAgAyAHRwRAIAFBEHYhAwJ/An8CQCAFKALMASIGRQ0AIAYoAgQgDEcNACAHQX9GIAYoAgBBBk8NARogBigCcCAHRiEMIAYoArwBIg9BEHYMAgsgCg0DIAdBf0YLIQxBAAshBiAMIAcgEkYiCmpBAUcEQCAGIAMgBkEQdEEQdSIGIANBEHRBEHVKIgobIgwgAUEQdSIDIAYgAyADIAZKGyAKGyIGIAJBEHUiAyADIAZIGyAMQRB0QRB1IANIGyEDIA8gASAPQRB0QRB1IgYgAUEQdEEQdSIBSiIKGyIPQf//A3EgASAGIAEgASAGShsgChsiBiACQRB0QRB1IgEgASAGSBsgD0EQdEEQdSABSBshAQwCCyAKDQEgDARAIA9B//8DcSAGQRB0ciEBIAYhAwwCCwsgAkEQdiEDIAIhAQsgASATaiICQRB0QRB1QYBAa0H//wBLDQMgDS8BpgEgA2oiA0EQdEEQdUGAEGpB/x9LDQMgKCAHEBMiAUUNAyAFIAM7AcIBIAUgAjsBwAEgBSABNgKAASAFIAE2AnggBSAHNgJwIAUgBzYCaCAFIAUoAsABIgE2ArwBIAUgATYCuAEgBSABNgK0ASAFIAE2AqABIAUgATYCnAEgBSABNgKYASAFQZQBaiICIAE2AgAgECAFKAJ0NgIIIAsgBUGEAWogEEEIaiAOIBFBAEEAQQhBEBAPIBAgBSgCeDYCCCALIAIgEEEIaiAOIBFBCEEAQQhBEBAPDAILIAxBf0YhAkEAIQZBAAshByANLwGgASETAkAgAgRAIAchAiAGIQEMAQtBASESQX8hD0EAIQICQCAFKALIASIIRQRAQQAhAQwBCyADIAgoAgRHBEBBACEBDAELQQAhEiAIKAIAQQVLBEBBACEBDAELIAgoApgBIgFBEHYhAiAIKAJoIQ8LAn8CQAJAIAUoAtABIghFDQAgCCgCBCADRw0AIAgoAgBBBUsNASAIKAJsIQogCCgCrAEMAgsCQCAFKALUASIIRQ0AIAgoAgQgA0cNACAIKAIAQQVLDQEgCCgCcCEKIAgoAsABDAILIAogEnJBAUcNAgtBfyEKQQALIQMgDCAPRiIIIAogDEZqQQFHBEAgByACIAdBEHRBEHUiByACQRB0QRB1IgJKIggbIgogAiAHIAIgAiAHShsgCBsiByADQRB1IgIgAiAHSBsgCkEQdEEQdSACSBshAiAGIAEgBkEQdEEQdSIGIAFBEHRBEHUiAUoiBxsiCEH//wNxIAEgBiABIAEgBkobIAcbIgYgA0EQdEEQdSIBIAEgBkgbIAhBEHRBEHUgAUgbIQEMAQsgCA0AIANBEHYhAiADIQELQQEhCCABIBNqIgNBEHRBEHVBgEBrQf//AEsNASACIA0vAaIBaiICQRB0QRB1QYAQakH/H0sNASAoIAwQEyIBRQ0BIAUgAjsBogEgBSADOwGgASAFIAE2AnQgBSAMNgJkIAUgATYCeCAFIAw2AmggBSAFKAKgASIBNgKcASAFIAE2ApgBIAUgATYClAEgBSABNgKQASAFIAE2AowBIAUgATYCiAEgBSABNgKEASANKAKUASEDIA0vAaQBIRICfwJ/AkACfwJAAkAgBSgCyAEiBgRAIAYoAgQgBSgCBEYEQCAGKAIAQQVNBEAgBigCuAEiCkEQdiECIAYoAnAgA0cNAyAKQf//A3EMBwsMAwsMAgsMAQsgBigCaCADRiEPIAYoAqABDAELIANBf0YNASADQX9GIQ9BACECQQAhCkEACyEGIAFBEHYhByAPIAMgDEYiDGpBAUcEQCAHIAIgAkEQdEEQdSICIAdBEHRBEHVIIgcbIg8gAiABQRB1IgwgAiACIAxKGyAHGyIHIAZBEHUiAiACIAdIGyAPQRB0QRB1IAJIGyECIAEgCiAKQRB0QRB1IgcgAUEQdEEQdSIBSCIKGyIPQf//A3EgByABIAcgASAHSBsgChsiByAGQRB0QRB1IgEgASAHSBsgD0EQdEEQdSABSBsMAwsgByAGQRB2IAwbIQIgASAGIAwbDAILQQAhAkEACyACQRB0cgsgEmoiBkEQdEEQdUGAQGtB//8ASw0BIA0vAaYBIAJqIgJBEHRBEHVBgBBqQf8fSw0BICggAxATIgFFDQEgBSACOwHCASAFIAY7AcABIAUgATYCgAEgBSABNgJ8IAUgAzYCcCAFIAM2AmwgBSAFKALAASIBNgK8ASAFIAE2ArgBIAUgATYCtAEgBSABNgKwASAFIAE2AqwBIAUgATYCqAEgBUGkAWoiAiABNgIAIBAgBSgCdDYCCCALIAVBhAFqIBBBCGogDiARQQBBAEEQQQgQDyAQIAUoAnw2AgggCyACIBBBCGogDiARQQBBCEEQQQgQDwtBACEIIAUoAsQBQQFLDQAgBSgCAARAIA1ByAJqIQ9BACEBIB0oAgAiDCAEIAQgHSgCBCIFcCICayIDQQh0aiACQQR0aiERIAVBBHQhByAdKAIIIAVsIgZBBnQhDiACQQN0IRIgBkEIdCETIANBBnQhGSAFQQJ0Qfz///8DcUECdCEKA0AgESABQQJ0IgJB8ClqKAIAIgMgB2xqIAJBsClqKAIAIgJqIQYgCyADQQR0aiACaiECAkAgDyABQQZ0aiIDKAIAIhZB////B0cEQCADKAIEIRUgAi0AASEXIAYgFiACLQAAakGwLmotAAA6AAAgAygCCCEWIAItAAIhHCAGIBUgF2pBsC5qLQAAOgABIAMoAgwhFSACLQADIRcgBiAWIBxqQbAuai0AADoAAiAGIBUgF2pBsC5qLQAAOgADIAMoAhQhFiACLQARIRUgBiAHaiIGIAMoAhAgAi0AEGpBsC5qLQAAOgAAIAMoAhghFyACLQASIRwgBiAVIBZqQbAuai0AADoAASADKAIcIRYgAi0AEyEVIAYgFyAcakGwLmotAAA6AAIgBiAVIBZqQbAuai0AADoAAyADKAIkIRYgAi0AISEVIAYgB2oiBiADKAIgIAItACBqQbAuai0AADoAACADKAIoIRcgAi0AIiEcIAYgFSAWakGwLmotAAA6AAEgAygCLCEWIAItACMhFSAGIBcgHGpBsC5qLQAAOgACIAYgFSAWakGwLmotAAA6AAMgAygCNCEWIAItADEhFSAGIAdqIgYgAygCMCACLQAwakGwLmotAAA6AAAgAygCOCEXIAItADIhHCAGIBUgFmpBsC5qLQAAOgABIAMoAjwhAyACLQAzIQIgBiAXIBxqQbAuai0AADoAAiAGIAIgA2pBsC5qLQAAOgADDAELIAIoAhAhAyAGIAIoAgA2AgAgBiAKaiIGIAM2AgAgAigCMCEDIAYgCmoiBiACKAIgNgIAIAYgCmogAzYCAAsgAUEBaiIBQRBHDQALIAwgE2ogGWogEmoiCiAOaiEMIAVBA3RB+P///wdxIgVBAnZBAnQhB0EQIQYDQCAGQQJ0QQxxIgFB8ClqKAIAIgIgBWwgAUGwKWooAgAiAWogDCAKIAZBE0siERtqIQMgC0HAAkGAAiARG2ogAkEDdCABamohAQJAIA8gBkEGdGoiAigCACIRQf///wdHBEAgAigCBCEOIAEtAAEhEiADIBEgAS0AAGpBsC5qLQAAOgAAIAIoAgghESABLQACIRMgAyAOIBJqQbAuai0AADoAASACKAIMIQ4gAS0AAyESIAMgESATakGwLmotAAA6AAIgAyAOIBJqQbAuai0AADoAAyACKAIUIREgAS0ACSEOIAMgBWoiAyACKAIQIAEtAAhqQbAuai0AADoAACACKAIYIRIgAS0ACiETIAMgDiARakGwLmotAAA6AAEgAigCHCERIAEtAAshDiADIBIgE2pBsC5qLQAAOgACIAMgDiARakGwLmotAAA6AAMgAigCJCERIAEtABEhDiADIAVqIgMgAigCICABLQAQakGwLmotAAA6AAAgAigCKCESIAEtABIhEyADIA4gEWpBsC5qLQAAOgABIAIoAiwhESABLQATIQ4gAyASIBNqQbAuai0AADoAAiADIA4gEWpBsC5qLQAAOgADIAIoAjQhESABLQAZIQ4gAyAFaiIDIAIoAjAgAS0AGGpBsC5qLQAAOgAAIAIoAjghEiABLQAaIRMgAyAOIBFqQbAuai0AADoAASACKAI8IQIgAS0AGyEBIAMgEiATakGwLmotAAA6AAIgAyABIAJqQbAuai0AADoAAwwBCyABKAIIIQIgAyABKAIANgIAIAMgB2oiAyACNgIAIAEoAhghAiADIAdqIgMgASgCEDYCACADIAdqIAI2AgALIAZBAWoiBkEYRw0ACwwBCyAdIAsQGAsgEEEgaiQAIAgiAw0BC0EAIQMLIAMLIgYNASAgKAK8CSApaigCxAEhAgJ/QQAhAwJAIBsoAgxBA3QgGygCEGsiAUUNAEEBIQMgAUEISw0AQQEgAUEBa3QgGxAQQSAgAWt2RwwBCyADCyAjKAIMckEARyEBAkACQCAUKAIEQQJrDgYAAQEBAQABCyAgIAQ2ArAJC0EBIQZBACABICAoApQJICAoApgJIAQQHSIEGw0BICIgAkEBRmohIiABDQALICBBrAlqKAIAICJqIgEgICgCmAlLDQAgICABNgKsCUEAIQYLICNBwANqJAAgBgsEQCAgKALYCiEAQQAhAyAgKAKoCSECAkAgIEGwCWooAgAiAUUNACAAIAFBAWsiAU8EQCABIQAMAQsgICgCvAkhBANAAkAgBCABQdgBbGooAgQgAkcNACADQQFqIgMgICgCECgCNCIJQQogCUEKSxtJDQAgASEADAILIAFBAWsiASAASw0ACwsDQAJAICAoArwJIABB2AFsaiIBKAIEIAJHDQAgASgCxAEiA0UNACABIANBAWs2AsQBICAoApQJICAoApgJIAAQHSIADQELC0ENISIMAgtBACEiQQAhAgJAAkACQAJAAkAgIEH8CmooAgAEQCAAKAKYCSIERQ0DIARBA3EhBiAAKAK8CSED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IARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyANICBqIgFBBGohAyAHKAI0IQQCQCAIKAIcIAEtAAMiCSABLQAEIgZrIgsgC0EfdSILaiALc00NACAIKAIgIgwgA0ECay0AACILIAlrIgogCkEfdSIKaiAKc00NACAMIAEtAAUiCiAGayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAEgBCAIKAIYakEBay0AACIBQX9zIgwgAUEBaiIOIAYgCWtBAnQgCmsgC2pBBGpBA3UiASABIA5KGyABIAxIGyIBIAlqQbAuai0AADoAAyADIAYgAWtBsC5qLQAAOgAADAELIAEgCSAKaiALQQF0akECakECdjoAAyADIAYgCkEBdGogC2pBAmpBAnY6AAALIAgoAhwgAyAdaiIBQQFrIgotAAAiAyABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIgIgwgAUECay0AACIGIANrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAogAyAEIAgoAhhqQQFrLQAAIgRBf3MiCiAEQQFqIgwgCSADa0ECdCALayAGakEEakEDdSIEIAQgDEobIAQgCkgbIgRqQbAuai0AADoAACABIAkgBGtBsC5qLQAAOgAADAELIAogAyALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALAkACQCAHKAIAIgEgBygCCCIMRw0AIAEgBygCEEcNACABIAcoAhhHDQAgAUUNASACIAEgCCAQQQxsaiIBIB0QGiANIAcoAgAgASAdEBoMAQsgAQRAIAggEEEMbGoiAyEJIAEgAygCAGpBAWstAAAiBEF/cyEBIARBAWohBgJAIAMoAgQiBCACIBFqIgwtAAAiCyACLQAAIgprIg4gDkEfdSIOaiAOc00NACAJKAIIIg4gAiAbai0AACISIAtrIhMgE0EfdSITaiATc00NACAOIAIgHWotAAAiEyAKayIUIBRBH3UiFGogFHNNDQAgDCABIAYgCiALa0ECdCATayAS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AAEAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAABAAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA4AAAABAAAADwAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAAEAAAAPAAAABAAAAAQAAAAEAAAABQAAAAQAAAACAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAIAAAAEAAAACAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAgAAAAQAAAADAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAACAAAABAAAAAMAAAAEAAAACAAAAAQAAAAJAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAAQAAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAGAAAABAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAAEAAAABwAAAAQAAAAMAAAABAAAAA0AAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAA/wAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAEAAAAOAAAABAAAAAEAAAD/AAAABAAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAgAAAAoAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADwAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAPAAAAAgAAAAoAAAAEAAAABQAAAP8AAAAAAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAP8AAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAAQAAAAJAAAA/wAAAAwAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAACAAAA/wAAAAgAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAcAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABwAAAP8AAAACAAAABAAAAA0AAAD/AAAACAAAAAMAAAAPAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAwAAAA8AAAAAAAAABQAAAP8AAAAAAAAA/wAAAAAAAAADAAAADwAAAAEAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAQAAAABAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAP8AAAAAAAAA/wAAAAAAAAD/AEHUJwsVBwAAAAAAAAANAAAA/wAAAAAAAAD/AEH0JwsVBwAAAAQAAAACAAAA/wAAAAAAAAD/AEGUKAvZAQcAAAAEAAAAAgAAAAAAAAANAAAABAAAAAgAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAkAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAAEAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAMAAAACAAAAAwAQfgpCwUEAAAABABBiCoLJQQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAgAAAAIAAAADAAAAAwAQbEuC8gGAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAQAAAAQAAAAFAAAAAgAAAAMAAAAGAAAABwAAAAgAAAAJAAAADAAAAA0AAAAKAAAACwAAAA4AAAAPAAAAAAAAAAEAAAABAEGENQshAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAACAEG0NQsFBQAAAAQAQcQ1C8kGBwAAAAQAAAACAAAABAAAAAEAAAAEAAAABAAAAAQAAAADAAAABAAAAAYAAAAAAAAADQAAAAQAAAAIAAAAAAAAAA8AAAAEAAAACgAAAAQAAAAJAAAABAAAAAwAAAAEAAAACwAAAAQAAAAOAAAAAAAAABEAAAAEAAAAEAAAAAAAAAATAAAABAAAABIAAAAAAAAAFQAAAAQAAAAUAAAAAAAAABcAAAAEAAAAFgAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAABIAAAABAAAAEwAAAAQAAAAQAAAABAAAABEAAAABAAAAFgAAAAEAAAAXAAAABAAAABQAAAAEAAAAFQAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAP8AAAAEAAAAAQAAAA8AAAACAAAACgAAAAQAAAAFAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAD/AAAADAAAAAQAAAAHAAAA/wAAAAIAAAAEAAAADQAAAP8AAAAIAAAAAQAAABMAAAACAAAAEgAAAAQAAAARAAAA/wAAABAAAAABAAAAFwAAAAIAAAAWAAAABAAAABUAAAD/AAAAFAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAAQAAAACAAAAAAAAAA0AAAAEAAAACAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAAQAAAAMAAAAAwAAABMAAAABAAAAEgAAAAAAAAARAAAABAAAABAAAAADAAAAFwAAAAEAAAAWAAAAAAAAABUAAAAEAAAAFAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwBBljwLLgEBAQEBAQICAgICAgMDAwMDAwQEBAQEBAUFBQUFBQYGBgYGBgcHBwcHBwgICAgAQdA8C0UKAAAADQAAABAAAAALAAAADgAAABIAAAANAAAAEAAAABQAAAAOAAAAEgAAABcAAAAQAAAAFAAAABkAAAASAAAAFwAAAB0AQaE9CzMBAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMAQeQ9C8wCAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAdAAAAHgAAAB8AAAAgAAAAIAAAACEAAAAiAAAAIgAAACMAAAAjAAAAJAAAACQAAAAlAAAAJQAAACUAAAAmAAAAJgAAACYAAAAnAAAAJwAAACcAAAAnAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAvHw8AFxsdHgcLDQ4nKy0uEAMFCgwTFRocIyUqLAECBAgREhQYBgkWGSAhIiQoJikAEAECBAggAwUKDA8vBwsNDgYJHyMlKiwhIiQoJystLhESFBgTFRocFxsdHhYZJikAQbDAAAsDMCJQ`;\n if (!k2.startsWith(O2)) {\n var A2 = k2;\n k2 = n2.locateFile ? n2.locateFile(A2, s2) : s2 + A2;\n }\n function j2() {\n var e3 = k2;\n try {\n if (e3 == k2 && u2) return new Uint8Array(u2);\n var t3 = ie2(e3);\n if (t3) return t3;\n if (c2) return c2(e3);\n throw `both async and sync fetching of the wasm failed`;\n } catch (e4) {\n D2(e4);\n }\n }\n function ne2() {\n return u2 || typeof fetch != `function` ? Promise.resolve().then(function() {\n return j2();\n }) : fetch(k2, { credentials: `same-origin` }).then(function(e3) {\n if (!e3.ok) throw `failed to load wasm binary file at '` + k2 + `'`;\n return e3.arrayBuffer();\n }).catch(function() {\n return j2();\n });\n }\n var M2, N2;\n function P2(e3) {\n for (; 0 < e3.length; ) {\n var t3 = e3.shift();\n if (typeof t3 == `function`) t3(n2);\n else {\n var r3 = t3.u;\n typeof r3 == `number` ? t3.s === void 0 ? x2.get(r3)() : x2.get(r3)(t3.s) : r3(t3.s === void 0 ? null : t3.s);\n }\n }\n }\n var re2 = typeof atob == `function` ? atob : function(e3) {\n var t3 = ``, n3 = 0;\n e3 = e3.replace(/[^A-Za-z0-9\\+\\/=]/g, ``);\n do {\n var r3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), i3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), a3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), o3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++));\n r3 = r3 << 2 | i3 >> 4, i3 = (i3 & 15) << 4 | a3 >> 2;\n var s3 = (a3 & 3) << 6 | o3;\n t3 += String.fromCharCode(r3), a3 !== 64 && (t3 += String.fromCharCode(i3)), o3 !== 64 && (t3 += String.fromCharCode(s3));\n } while (n3 < e3.length);\n return t3;\n };\n function ie2(e3) {\n if (e3.startsWith(O2)) {\n try {\n var t3 = re2(e3.slice(O2.length)), n3 = new Uint8Array(t3.length);\n for (e3 = 0; e3 < t3.length; ++e3) n3[e3] = t3.charCodeAt(e3);\n } catch (e4) {\n throw Error(`Converting base64 string to bytes failed.`);\n }\n return n3;\n }\n }\n var F2 = { a: function(e3, t3, n3) {\n h2.copyWithin(e3, t3, t3 + n3);\n }, b: function(e3) {\n var t3 = h2.length;\n if (e3 >>>= 0, 2147483648 < e3) return false;\n for (var n3 = 1; 4 >= n3; n3 *= 2) {\n var r3 = t3 * (1 + 0.2 / n3);\n r3 = Math.min(r3, e3 + 100663296), r3 = Math.max(e3, r3), 0 < r3 % 65536 && (r3 += 65536 - r3 % 65536);\n a: {\n try {\n d2.grow(Math.min(2147483648, r3) - p2.byteLength + 65535 >>> 16), b2();\n var i3 = 1;\n break a;\n } catch (e4) {\n }\n i3 = void 0;\n }\n if (i3) return true;\n }\n return false;\n } };\n (function() {\n function e3(e4) {\n n2.asm = e4.exports, d2 = n2.asm.c, b2(), x2 = n2.asm.r, ee2.unshift(n2.asm.d), w2--, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), w2 == 0 && (T2 !== null && (clearInterval(T2), T2 = null), E2 && (e4 = E2, E2 = null, e4()));\n }\n function t3(t4) {\n e3(t4.instance);\n }\n function r3(e4) {\n return ne2().then(function(e5) {\n return WebAssembly.instantiate(e5, a3);\n }).then(e4, function(e5) {\n l2(`failed to asynchronously prepare wasm: ` + e5), D2(e5);\n });\n }\n var a3 = { a: F2 };\n if (w2++, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), n2.instantiateWasm) try {\n return n2.instantiateWasm(a3, e3);\n } catch (e4) {\n return l2(`Module.instantiateWasm callback failed with error: ` + e4), false;\n }\n return (function() {\n return u2 || typeof WebAssembly.instantiateStreaming != `function` || k2.startsWith(O2) || typeof fetch != `function` ? r3(t3) : fetch(k2, { credentials: `same-origin` }).then(function(e4) {\n return WebAssembly.instantiateStreaming(e4, a3).then(t3, function(e5) {\n return l2(`wasm streaming compile failed: ` + e5), l2(`falling back to ArrayBuffer instantiation`), r3(t3);\n });\n });\n })().catch(i2), {};\n })(), n2.___wasm_call_ctors = function() {\n return (n2.___wasm_call_ctors = n2.asm.d).apply(null, arguments);\n }, n2._memcpy = function() {\n return (n2._memcpy = n2.asm.e).apply(null, arguments);\n }, n2._h264bsdInit = function() {\n return (n2._h264bsdInit = n2.asm.f).apply(null, arguments);\n }, n2._malloc = function() {\n return (n2._malloc = n2.asm.g).apply(null, arguments);\n }, n2._h264bsdDecode = function() {\n return (n2._h264bsdDecode = n2.asm.h).apply(null, arguments);\n }, n2._free = function() {\n return (n2._free = n2.asm.i).apply(null, arguments);\n }, n2._h264bsdShutdown = function() {\n return (n2._h264bsdShutdown = n2.asm.j).apply(null, arguments);\n }, n2._h264bsdNextOutputPicture = function() {\n return (n2._h264bsdNextOutputPicture = n2.asm.k).apply(null, arguments);\n }, n2._h264bsdNextOutputPictureRGBA = function() {\n return (n2._h264bsdNextOutputPictureRGBA = n2.asm.l).apply(null, arguments);\n }, n2._h264bsdPicWidth = function() {\n return (n2._h264bsdPicWidth = n2.asm.m).apply(null, arguments);\n }, n2._h264bsdPicHeight = function() {\n return (n2._h264bsdPicHeight = n2.asm.n).apply(null, arguments);\n }, n2._h264bsdCroppingParams = function() {\n return (n2._h264bsdCroppingParams = n2.asm.o).apply(null, arguments);\n }, n2._h264bsdAlloc = function() {\n return (n2._h264bsdAlloc = n2.asm.p).apply(null, arguments);\n }, n2._h264bsdFree = function() {\n return (n2._h264bsdFree = n2.asm.q).apply(null, arguments);\n }, n2.setValue = function(e3, t3, n3) {\n switch (n3 || (n3 = `i8`), n3.charAt(n3.length - 1) === `*` && (n3 = `i32`), n3) {\n case `i1`:\n m2[e3 >> 0] = t3;\n break;\n case `i8`:\n m2[e3 >> 0] = t3;\n break;\n case `i16`:\n g2[e3 >> 1] = t3;\n break;\n case `i32`:\n _2[e3 >> 2] = t3;\n break;\n case `i64`:\n N2 = [t3 >>> 0, (M2 = t3, 1 <= +Math.abs(M2) ? 0 < M2 ? (Math.min(+Math.floor(M2 / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((M2 - +(~~M2 >>> 0)) / 4294967296) >>> 0 : 0)], _2[e3 >> 2] = N2[0], _2[e3 + 4 >> 2] = N2[1];\n break;\n case `float`:\n v2[e3 >> 2] = t3;\n break;\n case `double`:\n y2[e3 >> 3] = t3;\n break;\n default:\n D2(`invalid type for setValue: ` + n3);\n }\n }, n2.getValue = function(e3, t3) {\n switch (t3 || (t3 = `i8`), t3.charAt(t3.length - 1) === `*` && (t3 = `i32`), t3) {\n case `i1`:\n return m2[e3 >> 0];\n case `i8`:\n return m2[e3 >> 0];\n case `i16`:\n return g2[e3 >> 1];\n case `i32`:\n return _2[e3 >> 2];\n case `i64`:\n return _2[e3 >> 2];\n case `float`:\n return v2[e3 >> 2];\n case `double`:\n return y2[e3 >> 3];\n default:\n D2(`invalid type for getValue: ` + t3);\n }\n return null;\n };\n var I2;\n E2 = function e3() {\n I2 || L2(), I2 || (E2 = e3);\n };\n function L2() {\n function e3() {\n if (!I2 && (I2 = true, n2.calledRun = true, !f2)) {\n if (P2(ee2), r2(n2), n2.onRuntimeInitialized && n2.onRuntimeInitialized(), n2.postRun) for (typeof n2.postRun == `function` && (n2.postRun = [n2.postRun]); n2.postRun.length; ) {\n var e4 = n2.postRun.shift();\n C2.unshift(e4);\n }\n P2(C2);\n }\n }\n if (!(0 < w2)) {\n if (n2.preRun) for (typeof n2.preRun == `function` && (n2.preRun = [n2.preRun]); n2.preRun.length; ) te2();\n P2(S2), 0 < w2 || (n2.setStatus ? (n2.setStatus(`Running...`), setTimeout(function() {\n setTimeout(function() {\n n2.setStatus(``);\n }, 1), e3();\n }, 1)) : e3());\n }\n }\n if (n2.run = L2, n2.preInit) for (typeof n2.preInit == `function` && (n2.preInit = [n2.preInit]); 0 < n2.preInit.length; ) n2.preInit.pop()();\n return L2(), t2.ready;\n });\n })(), T = (function(e2) {\n return e2[e2.RDY = 0] = `RDY`, e2[e2.PIC_RDY = 1] = `PIC_RDY`, e2[e2.HDRS_RDY = 2] = `HDRS_RDY`, e2[e2.ERROR = 3] = `ERROR`, e2[e2.PARAM_SET_ERROR = 4] = `PARAM_SET_ERROR`, e2[e2.MEMALLOC_ERROR = 5] = `MEMALLOC_ERROR`, e2[e2.BYTE_STREAM_ERROR = 6] = `BYTE_STREAM_ERROR`, e2[e2.NAL_UNIT_ERROR = 7] = `NAL_UNIT_ERROR`, e2[e2.ACCESS_UNIT_BOUNDARY_CHECK_ERROR = 8] = `ACCESS_UNIT_BOUNDARY_CHECK_ERROR`, e2[e2.PENDING_ACTIVATION_ERROR = 9] = `PENDING_ACTIVATION_ERROR`, e2[e2.SEQ_PARAM_SET_ERROR = 10] = `SEQ_PARAM_SET_ERROR`, e2[e2.PIC_PARAM_SET_ERROR = 11] = `PIC_PARAM_SET_ERROR`, e2[e2.SLICE_HEADER_ERROR = 12] = `SLICE_HEADER_ERROR`, e2[e2.SLICE_DATA_ERROR = 13] = `SLICE_DATA_ERROR`, e2[e2.GAPS_IN_FRAME_NUM_ERROR = 14] = `GAPS_IN_FRAME_NUM_ERROR`, e2[e2.REORDERING_ERROR = 15] = `REORDERING_ERROR`, e2[e2.NO_INPUT = 1024] = `NO_INPUT`, e2;\n })(T || {});\n let E = (e2) => e2 >= 3 && e2 <= 15, D = (e2) => {\n switch (e2) {\n case T.MEMALLOC_ERROR:\n return `Memory allocation error`;\n case T.PARAM_SET_ERROR:\n return `Failed to activate param set`;\n case T.BYTE_STREAM_ERROR:\n return `Byte stream error`;\n case T.NAL_UNIT_ERROR:\n return `NAL unit error`;\n case T.ACCESS_UNIT_BOUNDARY_CHECK_ERROR:\n return `Access unit boundary check error`;\n case T.PENDING_ACTIVATION_ERROR:\n return `Pending activation error`;\n case T.SEQ_PARAM_SET_ERROR:\n return `Sequence parameter set error`;\n case T.PIC_PARAM_SET_ERROR:\n return `Picture parameter set error`;\n case T.SLICE_HEADER_ERROR:\n return `Slice header error`;\n case T.SLICE_DATA_ERROR:\n return `Slice data error`;\n case T.GAPS_IN_FRAME_NUM_ERROR:\n return `Gaps in frame num error`;\n case T.REORDERING_ERROR:\n return `Reordering error`;\n default:\n return `Decode error`;\n }\n };\n var O = (_c = class {\n constructor(e2) {\n __publicField(this, \"h264Module\");\n __publicField(this, \"decoderInstancePointer\", 0);\n __publicField(this, \"inputBufferPointer\", 0);\n __publicField(this, \"inputBufferLength\", 1024 * 1024);\n __publicField(this, \"bytesRead\", 0);\n __publicField(this, \"isIdrPointer\", 0);\n __publicField(this, \"picIdPointer\", 0);\n __publicField(this, \"numErrMbs\", 0);\n __publicField(this, \"croppingPointers\", { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 });\n __publicField(this, \"parameters\");\n __publicField(this, \"readI32\", (e2) => this.h264Module.HEAP32[e2 >> 2]);\n __publicField(this, \"getParameters\", () => this.parameters);\n __publicField(this, \"unload\", () => {\n this.shutdownDecoder(), this.h264Module._free(this.inputBufferPointer), this.h264Module._free(this.bytesRead), this.h264Module._free(this.isIdrPointer), this.h264Module._free(this.picIdPointer), this.h264Module._free(this.numErrMbs), this.h264Module._free(this.croppingPointers.croppingFlag), this.h264Module._free(this.croppingPointers.leftOffset), this.h264Module._free(this.croppingPointers.width), this.h264Module._free(this.croppingPointers.topOffset), this.h264Module._free(this.croppingPointers.height), this.inputBufferPointer = 0, this.bytesRead = 0, this.isIdrPointer = 0, this.picIdPointer = 0, this.numErrMbs = 0, this.decoderInstancePointer = 0, this.croppingPointers = { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 };\n });\n __publicField(this, \"shutdownDecoder\", () => {\n this.decoderInstancePointer !== 0 && (this.h264Module._h264bsdShutdown(this.decoderInstancePointer), this.h264Module._h264bsdFree(this.decoderInstancePointer)), this.decoderInstancePointer = 0, this.parameters = void 0;\n });\n __publicField(this, \"initDecoder\", () => {\n this.decoderInstancePointer = this.h264Module._h264bsdAlloc(), this.h264Module._h264bsdInit(this.decoderInstancePointer, 0);\n });\n __publicField(this, \"decode\", (e2) => {\n if (e2.byteLength > this.inputBufferLength) {\n let t3 = this.inputBufferLength;\n for (; t3 < e2.byteLength; ) t3 *= 2;\n let n3 = this.h264Module._malloc(t3);\n this.h264Module._free(this.inputBufferPointer), this.inputBufferPointer = n3, this.inputBufferLength = t3;\n }\n this.h264Module.HEAPU8.set(e2, this.inputBufferPointer);\n let t2 = e2.byteLength, n2 = 0, r2 = 0;\n do {\n r2 = this.h264Module._h264bsdDecode(this.decoderInstancePointer, this.inputBufferPointer + n2, t2, 0, this.bytesRead);\n let e3 = this.readI32(this.bytesRead);\n n2 += e3, t2 -= e3;\n } while (t2 > 0 && !E(r2));\n switch (r2) {\n case T.RDY:\n case T.PIC_RDY:\n case T.HDRS_RDY:\n if (r2 === T.PIC_RDY) return this.receiveFrame();\n if (r2 === T.HDRS_RDY) return this.receiveHeader();\n break;\n case T.NO_INPUT:\n break;\n default:\n throw Error(`${D(r2)} (${r2})`);\n }\n });\n __publicField(this, \"receiveFrame\", () => {\n let e2 = this.h264Module._h264bsdNextOutputPicture(this.decoderInstancePointer, this.picIdPointer, this.isIdrPointer, this.numErrMbs);\n if (!e2) return;\n if (!this.parameters) {\n let e3 = this.h264Module._h264bsdPicWidth(this.decoderInstancePointer) * 16, t3 = this.h264Module._h264bsdPicHeight(this.decoderInstancePointer) * 16;\n this.h264Module._h264bsdCroppingParams(this.decoderInstancePointer, this.croppingPointers.croppingFlag, this.croppingPointers.leftOffset, this.croppingPointers.width, this.croppingPointers.topOffset, this.croppingPointers.height);\n let n2 = this.readI32(this.croppingPointers.croppingFlag), r2 = this.readI32(this.croppingPointers.leftOffset), i2 = this.readI32(this.croppingPointers.width), a2 = this.readI32(this.croppingPointers.topOffset), o2 = this.readI32(this.croppingPointers.height);\n this.parameters = { width: e3, height: t3, cropping: n2 ? { left: r2, top: a2, width: i2, height: o2 } : void 0 };\n }\n let t2 = this.parameters.width * this.parameters.height * 3 / 2;\n return this.h264Module.HEAPU8.subarray(e2, e2 + t2);\n });\n __publicField(this, \"receiveHeader\", () => {\n });\n this.h264Module = e2, this.initDecoder(), this.inputBufferPointer = this.h264Module._malloc(this.inputBufferLength), this.bytesRead = e2._malloc(4), this.isIdrPointer = e2._malloc(4), this.picIdPointer = e2._malloc(4), this.numErrMbs = e2._malloc(4), this.croppingPointers = { croppingFlag: e2._malloc(4), leftOffset: e2._malloc(4), width: e2._malloc(4), topOffset: e2._malloc(4), height: e2._malloc(4) };\n }\n }, __publicField(_c, \"create\", () => __async(null, null, function* () {\n return new _c(yield w());\n })), _c);\n let k = (e2) => {\n let { pictureParameterSets: t2, sequenceParameterSets: n2 } = h(e2.data), r2 = [...n2, ...t2], i2 = new Uint8Array(r2.reduce((e3, t3) => e3 + t3.byteLength + 4, 0)), a2 = 0;\n return r2.forEach((e3) => {\n i2[0 + a2] = 0, i2[1 + a2] = 0, i2[2 + a2] = 0, i2[3 + a2] = 1, i2.set(new Uint8Array(e3), a2 + 4), a2 += e3.byteLength + 4;\n }), i2;\n };\n var A = (_d = class {\n constructor(e2) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"unload\", () => {\n this.decoder.unload();\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, r2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, i2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId;\n if (!this.previousSample) {\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n } else if (r2 || i2 || n2) {\n this.decoder.shutdownDecoder(), this.decoder.initDecoder();\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n }\n if (this.previousSample) {\n let t3 = this.previousSample;\n e2.timestamp / e2.timescale > (t3.timestamp + t3.duration * 2) / t3.timescale && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let a2 = Date.now();\n m(e2.data, (t3) => {\n var _a3, _b3, _c3, _d3;\n let n3 = new Uint8Array(t3.buffer, t3.byteOffset, t3.byteLength), r3 = this.decoder.decode(n3);\n if (r3) {\n if (!e2.buffer) throw Error(`Expected sample to contain buffer`);\n let t4 = this.decoder.getParameters();\n if (new Uint8Array(e2.buffer).set(r3), t4) {\n let n4 = [new Uint8Array(e2.buffer, 0, t4.width * t4.height), new Uint8Array(e2.buffer, t4.width * t4.height, t4.width / 2 * t4.height / 2), new Uint8Array(e2.buffer, t4.width * t4.height + t4.width / 2 * t4.height / 2, t4.width / 2 * t4.height / 2)];\n this.decodedSamples.push(__spreadProps(__spreadValues({}, e2), { buffer: e2.buffer, type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: (_b3 = (_a3 = t4.cropping) == null ? void 0 : _a3.width) != null ? _b3 : t4.width, height: (_d3 = (_c3 = t4.cropping) == null ? void 0 : _c3.height) != null ? _d3 : t4.height, codedWidth: t4.width, codedHeight: t4.height, data: n4, statistics: { decodeTime: Date.now() - a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } }));\n }\n }\n return true;\n });\n });\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.decoder = e2;\n }\n }, __publicField(_d, \"create\", () => __async(null, null, function* () {\n return new _d(yield O.create());\n })), _d), j = class {\n constructor() {\n __publicField(this, \"map\", /* @__PURE__ */ new Map());\n }\n enqueue(t2, n2) {\n let r2 = this.map.get(t2);\n if (r2) r2.push(n2);\n else {\n let r3 = new e(1 / 0);\n r3.push(n2), this.map.set(t2, r3);\n }\n }\n dequeue(e2) {\n let t2 = this.map.get(e2);\n if (!t2) return;\n let n2 = t2.pop();\n return t2.isEmpty() && this.map.delete(e2), n2;\n }\n dequeueWithFallback(e2) {\n let t2 = this.dequeue(e2);\n if (t2 !== void 0) return t2;\n for (let [e3, t3] of this.map) {\n let n2 = t3.pop();\n if (t3.isEmpty() && this.map.delete(e3), n2 !== void 0) return n2;\n }\n }\n removeLast(e2) {\n let t2 = this.map.get(e2);\n t2 && (t2.popLast(), t2.isEmpty() && this.map.delete(e2));\n }\n clear() {\n this.map.clear();\n }\n };\n let ne = globalThis, M = new Uint8Array(), N = new ArrayBuffer(0);\n var P = (_e4 = class {\n constructor(e2, t2 = `no-preference`) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\", null);\n __publicField(this, \"logger\");\n __publicField(this, \"hardwareAcceleration\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"previousCodec\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"pendingSamples\", new j());\n __publicField(this, \"errors\", new e(10));\n __publicField(this, \"pendingDecodeCount\", 0);\n __publicField(this, \"waitResolve\", null);\n __publicField(this, \"waitTargetCount\", 1);\n __publicField(this, \"consecutiveErrors\", 0);\n __publicField(this, \"effectiveHardwareAcceleration\");\n __publicField(this, \"clearPendingState\", () => {\n this.pendingSamples.clear(), this.pendingDecodeCount = 0, this.notifyWaiter();\n });\n __publicField(this, \"resetDecoderState\", () => {\n this.clearPendingState(), this.previousSample = void 0, this.previousCodec = void 0, this.isWaitingForSync = true;\n });\n __publicField(this, \"ensureDecoder\", () => ((!this.decoder || this.decoder.state === `closed`) && (this.decoder = this.createDecoder()), this.decoder));\n __publicField(this, \"recreateDecoder\", () => {\n this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = this.createDecoder(), this.resetDecoderState();\n });\n __publicField(this, \"notifyWaiter\", () => {\n if (this.waitResolve && (this.decodedSamples.length >= this.waitTargetCount || this.pendingDecodeCount <= 0 || !this.decoder)) {\n let e2 = this.waitResolve;\n this.waitResolve = null, this.waitTargetCount = 1, e2();\n }\n });\n __publicField(this, \"createDecoder\", () => new VideoDecoder({ output: (e2) => {\n let t2 = this.pendingSamples.dequeue(e2.timestamp), n2 = t2 == null ? void 0 : t2.decodeMetadata, r2 = n2 === void 0 ? 0 : Math.max(performance.now() - n2.startTime, 0), i2 = n2 === void 0 ? 0 : Math.max(n2.pendingBeforeEnqueue, 0) * Math.max(n2.frameDurationMs, 0), a2 = Math.max(0, r2 - i2), o2 = t2 == null ? void 0 : t2.sample;\n if (!o2) {\n e2.close(), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n return;\n }\n let s2 = __spreadProps(__spreadValues({}, o2), { type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: e2.displayWidth, height: e2.displayHeight, codedWidth: e2.codedWidth, codedHeight: e2.codedHeight, data: [M, M, M], buffer: N, videoFrame: e2, statistics: { decodeTime: a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } });\n this.decodedSamples.push(s2), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.consecutiveErrors = 0, this.notifyWaiter();\n }, error: (e2) => {\n if (this.logger.error(`Decoder error:`, e2.name, e2.message), this.errors.push(e2), this.consecutiveErrors++, this.consecutiveErrors >= _e4.maxConsecutiveErrors && this.effectiveHardwareAcceleration !== `prefer-software`) {\n this.logger.warn(`${this.consecutiveErrors} consecutive decoder errors, retrying with software decoding`), this.effectiveHardwareAcceleration = `prefer-software`, this.consecutiveErrors = 0, this.recreateDecoder();\n return;\n }\n if (!this.decoder || this.decoder.state === `closed`) {\n this.resetDecoderState();\n return;\n }\n this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n } }));\n __publicField(this, \"unload\", () => {\n this.decodedSamples.forEach((e2) => {\n e2.videoFrame && e2.videoFrame.close();\n }), this.decodedSamples = [], this.resetDecoderState(), this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = null;\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2, _e5;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = this.ensureDecoder(), r2 = t2.codec, i2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, a2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, o2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId, s2 = this.previousCodec !== r2;\n if (!this.previousSample || a2 || o2 || i2 || s2) {\n this.previousSample && n2.state === `configured` && n2.flush().catch((e3) => {\n this.logger.warn(`Failed to flush before reconfiguration:`, e3);\n });\n let i3, a3;\n if (r2 === `av1`) {\n let { codecString: e3, fallbackCodecString: n3, width: r3, height: o4 } = y(t2.data);\n a3 = n3;\n let s3 = new DataView(t2.data).getUint8(0), c2 = s3 !== void 0 && s3 & 128 ? t2.data : void 0;\n i3 = __spreadProps(__spreadValues({ codec: e3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration }, c2 ? { description: c2 } : {}), { codedWidth: r3, codedHeight: o4 });\n } else if (r2 === `h265`) {\n let n3 = t2.codecString;\n if (!n3) {\n this.logger.error(`Missing HEVC codec string in init segment, dropping sample`);\n return;\n }\n i3 = { codec: n3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: e2.width, codedHeight: e2.height };\n } else {\n let { sequenceParameterSets: e3 } = h(t2.data);\n if (e3.length === 0) {\n this.logger.error(`No SPS found in init segment, dropping sample`);\n return;\n }\n let n3 = e3[0];\n if (!n3) {\n this.logger.error(`Missing SPS payload in init segment, dropping sample`);\n return;\n }\n let r3 = g(n3);\n i3 = { codec: `avc1.${r3.profileIdc.toString(16).padStart(2, `0`)}${r3.constraintFlags.toString(16).padStart(2, `0`)}${r3.levelIdc.toString(16).padStart(2, `0`)}`, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: r3.width, codedHeight: r3.height };\n }\n let o3 = false;\n try {\n n2.configure(i3), o3 = true;\n } catch (t3) {\n if (r2 === `av1` && a3 && n2.state !== `closed`) try {\n n2.configure(__spreadProps(__spreadValues({}, i3), { codec: a3 })), o3 = true;\n } catch (e3) {\n }\n if (!o3) {\n this.logger.error(`Failed to configure decoder for ${r2} (rendition ${e2.renditionId}), dropping sample`, t3), this.errors.push(t3 instanceof Error ? t3 : Error(`Failed to configure decoder for ${r2}`)), this.previousSample = void 0, this.ensureDecoder();\n return;\n }\n }\n this.isWaitingForSync = true, this.previousCodec = r2;\n }\n if (e2.timescale <= 0) {\n this.logger.error(`Invalid timescale ${e2.timescale} in sample, dropping sample`);\n return;\n }\n if (this.previousSample && this.previousSample.timescale > 0) {\n let t3 = this.previousSample, n3 = (t3.timestamp + t3.duration * 2) / t3.timescale;\n e2.timestamp / e2.timescale > n3 && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let l2 = Math.floor(1e6 * (e2.timestamp + ((_e5 = e2.compositionTimeOffset) != null ? _e5 : 0)) / e2.timescale), u2 = Math.floor(1e6 * e2.duration / e2.timescale);\n try {\n let t3 = performance.now(), r3 = this.pendingDecodeCount, i3 = e2.duration / e2.timescale * 1e3, a3 = new EncodedVideoChunk({ type: e2.isSync ? `key` : `delta`, timestamp: l2, duration: u2 > 0 ? u2 : void 0, data: e2.data });\n this.pendingSamples.enqueue(l2, { sample: e2, decodeMetadata: { startTime: t3, pendingBeforeEnqueue: r3, frameDurationMs: i3 } }), n2.decode(a3), this.pendingDecodeCount++;\n } catch (e3) {\n this.logger.error(`Failed to decode chunk:`, e3), this.pendingSamples.removeLast(l2), this.previousSample = void 0, this.isWaitingForSync = true, this.ensureDecoder(), this.notifyWaiter();\n }\n });\n __publicField(this, \"flush\", () => __async(this, null, function* () {\n if (this.decoder && this.decoder.state === `configured`) try {\n yield this.decoder.flush();\n } catch (e2) {\n this.logger.error(`Failed to flush decoder:`, e2), this.resetDecoderState();\n }\n }));\n __publicField(this, \"waitForFrames\", (e2 = 1) => this.pendingDecodeCount <= 0 || this.decodedSamples.length >= e2 ? Promise.resolve() : new Promise((t2) => {\n var _a2;\n (_a2 = this.waitResolve) == null ? void 0 : _a2.call(this), this.waitResolve = t2, this.waitTargetCount = Math.max(1, e2), this.notifyWaiter();\n }));\n __publicField(this, \"pendingFrames\", () => this.pendingDecodeCount);\n __publicField(this, \"error\", () => this.errors.pop());\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.logger = e2, this.hardwareAcceleration = t2, this.effectiveHardwareAcceleration = t2, this.decoder = this.createDecoder();\n }\n }, __publicField(_e4, \"maxConsecutiveErrors\", 3), __publicField(_e4, \"isSupported\", () => ne.VideoDecoder !== void 0), __publicField(_e4, \"create\", (e2, n2 = `no-preference`) => __async(null, null, function* () {\n if (!_e4.isSupported()) throw Error(`WebCodecs VideoDecoder is not supported in this environment`);\n return new _e4(e2, n2);\n })), _e4), re = class {\n constructor() {\n __publicField(this, \"initialized\", false);\n __publicField(this, \"anchorMediaMs\", 0);\n __publicField(this, \"anchorPerfMs\", 0);\n }\n reset() {\n this.initialized = false, this.anchorMediaMs = 0, this.anchorPerfMs = 0;\n }\n estimate(e2 = performance.now()) {\n return this.initialized ? this.anchorMediaMs + (e2 - this.anchorPerfMs) : 0;\n }\n updateFromMainThread(e2, t2) {\n let n2 = performance.now(), r2 = e2 + Math.max(0, Date.now() - t2);\n if (!this.initialized) return this.setAnchor(r2, n2), `soft-correct`;\n let i2 = this.estimate(n2), a2 = r2 - i2;\n if (a2 < -400) return this.setAnchor(r2, n2), `resync`;\n if (a2 < -120) return `ignore`;\n if (a2 > 120) return this.setAnchor(r2, n2), `soft-correct`;\n let o2 = Math.max(-12, Math.min(12, a2 * 0.25));\n return this.setAnchor(i2 + o2, n2), `soft-correct`;\n }\n setAnchor(e2, t2) {\n this.anchorMediaMs = e2, this.anchorPerfMs = t2, this.initialized = true;\n }\n };\n let ie = new ArrayBuffer(0), F = self, I = r.get().createContext(`VideoDecoder.worker`), L = new re(), R, z = false, B, V, H = false, U = [], W, G = 0, K = 0, q = true, J, ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0, Q = __spreadValues({}, i), $ = { cues: [], containerWidth: 0, containerHeight: 0, devicePixelRatio: 1, bottomPadding: 0, canvas: void 0, context: void 0, logicalWidth: 0, logicalHeight: 0 }, le = () => {\n $.canvas || ($.canvas = new OffscreenCanvas(1, 1), $.context = $.canvas.getContext(`2d`, { alpha: true }));\n }, ue = (e2) => {\n e2.fillStyle = `white`, e2.textAlign = `left`, e2.textBaseline = `top`, e2.font = `${Q.fontSize} sans-serif`;\n }, de = (e2, t2, n2) => {\n let r2 = [], i2 = e2.split(` `), a2 = ``;\n for (; i2.length > 0; ) {\n ue(n2);\n let e3 = 0;\n for (; n2.measureText(a2 + (a2.length > 0 ? ` ` : ``) + i2[0]).width + Q.textPadding * 2 <= t2 && i2.length > 0; ) e3++, a2 += (a2.length > 0 ? ` ` : ``) + i2.shift();\n if (e3 === 0) {\n r2.push(i2.shift() || ``), a2 = ``;\n continue;\n }\n r2.push(a2), a2 = ``;\n }\n return r2;\n }, fe = () => {\n le();\n let e2 = $.context, t2 = $.canvas;\n if (!e2 || !t2) return;\n let n2 = $.devicePixelRatio, r2 = $.containerHeight || $.containerWidth * 9 / 16;\n Q.fontSize = a($.containerWidth, r2);\n let i2 = $.containerWidth || (B == null ? void 0 : B.width) || 960, o2 = $.cues.flatMap((t3) => t3.text.split(`\n`).flatMap((t4) => de(t4, i2, e2))).map((t3) => {\n ue(e2);\n let n3 = e2.measureText(t3);\n return { text: t3, size: { height: n3.fontBoundingBoxAscent + n3.fontBoundingBoxDescent + Q.textPadding * 2, width: n3.width + Q.textPadding * 2 } };\n });\n if (o2.length === 0) {\n $.logicalWidth = 0, $.logicalHeight = 0;\n return;\n }\n let s2 = Math.max(...o2.map((e3) => e3.size.width)), c2 = o2.reduce((e3, { size: t3 }) => e3 + t3.height, 0) + (o2.length - 1) * Q.lineGap;\n $.logicalWidth = s2, $.logicalHeight = c2, t2.width = s2 * n2, t2.height = c2 * n2, e2.setTransform(n2, 0, 0, n2, 0, 0), e2.clearRect(0, 0, t2.width, t2.height);\n let l2 = 0;\n for (let { size: t3, text: n3 } of o2) ue(e2), e2.fillStyle = Q.backgroundColor, e2.fillRect(0, l2, t3.width, t3.height), ue(e2), e2.fillText(n3, Q.textPadding, l2 + Q.textPadding), l2 += t3.height + Q.lineGap;\n }, pe = () => {\n if ($.cues.length === 0 || $.logicalWidth === 0 || $.logicalHeight === 0) return;\n let e2 = $.canvas;\n if (!B || !V || !e2) return;\n let t2 = o({ subtitleWidth: $.logicalWidth, subtitleHeight: $.logicalHeight, canvasWidth: B.width, canvasHeight: B.height, containerWidth: $.containerWidth || B.width, bottomPadding: $.bottomPadding });\n V.drawImage(e2, t2.x, t2.y, t2.drawWidth, t2.drawHeight);\n }, me = () => {\n U.forEach((e2) => {\n e2.videoFrame.close();\n }), U = [];\n }, he = (e2, t2) => {\n let n2 = (t2 - 400) / 1e3, r2 = (e2.sample.timestamp + (e2.sample.compositionTimeOffset || 0)) / e2.sample.timescale;\n U = U.filter((e3) => {\n let t3 = (e3.sample.timestamp + (e3.sample.compositionTimeOffset || 0)) / e3.sample.timescale, i2 = t3 > n2 && t3 <= r2;\n if (!i2) try {\n e3.videoFrame.close();\n } catch (e4) {\n }\n return i2;\n }), U.push(e2);\n }, ge = () => {\n J !== void 0 && (clearTimeout(J), J = void 0);\n }, _e = () => {\n W !== void 0 && (cancelAnimationFrame(W), W = void 0);\n }, ve = () => {\n G = 0, K = 0, q = true, L.reset(), ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0;\n }, ye = () => {\n _e(), ge(), me();\n }, be = (e2) => {\n !B || !V || ((B.width !== e2.displayWidth || B.height !== e2.displayHeight) && (B.width = e2.displayWidth, B.height = e2.displayHeight), V.drawImage(e2, 0, 0, B.width, B.height));\n }, xe = (e2) => {\n be(e2), pe();\n }, Se = (e2) => (e2.timestamp + (e2.compositionTimeOffset || 0)) / e2.timescale * 1e3, Ce = () => {\n var _a2, _b2;\n if (!H || !B || !V) {\n W = void 0;\n return;\n }\n let e2 = L.estimate(), t2 = e2 + 8, n2 = [], r2 = U[0];\n for (; r2 && Se(r2.sample) <= t2; ) {\n let e3 = U.shift();\n if (!e3) break;\n n2.push(e3), r2 = U[0];\n }\n let i2, a2 = 0;\n if (n2.length === 1) i2 = n2[0];\n else if (n2.length > 1) {\n let t3 = n2[n2.length - 1], r3 = n2[n2.length - 2];\n if (!t3 || !r3) {\n W = requestAnimationFrame(Ce);\n return;\n }\n if (e2 - Se(t3.sample) < 10) {\n U.unshift(t3), i2 = r3;\n for (let e3 = 0; e3 < n2.length - 2; e3++) (_a2 = n2[e3]) == null ? void 0 : _a2.videoFrame.close();\n a2 = Math.max(n2.length - 2, 0);\n } else {\n i2 = t3;\n for (let e3 = 0; e3 < n2.length - 1; e3++) (_b2 = n2[e3]) == null ? void 0 : _b2.videoFrame.close();\n a2 = n2.length - 1;\n }\n }\n if (i2) {\n try {\n xe(i2.videoFrame);\n } catch (e3) {\n I.error(`Failed to render VideoFrame to OffscreenCanvas:`, e3);\n }\n i2.videoFrame.close(), G++;\n }\n K += a2, W = requestAnimationFrame(Ce);\n }, we = (e2) => {\n e2.data = ie;\n }, Te = () => G !== oe || K !== se, Ee = (e2, t2, n2) => {\n var _a2, _b2;\n let r2 = H && Te(), i2 = Y > 0, a2 = (_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0, o2 = a2 !== ce;\n if (t2 === 0 && e2.length === 0 && !r2 && !i2 && !o2) return;\n let s2 = z ? H ? [] : e2.map((e3) => e3.videoFrame).filter((e3) => e3 !== void 0) : e2.map((e3) => e3.buffer), c2 = { type: `decoded samples`, samples: e2, timestamp: n2, samplesAcceptedCount: t2, decoderPendingCount: a2 };\n r2 && (c2.renderedFrameCount = G, c2.rendererDroppedFrameCount = K, oe = G, se = K), i2 && (c2.estimatedSampleCount = Y, c2.estimatedDecodeTimeSum = X, c2.estimatedTransportTimeToWorkerSum = Z, Y = 0, X = 0, Z = 0), F.postMessage(c2, s2), ce = a2;\n }, De = (e2) => {\n let t2 = e2.videoFrame;\n if (q && B && V) {\n q = false;\n try {\n xe(t2), G++;\n } finally {\n t2.close();\n }\n } else he({ videoFrame: t2, sample: e2 }, L.estimate());\n e2.statistics && (Y++, X += e2.statistics.decodeTime, Z += e2.statistics.transportTimeToWorker), e2.videoFrame = void 0;\n }, Oe = (e2, t2) => {\n let n2 = [], r2;\n for (; r2 = R == null ? void 0 : R.take(); ) {\n if (r2.statistics && (r2.statistics.transportTimeToWorker = e2 > 0 ? e2 : ae, r2.statistics.samplesInBatch = t2), H && r2.videoFrame) {\n De(r2);\n continue;\n }\n n2.push(r2);\n }\n return n2;\n }, ke = () => {\n var _a2, _b2;\n J = void 0, !(!z || !R) && (Ee(Oe(0, 1), 0, Date.now()), ((_b2 = (_a2 = R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae());\n }, Ae = () => {\n !z || J !== void 0 || (J = setTimeout(ke, 10));\n }, je = (e2, t2, n2, i2) => __async(null, null, function* () {\n try {\n if (r.get().setLevel(e2), ye(), ve(), t2 && P.isSupported()) try {\n let e3 = I.createContext(`WebCodecsVideo`);\n R = yield P.create(e3, n2), z = true, I.info(`Initialized WebCodecs video decoder`, { hardwareAcceleration: n2 });\n } catch (e3) {\n I.warn(`WebCodecs initialization failed, falling back to WASM:`, e3), R = yield A.create(), z = false, I.info(`Initialized WASM video decoder (WebCodecs fallback)`);\n }\n else R = yield A.create(), z = false, I.info(`Initialized WASM video decoder`);\n H = false, B = void 0, V = void 0, i2 && z ? (B = i2, V = i2.getContext(`2d`, { alpha: false, desynchronized: true }), V ? (H = true, I.info(`OffscreenCanvas rendering enabled`), W = requestAnimationFrame(Ce)) : (I.error(`Failed to get 2D context from OffscreenCanvas`), H = false, B = void 0)) : i2 && !z && I.warn(`OffscreenCanvas provided but WebCodecs is not in use - ignoring canvas`), F.postMessage({ type: `ready`, isWebCodecs: z, usingOffscreenCanvas: H });\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n });\n F.addEventListener(`message`, (e2) => {\n var _a2, _b2;\n switch (e2.data.type) {\n case `init`:\n je(e2.data.logLevel, e2.data.useWebCodecs, e2.data.webcodecsHardwareAcceleration, e2.data.offscreenCanvas);\n break;\n case `decode samples`:\n {\n let t2 = e2.data;\n try {\n let e3 = Date.now() - t2.timestamp;\n ae = e3, t2.currentTime !== void 0 && L.updateFromMainThread(t2.currentTime, t2.timestamp) === `resync` && (me(), q = true), t2.samples.forEach((e4) => {\n R == null ? void 0 : R.enqueue(e4);\n });\n let n2 = Oe(e3, t2.samples.length);\n for (let e4 of t2.samples) we(e4);\n Ee(n2, t2.samples.length, Date.now()), ((_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae();\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n }\n break;\n case `unload`:\n I.info(`Unloading video decoder worker`), R == null ? void 0 : R.unload(), R = void 0, ye(), ve();\n break;\n case `init segment`:\n R == null ? void 0 : R.initSegment(e2.data.initSegment);\n break;\n case `subtitle cues`:\n $.cues = e2.data.cues, $.containerWidth = e2.data.containerWidth, $.containerHeight = e2.data.containerHeight, $.devicePixelRatio = e2.data.devicePixelRatio, $.bottomPadding = e2.data.bottomPadding, fe();\n break;\n }\n });\n})();\n", tb = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", eb], { type: "text/javascript;charset=utf-8" });
|
|
9617
|
+
eb = "var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateWrapper = (obj, member, setter, getter) => ({\n set _(value) {\n __privateSet(obj, member, value, setter);\n },\n get _() {\n return __privateGet(obj, member, getter);\n }\n});\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n(function() {\n var _e2, _t, _n, _a, _e3, _t2, _n2, _r, _b, _i, _c, _d, _e4;\n var e = class {\n constructor(e2 = 50) {\n __publicField(this, \"maxSize\");\n __publicField(this, \"values\", []);\n __publicField(this, \"start\", 0);\n __publicField(this, \"size\", () => this.values.length - this.start);\n __publicField(this, \"compact\", () => {\n if (this.start !== 0) {\n if (this.start >= this.values.length) {\n this.values = [], this.start = 0;\n return;\n }\n this.start < 32 && this.start * 2 < this.values.length || (this.values = this.values.slice(this.start), this.start = 0);\n }\n });\n __publicField(this, \"push\", (e2) => {\n this.isFull() && (this.start++, this.compact()), this.values.push(e2);\n });\n __publicField(this, \"clear\", () => {\n this.values = [], this.start = 0;\n });\n __publicField(this, \"pop\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values[this.start];\n return this.start++, this.compact(), e2;\n });\n __publicField(this, \"popLast\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values.pop();\n return this.start >= this.values.length && this.clear(), e2;\n });\n __publicField(this, \"peekFirst\", () => this.isEmpty() ? void 0 : this.values[this.start]);\n __publicField(this, \"peekLast\", () => this.isEmpty() ? void 0 : this.values[this.values.length - 1]);\n __publicField(this, \"isFull\", () => this.size() >= this.maxSize);\n __publicField(this, \"isEmpty\", () => this.size() === 0);\n __publicField(this, \"items\", () => this.start === 0 ? this.values : this.values.slice(this.start));\n __publicField(this, \"filterPop\", (e2) => {\n for (; !this.isEmpty(); ) {\n let t2 = this.peekFirst();\n if (t2 === void 0 || e2(t2)) return;\n this.pop();\n }\n });\n this.maxSize = e2;\n }\n }, t = (_a = class {\n constructor(e2, t2 = 0) {\n __privateAdd(this, _e2);\n __privateAdd(this, _t);\n __privateAdd(this, _n);\n __publicField(this, \"position\", () => __privateGet(this, _n));\n __publicField(this, \"peekBit\", () => this.getBit(__privateGet(this, _t), __privateGet(this, _n)));\n __publicField(this, \"readBit\", () => {\n let e2 = this.peekBit();\n return __privateWrapper(this, _n)._++, e2;\n });\n __publicField(this, \"readBits\", (e2) => {\n let t2 = 0;\n for (let n2 = 0; n2 < e2; n2++) t2 = t2 << 1 | (this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) ? 1 : 0);\n return t2;\n });\n __publicField(this, \"remainingBits\", () => __privateGet(this, _t).byteLength * 8 - __privateGet(this, _n));\n __publicField(this, \"readSignedExpGolomb\", () => {\n let e2 = this.readUnsignedExpGolomb();\n return e2 & 1 ? (e2 + 1) / 2 : -(e2 / 2);\n });\n __publicField(this, \"readUnsignedExpGolomb\", () => {\n let e2 = 0;\n for (; this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) === 0; ) e2++;\n let t2 = 1 << e2;\n for (let n2 = e2 - 1; n2 >= 0; n2--) t2 |= this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) << n2;\n return t2 - 1;\n });\n __publicField(this, \"getBit\", (e2, t2) => {\n if (e2.byteLength * 8 <= t2) throw Error(`BitReader: Out of bounds`);\n return e2[t2 >> 3] >> 7 - (t2 & 7) & 1;\n });\n __privateSet(this, _e2, e2), __privateSet(this, _t, new Uint8Array(__privateGet(this, _e2))), __privateSet(this, _n, t2);\n }\n bytes() {\n return __privateGet(this, _t);\n }\n }, _e2 = new WeakMap(), _t = new WeakMap(), _n = new WeakMap(), _a);\n let n = [`off`, `error`, `warn`, `info`, `debug`, `trace`];\n var r = (_b = class {\n constructor({ context: e2, logLevel: t2, debug: n2 }) {\n __privateAdd(this, _e3, /* @__PURE__ */ new Map());\n __privateAdd(this, _t2, ``);\n __privateAdd(this, _n2, false);\n __privateAdd(this, _r, `off`);\n __publicField(this, \"trace\", (...e2) => {\n });\n __publicField(this, \"debug\", (...e2) => {\n });\n __publicField(this, \"info\", (...e2) => {\n });\n __publicField(this, \"warn\", (...e2) => {\n });\n __publicField(this, \"error\", (...e2) => {\n });\n __publicField(this, \"table\", (...e2) => {\n });\n __publicField(this, \"count\", (...e2) => {\n });\n __privateSet(this, _t2, e2), __privateSet(this, _r, t2), __privateSet(this, _n2, n2 || false), this.setLevel(t2), this.setDebug(__privateGet(this, _n2));\n }\n setDebug(e2) {\n __privateSet(this, _n2, e2);\n for (let [t2, n2] of __privateGet(this, _e3)) n2.setDebug(e2);\n e2 ? (this.table = console.table.bind(console), this.count = console.count.bind(console)) : (this.table = () => {\n }, this.count = () => {\n });\n }\n setLevel(e2) {\n __privateSet(this, _r, e2);\n for (let [t3, n2] of __privateGet(this, _e3)) n2.setLevel(e2);\n let t2 = n.indexOf(e2);\n for (let [e3, r2] of n.entries()) r2 !== `off` && (e3 <= t2 ? this[r2] = console[r2].bind(console, `%c%s %c%s`, `font-weight:bold;`, r2.toUpperCase(), `font-weight:normal;`, __privateGet(this, _t2)) : this[r2] = () => {\n });\n }\n createContext(t2) {\n let n2 = __privateGet(this, _e3).get(t2);\n if (!n2) {\n let n3 = new _b({ context: `${t2}`, logLevel: __privateGet(this, _r), debug: __privateGet(this, _n2) });\n return __privateGet(this, _e3).set(t2, n3), n3;\n }\n return n2;\n }\n static get() {\n return __privateGet(_b, _i) || __privateSet(_b, _i, new _b({ context: `Vindral`, logLevel: `off` })), __privateGet(_b, _i);\n }\n }, _e3 = new WeakMap(), _t2 = new WeakMap(), _n2 = new WeakMap(), _r = new WeakMap(), _i = new WeakMap(), __privateAdd(_b, _i), _b);\n let i = { backgroundColor: `rgba(0,0,0,0.6)`, textPadding: 8, fontSize: `28px`, lineGap: 16 };\n function a(e2, t2) {\n let n2 = t2 * 0.05, r2 = e2 * 0.035;\n return `${Math.max(Math.round(Math.min(n2, r2)), 16)}px`;\n }\n function o(e2) {\n var _a2;\n let { subtitleWidth: t2, subtitleHeight: n2, canvasWidth: r2, canvasHeight: i2, containerWidth: a2, bottomPadding: o2 } = e2, s2 = (_a2 = e2.baseMargin) != null ? _a2 : 20, c2 = r2 / a2, l2 = t2 * c2, u2 = n2 * c2;\n return { drawWidth: l2, drawHeight: u2, x: (r2 - l2) / 2, y: i2 - u2 - (o2 + s2) * c2 };\n }\n var s = class extends Error {\n constructor(e2, t2, n2 = {}) {\n super(e2);\n __publicField(this, \"props\");\n __publicField(this, \"extra\", {});\n __publicField(this, \"code\", () => this.props.code);\n __publicField(this, \"isFatal\", () => this.props.isFatal);\n __publicField(this, \"source\", () => this.props.source);\n __publicField(this, \"type\", () => {\n var _a2;\n return (_a2 = this.props.type) != null ? _a2 : `external`;\n });\n __publicField(this, \"toStringifiable\", () => {\n var _a2;\n let e2 = this.source(), t2 = e2 instanceof Error ? e2.stack : this.stack;\n return __spreadProps(__spreadValues({}, this.extra), { code: this.props.code, isFatal: this.props.isFatal, type: this.props.type, message: this.message, sourceMessage: (_a2 = this.source()) == null ? void 0 : _a2.message, stack: t2 });\n });\n this.props = t2, this.extra = n2, Object.setPrototypeOf(this, new.target.prototype);\n }\n };\n let c = (e2, t2) => new s(`No init segment for rendition id ${e2} for channel ${t2}`, { isFatal: false, code: `missing_init_segment`, type: `internal` }), l = (e2) => {\n let t2 = e2.getUint32(0, false), n2 = e2.getUint8(0) << 16 | e2.getUint16(1, false), r2 = 0;\n return n2 === 1 ? r2 += 3 : t2 === 1 && (r2 += 4), r2;\n }, u = (e2) => l(new DataView(e2, 0)) !== 0, d = (e2, t2 = 0) => {\n for (let n2 = t2; n2 < e2.byteLength - 4; n2++) {\n let t3 = e2.getUint32(n2) === 1, r2 = (e2.getUint8(n2) << 16 | e2.getUint16(n2 + 1)) == 1;\n if (t3 || r2) return { position: n2, nalPrefixSize: t3 ? 4 : 3 };\n }\n }, f = (e2) => e2 & 31, p = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = d(n2);\n for (; r2; ) {\n let { position: i2, nalPrefixSize: a2 } = r2, o2 = d(n2, i2 + 4), s2 = o2 ? o2.position - i2 - a2 : void 0;\n if (!t2(new DataView(e2, i2 + a2, s2), a2)) return;\n r2 = o2;\n }\n }, m = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = 0;\n for (; r2 < e2.byteLength; ) {\n let i2 = n2.getUint32(r2);\n if (!t2(new DataView(e2, r2 + 4, i2))) return;\n r2 += i2 + 4;\n }\n }, h = (e2) => {\n let t2 = [], n2 = [];\n if (!u(e2)) {\n let r2 = new DataView(e2, 0), i2 = r2.getUint8(5) & 31, a2 = 6;\n for (let n3 = 0; n3 < i2; n3++) {\n let n4 = r2.getUint16(a2);\n t2.push(e2.slice(a2 + 2, a2 + 2 + n4)), a2 += n4 + 2;\n }\n let o2 = r2.getUint8(a2);\n a2 += 1;\n for (let t3 = 0; t3 < o2; t3++) {\n let t4 = r2.getUint16(a2);\n n2.push(e2.slice(a2 + 2, a2 + 2 + t4)), a2 += t4 + 2;\n }\n return { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }\n return p(e2, (e3) => {\n let r2 = e3.byteOffset + e3.byteLength;\n switch (f(e3.getUint8(0))) {\n case 8:\n n2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n case 7:\n t2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n }\n return true;\n }), { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }, g = (e2) => {\n var _a2;\n let n2 = new DataView(e2), r2 = n2.getUint8(1), i2 = n2.getUint8(2), a2 = n2.getUint8(3), o2 = new t(e2, 32);\n o2.readUnsignedExpGolomb();\n let s2 = 1;\n switch (r2) {\n case 100:\n case 110:\n case 122:\n case 244:\n case 44:\n case 83:\n case 86:\n case 118:\n case 128:\n case 138:\n case 144:\n if (s2 = o2.readUnsignedExpGolomb(), s2 === 3 && o2.readBits(1), o2.readUnsignedExpGolomb() + 8, o2.readUnsignedExpGolomb() + 8, o2.readBit(), o2.readBit()) {\n for (let e3 = 0; e3 < (s2 === 3 ? 12 : 8); e3++) if (o2.readBit()) {\n let t2 = e3 < 6 ? 16 : 64, n3 = 0, r3 = 8, i3 = 8;\n for (let e4 = 0; e4 < t2; e4++) i3 !== 0 && (n3 = o2.readSignedExpGolomb(), i3 = (r3 + n3 + 256) % 256), r3 = i3 === 0 ? r3 : i3;\n }\n }\n break;\n default:\n break;\n }\n o2.readUnsignedExpGolomb();\n let c2 = o2.readUnsignedExpGolomb();\n if (c2 === 0) o2.readUnsignedExpGolomb();\n else if (c2 === 1) throw Error(`Unhandled case`);\n o2.readUnsignedExpGolomb(), o2.readBit();\n let l2 = o2.readUnsignedExpGolomb(), u2 = o2.readUnsignedExpGolomb(), d2 = o2.readBit();\n d2 === 0 && o2.readBit(), o2.readBit();\n let f2 = l2 + 1, p2 = u2 + 1;\n if (p2 *= 2 - d2, p2 *= 16, f2 *= 16, o2.readBit()) {\n let e3 = s2 === 1 ? 1 : 0, t2 = 1 << (s2 === 1 || s2 === 2 ? 1 : 0), n3 = 2 - d2 << e3, r3 = o2.readUnsignedExpGolomb() * t2, i3 = o2.readUnsignedExpGolomb() * t2, a3 = o2.readUnsignedExpGolomb() * n3, c3 = o2.readUnsignedExpGolomb() * n3;\n f2 -= r3 + i3, p2 -= a3 + c3;\n }\n let m2 = { numerator: 1, denumerator: 1 };\n return o2.readBit() && o2.readBit() && (m2 = (_a2 = _[o2.readBits(8)]) != null ? _a2 : { numerator: 0, denumerator: 0 }), { width: f2, height: p2, pixelAspectRatio: m2, profileIdc: r2, constraintFlags: i2, levelIdc: a2 };\n }, _ = [{ numerator: 0, denumerator: 0 }, { numerator: 1, denumerator: 1 }, { numerator: 12, denumerator: 11 }, { numerator: 10, denumerator: 11 }, { numerator: 16, denumerator: 11 }, { numerator: 40, denumerator: 33 }, { numerator: 24, denumerator: 11 }, { numerator: 20, denumerator: 11 }, { numerator: 32, denumerator: 11 }, { numerator: 80, denumerator: 33 }, { numerator: 18, denumerator: 11 }, { numerator: 15, denumerator: 11 }, { numerator: 64, denumerator: 33 }, { numerator: 160, denumerator: 99 }, { numerator: 4, denumerator: 3 }, { numerator: 3, denumerator: 2 }, { numerator: 2, denumerator: 1 }], v = (e2) => {\n let n2 = new t(e2);\n return n2.peekBit() === 1 && n2.readBits(32), S(n2), C(n2);\n }, y = (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = v(e2), n2 = t2.seqProfile, r2 = (_b2 = (_a2 = t2.operatingPoints[0]) == null ? void 0 : _a2.seqLevelIdx) != null ? _b2 : 0, i2 = (_d2 = (_c2 = t2.operatingPoints[0]) == null ? void 0 : _c2.tier) != null ? _d2 : 0, a2 = t2.colorConfig.bitDepth, o2 = `av01.${n2}.${r2.toString().padStart(2, `0`)}${i2 === 0 ? `M` : `H`}.${a2.toString().padStart(2, `0`)}`;\n return { codecString: `${o2}.${t2.colorConfig.monoChrome ? 1 : 0}.${`${t2.colorConfig.subsamplingX}${t2.colorConfig.subsamplingY}${t2.colorConfig.chromaSamplePosition}`}.${t2.colorConfig.colorPrimaries.toString().padStart(2, `0`)}.${t2.colorConfig.transferCharacteristics.toString().padStart(2, `0`)}.${t2.colorConfig.matrixCoefficients.toString().padStart(2, `0`)}.${t2.colorConfig.colorRange ? 1 : 0}`, fallbackCodecString: o2, width: t2.maxFrameWidth, height: t2.maxFrameHeight };\n }, b = (e2) => {\n let t2 = 0, n2 = 0;\n for (let r2 = 0; r2 < 8; r2++) {\n let i2 = e2.readBits(8);\n if (t2 |= (i2 & 127) << r2 * 7, n2 += 1, (i2 & 128) != 128) break;\n }\n return [n2, t2];\n }, x = (e2) => {\n let t2 = 0;\n for (; t2 < 100 && e2.readBit() === 0; ) t2++;\n return t2 >= 32 ? 0 : e2.readBits(t2) + (1 << t2) - 1;\n }, S = (e2) => {\n let t2 = e2.remainingBits() / 8, n2 = e2.readBits(8);\n if (n2 >> 7 & 1) return;\n let r2 = n2 >> 3 & 15, i2 = n2 >> 2 & 1, a2 = n2 >> 1 & 1;\n i2 === 1 && e2.readBits(8);\n let [o2, s2] = a2 ? b(e2) : [0, t2];\n return { headerLength: 1 + i2 + o2, type: r2, obuSize: s2 };\n }, ee = (e2) => {\n let t2 = e2.readBits(32), n2 = e2.readBits(32), r2 = e2.readBit() !== 0, i2 = 0;\n return r2 && (i2 = x(e2) + 1), { timescale: n2, equalPictureInterval: r2, numUnitsInDisplayTick: t2, numTicksPerPicture: i2 };\n }, C = (e2) => {\n let t2 = e2.readBits(3), n2 = e2.readBit() !== 0, r2 = e2.readBit() !== 0, i2, a2 = false, o2 = false, s2 = false, c2 = 0, l2 = 0, u2 = [];\n if (r2) e2.readBits(5);\n else {\n if (o2 = e2.readBit() !== 0, o2 && (i2 = ee(e2), a2 = e2.readBit() !== 0, a2)) throw Error(`Not implemented`);\n s2 = e2.readBit() !== 0;\n let t3 = e2.readBits(5) + 1;\n for (let n3 = 0; n3 < t3; n3++) {\n let t4 = e2.readBits(12), n4 = e2.readBits(5), r3 = 0;\n if (n4 > 7 && (r3 = e2.readBit()), a2) throw Error(`decoderModelInfoPresentFlag==1`);\n s2 && e2.readBit() !== 0 && e2.readBits(4), u2.push({ tier: r3, operatingPointIdc: t4, seqLevelIdx: n4 });\n }\n }\n let d2 = e2.readBits(4) + 1, f2 = e2.readBits(4) + 1, p2 = e2.readBits(d2) + 1, m2 = e2.readBits(f2) + 1, h2 = false;\n h2 = r2 ? false : e2.readBit() !== 0, h2 && (c2 = e2.readBits(4) + 2, l2 = e2.readBits(3) + 1);\n let g2 = e2.readBit() !== 0, _2 = e2.readBit() !== 0, v2 = e2.readBit() !== 0, y2 = false, b2 = false, x2 = false, S2 = false, C2 = false, w2 = false, T2 = false, E2 = 2, D2 = 2, O2 = 0;\n r2 || (y2 = e2.readBit() !== 0, b2 = e2.readBit() !== 0, x2 = e2.readBit() !== 0, S2 = e2.readBit() !== 0, C2 = e2.readBit() !== 0, C2 && (w2 = e2.readBit() !== 0, T2 = e2.readBit() !== 0), E2 = e2.readBit() === 0 ? e2.readBit() : 2, D2 = E2 > 0 ? e2.readBit() > 0 ? 2 : e2.readBit() : 2, O2 = C2 ? e2.readBits(3) : 0);\n let k2 = e2.readBit() !== 0, A2 = e2.readBit() !== 0, j2 = e2.readBit() !== 0;\n return { seqProfile: t2, stillPicture: n2, reducedStillPictureHeader: r2, timingInfoPresentFlag: o2, timingInfo: i2 != null ? i2 : { equalPictureInterval: false, numUnitsInDisplayTick: 0, timescale: 0, numTicksPerPicture: 0 }, decoderModelInfoPresentFlag: a2, initialDisplayDelayPresentFlag: s2, operatingPoints: u2, frameWidthBits: d2, frameHeightBits: f2, maxFrameWidth: p2, maxFrameHeight: m2, frameIdNumbersPresentFlag: h2, deltaFrameIdLength: c2, additionalFrameIdLength: l2, use_128x128Superblock: g2, enableFilterIntra: _2, enableIntraEdgeFilter: v2, enableInterintraCompound: y2, enableMaskedCompound: b2, enableWarpedMotion: x2, enableDualFilter: S2, enableOrderHint: C2, enableJntComp: w2, enableRefFrameMvs: T2, seqForceScreenContentTools: E2, seqForceIntegerMv: D2, orderHintBits: O2, enableSuperres: k2, enableCdef: A2, enableRestoration: j2, colorConfig: te(e2, t2), filmGrainParamsPresent: e2.readBit() !== 0 };\n }, te = (e2, t2) => {\n let n2 = e2.readBit() !== 0, r2 = 8, i2 = false;\n t2 === 2 && n2 ? r2 = e2.readBit() === 0 ? 10 : 12 : t2 <= 2 && (r2 = n2 ? 10 : 8), i2 = t2 === 1 ? false : e2.readBit() !== 0;\n let a2 = i2 ? 1 : 3, o2 = e2.readBit() !== 0, s2 = 2, c2 = 2, l2 = 2, u2 = false, d2 = 0, f2 = 0, p2 = 0, m2 = false;\n return o2 && (s2 = e2.readBits(8), c2 = e2.readBits(8), l2 = e2.readBits(8)), i2 ? (u2 = e2.readBit() !== 0, d2 = 1, f2 = 1, p2 = 0, m2 = false, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : s2 === 1 && c2 === 13 && l2 === 0 ? (u2 = true, d2 = 0, f2 = 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : (u2 = e2.readBit() !== 0, t2 === 0 ? (d2 = 1, f2 = 1) : t2 === 1 ? (d2 = 0, f2 = 0) : r2 === 12 ? (d2 = e2.readBit(), f2 = d2 === 0 ? 0 : e2.readBit()) : (d2 = 1, f2 = 0), d2 !== 0 && f2 !== 0 && (p2 = e2.readBits(2)), m2 = e2.readBit() !== 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 });\n };\n var w = (function() {\n var e2 = typeof document < `u` && document.currentScript ? document.currentScript.src : void 0;\n return (function(t2) {\n t2 || (t2 = {});\n var n2;\n n2 || (n2 = t2 === void 0 ? {} : t2);\n var r2, i2;\n n2.ready = new Promise(function(e3, t3) {\n r2 = e3, i2 = t3;\n });\n var a2 = {}, o2;\n for (o2 in n2) n2.hasOwnProperty(o2) && (a2[o2] = n2[o2]);\n var s2 = ``, c2;\n s2 = self.location.href, e2 && (s2 = e2), s2 = s2.indexOf(`blob:`) === 0 ? `` : s2.substr(0, s2.lastIndexOf(`/`) + 1), c2 = function(e3) {\n try {\n var t3 = new XMLHttpRequest();\n return t3.open(`GET`, e3, false), t3.responseType = `arraybuffer`, t3.send(null), new Uint8Array(t3.response);\n } catch (t4) {\n if (e3 = ie2(e3)) return e3;\n throw t4;\n }\n };\n var l2 = n2.printErr || console.warn.bind(console);\n for (o2 in a2) a2.hasOwnProperty(o2) && (n2[o2] = a2[o2]);\n a2 = null;\n var u2;\n n2.wasmBinary && (u2 = n2.wasmBinary), n2.noExitRuntime, typeof WebAssembly != `object` && D2(`no native wasm support detected`);\n var d2, f2 = false, p2, m2, h2, g2, _2, v2, y2;\n function b2() {\n var e3 = d2.buffer;\n p2 = e3, n2.HEAP8 = m2 = new Int8Array(e3), n2.HEAP16 = g2 = new Int16Array(e3), n2.HEAP32 = _2 = new Int32Array(e3), n2.HEAPU8 = h2 = new Uint8Array(e3), n2.HEAPU16 = new Uint16Array(e3), n2.HEAPU32 = new Uint32Array(e3), n2.HEAPF32 = v2 = new Float32Array(e3), n2.HEAPF64 = y2 = new Float64Array(e3);\n }\n var x2, S2 = [], ee2 = [], C2 = [];\n function te2() {\n var e3 = n2.preRun.shift();\n S2.unshift(e3);\n }\n var w2 = 0, T2 = null, E2 = null;\n n2.preloadedImages = {}, n2.preloadedAudios = {};\n function D2(e3) {\n throw n2.onAbort && n2.onAbort(e3), l2(e3), f2 = true, e3 = new WebAssembly.RuntimeError(`abort(` + e3 + `). Build with -s ASSERTIONS=1 for more info.`), i2(e3), e3;\n }\n var O2 = `data:application/octet-stream;base64,`, k2 = `data:application/octet-stream;base64,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agwNCyAEQRt2QeATagwMCyAEQRt2QYAUagwLCyAEQRp2QaAUagwKCyAEQRp2QeAUagwJCyAEQRp2QaAVagwICyAEQRp2QeAVagwHCyAEQRt2QaAWagwGCyAEQRx2QcAWagwFCyAEQRx2QdAWagwECyAEQR12QeAWagwDCyAEQR52QegWagwCCyAEQQBIBEBBASECDAQLQREhAiAKQQNGDQNBEiECIARB/////wNLDQNBIiECIApBAkYNA0EzQSMgBEGAgICAAkkbIQIMAwsgBEEXdkHAEmogBEEbdkGgEmogBEGAgICAAUkbCy0AACICDQEMBAtBAUERIARBf0obIQILIAJBBHYhByAGIAJBD3EiA2shAiAEIAN0IQQLIApBAWsiBQRAA0ACQCAHBEAgAkEKTQRAIABBICACaxALQX9GBEAMBwsgABAQIQRBICECCwJAAn8CQAJAAkACQAJAAkACQCAHQQFrDgYGAAECAwQFCyAEQR52Qe4WagwGCyAEQR52QfIWagwFCyAEQR12QfYWagwECyAEQR12Qf4WagwDCyAEQR12QYYXagwCCwJ/QfMAIARBGXZB8ABxayAEQYCAgIACTw0AGkH0ACAEQf////8ASw0AGkGFASAEQf///z9LDQAaQZYBIARB////H0sNABpBpwEgBEH///8PSw0AGkG4ASAEQf///wdLDQAaQckBIARB////A0sNABpB2gEgBEH///8BSw0AGkEAQesBIARBgICAAUkbCyIGQQR2IAdNDQIMCAsgBEEfdkHsFmoLLQAAIQYLIAZFBEAMBgsgCSAIQQJ0aiAGQQR2IgNBAWo2AgAgByADayEHIAIgBkEPcSIDayECIAQgA3QhBAwBCyAJIAhBAnRqQQE2AgBBACEHCyAIQQFqIgggBUcNAAsgASAHQQJ0aiAJQUBrIAVBAnRqKAIANgIAQQEgB3QhBiAFRQ0BIApBAmshAyAFQQFxBH8gASAJIANBAnQiBGooAgAgB2oiB0ECdGogCUFAayAEaigCADYCAEEBIAd0IAZyIQYgCkEDawUgAwshBCADRQ0BA0AgASAJIARBAnQiBWooAgAgB2oiA0ECdGogCUFAayAFaigCADYCACABIAkgBEEBayIFQQJ0IgxqKAIAIANqIgdBAnRqIAlBQGsgDGooAgA2AgBBASADdCAGckEBIAd0ciEGIARBAmshBCAFDQALDAELIAEgB0ECdGogCUFAayAFQQJ0aigCADYCAEEBIAd0IQYLIABBICACaxALDQAgBkEQdCAKQQR0ciELCyAJQYABaiQAIAsLmy4BDH8jAEEQayIMJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEG4wAAoAgAiBUEQIABBC2pBeHEgAEELSRsiCEEDdiICdiIBQQNxBEAgAUF/c0EBcSACaiIDQQN0IgFB6MAAaigCACIEQQhqIQACQCAEKAIIIgIgAUHgwABqIgFGBEBBuMAAIAVBfiADd3E2AgAMAQsgAiABNgIMIAEgAjYCCAsgBCADQQN0IgFBA3I2AgQgASAEaiIBIAEoAgRBAXI2AgQMDQsgCEHAwAAoAgAiCk0NASABBEACQEECIAJ0IgBBACAAa3IgASACdHEiAEEAIABrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqIgNBA3QiAEHowABqKAIAIgQoAggiASAAQeDAAGoiAEYEQEG4wAAgBUF+IAN3cSIFNgIADAELIAEgADYCDCAAIAE2AggLIARBCGohACAEIAhBA3I2AgQgBCAIaiICIANBA3QiASAIayIDQQFyNgIEIAEgBGogAzYCACAKBEAgCkEDdiIBQQN0QeDAAGohB0HMwAAoAgAhBAJ/IAVBASABdCIBcUUEQEG4wAAgASAFcjYCACAHDAELIAcoAggLIQEgByAENgIIIAEgBDYCDCAEIAc2AgwgBCABNgIIC0HMwAAgAjYCAEHAwAAgAzYCAAwNC0G8wAAoAgAiBkUNASAGQQAgBmtxQQFrIgAgAEEMdkEQcSICdiIBQQV2QQhxIgAgAnIgASAAdiIBQQJ2QQRxIgByIAEgAHYiAUEBdkECcSIAciABIAB2IgFBAXZBAXEiAHIgASAAdmpBAnRB6MIAaigCACIBKAIEQXhxIAhrIQMgASECA0ACQCACKAIQIgBFBEAgAigCFCIARQ0BCyAAKAIEQXhxIAhrIgIgAyACIANJIgIbIQMgACABIAIbIQEgACECDAELCyABIAhqIgkgAU0NAiABKAIYIQsgASABKAIMIgRHBEAgASgCCCIAQcjAACgCAEkaIAAgBDYCDCAEIAA2AggMDAsgAUEUaiICKAIAIgBFBEAgASgCECIARQ0EIAFBEGohAgsDQCACIQcgACIEQRRqIgIoAgAiAA0AIARBEGohAiAEKAIQIgANAAsgB0EANgIADAsLQX8hCCAAQb9/Sw0AIABBC2oiAEF4cSEIQbzAACgCACIJRQ0AQR8hBUEAIAhrIQMCQAJAAkACfyAIQf///wdNBEAgAEEIdiIAIABBgP4/akEQdkEIcSICdCIAIABBgOAfakEQdkEEcSIBdCIAIABBgIAPakEQdkECcSIAdEEPdiABIAJyIAByayIAQQF0IAggAEEVanZBAXFyQRxqIQULIAVBAnRB6MIAaigCACICRQsEQEEAIQAMAQtBACEAIAhBAEEZIAVBAXZrIAVBH0YbdCEBA0ACQCACKAIEQXhxIAhrIgcgA08NACACIQQgByIDDQBBACEDIAIhAAwDCyAAIAIoAhQiByAHIAIgAUEddkEEcWooAhAiAkYbIAAgBxshACABQQF0IQEgAg0ACwsgACAEckUEQEECIAV0IgBBACAAa3IgCXEiAEUNAyAAQQAgAGtxQQFrIgAgAEEMdkEQcSICdiIBQQV2QQhxIgAgAnIgASAAdiIBQQJ2QQRxIgByIAEgAHYiAUEBdkECcSIAciABIAB2IgFBAXZBAXEiAHIgASAAdmpBAnRB6MIAaigCACEACyAARQ0BCwNAIAAoAgRBeHEgCGsiASADSSECIAEgAyACGyEDIAAgBCACGyEEIAAoAhAiAQR/IAEFIAAoAhQLIgANAAsLIARFDQAgA0HAwAAoAgAgCGtPDQAgBCAIaiIGIARNDQEgBCgCGCEFIAQgBCgCDCIBRwRAIAQoAggiAEHIwAAoAgBJGiAAIAE2AgwgASAANgIIDAoLIARBFGoiAigCACIARQRAIAQoAhAiAEUNBCAEQRBqIQILA0AgAiEHIAAiAUEUaiICKAIAIgANACABQRBqIQIgASgCECIADQALIAdBADYCAAwJCyAIQcDAACgCACICTQRAQczAACgCACEDAkAgAiAIayIBQRBPBEBBwMAAIAE2AgBBzMAAIAMgCGoiADYCACAAIAFBAXI2AgQgAiADaiABNgIAIAMgCEEDcjYCBAwBC0HMwABBADYCAEHAwABBADYCACADIAJBA3I2AgQgAiADaiIAIAAoAgRBAXI2AgQLIANBCGohAAwLCyAIQcTAACgCACIGSQRAQcTAACAGIAhrIgE2AgBB0MAAQdDAACgCACICIAhqIgA2AgAgACABQQFyNgIEIAIgCEEDcjYCBCACQQhqIQAMCwtBACEAIAhBL2oiCQJ/QZDEACgCAARAQZjEACgCAAwBC0GcxABCfzcCAEGUxABCgKCAgICABDcCAEGQxAAgDEEMakFwcUHYqtWqBXM2AgBBpMQAQQA2AgBB9MMAQQA2AgBBgCALIgFqIgVBACABayIHcSICIAhNDQpB8MMAKAIAIgQEQEHowwAoAgAiAyACaiIBIANNDQsgASAESw0LC0H0wwAtAABBBHENBQJAAkBB0MAAKAIAIgMEQEH4wwAhAANAIAMgACgCACIBTwRAIAEgACgCBGogA0sNAwsgACgCCCIADQALC0EAEBIiAUF/Rg0GIAIhBUGUxAAoAgAiA0EBayIAIAFxBEAgAiABayAAIAFqQQAgA2txaiEFCyAFIAhNDQYgBUH+////B0sNBkHwwwAoAgAiBARAQejDACgCACIDIAVqIgAgA00NByAAIARLDQcLIAUQEiIAIAFHDQEMCAsgBSAGayAHcSIFQf7///8HSw0FIAUQEiIBIAAoAgAgACgCBGpGDQQgASEACwJAIAhBMGogBU0NACAAQX9GDQBBmMQAKAIAIgEgCSAFa2pBACABa3EiAUH+////B0sEQCAAIQEMCAsgARASQX9HBEAgASAFaiEFIAAhAQwIC0EAIAVrEBIaDAULIAAiAUF/Rw0GDAQLAAtBACEEDAcLQQAhAQwFCyABQX9HDQILQfTDAEH0wwAoAgBBBHI2AgALIAJB/v///wdLDQEgAhASIQFBABASIQAgAUF/Rg0BIABBf0YNASAAIAFNDQEgACABayIFIAhBKGpNDQELQejDAEHowwAoAgAgBWoiADYCAEHswwAoAgAgAEkEQEHswwAgADYCAAsCQAJAAkBB0MAAKAIAIgcEQEH4wwAhAANAIAEgACgCACIDIAAoAgQiAmpGDQIgACgCCCIADQALDAILQcjAACgCACIAQQAgACABTRtFBEBByMAAIAE2AgALQQAhAEH8wwAgBTYCAEH4wwAgATYCAEHYwABBfzYCAEHcwABBkMQAKAIANgIAQYTEAEEANgIAA0AgAEEDdCIDQejAAGogA0HgwABqIgI2AgAgA0HswABqIAI2AgAgAEEBaiIAQSBHDQALQcTAACAFQShrIgNBeCABa0EHcUEAIAFBCGpBB3EbIgBrIgI2AgBB0MAAIAAgAWoiADYCACAAIAJBAXI2AgQgASADakEoNgIEQdTAAEGgxAAoAgA2AgAMAgsgASAHTQ0AIAAoAgxBCHENACADIAdLDQAgACACIAVqNgIEQdDAACAHQXggB2tBB3FBACAHQQhqQQdxGyIAaiICNgIAQcTAAEHEwAAoAgAgBWoiASAAayIANgIAIAIgAEEBcjYCBCABIAdqQSg2AgRB1MAAQaDEACgCADYCAAwBC0HIwAAoAgAgAUsEQEHIwAAgATYCAAsgASAFaiECQfjDACEAAkACQAJAAkACQAJAA0AgAiAAKAIARwRAIAAoAggiAA0BDAILCyAALQAMQQhxRQ0BC0H4wwAhAANAIAcgACgCACICTwRAIAIgACgCBGoiBCAHSw0DCyAAKAIIIQAMAAsACyAAIAE2AgAgACAAKAIEIAVqNgIEIAFBeCABa0EHcUEAIAFBCGpBB3EbaiIJIAhBA3I2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgUgCCAJaiIGayECIAUgB0YEQEHQwAAgBjYCAEHEwABBxMAAKAIAIAJqIgA2AgAgBiAAQQFyNgIEDAMLIAVBzMAAKAIARgRAQczAACAGNgIAQcDAAEHAwAAoAgAgAmoiADYCACAGIABBAXI2AgQgACAGaiAANgIADAMLIAUoAgQiAEEDcUEBRgRAIABBeHEhBwJAIABB/wFNBEAgBSgCCCIDIABBA3YiAEEDdEHgwABqRhogAyAFKAIMIgFGBEBBuMAAQbjAACgCAEF+IAB3cTYCAAwCCyADIAE2AgwgASADNgIIDAELIAUoAhghCAJAIAUgBSgCDCIBRwRAIAUoAggiACABNgIMIAEgADYCCAwBCwJAIAVBFGoiACgCACIDDQAgBUEQaiIAKAIAIgMNAEEAIQEMAQsDQCAAIQQgAyIBQRRqIgAoAgAiAw0AIAFBEGohACABKAIQIgMNAAsgBEEANgIACyAIRQ0AAkAgBSAFKAIcIgNBAnRB6MIAaiIAKAIARgRAIAAgATYCACABDQFBvMAAQbzAACgCAEF+IAN3cTYCAAwCCyAIQRBBFCAIKAIQIAVGG2ogATYCACABRQ0BCyABIAg2AhggBSgCECIABEAgASAANgIQIAAgATYCGAsgBSgCFCIARQ0AIAEgADYCFCAAIAE2AhgLIAUgB2ohBSACIAdqIQILIAUgBSgCBEF+cTYCBCAGIAJBAXI2AgQgAiAGaiACNgIAIAJB/wFNBEAgAkEDdiIAQQN0QeDAAGohAgJ/QbjAACgCACIBQQEgAHQiAHFFBEBBuMAAIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBjYCCCAAIAY2AgwgBiACNgIMIAYgADYCCAwDC0EfIQAgAkH///8HTQRAIAJBCHYiACAAQYD+P2pBEHZBCHEiA3QiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASADciAAcmsiAEEBdCACIABBFWp2QQFxckEcaiEACyAGIAA2AhwgBkIANwIQIABBAnRB6MIAaiEEAkBBvMAAKAIAIgNBASAAdCIBcUUEQEG8wAAgASADcjYCACAEIAY2AgAgBiAENgIYDAELIAJBAEEZIABBAXZrIABBH0YbdCEAIAQoAgAhAQNAIAEiAygCBEF4cSACRg0DIABBHXYhASAAQQF0IQAgAyABQQRxaiIEKAIQIgENAAsgBCAGNgIQIAYgAzYCGAsgBiAGNgIMIAYgBjYCCAwCC0HEwAAgBUEoayIDQXggAWtBB3FBACABQQhqQQdxGyIAayICNgIAQdDAACAAIAFqIgA2AgAgACACQQFyNgIEIAEgA2pBKDYCBEHUwABBoMQAKAIANgIAIAcgBEEnIARrQQdxQQAgBEEna0EHcRtqQS9rIgAgACAHQRBqSRsiAkEbNgIEIAJBgMQAKQIANwIQIAJB+MMAKQIANwIIQYDEACACQQhqNgIAQfzDACAFNgIAQfjDACABNgIAQYTEAEEANgIAIAJBGGohAANAIABBBzYCBCAAQQhqIQEgAEEEaiEAIAEgBEkNAAsgAiAHRg0DIAIgAigCBEF+cTYCBCAHIAIgB2siBEEBcjYCBCACIAQ2AgAgBEH/AU0EQCAEQQN2IgBBA3RB4MAAaiECAn9BuMAAKAIAIgFBASAAdCIAcUUEQEG4wAAgACABcjYCACACDAELIAIoAggLIQAgAiAHNgIIIAAgBzYCDCAHIAI2AgwgByAANgIIDAQLQR8hACAHQgA3AhAgBEH///8HTQRAIARBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCAEIABBFWp2QQFxckEcaiEACyAHIAA2AhwgAEECdEHowgBqIQMCQEG8wAAoAgAiAkEBIAB0IgFxRQRAQbzAACABIAJyNgIAIAMgBzYCACAHIAM2AhgMAQsgBEEAQRkgAEEBdmsgAEEfRht0IQAgAygCACEBA0AgASICKAIEQXhxIARGDQQgAEEddiEBIABBAXQhACACIAFBBHFqIgMoAhAiAQ0ACyADIAc2AhAgByACNgIYCyAHIAc2AgwgByAHNgIIDAMLIAMoAggiACAGNgIMIAMgBjYCCCAGQQA2AhggBiADNgIMIAYgADYCCAsgCUEIaiEADAULIAIoAggiACAHNgIMIAIgBzYCCCAHQQA2AhggByACNgIMIAcgADYCCAtBxMAAKAIAIgAgCE0NAEHEwAAgACAIayIBNgIAQdDAAEHQwAAoAgAiAiAIaiIANgIAIAAgAUEBcjYCBCACIAhBA3I2AgQgAkEIaiEADAMLQbTAAEEwNgIAQQAhAAwCCwJAIAVFDQACQCAEKAIcIgJBAnRB6MIAaiIAKAIAIARGBEAgACABNgIAIAENAUG8wAAgCUF+IAJ3cSIJNgIADAILIAVBEEEUIAUoAhAgBEYbaiABNgIAIAFFDQELIAEgBTYCGCAEKAIQIgAEQCABIAA2AhAgACABNgIYCyAEKAIUIgBFDQAgASAANgIUIAAgATYCGAsCQCADQQ9NBEAgBCADIAhqIgBBA3I2AgQgACAEaiIAIAAoAgRBAXI2AgQMAQsgBCAIQQNyNgIEIAYgA0EBcjYCBCADIAZqIAM2AgAgA0H/AU0EQCADQQN2IgBBA3RB4MAAaiECAn9BuMAAKAIAIgFBASAAdCIAcUUEQEG4wAAgACABcjYCACACDAELIAIoAggLIQAgAiAGNgIIIAAgBjYCDCAGIAI2AgwgBiAANgIIDAELQR8hACADQf///wdNBEAgA0EIdiIAIABBgP4/akEQdkEIcSICdCIAIABBgOAfakEQdkEEcSIBdCIAIABBgIAPakEQdkECcSIAdEEPdiABIAJyIAByayIAQQF0IAMgAEEVanZBAXFyQRxqIQALIAYgADYCHCAGQgA3AhAgAEECdEHowgBqIQICQAJAIAlBASAAdCIBcUUEQEG8wAAgASAJcjYCACACIAY2AgAgBiACNgIYDAELIANBAEEZIABBAXZrIABBH0YbdCEAIAIoAgAhCANAIAgiASgCBEF4cSADRg0CIABBHXYhAiAAQQF0IQAgASACQQRxaiICKAIQIggNAAsgAiAGNgIQIAYgATYCGAsgBiAGNgIMIAYgBjYCCAwBCyABKAIIIgAgBjYCDCABIAY2AgggBkEANgIYIAYgATYCDCAGIAA2AggLIARBCGohAAwBCwJAIAtFDQACQCABKAIcIgJBAnRB6MIAaiIAKAIAIAFGBEAgACAENgIAIAQNAUG8wAAgBkF+IAJ3cTYCAAwCCyALQRBBFCALKAIQIAFGG2ogBDYCACAERQ0BCyAEIAs2AhggASgCECIABEAgBCAANgIQIAAgBDYCGAsgASgCFCIARQ0AIAQgADYCFCAAIAQ2AhgLAkAgA0EPTQRAIAEgAyAIaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIEDAELIAEgCEEDcjYCBCAJIANBAXI2AgQgAyAJaiADNgIAIAoEQCAKQQN2IgBBA3RB4MAAaiEEQczAACgCACECAn9BASAAdCIAIAVxRQRAQbjAACAAIAVyNgIAIAQMAQsgBCgCCAshACAEIAI2AgggACACNgIMIAIgBDYCDCACIAA2AggLQczAACAJNgIAQcDAACADNgIACyABQQhqIQALIAxBEGokACAAC0QBAX8gACAAKAIQIAFqIgE2AhAgACABQQdxNgIIQX8hAiAAKAIMQQN0IAFPBH8gACAAKAIAIAFBA3ZqNgIEQQAFQX8LC+0VAQ9/IAAgBEEAIAZrIAIgAiAGakEASBsiAiACIARKGyINaiAAIA1BAEobIgIgBUEAIAdrIAMgAyAHakEASBsiACAAIAVKGyIAIARsaiACIABBAEobIQkgB0EAIABrIABBH3VxIgogACAHaiIUIAVrIhNBACAFIBRIGyIWamshEiAGQQAgDWsgDUEfdXEiDCAGIA1qIg8gBGtBACAEIA9IIgIbIg5qayELAkAgDUEASCACciIXRQRAAkAgCkUNACAKQQNxIgMEQANAIApBAWshCiABIAkgCxAIIAhqIQEgA0EBayIDDQALCyAAQX9zIABBACAAQQBKG2pBA0kNAANAIAEgCSALEAggCGogCSALEAggCGogCSALEAggCGogCSALEAggCGohASAKQQRrIgoNAAsLIBJFDQEgEkEDcSIDBEADQCASQQFrIRIgASAJIAsQCCAIaiEBIAQgCWohCSADQQFrIgMNAAsLIAUgB2ogAGogBSAUIAUgFEobQX9zaiAAQQAgAEEAShtrQQNJDQEDQCABIAkgCxAIIAhqIAQgCWoiACALEAggCGogACAEaiIAIAsQCCAIaiAAIARqIgAgCxAIIAhqIQEgACAEaiEJIBJBBGsiEg0ACwwBCwJAIApFDQACQCALRQRAIAlBAWshAiAMRQRAIA5FDQIgAEF/cyAAQQAgAEEAShtqIQMgCkEDcSIABEADQCAKQQFrIQogASACLQAAIA4QBCAIaiEBIABBAWsiAA0ACwsgA0EDSQ0DA0AgASACLQAAIA4QBCAIaiACLQAAIA4QBCAIaiACLQAAIA4QBCAIaiACLQAAIA4QBCAIaiEBIApBBGsiCg0ACwwDCyAOBEAgAEF/cyAAQQAgAEEAShtqIQMgCkEDcSIABEADQCABIAktAAAgDBAEIgEgDGogAi0AACAOEAQaIApBAWshCiABIAhqIQEgAEEBayIADQALCyADQQNJDQMDQCABIAktAAAgDBAEIgAgDGogAi0AACAOEAQaIAAgCGogCS0AACAMEAQiACAMaiACLQAAIA4QBBogACAIaiAJLQAAIAwQBCIAIAxqIAItAAAgDhAEGiAAIAhqIAktAAAgDBAEIgAgDGogAi0AACAOEAQaIAAgCGohASAKQQRrIgoNAAsMAwsgCkEDcSIDBEADQCAKQQFrIQogASAJLQAAIAwQBCAIaiEBIANBAWsiAw0ACwsgAEF/cyAAQQAgAEEAShtqQQNJDQIDQCABIAktAAAgDBAEIAhqIAktAAAgDBAEIAhqIAktAAAgDBAEIAhqIAktAAAgDBAEIAhqIQEgCkEEayIKDQALDAILIAxFBEAgDgRAIAtBB3EhECAEIAZqIA1qIAQgDyAEIA9KG0F/c2ogDUEAIA1BAEoba0EHSSEVA0AgCyEHIAEhAyAJIQIgECERIBAEQANAIAMgAiIALQAAOgAAIAdBAWshByADQQFqIQMgAEEBaiECIBFBAWsiEQ0ACwsgFUUEQANAIAMgAiIALQAAOgAAIAMgAC0AAToAASADIAAtAAI6AAIgAyAALQADOgADIAMgAC0ABDoABCADIAAtAAU6AAUgAyAALQAGOgAGIAMgAC0ABzoAByADQQhqIQMgAEEIaiECIAdBCGsiBw0ACyAAQQdqIQALIAMgAC0AACAOEAQaIAEgCGohASAKQQFrIgoNAAsMAwsgC0EHcSEQIAQgBmogDWogBCAPIAQgD0obQX9zaiANQQAgDUEAShtrQQdJIREDQCALIQcgASEDIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAILIA4EQCALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEgCS0AACAMEAQiFSAMaiEDIAshByAJIQIgECIBBEADQCADIAIiAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohAiABQQFrIgENAAsLIBFFBEADQCADIAIiAC0AADoAACADIAAtAAE6AAEgAyAALQACOgACIAMgAC0AAzoAAyADIAAtAAQ6AAQgAyAALQAFOgAFIAMgAC0ABjoABiADIAAtAAc6AAcgA0EIaiEDIABBCGohAiAHQQhrIgcNAAsgAEEHaiEACyADIAAtAAAgDhAEGiAIIBVqIQEgCkEBayIKDQALDAILIAtBB3EhECAEIAZqIA1qIAQgDyAEIA9KG0F/c2ogDUEAIA1BAEoba0EHSSERA0AgASAJLQAAIAwQBCIBIAxqIQMgCyEHIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAELIAEgCCAKbGohAQsgEkUNACALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgECICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyARDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASAEIAlqIQkgEkEBayISDQALCwJAIBZFDQAgCSAEayEJIBdFBEAgFCAFa0EDcSIDBEADQCATQQFrIRMgASAJIAsQCCAIaiEBIANBAWsiAw0ACwsgFCAFQX9zakEDSQ0BA0AgASAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiEBIBNBBGsiEw0ACwwBCyALQQdxIQUgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khBANAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgBSICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyAEDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASATQQFrIhMNAAsLC+kCAQN/IAFBA3RB8DZqIgMoAgAhBSADLQAEIQMgAUEDdEGwNWoiAS0ABCEEAkAgASgCAEEERgRAIAIgBEEBdGouAQAhASAFQQRGBEAgASACIANBAXRqLgEAakEBakEBdQ8LAn8gACgCzAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALMASADQQF0ai4BHGpBAWpBAXUPCyAFQQRGBEAgAiADQQF0ai4BACEBAn8gACgCyAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALIASAEQQF0ai4BHGpBAWpBAXUPCwJ/IAAoAsgBIgEEQCAAKAIEIAEoAgRGDAELQQALIgIEfyAAKALIASAEQQF0ai4BHAVBAAshAQJ/IAAoAswBIgQEQCAAKAIEIAQoAgRGDAELQQALRQ0AIAAoAswBIANBAXRqLgEcIQAgAkUEQCAADwsgACABakEBakEBdSEBCyABC/IDAQN/IAEoAgAiA0H///8HRwRAIAEoAgQhBCAAIAIgAkEDcSACQRBJIgIbQQJ0IgVB8ClqKAIAQRBBCCACGyICbGogBUGwKWooAgBqIgAgAyAALQAAakGwLmotAAA6AAAgASgCCCEDIAAgBCAALQABakGwLmotAAA6AAEgASgCDCEEIAAgAyAALQACakGwLmotAAA6AAIgACAEIAAtAANqQbAuai0AADoAAyABKAIUIQMgACACaiIAIAEoAhAgAC0AAGpBsC5qLQAAOgAAIAEoAhghBCAAIAMgAC0AAWpBsC5qLQAAOgABIAEoAhwhAyAAIAQgAC0AAmpBsC5qLQAAOgACIAAgAyAALQADakGwLmotAAA6AAMgASgCJCEDIAAgAmoiACABKAIgIAAtAABqQbAuai0AADoAACABKAIoIQQgACADIAAtAAFqQbAuai0AADoAASABKAIsIQMgACAEIAAtAAJqQbAuai0AADoAAiAAIAMgAC0AA2pBsC5qLQAAOgADIAEoAjQhAyAAIAJqIgAgASgCMCAALQAAakGwLmotAAA6AAAgASgCOCECIAAgAyAALQABakGwLmotAAA6AAEgASgCPCEBIAAgAiAALQACakGwLmotAAA6AAIgACABIAAtAANqQbAuai0AADoAAwsL8CUBFH8gAyAFaiIbIAEuAQAiDkECdWohDSAEIAZqIhwgAS4BAiIKQQJ1aiELIAIoAghBBHQhAyACKAIEQQR0IQQgACAGQQR0aiAFaiEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOQQNxQQR0IApBA3FBAnRyQdA7aigCAA4PAAECAwQFBgcICQoLDA0ODwsgAigCACAJIA0g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ADcDEAJ/AkAgAgRAIABBACAIa0HYAWxqKALEAQ0BC0EADAELIAYgCyAIQQR0ayIELQAFIAQtAARqIAQtAAZqIAQtAAdqIhggBC0AAyAELQACIAQtAAEgBC0AAGpqaiIXaiIFIAQtAA8gBC0ADiAELQANIAQtAAxqamoiGiAELQALIAQtAAogBC0ACSAELQAIampqIhlqIgRrIgc2AhQgBiAEIAVqIgo2AhBBASEbQQELIQUCQCANQQFrIAJGDQAgACAIQdgBbGooAsQBRQRADAELIAYgCyAIQQh0aiICLQAFIAItAARqIAItAAZqIAItAAdqIh4gAi0AAyACLQACIAItAAEgAi0AAGpqaiIfaiIEIAItAA8gAi0ADiACLQANIAItAAxqamoiICACLQALIAItAAogAi0ACSACLQAIampqIiFqIgJrIAdqIgc2AhQgBiACIARqIApqIgo2AhBBASEWIAVBAWohBQsCfwJAIANFDQAgAEEUaygCAEUNACAGIAtBAWsiAiAIQQZ0IhBqIgQgCEEEdCIJai0AACAELQAAaiAEIAhBBXQiDmotAABqIAQgCEEwbCIPai0AAGoiHCACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIh1qIgwgBCAQaiICIBBqIgQgCWotAAAgBC0AAGogBCAOai0AAGogBCAPai0AAGoiECACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIg5qIgJrIgQ2AiAgBiACIAxqIApqIgo2AhBBASEPIAVBAWohCUEBDAELQQAhBCAFIQlBAAshAgJAAkACQAJAAkAgAyAIQQFrRwRAIAAoApwDDQELQQAhDCAFDQEMAgsgBCALQRBqIgQgCEEGdCIRaiIAIAhBBHQiDGotAAAgAC0AAGogACAIQQV0IhJqLQAAaiAAIAhBMGwiE2otAABqIAQgE2otAAAgBCASai0AACAEIAxqLQAAIAstABBqampqIgsgACARaiIAIBFqIgQgDGotAAAgBC0AAGogBCASai0AAGogBCATai0AAGoiESAAIBNqLQAAIAAgEmotAAAgACAMai0AACAALQAAampqIgBqIgxraiEEIAsgDGogCmohCkEBIQwgAkEBaiECIAlBAWohCSAPRSAFQQBHckUEQCAcIB1qIA5qIBBqIAAgC2ogEWpr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IAhrQQJ0ampBEGpBBXVBsC5qLQAAIAAtABBqQQFqQQF2OgAQIAAgAiALai0AACAHIAQgEGoiBEEEdGogBSANaiIFayAEIAVrQQJ0ampBEGpBBXVBsC5qLQAAIAAtAABqQQFqQQF2OgAAIAJBAWohAiAAQQFqIQAgAUEBaiEBIANBAWsiAw0ACyAAIBFqIQAgASAPaiEBIAIgD2ohAiAKQQFrIgoNAAsLIBJBwANqJAALtQUBBH8gACgCFCEDIAAoAhAhBCAAKAIEIQUgACgCDCICIAEpAgA3AgAgAiABKQIINwIIIAIgBUEEdCIAaiICIAEpAhA3AgAgAiABKQIYNwIIIAAgAmoiAiABKQIgNwIAIAIgASkCKDcCCCAAIAJqIgIgASkCMDcCACACIAEpAjg3AgggACACaiICIAEpAkA3AgAgAiABKQJINwIIIAAgAmoiAiABKQJQNwIAIAIgASkCWDcCCCAAIAJqIgIgASkCYDcCACACIAEpAmg3AgggACACaiICIAEpAnA3AgAgAiABKQJ4NwIIIAAgAmoiAiABKQKAATcCACACIAEpAogBNwIIIAAgAmoiAiABKQKQATcCACACIAEpApgBNwIIIAAgAmoiAiABKQKgATcCACACIAEpAqgBNwIIIAAgAmoiAiABKQKwATcCACACIAEpArgBNwIIIAAgAmoiAiABKQLAATcCACACIAEpAsgBNwIIIAAgAmoiAiABKQLQATcCACACIAEpAtgBNwIIIAAgAmoiAiABKQLgATcCACACIAEpAugBNwIIIAAgAmoiACABKQLwATcCACAAIAEpAvgBNwIIIAQgASkCgAI3AgAgBCAFQQN0IgBqIgQgASkCiAI3AgAgACAEaiIEIAEpApACNwIAIAAgBGoiBCABKQKYAjcCACAAIARqIgQgASkCoAI3AgAgACAEaiIEIAEpAqgCNwIAIAAgBGoiBCABKQKwAjcCACAAIARqIAEpArgCNwIAIAMgASkCwAI3AgAgACADaiIDIAEpAsgCNwIAIAAgA2oiAyABKQLQAjcCACAAIANqIgMgASkC2AI3AgAgACADaiIDIAEpAuACNwIAIAAgA2oiAyABKQLoAjcCACAAIANqIgMgASkC8AI3AgAgACADaiABKQL4AjcCAAsDAAELqAwBCn8CQCABQQRPBEBBACADayIMQQF0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aiICIAYoAgA2AgAgAiAGKAIkNgIMIAIgBigCHDYCBCACIAYoAiA2AgggACAEQQFqNgIQIAZBADYCGCAGKAIUDQAgACABQQFrIgE2AiwLIAEgA0sNAAsMAQsgASgCACECIAAoAgwgACgCECIDQQR0aiIBIAU2AgwgASACNgIAIAEgBzYCCCABIAY2AgQgACADQQFqNgIQIAAoAhwhAwsgACgCACADQQFqECYLC14BAX8gAEHECWoiACgCFCIEIAAoAhBJBH8gACAEQQFqNgIUIAAoAgwgBEEEdGoFQQALIgBFBEBBAA8LIAEgACgCBDYCACACIAAoAgw2AgAgAyAAKAIINgIAIAAoAgALtAMBA38DQCAAIAJBAnRqIgEoAhQiAwRAIAMoAigQBSABKAIUQQA2AiggASgCFCgCVBAFIAEoAhRBADYCVCABKAIUEAUgAUEANgIUCyACQQFqIgJBIEcNAAtBACECA0AgACACQQJ0aiIBKAKUASIDBEAgAygCFBAFIAEoApQBQQA2AhQgASgClAEoAhgQBSABKAKUAUEANgIYIAEoApQBKAIcEAUgASgClAFBADYCHCABKAKUASgCLBAFIAEoApQBQQA2AiwgASgClAEQBSABQQA2ApQBCyACQQFqIgJBgAJHDQALIAAoArAaEAUgAEEANgKwGiAAKAK8CRAFIABBADYCvAkgACgClAkQBSAAQQA2ApQJIAAoArwaIgEEQCABEAUgAEEANgK8GgtBACEBQQAhAwJAIABBxAlqIgIoAgAiAEUNACACKAIcQX9GBEAgACEBDAELIAAhAQNAIAEgA0EobCIAaigCBBAFIAIoAgAiASAAakEANgIEIANBAWoiAyACKAIcQQFqSQ0ACwsgARAFIAJBADYCACACKAIEEAUgAkEANgIEIAIoAgwQBSACQQA2AgwL/tEDAkN/An4jAEGQAWsiGCQAIBhBADYCDAJAAkACQCAAKAKQGkUNACAAKAKUGiABRw0AIBggAEGsGmooAgA2AiAgGCAAQaQaaikCADcDGCAAKQKcGiFIIBhBADYCICAYQQA2AhggGCBINwMQIBggSD4CFCAEIAAoApgaNgIADAELQQYhIgJ/IAEhCAJAAkAgAkEESQ0AIAgtAAANACAILQABDQAgCC0AAiINQQFLDQBBAyEGIAhBA2ohBUECIQcCQANA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NgIEIAEgA0EIahACIgINACADKAIIQR9LBEBBASECDAELIAEgBUEMahACIgINAEEBIQIgBSgCDCIEQQxLDQAgA0EBIARBBGp0NgIMIAEgBUEMahACIgINACAFKAIMIgJBAksEQEEBIQIMAQsgAyACNgIQAkACQAJAIAIOAgABAgsgASAFQQxqEAIiAg0CIAUoAgwiAkEMSwRAQQEhAgwDCyADQQEgAkEEanQ2AhQMAQtBASECIAFBARADIgRBf0YNASADIARBAUY2AhggASADQRxqEAYiAg0BIAEgA0EgahAGIgINASABIANBJGoQAiICDQFBASECIAMoAiQiBEH/AUsNASAEBEAgAyAEQQJ0EAoiAjYCKCACRQRAQf//AyECDAMLIAEgAhAGIgINAkEBIQYDQCAGIAMoAiRPDQIgBkECdCECIAZBAWohBiABIAIgAygCKGoQBiICRQ0ACwwCCyADQQA2AigLIAEgA0EsahACIgINAEEBIQIgAygCLEEQSw0AIAFBARADIgRBf0YNACADIARBAUY2AjAgASAFQQxqEAIiAg0AIAMgBSgCDEEBajYCNCABIAVBDGoQAiICDQBBASECIAMgBSgCDEEBajYCOCABQQEQA0EBakECSQ0AIAFBARADQX9GDQAgAUEBEAMiBEF/Rg0AIAMgBEEBRiICNgI8AkAgAkUEQCADKAI4IQkgAygCNCEGDAELIAEgA0FAaxACIgINASABIANBxABqEAIiAg0BIAEgA0HIAGoQAiICDQEgASADQcwAahACIgINAUEBIQIgAygCQCADKAJEQX9zIAMoAjQiBkEDdGpKDQEgAygCSCADKAJMQX9zIAMoAjgiCUEDdGpKDQELIAYgCWwhAkH/////ByEGAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIEQQprDioAAQIDEBAQEBAQBAUGEBAQEBAQEAcICRAQEBAQEBAKCwwQEBAQEBAQDQ4QC0GApAkhBCACQeMASwwOC0GAjBUhBCACQYwDSwwNC0GA2DchBCACQYwDSwwMC0GA2DchBCACQYwDSwwLC0GA2DchBCACQYwDSwwKC0GAsO8AIQQgAkGYBksMCQtBgOy9ASEEIAJB1AxLDAgLQYDsvQEhBCACQdQMSwwHC0GA8KUDIQQgAkGQHEsMBgtBgIDgAyEEIAJBgChLDAULQYCAgAYhBCACQYDAAEsMBAtBgICABiEEIAJBgMAASwwDC0GAgLAGIQQgAkGAxABLDAILQYDAmxQhBCACQcCsAUsMAQtBgIDgISEEIAJBgKACSwsNACAEIAJBgANsbiICQRAgAkEQSRshBgsgBSAGNgIMIAUgAygCLCICIAIgBiACIAZLGyAGQf////8HRhsiAjYCDCADIAI2AlhBASECIAFBARADIgRBf0YNACADIARBAUY2AlACQCAEQQFHDQAgA0G4BxAKIgI2AlQgAkUEQEH//wMhAgwCCwJ/IAJBAEG4BxAEIQJBASEEAkACQCABQQEQAyIJQX9GDQAgAiAJQQFGNgIAAkAgCUEBRw0AIAFBCBADIglBf0YNASACIAk2AgQgCUH/AUcNACABQRAQAyIJQX9GDQEgAiAJNgIIIAFBEBADIglBf0YNASACIAk2AgwLIAFBARADIglBf0YNACACIAlBAUY2AhAgCUEBRgRAIAFBARADIglBf0YNASACIAlBAUY2AhQLIAFBARADIglBf0YNACACIAlBAUY2AhgCQAJAIAlBAUYEQCABQQMQAyIJQX9GDQMgAiAJNgIcIAFBARADIglBf0YNAyACIAlBAUY2AiAgAUEBEAMiCUF/Rg0DIAIgCUEBRjYCJCAJQQFHDQEgAUEIEAMiCUF/Rg0DIAIgCTYCKCABQQgQAyIJQX9GDQMgAiAJNgIsIAFBCBADIgZBf0cNAgwDCyACQQU2AhwLIAJCgoCAgCA3AihBAiEGCyACIAY2AjAgAUEBEAMiCUF/Rg0AIAIgCUEBRjYCNAJAIAlBAUcNACABIAJBOGoQAiIEDQEgAigCOEEFSw0CIAEgAkE8ahACIgQNASACKAI8QQVNDQAMAgtBASEEIAFBARADIglBf0YNACACIAlBAUY2AkAgCUEBRgRAIAEQECEEIAFBIBALQX9GDQIgBEUNAiACIAQ2AkQgARAQIQQgAUEgEAtBf0YNAiAERQ0CIAIgBDYCSEEBIQQgAUEBEAMiCUF/Rg0BIAIgCUEBRjYCTAsgAUEBEAMiCUF/Rg0AIAIgCUEBRjYCUAJAIAlBAUYEQCABIAJB1ABqEBsiBEUNAQwCCyACQQE2AlQgAkKYgICAgAM3AugDIAJCmICAgIADNwLgAyACQYGQqokBNgLgASACQYGQqokBNgJgC0EBIQQgAUEBEAMiCUF/Rg0AIAIgCUEBRjYC8AMCQCAJQQFGBEAgASACQfQDahAbIgRFDQEMAgsgAkEBNgL0AyACQpiAgICAAzcCiAcgAkKYgICAgAM3AoAHIAJBgbi48gA2AoAFIAJBgbi48gA2AoAECwJAIAIoAlBFBEAgAigC8ANFDQELQQEhBCABQQEQAyIJQX9GDQEgAiAJQQFGNgKQBwtBASEEIAFBARADIglBf0YNACACIAlBAUY2ApQHIAFBARADIglBf0YNACACIAlBAUY2ApgHAkAgCUEBRgRAIAFBARADIglBf0YNAiACIAlBAUY2ApwHIAEgAkGgB2oQAiIEDQIgAigCoAdBEEsNAyABIAJBpAdqEAIiBA0CIAIoAqQHQRBLDQMgASACQagHahACIgQNAiACKAKoB0EQSw0DIAEgAkGsB2oQAiIEDQJBASEEIAIoAqwHQRBLDQIgASACQbAHahACIgQNAiABIAJBtAdqEAIiBEUNAQwCCyACQRA2ArQHIAJCkICAgIACNwKsByACQoGAgICAAjcCpAcgAkKBgICAIDcCnAcLQQAhBAsgBAwBC0EBCyICDQEgAygCVCIJKAKYB0UNAEEBIQIgCSgCtAciBCAJKAKwB0kNASAEIAMoAixJDQEgBCADKAJYSw0BIAMgBEEBIAQbNgJYCyABEB5BACECCyAFQRBqJAAgAgsEQCAYKAJQEAUgGEEANgJQIBgoAnwQBUEKISIMBAsCQAJAIAAgGEEoaiIBKAIIIgJBAnRqIgMoAhQiBEUEQCADQdwAEAoiADYCFCAADQEMAgsgACgCCCACRgRAAn8CQCABKAIAIAAoAhAiAigCAEcNACABKAIEIAIoAgRHDQAgASgCDCACKAIMRw0AIAEoAhAiBCACKAIQRw0AIAEoAiwgAigCLEcNACABKAIwIAIoAjBHDQAgASgCNCACKAI0Rw0AIAEoAjggAigCOEcNACABKAI8IgYgAigCPEcNACABKAJQIAIoAlBHDQACQAJAAkAgBA4CAAECCyABKAIUIAIoAhRHDQIMAQsgASgCGCACKAIYRw0BIAEoAhwgAigCHEcNASABKAIgIAIoAiBHDQEgASgCJCIJIAIoAiRHDQEgCUUNACACKAIoIQUgASgCKCEHQQAhBANAIAcgBEECdCIIaigCACAFIAhqKAIARgRAIAkgBEEBaiIERw0BDAILCwwBCyAGBEAgASgCQCACKAJARw0BIAEoAkQgAigCREcNASABKAJIIAIoAkhHDQEgASgCTCACKAJMRw0BC0EADAELQQELBEAgAygCFCgCKBAFIAMoAhRBADYCKCADKAIUKAJUEAUgAygCFEEANgJUIABBADYCECAAQYECNgIEIABCITcCCAwCCyABKAIoEAUgAUEANgIoIAEoAlQQBSABQQA2AlQMAgsgBCgCKBAFIAMoAhRBADYCKCADKAIUKAJUEAUgAygCFEEANgJUCyADKAIUIAFB3AAQCBoLDAMLAn8jAEEQayIDJAACQCAYQRBqIgQgGEEoakEAQcgAEAQiARACIgINAEEBIQIgASgCAEH/AUsNACAEIAFBBGoQAiICDQBBASECIAEoAgRBH0sNACAEQQEQAw0AIARBARADIglBf0YNACABIAlBAUY2AgggBCADQQxqEAIiAg0AIAEgAygCDEEBaiICNgIMIAJBCEsEQEEBIQIMAQsCQCACQQJJDQAgBCABQRBqEAIiAg0BIAEoAhAiAkEGSwRAQQEhAgwCCwJAAkACQAJAIAIOBwAEAQICAgMECyABIAEoAgwiAkECdBAKIgk2AhQgCUUEQEH//wMhAgwFCyACRQ0DQQAhBgNAIAQgA0EMahACIgINBSABKAIUIAZBAnRqIAMoAgxBAWo2AgAgBkEBaiIGIAEoAgxJDQALDAMLIAEgASgCDCIJQQJ0QQRrIgIQCiIGNgIYIAEgAhAKIgU2AhxB//8DIQIgBkUNAyAFRQ0DIAlBAUYNAkEAIQYDQCAEIANBDGoQAiICDQQgBkECdCIJIAEoAhhqIAMoAgw2AgAgBCADQQxqEAIiAg0EIAEoAhwgCWogAygCDDYCACAGQQFqIgYgASgCDEEBa0kNAAsMAgtBASECIARBARADIglBf0YNAiABIAlBAUY2AiAgBCADQQxqEAIiAg0CIAEgAygCDEEBajYCJAwBCyAEIANBDGoQAiICDQEgASADKAIMQQFqIgI2AiggASACQQJ0EAoiCTYCLCAJRQRAQf//AyECDAILIAJFDQAgASgCDEECdEGsO2ooAgAhBUEAIQYDQCAEIAUQAyEJIAEoAiwgBkECdGogCTYCAEEBIQIgCSABKAIMTw0CIAZBAWoiBiABKAIoSQ0ACwsgBCADQQxqEAIiAg0AQQEhAiADKAIMIglBH0sNACABIAlBAWo2AjAgBCADQQxqEAIiAg0AQQEhAiADKAIMQR9LDQAgBEEBEAMNACAEQQIQA0ECSw0AIAQgA0EIahAGIgINACADKAIIQRpqIgJBM0sEQEEBIQIMAQsgASACNgI0IAQgA0EIahAGIgINACADKAIIQRpqQTNLBEBBASECDAELIAQgA0EIahAGIgINAEEBIQIgAygCCCIJQQxqQRhLDQAgASAJNgI4IARBARADIglBf0YNACABIAlBAUY2AjwgBEEBEAMiCUF/Rg0AIAEgCUEBRjYCQCAEQQEQAyIJQX9GDQAgASAJQQFGNgJEIAQQHkEAIQILIANBEGokACACCwRAIBgoAjwQBSAYQQA2AjwgGCgCQBAFIBhBADYCQCAYKAJEEAUgGEEANgJEIBgoAlQQBUELISIMAwsCQAJAIAAgGEEoaiICKAIAIgNBAnRqIgEoApQBIgRFBEAgAUHIABAKIgA2ApQBIAANAQwCCwJAIAMgACgCBEcNACACKAIEIAAoAghGDQAgAEGBAjYCBAsgBCgCFBAFIAEoApQBQQA2AhQgASgClAEoAhgQBSABKAKUAUEANgIYIAEoApQBKAIcEAUgASgClAFBADYCHCABKAKUASgCLBAFIAEoApQBQQA2AiwLIAEoApQBIAJByAAQCBoLDAILIAAoApwJDQEgAEEBNgKgCQJAIAAoAqQJDQAgACADNgK4CSAAQQA2ArQJIBhBEGogGEEoahAfGiAAKAIIIQsCfyAYKAKIAUEFRiEKQQEhAwJAIAAgGCgCKCIJQQJ0aigClAEiAUUNACAAIAEoAgQiBUECdGoiBygCFCICRQ0AAkAgASgCDCIIQQJJDQAgAigCNCINIAIoAjhsIQYCQAJAAkACQCABKAIQIgIOAwEDAAMLIAhBAWshECABKAIcIQ8gASgCGCEMQQAhAgwBCyABKAIUIQ1BACECA0AgBiANIAJBAnRqKAIATwRAIAggAkEBaiICRw0BDAQLC0EBDAQLA0AgDCACQQJ0IghqKAIAIh0gCCAPaigCACIISw0DIAYgCE0NAyAdIA1wIAggDXBNBEAgAkEBaiICIBBGDQMMAQsLQQEMAwsgAkEDa0ECTQRAIAEoAiQgBk0NAQwCCyACQQZHDQAgASgCKCAGSQ0BCwJAIAAoAgQiAkGAAkYEQCAAIAE2AgwgACAJNgIEIAAgBTYCCCAAIAcoAhQiATYCECABKAI0IQIgASgCOCEBIABBATYCtBogAEHACmogATYCACAAQbwKaiACNgIAIAAgASACbDYCmAkMAQsgACgCtBoEQCAAQQA2ArQaIAAoArwJEAUgAEEANgK8CSAAKAKUCRAFIAAgACgCmAkiBUHYAWwiAhAKIgE2ArwJIAAgBUECdBAKIgk2ApQJQf//AyEDIAFFDQIgCUUNAiABQQAgAhAEIQMgACgCECgCNCECQQAhBkEAIQlBACEIIAUEQCACQQFrIQ0gA0HYAWshCiADIAJBf3NB2AFsaiEQQQAgAmtB2AFsIQ9BASACa0HYAWwhDANAIAMgCEHYAWwiB2oiASAHIApqQQAgBhs2AsgBIAECfyAJRQRAIAFBADYCzAFBAAwBCyABIAEgD2o2AswBIAEgDGpBACAGIA1JGws2AtABIAEgByAQakEAIAYbQQAgCRs2AtQBQQAgBkEBaiIBIAEgAkYiARshBiABIAlqIQkgCEEBaiIIIAVHDQALCyAAKAIQIQFBASECAkAgACgCwAkNACABKAIQQQJGDQACQCABKAJQRQ0AIAEoAlQiAygCmAdFDQAgAygCsAdFDQELQQAhAgsgASgCOCABKAI0bCEHIAEoAlghCCABKAIsIQUgASgCDCENIAIhA0EAIQFBACEJAkAgAEHECWoiBigCACICRQ0AIAYoAhxBf0YEQCACIQEMAQsgAiEBA0AgASAJQShsIgJqKAIEEAUgBigCACIBIAJqQQA2AgQgCUEBaiIJIAYoAhxBAWpJDQALCyABEAUgBkEANgIAIAYoAgQQBSAGQQA2AgQgBigCDBAFIAZBADYCDCAGIAM2AjggBiANNgIgIAZC//8DNwIkIAZCADcCLCAGIAVBASAFQQFLGyIBNgIYIAYgASAIIAMbIgI2AhwgBkGoBRAKIgM2AgBB//8DIQkCQCADRQ0AQQAhASADQQBBqAUQBCEFIAJBf0cEQCAHQYADbEEvciEHA0AgBSABQShsaiIIIAcQCiIDNgIEIANFDQIgCCADNgIAIAEgAkchAyABQQFqIQEgAw0ACwsgBkHEABAKIgE2AgQgBiACQQR0QRBqEAoiAjYCDCACRQ0AIAFFDQBBACEJIAFBAEHEABAEGiAGQgA3AhALIAkiA0UNAQwCCyACIAlGDQAgACgCCCAFRwRAIApFDQIgACABNgIMIAAgCTYCBCAAIAU2AgggACAHKAIUIgE2AhAgASgCNCECIAEoAjghASAAQQE2ArQaIABBwApqIAE2AgAgAEG8CmogAjYCACAAIAEgAmw2ApgJDAELIAAgATYCDCAAIAk2AgQLQQAhAwsgAwsiAQRAIABCgIKAgIAENwIEIABBADYCtBogAEIANwIMQQVBBCABQf//A0YbISIMAwsgCyAAKAIIRg0AIAAoAhAhCSAYQQE2AghBACEBIAAoAgAiAkEfTQRAIAAgAkECdGooAhQhAQsgBEEANgIAIABBATYCkBoCQAJAAkAgGCgCiAFBBUcNACAAKAIMIQYjAEEgayIEJAAgBCAYKAIgNgIQIAQgGCkCGDcDCCAEIBgpAhA3AwACQCAEIARBHGoQAiICDQAgBCAEQRxqEAIiAg0AIAQgBEEcahACIgINACAJKAIMIQVBACECA0AgAiIDQQFqIQIgBSADdg0ACyAEIANBAWsQA0F/RgRAQQEhAgwBCyAEIARBHGoQAiICDQACQCAJKAIQIgIEfyACBSAJKAIUIQVBACECA0AgAiIDQQFqIQIgBSADdg0ACyAEIANBAWsQA0F/RgRAQQEhAgwDCyAGKAIIBEAgBCAEQRhqEAYiAg0DCyAJKAIQC0EBRw0AIAkoAhgNACAEIARBGGoQBiICDQEgBigCCEUNACAEIARBGGoQBiICDQELIAYoAkQEQCAEIARBHGoQAiICDQELIBggBEEBEAMiAjYCCCACQX9GIQILIARBIGokACAYKAIIIAJyDQAgAUUNACAAQfwJaigCAA0AIAEoAjQgCSgCNEcNACABKAI4IAkoAjhHDQAgASgCWCAJKAJYRg0BCyAAQYAKakEANgIADAELQQAhAUEAIQMCQCAAQcQJaiICKAIAIgZFDQAgAkEBNgI8IAIoAjgNACACKAIcIQVB/////wchBANAA0AgBiADQShsaiIJKAIYBEAgCSABIAkoAhAiCSAESCIHGyEBIAkgBCAHGyEECyADQQFqIgMgBU0NACABRQ0CIAIoAgwgAigCECIEQQR0aiIDIAEoAgA2AgAgAyABKAIkNgIMIAMgASgCHDYCBCADIAEoAiA2AgggAiAEQQFqNgIQQQAhAyABQQA2AhggASgCFCEJQQAhAUH/////ByEEIAkNAAsgAiACKAIsQQFrNgIsDAALAAsLIAAgACgCCDYCAEECISIMAgtBCSEiIAAoArQaDQFBDCEiIAAoAhAhCSAAKAIMIQgjAEEQayIDJAAgAEG0EmoiHUEAQdwHEAQhBiAJKAI0IQIgCSgCOCEFAkAgGEEQaiIEIANBDGoQAiIBDQAgBiADKAIMIgE2AgAgAiAFbCIQIAFNBEBBASEBDAELIAQgA0EMahACIgENACAGIAMoAgwiAjYCBEEBIQECQAJAIAIOCAACAQICAAIBAgsgGCgCiAFBBUYNASAJKAIsDQAMAQsgBCADQQxqEAIiAQ0AIAYgAygCDCICNgIIQQEhASACIAgoAgBHDQAgCSgCDCEFQQAhAQNAIAEiAkEBaiEBIAUgAnYNAAtBASEBIAQgAkEBaxADIgJBf0YNACAYKAKIAUEFRyIFQQEgAhtFDQAgBiACNgIMIAVFBEAgBCADQQxqEAIiAQ0BIAYgAygCDCICNgIQQQEhASACQf//A0sNAQsCQCAJKAIQIgEEfyABBSAJKAIUIQVBACEBA0AgASICQQFqIQEgBSACdg0ACyAEIAJBAWsQAyIBQX9GBEBBASEBDAMLIAYgATYCFCAIKAIIBEAgBCADQQhqEAYiAQ0DIAYgAygCCDYCGAsgGCgCiAFBBUYEQEEBIQEgBigCFCICIAkoAhRBAXZLDQMgAkEAIAYoAhgiBUEfdSAFcWtHDQMLIAkoAhALQQFHDQAgCSgCGA0AIAQgA0EIahAGIgENASAGIAMoAgg2AhwgCCgCCARAIAQgA0EIahAGIgENAiAGIAMoAgg2AiALIBgoAogBQQVHDQBBASEBIAYoAhwiAiAGKAIgIAIgCSgCIGpqIgUgAiAFSBsNAQsgCCgCRARAIAQgA0EMahACIgENASAGIAMoAgwiAjYCJEEBIQEgAkH/AEsNAQsCQAJAIAYoAgQiAQ4GAAEBAQEAAQtBASEBIARBARADIgJBf0YNASAGIAI2AigCQCACBEAgBCADQQxqEAIiAQ0DQQEhASADKAIMIgJBD0sNAyACQQFqIQIMAQsgCCgCMCICQRBLDQILIAYgAjYCLCAGKAIEIQELAkACQCABDgYAAQEBAQABCyAGQcQAaiEHIAYoAiwhCyAJKAIMIQojAEEQayIFJABBASEBAkAgBEEBEAMiAkF/Rg0AIAcgAjYCACACBEBBACEBA0AgCyABIgJJBEBBASEBDAMLIAQgBUEIahACIgENAiAFKAIIIgFBA0sEQEEBIQEMAwsgByACQQxsaiINIAE2AgQCQCABQQFNBEAgBCAFQQxqEAIiAQ0EIAogBSgCDCIBTQRAQQEhAQwFCyANIAFBAWo2AggMAQsgAUECRw0AIAQgBUEMahACIgENAyANIAUoAgw2AgwLIAJBAWohASAFKAIIQQNHDQALQQEhASACRQ0BC0EAIQELIAVBEGokACABDQELIBgoAowBBEAgBkGUAmohDSAYKAKIASEHIAkoAiwhDEEAIQVBACEPQQAhCyMAQRBrIgIkAEEBIQEgBEEBEAMhCQJAAkAgB0EFRgRAIAlBf0YNAiANIAk2AgAgBEEBEAMiCUF/Rg0CIA0gCTYCBCAMDQEgCUUNAQwCCyAJQX9GDQEgDSAJNgIIIAlFDQAgDEEBdEEDaiERQQAhCUEAIQcDQCAJIBFGBEBBASEBDAMLIAQgAkEIahACIgENAiACKAIIIgFBBksEQEEBIQEMAwsgDSAJQRRsaiIKIAE2AgwCfyABQX1xQQFGBEAgBCACQQxqEAIiAQ0EIAogAigCDEEBajYCECACKAIIIQELIAFBAkYLBEAgBCACQQxqEAIiAQ0DIAogAigCDDYCFCACKAIIIQELAkACQCABQQNrDgQAAQEAAQsgBCACQQxqEAIiAQ0DIAogAigCDDYCGCACKAIIIQELIAFBBEYEQCAEIAJBDGoQAiIBDQMgDCACKAIMIgFJBEBBASEBDAQLIAogAUEBa0H//wMgARs2AhwgBUEBaiEFIAIoAgghAQsgCUEBaiEJIA8gAUEGRmohDyAHIAFBBUZqIQcgCyABQQFrQQNJaiELIAENAAtBASEBIAUgB3IgD3JBAUsNASAHRQ0AIAsNAQtBACEBCyACQRBqJAAgAQ0BCyAEIANBCGoQBiIBDQAgBiADKAIIIgE2AjAgAyABIAgoAjRqIgE2AgggAUEzSwRAQQEhAQwBCwJAIAgoAjxFDQAgBCADQQxqEAIiAQ0BIAYgAygCDCIBNgI0IAFBAksEQEEBIQEMAgsgAUEBRg0AIAQgA0EIahAGIgENAUEBIQEgAygCCCICQQZqQQxLDQEgBiACQQF0NgI4IAQgA0EIahAGIgENAUEBIQEgAygCCCICQQZqQQxLDQEgBiACQQF0NgI8CwJAIAgoAgxBAkkNACAIKAIQQQNrQQJLDQAgAyAEAn8gECAIKAIkIgFuIgJBAkEBIBAgASACbGsbaiEEQQAhAQNAIAQgASICQQFqIgF2DQALIAEgAiAEQX8gAnRBf3NxGwsQAyICNgIMIAJBf0YEQEEBIQEMAgsgBiACNgJAQQEhASACIBAgCCgCJCIEakEBayAEbksNAQtBACEBCyADQRBqJAAgAQ0BIAAoAqQJRQRAIBgoAogBQQVHBEBBDiEiAn8gAEHAEmooAgAhCCAYKAKMAUEARyENIAAoAhAoAjAhAiAAQcQJaiIBQgA3AhACQAJAAkAgAkUNACABKAIwIgIgCEYNAgJAIAggAkEBaiABKAIgIgZwIgVHBEAgASgCACABKAIcQShsaigCACELAkADQAJAAkACQCABKAIoIgkEQCAJQQFxIQogASgCACEHQQAhAiAJQQFGIhBFBEAgCUF+cSEDA0AgByACQShsaiIEKAIUQQFrQQFNBEAgBCAEKAIMIgQgBkEAIAQgBUsbazYCCAsgByACQQFyQShsaiIEKAIUQQFrQQJJBEAgBCAEKAIMIgQgBkEAIAQgBUsbazYCCAsgAkECaiECIANBAmsiAw0ACwsCQCAKRQ0AIAcgAkEobGoiAigCFEEBa0EBSw0AIAIgAigCDCICIAZBACACIAVLG2s2AggLIAkgASgCGEkNAyAQRQ0BQX8hA0EAIQJBACEEDAILQQAhCSABKAIYDQJBAQwKCyAJQX5xIQZBfyEDQQAhAkEAIQQDQCAHIAJBKGxqIhAoAhRBAWtBAU0EQCAQKAIIIhAgBCADQX9GIAQgEEpyIhAbIQQgAiADIBAbIQMLIAcgAkEBciIQQShsaiIPKAIUQQFrQQJJBEAgDygCCCIPIAQgA0F/RiAEIA9KciIPGyEEIBAgAyAPGyEDCyACQQJqIQIgBkECayIGDQALCwJAIApFDQAgByACQShsaiIGKAIUQQFrQQFLDQAgAiACIAMgBigCCCAESBsgA0F/RhshAwtBASADQQBIDQgaIAcgA0EobGoiAkEANgIUIAEgCUEBayIJNgIoIAIoAhgNACABIAEoAixBAWs2AiwLIAEoAiwiBiABKAIcIgdPBEAgASgCOA0CIAEoAgAhEANAQQAhBEH/////ByEDQQAhAgNAIBAgAkEobGoiCigCGARAIAogBCAKKAIQIgogA0giDxshBCAKIAMgDxshAwsgAkEBaiICIAdNDQALAkAgBEUNACABKAIMIAEoAhAiA0EEdGoiAiAEKAIANgIAIAIgBCgCJDYCDCACIAQoAhw2AgQgAiAEKAIgNgIIIAEgA0EBajYCECAEQQA2AhggBCgCFA0AIAEgBkEBayIGNgIsCyAGIAdPDQALCyABKAIAIgMgB0EobGoiAiAFNgIMIAJCgICAgBA3AhAgAkEANgIYIAIgBTYCCCABIAlBAWo2AiggASAGQQFqNgIsIAMgB0EBahAmIAVBAWogASgCICIGcCIFIAhHDQALAkAgASgCECIJRQ0AIAEoAgAiBiABKAIcIgNBKGxqIgUoAgAhBCABKAIMIQdBACECA0AgBCAHIAJBBHRqKAIARwRAIAkgAkEBaiICRw0BDAILCyADRQ0AQQAhAgNAIAsgBiACQShsaiIJKAIARwRAIAMgAkEBaiICRw0BDAILCyAJIAQ2AgAgBSALNgIACyANDQQgASgCMCECDAILA0AMAAsACyANDQILIAIgCEYNACABIAggASgCICIBakEBayABcDYCMAtBAAwCCyABIAg2AjBBAAwBCyANCw0DCyAAQcQJaiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKCyAAQdgKaiAdQdwHEAghFCAAQQE2AqQJIAAgGCkDiAE3AtAKIAAoApQJIQ0gAEGYC2ooAgAhA0EAIQlBACEQIAAoAhAiASgCNCIKIAEoAjgiBWwhBgJAIAAoAgwiASgCDCIHQQFGBEAgDUEAIAZBAnQQBBoMAQsCQAJAAkAgASgCECICQQNrQQJNBEAgASgCJCADbCIDIAYgAyAGSRshDyABKAIgIQMgAkF+cUEERw0BIAYgD2sgDyADGyEJCwJAAkACQAJAAkACQCACDgYBAgMABQQACyAGRQ0HIAZBA3EhECABKAIsIQJBACEBIAZBAWtBA08EQCAGQXxxIQQDQCANIAFBAnQiA2ogAiADaigCADYCACANIANBBHIiCWogAiAJaigCADYCACANIANBCHIiCWogAiAJaigCADYCACANIANBDHIiA2ogAiADaigCADYCACABQQRqIQEgBEEEayIEDQALCyAQRQ0HA0AgDSABQQJ0IgNqIAIgA2ooAgA2AgAgAUEBaiEBIBBBAWsiEA0ACwwHCyAHRQ0FIAEoAhQhA0EAIQkDQEEAIRAgBiAJTQ0HA0AgAyAQQQJ0aiIFKAIAIQQCQCAGIAlNDQAgBEUNAEEBIQEgCSECA0AgDSACQQJ0aiAQNgIAIAEgBSgCACIETw0BIAEgCWoiAiAGTw0BIAFBAWohAQwACwALIAcgEEEBaiIQS0EAIAYgBCAJaiIJSxsNAAsgBiAJSw0ACwwGCyAGRQ0FQQAhAQNAIA0gAUECdGogASAKbiICIAdsQQF2IAEgAiAKbGtqIAdwNgIAIAFBAWoiASAGRw0ACwwFCyABKAIcIQUgASgCGCEIAkAgBkUNACAHQQFrIQEgBkEHcSEQQQAhCSAGQQFrQQdPBEAgBkF4cSEEA0AgDSAJQQJ0IgJqIAE2AgAgDSACQQRyaiABNgIAIA0gAkEIcmogATYCACANIAJBDHJqIAE2AgAgDSACQRByaiABNgIAIA0gAkEUcmogATYCACANIAJBGHJqIAE2AgAgDSACQRxyaiABNgIAIAlBCGohCSAEQQhrIgQNAAsLIBBFDQADQCANIAlBAnRqIAE2AgAgCUEBaiEJIBBBAWsiEA0ACwsgB0ECayEBA0ACQCAIIAEiAkECdCIBaigCACIDIApuIgQgASAFaigCACIBIApuIglLDQAgAyAEIApsayIDIAEgCSAKbGsiBksNAANAIAQgCmwhByADIQEDQCANIAEgB2pBAnRqIAI2AgAgAUEBaiIBIAZNDQALIARBAWoiBCAJTQ0ACwsgAkEBayEBIAINAAsMBAsgCkUNAyAFRQ0DQQEgASgCICIHayEIIAVBfnEhBiAFQQFxIQtBACEDA0AgAyEBQQAhAiAGIQQgBUEBRwRAA0AgDSACIApsIBBqQQJ0aiAHIAggASAJSRs2AgAgDSACQQFyIApsIBBqQQJ0aiAHIAggAUEBaiAJSRs2AgAgAkECaiECIAFBAmohASAEQQJrIgQNAAsLIAsEQCANIAIgCmwgEGpBAnRqIAcgCCABIAlJGzYCAAsgAyAFaiEDIBBBAWoiECAKRw0ACwwDCyAGRQ0CQQEgASgCICICayEDIAZBA3EhBEEAIQEgBkEBa0EDTwRAIAZBfHEhBQNAIA0gAUECdGogAiADIAEgCUkbNgIAIA0gAUEBciIGQQJ0aiACIAMgBiAJSRs2AgAgDSABQQJyIgZBAnRqIAIgAyAGIAlJGzYCACANIAFBA3IiBkECdGogAiADIAYgCUkbNgIAIAFBBGohASAFQQRrIgUNAAsLIARFDQIDQCANIAFBAnRqIAIgAyABIAlJGzYCACABQQFqIQEgBEEBayIEDQALDAILAkAgBkUNACAGQQdxIQlBACECIAZBAWtBB08EQCAGQXhxIRADQCANIAJBAnQiAWpBATYCACANIAFBBHJqQQE2AgAgDSABQQhyakEBNgIAIA0gAUEMcmpBATYCACANIAFBEHJqQQE2AgAgDSABQRRyakEBNgIAIA0gAUEYcmpBATYCACANIAFBHHJqQQE2AgAgAkEIaiECIBBBCGsiEA0ACwsgCUUNAANAIA0gAkECdGpBATYCACACQQFqIQIgCUEBayIJDQALCyAPRQ0BIApBAWshDCAFQQFrIR1BASADQQF0IgFrIQQgAUEBayEGIANBAWshAiAFIANrQQF2IgghCyAKIANrQQF2IgchCSAIIQUgByEBQQAhEANAIA0gBSAKbCABakECdGoiESgCACIbQQFGBEAgEUEANgIACyAbQQFGIRECQAJAIAJBf0cNACABIAlHDQBBACECIAYhAyAJQQEgCUEBShtBAWsiASEJDAELAkAgAkEBRw0AIAEgB0cNAEEAIQIgBCEDIAdBAWoiASAMIAEgDEgbIgEhBwwBCwJAIANBf0cNACAFIAtHDQBBACEDIAQhAiALQQEgC0EBShtBAWsiBSELDAELAkAgA0EBRw0AIAUgCEcNAEEAIQMgBiECIAhBAWoiBSAdIAUgHUgbIgUhCAwBCyADIAVqIQUgASACaiEBCyAQIBFqIhAgD0kNAAsMAQsgBkUNAANADAALAAsLIABBxAlqIggQJEEPISICfyAAQeQKaigCACEFIABBhAtqKAIAIQlBACECIAgoAigiAwRAIAgoAgAhBANAIAQgAkEobGoiASgCFEEBa0EBTQRAIAEgBSABKAIMIgFJBH8gASAIKAIgawUgAQs2AggLIAJBAWoiAiADRw0ACwtBACAAQZwLaiINKAIARQ0AGkEAIQZBACANKAIEIgJBAksNABogBSEBA0ACQAJAAkACQAJAAkACQAJAIAIOAwABAwELIAEg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IAEgAmoiAS0AADoABCADIAEgAmoiAS0AADoABSADIAEgAmoiAS0AADoABiADIAEgAmoiAS0AADoAByADIAEgAmoiAS0AADoACCADIAEgAmoiAS0AADoACSADIAEgAmoiAS0AADoACiADIAEgAmoiAS0AADoACyADIAEgAmoiAS0AADoADCADIAEgAmoiAS0AADoADSADIAEgAmoiAS0AADoADiADIAEgAmotAAA6AA8gA0EQaiEDCyAdKAIAIAUgEGwiEEEIdGogDyAFQQN0IgFsQQN0aiALQQN0aiEKIAFB+P///wdxIQEgDkUEQCAIIAogAUF/c2oiAi0AADoAACAIIAogAWstAAA6AAEgCCACLQACOgACIAggAi0AAzoAAyAIIAItAAQ6AAQgCCACLQAFOgAFIAggAi0ABjoABiAIIAItAAc6AAcgCCACQQhqIgItAAA6AAggCCAQQQZ0IAJqIgJBCGstAAA6AAkgCCACQQdrLQAAOgAKIAggAkEGay0AADoACyAIIAJBBWstAAA6AAwgCCACQQRrLQAAOgANIAggAkEDay0AADoADiAIIAJBAmstAAA6AA8gCCACQQFrLQAAOgAQIAggAi0AADoAEQsgC0UNACADIApBAWsiAi0AADoAACADIAEgAmoiAi0AADoAASADIAEgAmoiAi0AADoAAiADIAEgAmoiAi0AADoAAyADIAEgAmoiAi0AADoABCADIAEgAmoiAi0AADoABSADIAEgAmoiAi0AADoABiADIAEgAmoiAi0AADoAByADIAEgAmogECAFa0EGdGoiAi0AADoACCADIAEgAmoiAi0AADoACSADIAEgAmoiAi0AADoACiADIAEgAmoiAi0AADoACyADIAEgAmoiAi0AADoADCADIAEgAmoiAi0AADoADSADIAEgAmoiAi0AADoADiADIAEgAmotAAA6AA8LAkACQEECIAYoAgAiAUEGRyABQQZJG0EBRgRAAn8gDCEDIA1ByAJqIQgCfyAGKALIASIBBEAgBigCBCABKAIERgwBC0EACyELAkAgE0UNACALRQ0AQQAgC0ECIAYoAsgBKAIAIgFBBkcgAUEGSRtBAkYbIQsLAn8gBigCzAEiAQRAIAYoAgQgASgCBEYMAQtBAAshBQJAIBNFDQAgBUUNAEEAIAVBAiAGKALMASgCACIBQQZHIAFBBkkbQQJGGyEFCwJ/IAYoAtQBIgEEQCAGKAIEIAEoAgRGDAELQQALIQICQCATRQ0AIAJFDQBBAiAGKALUASgCACIBQQZHIAFBBkkbQQJHIQILAkACQAJAAkACQAJAIAYoAgBBAWpBA3EOAwABAgMLQQEgBUUNBRpBASEHIAMhAQNAIAEgES0AIToAACABIBEtACI6AAEgASARLQAjOgACIAEgES0AJDoAAyABIBEtACU6AAQgASARLQAmOgAFIAEgES0AJzoABiABIBEtACg6AAcgASARLQApOgAIIAEgES0AKjoACSABIBEtACs6AAogASARLQAsOgALIAEgES0ALToADCABIBEtAC46AA0gASARLQAvOgAOIAEgES0AMDoADyAHQRBGDQQgAUEQaiEBIAdBAWohBwwACwALQQEgC0UNBBogAyEBA0AgASAHIBFqIgItAAA6AAAgASACLQAAOgABIAEgAi0AADoAAiABIAItAAA6AAMgASACLQAAOgAEIAEgAi0AADoABSABIAItAAA6AAYgASACLQAAOgAHIAEgAi0AADoACCABIAItAAA6AAkgASACLQAAOgAKIAEgAi0AADoACyABIAItAAA6AAwgASACLQAAOgANIAEgAi0AADoADiABIAItAAA6AA8gAUEQaiEBIAdBAWoiB0EQRw0ACwwCCyADAn8CQCALRQ0AIAVFDQAgES0ADyARLQAwIBEtAA4gES0ALyARLQANIBEtAC4gES0ADCARLQAtIBEtAAsgES0ALCARLQAKIBEtACsgES0ACSARLQAqIBEtAAggES0AKSARLQAHIBEtACggES0ABiARLQAnIBEtAAUgES0AJiARLQAEIBEtACUgES0AAyARLQAkIBEtAAIgES0AIyARLQABIBEtACIgES0AISARLQAAampqampqampqampqampqampqampqampqampqampqakEQakEFdgwBCyALBEAgES0ADyARLQAOIBEtAA0gES0ADCARLQALIBEtAAogES0ACSARLQAIIBEtAAcgES0ABiARLQAFIBEtAAQgES0AAyARLQACIBEtAAAgES0AAWpqampqampqampqampqakEIakEEdgwBC0GAASAFRQ0AGiARLQAwIBEtAC8gES0ALiARLQAtIBEtACwgES0AKyARLQAqIBEtACkgES0AKCAR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BS0AAyAFLQACIAUtAAAgBS0AAWpqakECakECdiIDCyEGIAIgA0H/AXFBgYKECGwiAzYAHCACIAZB/wFxQYGChAhsIgY2ABggAiADNgAUIAIgBjYAECACIAM2AAwgAiAGNgAIIAIgAzYABCACIAY2AAACQCAZBEAgBS0AByAFLQAGIAUtAAUgBS0ABGpqaiIKQQJqQQJ2IQMgEEUEQCADIQYMAgsgAyEGIActAAggBy0AByAHLQAGIAogBy0ABWpqampBBGpBA3YhAwwBCyAQRQRAQYABIQNBgAEhBgwBCyAHLQAIIActAAcgBy0ABSAHLQAGampqQQJqQQJ2IQMgBy0ABCAHLQADIActAAEgBy0AAmpqakECakECdiEGCyACIANB/wFxQYGChAhsIgM2ADwgAiAGQf8BcUGBgoQIbCIGNgA4IAIgAzYANCACIAY2ADAgAiADNgAsIAIgBjYAKCACIAM2ACQgAiAGNgAgDAQLIBkNAkEBDAULQQEgEEUNBBogAiAHLQABOgAAIAIgBy0AAToACCACIActAAE6ABAgAiAHLQABOgAYIAIgBy0AAToAICACIActAAE6ACggAiAHLQABOgAwIAIgBy0AAToAOCACIActAAI6AAEgAiAHLQACOgAJIAIgBy0AAjoAESACIActAAI6ABkgAiAHLQACOgAhIAIgBy0AAjoAKSACIActAAI6ADEgAiAHLQACOgA5IAIgBy0AAzoAAiACIActAAM6AAogAiAHLQADOgASIAIgBy0AAzoAGiACIActAAM6ACIgAiAHLQADOgAqIAIgBy0AAzoAMiACIActAAM6ADogAiAHLQAEOgADIAIgBy0ABDoACyACIActAAQ6ABMgAiAHLQAEOgAbIAIgBy0ABDoAIyACIActAAQ6ACsgAiAHLQAEOgAzIAIgBy0ABDoAOyACIActAAU6AAQgAiAHLQAFOgAMIAIgBy0ABToAFCACIActAAU6ABwgAiAHLQAFOgAkIAIgBy0ABToALCACIActAAU6ADQgAiAHLQAFOgA8IAIgBy0ABjoABSACIActAAY6AA0gAiAHLQAGOgAVIAIgBy0ABjoAHSACIActAAY6ACUgAiAHLQAGOgAtIAIgBy0ABjoANSACIActAAY6AD0gAiAHLQAHOgAGIAIgBy0ABzoADiACIActAAc6ABYgAiAH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IAMgDiARakGwLmotAAA6AAEgAigCHCERIAEtAAshDiADIBIgE2pBsC5qLQAAOgACIAMgDiARakGwLmotAAA6AAMgAigCJCERIAEtABEhDiADIAVqIgMgAigCICABLQAQakGwLmotAAA6AAAgAigCKCESIAEtABIhEyADIA4gEWpBsC5qLQAAOgABIAIoAiwhESABLQATIQ4gAyASIBNqQbAuai0AADoAAiADIA4gEWpBsC5qLQAAOgADIAIoAjQhESABLQAZIQ4gAyAFaiIDIAIoAjAgAS0AGGpBsC5qLQAAOgAAIAIoAjghEiABLQAaIRMgAyAOIBFqQbAuai0AADoAASACKAI8IQIgAS0AGyEBIAMgEiATakGwLmotAAA6AAIgAyABIAJqQbAuai0AADoAAwwBCyABKAIIIQIgAyABKAIANgIAIAMgB2oiAyACNgIAIAEoAhghAiADIAdqIgMgASgCEDYCACADIAdqIAI2AgALIAZBAWoiBkEYRw0ACwwBCyAdIAsQGAsgEEEgaiQAIAgiAw0BC0EAIQMLIAMLIgYNASAgKAK8CSApaigCxAEhAgJ/QQAhAwJAIBsoAgxBA3QgGygCEGsiAUUNAEEBIQMgAUEISw0AQQEgAUEBa3QgGxAQQSAgAWt2RwwBCyADCyAjKAIMckEARyEBAkACQCAUKAIEQQJrDgYAAQEBAQABCyAgIAQ2ArAJC0EBIQZBACABICAoApQJICAoApgJIAQQHSIEGw0BICIgAkEBRmohIiABDQALICBBrAlqKAIAICJqIgEgICgCmAlLDQAgICABNgKsCUEAIQYLICNBwANqJAAgBgsEQCAgKALYCiEAQQAhAyAgKAKoCSECAkAgIEGwCWooAgAiAUUNACAAIAFBAWsiAU8EQCABIQAMAQsgICgCvAkhBANAAkAgBCABQdgBbGooAgQgAkcNACADQQFqIgMgICgCECgCNCIJQQogCUEKSxtJDQAgASEADAILIAFBAWsiASAASw0ACwsDQAJAICAoArwJIABB2AFsaiIBKAIEIAJHDQAgASgCxAEiA0UNACABIANBAWs2AsQBICAoApQJICAoApgJIAAQHSIADQELC0ENISIMAgtBACEiQQAhAgJAAkACQAJAAkAgIEH8CmooAgAEQCAAKAKYCSIERQ0DIARBA3EhBiAAKAK8CSED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IARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyANICBqIgFBBGohAyAHKAI0IQQCQCAIKAIcIAEtAAMiCSABLQAEIgZrIgsgC0EfdSILaiALc00NACAIKAIgIgwgA0ECay0AACILIAlrIgogCkEfdSIKaiAKc00NACAMIAEtAAUiCiAGayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAEgBCAIKAIYakEBay0AACIBQX9zIgwgAUEBaiIOIAYgCWtBAnQgCmsgC2pBBGpBA3UiASABIA5KGyABIAxIGyIBIAlqQbAuai0AADoAAyADIAYgAWtBsC5qLQAAOgAADAELIAEgCSAKaiALQQF0akECakECdjoAAyADIAYgCkEBdGogC2pBAmpBAnY6AAALIAgoAhwgAyAdaiIBQQFrIgotAAAiAyABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIgIgwgAUECay0AACIGIANrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAogAyAEIAgoAhhqQQFrLQAAIgRBf3MiCiAEQQFqIgwgCSADa0ECdCALayAGakEEakEDdSIEIAQgDEobIAQgCkgbIgRqQbAuai0AADoAACABIAkgBGtBsC5qLQAAOgAADAELIAogAyALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALAkACQCAHKAIAIgEgBygCCCIMRw0AIAEgBygCEEcNACABIAcoAhhHDQAgAUUNASACIAEgCCAQQQxsaiIBIB0QGiANIAcoAgAgASAdEBoMAQsgAQRAIAggEEEMbGoiAyEJIAEgAygCAGpBAWstAAAiBEF/cyEBIARBAWohBgJAIAMoAgQiBCACIBFqIgwtAAAiCyACLQAAIgprIg4gDkEfdSIOaiAOc00NACAJKAIIIg4gAiAbai0AACISIAtrIhMgE0EfdSITaiATc00NACAOIAIgHWotAAAiEyAKayIUIBRBH3UiFGogFHNNDQAgDCABIAYgCiALa0ECdCATayAS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AAEAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAABAAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA4AAAABAAAADwAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAAEAAAAPAAAABAAAAAQAAAAEAAAABQAAAAQAAAACAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAIAAAAEAAAACAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAgAAAAQAAAADAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAACAAAABAAAAAMAAAAEAAAACAAAAAQAAAAJAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAAQAAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAGAAAABAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAAEAAAABwAAAAQAAAAMAAAABAAAAA0AAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAA/wAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAEAAAAOAAAABAAAAAEAAAD/AAAABAAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAgAAAAoAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADwAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAPAAAAAgAAAAoAAAAEAAAABQAAAP8AAAAAAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAP8AAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAAQAAAAJAAAA/wAAAAwAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAACAAAA/wAAAAgAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAcAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABwAAAP8AAAACAAAABAAAAA0AAAD/AAAACAAAAAMAAAAPAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAwAAAA8AAAAAAAAABQAAAP8AAAAAAAAA/wAAAAAAAAADAAAADwAAAAEAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAQAAAABAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAP8AAAAAAAAA/wAAAAAAAAD/AEHUJwsVBwAAAAAAAAANAAAA/wAAAAAAAAD/AEH0JwsVBwAAAAQAAAACAAAA/wAAAAAAAAD/AEGUKAvZAQcAAAAEAAAAAgAAAAAAAAANAAAABAAAAAgAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAkAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAAEAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAMAAAACAAAAAwAQfgpCwUEAAAABABBiCoLJQQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAgAAAAIAAAADAAAAAwAQbEuC8gGAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAQAAAAQAAAAFAAAAAgAAAAMAAAAGAAAABwAAAAgAAAAJAAAADAAAAA0AAAAKAAAACwAAAA4AAAAPAAAAAAAAAAEAAAABAEGENQshAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAACAEG0NQsFBQAAAAQAQcQ1C8kGBwAAAAQAAAACAAAABAAAAAEAAAAEAAAABAAAAAQAAAADAAAABAAAAAYAAAAAAAAADQAAAAQAAAAIAAAAAAAAAA8AAAAEAAAACgAAAAQAAAAJAAAABAAAAAwAAAAEAAAACwAAAAQAAAAOAAAAAAAAABEAAAAEAAAAEAAAAAAAAAATAAAABAAAABIAAAAAAAAAFQAAAAQAAAAUAAAAAAAAABcAAAAEAAAAFgAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAABIAAAABAAAAEwAAAAQAAAAQAAAABAAAABEAAAABAAAAFgAAAAEAAAAXAAAABAAAABQAAAAEAAAAFQAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAP8AAAAEAAAAAQAAAA8AAAACAAAACgAAAAQAAAAFAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAD/AAAADAAAAAQAAAAHAAAA/wAAAAIAAAAEAAAADQAAAP8AAAAIAAAAAQAAABMAAAACAAAAEgAAAAQAAAARAAAA/wAAABAAAAABAAAAFwAAAAIAAAAWAAAABAAAABUAAAD/AAAAFAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAAQAAAACAAAAAAAAAA0AAAAEAAAACAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAAQAAAAMAAAAAwAAABMAAAABAAAAEgAAAAAAAAARAAAABAAAABAAAAADAAAAFwAAAAEAAAAWAAAAAAAAABUAAAAEAAAAFAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwBBljwLLgEBAQEBAQICAgICAgMDAwMDAwQEBAQEBAUFBQUFBQYGBgYGBgcHBwcHBwgICAgAQdA8C0UKAAAADQAAABAAAAALAAAADgAAABIAAAANAAAAEAAAABQAAAAOAAAAEgAAABcAAAAQAAAAFAAAABkAAAASAAAAFwAAAB0AQaE9CzMBAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMAQeQ9C8wCAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAdAAAAHgAAAB8AAAAgAAAAIAAAACEAAAAiAAAAIgAAACMAAAAjAAAAJAAAACQAAAAlAAAAJQAAACUAAAAmAAAAJgAAACYAAAAnAAAAJwAAACcAAAAnAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAvHw8AFxsdHgcLDQ4nKy0uEAMFCgwTFRocIyUqLAECBAgREhQYBgkWGSAhIiQoJikAEAECBAggAwUKDA8vBwsNDgYJHyMlKiwhIiQoJystLhESFBgTFRocFxsdHhYZJikAQbDAAAsDMCJQ`;\n if (!k2.startsWith(O2)) {\n var A2 = k2;\n k2 = n2.locateFile ? n2.locateFile(A2, s2) : s2 + A2;\n }\n function j2() {\n var e3 = k2;\n try {\n if (e3 == k2 && u2) return new Uint8Array(u2);\n var t3 = ie2(e3);\n if (t3) return t3;\n if (c2) return c2(e3);\n throw `both async and sync fetching of the wasm failed`;\n } catch (e4) {\n D2(e4);\n }\n }\n function ne2() {\n return u2 || typeof fetch != `function` ? Promise.resolve().then(function() {\n return j2();\n }) : fetch(k2, { credentials: `same-origin` }).then(function(e3) {\n if (!e3.ok) throw `failed to load wasm binary file at '` + k2 + `'`;\n return e3.arrayBuffer();\n }).catch(function() {\n return j2();\n });\n }\n var M2, N2;\n function P2(e3) {\n for (; 0 < e3.length; ) {\n var t3 = e3.shift();\n if (typeof t3 == `function`) t3(n2);\n else {\n var r3 = t3.u;\n typeof r3 == `number` ? t3.s === void 0 ? x2.get(r3)() : x2.get(r3)(t3.s) : r3(t3.s === void 0 ? null : t3.s);\n }\n }\n }\n var re2 = typeof atob == `function` ? atob : function(e3) {\n var t3 = ``, n3 = 0;\n e3 = e3.replace(/[^A-Za-z0-9\\+\\/=]/g, ``);\n do {\n var r3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), i3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), a3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), o3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++));\n r3 = r3 << 2 | i3 >> 4, i3 = (i3 & 15) << 4 | a3 >> 2;\n var s3 = (a3 & 3) << 6 | o3;\n t3 += String.fromCharCode(r3), a3 !== 64 && (t3 += String.fromCharCode(i3)), o3 !== 64 && (t3 += String.fromCharCode(s3));\n } while (n3 < e3.length);\n return t3;\n };\n function ie2(e3) {\n if (e3.startsWith(O2)) {\n try {\n var t3 = re2(e3.slice(O2.length)), n3 = new Uint8Array(t3.length);\n for (e3 = 0; e3 < t3.length; ++e3) n3[e3] = t3.charCodeAt(e3);\n } catch (e4) {\n throw Error(`Converting base64 string to bytes failed.`);\n }\n return n3;\n }\n }\n var F2 = { a: function(e3, t3, n3) {\n h2.copyWithin(e3, t3, t3 + n3);\n }, b: function(e3) {\n var t3 = h2.length;\n if (e3 >>>= 0, 2147483648 < e3) return false;\n for (var n3 = 1; 4 >= n3; n3 *= 2) {\n var r3 = t3 * (1 + 0.2 / n3);\n r3 = Math.min(r3, e3 + 100663296), r3 = Math.max(e3, r3), 0 < r3 % 65536 && (r3 += 65536 - r3 % 65536);\n a: {\n try {\n d2.grow(Math.min(2147483648, r3) - p2.byteLength + 65535 >>> 16), b2();\n var i3 = 1;\n break a;\n } catch (e4) {\n }\n i3 = void 0;\n }\n if (i3) return true;\n }\n return false;\n } };\n (function() {\n function e3(e4) {\n n2.asm = e4.exports, d2 = n2.asm.c, b2(), x2 = n2.asm.r, ee2.unshift(n2.asm.d), w2--, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), w2 == 0 && (T2 !== null && (clearInterval(T2), T2 = null), E2 && (e4 = E2, E2 = null, e4()));\n }\n function t3(t4) {\n e3(t4.instance);\n }\n function r3(e4) {\n return ne2().then(function(e5) {\n return WebAssembly.instantiate(e5, a3);\n }).then(e4, function(e5) {\n l2(`failed to asynchronously prepare wasm: ` + e5), D2(e5);\n });\n }\n var a3 = { a: F2 };\n if (w2++, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), n2.instantiateWasm) try {\n return n2.instantiateWasm(a3, e3);\n } catch (e4) {\n return l2(`Module.instantiateWasm callback failed with error: ` + e4), false;\n }\n return (function() {\n return u2 || typeof WebAssembly.instantiateStreaming != `function` || k2.startsWith(O2) || typeof fetch != `function` ? r3(t3) : fetch(k2, { credentials: `same-origin` }).then(function(e4) {\n return WebAssembly.instantiateStreaming(e4, a3).then(t3, function(e5) {\n return l2(`wasm streaming compile failed: ` + e5), l2(`falling back to ArrayBuffer instantiation`), r3(t3);\n });\n });\n })().catch(i2), {};\n })(), n2.___wasm_call_ctors = function() {\n return (n2.___wasm_call_ctors = n2.asm.d).apply(null, arguments);\n }, n2._memcpy = function() {\n return (n2._memcpy = n2.asm.e).apply(null, arguments);\n }, n2._h264bsdInit = function() {\n return (n2._h264bsdInit = n2.asm.f).apply(null, arguments);\n }, n2._malloc = function() {\n return (n2._malloc = n2.asm.g).apply(null, arguments);\n }, n2._h264bsdDecode = function() {\n return (n2._h264bsdDecode = n2.asm.h).apply(null, arguments);\n }, n2._free = function() {\n return (n2._free = n2.asm.i).apply(null, arguments);\n }, n2._h264bsdShutdown = function() {\n return (n2._h264bsdShutdown = n2.asm.j).apply(null, arguments);\n }, n2._h264bsdNextOutputPicture = function() {\n return (n2._h264bsdNextOutputPicture = n2.asm.k).apply(null, arguments);\n }, n2._h264bsdNextOutputPictureRGBA = function() {\n return (n2._h264bsdNextOutputPictureRGBA = n2.asm.l).apply(null, arguments);\n }, n2._h264bsdPicWidth = function() {\n return (n2._h264bsdPicWidth = n2.asm.m).apply(null, arguments);\n }, n2._h264bsdPicHeight = function() {\n return (n2._h264bsdPicHeight = n2.asm.n).apply(null, arguments);\n }, n2._h264bsdCroppingParams = function() {\n return (n2._h264bsdCroppingParams = n2.asm.o).apply(null, arguments);\n }, n2._h264bsdAlloc = function() {\n return (n2._h264bsdAlloc = n2.asm.p).apply(null, arguments);\n }, n2._h264bsdFree = function() {\n return (n2._h264bsdFree = n2.asm.q).apply(null, arguments);\n }, n2.setValue = function(e3, t3, n3) {\n switch (n3 || (n3 = `i8`), n3.charAt(n3.length - 1) === `*` && (n3 = `i32`), n3) {\n case `i1`:\n m2[e3 >> 0] = t3;\n break;\n case `i8`:\n m2[e3 >> 0] = t3;\n break;\n case `i16`:\n g2[e3 >> 1] = t3;\n break;\n case `i32`:\n _2[e3 >> 2] = t3;\n break;\n case `i64`:\n N2 = [t3 >>> 0, (M2 = t3, 1 <= +Math.abs(M2) ? 0 < M2 ? (Math.min(+Math.floor(M2 / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((M2 - +(~~M2 >>> 0)) / 4294967296) >>> 0 : 0)], _2[e3 >> 2] = N2[0], _2[e3 + 4 >> 2] = N2[1];\n break;\n case `float`:\n v2[e3 >> 2] = t3;\n break;\n case `double`:\n y2[e3 >> 3] = t3;\n break;\n default:\n D2(`invalid type for setValue: ` + n3);\n }\n }, n2.getValue = function(e3, t3) {\n switch (t3 || (t3 = `i8`), t3.charAt(t3.length - 1) === `*` && (t3 = `i32`), t3) {\n case `i1`:\n return m2[e3 >> 0];\n case `i8`:\n return m2[e3 >> 0];\n case `i16`:\n return g2[e3 >> 1];\n case `i32`:\n return _2[e3 >> 2];\n case `i64`:\n return _2[e3 >> 2];\n case `float`:\n return v2[e3 >> 2];\n case `double`:\n return y2[e3 >> 3];\n default:\n D2(`invalid type for getValue: ` + t3);\n }\n return null;\n };\n var I2;\n E2 = function e3() {\n I2 || L2(), I2 || (E2 = e3);\n };\n function L2() {\n function e3() {\n if (!I2 && (I2 = true, n2.calledRun = true, !f2)) {\n if (P2(ee2), r2(n2), n2.onRuntimeInitialized && n2.onRuntimeInitialized(), n2.postRun) for (typeof n2.postRun == `function` && (n2.postRun = [n2.postRun]); n2.postRun.length; ) {\n var e4 = n2.postRun.shift();\n C2.unshift(e4);\n }\n P2(C2);\n }\n }\n if (!(0 < w2)) {\n if (n2.preRun) for (typeof n2.preRun == `function` && (n2.preRun = [n2.preRun]); n2.preRun.length; ) te2();\n P2(S2), 0 < w2 || (n2.setStatus ? (n2.setStatus(`Running...`), setTimeout(function() {\n setTimeout(function() {\n n2.setStatus(``);\n }, 1), e3();\n }, 1)) : e3());\n }\n }\n if (n2.run = L2, n2.preInit) for (typeof n2.preInit == `function` && (n2.preInit = [n2.preInit]); 0 < n2.preInit.length; ) n2.preInit.pop()();\n return L2(), t2.ready;\n });\n })(), T = (function(e2) {\n return e2[e2.RDY = 0] = `RDY`, e2[e2.PIC_RDY = 1] = `PIC_RDY`, e2[e2.HDRS_RDY = 2] = `HDRS_RDY`, e2[e2.ERROR = 3] = `ERROR`, e2[e2.PARAM_SET_ERROR = 4] = `PARAM_SET_ERROR`, e2[e2.MEMALLOC_ERROR = 5] = `MEMALLOC_ERROR`, e2[e2.BYTE_STREAM_ERROR = 6] = `BYTE_STREAM_ERROR`, e2[e2.NAL_UNIT_ERROR = 7] = `NAL_UNIT_ERROR`, e2[e2.ACCESS_UNIT_BOUNDARY_CHECK_ERROR = 8] = `ACCESS_UNIT_BOUNDARY_CHECK_ERROR`, e2[e2.PENDING_ACTIVATION_ERROR = 9] = `PENDING_ACTIVATION_ERROR`, e2[e2.SEQ_PARAM_SET_ERROR = 10] = `SEQ_PARAM_SET_ERROR`, e2[e2.PIC_PARAM_SET_ERROR = 11] = `PIC_PARAM_SET_ERROR`, e2[e2.SLICE_HEADER_ERROR = 12] = `SLICE_HEADER_ERROR`, e2[e2.SLICE_DATA_ERROR = 13] = `SLICE_DATA_ERROR`, e2[e2.GAPS_IN_FRAME_NUM_ERROR = 14] = `GAPS_IN_FRAME_NUM_ERROR`, e2[e2.REORDERING_ERROR = 15] = `REORDERING_ERROR`, e2[e2.NO_INPUT = 1024] = `NO_INPUT`, e2;\n })(T || {});\n let E = (e2) => e2 >= 3 && e2 <= 15, D = (e2) => {\n switch (e2) {\n case T.MEMALLOC_ERROR:\n return `Memory allocation error`;\n case T.PARAM_SET_ERROR:\n return `Failed to activate param set`;\n case T.BYTE_STREAM_ERROR:\n return `Byte stream error`;\n case T.NAL_UNIT_ERROR:\n return `NAL unit error`;\n case T.ACCESS_UNIT_BOUNDARY_CHECK_ERROR:\n return `Access unit boundary check error`;\n case T.PENDING_ACTIVATION_ERROR:\n return `Pending activation error`;\n case T.SEQ_PARAM_SET_ERROR:\n return `Sequence parameter set error`;\n case T.PIC_PARAM_SET_ERROR:\n return `Picture parameter set error`;\n case T.SLICE_HEADER_ERROR:\n return `Slice header error`;\n case T.SLICE_DATA_ERROR:\n return `Slice data error`;\n case T.GAPS_IN_FRAME_NUM_ERROR:\n return `Gaps in frame num error`;\n case T.REORDERING_ERROR:\n return `Reordering error`;\n default:\n return `Decode error`;\n }\n };\n var O = (_c = class {\n constructor(e2) {\n __publicField(this, \"h264Module\");\n __publicField(this, \"decoderInstancePointer\", 0);\n __publicField(this, \"inputBufferPointer\", 0);\n __publicField(this, \"inputBufferLength\", 1024 * 1024);\n __publicField(this, \"bytesRead\", 0);\n __publicField(this, \"isIdrPointer\", 0);\n __publicField(this, \"picIdPointer\", 0);\n __publicField(this, \"numErrMbs\", 0);\n __publicField(this, \"croppingPointers\", { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 });\n __publicField(this, \"parameters\");\n __publicField(this, \"readI32\", (e2) => this.h264Module.HEAP32[e2 >> 2]);\n __publicField(this, \"getParameters\", () => this.parameters);\n __publicField(this, \"unload\", () => {\n this.shutdownDecoder(), this.h264Module._free(this.inputBufferPointer), this.h264Module._free(this.bytesRead), this.h264Module._free(this.isIdrPointer), this.h264Module._free(this.picIdPointer), this.h264Module._free(this.numErrMbs), this.h264Module._free(this.croppingPointers.croppingFlag), this.h264Module._free(this.croppingPointers.leftOffset), this.h264Module._free(this.croppingPointers.width), this.h264Module._free(this.croppingPointers.topOffset), this.h264Module._free(this.croppingPointers.height), this.inputBufferPointer = 0, this.bytesRead = 0, this.isIdrPointer = 0, this.picIdPointer = 0, this.numErrMbs = 0, this.decoderInstancePointer = 0, this.croppingPointers = { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 };\n });\n __publicField(this, \"shutdownDecoder\", () => {\n this.decoderInstancePointer !== 0 && (this.h264Module._h264bsdShutdown(this.decoderInstancePointer), this.h264Module._h264bsdFree(this.decoderInstancePointer)), this.decoderInstancePointer = 0, this.parameters = void 0;\n });\n __publicField(this, \"initDecoder\", () => {\n this.decoderInstancePointer = this.h264Module._h264bsdAlloc(), this.h264Module._h264bsdInit(this.decoderInstancePointer, 0);\n });\n __publicField(this, \"decode\", (e2) => {\n if (e2.byteLength > this.inputBufferLength) {\n let t3 = this.inputBufferLength;\n for (; t3 < e2.byteLength; ) t3 *= 2;\n let n3 = this.h264Module._malloc(t3);\n this.h264Module._free(this.inputBufferPointer), this.inputBufferPointer = n3, this.inputBufferLength = t3;\n }\n this.h264Module.HEAPU8.set(e2, this.inputBufferPointer);\n let t2 = e2.byteLength, n2 = 0, r2 = 0;\n do {\n r2 = this.h264Module._h264bsdDecode(this.decoderInstancePointer, this.inputBufferPointer + n2, t2, 0, this.bytesRead);\n let e3 = this.readI32(this.bytesRead);\n n2 += e3, t2 -= e3;\n } while (t2 > 0 && !E(r2));\n switch (r2) {\n case T.RDY:\n case T.PIC_RDY:\n case T.HDRS_RDY:\n if (r2 === T.PIC_RDY) return this.receiveFrame();\n if (r2 === T.HDRS_RDY) return this.receiveHeader();\n break;\n case T.NO_INPUT:\n break;\n default:\n throw Error(`${D(r2)} (${r2})`);\n }\n });\n __publicField(this, \"receiveFrame\", () => {\n let e2 = this.h264Module._h264bsdNextOutputPicture(this.decoderInstancePointer, this.picIdPointer, this.isIdrPointer, this.numErrMbs);\n if (!e2) return;\n if (!this.parameters) {\n let e3 = this.h264Module._h264bsdPicWidth(this.decoderInstancePointer) * 16, t3 = this.h264Module._h264bsdPicHeight(this.decoderInstancePointer) * 16;\n this.h264Module._h264bsdCroppingParams(this.decoderInstancePointer, this.croppingPointers.croppingFlag, this.croppingPointers.leftOffset, this.croppingPointers.width, this.croppingPointers.topOffset, this.croppingPointers.height);\n let n2 = this.readI32(this.croppingPointers.croppingFlag), r2 = this.readI32(this.croppingPointers.leftOffset), i2 = this.readI32(this.croppingPointers.width), a2 = this.readI32(this.croppingPointers.topOffset), o2 = this.readI32(this.croppingPointers.height);\n this.parameters = { width: e3, height: t3, cropping: n2 ? { left: r2, top: a2, width: i2, height: o2 } : void 0 };\n }\n let t2 = this.parameters.width * this.parameters.height * 3 / 2;\n return this.h264Module.HEAPU8.subarray(e2, e2 + t2);\n });\n __publicField(this, \"receiveHeader\", () => {\n });\n this.h264Module = e2, this.initDecoder(), this.inputBufferPointer = this.h264Module._malloc(this.inputBufferLength), this.bytesRead = e2._malloc(4), this.isIdrPointer = e2._malloc(4), this.picIdPointer = e2._malloc(4), this.numErrMbs = e2._malloc(4), this.croppingPointers = { croppingFlag: e2._malloc(4), leftOffset: e2._malloc(4), width: e2._malloc(4), topOffset: e2._malloc(4), height: e2._malloc(4) };\n }\n }, __publicField(_c, \"create\", () => __async(null, null, function* () {\n return new _c(yield w());\n })), _c);\n let k = (e2) => {\n let { pictureParameterSets: t2, sequenceParameterSets: n2 } = h(e2.data), r2 = [...n2, ...t2], i2 = new Uint8Array(r2.reduce((e3, t3) => e3 + t3.byteLength + 4, 0)), a2 = 0;\n return r2.forEach((e3) => {\n i2[0 + a2] = 0, i2[1 + a2] = 0, i2[2 + a2] = 0, i2[3 + a2] = 1, i2.set(new Uint8Array(e3), a2 + 4), a2 += e3.byteLength + 4;\n }), i2;\n };\n var A = (_d = class {\n constructor(e2) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"unload\", () => {\n this.decoder.unload();\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, r2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, i2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId;\n if (!this.previousSample) {\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n } else if (r2 || i2 || n2) {\n this.decoder.shutdownDecoder(), this.decoder.initDecoder();\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n }\n if (this.previousSample) {\n let t3 = this.previousSample;\n e2.timestamp / e2.timescale > (t3.timestamp + t3.duration * 2) / t3.timescale && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let a2 = performance.now();\n m(e2.data, (t3) => {\n var _a3, _b3, _c3, _d3;\n let n3 = new Uint8Array(t3.buffer, t3.byteOffset, t3.byteLength), r3 = this.decoder.decode(n3);\n if (r3) {\n if (!e2.buffer) throw Error(`Expected sample to contain buffer`);\n let t4 = this.decoder.getParameters();\n if (new Uint8Array(e2.buffer).set(r3), t4) {\n let n4 = [new Uint8Array(e2.buffer, 0, t4.width * t4.height), new Uint8Array(e2.buffer, t4.width * t4.height, t4.width / 2 * t4.height / 2), new Uint8Array(e2.buffer, t4.width * t4.height + t4.width / 2 * t4.height / 2, t4.width / 2 * t4.height / 2)];\n this.decodedSamples.push(__spreadProps(__spreadValues({}, e2), { buffer: e2.buffer, type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: (_b3 = (_a3 = t4.cropping) == null ? void 0 : _a3.width) != null ? _b3 : t4.width, height: (_d3 = (_c3 = t4.cropping) == null ? void 0 : _c3.height) != null ? _d3 : t4.height, codedWidth: t4.width, codedHeight: t4.height, data: n4, statistics: { decodeTime: performance.now() - a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } }));\n }\n }\n return true;\n });\n });\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.decoder = e2;\n }\n }, __publicField(_d, \"create\", () => __async(null, null, function* () {\n return new _d(yield O.create());\n })), _d), j = class {\n constructor() {\n __publicField(this, \"map\", /* @__PURE__ */ new Map());\n }\n enqueue(t2, n2) {\n let r2 = this.map.get(t2);\n if (r2) r2.push(n2);\n else {\n let r3 = new e(1 / 0);\n r3.push(n2), this.map.set(t2, r3);\n }\n }\n dequeue(e2) {\n let t2 = this.map.get(e2);\n if (!t2) return;\n let n2 = t2.pop();\n return t2.isEmpty() && this.map.delete(e2), n2;\n }\n dequeueWithFallback(e2) {\n let t2 = this.dequeue(e2);\n if (t2 !== void 0) return t2;\n for (let [e3, t3] of this.map) {\n let n2 = t3.pop();\n if (t3.isEmpty() && this.map.delete(e3), n2 !== void 0) return n2;\n }\n }\n removeLast(e2) {\n let t2 = this.map.get(e2);\n t2 && (t2.popLast(), t2.isEmpty() && this.map.delete(e2));\n }\n clear() {\n this.map.clear();\n }\n };\n let ne = globalThis, M = new Uint8Array(), N = new ArrayBuffer(0);\n var P = (_e4 = class {\n constructor(e2, t2 = `no-preference`) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\", null);\n __publicField(this, \"logger\");\n __publicField(this, \"hardwareAcceleration\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"previousCodec\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"pendingSamples\", new j());\n __publicField(this, \"errors\", new e(10));\n __publicField(this, \"pendingDecodeCount\", 0);\n __publicField(this, \"waitResolve\", null);\n __publicField(this, \"waitTargetCount\", 1);\n __publicField(this, \"consecutiveErrors\", 0);\n __publicField(this, \"effectiveHardwareAcceleration\");\n __publicField(this, \"clearPendingState\", () => {\n this.pendingSamples.clear(), this.pendingDecodeCount = 0, this.notifyWaiter();\n });\n __publicField(this, \"resetDecoderState\", () => {\n this.clearPendingState(), this.previousSample = void 0, this.previousCodec = void 0, this.isWaitingForSync = true;\n });\n __publicField(this, \"ensureDecoder\", () => ((!this.decoder || this.decoder.state === `closed`) && (this.decoder = this.createDecoder()), this.decoder));\n __publicField(this, \"recreateDecoder\", () => {\n this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = this.createDecoder(), this.resetDecoderState();\n });\n __publicField(this, \"notifyWaiter\", () => {\n if (this.waitResolve && (this.decodedSamples.length >= this.waitTargetCount || this.pendingDecodeCount <= 0 || !this.decoder)) {\n let e2 = this.waitResolve;\n this.waitResolve = null, this.waitTargetCount = 1, e2();\n }\n });\n __publicField(this, \"createDecoder\", () => new VideoDecoder({ output: (e2) => {\n let t2 = this.pendingSamples.dequeue(e2.timestamp), n2 = t2 == null ? void 0 : t2.decodeMetadata, r2 = n2 === void 0 ? 0 : Math.max(performance.now() - n2.startTime, 0), i2 = n2 === void 0 ? 0 : Math.max(n2.pendingBeforeEnqueue, 0) * Math.max(n2.frameDurationMs, 0), a2 = Math.max(0, r2 - i2), o2 = t2 == null ? void 0 : t2.sample;\n if (!o2) {\n e2.close(), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n return;\n }\n let s2 = __spreadProps(__spreadValues({}, o2), { type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: e2.displayWidth, height: e2.displayHeight, codedWidth: e2.codedWidth, codedHeight: e2.codedHeight, data: [M, M, M], buffer: N, videoFrame: e2, statistics: { decodeTime: a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } });\n this.decodedSamples.push(s2), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.consecutiveErrors = 0, this.notifyWaiter();\n }, error: (e2) => {\n if (this.logger.error(`Decoder error:`, e2.name, e2.message), this.errors.push(e2), this.consecutiveErrors++, this.consecutiveErrors >= _e4.maxConsecutiveErrors && this.effectiveHardwareAcceleration !== `prefer-software`) {\n this.logger.warn(`${this.consecutiveErrors} consecutive decoder errors, retrying with software decoding`), this.effectiveHardwareAcceleration = `prefer-software`, this.consecutiveErrors = 0, this.recreateDecoder();\n return;\n }\n if (!this.decoder || this.decoder.state === `closed`) {\n this.resetDecoderState();\n return;\n }\n this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n } }));\n __publicField(this, \"unload\", () => {\n this.decodedSamples.forEach((e2) => {\n e2.videoFrame && e2.videoFrame.close();\n }), this.decodedSamples = [], this.resetDecoderState(), this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = null;\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2, _e5;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = this.ensureDecoder(), r2 = t2.codec, i2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, a2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, o2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId, s2 = this.previousCodec !== r2;\n if (!this.previousSample || a2 || o2 || i2 || s2) {\n this.previousSample && n2.state === `configured` && n2.flush().catch((e3) => {\n this.logger.warn(`Failed to flush before reconfiguration:`, e3);\n });\n let i3, a3;\n if (r2 === `av1`) {\n let { codecString: e3, fallbackCodecString: n3, width: r3, height: o4 } = y(t2.data);\n a3 = n3;\n let s3 = new DataView(t2.data).getUint8(0), c2 = s3 !== void 0 && s3 & 128 ? t2.data : void 0;\n i3 = __spreadProps(__spreadValues({ codec: e3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration }, c2 ? { description: c2 } : {}), { codedWidth: r3, codedHeight: o4 });\n } else if (r2 === `h265`) {\n let n3 = t2.codecString;\n if (!n3) {\n this.logger.error(`Missing HEVC codec string in init segment, dropping sample`);\n return;\n }\n i3 = { codec: n3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: e2.width, codedHeight: e2.height };\n } else {\n let { sequenceParameterSets: e3 } = h(t2.data);\n if (e3.length === 0) {\n this.logger.error(`No SPS found in init segment, dropping sample`);\n return;\n }\n let n3 = e3[0];\n if (!n3) {\n this.logger.error(`Missing SPS payload in init segment, dropping sample`);\n return;\n }\n let r3 = g(n3);\n i3 = { codec: `avc1.${r3.profileIdc.toString(16).padStart(2, `0`)}${r3.constraintFlags.toString(16).padStart(2, `0`)}${r3.levelIdc.toString(16).padStart(2, `0`)}`, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: r3.width, codedHeight: r3.height };\n }\n let o3 = false;\n try {\n n2.configure(i3), o3 = true;\n } catch (t3) {\n if (r2 === `av1` && a3 && n2.state !== `closed`) try {\n n2.configure(__spreadProps(__spreadValues({}, i3), { codec: a3 })), o3 = true;\n } catch (e3) {\n }\n if (!o3) {\n this.logger.error(`Failed to configure decoder for ${r2} (rendition ${e2.renditionId}), dropping sample`, t3), this.errors.push(t3 instanceof Error ? t3 : Error(`Failed to configure decoder for ${r2}`)), this.previousSample = void 0, this.ensureDecoder();\n return;\n }\n }\n this.isWaitingForSync = true, this.previousCodec = r2;\n }\n if (e2.timescale <= 0) {\n this.logger.error(`Invalid timescale ${e2.timescale} in sample, dropping sample`);\n return;\n }\n if (this.previousSample && this.previousSample.timescale > 0) {\n let t3 = this.previousSample, n3 = (t3.timestamp + t3.duration * 2) / t3.timescale;\n e2.timestamp / e2.timescale > n3 && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let l2 = Math.floor(1e6 * (e2.timestamp + ((_e5 = e2.compositionTimeOffset) != null ? _e5 : 0)) / e2.timescale), u2 = Math.floor(1e6 * e2.duration / e2.timescale);\n try {\n let t3 = performance.now(), r3 = this.pendingDecodeCount, i3 = e2.duration / e2.timescale * 1e3, a3 = new EncodedVideoChunk({ type: e2.isSync ? `key` : `delta`, timestamp: l2, duration: u2 > 0 ? u2 : void 0, data: e2.data });\n this.pendingSamples.enqueue(l2, { sample: e2, decodeMetadata: { startTime: t3, pendingBeforeEnqueue: r3, frameDurationMs: i3 } }), n2.decode(a3), this.pendingDecodeCount++;\n } catch (e3) {\n this.logger.error(`Failed to decode chunk:`, e3), this.pendingSamples.removeLast(l2), this.previousSample = void 0, this.isWaitingForSync = true, this.ensureDecoder(), this.notifyWaiter();\n }\n });\n __publicField(this, \"flush\", () => __async(this, null, function* () {\n if (this.decoder && this.decoder.state === `configured`) try {\n yield this.decoder.flush();\n } catch (e2) {\n this.logger.error(`Failed to flush decoder:`, e2), this.resetDecoderState();\n }\n }));\n __publicField(this, \"waitForFrames\", (e2 = 1) => this.pendingDecodeCount <= 0 || this.decodedSamples.length >= e2 ? Promise.resolve() : new Promise((t2) => {\n var _a2;\n (_a2 = this.waitResolve) == null ? void 0 : _a2.call(this), this.waitResolve = t2, this.waitTargetCount = Math.max(1, e2), this.notifyWaiter();\n }));\n __publicField(this, \"pendingFrames\", () => this.pendingDecodeCount);\n __publicField(this, \"error\", () => this.errors.pop());\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.logger = e2, this.hardwareAcceleration = t2, this.effectiveHardwareAcceleration = t2, this.decoder = this.createDecoder();\n }\n }, __publicField(_e4, \"maxConsecutiveErrors\", 3), __publicField(_e4, \"isSupported\", () => ne.VideoDecoder !== void 0), __publicField(_e4, \"create\", (e2, n2 = `no-preference`) => __async(null, null, function* () {\n if (!_e4.isSupported()) throw Error(`WebCodecs VideoDecoder is not supported in this environment`);\n return new _e4(e2, n2);\n })), _e4), re = class {\n constructor() {\n __publicField(this, \"initialized\", false);\n __publicField(this, \"anchorMediaMs\", 0);\n __publicField(this, \"anchorPerfMs\", 0);\n }\n reset() {\n this.initialized = false, this.anchorMediaMs = 0, this.anchorPerfMs = 0;\n }\n estimate(e2 = performance.now()) {\n return this.initialized ? this.anchorMediaMs + (e2 - this.anchorPerfMs) : 0;\n }\n updateFromMainThread(e2, t2) {\n let n2 = performance.now(), r2 = e2 + Math.max(0, Date.now() - t2);\n if (!this.initialized) return this.setAnchor(r2, n2), `soft-correct`;\n let i2 = this.estimate(n2), a2 = r2 - i2;\n if (a2 < -400) return this.setAnchor(r2, n2), `resync`;\n if (a2 < -120) return `ignore`;\n if (a2 > 120) return this.setAnchor(r2, n2), `soft-correct`;\n let o2 = Math.max(-12, Math.min(12, a2 * 0.25));\n return this.setAnchor(i2 + o2, n2), `soft-correct`;\n }\n setAnchor(e2, t2) {\n this.anchorMediaMs = e2, this.anchorPerfMs = t2, this.initialized = true;\n }\n };\n let ie = new ArrayBuffer(0), F = self, I = r.get().createContext(`VideoDecoder.worker`), L = new re(), R, z = false, B, V, H = false, U = [], W, G = 0, K = 0, q = true, J, ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0, Q = __spreadValues({}, i), $ = { cues: [], containerWidth: 0, containerHeight: 0, devicePixelRatio: 1, bottomPadding: 0, canvas: void 0, context: void 0, logicalWidth: 0, logicalHeight: 0 }, le = () => {\n $.canvas || ($.canvas = new OffscreenCanvas(1, 1), $.context = $.canvas.getContext(`2d`, { alpha: true }));\n }, ue = (e2) => {\n e2.fillStyle = `white`, e2.textAlign = `left`, e2.textBaseline = `top`, e2.font = `${Q.fontSize} sans-serif`;\n }, de = (e2, t2, n2) => {\n let r2 = [], i2 = e2.split(` `), a2 = ``;\n for (; i2.length > 0; ) {\n ue(n2);\n let e3 = 0;\n for (; n2.measureText(a2 + (a2.length > 0 ? ` ` : ``) + i2[0]).width + Q.textPadding * 2 <= t2 && i2.length > 0; ) e3++, a2 += (a2.length > 0 ? ` ` : ``) + i2.shift();\n if (e3 === 0) {\n r2.push(i2.shift() || ``), a2 = ``;\n continue;\n }\n r2.push(a2), a2 = ``;\n }\n return r2;\n }, fe = () => {\n le();\n let e2 = $.context, t2 = $.canvas;\n if (!e2 || !t2) return;\n let n2 = $.devicePixelRatio, r2 = $.containerHeight || $.containerWidth * 9 / 16;\n Q.fontSize = a($.containerWidth, r2);\n let i2 = $.containerWidth || (B == null ? void 0 : B.width) || 960, o2 = $.cues.flatMap((t3) => t3.text.split(`\n`).flatMap((t4) => de(t4, i2, e2))).map((t3) => {\n ue(e2);\n let n3 = e2.measureText(t3);\n return { text: t3, size: { height: n3.fontBoundingBoxAscent + n3.fontBoundingBoxDescent + Q.textPadding * 2, width: n3.width + Q.textPadding * 2 } };\n });\n if (o2.length === 0) {\n $.logicalWidth = 0, $.logicalHeight = 0;\n return;\n }\n let s2 = Math.max(...o2.map((e3) => e3.size.width)), c2 = o2.reduce((e3, { size: t3 }) => e3 + t3.height, 0) + (o2.length - 1) * Q.lineGap;\n $.logicalWidth = s2, $.logicalHeight = c2, t2.width = s2 * n2, t2.height = c2 * n2, e2.setTransform(n2, 0, 0, n2, 0, 0), e2.clearRect(0, 0, t2.width, t2.height);\n let l2 = 0;\n for (let { size: t3, text: n3 } of o2) ue(e2), e2.fillStyle = Q.backgroundColor, e2.fillRect(0, l2, t3.width, t3.height), ue(e2), e2.fillText(n3, Q.textPadding, l2 + Q.textPadding), l2 += t3.height + Q.lineGap;\n }, pe = () => {\n if ($.cues.length === 0 || $.logicalWidth === 0 || $.logicalHeight === 0) return;\n let e2 = $.canvas;\n if (!B || !V || !e2) return;\n let t2 = o({ subtitleWidth: $.logicalWidth, subtitleHeight: $.logicalHeight, canvasWidth: B.width, canvasHeight: B.height, containerWidth: $.containerWidth || B.width, bottomPadding: $.bottomPadding });\n V.drawImage(e2, t2.x, t2.y, t2.drawWidth, t2.drawHeight);\n }, me = () => {\n U.forEach((e2) => {\n e2.videoFrame.close();\n }), U = [];\n }, he = (e2, t2) => {\n let n2 = (t2 - 400) / 1e3, r2 = (e2.sample.timestamp + (e2.sample.compositionTimeOffset || 0)) / e2.sample.timescale;\n U = U.filter((e3) => {\n let t3 = (e3.sample.timestamp + (e3.sample.compositionTimeOffset || 0)) / e3.sample.timescale, i2 = t3 > n2 && t3 <= r2;\n if (!i2) try {\n e3.videoFrame.close();\n } catch (e4) {\n }\n return i2;\n }), U.push(e2);\n }, ge = () => {\n J !== void 0 && (clearTimeout(J), J = void 0);\n }, _e = () => {\n W !== void 0 && (cancelAnimationFrame(W), W = void 0);\n }, ve = () => {\n G = 0, K = 0, q = true, L.reset(), ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0;\n }, ye = () => {\n _e(), ge(), me();\n }, be = (e2) => {\n !B || !V || ((B.width !== e2.displayWidth || B.height !== e2.displayHeight) && (B.width = e2.displayWidth, B.height = e2.displayHeight), V.drawImage(e2, 0, 0, B.width, B.height));\n }, xe = (e2) => {\n be(e2), pe();\n }, Se = (e2) => (e2.timestamp + (e2.compositionTimeOffset || 0)) / e2.timescale * 1e3, Ce = () => {\n var _a2, _b2;\n if (!H || !B || !V) {\n W = void 0;\n return;\n }\n let e2 = L.estimate(), t2 = e2 + 8, n2 = [], r2 = U[0];\n for (; r2 && Se(r2.sample) <= t2; ) {\n let e3 = U.shift();\n if (!e3) break;\n n2.push(e3), r2 = U[0];\n }\n let i2, a2 = 0;\n if (n2.length === 1) i2 = n2[0];\n else if (n2.length > 1) {\n let t3 = n2[n2.length - 1], r3 = n2[n2.length - 2];\n if (!t3 || !r3) {\n W = requestAnimationFrame(Ce);\n return;\n }\n if (e2 - Se(t3.sample) < 10) {\n U.unshift(t3), i2 = r3;\n for (let e3 = 0; e3 < n2.length - 2; e3++) (_a2 = n2[e3]) == null ? void 0 : _a2.videoFrame.close();\n a2 = Math.max(n2.length - 2, 0);\n } else {\n i2 = t3;\n for (let e3 = 0; e3 < n2.length - 1; e3++) (_b2 = n2[e3]) == null ? void 0 : _b2.videoFrame.close();\n a2 = n2.length - 1;\n }\n }\n if (i2) {\n try {\n xe(i2.videoFrame);\n } catch (e3) {\n I.error(`Failed to render VideoFrame to OffscreenCanvas:`, e3);\n }\n i2.videoFrame.close(), G++;\n }\n K += a2, W = requestAnimationFrame(Ce);\n }, we = (e2) => {\n e2.data = ie;\n }, Te = () => G !== oe || K !== se, Ee = (e2, t2, n2) => {\n var _a2, _b2;\n let r2 = H && Te(), i2 = Y > 0, a2 = (_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0, o2 = a2 !== ce;\n if (t2 === 0 && e2.length === 0 && !r2 && !i2 && !o2) return;\n let s2 = z ? H ? [] : e2.map((e3) => e3.videoFrame).filter((e3) => e3 !== void 0) : e2.map((e3) => e3.buffer), c2 = { type: `decoded samples`, samples: e2, timestamp: n2, samplesAcceptedCount: t2, decoderPendingCount: a2 };\n r2 && (c2.renderedFrameCount = G, c2.rendererDroppedFrameCount = K, oe = G, se = K), i2 && (c2.estimatedSampleCount = Y, c2.estimatedDecodeTimeSum = X, c2.estimatedTransportTimeToWorkerSum = Z, Y = 0, X = 0, Z = 0), F.postMessage(c2, s2), ce = a2;\n }, De = (e2) => {\n let t2 = e2.videoFrame;\n if (q && B && V) {\n q = false;\n try {\n xe(t2), G++;\n } finally {\n t2.close();\n }\n } else he({ videoFrame: t2, sample: e2 }, L.estimate());\n e2.statistics && (Y++, X += e2.statistics.decodeTime, Z += e2.statistics.transportTimeToWorker), e2.videoFrame = void 0;\n }, Oe = (e2, t2) => {\n let n2 = [], r2;\n for (; r2 = R == null ? void 0 : R.take(); ) {\n if (r2.statistics && (r2.statistics.transportTimeToWorker = e2 > 0 ? e2 : ae, r2.statistics.samplesInBatch = t2), H && r2.videoFrame) {\n De(r2);\n continue;\n }\n n2.push(r2);\n }\n return n2;\n }, ke = () => {\n var _a2, _b2;\n J = void 0, !(!z || !R) && (Ee(Oe(0, 1), 0, Date.now()), ((_b2 = (_a2 = R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae());\n }, Ae = () => {\n !z || J !== void 0 || (J = setTimeout(ke, 10));\n }, je = (e2, t2, n2, i2) => __async(null, null, function* () {\n try {\n if (r.get().setLevel(e2), ye(), ve(), t2 && P.isSupported()) try {\n let e3 = I.createContext(`WebCodecsVideo`);\n R = yield P.create(e3, n2), z = true, I.info(`Initialized WebCodecs video decoder`, { hardwareAcceleration: n2 });\n } catch (e3) {\n I.warn(`WebCodecs initialization failed, falling back to WASM:`, e3), R = yield A.create(), z = false, I.info(`Initialized WASM video decoder (WebCodecs fallback)`);\n }\n else R = yield A.create(), z = false, I.info(`Initialized WASM video decoder`);\n H = false, B = void 0, V = void 0, i2 && z ? (B = i2, V = i2.getContext(`2d`, { alpha: false, desynchronized: true }), V ? (H = true, I.info(`OffscreenCanvas rendering enabled`), W = requestAnimationFrame(Ce)) : (I.error(`Failed to get 2D context from OffscreenCanvas`), H = false, B = void 0)) : i2 && !z && I.warn(`OffscreenCanvas provided but WebCodecs is not in use - ignoring canvas`), F.postMessage({ type: `ready`, isWebCodecs: z, usingOffscreenCanvas: H });\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n });\n F.addEventListener(`message`, (e2) => {\n var _a2, _b2;\n switch (e2.data.type) {\n case `init`:\n je(e2.data.logLevel, e2.data.useWebCodecs, e2.data.webcodecsHardwareAcceleration, e2.data.offscreenCanvas);\n break;\n case `decode samples`:\n {\n let t2 = e2.data;\n try {\n let e3 = Date.now() - t2.timestamp;\n ae = e3, t2.currentTime !== void 0 && L.updateFromMainThread(t2.currentTime, t2.timestamp) === `resync` && (me(), q = true), t2.samples.forEach((e4) => {\n R == null ? void 0 : R.enqueue(e4);\n });\n let n2 = Oe(e3, t2.samples.length);\n for (let e4 of t2.samples) we(e4);\n Ee(n2, t2.samples.length, Date.now()), ((_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae();\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n }\n break;\n case `unload`:\n I.info(`Unloading video decoder worker`), R == null ? void 0 : R.unload(), R = void 0, ye(), ve();\n break;\n case `init segment`:\n R == null ? void 0 : R.initSegment(e2.data.initSegment);\n break;\n case `subtitle cues`:\n $.cues = e2.data.cues, $.containerWidth = e2.data.containerWidth, $.containerHeight = e2.data.containerHeight, $.devicePixelRatio = e2.data.devicePixelRatio, $.bottomPadding = e2.data.bottomPadding, fe();\n break;\n }\n });\n})();\n", tb = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", eb], { type: "text/javascript;charset=utf-8" });
|
|
9616
9618
|
})), rb = /* @__PURE__ */ n({ VideoDecoderWorkerContext: () => ab }), ib, ab, ob = t((() => {
|
|
9617
9619
|
V(), nb(), m(), z(), N(), ab = class {
|
|
9618
9620
|
get isWebCodecs() {
|
|
@@ -9987,7 +9989,7 @@ var pb, mb = (e) => (t, n, r) => t.timestamp <= n || t.timestampAdded <= r - e,
|
|
|
9987
9989
|
}), p(this, "unload", () => {
|
|
9988
9990
|
this.timers.unload(), this.emitter.off("add event", this.addEvent);
|
|
9989
9991
|
}), p(this, "addEvent", (e) => {
|
|
9990
|
-
this.logger.debug("Adding event", { event: e }), !this.waitingEvents.some((t) => t.id !== void 0 && t.id === e.id) && this.waitingEvents.push(R(R({}, e), {}, { timestampAdded:
|
|
9992
|
+
this.logger.debug("Adding event", { event: e }), !this.waitingEvents.some((t) => t.id !== void 0 && t.id === e.id) && this.waitingEvents.push(R(R({}, e), {}, { timestampAdded: performance.now() }));
|
|
9991
9993
|
}), p(this, "extractEvent", (e, t) => {
|
|
9992
9994
|
t.type === "video" && e.channelId !== t.channelId && this.addEvent({
|
|
9993
9995
|
type: "channel switch",
|
|
@@ -10000,7 +10002,7 @@ var pb, mb = (e) => (t, n, r) => t.timestamp <= n || t.timestampAdded <= r - e,
|
|
|
10000
10002
|
});
|
|
10001
10003
|
}), p(this, "onBufferedStateChanged", () => {
|
|
10002
10004
|
var e;
|
|
10003
|
-
let t =
|
|
10005
|
+
let t = performance.now(), n = (e = this.timeSource.drift) == null ? 0 : e, r = this.timeSource.serverCurrentTime - n;
|
|
10004
10006
|
if (this.waitingEvents.length === 0) return;
|
|
10005
10007
|
let i = this.waitingEvents.filter((e) => this.isTriggered(e, r, t));
|
|
10006
10008
|
this.waitingEvents = this.waitingEvents.filter((e) => !this.isTriggered(e, r, t)), i.forEach((e) => {
|
|
@@ -10012,7 +10014,7 @@ var pb, mb = (e) => (t, n, r) => t.timestamp <= n || t.timestampAdded <= r - e,
|
|
|
10012
10014
|
pb = hb, p(hb, "EVENT_TIMEOUT", 5e3), p(hb, "EVENT_CHECK_INTERVAL", 20), p(hb, "create", (e, t, n) => new pb(e, t, n)), Ei(), V(), m();
|
|
10013
10015
|
var gb, _b = class e {
|
|
10014
10016
|
constructor(t) {
|
|
10015
|
-
p(this, "emitter", void 0), p(this, "timers", Hn.create()), p(this, "bytesReceived", /* @__PURE__ */ new Map()), p(this, "timeoutInterval", void 0), p(this, "lastBytesUpdated",
|
|
10017
|
+
p(this, "emitter", void 0), p(this, "timers", Hn.create()), p(this, "bytesReceived", /* @__PURE__ */ new Map()), p(this, "timeoutInterval", void 0), p(this, "lastBytesUpdated", performance.now()), p(this, "load", () => {
|
|
10016
10018
|
this.emitter.on("connection state", this.onConnectionState), this.timers.setInterval(() => this.bytesReceived.forEach((e) => e.tick()), 100);
|
|
10017
10019
|
}), p(this, "unload", () => {
|
|
10018
10020
|
this.emitter.off("connection state", this.onConnectionState), this.timers.unload();
|
|
@@ -10026,15 +10028,15 @@ var gb, _b = class e {
|
|
|
10026
10028
|
}), e;
|
|
10027
10029
|
}), p(this, "add", (t, n) => {
|
|
10028
10030
|
let r = this.bytesReceived.get(t);
|
|
10029
|
-
r || (r = new It(20), this.bytesReceived.set(t, r)), n > 0 && (this.lastBytesUpdated =
|
|
10031
|
+
r || (r = new It(20), this.bytesReceived.set(t, r)), n > 0 && (this.lastBytesUpdated = performance.now(), this.timeoutInterval || (this.timeoutInterval = this.timers.setInterval(this.checkTimeout, e.UPDATE_RECEIVED_BYTES_INTERVAL))), r.add(n);
|
|
10030
10032
|
}), p(this, "getStatistics", () => ({
|
|
10031
10033
|
bytesReceived: this.totalBytesReceived(),
|
|
10032
10034
|
videoBitRate: this.averageBitRate("video"),
|
|
10033
10035
|
audioBitRate: this.averageBitRate("audio")
|
|
10034
10036
|
})), p(this, "onConnectionState", (t) => {
|
|
10035
|
-
this.clearTimeoutInterval(), t === "connected" && (this.lastBytesUpdated =
|
|
10037
|
+
this.clearTimeoutInterval(), t === "connected" && (this.lastBytesUpdated = performance.now(), this.timeoutInterval = this.timers.setInterval(this.checkTimeout, e.UPDATE_RECEIVED_BYTES_INTERVAL));
|
|
10036
10038
|
}), p(this, "checkTimeout", () => {
|
|
10037
|
-
let t =
|
|
10039
|
+
let t = performance.now() - this.lastBytesUpdated;
|
|
10038
10040
|
if (this.totalBytesReceived() === 0 && t > e.NO_DATA_ERROR_TIMEOUT) {
|
|
10039
10041
|
this.emitter.emit("error", yi()), this.emitter.emit("reconnect", "no incoming data"), this.clearTimeoutInterval();
|
|
10040
10042
|
return;
|
|
@@ -10061,28 +10063,28 @@ var vb = 1e3, yb = 50, bb = class e {
|
|
|
10061
10063
|
return `${e}-${t}`;
|
|
10062
10064
|
}
|
|
10063
10065
|
recordSample(e) {
|
|
10064
|
-
var t
|
|
10065
|
-
let
|
|
10066
|
-
if (!
|
|
10067
|
-
this.trackingState.set(
|
|
10068
|
-
lastArrivalTime:
|
|
10069
|
-
lastTimestampMs:
|
|
10066
|
+
var t;
|
|
10067
|
+
let n = this.getTrackingKey(e.type, e.renditionId), r = performance.now(), i = e.timestamp / e.timescale * 1e3, a = this.trackingState.get(n);
|
|
10068
|
+
if (!a) {
|
|
10069
|
+
this.trackingState.set(n, {
|
|
10070
|
+
lastArrivalTime: r,
|
|
10071
|
+
lastTimestampMs: i,
|
|
10070
10072
|
jitterSamples: new C(vb),
|
|
10071
10073
|
interArrivalTimes: new C(vb)
|
|
10072
|
-
}), this.runningJitter.set(
|
|
10074
|
+
}), this.runningJitter.set(n, 0), this.recentJitterSamples.set(n, new C(yb));
|
|
10073
10075
|
return;
|
|
10074
10076
|
}
|
|
10075
|
-
let
|
|
10076
|
-
if (
|
|
10077
|
-
|
|
10077
|
+
let o = i - a.lastTimestampMs;
|
|
10078
|
+
if (o <= 0) {
|
|
10079
|
+
a.lastArrivalTime = r, a.lastTimestampMs = i;
|
|
10078
10080
|
return;
|
|
10079
10081
|
}
|
|
10080
|
-
let
|
|
10081
|
-
|
|
10082
|
-
let
|
|
10083
|
-
this.runningJitter.set(
|
|
10084
|
-
let
|
|
10085
|
-
|
|
10082
|
+
let s = r - a.lastArrivalTime, c = Math.abs(s - o);
|
|
10083
|
+
a.jitterSamples.push(c), a.interArrivalTimes.push(s);
|
|
10084
|
+
let l = (t = this.runningJitter.get(n)) == null ? 0 : t, u = l + (c - l) / 16;
|
|
10085
|
+
this.runningJitter.set(n, u);
|
|
10086
|
+
let d = this.recentJitterSamples.get(n);
|
|
10087
|
+
d || (d = new C(yb), this.recentJitterSamples.set(n, d)), d.push(c), a.lastArrivalTime = r, a.lastTimestampMs = i;
|
|
10086
10088
|
}
|
|
10087
10089
|
getJitterForType(e) {
|
|
10088
10090
|
for (let [i, a] of this.trackingState) if (i.startsWith(e)) {
|
|
@@ -10423,6 +10425,12 @@ var Ab = /* @__PURE__ */ new WeakMap(), jb = class {
|
|
|
10423
10425
|
var e;
|
|
10424
10426
|
return (e = A(Ab, this).find((e) => e.mode === "showing")) == null ? void 0 : e.language;
|
|
10425
10427
|
}
|
|
10428
|
+
get tracks() {
|
|
10429
|
+
return A(Ab, this);
|
|
10430
|
+
}
|
|
10431
|
+
get activeTrack() {
|
|
10432
|
+
return A(Ab, this).find((e) => e.mode === "showing");
|
|
10433
|
+
}
|
|
10426
10434
|
getActiveCues(e) {
|
|
10427
10435
|
let t = A(Ab, this).find((e) => e.mode === "showing");
|
|
10428
10436
|
return t ? t.cues.filter(({ startTime: t, endTime: n }) => e >= t && e <= n) : [];
|
|
@@ -10552,17 +10560,15 @@ var Pb, Fb = class {
|
|
|
10552
10560
|
Pb = Fb, p(Fb, "create", (e, t, n, r, i, a, o, s) => new Pb(e, t, n, r, i, a, o, s)), Ei(), V(), m();
|
|
10553
10561
|
var Ib, Lb = class {
|
|
10554
10562
|
constructor(e, t, n, r, { muted: i, volume: a, type: o, poster: s, offscreenCanvas: c, bufferTime: l }) {
|
|
10555
|
-
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "audioPlayer", void 0), p(this, "videoPlayer", void 0), p(this, "pool", void 0), p(this, "isDisconnected", !0), p(this, "_userProvidedMuted", !1), p(this, "timers", new Hn()), p(this, "offscreenCanvas", void 0), p(this, "
|
|
10556
|
-
|
|
10557
|
-
|
|
10558
|
-
|
|
10559
|
-
|
|
10560
|
-
}
|
|
10561
|
-
let e = this.textTracks.getActiveCues(this.currentTime / 1e3);
|
|
10562
|
-
this.updateNativeTrackCues(e);
|
|
10563
|
-
}, 100);
|
|
10563
|
+
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "audioPlayer", void 0), p(this, "videoPlayer", void 0), p(this, "pool", void 0), p(this, "isDisconnected", !0), p(this, "_userProvidedMuted", !1), p(this, "timers", new Hn()), p(this, "offscreenCanvas", void 0), p(this, "nativeTracksByLanguage", /* @__PURE__ */ new Map()), p(this, "nativeCuesByLanguage", /* @__PURE__ */ new Map()), p(this, "lastCanvasCueTexts", []), p(this, "isIOSNativeFullscreen", !1), p(this, "isSyncingNativeTextTracks", !1), p(this, "renderCanvasSubtitlesInNativeFullscreen", (() => {
|
|
10564
|
+
let e = nt().platform;
|
|
10565
|
+
return e.isIOS && e.iosVersion <= 16;
|
|
10566
|
+
})()), p(this, "volumeState", void 0), p(this, "textTracks", new jb()), p(this, "reset", () => {}), p(this, "load", () => {
|
|
10567
|
+
this.mediaElement.load(), this.emitter.on("decoded frame", this.onDecodedFrame), this.emitter.on("flush buffers", this.flushBuffers), this.emitter.on("ios-hack: reset size", this.resetCanvasSize), this.emitter.on("enter picture in picture", this.onEnterIOSHack), this.emitter.on("exit picture in picture", this.onExitIOSHack), this.element().element.textTracks.addEventListener("change", this.onNativeTextTrackChange), this.element().element.addEventListener("webkitendfullscreen", this.onExitIOSHack), this.element().element.addEventListener("webkitbeginfullscreen", this.onEnterIOSHack), this.videoPlayer.load(), this.timers.setInterval(this.syncNativeTextTracks, 100);
|
|
10564
10568
|
}), p(this, "unload", () => {
|
|
10565
|
-
this.emitter.off("target buffer time", this.onTargetBufferTime), this.emitter.off("decoded frame", this.onDecodedFrame), this.emitter.off("flush buffers", this.flushBuffers), this.emitter.off("ios-hack: reset size", this.resetCanvasSize), this.emitter.off("enter picture in picture", this.onEnterIOSHack), this.emitter.off("exit picture in picture", this.onExitIOSHack), this.element().element.removeEventListener("
|
|
10569
|
+
this.emitter.off("target buffer time", this.onTargetBufferTime), this.emitter.off("decoded frame", this.onDecodedFrame), this.emitter.off("flush buffers", this.flushBuffers), this.emitter.off("ios-hack: reset size", this.resetCanvasSize), this.emitter.off("enter picture in picture", this.onEnterIOSHack), this.emitter.off("exit picture in picture", this.onExitIOSHack), this.element().element.textTracks.removeEventListener("change", this.onNativeTextTrackChange), this.element().element.removeEventListener("webkitendfullscreen", this.onExitIOSHack), this.element().element.removeEventListener("webkitbeginfullscreen", this.onEnterIOSHack);
|
|
10570
|
+
for (let e of this.nativeTracksByLanguage.keys()) this.clearNativeCues(e);
|
|
10571
|
+
this.nativeTracksByLanguage.clear(), this.nativeCuesByLanguage.clear(), this.mediaElement.unload(), this.timers.unload(), this.audioPlayer.unload(), this.videoPlayer.unload();
|
|
10566
10572
|
}), p(this, "suspend", () => {
|
|
10567
10573
|
this.videoPlayer.suspend(), this.audioPlayer.suspend();
|
|
10568
10574
|
}), p(this, "unsuspend", () => {
|
|
@@ -10574,9 +10580,9 @@ var Ib, Lb = class {
|
|
|
10574
10580
|
}), p(this, "resetCanvasSize", () => {
|
|
10575
10581
|
this.videoPlayer.resetSize();
|
|
10576
10582
|
}), p(this, "onEnterIOSHack", () => {
|
|
10577
|
-
this.mediaElement._iosHackEnterPiPMode();
|
|
10583
|
+
this.isIOSNativeFullscreen = !0, this.mediaElement._iosHackEnterPiPMode();
|
|
10578
10584
|
}), p(this, "onExitIOSHack", () => {
|
|
10579
|
-
this.mediaElement._iosHackExitPiPMode();
|
|
10585
|
+
this.isIOSNativeFullscreen = !1, this.clearCanvasCues(), this.mediaElement._iosHackExitPiPMode();
|
|
10580
10586
|
}), p(this, "onDecodedFrame", (e) => {
|
|
10581
10587
|
try {
|
|
10582
10588
|
this.audioPlayer.onDecodedFrame(e);
|
|
@@ -10604,23 +10610,60 @@ var Ib, Lb = class {
|
|
|
10604
10610
|
let e = !this.mediaElement.element.paused;
|
|
10605
10611
|
this.logger.info("Reconnecting canvas stream after renderer change", { wasPlaying: e }), this.connectStreams(), e && this.mediaElement.tryPlay();
|
|
10606
10612
|
}
|
|
10607
|
-
}), p(this, "
|
|
10608
|
-
|
|
10609
|
-
|
|
10610
|
-
|
|
10611
|
-
|
|
10612
|
-
|
|
10613
|
+
}), p(this, "ensureNativeTrack", (e) => {
|
|
10614
|
+
let t = this.nativeTracksByLanguage.get(e.language);
|
|
10615
|
+
if (t) return t;
|
|
10616
|
+
let n = this.mediaElement.element.addTextTrack(e.kind, e.label, e.language);
|
|
10617
|
+
return this.nativeTracksByLanguage.set(e.language, n), this.nativeCuesByLanguage.set(e.language, []), n;
|
|
10618
|
+
}), p(this, "getSelectedNativeTextTrack", () => {
|
|
10619
|
+
let e = this.mediaElement.element.textTracks;
|
|
10620
|
+
for (let t = 0; t < e.length; t++) {
|
|
10621
|
+
let n = e[t];
|
|
10622
|
+
if ((n == null ? void 0 : n.mode) === "showing") return n;
|
|
10623
|
+
}
|
|
10624
|
+
}), p(this, "onNativeTextTrackChange", () => {
|
|
10625
|
+
if (this.isSyncingNativeTextTracks) return;
|
|
10626
|
+
let e = this.getSelectedNativeTextTrack();
|
|
10627
|
+
if (!e) {
|
|
10628
|
+
this.emitter.emit("native text track selected", void 0);
|
|
10629
|
+
return;
|
|
10613
10630
|
}
|
|
10614
|
-
|
|
10615
|
-
|
|
10616
|
-
|
|
10617
|
-
let
|
|
10618
|
-
if (!(
|
|
10619
|
-
|
|
10620
|
-
|
|
10621
|
-
|
|
10622
|
-
|
|
10623
|
-
|
|
10631
|
+
let t = this.textTracks.tracks.find((t) => t.language === e.language);
|
|
10632
|
+
t && this.emitter.emit("native text track selected", t.label);
|
|
10633
|
+
}), p(this, "clearNativeCues", (e) => {
|
|
10634
|
+
let t = this.nativeTracksByLanguage.get(e), n = this.nativeCuesByLanguage.get(e);
|
|
10635
|
+
if (!(!t || !n || n.length === 0)) {
|
|
10636
|
+
for (let e of n) try {
|
|
10637
|
+
t.removeCue(e);
|
|
10638
|
+
} catch (e) {}
|
|
10639
|
+
this.nativeCuesByLanguage.set(e, []);
|
|
10640
|
+
}
|
|
10641
|
+
}), p(this, "setNativeCues", (e, t) => {
|
|
10642
|
+
let n = this.nativeTracksByLanguage.get(e), r = this.nativeCuesByLanguage.get(e);
|
|
10643
|
+
if (!n || !r || Vt(t.map((e) => e.text), r.map((e) => e.text))) return;
|
|
10644
|
+
this.clearNativeCues(e);
|
|
10645
|
+
let i = [];
|
|
10646
|
+
for (let e of t) {
|
|
10647
|
+
let t = new VTTCue(0, 2 ** 53 - 1, e.text);
|
|
10648
|
+
n.addCue(t), i.push(t);
|
|
10649
|
+
}
|
|
10650
|
+
this.nativeCuesByLanguage.set(e, i);
|
|
10651
|
+
}), p(this, "shouldRenderCanvasCues", () => this.canvasCuesEnabled && this.isIOSNativeFullscreen), p(this, "setCanvasCues", (e, t = !1) => {
|
|
10652
|
+
let n = e.map((e) => e.text);
|
|
10653
|
+
!t && Vt(n, this.lastCanvasCueTexts) || (this.lastCanvasCueTexts = n, this.videoPlayer.setActiveCues(e, {
|
|
10654
|
+
width: this.mediaElement.element.clientWidth,
|
|
10655
|
+
height: this.mediaElement.element.clientHeight
|
|
10656
|
+
}));
|
|
10657
|
+
}), p(this, "clearCanvasCues", () => {
|
|
10658
|
+
this.canvasCuesEnabled && this.setCanvasCues([], !0);
|
|
10659
|
+
}), p(this, "syncNativeTextTracks", () => {
|
|
10660
|
+
for (let e of this.textTracks.tracks) this.ensureNativeTrack(e);
|
|
10661
|
+
let e = this.textTracks.activeTrack, t = e ? this.textTracks.getActiveCues(this.currentTime / 1e3) : [];
|
|
10662
|
+
this.shouldRenderCanvasCues() && this.setCanvasCues(t), this.isSyncingNativeTextTracks = !0;
|
|
10663
|
+
try {
|
|
10664
|
+
for (let [n, r] of this.nativeTracksByLanguage) n === (e == null ? void 0 : e.language) ? (r.mode !== "showing" && (r.mode = "showing"), this.setNativeCues(n, t)) : (r.mode !== "disabled" && (r.mode = "disabled"), this.clearNativeCues(n));
|
|
10665
|
+
} finally {
|
|
10666
|
+
this.isSyncingNativeTextTracks = !1;
|
|
10624
10667
|
}
|
|
10625
10668
|
}), p(this, "updateVolumeState", () => {
|
|
10626
10669
|
let e = {
|
|
@@ -10704,6 +10747,9 @@ var Ib, Lb = class {
|
|
|
10704
10747
|
pause() {
|
|
10705
10748
|
this.mediaElement.pause();
|
|
10706
10749
|
}
|
|
10750
|
+
get canvasCuesEnabled() {
|
|
10751
|
+
return this.renderCanvasSubtitlesInNativeFullscreen && !this.offscreenCanvas;
|
|
10752
|
+
}
|
|
10707
10753
|
};
|
|
10708
10754
|
Ib = Lb, p(Lb, "create", (e, t, n, r, i) => new Ib(e, t, n, r, i)), V(), m();
|
|
10709
10755
|
var Rb = () => (e) => zb(e.buffered.start(0), e.buffered.end(e.buffered.length - 1)), zb = (e, t) => (n) => n.remove(Math.max(0, e), Math.min(Infinity, t)), Bb = (e) => (t) => t.appendBuffer(e), Vb = (e) => (t) => t.changeType(e), Hb = (e) => (t) => e(t), Ub = class {
|
|
@@ -10803,7 +10849,7 @@ function qb(e, { mediaSource: t, mimeType: n, codec: r }) {
|
|
|
10803
10849
|
sourceBuffer: t.addSourceBuffer(n),
|
|
10804
10850
|
isWorkingOnPendingSamples: !1,
|
|
10805
10851
|
sequenceNumber: 0,
|
|
10806
|
-
lastBufferCleanupTime:
|
|
10852
|
+
lastBufferCleanupTime: performance.now()
|
|
10807
10853
|
});
|
|
10808
10854
|
}
|
|
10809
10855
|
function Jb({ initSegments: e, pendingSamples: t }) {
|
|
@@ -10822,7 +10868,7 @@ function Jb({ initSegments: e, pendingSamples: t }) {
|
|
|
10822
10868
|
var Yb = class {
|
|
10823
10869
|
constructor(e, t, n) {
|
|
10824
10870
|
var r = this;
|
|
10825
|
-
p(this, "maxChunkSize", 20), p(this, "minConsecutiveErrorsBeforeEmit", 5), p(this, "maxSecondsInBuffer", 60), p(this, "logger", void 0), p(this, "timers", Hn.create()), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "mediaSource", new Wb()), p(this, "trackContexts", /* @__PURE__ */ new Map()), p(this, "autoRecoverFromMediaErrors", !0), p(this, "quotaErrorCount", 0), p(this, "recoveredFromErrorCount", 0), p(this, "sourceOpenStartTime",
|
|
10871
|
+
p(this, "maxChunkSize", 20), p(this, "minConsecutiveErrorsBeforeEmit", 5), p(this, "maxSecondsInBuffer", 60), p(this, "logger", void 0), p(this, "timers", Hn.create()), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "mediaSource", new Wb()), p(this, "trackContexts", /* @__PURE__ */ new Map()), p(this, "autoRecoverFromMediaErrors", !0), p(this, "quotaErrorCount", 0), p(this, "recoveredFromErrorCount", 0), p(this, "sourceOpenStartTime", performance.now()), p(this, "sourceOpenEndTime", performance.now()), p(this, "pendingTracksToAddSourceBuffers", void 0), p(this, "hasAddedInitialPosterFrame", !0), p(this, "videoKeyframeTimestamps", []), p(this, "isReopening", !1), p(this, "playbackStallCount", 0), p(this, "hasStartedPlayback", !1), p(this, "isPlaybackStalled", !1), p(this, "load", () => {
|
|
10826
10872
|
this.emitter.on("init segment", this.init), this.emitter.on("coded sample", this.onCodedSample), this.emitter.on("flush buffers", this.flushBuffers), this.emitter.on("fragment", this.onFragment);
|
|
10827
10873
|
}), p(this, "unload", () => {
|
|
10828
10874
|
this.logger.debug("Unloading module..."), this.emitter.off("init segment", this.init), this.emitter.off("coded sample", this.onCodedSample), this.emitter.off("flush buffers", this.flushBuffers), this.emitter.off("fragment", this.onFragment), this.mediaSource.off("source ended", this.onSourceEnded), this.mediaSource.off("source open", this.onSourceOpen), this.mediaElement.removeEventListener("error", this.onMediaElementError), this.mediaElement.removeEventListener("waiting", this.onPlaybackStall), this.mediaElement.removeEventListener("stalled", this.onPlaybackStall), this.mediaElement.removeEventListener("playing", this.onPlaybackProgress), this.mediaElement.removeEventListener("pause", this.onPlaybackPauseOrSeek), this.mediaElement.removeEventListener("seeking", this.onPlaybackPauseOrSeek), this.mediaSource.detach(this.mediaElement), this.trackContexts.forEach((e) => {
|
|
@@ -10985,7 +11031,7 @@ var Yb = class {
|
|
|
10985
11031
|
"fragmented" in n || (yield i.sourceBuffer.appendBuffer(a));
|
|
10986
11032
|
}
|
|
10987
11033
|
let s = Math.max(0, n.timestamp / n.timescale - r.maxSecondsInBuffer);
|
|
10988
|
-
s > 0 &&
|
|
11034
|
+
s > 0 && performance.now() - i.lastBufferCleanupTime > 1e4 && (i.lastBufferCleanupTime = performance.now(), yield i.sourceBuffer.removeBuffer(0, s + 10));
|
|
10989
11035
|
try {
|
|
10990
11036
|
let t = i.sequenceNumber;
|
|
10991
11037
|
if ("fragmented" in n) for (let t of e) "initData" in t && (yield i.sourceBuffer.appendBuffer(t.data, t.initData));
|
|
@@ -11076,7 +11122,7 @@ var Yb = class {
|
|
|
11076
11122
|
mediaElementError: (t = this.mediaElement.error) == null ? void 0 : t.message
|
|
11077
11123
|
});
|
|
11078
11124
|
}), p(this, "onSourceOpen", () => {
|
|
11079
|
-
this.logger.debug("source opened"), this.sourceOpenEndTime =
|
|
11125
|
+
this.logger.debug("source opened"), this.sourceOpenEndTime = performance.now(), this.isReopening = !1, this.pendingTracksToAddSourceBuffers && (this.setSourceBuffers(this.pendingTracksToAddSourceBuffers), this.pendingTracksToAddSourceBuffers = void 0);
|
|
11080
11126
|
}), p(this, "reopenMediaSource", (e) => {
|
|
11081
11127
|
this.logger.info("Re-opening MediaSource", { reason: e }), this.isReopening = !0, this.recoveredFromErrorCount++;
|
|
11082
11128
|
let t = !this.mediaElement.paused, n = [];
|
|
@@ -11086,7 +11132,7 @@ var Yb = class {
|
|
|
11086
11132
|
mimeType: e.mimeType,
|
|
11087
11133
|
codec: e.codec
|
|
11088
11134
|
});
|
|
11089
|
-
}), this.sourceOpenStartTime =
|
|
11135
|
+
}), this.sourceOpenStartTime = performance.now(), this.pendingTracksToAddSourceBuffers = n, this.mediaSource.detach(this.mediaElement), this.setTrackContexts(this.trackContexts), this.mediaSource.attach(this.mediaElement), t && this.mediaElement.play().catch(x);
|
|
11090
11136
|
}), p(this, "onMediaElementError", () => {
|
|
11091
11137
|
let { error: e } = this.mediaElement;
|
|
11092
11138
|
if (!e || this.isReopening) return;
|
|
@@ -11244,7 +11290,7 @@ var ax, ox = class {
|
|
|
11244
11290
|
needsInputForVideoCount: this.needsInputForVideoCount
|
|
11245
11291
|
})), p(this, "onBufferedStateChanged", ({ buffered: e, isPaused: t, playbackState: n }) => {
|
|
11246
11292
|
let r = this.clockSource.currentTime, i = e.some((e) => e.start <= r && r < e.end), a = e[e.length - 1], o = a ? a.end - a.start >= this.targetBufferTime : !1, s = a ? Math.max(0, a.end - r) / this.targetBufferTime : 0, c = t ? "paused" : n, l = this.state;
|
|
11247
|
-
this.currentTimeIsInRange !== i && !i ? (this.lastBufferStateEvent = "drained", this.emitter.emit("buffer state event", this.lastBufferStateEvent)) : i && o && this.lastBufferStateEvent === "drained" && (this.lastBufferStateEvent = "filled", this.emitter.emit("buffer state event", this.lastBufferStateEvent)), c === "playing" &&
|
|
11293
|
+
this.currentTimeIsInRange !== i && !i ? (this.lastBufferStateEvent = "drained", this.emitter.emit("buffer state event", this.lastBufferStateEvent)) : i && o && this.lastBufferStateEvent === "drained" && (this.lastBufferStateEvent = "filled", this.emitter.emit("buffer state event", this.lastBufferStateEvent)), c === "playing" && this.firstFrameTime === void 0 && (this.firstFrameTime = performance.now()), this.currentTimeIsInRange = i, this.state = c, this.bufferFullness = i ? s : 0, l !== c && this.emitter.emit("playback state", c), this.emitter.emit("buffer fullness", this.bufferFullness);
|
|
11248
11294
|
}), p(this, "onNeedsUserInput", ({ forAudio: e, forVideo: t }) => {
|
|
11249
11295
|
e && this.needsInputForAudioCount++, t && this.needsInputForVideoCount++;
|
|
11250
11296
|
}), this.emitter = e, this.logger = t, this.clockSource = n, this.targetBufferTime = r, this.emitter.on("buffer state", this.onBufferedStateChanged), this.emitter.on("needs user input", this.onNeedsUserInput), this.emitter.emit("target buffer time", r);
|
|
@@ -11301,7 +11347,7 @@ var sx, cx = () => ({
|
|
|
11301
11347
|
t || (this.hasAsserted = !0, console.assert(t, `Buffering ratios should be less than 1 - actual: ${Array.from(e.values()).reduce((e, t) => e + t, 0)}`));
|
|
11302
11348
|
}
|
|
11303
11349
|
return e;
|
|
11304
|
-
}), p(this, "bufferingEventsLast", (e) => this.metrics.general.bufferingRanges.filter((t) => t.start >=
|
|
11350
|
+
}), p(this, "bufferingEventsLast", (e) => this.metrics.general.bufferingRanges.filter((t) => t.start >= performance.now() - e).length), p(this, "timeSpentBufferingLast", (e) => qn(this.metrics.general.bufferingRanges, e)), p(this, "timeSpentActiveLast", (e) => qn(this.metrics.general.activeRanges, e)), p(this, "timeSpentPlayingInAtLeastLevelRatio", (e) => {
|
|
11305
11351
|
var t, n, r, i;
|
|
11306
11352
|
let a = this.timeSpentBuffering(), o = this.timeActive(), s = this.bufferingRatios(), c = this.activeRatios(), l = ((t = (n = e.video) == null ? void 0 : n.bitRate) == null ? 0 : t) + ((r = (i = e.audio) == null ? void 0 : i.bitRate) == null ? 0 : r), u = a / o;
|
|
11307
11353
|
return Object.keys(this.metrics.levels).map((e) => parseInt(e, 10)).filter((e) => e >= l).reduce((e, t) => {
|
|
@@ -11329,12 +11375,12 @@ var sx, cx = () => ({
|
|
|
11329
11375
|
this.logger.info("rendition level changed", {
|
|
11330
11376
|
fromLevel: l,
|
|
11331
11377
|
toLevel: u
|
|
11332
|
-
}), this.metrics.general.activeRanges.length === 0 && this.setActive(), e.from && e.to && (l < u ? this.metrics.general.upgradesFromLevel.push(
|
|
11378
|
+
}), this.metrics.general.activeRanges.length === 0 && this.setActive(), e.from && e.to && (l < u ? this.metrics.general.upgradesFromLevel.push(performance.now()) : this.metrics.general.downgradesFromLevel.push(performance.now()));
|
|
11333
11379
|
let d = !1;
|
|
11334
11380
|
if (e.from) {
|
|
11335
11381
|
var f;
|
|
11336
11382
|
let e = (f = this.metrics.levels[l]) == null ? cx() : f;
|
|
11337
|
-
l < u ? e.upgradesFromLevel.push(
|
|
11383
|
+
l < u ? e.upgradesFromLevel.push(performance.now()) : e.downgradesFromLevel.push(performance.now()), Wn(e.activeRanges);
|
|
11338
11384
|
let t = e.bufferingRanges[e.bufferingRanges.length - 1];
|
|
11339
11385
|
d = !!t && !t.end, Wn(e.bufferingRanges), this.metrics.levels[l] = e;
|
|
11340
11386
|
}
|
|
@@ -11578,7 +11624,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11578
11624
|
this._driftSamplesToCollect = e, this.driftSamples = new C(e);
|
|
11579
11625
|
}
|
|
11580
11626
|
constructor(e, t, n, r, i, a = !0) {
|
|
11581
|
-
p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "playbackSource", void 0), p(this, "bufferSource", void 0), p(this, "keyframeTimestamps", new C(10)), p(this, "lastSeekTime",
|
|
11627
|
+
p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "playbackSource", void 0), p(this, "bufferSource", void 0), p(this, "keyframeTimestamps", new C(10)), p(this, "lastSeekTime", void 0), p(this, "lastAdjustmentTime", performance.now()), p(this, "lastDecayCheckTime", performance.now()), p(this, "config", void 0), p(this, "state", void 0), p(this, "allowTimeshiftOnAudio", !1), p(this, "syncInfoToleranceMaxMs", 150), p(this, "syncInfoToleranceStep", 20), p(this, "seekOvershoot", void 0), p(this, "timers", Hn.create()), p(this, "rtt", 0), p(this, "channelSyncInfo", /* @__PURE__ */ new Map()), p(this, "seekAdjustmentCount", 0), p(this, "timeshiftAdjustmentCount", 0), p(this, "syncInfoCorrectionCount", 0), p(this, "playbackRateAdjustmentCount", 0), p(this, "lastPlaybackRateChangeTime", 0), p(this, "seekAdjustmentTimestamps", []), p(this, "timeshiftAdjustmentTimestamps", []), p(this, "_driftSamplesToCollect", 5), p(this, "driftSamples", new C(this._driftSamplesToCollect)), p(this, "timestampOffset", void 0), p(this, "currentChannelId", void 0), p(this, "highestSeenTimestamps", /* @__PURE__ */ new Map()), p(this, "isSuspended", !1), p(this, "isSyncAdjustmentActivated", !1), p(this, "queuedTimeshift", !1), p(this, "playbackState", void 0), p(this, "hasPerformedRecoverySeekInCurrentRecoveryState", !1), p(this, "shouldSeekAfterBuffering", !1), p(this, "usesMse", void 0), p(this, "load", () => {
|
|
11582
11628
|
this.timers.setInterval(this.onSync, 100);
|
|
11583
11629
|
}), p(this, "unload", () => {
|
|
11584
11630
|
this.logger.debug("Unloading module..."), this.emitter.off("rtt", this.updateRtt), this.emitter.off("playback state", this.onPlaybackState), this.timers.unload(), this.logger.debug("Unloaded module");
|
|
@@ -11589,7 +11635,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11589
11635
|
}), p(this, "deactivateSyncAdjustments", () => {
|
|
11590
11636
|
this.isSyncAdjustmentActivated = !1;
|
|
11591
11637
|
}), p(this, "activateSyncAdjustments", () => {
|
|
11592
|
-
this.tryApplySyncInfo(0), this.
|
|
11638
|
+
this.tryApplySyncInfo(0), this.isSyncAdjustmentActivated = !0;
|
|
11593
11639
|
}), p(this, "reset", () => {
|
|
11594
11640
|
this.logger.info("Reset sync state"), this.currentChannelId = void 0, this.timestampOffset = void 0, this.resetSyncState(), this.highestSeenTimestamps.clear();
|
|
11595
11641
|
}), p(this, "getTimeshiftOffset", () => {
|
|
@@ -11600,7 +11646,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11600
11646
|
}), p(this, "getEffectiveSeekToleranceMs", () => this.config.timeshift.enabled ? this.config.seek.toleranceMs * 2 : this.config.seek.toleranceMs), p(this, "getLiveEdgeTime", (e) => {
|
|
11601
11647
|
let t = this.channelSyncInfo.get(e);
|
|
11602
11648
|
if (!t) return;
|
|
11603
|
-
let n =
|
|
11649
|
+
let n = performance.now() - t.localTimestamp;
|
|
11604
11650
|
return t.timestamp + n;
|
|
11605
11651
|
}), p(this, "getLiveEdgeTimeLatencyAdjusted", (e) => {
|
|
11606
11652
|
let t = this.getLiveEdgeTime(e);
|
|
@@ -11608,7 +11654,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11608
11654
|
}), p(this, "getWallclockTime", (e) => {
|
|
11609
11655
|
let t = this.channelSyncInfo.get(e);
|
|
11610
11656
|
if (!t) return;
|
|
11611
|
-
let n =
|
|
11657
|
+
let n = performance.now() - t.localTimestamp;
|
|
11612
11658
|
return t.wallclockTime + n;
|
|
11613
11659
|
}), p(this, "getWallclockTimeLatencyAdjusted", (e) => {
|
|
11614
11660
|
let t = this.getWallclockTime(e);
|
|
@@ -11667,12 +11713,12 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11667
11713
|
};
|
|
11668
11714
|
}), p(this, "updateRtt", (e) => {
|
|
11669
11715
|
this.rtt = e;
|
|
11670
|
-
}), p(this, "isPlaybackSourceReadyToSeek", () => !this.isSeeking() && this.isSeekCooldownExpired() && this.isSyncAdjustmentActivated), p(this, "isPlaybackSourceReady", () => !this.isSeeking() && this.isSyncAdjustmentActivated), p(this, "isSeeking", () => this.playbackSource.isSeeking ? !this.isSeekTimeoutExpired() : !1), p(this, "isAllowedToSync", () => this.isPlaybackSourceReadyToSeek() && !!this.currentChannelId && !this.isSuspended && !this.playbackSource.isPaused), p(this, "isAllowedToSyncIgnoringCooldown", () => this.isPlaybackSourceReady() && !!this.currentChannelId && !this.isSuspended && !this.playbackSource.isPaused), p(this, "isSeekCooldownExpired", () =>
|
|
11716
|
+
}), p(this, "isPlaybackSourceReadyToSeek", () => !this.isSeeking() && this.isSeekCooldownExpired() && this.isSyncAdjustmentActivated), p(this, "isPlaybackSourceReady", () => !this.isSeeking() && this.isSyncAdjustmentActivated), p(this, "isSeeking", () => this.playbackSource.isSeeking ? !this.isSeekTimeoutExpired() : !1), p(this, "isAllowedToSync", () => this.isPlaybackSourceReadyToSeek() && !!this.currentChannelId && !this.isSuspended && !this.playbackSource.isPaused), p(this, "isAllowedToSyncIgnoringCooldown", () => this.isPlaybackSourceReady() && !!this.currentChannelId && !this.isSuspended && !this.playbackSource.isPaused), p(this, "isSeekCooldownExpired", () => this.lastSeekTime === void 0 || performance.now() - this.lastSeekTime > this.config.seek.cooldownMs), p(this, "isSeekTimeoutExpired", () => this.lastSeekTime === void 0 || performance.now() - this.lastSeekTime > this.config.seek.timeoutMs), p(this, "currentTimeshiftToleranceMs", () => Math.min(this.config.timeshift.toleranceMs * this.state.timeshiftToleranceMultiplier, this.config.timeshift.toleranceMaxMs)), p(this, "currentSeekToleranceMs", () => Math.min(this.state.seekToleranceMultiplier * this.getEffectiveSeekToleranceMs(), this.config.seek.toleranceMaxMs)), p(this, "currentEmergencySeekToleranceMs", () => Math.max(this.currentSeekToleranceMs() + this.getEffectiveSeekToleranceMs(), this.bufferSource.getTargetBufferTime())), p(this, "currentAheadToleranceMs", () => {
|
|
11671
11717
|
let e = Math.max(this.config.seek.aheadToleranceMs * this.state.seekToleranceMultiplier, 400), t = this.playbackSource.seekTime > 500 ? e : this.config.seek.aheadToleranceMs;
|
|
11672
11718
|
return Math.min(t, this.bufferSource.getTargetBufferTime() / 2);
|
|
11673
11719
|
}), p(this, "tryDecayMultipliers", () => {
|
|
11674
11720
|
if (!this.config.backoff.decayEnabled) return;
|
|
11675
|
-
let e =
|
|
11721
|
+
let e = performance.now();
|
|
11676
11722
|
if (e - this.lastDecayCheckTime < this.config.backoff.decayCheckInterval) return;
|
|
11677
11723
|
this.lastDecayCheckTime = e;
|
|
11678
11724
|
let t = this.seekAdjustmentTimestamps.length > 0 ? Math.max(...this.seekAdjustmentTimestamps) : 0, n = this.timeshiftAdjustmentTimestamps.length > 0 ? Math.max(...this.timeshiftAdjustmentTimestamps) : 0, r = e - Math.max(t, n, this.lastAdjustmentTime), i = Math.max(this.state.seekToleranceMultiplier, this.state.timeshiftToleranceMultiplier), a = this.config.seek.timeoutMs * this.config.backoff.decayCooldownMultiplier * i;
|
|
@@ -11701,7 +11747,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11701
11747
|
this.seekAdjustmentTimestamps = this.seekAdjustmentTimestamps.filter((e) => e > t), this.timeshiftAdjustmentTimestamps = this.timeshiftAdjustmentTimestamps.filter((e) => e > t);
|
|
11702
11748
|
}
|
|
11703
11749
|
}), p(this, "applyBackoff", () => {
|
|
11704
|
-
if (this.config.backoff.enabled && (this.lastAdjustmentTime =
|
|
11750
|
+
if (this.config.backoff.enabled && (this.lastAdjustmentTime = performance.now(), this.seekAdjustmentCount > 0 && this.seekAdjustmentCount % this.config.seek.backoffEveryN === 0)) {
|
|
11705
11751
|
let e = this.state.seekToleranceMultiplier, t = this.config.seek.toleranceMaxMs / this.getEffectiveSeekToleranceMs();
|
|
11706
11752
|
this.state.seekToleranceMultiplier = Math.min(this.state.seekToleranceMultiplier + this.config.seek.toleranceMultiplierStep, t), e !== this.state.seekToleranceMultiplier && this.logger.info("Backoff: Increasing seek tolerance multiplier", {
|
|
11707
11753
|
from: e,
|
|
@@ -11712,8 +11758,8 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11712
11758
|
}), p(this, "tryPlaybackRateSync", (e) => {
|
|
11713
11759
|
if (!this.config.playbackRate.enabled) return !1;
|
|
11714
11760
|
let t = this.playbackSource.playbackRate !== 1, n = Math.abs(e), r = t && n < this.config.playbackRate.stopDiff, i = !t && n >= this.config.playbackRate.startDiff;
|
|
11715
|
-
if (n > this.config.playbackRate.maxDiff) return t && (this.playbackSource.playbackRate = 1, this.lastPlaybackRateChangeTime =
|
|
11716
|
-
let a =
|
|
11761
|
+
if (n > this.config.playbackRate.maxDiff) return t && (this.playbackSource.playbackRate = 1, this.lastPlaybackRateChangeTime = performance.now()), !1;
|
|
11762
|
+
let a = performance.now(), o = a - this.lastPlaybackRateChangeTime >= this.config.playbackRate.cooldownMs;
|
|
11717
11763
|
if (r && o) return this.playbackSource.playbackRate = 1, this.lastPlaybackRateChangeTime = a, this.logger.info("Resetting playback rate to 1", { drift: e }), !0;
|
|
11718
11764
|
if (i && o) {
|
|
11719
11765
|
let t = e > 0 ? 1 + this.config.playbackRate.speed : 1 - this.config.playbackRate.speed;
|
|
@@ -11741,7 +11787,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11741
11787
|
return;
|
|
11742
11788
|
}
|
|
11743
11789
|
if (n >= this.getEffectiveSeekToleranceMs() || n < this.currentTimeshiftToleranceMs()) return;
|
|
11744
|
-
let r =
|
|
11790
|
+
let r = performance.now() - this.config.seek.timeoutMs * this.state.timeshiftToleranceMultiplier, i = this.timeshiftAdjustmentTimestamps.filter(xx(r)).length;
|
|
11745
11791
|
if (i && this.state.timeshiftToleranceMultiplier > 2) {
|
|
11746
11792
|
this.logger.debug("Too many timeshifts within sliding window", {
|
|
11747
11793
|
timeshiftCooldownThreshold: r,
|
|
@@ -11783,7 +11829,8 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11783
11829
|
};
|
|
11784
11830
|
}), p(this, "applySeek", (e, t) => {
|
|
11785
11831
|
let n = this.playbackSource.seekTime, r = this.buildSeekPlan(e, t);
|
|
11786
|
-
|
|
11832
|
+
if (!r) return;
|
|
11833
|
+
this.logger.info("Adjusting for drift using seek", {
|
|
11787
11834
|
drift: e,
|
|
11788
11835
|
currentTime: this.playbackSource.currentTime,
|
|
11789
11836
|
recoverySeekReason: t,
|
|
@@ -11794,19 +11841,23 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11794
11841
|
seekTime: n,
|
|
11795
11842
|
rtt: this.rtt,
|
|
11796
11843
|
seekToleranceMultiplier: this.state.seekToleranceMultiplier
|
|
11797
|
-
})
|
|
11844
|
+
});
|
|
11845
|
+
let i = performance.now();
|
|
11846
|
+
this.lastSeekTime = i, t && (this.hasPerformedRecoverySeekInCurrentRecoveryState = !0), this.clearRecoverySeekFlags(), this.driftSamples.clear(), this.seekAdjustmentTimestamps.push(i), this.seekAdjustmentCount++, this.playbackSource.currentTime = r.targetCurrentTime + Math.min(n, this.bufferSource.getTargetBufferTime()), this.applyBackoff();
|
|
11798
11847
|
}), p(this, "applyTimeshift", (e) => {
|
|
11799
11848
|
var t;
|
|
11800
11849
|
let n = (t = e == null ? this.drift : e) == null ? 0 : t;
|
|
11801
11850
|
if (!this.timestampOffset) return;
|
|
11802
11851
|
let r = n;
|
|
11803
|
-
|
|
11852
|
+
this.logger.info("Adjusting for drift using timeshift", {
|
|
11804
11853
|
drift: n,
|
|
11805
11854
|
syncAmount: r,
|
|
11806
11855
|
currentTime: this.playbackSource.currentTime,
|
|
11807
11856
|
rtt: this.rtt,
|
|
11808
11857
|
timeshiftToleranceMultiplier: this.state.timeshiftToleranceMultiplier
|
|
11809
|
-
}), this.timestampOffset += r
|
|
11858
|
+
}), this.timestampOffset += r;
|
|
11859
|
+
let i = performance.now();
|
|
11860
|
+
if (this.lastSeekTime = i, this.lastAdjustmentTime = i, !this.playbackSource.isPaused && (this.driftSamples.clear(), this.timeshiftAdjustmentTimestamps.push(i), this.timeshiftAdjustmentCount++, this.config.backoff.enabled && this.timeshiftAdjustmentCount > 0 && this.timeshiftAdjustmentCount % this.config.timeshift.backoffEveryN === 0)) {
|
|
11810
11861
|
let e = this.state.timeshiftToleranceMultiplier, t = this.config.timeshift.toleranceMaxMs / this.config.timeshift.toleranceMs;
|
|
11811
11862
|
this.state.timeshiftToleranceMultiplier = Math.min(this.state.timeshiftToleranceMultiplier + 1, t), e !== this.state.timeshiftToleranceMultiplier && this.logger.info("Backoff: Increasing timeshift tolerance multiplier", {
|
|
11812
11863
|
from: e,
|
|
@@ -11821,7 +11872,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11821
11872
|
if (!r && !this.isAllowedToSyncIgnoringCooldown() || r && (this.isSeeking() || !this.currentChannelId || this.isSuspended || this.playbackSource.isPaused) || (this.driftSamples.push(t), !this.isSeekCooldownExpired()) || !r && this.driftSamples.items().length < this.driftSamplesToCollect && Math.abs(t) < 2e3) return;
|
|
11822
11873
|
let i = r ? t : Mt(this.driftSamples.items());
|
|
11823
11874
|
if (!r && this.tryPlaybackRateSync(i) || !r && this.shouldSkipNormalSeek(i)) return;
|
|
11824
|
-
let a =
|
|
11875
|
+
let a = performance.now() - this.config.seek.timeoutMs * this.state.seekToleranceMultiplier, o = this.seekAdjustmentTimestamps.filter(xx(a)).length, s = this.currentEmergencySeekToleranceMs(), c = i > 0 && i >= s;
|
|
11825
11876
|
if (o && this.state.seekToleranceMultiplier > 2 && !r && !c) {
|
|
11826
11877
|
this.logger.debug("Too many seek adjustments within sliding window", {
|
|
11827
11878
|
seekCooldownThreshold: a,
|
|
@@ -11863,7 +11914,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11863
11914
|
}, typeof window < "u" && window.location.search.includes("playbackRateAdjustmentEnabled") && (this.config.playbackRate.enabled = !0), this.emitter.on("rtt", this.updateRtt), this.emitter.on("playback state", this.onPlaybackState), this.logger.info("SyncModule initialized", { config: this.config });
|
|
11864
11915
|
}
|
|
11865
11916
|
updateChannelSyncInfo(e, t) {
|
|
11866
|
-
let n =
|
|
11917
|
+
let n = performance.now(), r = this.channelSyncInfo.get(e), i = this.getLiveEdgeTime(e);
|
|
11867
11918
|
if (this.isSuspended) return;
|
|
11868
11919
|
if (!r || !i) {
|
|
11869
11920
|
this.logger.info("Initial timing info", { syncInfo: t }), this.channelSyncInfo.set(e, R(R({}, t), {}, {
|
|
@@ -11881,7 +11932,7 @@ var _x, vx = 5e3, yx = () => Ze() || Je(), bx = (e) => e && yx() ? 100 : 0, xx =
|
|
|
11881
11932
|
diffFromEstimated: c,
|
|
11882
11933
|
timestampDelta: o,
|
|
11883
11934
|
wallclockDelta: a,
|
|
11884
|
-
|
|
11935
|
+
localTimestampDelta: s
|
|
11885
11936
|
}), Math.abs(c) >= Math.max(this.bufferSource.getTargetBufferTime() * 2, 3e3)) {
|
|
11886
11937
|
this.logger.info("Resetting sync info", { diffFromEstimated: c }), this.channelSyncInfo.set(e, R(R({}, t), {}, {
|
|
11887
11938
|
localTimestamp: n,
|
|
@@ -12130,9 +12181,46 @@ var zx = (e, t, n) => {
|
|
|
12130
12181
|
duration: 0
|
|
12131
12182
|
});
|
|
12132
12183
|
};
|
|
12184
|
+
//#endregion
|
|
12185
|
+
//#region ../../libs/web-sdk/src/statisticsRounding.ts
|
|
12186
|
+
z();
|
|
12187
|
+
var Bx = ({ average: e, last: t, max: n, min: r }) => ({
|
|
12188
|
+
average: Math.round(e),
|
|
12189
|
+
last: Math.round(t),
|
|
12190
|
+
max: Math.round(n),
|
|
12191
|
+
min: Math.round(r)
|
|
12192
|
+
}), Vx = [
|
|
12193
|
+
"timeSpentBuffering",
|
|
12194
|
+
"timePerBufferingEvent",
|
|
12195
|
+
"drift",
|
|
12196
|
+
"seekTime",
|
|
12197
|
+
"totalSeekTime",
|
|
12198
|
+
"currentSeekToleranceMs",
|
|
12199
|
+
"currentAheadToleranceMs",
|
|
12200
|
+
"averageDrift",
|
|
12201
|
+
"videoKeyframeIntervalMs",
|
|
12202
|
+
"timeToConnected",
|
|
12203
|
+
"mediaSourceOpenTime"
|
|
12204
|
+
], Hx = [
|
|
12205
|
+
"videoDecodeTime",
|
|
12206
|
+
"audioDecodeTime",
|
|
12207
|
+
"videoTransportTime",
|
|
12208
|
+
"rtt"
|
|
12209
|
+
], Ux = (e) => typeof e == "object" && !!e && "min" in e && "max" in e && "average" in e && "last" in e, Wx = (e) => {
|
|
12210
|
+
let t = R({}, e);
|
|
12211
|
+
for (let e of Vx) {
|
|
12212
|
+
let n = t[e];
|
|
12213
|
+
typeof n == "number" && (t[e] = Math.round(n));
|
|
12214
|
+
}
|
|
12215
|
+
for (let e of Hx) {
|
|
12216
|
+
let n = t[e];
|
|
12217
|
+
Ux(n) && (t[e] = Bx(n));
|
|
12218
|
+
}
|
|
12219
|
+
return t;
|
|
12220
|
+
};
|
|
12133
12221
|
Ei(), z();
|
|
12134
|
-
var
|
|
12135
|
-
if (!
|
|
12222
|
+
var Gx = (e, t) => e && typeof e == "object" && t in e, Kx = (e) => !(typeof e != "object" || !Gx(e, "channelId") || typeof e.channelId != "string" || !Gx(e, "url") || typeof e.url != "string" || e.channelId.length === 0 || e.url.length === 0), qx = (e) => {
|
|
12223
|
+
if (!Kx(e)) throw new H("Invalid options", {
|
|
12136
12224
|
isFatal: !0,
|
|
12137
12225
|
code: "invalid_options"
|
|
12138
12226
|
});
|
|
@@ -12141,7 +12229,7 @@ var Bx = (e, t) => e && typeof e == "object" && t in e, Vx = (e) => !(typeof e !
|
|
|
12141
12229
|
let n = t;
|
|
12142
12230
|
n[e] === void 0 && delete n[e];
|
|
12143
12231
|
}), t;
|
|
12144
|
-
},
|
|
12232
|
+
}, Jx = (e) => {
|
|
12145
12233
|
if (typeof e != "object" || !e) throw Error("not an object");
|
|
12146
12234
|
if (!("video" in e)) throw Error("missing video in subscription");
|
|
12147
12235
|
if (!("audio" in e)) throw Error("missing audio in subscription");
|
|
@@ -12149,7 +12237,7 @@ var Bx = (e, t) => e && typeof e == "object" && t in e, Vx = (e) => !(typeof e !
|
|
|
12149
12237
|
return !0;
|
|
12150
12238
|
};
|
|
12151
12239
|
Ra(), zc(), Py(), m(), N();
|
|
12152
|
-
var
|
|
12240
|
+
var Yx = class {
|
|
12153
12241
|
constructor(e) {
|
|
12154
12242
|
var t = this;
|
|
12155
12243
|
p(this, "cache", /* @__PURE__ */ new Map()), p(this, "inFlight", /* @__PURE__ */ new Map()), p(this, "checkVideoSupport", function() {
|
|
@@ -12212,10 +12300,10 @@ var Wx = class {
|
|
|
12212
12300
|
}
|
|
12213
12301
|
};
|
|
12214
12302
|
Ei(), V(), m(), T(), z(), N(), j(), k();
|
|
12215
|
-
var
|
|
12303
|
+
var Xx = /* @__PURE__ */ new WeakMap(), Zx = /* @__PURE__ */ new WeakMap(), Qx = /* @__PURE__ */ new WeakMap(), $x = class e extends Ut {
|
|
12216
12304
|
constructor(t) {
|
|
12217
12305
|
var n, r;
|
|
12218
|
-
super(), n = this, p(this, "pictureInPicture", void 0), p(this, "drm", void 0), p(this, "browser", nt()), p(this, "options", void 0), p(this, "element", void 0), p(this, "playbackSource", void 0), p(this, "emitter", new Ut()), p(this, "logger", void 0), p(this, "modules", void 0), p(this, "clientIp", void 0), p(this, "sessionId", void 0), p(this, "clientId", nr()), p(this, "_channels", []), p(this, "createdAt",
|
|
12306
|
+
super(), n = this, p(this, "pictureInPicture", void 0), p(this, "drm", void 0), p(this, "browser", nt()), p(this, "options", void 0), p(this, "element", void 0), p(this, "playbackSource", void 0), p(this, "emitter", new Ut()), p(this, "logger", void 0), p(this, "modules", void 0), p(this, "clientIp", void 0), p(this, "sessionId", void 0), p(this, "clientId", nr()), p(this, "_channels", []), p(this, "createdAt", performance.now()), p(this, "offscreenCanvasElement", void 0), p(this, "webCodecsRenditionSupport", void 0), p(this, "hasCalledConnect", !1), p(this, "latestEmittedLanguages", []), p(this, "wakeLock", void 0), p(this, "pool", new ie(e.MAX_POOL_SIZE)), p(this, "userAgentInformation", new er()), p(this, "encryptedMediaExtensions", void 0), w(this, Xx, 0), w(this, Zx, []), p(this, "sampleProcessingSesssions", /* @__PURE__ */ new Map()), p(this, "sizes", /* @__PURE__ */ new Map()), p(this, "isSuspended", !0), p(this, "disconnectTimeout", void 0), p(this, "offscreenSubtitleInterval", void 0), w(this, Qx, void 0), p(this, "attach", (e) => {
|
|
12219
12307
|
var t;
|
|
12220
12308
|
(t = this.wakeLock) == null || t.attach(e), e.appendChild(this.element);
|
|
12221
12309
|
}), p(this, "setElement", (e) => {
|
|
@@ -12298,20 +12386,20 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12298
12386
|
}), p(this, "updateTextTracks", (e) => {
|
|
12299
12387
|
let t = e.filter((e) => e.codec === "webvtt");
|
|
12300
12388
|
t.forEach((e) => {
|
|
12301
|
-
if (!A(
|
|
12389
|
+
if (!A(Zx, this).find((t) => t.language === e.language)) {
|
|
12302
12390
|
if (this.modules.canvasModule) {
|
|
12303
12391
|
let t = this.modules.canvasModule.textTracks.addTextTrack(e.kind, e.label || e.language || "", e.language || "");
|
|
12304
|
-
A(
|
|
12392
|
+
A(Zx, this).push(t);
|
|
12305
12393
|
} else if (this.mediaElement instanceof HTMLVideoElement) {
|
|
12306
12394
|
let t = this.mediaElement.addTextTrack(e.kind, e.label || e.language, e.language);
|
|
12307
|
-
A(
|
|
12395
|
+
A(Zx, this).push(t);
|
|
12308
12396
|
}
|
|
12309
12397
|
}
|
|
12310
12398
|
});
|
|
12311
|
-
for (let e of A(
|
|
12399
|
+
for (let e of A(Zx, this)) t.find((t) => t.language === e.language) ? e.mode === "disabled" && (e.mode = "hidden") : e.mode = "disabled";
|
|
12312
12400
|
this.emit("text tracks", this.textTracks);
|
|
12313
12401
|
}), p(this, "cleanupTextTracks", (e = this.currentTime - 2e4) => {
|
|
12314
|
-
A(
|
|
12402
|
+
A(Zx, this).forEach((t) => {
|
|
12315
12403
|
if (t.cues) for (let n of t.cues) n.endTime * 1e3 < e - 2e3 && t.removeCue(n);
|
|
12316
12404
|
});
|
|
12317
12405
|
}), p(this, "filterRenditions", function() {
|
|
@@ -12384,11 +12472,15 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12384
12472
|
bitRate: this.abrEnabled ? r : this.options.get("maxVideoBitRate")
|
|
12385
12473
|
}, e));
|
|
12386
12474
|
}
|
|
12387
|
-
l
|
|
12388
|
-
|
|
12389
|
-
|
|
12390
|
-
|
|
12391
|
-
|
|
12475
|
+
if (l) {
|
|
12476
|
+
let e = this.modules.subscription.getTargetSubscription().audio.language, t = e == null ? this.options.get("language") : e;
|
|
12477
|
+
this.modules.subscription.setAudioConstraint({
|
|
12478
|
+
codec: l,
|
|
12479
|
+
bitRate: this.abrEnabled ? i : this.options.get("maxAudioBitRate"),
|
|
12480
|
+
language: t
|
|
12481
|
+
}), (t === void 0 || !d.includes(t)) && this.modules.subscription.setLanguage(d[0]);
|
|
12482
|
+
}
|
|
12483
|
+
this.alignSizeAndBitRate(this.targetSubscription);
|
|
12392
12484
|
let f = this.modules.subscription.getTargetSubscription();
|
|
12393
12485
|
this.emitter.emit("subscription changed", {
|
|
12394
12486
|
to: f,
|
|
@@ -12489,12 +12581,12 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12489
12581
|
this.hasCalledConnect ? this.unsuspend() : this.playbackState !== "playing" && (this._connect(), self.addEventListener("__vindral_register_debug__", this.registerDebugInstance), this.modules.timer.setInterval(() => this.cleanupTextTracks(), e.REMOVE_CUE_THRESHOLD)), (t = this.wakeLock) == null || t.enable(), this.playbackState === "paused" && (this.resetModules(), this.emitter.emit("flush buffers"), this.cleanupTextTracks(2 ** 53 - 1)), this.playbackSource.play();
|
|
12490
12582
|
}), p(this, "getStatistics", () => {
|
|
12491
12583
|
let e = Object.values(this.modules).reduce((e, t) => t && "getStatistics" in t ? R(R({}, e), t.getStatistics()) : e, this.getRuntimeInfo()), t = Math.round(this.timeActive > 0 ? (e.bytesReceived || 0) * 8 / (this.timeActive / 1e3) : 0), n = this.uptime / 36e5, r = Math.max(0, (e.connectCount || 0) - 1), i = n > 0 ? r / n : 0, a = this.timeActive / 6e4, o = Math.max(a, 1), s = a > 0 ? (e.seekAdjustmentCount || 0) / o : 0, c = a > 0 ? (e.timeshiftAdjustmentCount || 0) / o : 0;
|
|
12492
|
-
return R(R({}, e), {}, {
|
|
12584
|
+
return Wx(R(R({}, e), {}, {
|
|
12493
12585
|
averageBitRate: t,
|
|
12494
12586
|
reconnectsPerHour: i,
|
|
12495
12587
|
seekAdjustmentsPerMinute: s,
|
|
12496
12588
|
timeshiftAdjustmentsPerMinute: c
|
|
12497
|
-
});
|
|
12589
|
+
}));
|
|
12498
12590
|
}), p(this, "resetModules", () => {
|
|
12499
12591
|
Object.values(this.modules).forEach((e) => {
|
|
12500
12592
|
e && "reset" in e && e.reset();
|
|
@@ -12502,7 +12594,7 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12502
12594
|
}), p(this, "getRuntimeInfo", () => {
|
|
12503
12595
|
let e = this.modules.canvasModule instanceof Lb ? !0 : void 0;
|
|
12504
12596
|
return R({
|
|
12505
|
-
uptime:
|
|
12597
|
+
uptime: this.uptime,
|
|
12506
12598
|
version: void 0,
|
|
12507
12599
|
clientId: this.clientId,
|
|
12508
12600
|
sessionId: this.sessionId,
|
|
@@ -12535,9 +12627,9 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12535
12627
|
this.logger.info("Buffer filled - starting playback", { currentTime: e }), this.playbackSource.currentTime = e, this.modules.sync.activateSyncAdjustments(), this.playbackSource.isActivated = !0;
|
|
12536
12628
|
} else e === "drained" && this.playbackSource.isPaused && (this.playbackSource.isActivated = !1, this.modules.sync.deactivateSyncAdjustments());
|
|
12537
12629
|
}), p(this, "timeToFirstFrame", () => {
|
|
12538
|
-
let e = this.modules.playback.getFirstFrameTime(), t = this.modules.connection.
|
|
12539
|
-
if (t && e) return e - t;
|
|
12540
|
-
}), this.options = new Mx(R(R({}, yr),
|
|
12630
|
+
let e = this.modules.playback.getFirstFrameTime(), t = this.modules.connection.firstConnectStartTime;
|
|
12631
|
+
if (t !== void 0 && e !== void 0) return Math.round(e - t);
|
|
12632
|
+
}), this.options = new Mx(R(R({}, yr), qx(t))), t.telemetryEnabled === void 0 && ["localhost", "127.0.0.1"].includes(location.hostname) && this.options.set("telemetryEnabled", !1);
|
|
12541
12633
|
let i = {
|
|
12542
12634
|
channelId: this.options.get("channelId"),
|
|
12543
12635
|
audio: {
|
|
@@ -12550,7 +12642,7 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12550
12642
|
height: this.options.get("maxSize").height
|
|
12551
12643
|
}
|
|
12552
12644
|
}, a = cn.get();
|
|
12553
|
-
a.setLevel(this.options.get("logLevel")), a.setDebug(!1), this.logger = a, this.webCodecsRenditionSupport = new
|
|
12645
|
+
a.setLevel(this.options.get("logLevel")), a.setDebug(!1), this.logger = a, this.webCodecsRenditionSupport = new Yx(a), t.iosMediaElementEnabled !== void 0 && this.logger.warn("Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.");
|
|
12554
12646
|
let o = (r = t.streamToMediaElementEnabled) == null ? t.iosMediaElementEnabled : r;
|
|
12555
12647
|
o !== void 0 && (this.options.set("streamToMediaElementEnabled", o), this.options.set("iosMediaElementEnabled", o));
|
|
12556
12648
|
let s = t.mseEnabled !== void 0, c = t.decoders !== void 0;
|
|
@@ -12698,7 +12790,7 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12698
12790
|
a = Math.max(r - 2, 0);
|
|
12699
12791
|
break;
|
|
12700
12792
|
case "reconnect": if (r === 0 || this.modules.qualityOfService.timeSpentBufferingLast(6e3) > 5e3) {
|
|
12701
|
-
if (
|
|
12793
|
+
if (this.modules.connection.lastConnectionTime === void 0 || performance.now() - this.modules.connection.lastConnectionTime < this.modules.qualityOfService.fatalQosGraceTime() || this.modules.connection.getState() !== "connected") return;
|
|
12702
12794
|
this.modules.qualityOfService.incrementFatalQosCount(), this.logger.info("Reconnecting due to poor qos"), this.modules.connection.reconnect("Fatal QOS"), this.emitter.emit("adapted level");
|
|
12703
12795
|
return;
|
|
12704
12796
|
} else a = 0;
|
|
@@ -12710,14 +12802,16 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12710
12802
|
audio: R(R({}, this.targetSubscription.audio), d == null ? void 0 : d.audio)
|
|
12711
12803
|
})), this.emitter.emit("adapted level");
|
|
12712
12804
|
}), this.emitter.on("text track data", (e) => {
|
|
12713
|
-
let t = A(
|
|
12714
|
-
if (O(
|
|
12805
|
+
let t = A(Zx, this).find((t) => t.language === e.language), n = this.modules.sync.getTimeshiftOffset() / 1e3, r = n - A(Xx, this);
|
|
12806
|
+
if (O(Xx, this, n), t) {
|
|
12715
12807
|
if (t.cues) for (let e of t.cues) e.startTime -= r, e.endTime -= r;
|
|
12716
12808
|
for (let r of e.cues) {
|
|
12717
12809
|
let e = new VTTCue(r.startTime - n, r.endTime - n, r.text);
|
|
12718
12810
|
t.addCue(e);
|
|
12719
12811
|
}
|
|
12720
12812
|
}
|
|
12813
|
+
}), this.emitter.on("native text track selected", (e) => {
|
|
12814
|
+
this.textTrack = e;
|
|
12721
12815
|
}), this.emitter.on("received signal", (e) => {
|
|
12722
12816
|
let t = e, n = this.modules.subscription.getCurrentSubscription();
|
|
12723
12817
|
switch (this.logger.debug("received", R({}, t)), t.type) {
|
|
@@ -12725,19 +12819,19 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12725
12819
|
this.clientIp = t.ip;
|
|
12726
12820
|
break;
|
|
12727
12821
|
case "renditions":
|
|
12728
|
-
this.updateTextTracks(t.renditions), O(
|
|
12822
|
+
this.updateTextTracks(t.renditions), O(Qx, this, this.filterRenditions(t.renditions).then((e) => {
|
|
12729
12823
|
this.emitter.emit("renditions", {
|
|
12730
12824
|
renditions: e,
|
|
12731
12825
|
channelId: this.currentSubscription.channelId
|
|
12732
12826
|
}), this.emit("rendition levels", this.modules.renditions.getRenditionLevels()), this.emitLanguagesIfChanged();
|
|
12733
12827
|
}).finally(() => {
|
|
12734
|
-
O(
|
|
12828
|
+
O(Qx, this, void 0);
|
|
12735
12829
|
}));
|
|
12736
12830
|
break;
|
|
12737
12831
|
case "subscription changed":
|
|
12738
12832
|
var r;
|
|
12739
12833
|
try {
|
|
12740
|
-
|
|
12834
|
+
Jx(t.subscription);
|
|
12741
12835
|
} catch (e) {
|
|
12742
12836
|
this.emitter.emit("error", new H("Subscription failed validation", {
|
|
12743
12837
|
source: e instanceof Error ? e : void 0,
|
|
@@ -12852,7 +12946,7 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12852
12946
|
let le = function() {
|
|
12853
12947
|
var e = M(function* (e) {
|
|
12854
12948
|
let t = e.channelId;
|
|
12855
|
-
A(
|
|
12949
|
+
A(Qx, n) && (yield A(Qx, n));
|
|
12856
12950
|
let r = n.modules.renditions.getRendition(e.renditionId, t);
|
|
12857
12951
|
if (!Uc(e.flags)) {
|
|
12858
12952
|
if (Wc(e.flags)) {
|
|
@@ -12860,8 +12954,8 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
12860
12954
|
if (e.renditionId !== 0) {
|
|
12861
12955
|
let e = Zn(t);
|
|
12862
12956
|
if (e && e.language !== void 0) {
|
|
12863
|
-
let t = new tl().parse(e.content || ""), i = r / 1e3, a = A(
|
|
12864
|
-
if (O(
|
|
12957
|
+
let t = new tl().parse(e.content || ""), i = r / 1e3, a = A(Zx, n).find((t) => t.language === e.language), o = i - A(Xx, n);
|
|
12958
|
+
if (O(Xx, n, i), a) {
|
|
12865
12959
|
if (a.cues) for (let e of a.cues) e.startTime -= o, e.endTime -= o;
|
|
12866
12960
|
for (let e of t) {
|
|
12867
12961
|
let t = new VTTCue(e.startTime - i, e.endTime - i, e.text);
|
|
@@ -13004,7 +13098,7 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
13004
13098
|
this.modules.subscription.setLanguage(e), this.alignSizeAndBitRate(this.targetSubscription);
|
|
13005
13099
|
}
|
|
13006
13100
|
set textTrack(e) {
|
|
13007
|
-
e !== this.textTrack && (A(
|
|
13101
|
+
e !== this.textTrack && (A(Zx, this).forEach((t) => {
|
|
13008
13102
|
if (t.label === e) t.mode = "showing";
|
|
13009
13103
|
else {
|
|
13010
13104
|
if (t.mode === "showing" && t.cues) for (let e of [...t.cues]) t.removeCue(e);
|
|
@@ -13013,11 +13107,11 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
13013
13107
|
}), this.emitter.emit("text track", e));
|
|
13014
13108
|
}
|
|
13015
13109
|
get textTracks() {
|
|
13016
|
-
return A(
|
|
13110
|
+
return A(Zx, this).filter((e) => e.mode !== "disabled").map((e) => e.label);
|
|
13017
13111
|
}
|
|
13018
13112
|
get textTrack() {
|
|
13019
13113
|
var e;
|
|
13020
|
-
return (e = A(
|
|
13114
|
+
return (e = A(Zx, this).find((e) => e.mode === "showing")) == null ? void 0 : e.label;
|
|
13021
13115
|
}
|
|
13022
13116
|
get channelId() {
|
|
13023
13117
|
var e, t;
|
|
@@ -13098,10 +13192,10 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
13098
13192
|
return this.modules.qualityOfService.bufferingRatios();
|
|
13099
13193
|
}
|
|
13100
13194
|
get timeSpentBuffering() {
|
|
13101
|
-
return this.modules.qualityOfService.timeSpentBuffering();
|
|
13195
|
+
return Math.round(this.modules.qualityOfService.timeSpentBuffering());
|
|
13102
13196
|
}
|
|
13103
13197
|
get timeActive() {
|
|
13104
|
-
return this.modules.qualityOfService.timeActive();
|
|
13198
|
+
return Math.round(this.modules.qualityOfService.timeActive());
|
|
13105
13199
|
}
|
|
13106
13200
|
get mediaElement() {
|
|
13107
13201
|
return this.element;
|
|
@@ -13115,7 +13209,7 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
13115
13209
|
return (e = this.encryptedMediaExtensions) == null ? void 0 : e.getStatistics();
|
|
13116
13210
|
}
|
|
13117
13211
|
get uptime() {
|
|
13118
|
-
return
|
|
13212
|
+
return Math.round(performance.now() - this.createdAt);
|
|
13119
13213
|
}
|
|
13120
13214
|
suspend() {
|
|
13121
13215
|
this.isSuspended || (Object.values(this.modules).forEach((e) => {
|
|
@@ -13170,89 +13264,89 @@ var Gx = /* @__PURE__ */ new WeakMap(), Kx = /* @__PURE__ */ new WeakMap(), qx =
|
|
|
13170
13264
|
return t === void 0 ? this.shouldUseWebCodecs(e) : t;
|
|
13171
13265
|
}
|
|
13172
13266
|
};
|
|
13173
|
-
p(
|
|
13174
|
-
var
|
|
13267
|
+
p($x, "MAX_POOL_SIZE", 10), p($x, "DISCONNECT_TIMEOUT", 15 * 1e3), p($x, "REMOVE_CUE_THRESHOLD", 1e3 * 10);
|
|
13268
|
+
var eS = {
|
|
13175
13269
|
bar: "_bar_qm7bl_1",
|
|
13176
13270
|
hidden: "_hidden_qm7bl_47"
|
|
13177
|
-
},
|
|
13271
|
+
}, tS = "_withThumbnails_suenn_19", nS = {
|
|
13178
13272
|
"channel-selection-item": "_channel-selection-item_suenn_1",
|
|
13179
13273
|
"channel-selection-item-selected": "_channel-selection-item-selected_suenn_8",
|
|
13180
13274
|
"channel-selection-item-image": "_channel-selection-item-image_suenn_13",
|
|
13181
|
-
withThumbnails:
|
|
13275
|
+
withThumbnails: tS,
|
|
13182
13276
|
"hide-on-small": "_hide-on-small_suenn_27"
|
|
13183
|
-
},
|
|
13277
|
+
}, rS = { "icon-button": "_icon-button_5fg7v_1" }, iS = {
|
|
13184
13278
|
viewBox: "-10 -10 44 44",
|
|
13185
13279
|
content: "<g fill=\"none\" stroke=\"white\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\" clip-rule=\"evenodd\" />\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2\" />\n </g>"
|
|
13186
|
-
},
|
|
13280
|
+
}, aS = {
|
|
13187
13281
|
viewBox: "-160 -160 832 832",
|
|
13188
13282
|
content: "<path fill=\"white\" d=\"M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z\"/><path fill=\"white\" d=\"M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z\"/>"
|
|
13189
|
-
},
|
|
13283
|
+
}, oS = {
|
|
13190
13284
|
viewBox: "-6 -6 36 36",
|
|
13191
13285
|
content: "<path d=\"M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>"
|
|
13192
|
-
},
|
|
13286
|
+
}, sS = {
|
|
13193
13287
|
viewBox: "-10 -10 44 44",
|
|
13194
13288
|
content: "<g fill=\"none\" stroke=\"white\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\" />\n </svg>"
|
|
13195
|
-
},
|
|
13289
|
+
}, cS = {
|
|
13196
13290
|
viewBox: "-10 -10 44 44",
|
|
13197
13291
|
content: "\n <path stroke=\"white\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />"
|
|
13198
|
-
},
|
|
13292
|
+
}, lS = {
|
|
13199
13293
|
viewBox: "-12 -12 38 38",
|
|
13200
13294
|
content: "<g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-5.000000, -5.000000)\">\n <path d=\"M6,14 C5.45,14 5,14.45 5,15 L5,18 C5,18.55 5.45,19 6,19 L9,19 C9.55,19 10,18.55 10,18 C10,17.45 9.55,17 9,17 L7,17 L7,15 C7,14.45 6.55,14 6,14 Z M6,10 C6.55,10 7,9.55 7,9 L7,7 L9,7 C9.55,7 10,6.55 10,6 C10,5.45 9.55,5 9,5 L6,5 C5.45,5 5,5.45 5,6 L5,9 C5,9.55 5.45,10 6,10 Z M17,17 L15,17 C14.45,17 14,17.45 14,18 C14,18.55 14.45,19 15,19 L18,19 C18.55,19 19,18.55 19,18 L19,15 C19,14.45 18.55,14 18,14 C17.45,14 17,14.45 17,15 L17,17 Z M14,6 C14,6.55 14.45,7 15,7 L17,7 L17,9 C17,9.55 17.45,10 18,10 C18.55,10 19,9.55 19,9 L19,6 C19,5.45 18.55,5 18,5 L15,5 C14.45,5 14,5.45 14,6 Z\" fill=\"white\"></path>\n</g>"
|
|
13201
|
-
},
|
|
13295
|
+
}, uS = {
|
|
13202
13296
|
viewBox: "-12 -12 38 38",
|
|
13203
13297
|
content: "<g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-5.000000, -5.000000)\">\n <path d=\"M6,16 L8,16 L8,18 C8,18.55 8.45,19 9,19 C9.55,19 10,18.55 10,18 L10,15 C10,14.45 9.55,14 9,14 L6,14 C5.45,14 5,14.45 5,15 C5,15.55 5.45,16 6,16 Z M8,8 L6,8 C5.45,8 5,8.45 5,9 C5,9.55 5.45,10 6,10 L9,10 C9.55,10 10,9.55 10,9 L10,6 C10,5.45 9.55,5 9,5 C8.45,5 8,5.45 8,6 L8,8 Z M15,19 C15.55,19 16,18.55 16,18 L16,16 L18,16 C18.55,16 19,15.55 19,15 C19,14.45 18.55,14 18,14 L15,14 C14.45,14 14,14.45 14,15 L14,18 C14,18.55 14.45,19 15,19 Z M16,8 L16,6 C16,5.45 15.55,5 15,5 C14.45,5 14,5.45 14,6 L14,9 C14,9.55 14.45,10 15,10 L18,10 C18.55,10 19,9.55 19,9 C19,8.45 18.55,8 18,8 L16,8 Z\" fill=\"white\"></path>\n</g>"
|
|
13204
|
-
},
|
|
13298
|
+
}, dS = {
|
|
13205
13299
|
viewBox: "-10 -10 44 44",
|
|
13206
13300
|
content: "<path fill=\"white\" d=\"M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z\"/>"
|
|
13207
|
-
},
|
|
13301
|
+
}, fS = {
|
|
13208
13302
|
viewBox: "-10 -10 45 45",
|
|
13209
13303
|
content: "<path fill=\"white\" d=\"M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z\"/>"
|
|
13210
|
-
},
|
|
13304
|
+
}, pS = {
|
|
13211
13305
|
viewBox: "-8 -8 40 40",
|
|
13212
13306
|
content: "<path fill=\"white\" d=\"M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z\"/>"
|
|
13213
|
-
},
|
|
13307
|
+
}, mS = {
|
|
13214
13308
|
viewBox: "-8 -8 40 40",
|
|
13215
13309
|
content: "<path fill=\"white\" d=\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z\"/>"
|
|
13216
|
-
},
|
|
13310
|
+
}, hS = {
|
|
13217
13311
|
viewBox: "-8 -8 40 40",
|
|
13218
13312
|
content: "<path fill=\"white\" d=\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z\"></path>"
|
|
13219
|
-
},
|
|
13313
|
+
}, gS = {
|
|
13220
13314
|
viewBox: "-8 -8 40 40",
|
|
13221
13315
|
content: "<path fill=\"white\" d=\"M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3\"/>"
|
|
13222
13316
|
};
|
|
13223
13317
|
//#endregion
|
|
13224
13318
|
//#region ../../libs/player/src/IconButton.ts
|
|
13225
13319
|
m();
|
|
13226
|
-
var
|
|
13227
|
-
enter:
|
|
13228
|
-
exit:
|
|
13229
|
-
pip:
|
|
13230
|
-
channels:
|
|
13231
|
-
languages:
|
|
13232
|
-
textTracks:
|
|
13233
|
-
levels:
|
|
13234
|
-
oneToOne:
|
|
13235
|
-
mute:
|
|
13236
|
-
unmute:
|
|
13237
|
-
pause:
|
|
13238
|
-
play:
|
|
13239
|
-
airPlay:
|
|
13240
|
-
},
|
|
13320
|
+
var _S, vS = {
|
|
13321
|
+
enter: lS,
|
|
13322
|
+
exit: uS,
|
|
13323
|
+
pip: dS,
|
|
13324
|
+
channels: fS,
|
|
13325
|
+
languages: mS,
|
|
13326
|
+
textTracks: hS,
|
|
13327
|
+
levels: pS,
|
|
13328
|
+
oneToOne: cS,
|
|
13329
|
+
mute: iS,
|
|
13330
|
+
unmute: sS,
|
|
13331
|
+
pause: aS,
|
|
13332
|
+
play: oS,
|
|
13333
|
+
airPlay: gS
|
|
13334
|
+
}, yS = (_S = rS["icon-button"]) == null ? "" : _S, bS = class extends h {
|
|
13241
13335
|
constructor(e, t, n) {
|
|
13242
13336
|
super(document.createElement("div")), p(this, "iconElement", void 0), p(this, "setIcon", (e) => {
|
|
13243
|
-
this.iconElement.setAttribute("viewBox",
|
|
13244
|
-
}), p(this, "isHidden", () => this.element.style.display === "none"), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "show", () => void (this.element.style.display = "block")), p(this, "hide", () => void (this.element.style.display = "none")), this.element.style.cursor = "pointer", this.element.setAttribute("role", "button"), this.element.setAttribute("aria-label", e), this.iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"), this.iconElement.setAttribute("width", "40px"), this.iconElement.setAttribute("height", "40px"), this.iconElement.setAttribute("class",
|
|
13337
|
+
this.iconElement.setAttribute("viewBox", vS[e].viewBox), this.iconElement.innerHTML = vS[e].content;
|
|
13338
|
+
}), p(this, "isHidden", () => this.element.style.display === "none"), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "show", () => void (this.element.style.display = "block")), p(this, "hide", () => void (this.element.style.display = "none")), this.element.style.cursor = "pointer", this.element.setAttribute("role", "button"), this.element.setAttribute("aria-label", e), this.iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"), this.iconElement.setAttribute("width", "40px"), this.iconElement.setAttribute("height", "40px"), this.iconElement.setAttribute("class", yS), this.setIcon(t), this.element.addEventListener("click", n), this.element.appendChild(this.iconElement);
|
|
13245
13339
|
}
|
|
13246
|
-
},
|
|
13247
|
-
list:
|
|
13340
|
+
}, xS = "_list_1vkum_1", SS = "_hidden_1vkum_20", CS = {
|
|
13341
|
+
list: xS,
|
|
13248
13342
|
"list-item": "_list-item_1vkum_12",
|
|
13249
13343
|
"list-item-disabled": "_list-item-disabled_1vkum_16",
|
|
13250
|
-
hidden:
|
|
13344
|
+
hidden: SS
|
|
13251
13345
|
};
|
|
13252
13346
|
//#endregion
|
|
13253
13347
|
//#region ../../libs/player/src/List.ts
|
|
13254
13348
|
m();
|
|
13255
|
-
var
|
|
13349
|
+
var wS, TS, ES, DS, OS = (wS = CS.hidden) == null ? "" : wS, kS = (TS = CS.list) == null ? "" : TS, AS = (ES = CS["list-item"]) == null ? "" : ES, jS = (DS = CS["list-item-disabled"]) == null ? "" : DS, MS = class extends h {
|
|
13256
13350
|
constructor({ items: e, onItemClick: t, classNames: n = [], maxHeight: r }) {
|
|
13257
13351
|
super(document.createElement("div")), p(this, "onItemClick", void 0), p(this, "updateItems", (e) => {
|
|
13258
13352
|
for (; this.element.firstChild;) {
|
|
@@ -13261,11 +13355,11 @@ var yS, bS, xS, SS, CS = (yS = vS.hidden) == null ? "" : yS, wS = (bS = vS.list)
|
|
|
13261
13355
|
}
|
|
13262
13356
|
e.forEach((e) => {
|
|
13263
13357
|
let t = document.createElement("div");
|
|
13264
|
-
e.disabled || t.addEventListener("click", () => this.onItemClick(e)), t.className = [
|
|
13358
|
+
e.disabled || t.addEventListener("click", () => this.onItemClick(e)), t.className = [AS, e.disabled ? jS : ""].join(" "), t.appendChild(e.element()), this.element.appendChild(t);
|
|
13265
13359
|
});
|
|
13266
|
-
}), p(this, "hide", () => this.element.classList.add(
|
|
13360
|
+
}), p(this, "hide", () => this.element.classList.add(OS)), p(this, "show", () => this.element.classList.remove(OS)), this.element.className = [kS, ...n].join(" "), this.onItemClick = t, this.updateItems(e), r && (this.element.style.maxHeight = r);
|
|
13267
13361
|
}
|
|
13268
|
-
},
|
|
13362
|
+
}, NS = {
|
|
13269
13363
|
container: "_container_13xnz_1",
|
|
13270
13364
|
hidden: "_hidden_13xnz_6",
|
|
13271
13365
|
list: "_list_13xnz_10"
|
|
@@ -13273,7 +13367,7 @@ var yS, bS, xS, SS, CS = (yS = vS.hidden) == null ? "" : yS, wS = (bS = vS.list)
|
|
|
13273
13367
|
//#endregion
|
|
13274
13368
|
//#region ../../libs/player/src/ToggleListButton.ts
|
|
13275
13369
|
m();
|
|
13276
|
-
var
|
|
13370
|
+
var PS, FS, IS, LS = (PS = NS.list) == null ? "" : PS, RS = (FS = NS.hidden) == null ? "" : FS, zS = (IS = NS.container) == null ? "" : IS, BS = class extends h {
|
|
13277
13371
|
constructor({ label: e, items: t, onItemClick: n, iconButtonType: r, onToggle: i }) {
|
|
13278
13372
|
super(document.createElement("div")), p(this, "iconButton", void 0), p(this, "onItemClick", void 0), p(this, "onToggle", void 0), p(this, "maxHeight", void 0), p(this, "items", void 0), p(this, "list", void 0), p(this, "onButtonClick", () => {
|
|
13279
13373
|
this.toggleShowChannels(), this.onToggle(this);
|
|
@@ -13282,10 +13376,10 @@ var kS, AS, jS, MS = (kS = OS.list) == null ? "" : kS, NS = (AS = OS.hidden) ==
|
|
|
13282
13376
|
}), p(this, "handleItemClick", (e) => {
|
|
13283
13377
|
this.toggleShowChannels(), this.onItemClick(e);
|
|
13284
13378
|
}), p(this, "showList", () => {
|
|
13285
|
-
this.list = new
|
|
13379
|
+
this.list = new MS({
|
|
13286
13380
|
items: this.items,
|
|
13287
13381
|
onItemClick: this.handleItemClick,
|
|
13288
|
-
classNames: [
|
|
13382
|
+
classNames: [LS],
|
|
13289
13383
|
maxHeight: this.maxHeight
|
|
13290
13384
|
}), this.list.attach(this.element);
|
|
13291
13385
|
}), p(this, "hideList", () => {
|
|
@@ -13295,16 +13389,16 @@ var kS, AS, jS, MS = (kS = OS.list) == null ? "" : kS, NS = (AS = OS.hidden) ==
|
|
|
13295
13389
|
var t;
|
|
13296
13390
|
this.items = e, (t = this.list) == null || t.updateItems(e);
|
|
13297
13391
|
}), p(this, "isListVisible", () => this.list !== void 0), p(this, "hide", () => {
|
|
13298
|
-
|
|
13392
|
+
RS && this.element.classList.add(RS);
|
|
13299
13393
|
}), p(this, "show", () => {
|
|
13300
|
-
|
|
13301
|
-
}), this.element.className =
|
|
13394
|
+
RS && this.element.classList.remove(RS);
|
|
13395
|
+
}), this.element.className = zS, this.onItemClick = n, this.onToggle = i, this.items = t, this.iconButton = new bS(e, r, this.onButtonClick), this.iconButton.attach(this.element);
|
|
13302
13396
|
}
|
|
13303
13397
|
};
|
|
13304
13398
|
//#endregion
|
|
13305
13399
|
//#region ../../libs/player/src/ChannelSelectionButton.ts
|
|
13306
13400
|
V();
|
|
13307
|
-
var
|
|
13401
|
+
var VS, HS, US, WS, GS, KS = (VS = nS["hide-on-small"]) == null ? "" : VS, qS = (HS = nS["channel-selection-item"]) == null ? "" : HS, JS = (US = nS["channel-selection-item-selected"]) == null ? "" : US, YS = (WS = nS["channel-selection-item-image"]) == null ? "" : WS, XS = (GS = nS.withThumbnails) == null ? "" : GS, ZS = class extends BS {
|
|
13308
13402
|
constructor({ vindral: e, enabled: t, thumbnailsEnabled: n, thumbnailModule: r }) {
|
|
13309
13403
|
e.on("channels", () => {
|
|
13310
13404
|
let i = e.channels.map((t) => ({
|
|
@@ -13312,12 +13406,12 @@ var IS, LS, RS, zS, BS, VS = (IS = Zx["hide-on-small"]) == null ? "" : IS, HS =
|
|
|
13312
13406
|
disabled: !t.isLive,
|
|
13313
13407
|
element: () => {
|
|
13314
13408
|
let i = document.createElement("div");
|
|
13315
|
-
if (i.className = [
|
|
13316
|
-
i.classList.add(
|
|
13409
|
+
if (i.className = [qS, t.channelId === e.channelId ? JS : ""].join(" "), r && n) {
|
|
13410
|
+
i.classList.add(XS);
|
|
13317
13411
|
let e = document.createElement("p");
|
|
13318
13412
|
e.innerHTML = t.name, i.appendChild(e);
|
|
13319
13413
|
let n = r.getImageUrl(t), a = document.createElement("img");
|
|
13320
|
-
n && (a.className =
|
|
13414
|
+
n && (a.className = YS, a.src = n, i.style.backgroundImage = `url(${n})`);
|
|
13321
13415
|
} else i.innerHTML = t.name;
|
|
13322
13416
|
return i;
|
|
13323
13417
|
}
|
|
@@ -13329,16 +13423,16 @@ var IS, LS, RS, zS, BS, VS = (IS = Zx["hide-on-small"]) == null ? "" : IS, HS =
|
|
|
13329
13423
|
onItemClick: (t) => e.channelId = t.channel.channelId,
|
|
13330
13424
|
onToggle: x,
|
|
13331
13425
|
iconButtonType: "channels"
|
|
13332
|
-
}), this.element.classList.add(
|
|
13426
|
+
}), this.element.classList.add(KS), this.hide();
|
|
13333
13427
|
}
|
|
13334
|
-
},
|
|
13428
|
+
}, QS = {
|
|
13335
13429
|
"language-button-item": "_language-button-item_1dov5_1",
|
|
13336
13430
|
"language-button-item-selected": "_language-button-item-selected_1dov5_6"
|
|
13337
13431
|
};
|
|
13338
13432
|
//#endregion
|
|
13339
13433
|
//#region ../../libs/player/src/LanguageButton.ts
|
|
13340
13434
|
V();
|
|
13341
|
-
var
|
|
13435
|
+
var $S, eC, tC = ($S = QS["language-button-item"]) == null ? "" : $S, nC = (eC = QS["language-button-item-selected"]) == null ? "" : eC, rC = class extends BS {
|
|
13342
13436
|
constructor({ vindral: e }) {
|
|
13343
13437
|
e.on("languages", () => {
|
|
13344
13438
|
let t = e.languages.map((t) => ({
|
|
@@ -13346,7 +13440,7 @@ var JS, YS, XS = (JS = qS["language-button-item"]) == null ? "" : JS, ZS = (YS =
|
|
|
13346
13440
|
disabled: !1,
|
|
13347
13441
|
element: () => {
|
|
13348
13442
|
let n = document.createElement("div");
|
|
13349
|
-
return n.className = [
|
|
13443
|
+
return n.className = [tC, t === e.language ? nC : ""].join(" "), n.innerHTML = t, n;
|
|
13350
13444
|
}
|
|
13351
13445
|
}));
|
|
13352
13446
|
this.maxHeight = `calc(${Math.max(110, e.mediaElement.clientHeight)}px - 46px)`, this.updateItems(t), t.length > 0 ? this.show() : this.hide();
|
|
@@ -13362,25 +13456,25 @@ var JS, YS, XS = (JS = qS["language-button-item"]) == null ? "" : JS, ZS = (YS =
|
|
|
13362
13456
|
//#endregion
|
|
13363
13457
|
//#region ../../libs/player/src/PlayControls.ts
|
|
13364
13458
|
m();
|
|
13365
|
-
var
|
|
13459
|
+
var iC = class extends h {
|
|
13366
13460
|
constructor({ vindral: e }) {
|
|
13367
13461
|
super(document.createElement("div")), p(this, "vindral", void 0), p(this, "playButton", void 0), p(this, "updateState", () => {
|
|
13368
13462
|
this.playButton.setIcon(this.playIcon());
|
|
13369
13463
|
}), p(this, "onPlayClick", () => {
|
|
13370
13464
|
this.vindral.playbackState === "paused" ? this.vindral.play() : this.vindral.pause(), this.playButton.setIcon(this.playIcon());
|
|
13371
|
-
}), p(this, "playIcon", () => this.vindral.playbackState === "paused" ? "play" : "pause"), this.element.style.cursor = "pointer", this.vindral = e, this.playButton = new
|
|
13465
|
+
}), p(this, "playIcon", () => this.vindral.playbackState === "paused" ? "play" : "pause"), this.element.style.cursor = "pointer", this.vindral = e, this.playButton = new bS("Play", this.playIcon(), this.onPlayClick), this.playButton.attach(this.element);
|
|
13372
13466
|
}
|
|
13373
|
-
},
|
|
13374
|
-
item:
|
|
13467
|
+
}, aC = "_item_5vhyo_1", oC = "_title_5vhyo_10", sC = {
|
|
13468
|
+
item: aC,
|
|
13375
13469
|
"item-selected": "_item-selected_5vhyo_6",
|
|
13376
|
-
title:
|
|
13470
|
+
title: oC,
|
|
13377
13471
|
"sub-title": "_sub-title_5vhyo_14",
|
|
13378
13472
|
"hide-on-small": "_hide-on-small_5vhyo_21"
|
|
13379
13473
|
};
|
|
13380
13474
|
//#endregion
|
|
13381
13475
|
//#region ../../libs/player/src/RenditionLevelButton.ts
|
|
13382
13476
|
V();
|
|
13383
|
-
var
|
|
13477
|
+
var cC, lC, uC, dC, fC, pC = (cC = sC["hide-on-small"]) == null ? "" : cC, mC = (lC = sC.item) == null ? "" : lC, hC = (uC = sC["item-selected"]) == null ? "" : uC, gC = (dC = sC.title) == null ? "" : dC, _C = (fC = sC["sub-title"]) == null ? "" : fC, vC = class extends BS {
|
|
13384
13478
|
constructor({ vindral: e }) {
|
|
13385
13479
|
let t = () => {
|
|
13386
13480
|
let t = e.renditionLevels.map((t) => ({
|
|
@@ -13389,13 +13483,13 @@ var rC, iC, aC, oC, sC, cC = (rC = nC["hide-on-small"]) == null ? "" : rC, lC =
|
|
|
13389
13483
|
element: () => {
|
|
13390
13484
|
var n, r, i;
|
|
13391
13485
|
let a = document.createElement("div");
|
|
13392
|
-
a.className = [
|
|
13486
|
+
a.className = [mC, t === e.currentRenditionLevel ? hC : ""].join(" ");
|
|
13393
13487
|
let o = document.createElement("span"), s = document.createElement("span"), { audio: c, video: l } = t, u = l ? Zt(l) : void 0, d = c ? Qt(c.sampleRate) : void 0, f = Xt(((n = l == null ? void 0 : l.bitRate) == null ? 0 : n) + ((r = c == null ? void 0 : c.bitRate) == null ? 0 : r));
|
|
13394
13488
|
if (l) {
|
|
13395
13489
|
let e = l.frameRate[0] / l.frameRate[1], t = l.frameRate[0] % l.frameRate[1] === 0 ? `${e}p` : `${e.toFixed(2)}p`;
|
|
13396
13490
|
f += `, ${t}`;
|
|
13397
13491
|
}
|
|
13398
|
-
return o.innerHTML = (i = u == null ? d : u) == null ? "" : i, o.className =
|
|
13492
|
+
return o.innerHTML = (i = u == null ? d : u) == null ? "" : i, o.className = gC, s.innerHTML = f, s.className = _C, a.appendChild(o), a.appendChild(s), a;
|
|
13399
13493
|
}
|
|
13400
13494
|
}));
|
|
13401
13495
|
this.maxHeight = `calc(${Math.max(110, e.mediaElement.clientHeight)}px - 46px)`, this.updateItems(t);
|
|
@@ -13408,20 +13502,20 @@ var rC, iC, aC, oC, sC, cC = (rC = nC["hide-on-small"]) == null ? "" : rC, lC =
|
|
|
13408
13502
|
},
|
|
13409
13503
|
onToggle: x,
|
|
13410
13504
|
iconButtonType: "levels"
|
|
13411
|
-
}), this.element.classList.add(
|
|
13505
|
+
}), this.element.classList.add(pC);
|
|
13412
13506
|
}
|
|
13413
|
-
},
|
|
13507
|
+
}, yC = class extends h {
|
|
13414
13508
|
constructor() {
|
|
13415
13509
|
super(document.createElement("div")), this.element.style.flexGrow = "1";
|
|
13416
13510
|
}
|
|
13417
|
-
},
|
|
13511
|
+
}, bC = {
|
|
13418
13512
|
"text-track-button-item": "_text-track-button-item_1ry10_1",
|
|
13419
13513
|
"text-track-button-item-selected": "_text-track-button-item-selected_1ry10_6"
|
|
13420
13514
|
};
|
|
13421
13515
|
//#endregion
|
|
13422
13516
|
//#region ../../libs/player/src/TextTrackButton.ts
|
|
13423
13517
|
V();
|
|
13424
|
-
var
|
|
13518
|
+
var xC, SC, CC = (xC = bC["text-track-button-item"]) == null ? "" : xC, wC = (SC = bC["text-track-button-item-selected"]) == null ? "" : SC, TC = class extends BS {
|
|
13425
13519
|
constructor({ vindral: e }) {
|
|
13426
13520
|
e.on("text tracks", () => {
|
|
13427
13521
|
let t = e.textTracks.map((t) => ({
|
|
@@ -13429,7 +13523,7 @@ var gC, _C, vC = (gC = hC["text-track-button-item"]) == null ? "" : gC, yC = (_C
|
|
|
13429
13523
|
disabled: !1,
|
|
13430
13524
|
element: () => {
|
|
13431
13525
|
let n = document.createElement("div");
|
|
13432
|
-
return n.className = [
|
|
13526
|
+
return n.className = [CC, t === e.textTrack ? wC : ""].join(" "), n.innerHTML = t, n;
|
|
13433
13527
|
}
|
|
13434
13528
|
}));
|
|
13435
13529
|
t.length > 0 ? (t.push({
|
|
@@ -13437,7 +13531,7 @@ var gC, _C, vC = (gC = hC["text-track-button-item"]) == null ? "" : gC, yC = (_C
|
|
|
13437
13531
|
disabled: !1,
|
|
13438
13532
|
element: () => {
|
|
13439
13533
|
let t = document.createElement("div");
|
|
13440
|
-
return t.className = [
|
|
13534
|
+
return t.className = [CC, e.textTrack === void 0 ? wC : ""].join(" "), t.innerHTML = "Off", t;
|
|
13441
13535
|
}
|
|
13442
13536
|
}), this.show()) : this.hide(), this.maxHeight = `calc(${Math.max(110, e.mediaElement.clientHeight)}px - 46px)`, this.updateItems(t);
|
|
13443
13537
|
}), super({
|
|
@@ -13452,26 +13546,26 @@ var gC, _C, vC = (gC = hC["text-track-button-item"]) == null ? "" : gC, yC = (_C
|
|
|
13452
13546
|
//#endregion
|
|
13453
13547
|
//#region ../../libs/player/src/VolumeControls.ts
|
|
13454
13548
|
m();
|
|
13455
|
-
var
|
|
13549
|
+
var EC = class extends h {
|
|
13456
13550
|
constructor({ vindral: e }) {
|
|
13457
13551
|
super(document.createElement("div")), p(this, "vindral", void 0), p(this, "muteButton", void 0), p(this, "updateState", () => {
|
|
13458
13552
|
this.muteButton.setIcon(this.muteIcon());
|
|
13459
13553
|
}), p(this, "onMuteClick", () => {
|
|
13460
13554
|
this.vindral.muted = !this.vindral.muted, this.muteButton.setIcon(this.muteIcon());
|
|
13461
|
-
}), p(this, "muteIcon", () => this.vindral.muted ? "mute" : "unmute"), this.element.style.cursor = "pointer", this.vindral = e, this.muteButton = new
|
|
13555
|
+
}), p(this, "muteIcon", () => this.vindral.muted ? "mute" : "unmute"), this.element.style.cursor = "pointer", this.vindral = e, this.muteButton = new bS("Mute", this.muteIcon(), this.onMuteClick), this.muteButton.attach(this.element);
|
|
13462
13556
|
}
|
|
13463
13557
|
};
|
|
13464
13558
|
//#endregion
|
|
13465
13559
|
//#region ../../libs/player/src/Bar.ts
|
|
13466
13560
|
m();
|
|
13467
|
-
var
|
|
13561
|
+
var DC, OC, kC = (DC = eS.hidden) == null ? "" : DC, AC = (OC = eS.bar) == null ? "" : OC, jC = class extends h {
|
|
13468
13562
|
constructor({ vindral: e, onFullscreenClicked: t, onOneToOneClicked: n, onPipClicked: r, onAirPlayClicked: i, pauseButtonEnabled: a, fullscreenButtonEnabled: o, pipButtonEnabled: s, channelSelectionEnabled: c, channelSelectionThumbnails: l, renditionLevelsEnabled: u, languagesButtonEnabled: d, textTracksButtonEnabled: f, oneToOneButtonEnabled: m, thumbnailModule: h }) {
|
|
13469
13563
|
super(document.createElement("div")), p(this, "items", []), p(this, "isMouseInElement", !1), p(this, "volumeControls", void 0), p(this, "playControls", void 0), p(this, "oneToOneButton", void 0), p(this, "fullscreenButton", void 0), p(this, "airPlayButton", void 0), p(this, "containerElement", void 0), p(this, "hideLists", () => {
|
|
13470
13564
|
this.items.forEach((e) => "hideList" in e && e.hideList());
|
|
13471
|
-
}), p(this, "listButtons", () => this.items), p(this, "isAnyListOpen", () => this.items.filter((e) => "isListVisible" in e && e.isListVisible()).length > 0), p(this, "hasFocus", () => this.isMouseInElement || this.isAnyListOpen()), p(this, "isHidden", () => this.element.classList.contains(
|
|
13472
|
-
this.containerElement.style.setProperty("--vindral-control-bar-offset", "0px"), this.element.classList.add(
|
|
13565
|
+
}), p(this, "listButtons", () => this.items), p(this, "isAnyListOpen", () => this.items.filter((e) => "isListVisible" in e && e.isListVisible()).length > 0), p(this, "hasFocus", () => this.isMouseInElement || this.isAnyListOpen()), p(this, "isHidden", () => this.element.classList.contains(kC)), p(this, "hide", () => {
|
|
13566
|
+
this.containerElement.style.setProperty("--vindral-control-bar-offset", "0px"), this.element.classList.add(kC);
|
|
13473
13567
|
}), p(this, "show", () => {
|
|
13474
|
-
this.containerElement.style.setProperty("--vindral-control-bar-offset", "-96px"), this.element.classList.remove(
|
|
13568
|
+
this.containerElement.style.setProperty("--vindral-control-bar-offset", "-96px"), this.element.classList.remove(kC);
|
|
13475
13569
|
}), p(this, "addCastButton", () => {
|
|
13476
13570
|
let e = document.createElement("google-cast-launcher");
|
|
13477
13571
|
this.element.insertBefore(e, this.element.lastChild);
|
|
@@ -13481,65 +13575,65 @@ var SC, CC, wC = (SC = Yx.hidden) == null ? "" : SC, TC = (CC = Yx.bar) == null
|
|
|
13481
13575
|
this.playControls.updateState(), this.volumeControls.updateState();
|
|
13482
13576
|
}), p(this, "onToggle", (e) => {
|
|
13483
13577
|
this.listButtons().filter((t) => e !== t).forEach((e) => "hideList" in e && e.hideList());
|
|
13484
|
-
}), this.element.className = [
|
|
13485
|
-
let g = new
|
|
13486
|
-
this.oneToOneButton = new
|
|
13487
|
-
let _ = new
|
|
13578
|
+
}), this.element.className = [AC, kC].join(" ");
|
|
13579
|
+
let g = new yC();
|
|
13580
|
+
this.oneToOneButton = new bS("One to One", "oneToOne", n), this.fullscreenButton = new bS("Fullscreen", "enter", t), this.airPlayButton = new bS("AirPlay", "airPlay", i);
|
|
13581
|
+
let _ = new bS("Picture in Picture", "pip", r), v = new ZS({
|
|
13488
13582
|
vindral: e,
|
|
13489
13583
|
enabled: c,
|
|
13490
13584
|
thumbnailsEnabled: l,
|
|
13491
13585
|
thumbnailModule: l ? h : void 0
|
|
13492
|
-
}), y = new
|
|
13493
|
-
this.volumeControls = new
|
|
13586
|
+
}), y = new vC({ vindral: e });
|
|
13587
|
+
this.volumeControls = new EC({ vindral: e }), this.playControls = new iC({ vindral: e }), this.containerElement = e.mediaElement, a && e.getOptions().pauseSupportEnabled && this.playControls.attach(this.element), e.getOptions().media !== "video" && this.volumeControls.attach(this.element), g.attach(this.element);
|
|
13494
13588
|
let b = [];
|
|
13495
13589
|
if (d) {
|
|
13496
|
-
let t = new
|
|
13590
|
+
let t = new rC({ vindral: e });
|
|
13497
13591
|
t.attach(this.element), b.push(t);
|
|
13498
13592
|
}
|
|
13499
13593
|
if (f) {
|
|
13500
|
-
let t = new
|
|
13594
|
+
let t = new TC({ vindral: e });
|
|
13501
13595
|
t.attach(this.element), b.push(t);
|
|
13502
13596
|
}
|
|
13503
13597
|
y.attach(this.element), v.attach(this.element), _.attach(this.element), this.oneToOneButton.attach(this.element), this.fullscreenButton.attach(this.element), this.items.push(g, ...b, y, v, _, this.fullscreenButton), this.items.forEach((e) => "onToggle" in e && (e.onToggle = this.onToggle)), m || this.oneToOneButton.hide(), o || this.fullscreenButton.hide(), s || _.hide(), c || v.hide(), u || y.hide(), navigator.maxTouchPoints < 1 && (this.element.addEventListener("mouseenter", () => this.isMouseInElement = !0), this.element.addEventListener("mouseleave", () => this.isMouseInElement = !1));
|
|
13504
13598
|
}
|
|
13505
|
-
},
|
|
13599
|
+
}, MC = {
|
|
13506
13600
|
castoverlay: "_castoverlay_1n91l_1",
|
|
13507
13601
|
hidden: "_hidden_1n91l_20"
|
|
13508
13602
|
};
|
|
13509
13603
|
//#endregion
|
|
13510
13604
|
//#region ../../libs/player/src/CastOverlay.ts
|
|
13511
13605
|
m();
|
|
13512
|
-
var
|
|
13606
|
+
var NC, PC, FC = (NC = MC.hidden) == null ? "" : NC, IC = (PC = MC.castoverlay) == null ? "" : PC, LC = class extends h {
|
|
13513
13607
|
constructor() {
|
|
13514
13608
|
super(document.createElement("div")), p(this, "onClick", void 0), p(this, "setText", (e) => {
|
|
13515
13609
|
this.element.innerText = e;
|
|
13516
|
-
}), p(this, "hide", () => this.element.classList.add(
|
|
13610
|
+
}), p(this, "hide", () => this.element.classList.add(FC)), p(this, "show", () => this.element.classList.remove(FC)), this.element.classList.add(IC), this.element.classList.add(FC), this.element.innerText = "device";
|
|
13517
13611
|
}
|
|
13518
|
-
},
|
|
13519
|
-
button:
|
|
13612
|
+
}, RC = "_button_4ybkq_21", zC = "_image_4ybkq_98", BC = "_overlay_4ybkq_118", VC = "_selected_4ybkq_136", HC = "_hidden_4ybkq_141", UC = "_disabled_4ybkq_145", WC = {
|
|
13613
|
+
button: RC,
|
|
13520
13614
|
"show-and-scaleup": "_show-and-scaleup_4ybkq_1",
|
|
13521
|
-
image:
|
|
13522
|
-
overlay:
|
|
13523
|
-
selected:
|
|
13524
|
-
hidden:
|
|
13525
|
-
disabled:
|
|
13615
|
+
image: zC,
|
|
13616
|
+
overlay: BC,
|
|
13617
|
+
selected: VC,
|
|
13618
|
+
hidden: HC,
|
|
13619
|
+
disabled: UC
|
|
13526
13620
|
};
|
|
13527
13621
|
//#endregion
|
|
13528
13622
|
//#region ../../libs/player/src/ChannelSelectionImageButton.ts
|
|
13529
13623
|
m();
|
|
13530
|
-
var
|
|
13624
|
+
var GC, KC, qC, JC, YC, XC = (GC = WC.button) == null ? "" : GC, ZC = (KC = WC.hidden) == null ? "" : KC, QC = (qC = WC.overlay) == null ? "" : qC, $C = (JC = WC.image) == null ? "" : JC, ew = (YC = WC.selected) == null ? "" : YC, tw = class extends h {
|
|
13531
13625
|
constructor({ title: e, onClick: t, imageUrl: n, selected: r }) {
|
|
13532
13626
|
super(document.createElement("button")), p(this, "overlay", void 0), p(this, "imageHolder1", void 0), p(this, "imageHolder2", void 0), p(this, "isImageHolder1Active", !1), p(this, "loadingOverlay", void 0), p(this, "transition", (e, t, n) => {
|
|
13533
13627
|
t.style.backgroundImage = `url(${n})`, t.style.opacity = "1", e.style.opacity = "0";
|
|
13534
13628
|
}), p(this, "setSelected", (e) => {
|
|
13535
|
-
e ? this.element.classList.add(
|
|
13629
|
+
e ? this.element.classList.add(ew) : this.element.classList.remove(ew);
|
|
13536
13630
|
}), p(this, "setAnimationDelay", (e) => {
|
|
13537
13631
|
this.element.style.animationDelay = e;
|
|
13538
13632
|
}), p(this, "hideLoading", () => {
|
|
13539
13633
|
this.loadingOverlay.hide();
|
|
13540
|
-
}), p(this, "isHidden", () => this.element.classList.contains(
|
|
13634
|
+
}), p(this, "isHidden", () => this.element.classList.contains(ZC)), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "hide", () => this.element.classList.add(ZC)), p(this, "show", () => this.element.classList.remove(ZC)), this.element.className = XC, r && this.setSelected(r), this.element.onclick = () => {
|
|
13541
13635
|
this.loadingOverlay.show(), t();
|
|
13542
|
-
}, this.imageHolder1 = document.createElement("div"), this.imageHolder1.className =
|
|
13636
|
+
}, this.imageHolder1 = document.createElement("div"), this.imageHolder1.className = $C, this.imageHolder1.style.animationFillMode = "forwards", this.imageHolder2 = document.createElement("div"), this.imageHolder2.className = $C, this.imageHolder2.style.animationFillMode = "forwards", n && (this.imageHolder1.style.backgroundImage = `url(${n})`, this.isImageHolder1Active = !0), this.loadingOverlay = new re(), this.loadingOverlay.attach(this.element), this.loadingOverlay.hide(), this.element.appendChild(this.imageHolder1), this.element.appendChild(this.imageHolder2), this.overlay = document.createElement("div"), this.overlay.className = QC, this.element.appendChild(this.overlay);
|
|
13543
13637
|
let i = document.createElement("span");
|
|
13544
13638
|
i.innerHTML = e, this.element.appendChild(i), this.show();
|
|
13545
13639
|
}
|
|
@@ -13552,23 +13646,23 @@ var BC, VC, HC, UC, WC, GC = (BC = zC.button) == null ? "" : BC, KC = (VC = zC.h
|
|
|
13552
13646
|
this.isImageHolder1Active ? this.transition(this.imageHolder1, this.imageHolder2, e) : this.transition(this.imageHolder2, this.imageHolder1, e), this.isImageHolder1Active = !this.isImageHolder1Active;
|
|
13553
13647
|
}
|
|
13554
13648
|
}
|
|
13555
|
-
},
|
|
13649
|
+
}, nw = "_container_btpgd_13", rw = "_hidden_btpgd_37", iw = "_disabled_btpgd_41", aw = {
|
|
13556
13650
|
"channel-selection-overlay": "_channel-selection-overlay_btpgd_1",
|
|
13557
|
-
container:
|
|
13558
|
-
hidden:
|
|
13559
|
-
disabled:
|
|
13651
|
+
container: nw,
|
|
13652
|
+
hidden: rw,
|
|
13653
|
+
disabled: iw
|
|
13560
13654
|
};
|
|
13561
13655
|
//#endregion
|
|
13562
13656
|
//#region ../../libs/player/src/ChannelSelectionList.ts
|
|
13563
13657
|
m();
|
|
13564
|
-
var
|
|
13658
|
+
var ow, sw, cw = (ow = aw.hidden) == null ? "" : ow, lw = (sw = aw.container) == null ? "" : sw, uw = class extends h {
|
|
13565
13659
|
constructor({ vindral: e, thumbnailModule: t }) {
|
|
13566
13660
|
var n;
|
|
13567
13661
|
super(document.createElement("div")), p(this, "thumbnailModule", void 0), p(this, "list", void 0), p(this, "vindral", void 0), p(this, "setSelected", (e) => {
|
|
13568
13662
|
this.list.forEach((t, n) => {
|
|
13569
13663
|
t.setSelected(n.channelId === e.channelId);
|
|
13570
13664
|
}), e.channelId !== this.vindral.channelId && (this.vindral.channelId = e.channelId);
|
|
13571
|
-
}), p(this, "isHidden", () => this.element.classList.contains(
|
|
13665
|
+
}), p(this, "isHidden", () => this.element.classList.contains(cw)), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "hide", () => this.element.classList.add(cw)), p(this, "show", () => this.element.classList.remove(cw)), this.thumbnailModule = t, this.list = /* @__PURE__ */ new Map(), this.vindral = e, this.vindral.on("context switch", (e) => {
|
|
13572
13666
|
if (e === "completed") {
|
|
13573
13667
|
this.list.forEach((e) => e.hideLoading());
|
|
13574
13668
|
let e = this.vindral.channelId;
|
|
@@ -13583,7 +13677,7 @@ var tw, nw, rw = (tw = ew.hidden) == null ? "" : tw, iw = (nw = ew.container) ==
|
|
|
13583
13677
|
this.vindral.channels.forEach((t, n) => {
|
|
13584
13678
|
var r;
|
|
13585
13679
|
if (!t.isLive) return;
|
|
13586
|
-
let i = new
|
|
13680
|
+
let i = new tw({
|
|
13587
13681
|
title: t.name,
|
|
13588
13682
|
onClick: () => {
|
|
13589
13683
|
this.setSelected(t);
|
|
@@ -13598,35 +13692,35 @@ var tw, nw, rw = (tw = ew.hidden) == null ? "" : tw, iw = (nw = ew.container) ==
|
|
|
13598
13692
|
var n;
|
|
13599
13693
|
e.setImageUrl((n = this.thumbnailModule) == null ? void 0 : n.getImageUrl(t));
|
|
13600
13694
|
});
|
|
13601
|
-
}), this.element.className =
|
|
13695
|
+
}), this.element.className = lw, this.show();
|
|
13602
13696
|
}
|
|
13603
|
-
},
|
|
13697
|
+
}, dw = { fullscreen: "_fullscreen_1v9d8_1" };
|
|
13604
13698
|
V(), L(), m(), D();
|
|
13605
|
-
var
|
|
13699
|
+
var fw, pw = (fw = dw.fullscreen) == null ? "" : fw, mw = /* @__PURE__ */ new WeakSet(), hw = class e extends Ut {
|
|
13606
13700
|
constructor(t) {
|
|
13607
|
-
super(), I(this,
|
|
13701
|
+
super(), I(this, mw), p(this, "container", void 0), p(this, "unload", () => {
|
|
13608
13702
|
document.removeEventListener("webkitfullscreenchange", this.onChange), document.removeEventListener("mozfullscreenchange", this.onChange), document.removeEventListener("fullscreenchange", this.onChange), this.container.removeEventListener("webkitendfullscreen", this.onChange);
|
|
13609
|
-
}), p(this, "request", () => E(
|
|
13703
|
+
}), p(this, "request", () => E(mw, this, gw).call(this).catch((e) => {
|
|
13610
13704
|
throw this.onChange(), e;
|
|
13611
|
-
})), p(this, "exit", () => E(
|
|
13705
|
+
})), p(this, "exit", () => E(mw, this, _w).call(this).catch((e) => {
|
|
13612
13706
|
throw this.onChange(), e;
|
|
13613
|
-
})), p(this, "onChange", () => this.emit("on fullscreen change", this.isFullscreen())), p(this, "isFullscreen", () => !!(lt() || this.container.classList.contains(
|
|
13707
|
+
})), p(this, "onChange", () => this.emit("on fullscreen change", this.isFullscreen())), p(this, "isFullscreen", () => !!(lt() || this.container.classList.contains(pw))), p(this, "isSupported", () => e.isFullscreenApiSupported(this.container) || !this.isInIframe()), p(this, "isInIframe", () => window.location !== window.parent.location), this.container = t, document.addEventListener("webkitfullscreenchange", this.onChange), document.addEventListener("mozfullscreenchange", this.onChange), document.addEventListener("fullscreenchange", this.onChange), this.container.addEventListener("webkitendfullscreen", this.onChange);
|
|
13614
13708
|
}
|
|
13615
13709
|
};
|
|
13616
|
-
function
|
|
13710
|
+
function gw() {
|
|
13617
13711
|
let e = ut(this.container);
|
|
13618
|
-
return e ? e() : (this.container.classList.add(
|
|
13712
|
+
return e ? e() : (this.container.classList.add(pw), Promise.resolve());
|
|
13619
13713
|
}
|
|
13620
|
-
function
|
|
13714
|
+
function _w() {
|
|
13621
13715
|
let e = dt(this.container);
|
|
13622
|
-
return e ? e() : (this.container.classList.remove(
|
|
13716
|
+
return e ? e() : (this.container.classList.remove(pw), Promise.resolve());
|
|
13623
13717
|
}
|
|
13624
|
-
p(
|
|
13625
|
-
var
|
|
13718
|
+
p(hw, "isFullscreenApiSupported", (e) => ft(e));
|
|
13719
|
+
var vw = {
|
|
13626
13720
|
player: "_player_h0il1_1",
|
|
13627
13721
|
"one-to-one": "_one-to-one_h0il1_19",
|
|
13628
13722
|
"audio-only": "_audio-only_h0il1_28"
|
|
13629
|
-
},
|
|
13723
|
+
}, yw = {
|
|
13630
13724
|
playoverlay: "_playoverlay_1niji_1",
|
|
13631
13725
|
hidden: "_hidden_1niji_17",
|
|
13632
13726
|
"playoverlay-indicator": "_playoverlay-indicator_1niji_23"
|
|
@@ -13634,15 +13728,15 @@ var pw = {
|
|
|
13634
13728
|
//#endregion
|
|
13635
13729
|
//#region ../../libs/player/src/PlayOverlay.ts
|
|
13636
13730
|
m();
|
|
13637
|
-
var
|
|
13731
|
+
var bw, xw, Sw, Cw = (bw = yw.hidden) == null ? "" : bw, ww = (xw = yw.playoverlay) == null ? "" : xw, Tw = (Sw = yw["playoverlay-indicator"]) == null ? "" : Sw, Ew = class extends h {
|
|
13638
13732
|
constructor() {
|
|
13639
|
-
super(document.createElement("div")), p(this, "onClick", void 0), p(this, "indicator", document.createElement("div")), p(this, "isHidden", () => this.element.classList.contains(
|
|
13733
|
+
super(document.createElement("div")), p(this, "onClick", void 0), p(this, "indicator", document.createElement("div")), p(this, "isHidden", () => this.element.classList.contains(Cw)), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "hide", () => this.element.classList.add(Cw)), p(this, "show", () => this.element.classList.remove(Cw)), this.element.classList.add(ww), this.element.classList.add(Cw), this.indicator.className = Tw, this.element.appendChild(this.indicator), this.element.onclick = () => {
|
|
13640
13734
|
this.onClick && this.onClick();
|
|
13641
13735
|
};
|
|
13642
13736
|
}
|
|
13643
13737
|
};
|
|
13644
13738
|
V(), m(), N();
|
|
13645
|
-
var
|
|
13739
|
+
var Dw = class extends Ut {
|
|
13646
13740
|
constructor({ vindral: e, refreshEveryMs: t }) {
|
|
13647
13741
|
super(), p(this, "thumbnails", /* @__PURE__ */ new Map()), p(this, "interval", void 0), p(this, "channels", void 0), p(this, "refreshEveryMs", void 0), p(this, "isFetching", !1), p(this, "hasFetched", !1), this.channels = [...e.channels], this.refreshEveryMs = t || 6e4, e.on("channels", () => {
|
|
13648
13742
|
this.channels = [...e.channels], this.hasFetched || this.refreshThumbnails();
|
|
@@ -13690,7 +13784,7 @@ var Sw = class extends Ut {
|
|
|
13690
13784
|
}
|
|
13691
13785
|
};
|
|
13692
13786
|
V(), m(), N(), z();
|
|
13693
|
-
var
|
|
13787
|
+
var Ow, kw, Aw, jw = (Ow = vw.player) == null ? "" : Ow, Mw = (kw = vw["one-to-one"]) == null ? "" : kw, Nw = (Aw = vw["audio-only"]) == null ? "" : Aw, Pw = {
|
|
13694
13788
|
controlsEnabled: !0,
|
|
13695
13789
|
castEnabled: !0,
|
|
13696
13790
|
channelSelectionEnabled: !0,
|
|
@@ -13704,10 +13798,10 @@ var Cw, ww, Tw, Ew = (Cw = pw.player) == null ? "" : Cw, Dw = (ww = pw["one-to-o
|
|
|
13704
13798
|
airPlayButtonEnabled: !1,
|
|
13705
13799
|
playOverlayEnabled: !0,
|
|
13706
13800
|
bufferingOverlayEnabled: !0
|
|
13707
|
-
},
|
|
13801
|
+
}, Fw = (e) => !Kx(e), Iw = class {
|
|
13708
13802
|
constructor(e, t) {
|
|
13709
13803
|
var n = this, r, i, a, o;
|
|
13710
|
-
p(this, "core", void 0), p(this, "castSender", void 0), p(this, "airPlaySender", void 0), p(this, "options", void 0), p(this, "state", void 0), p(this, "playerElement", document.createElement("div")), p(this, "bufferingOverlay", void 0), p(this, "playOverlay", void 0), p(this, "castOverlay", new
|
|
13804
|
+
p(this, "core", void 0), p(this, "castSender", void 0), p(this, "airPlaySender", void 0), p(this, "options", void 0), p(this, "state", void 0), p(this, "playerElement", document.createElement("div")), p(this, "bufferingOverlay", void 0), p(this, "playOverlay", void 0), p(this, "castOverlay", new LC()), p(this, "channelSelectionList", void 0), p(this, "bar", void 0), p(this, "stateInterval", void 0), p(this, "thumbnailModule", void 0), p(this, "browser", nt()), p(this, "unload", () => {
|
|
13711
13805
|
var e, t;
|
|
13712
13806
|
this.stateInterval && window.clearInterval(this.stateInterval), this.core.unload(), this.playerElement.remove(), (e = this.thumbnailModule) == null || e.stop(), (t = this.airPlaySender) == null || t.unload();
|
|
13713
13807
|
}), p(this, "attach", (e) => {
|
|
@@ -13748,7 +13842,7 @@ var Cw, ww, Tw, Ew = (Cw = pw.player) == null ? "" : Cw, Dw = (ww = pw["one-to-o
|
|
|
13748
13842
|
this.core.muted = !e, this.core.muted = e;
|
|
13749
13843
|
}
|
|
13750
13844
|
}), p(this, "toggleOneToOne", () => {
|
|
13751
|
-
this.playerElement.classList.contains(
|
|
13845
|
+
this.playerElement.classList.contains(Mw) ? this.playerElement.classList.remove(Mw) : this.playerElement.classList.add(Mw);
|
|
13752
13846
|
}), p(this, "isInFullscreen", () => this.state.fullscreen.isFullscreen()), p(this, "enterFullscreen", M(function* () {
|
|
13753
13847
|
n.triggerUserInput(), n.iosHackResetSize(), n.bar.fullscreenButton.setIcon("exit"), yield n.state.fullscreen.request(), n.lockOrientation();
|
|
13754
13848
|
})), p(this, "exitFullscreen", () => (this.bar.fullscreenButton.setIcon("enter"), this.unlockOrientation(), this.state.fullscreen.exit())), p(this, "showAirPlayPicker", () => {
|
|
@@ -13767,20 +13861,20 @@ var Cw, ww, Tw, Ew = (Cw = pw.player) == null ? "" : Cw, Dw = (ww = pw["one-to-o
|
|
|
13767
13861
|
var e, t, n;
|
|
13768
13862
|
return !((e = this.options.channelSelectionOptions) == null || (e = e.barButton) == null) && e.enabled && !((t = this.options.channelSelectionOptions) == null || (t = t.barButton) == null) && t.thumbnails ? !0 : !!(!((n = this.options.channelSelectionOptions) == null || (n = n.list) == null) && n.enabled);
|
|
13769
13863
|
}), p(this, "bumpInteractTime", () => void (this.state.lastInteractionTime = Date.now()));
|
|
13770
|
-
let s = R(R({},
|
|
13771
|
-
this.options = s, this.playerElement.className =
|
|
13864
|
+
let s = R(R({}, Pw), t);
|
|
13865
|
+
this.options = s, this.playerElement.className = jw, Fw(e) ? this.core = e : this.core = new $x(e), this.state = {
|
|
13772
13866
|
isBuffering: !1,
|
|
13773
|
-
fullscreen: new
|
|
13867
|
+
fullscreen: new hw(!hw.isFullscreenApiSupported(this.playerElement) && hw.isFullscreenApiSupported(this.core.mediaElement) ? this.core.mediaElement : this.playerElement),
|
|
13774
13868
|
lastInteractionTime: 0
|
|
13775
|
-
}, this.needsThumbnails() && (this.thumbnailModule = new
|
|
13869
|
+
}, this.needsThumbnails() && (this.thumbnailModule = new Dw({
|
|
13776
13870
|
vindral: this.core,
|
|
13777
13871
|
refreshEveryMs: t == null ? void 0 : t.thumbnailUpdateInterval
|
|
13778
|
-
}), this.thumbnailModule.start()), !((r = this.options.channelSelectionOptions) == null || (r = r.list) == null) && r.enabled && (this.channelSelectionList = new
|
|
13872
|
+
}), this.thumbnailModule.start()), !((r = this.options.channelSelectionOptions) == null || (r = r.list) == null) && r.enabled && (this.channelSelectionList = new uw({
|
|
13779
13873
|
vindral: this.core,
|
|
13780
13874
|
thumbnailModule: this.thumbnailModule
|
|
13781
13875
|
}));
|
|
13782
13876
|
let c = (t == null ? void 0 : t.channelSelectionEnabled) || (t == null || (i = t.channelSelectionOptions) == null || (i = i.barButton) == null ? void 0 : i.enabled), l = t == null || (a = t.channelSelectionOptions) == null || (a = a.barButton) == null ? void 0 : a.thumbnails;
|
|
13783
|
-
this.bar = new
|
|
13877
|
+
this.bar = new jC(R(R({
|
|
13784
13878
|
vindral: this.core,
|
|
13785
13879
|
thumbnailModule: this.thumbnailModule
|
|
13786
13880
|
}, s), {}, {
|
|
@@ -13793,7 +13887,7 @@ var Cw, ww, Tw, Ew = (Cw = pw.player) == null ? "" : Cw, Dw = (ww = pw["one-to-o
|
|
|
13793
13887
|
onOneToOneClicked: () => this.toggleOneToOne(),
|
|
13794
13888
|
onPipClicked: () => void this.togglePip().catch((e) => console.error("error", e)),
|
|
13795
13889
|
onAirPlayClicked: () => this.showAirPlayPicker()
|
|
13796
|
-
})), this.core.media === "audio" && (this.playerElement.classList.add(
|
|
13890
|
+
})), this.core.media === "audio" && (this.playerElement.classList.add(Nw), this.options.controlsEnabled && this.bar.show());
|
|
13797
13891
|
let u = this.core.getCastOptions();
|
|
13798
13892
|
this.castSender = new cr({
|
|
13799
13893
|
background: this.options.castBackground,
|
|
@@ -13838,7 +13932,7 @@ var Cw, ww, Tw, Ew = (Cw = pw.player) == null ? "" : Cw, Dw = (ww = pw["one-to-o
|
|
|
13838
13932
|
break;
|
|
13839
13933
|
}
|
|
13840
13934
|
}
|
|
13841
|
-
}), this.core.attach(this.playerElement), this.castOverlay.attach(this.playerElement), this.options.bufferingOverlayEnabled && (this.bufferingOverlay = new re(), this.bufferingOverlay.attach(this.playerElement)), this.options.playOverlayEnabled && (this.playOverlay = new
|
|
13935
|
+
}), this.core.attach(this.playerElement), this.castOverlay.attach(this.playerElement), this.options.bufferingOverlayEnabled && (this.bufferingOverlay = new re(), this.bufferingOverlay.attach(this.playerElement)), this.options.playOverlayEnabled && (this.playOverlay = new Ew(), this.playOverlay.attach(this.playerElement), this.playOverlay.onClick = () => {
|
|
13842
13936
|
var e;
|
|
13843
13937
|
this.core.userInput(), (e = this.playOverlay) == null || e.hide();
|
|
13844
13938
|
}), this.channelSelectionList && this.channelSelectionList.attach(this.playerElement), this.bar.attach(this.playerElement), this.playerElement.addEventListener("click", this.onClick), this.playerElement.addEventListener("mousemove", this.onMouseMove), this.state.fullscreen.on("on fullscreen change", (e) => {
|
|
@@ -13850,4 +13944,4 @@ var Cw, ww, Tw, Ew = (Cw = pw.player) == null ? "" : Cw, Dw = (ww = pw["one-to-o
|
|
|
13850
13944
|
}
|
|
13851
13945
|
};
|
|
13852
13946
|
//#endregion
|
|
13853
|
-
export { Ur as AUTHENTICATION_EXPIRED_CODE, Hr as AUTHENTICATION_FAILED_CODE, Ml as ApiClient, Wr as CHANNEL_NOT_FOUND_CODE, Vr as CONNECTION_FAILED_AFTER_RETRIES_CODE, Br as CONNECTION_FAILED_CODE, cr as CastSender, Xr as DISCONNECTED_BY_EDGE, Kr as INACTIVITY_CODE, Gr as NO_INCOMING_DATA,
|
|
13947
|
+
export { Ur as AUTHENTICATION_EXPIRED_CODE, Hr as AUTHENTICATION_FAILED_CODE, Ml as ApiClient, Wr as CHANNEL_NOT_FOUND_CODE, Vr as CONNECTION_FAILED_AFTER_RETRIES_CODE, Br as CONNECTION_FAILED_CODE, cr as CastSender, Xr as DISCONNECTED_BY_EDGE, Kr as INACTIVITY_CODE, Gr as NO_INCOMING_DATA, Iw as Player, $x as Vindral, H as VindralError };
|