Rules-For-Quantumult-X/Scripts/AdBlock/Other/Youtube.js

2053 lines
75 KiB
JavaScript

// Author Maasea Build: 2023/12/14 22:12:09
(() => {
(function (i) {
function e() {
}
function t() {
}
var r = String.fromCharCode, n = {}.toString, s = n.call(i.SharedArrayBuffer), o = n(), a = i.Uint8Array,
f = a || Array, l = a ? ArrayBuffer : f, h = l.isView || function (b) {
return b && "length" in b
}, y = n.call(l.prototype);
l = t.prototype;
var p = i.TextEncoder, c = new (a ? Uint16Array : f)(32);
e.prototype.decode = function (b) {
if (!h(b)) {
var A = n.call(b);
if (A !== y && A !== s && A !== o) throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");
b = a ? new f(b) : b || []
}
for (var N = A = "", d = 0, I = b.length | 0, G = I - 32 | 0, B, x, E = 0, J = 0, V, U = 0, D = -1; d < I;) {
for (B = d <= G ? 32 : I - d | 0; U < B; d = d + 1 | 0, U = U + 1 | 0) {
switch (x = b[d] & 255, x >> 4) {
case 15:
if (V = b[d = d + 1 | 0] & 255, V >> 6 !== 2 || 247 < x) {
d = d - 1 | 0;
break
}
E = (x & 7) << 6 | V & 63, J = 5, x = 256;
case 14:
V = b[d = d + 1 | 0] & 255, E <<= 6, E |= (x & 15) << 6 | V & 63, J = V >> 6 === 2 ? J + 4 | 0 : 24, x = x + 256 & 768;
case 13:
case 12:
V = b[d = d + 1 | 0] & 255, E <<= 6, E |= (x & 31) << 6 | V & 63, J = J + 7 | 0, d < I && V >> 6 === 2 && E >> J && 1114112 > E ? (x = E, E = E - 65536 | 0, 0 <= E && (D = (E >> 10) + 55296 | 0, x = (E & 1023) + 56320 | 0, 31 > U ? (c[U] = D, U = U + 1 | 0, D = -1) : (V = D, D = x, x = V))) : (x >>= 8, d = d - x - 1 | 0, x = 65533), E = J = 0, B = d <= G ? 32 : I - d | 0;
default:
c[U] = x;
continue;
case 11:
case 10:
case 9:
case 8:
}
c[U] = 65533
}
if (N += r(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10], c[11], c[12], c[13], c[14], c[15], c[16], c[17], c[18], c[19], c[20], c[21], c[22], c[23], c[24], c[25], c[26], c[27], c[28], c[29], c[30], c[31]), 32 > U && (N = N.slice(0, U - 32 | 0)), d < I) {
if (c[0] = D, U = ~D >>> 31, D = -1, N.length < A.length) continue
} else D !== -1 && (N += r(D));
A += N, N = ""
}
return A
}, l.encode = function (b) {
b = b === void 0 ? "" : "" + b;
var A = b.length | 0, N = new f((A << 1) + 8 | 0), d, I = 0, G = !a;
for (d = 0; d < A; d = d + 1 | 0, I = I + 1 | 0) {
var B = b.charCodeAt(d) | 0;
if (127 >= B) N[I] = B; else {
if (2047 >= B) N[I] = 192 | B >> 6; else {
e:{
if (55296 <= B) if (56319 >= B) {
var x = b.charCodeAt(d = d + 1 | 0) | 0;
if (56320 <= x && 57343 >= x) {
if (B = (B << 10) + x - 56613888 | 0, 65535 < B) {
N[I] = 240 | B >> 18, N[I = I + 1 | 0] = 128 | B >> 12 & 63, N[I = I + 1 | 0] = 128 | B >> 6 & 63, N[I = I + 1 | 0] = 128 | B & 63;
continue
}
break e
}
B = 65533
} else 57343 >= B && (B = 65533);
!G && d << 1 < I && d << 1 < (I - 7 | 0) && (G = !0, x = new f(3 * A), x.set(N), N = x)
}
N[I] = 224 | B >> 12, N[I = I + 1 | 0] = 128 | B >> 6 & 63
}
N[I = I + 1 | 0] = 128 | B & 63
}
}
return a ? N.subarray(0, I) : N.slice(0, I)
}, p || (i.TextDecoder = e, i.TextEncoder = t)
})(globalThis);
function Z(i) {
let e = typeof i;
if (e == "object") {
if (Array.isArray(i)) return "array";
if (i === null) return "null"
}
return e
}
function Be(i) {
return i !== null && typeof i == "object" && !Array.isArray(i)
}
var L = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), z = [];
for (let i = 0; i < L.length; i++) z[L[i].charCodeAt(0)] = i;
z["-".charCodeAt(0)] = L.indexOf("+");
z["_".charCodeAt(0)] = L.indexOf("/");
function Oe(i) {
let e = i.length * 3 / 4;
i[i.length - 2] == "=" ? e -= 2 : i[i.length - 1] == "=" && (e -= 1);
let t = new Uint8Array(e), r = 0, n = 0, s, o = 0;
for (let a = 0; a < i.length; a++) {
if (s = z[i.charCodeAt(a)], s === void 0) switch (i[a]) {
case"=":
n = 0;
case`
`:
case"\r":
case" ":
case" ":
continue;
default:
throw Error("invalid base64 string.")
}
switch (n) {
case 0:
o = s, n = 1;
break;
case 1:
t[r++] = o << 2 | (s & 48) >> 4, o = s, n = 2;
break;
case 2:
t[r++] = (o & 15) << 4 | (s & 60) >> 2, o = s, n = 3;
break;
case 3:
t[r++] = (o & 3) << 6 | s, n = 0;
break
}
}
if (n == 1) throw Error("invalid base64 string.");
return t.subarray(0, r)
}
function Fe(i) {
let e = "", t = 0, r, n = 0;
for (let s = 0; s < i.length; s++) switch (r = i[s], t) {
case 0:
e += L[r >> 2], n = (r & 3) << 4, t = 1;
break;
case 1:
e += L[n | r >> 4], n = (r & 15) << 2, t = 2;
break;
case 2:
e += L[n | r >> 6], e += L[r & 63], t = 0;
break
}
return t && (e += L[n], e += "=", t == 1 && (e += "=")), e
}
var O;
(function (i) {
i.symbol = Symbol.for("protobuf-ts/unknown"), i.onRead = (t, r, n, s, o) => {
(e(r) ? r[i.symbol] : r[i.symbol] = []).push({no: n, wireType: s, data: o})
}, i.onWrite = (t, r, n) => {
for (let {no: s, wireType: o, data: a} of i.list(r)) n.tag(s, o).raw(a)
}, i.list = (t, r) => {
if (e(t)) {
let n = t[i.symbol];
return r ? n.filter(s => s.no == r) : n
}
return []
}, i.last = (t, r) => i.list(t, r).slice(-1)[0];
let e = t => t && Array.isArray(t[i.symbol])
})(O || (O = {}));
var g;
(function (i) {
i[i.Varint = 0] = "Varint", i[i.Bit64 = 1] = "Bit64", i[i.LengthDelimited = 2] = "LengthDelimited", i[i.StartGroup = 3] = "StartGroup", i[i.EndGroup = 4] = "EndGroup", i[i.Bit32 = 5] = "Bit32"
})(g || (g = {}));
function Ee() {
let i = 0, e = 0;
for (let r = 0; r < 28; r += 7) {
let n = this.buf[this.pos++];
if (i |= (n & 127) << r, !(n & 128)) return this.assertBounds(), [i, e]
}
let t = this.buf[this.pos++];
if (i |= (t & 15) << 28, e = (t & 112) >> 4, !(t & 128)) return this.assertBounds(), [i, e];
for (let r = 3; r <= 31; r += 7) {
let n = this.buf[this.pos++];
if (e |= (n & 127) << r, !(n & 128)) return this.assertBounds(), [i, e]
}
throw new Error("invalid varint")
}
function H(i, e, t) {
for (let s = 0; s < 28; s = s + 7) {
let o = i >>> s, a = !(!(o >>> 7) && e == 0), f = (a ? o | 128 : o) & 255;
if (t.push(f), !a) return
}
let r = i >>> 28 & 15 | (e & 7) << 4, n = !!(e >> 3);
if (t.push((n ? r | 128 : r) & 255), !!n) {
for (let s = 3; s < 31; s = s + 7) {
let o = e >>> s, a = !!(o >>> 7), f = (a ? o | 128 : o) & 255;
if (t.push(f), !a) return
}
t.push(e >>> 31 & 1)
}
}
var Q = (1 << 16) * (1 << 16);
function de(i) {
let e = i[0] == "-";
e && (i = i.slice(1));
let t = 1e6, r = 0, n = 0;
function s(o, a) {
let f = Number(i.slice(o, a));
n *= t, r = r * t + f, r >= Q && (n = n + (r / Q | 0), r = r % Q)
}
return s(-24, -18), s(-18, -12), s(-12, -6), s(-6), [e, r, n]
}
function ee(i, e) {
if (e <= 2097151) return "" + (Q * e + (i >>> 0));
let t = i & 16777215, r = (i >>> 24 | e << 8) >>> 0 & 16777215, n = e >> 16 & 65535,
s = t + r * 6777216 + n * 6710656, o = r + n * 8147497, a = n * 2, f = 1e7;
s >= f && (o += Math.floor(s / f), s %= f), o >= f && (a += Math.floor(o / f), o %= f);
function l(h, y) {
let p = h ? String(h) : "";
return y ? "0000000".slice(p.length) + p : p
}
return l(a, 0) + l(o, a) + l(s, 1)
}
function me(i, e) {
if (i >= 0) {
for (; i > 127;) e.push(i & 127 | 128), i = i >>> 7;
e.push(i)
} else {
for (let t = 0; t < 9; t++) e.push(i & 127 | 128), i = i >> 7;
e.push(1)
}
}
function Re() {
let i = this.buf[this.pos++], e = i & 127;
if (!(i & 128)) return this.assertBounds(), e;
if (i = this.buf[this.pos++], e |= (i & 127) << 7, !(i & 128)) return this.assertBounds(), e;
if (i = this.buf[this.pos++], e |= (i & 127) << 14, !(i & 128)) return this.assertBounds(), e;
if (i = this.buf[this.pos++], e |= (i & 127) << 21, !(i & 128)) return this.assertBounds(), e;
i = this.buf[this.pos++], e |= (i & 15) << 28;
for (let t = 5; i & 128 && t < 10; t++) i = this.buf[this.pos++];
if (i & 128) throw new Error("invalid varint");
return this.assertBounds(), e >>> 0
}
function _e() {
let i = new DataView(new ArrayBuffer(8));
return globalThis.BigInt !== void 0 && typeof i.getBigInt64 == "function" && typeof i.getBigUint64 == "function" && typeof i.setBigInt64 == "function" && typeof i.setBigUint64 == "function" ? {
MIN: BigInt("-9223372036854775808"),
MAX: BigInt("9223372036854775807"),
UMIN: BigInt("0"),
UMAX: BigInt("18446744073709551615"),
C: BigInt,
V: i
} : void 0
}
var k = _e();
function Ae(i) {
if (!i) throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")
}
var Se = /^-?[0-9]+$/, te = (1 << 16) * (1 << 16), re = class {
constructor(e, t) {
this.lo = e | 0, this.hi = t | 0
}
isZero() {
return this.lo == 0 && this.hi == 0
}
toNumber() {
let e = this.hi * te + (this.lo >>> 0);
if (!Number.isSafeInteger(e)) throw new Error("cannot convert to safe number");
return e
}
}, T = class extends re {
static from(e) {
if (k) switch (typeof e) {
case"string":
if (e == "0") return this.ZERO;
if (e == "") throw new Error("string is no integer");
e = k.C(e);
case"number":
if (e === 0) return this.ZERO;
e = k.C(e);
case"bigint":
if (!e) return this.ZERO;
if (e < k.UMIN) throw new Error("signed value for ulong");
if (e > k.UMAX) throw new Error("ulong too large");
return k.V.setBigUint64(0, e, !0), new T(k.V.getInt32(0, !0), k.V.getInt32(4, !0))
} else switch (typeof e) {
case"string":
if (e == "0") return this.ZERO;
if (e = e.trim(), !Se.test(e)) throw new Error("string is no integer");
let [t, r, n] = de(e);
if (t) throw new Error("signed value");
return new T(r, n);
case"number":
if (e == 0) return this.ZERO;
if (!Number.isSafeInteger(e)) throw new Error("number is no integer");
if (e < 0) throw new Error("signed value for ulong");
return new T(e, e / te)
}
throw new Error("unknown value " + typeof e)
}
toString() {
return k ? this.toBigInt().toString() : ee(this.lo, this.hi)
}
toBigInt() {
return Ae(k), k.V.setInt32(0, this.lo, !0), k.V.setInt32(4, this.hi, !0), k.V.getBigUint64(0, !0)
}
};
T.ZERO = new T(0, 0);
var w = class extends re {
static from(e) {
if (k) switch (typeof e) {
case"string":
if (e == "0") return this.ZERO;
if (e == "") throw new Error("string is no integer");
e = k.C(e);
case"number":
if (e === 0) return this.ZERO;
e = k.C(e);
case"bigint":
if (!e) return this.ZERO;
if (e < k.MIN) throw new Error("ulong too small");
if (e > k.MAX) throw new Error("ulong too large");
return k.V.setBigInt64(0, e, !0), new w(k.V.getInt32(0, !0), k.V.getInt32(4, !0))
} else switch (typeof e) {
case"string":
if (e == "0") return this.ZERO;
if (e = e.trim(), !Se.test(e)) throw new Error("string is no integer");
let [t, r, n] = de(e), s = new w(r, n);
return t ? s.negate() : s;
case"number":
if (e == 0) return this.ZERO;
if (!Number.isSafeInteger(e)) throw new Error("number is no integer");
return e > 0 ? new w(e, e / te) : new w(-e, -e / te).negate()
}
throw new Error("unknown value " + typeof e)
}
isNegative() {
return (this.hi & 2147483648) !== 0
}
negate() {
let e = ~this.hi, t = this.lo;
return t ? t = ~t + 1 : e += 1, new w(t, e)
}
toString() {
if (k) return this.toBigInt().toString();
if (this.isNegative()) {
let e = this.negate();
return "-" + ee(e.lo, e.hi)
}
return ee(this.lo, this.hi)
}
toBigInt() {
return Ae(k), k.V.setInt32(0, this.lo, !0), k.V.setInt32(4, this.hi, !0), k.V.getBigInt64(0, !0)
}
};
w.ZERO = new w(0, 0);
var Ue = {readUnknownField: !0, readerFactory: i => new pe(i)};
function Ve(i) {
return i ? Object.assign(Object.assign({}, Ue), i) : Ue
}
var pe = class {
constructor(e, t) {
this.varint64 = Ee, this.uint32 = Re, this.buf = e, this.len = e.length, this.pos = 0, this.view = new DataView(e.buffer, e.byteOffset, e.byteLength), this.textDecoder = t ?? new TextDecoder("utf-8", {
fatal: !0,
ignoreBOM: !0
})
}
tag() {
let e = this.uint32(), t = e >>> 3, r = e & 7;
if (t <= 0 || r < 0 || r > 5) throw new Error("illegal tag: field no " + t + " wire type " + r);
return [t, r]
}
skip(e) {
let t = this.pos;
switch (e) {
case g.Varint:
for (; this.buf[this.pos++] & 128;) ;
break;
case g.Bit64:
this.pos += 4;
case g.Bit32:
this.pos += 4;
break;
case g.LengthDelimited:
let r = this.uint32();
this.pos += r;
break;
case g.StartGroup:
let n;
for (; (n = this.tag()[1]) !== g.EndGroup;) this.skip(n);
break;
default:
throw new Error("cant skip wire type " + e)
}
return this.assertBounds(), this.buf.subarray(t, this.pos)
}
assertBounds() {
if (this.pos > this.len) throw new RangeError("premature EOF")
}
int32() {
return this.uint32() | 0
}
sint32() {
let e = this.uint32();
return e >>> 1 ^ -(e & 1)
}
int64() {
return new w(...this.varint64())
}
uint64() {
return new T(...this.varint64())
}
sint64() {
let [e, t] = this.varint64(), r = -(e & 1);
return e = (e >>> 1 | (t & 1) << 31) ^ r, t = t >>> 1 ^ r, new w(e, t)
}
bool() {
let [e, t] = this.varint64();
return e !== 0 || t !== 0
}
fixed32() {
return this.view.getUint32((this.pos += 4) - 4, !0)
}
sfixed32() {
return this.view.getInt32((this.pos += 4) - 4, !0)
}
fixed64() {
return new T(this.sfixed32(), this.sfixed32())
}
sfixed64() {
return new w(this.sfixed32(), this.sfixed32())
}
float() {
return this.view.getFloat32((this.pos += 4) - 4, !0)
}
double() {
return this.view.getFloat64((this.pos += 8) - 8, !0)
}
bytes() {
let e = this.uint32(), t = this.pos;
return this.pos += e, this.assertBounds(), this.buf.subarray(t, t + e)
}
string() {
return this.textDecoder.decode(this.bytes())
}
};
function m(i, e) {
if (!i) throw new Error(e)
}
var Ye = 34028234663852886e22, Ze = -34028234663852886e22, ze = 4294967295, Qe = 2147483647, He = -2147483648;
function M(i) {
if (typeof i != "number") throw new Error("invalid int 32: " + typeof i);
if (!Number.isInteger(i) || i > Qe || i < He) throw new Error("invalid int 32: " + i)
}
function W(i) {
if (typeof i != "number") throw new Error("invalid uint 32: " + typeof i);
if (!Number.isInteger(i) || i > ze || i < 0) throw new Error("invalid uint 32: " + i)
}
function j(i) {
if (typeof i != "number") throw new Error("invalid float 32: " + typeof i);
if (Number.isFinite(i) && (i > Ye || i < Ze)) throw new Error("invalid float 32: " + i)
}
var De = {writeUnknownFields: !0, writerFactory: () => new ge};
function Ce(i) {
return i ? Object.assign(Object.assign({}, De), i) : De
}
var ge = class {
constructor(e) {
this.stack = [], this.textEncoder = e ?? new TextEncoder, this.chunks = [], this.buf = []
}
finish() {
this.chunks.push(new Uint8Array(this.buf));
let e = 0;
for (let n = 0; n < this.chunks.length; n++) e += this.chunks[n].length;
let t = new Uint8Array(e), r = 0;
for (let n = 0; n < this.chunks.length; n++) t.set(this.chunks[n], r), r += this.chunks[n].length;
return this.chunks = [], t
}
fork() {
return this.stack.push({chunks: this.chunks, buf: this.buf}), this.chunks = [], this.buf = [], this
}
join() {
let e = this.finish(), t = this.stack.pop();
if (!t) throw new Error("invalid state, fork stack empty");
return this.chunks = t.chunks, this.buf = t.buf, this.uint32(e.byteLength), this.raw(e)
}
tag(e, t) {
return this.uint32((e << 3 | t) >>> 0)
}
raw(e) {
return this.buf.length && (this.chunks.push(new Uint8Array(this.buf)), this.buf = []), this.chunks.push(e), this
}
uint32(e) {
for (W(e); e > 127;) this.buf.push(e & 127 | 128), e = e >>> 7;
return this.buf.push(e), this
}
int32(e) {
return M(e), me(e, this.buf), this
}
bool(e) {
return this.buf.push(e ? 1 : 0), this
}
bytes(e) {
return this.uint32(e.byteLength), this.raw(e)
}
string(e) {
let t = this.textEncoder.encode(e);
return this.uint32(t.byteLength), this.raw(t)
}
float(e) {
j(e);
let t = new Uint8Array(4);
return new DataView(t.buffer).setFloat32(0, e, !0), this.raw(t)
}
double(e) {
let t = new Uint8Array(8);
return new DataView(t.buffer).setFloat64(0, e, !0), this.raw(t)
}
fixed32(e) {
W(e);
let t = new Uint8Array(4);
return new DataView(t.buffer).setUint32(0, e, !0), this.raw(t)
}
sfixed32(e) {
M(e);
let t = new Uint8Array(4);
return new DataView(t.buffer).setInt32(0, e, !0), this.raw(t)
}
sint32(e) {
return M(e), e = (e << 1 ^ e >> 31) >>> 0, me(e, this.buf), this
}
sfixed64(e) {
let t = new Uint8Array(8), r = new DataView(t.buffer), n = w.from(e);
return r.setInt32(0, n.lo, !0), r.setInt32(4, n.hi, !0), this.raw(t)
}
fixed64(e) {
let t = new Uint8Array(8), r = new DataView(t.buffer), n = T.from(e);
return r.setInt32(0, n.lo, !0), r.setInt32(4, n.hi, !0), this.raw(t)
}
int64(e) {
let t = w.from(e);
return H(t.lo, t.hi, this.buf), this
}
sint64(e) {
let t = w.from(e), r = t.hi >> 31, n = t.lo << 1 ^ r, s = (t.hi << 1 | t.lo >>> 31) ^ r;
return H(n, s, this.buf), this
}
uint64(e) {
let t = T.from(e);
return H(t.lo, t.hi, this.buf), this
}
};
var Le = {emitDefaultValues: !1, enumAsInteger: !1, useProtoFieldName: !1, prettySpaces: 0},
Pe = {ignoreUnknownFields: !1};
function $e(i) {
return i ? Object.assign(Object.assign({}, Pe), i) : Pe
}
function Me(i) {
return i ? Object.assign(Object.assign({}, Le), i) : Le
}
var K = Symbol.for("protobuf-ts/message-type");
function be(i) {
let e = !1, t = [];
for (let r = 0; r < i.length; r++) {
let n = i.charAt(r);
n == "_" ? e = !0 : /\d/.test(n) ? (t.push(n), e = !0) : e ? (t.push(n.toUpperCase()), e = !1) : r == 0 ? t.push(n.toLowerCase()) : t.push(n)
}
return t.join("")
}
var u;
(function (i) {
i[i.DOUBLE = 1] = "DOUBLE", i[i.FLOAT = 2] = "FLOAT", i[i.INT64 = 3] = "INT64", i[i.UINT64 = 4] = "UINT64", i[i.INT32 = 5] = "INT32", i[i.FIXED64 = 6] = "FIXED64", i[i.FIXED32 = 7] = "FIXED32", i[i.BOOL = 8] = "BOOL", i[i.STRING = 9] = "STRING", i[i.BYTES = 12] = "BYTES", i[i.UINT32 = 13] = "UINT32", i[i.SFIXED32 = 15] = "SFIXED32", i[i.SFIXED64 = 16] = "SFIXED64", i[i.SINT32 = 17] = "SINT32", i[i.SINT64 = 18] = "SINT64"
})(u || (u = {}));
var F;
(function (i) {
i[i.BIGINT = 0] = "BIGINT", i[i.STRING = 1] = "STRING", i[i.NUMBER = 2] = "NUMBER"
})(F || (F = {}));
var v;
(function (i) {
i[i.NO = 0] = "NO", i[i.PACKED = 1] = "PACKED", i[i.UNPACKED = 2] = "UNPACKED"
})(v || (v = {}));
function Ke(i) {
var e, t, r, n;
return i.localName = (e = i.localName) !== null && e !== void 0 ? e : be(i.name), i.jsonName = (t = i.jsonName) !== null && t !== void 0 ? t : be(i.name), i.repeat = (r = i.repeat) !== null && r !== void 0 ? r : v.NO, i.opt = (n = i.opt) !== null && n !== void 0 ? n : i.repeat || i.oneof ? !1 : i.kind == "message", i
}
function qe(i) {
if (typeof i != "object" || i === null || !i.hasOwnProperty("oneofKind")) return !1;
switch (typeof i.oneofKind) {
case"string":
return i[i.oneofKind] === void 0 ? !1 : Object.keys(i).length == 2;
case"undefined":
return Object.keys(i).length == 1;
default:
return !1
}
}
var ne = class {
constructor(e) {
var t;
this.fields = (t = e.fields) !== null && t !== void 0 ? t : []
}
prepare() {
if (this.data) return;
let e = [], t = [], r = [];
for (let n of this.fields) if (n.oneof) r.includes(n.oneof) || (r.push(n.oneof), e.push(n.oneof), t.push(n.oneof)); else switch (t.push(n.localName), n.kind) {
case"scalar":
case"enum":
(!n.opt || n.repeat) && e.push(n.localName);
break;
case"message":
n.repeat && e.push(n.localName);
break;
case"map":
e.push(n.localName);
break
}
this.data = {req: e, known: t, oneofs: Object.values(r)}
}
is(e, t, r = !1) {
if (t < 0) return !0;
if (e == null || typeof e != "object") return !1;
this.prepare();
let n = Object.keys(e), s = this.data;
if (n.length < s.req.length || s.req.some(o => !n.includes(o)) || !r && n.some(o => !s.known.includes(o))) return !1;
if (t < 1) return !0;
for (let o of s.oneofs) {
let a = e[o];
if (!qe(a)) return !1;
if (a.oneofKind === void 0) continue;
let f = this.fields.find(l => l.localName === a.oneofKind);
if (!f || !this.field(a[a.oneofKind], f, r, t)) return !1
}
for (let o of this.fields) if (o.oneof === void 0 && !this.field(e[o.localName], o, r, t)) return !1;
return !0
}
field(e, t, r, n) {
let s = t.repeat;
switch (t.kind) {
case"scalar":
return e === void 0 ? t.opt : s ? this.scalars(e, t.T, n, t.L) : this.scalar(e, t.T, t.L);
case"enum":
return e === void 0 ? t.opt : s ? this.scalars(e, u.INT32, n) : this.scalar(e, u.INT32);
case"message":
return e === void 0 ? !0 : s ? this.messages(e, t.T(), r, n) : this.message(e, t.T(), r, n);
case"map":
if (typeof e != "object" || e === null) return !1;
if (n < 2) return !0;
if (!this.mapKeys(e, t.K, n)) return !1;
switch (t.V.kind) {
case"scalar":
return this.scalars(Object.values(e), t.V.T, n, t.V.L);
case"enum":
return this.scalars(Object.values(e), u.INT32, n);
case"message":
return this.messages(Object.values(e), t.V.T(), r, n)
}
break
}
return !0
}
message(e, t, r, n) {
return r ? t.isAssignable(e, n) : t.is(e, n)
}
messages(e, t, r, n) {
if (!Array.isArray(e)) return !1;
if (n < 2) return !0;
if (r) {
for (let s = 0; s < e.length && s < n; s++) if (!t.isAssignable(e[s], n - 1)) return !1
} else for (let s = 0; s < e.length && s < n; s++) if (!t.is(e[s], n - 1)) return !1;
return !0
}
scalar(e, t, r) {
let n = typeof e;
switch (t) {
case u.UINT64:
case u.FIXED64:
case u.INT64:
case u.SFIXED64:
case u.SINT64:
switch (r) {
case F.BIGINT:
return n == "bigint";
case F.NUMBER:
return n == "number" && !isNaN(e);
default:
return n == "string"
}
case u.BOOL:
return n == "boolean";
case u.STRING:
return n == "string";
case u.BYTES:
return e instanceof Uint8Array;
case u.DOUBLE:
case u.FLOAT:
return n == "number" && !isNaN(e);
default:
return n == "number" && Number.isInteger(e)
}
}
scalars(e, t, r, n) {
if (!Array.isArray(e)) return !1;
if (r < 2) return !0;
if (Array.isArray(e)) {
for (let s = 0; s < e.length && s < r; s++) if (!this.scalar(e[s], t, n)) return !1
}
return !0
}
mapKeys(e, t, r) {
let n = Object.keys(e);
switch (t) {
case u.INT32:
case u.FIXED32:
case u.SFIXED32:
case u.SINT32:
case u.UINT32:
return this.scalars(n.slice(0, r).map(s => parseInt(s)), t, r);
case u.BOOL:
return this.scalars(n.slice(0, r).map(s => s == "true" ? !0 : s == "false" ? !1 : s), t, r);
default:
return this.scalars(n, t, r, F.STRING)
}
}
};
function R(i, e) {
switch (e) {
case F.BIGINT:
return i.toBigInt();
case F.NUMBER:
return i.toNumber();
default:
return i.toString()
}
}
var ie = class {
constructor(e) {
this.info = e
}
prepare() {
var e;
if (this.fMap === void 0) {
this.fMap = {};
let t = (e = this.info.fields) !== null && e !== void 0 ? e : [];
for (let r of t) this.fMap[r.name] = r, this.fMap[r.jsonName] = r, this.fMap[r.localName] = r
}
}
assert(e, t, r) {
if (!e) {
let n = Z(r);
throw (n == "number" || n == "boolean") && (n = r.toString()), new Error(`Cannot parse JSON ${n} for ${this.info.typeName}#${t}`)
}
}
read(e, t, r) {
this.prepare();
let n = [];
for (let [s, o] of Object.entries(e)) {
let a = this.fMap[s];
if (!a) {
if (!r.ignoreUnknownFields) throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${s}`);
continue
}
let f = a.localName, l;
if (a.oneof) {
if (n.includes(a.oneof)) throw new Error(`Multiple members of the oneof group "${a.oneof}" of ${this.info.typeName} are present in JSON.`);
n.push(a.oneof), l = t[a.oneof] = {oneofKind: f}
} else l = t;
if (a.kind == "map") {
if (o === null) continue;
this.assert(Be(o), a.name, o);
let h = l[f];
for (let [y, p] of Object.entries(o)) {
this.assert(p !== null, a.name + " map value", null);
let c;
switch (a.V.kind) {
case"message":
c = a.V.T().internalJsonRead(p, r);
break;
case"enum":
if (c = this.enum(a.V.T(), p, a.name, r.ignoreUnknownFields), c === !1) continue;
break;
case"scalar":
c = this.scalar(p, a.V.T, a.V.L, a.name);
break
}
this.assert(c !== void 0, a.name + " map value", p);
let b = y;
a.K == u.BOOL && (b = b == "true" ? !0 : b == "false" ? !1 : b), b = this.scalar(b, a.K, F.STRING, a.name).toString(), h[b] = c
}
} else if (a.repeat) {
if (o === null) continue;
this.assert(Array.isArray(o), a.name, o);
let h = l[f];
for (let y of o) {
this.assert(y !== null, a.name, null);
let p;
switch (a.kind) {
case"message":
p = a.T().internalJsonRead(y, r);
break;
case"enum":
if (p = this.enum(a.T(), y, a.name, r.ignoreUnknownFields), p === !1) continue;
break;
case"scalar":
p = this.scalar(y, a.T, a.L, a.name);
break
}
this.assert(p !== void 0, a.name, o), h.push(p)
}
} else switch (a.kind) {
case"message":
if (o === null && a.T().typeName != "google.protobuf.Value") {
this.assert(a.oneof === void 0, a.name + " (oneof member)", null);
continue
}
l[f] = a.T().internalJsonRead(o, r, l[f]);
break;
case"enum":
let h = this.enum(a.T(), o, a.name, r.ignoreUnknownFields);
if (h === !1) continue;
l[f] = h;
break;
case"scalar":
l[f] = this.scalar(o, a.T, a.L, a.name);
break
}
}
}
enum(e, t, r, n) {
if (e[0] == "google.protobuf.NullValue" && m(t === null, `Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} only accepts null.`), t === null) return 0;
switch (typeof t) {
case"number":
return m(Number.isInteger(t), `Unable to parse field ${this.info.typeName}#${r}, enum can only be integral number, got ${t}.`), t;
case"string":
let s = t;
e[2] && t.substring(0, e[2].length) === e[2] && (s = t.substring(e[2].length));
let o = e[1][s];
return typeof o > "u" && n ? !1 : (m(typeof o == "number", `Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} has no value for "${t}".`), o)
}
m(!1, `Unable to parse field ${this.info.typeName}#${r}, cannot parse enum value from ${typeof t}".`)
}
scalar(e, t, r, n) {
let s;
try {
switch (t) {
case u.DOUBLE:
case u.FLOAT:
if (e === null) return 0;
if (e === "NaN") return Number.NaN;
if (e === "Infinity") return Number.POSITIVE_INFINITY;
if (e === "-Infinity") return Number.NEGATIVE_INFINITY;
if (e === "") {
s = "empty string";
break
}
if (typeof e == "string" && e.trim().length !== e.length) {
s = "extra whitespace";
break
}
if (typeof e != "string" && typeof e != "number") break;
let o = Number(e);
if (Number.isNaN(o)) {
s = "not a number";
break
}
if (!Number.isFinite(o)) {
s = "too large or small";
break
}
return t == u.FLOAT && j(o), o;
case u.INT32:
case u.FIXED32:
case u.SFIXED32:
case u.SINT32:
case u.UINT32:
if (e === null) return 0;
let a;
if (typeof e == "number" ? a = e : e === "" ? s = "empty string" : typeof e == "string" && (e.trim().length !== e.length ? s = "extra whitespace" : a = Number(e)), a === void 0) break;
return t == u.UINT32 ? W(a) : M(a), a;
case u.INT64:
case u.SFIXED64:
case u.SINT64:
if (e === null) return R(w.ZERO, r);
if (typeof e != "number" && typeof e != "string") break;
return R(w.from(e), r);
case u.FIXED64:
case u.UINT64:
if (e === null) return R(T.ZERO, r);
if (typeof e != "number" && typeof e != "string") break;
return R(T.from(e), r);
case u.BOOL:
if (e === null) return !1;
if (typeof e != "boolean") break;
return e;
case u.STRING:
if (e === null) return "";
if (typeof e != "string") {
s = "extra whitespace";
break
}
try {
encodeURIComponent(e)
} catch (f) {
f = "invalid UTF8";
break
}
return e;
case u.BYTES:
if (e === null || e === "") return new Uint8Array(0);
if (typeof e != "string") break;
return Oe(e)
}
} catch (o) {
s = o.message
}
this.assert(!1, n + (s ? " - " + s : ""), e)
}
};
var se = class {
constructor(e) {
var t;
this.fields = (t = e.fields) !== null && t !== void 0 ? t : []
}
write(e, t) {
let r = {}, n = e;
for (let s of this.fields) {
if (!s.oneof) {
let l = this.field(s, n[s.localName], t);
l !== void 0 && (r[t.useProtoFieldName ? s.name : s.jsonName] = l);
continue
}
let o = n[s.oneof];
if (o.oneofKind !== s.localName) continue;
let a = s.kind == "scalar" || s.kind == "enum" ? Object.assign(Object.assign({}, t), {emitDefaultValues: !0}) : t,
f = this.field(s, o[s.localName], a);
m(f !== void 0), r[t.useProtoFieldName ? s.name : s.jsonName] = f
}
return r
}
field(e, t, r) {
let n;
if (e.kind == "map") {
m(typeof t == "object" && t !== null);
let s = {};
switch (e.V.kind) {
case"scalar":
for (let [f, l] of Object.entries(t)) {
let h = this.scalar(e.V.T, l, e.name, !1, !0);
m(h !== void 0), s[f.toString()] = h
}
break;
case"message":
let o = e.V.T();
for (let [f, l] of Object.entries(t)) {
let h = this.message(o, l, e.name, r);
m(h !== void 0), s[f.toString()] = h
}
break;
case"enum":
let a = e.V.T();
for (let [f, l] of Object.entries(t)) {
m(l === void 0 || typeof l == "number");
let h = this.enum(a, l, e.name, !1, !0, r.enumAsInteger);
m(h !== void 0), s[f.toString()] = h
}
break
}
(r.emitDefaultValues || Object.keys(s).length > 0) && (n = s)
} else if (e.repeat) {
m(Array.isArray(t));
let s = [];
switch (e.kind) {
case"scalar":
for (let f = 0; f < t.length; f++) {
let l = this.scalar(e.T, t[f], e.name, e.opt, !0);
m(l !== void 0), s.push(l)
}
break;
case"enum":
let o = e.T();
for (let f = 0; f < t.length; f++) {
m(t[f] === void 0 || typeof t[f] == "number");
let l = this.enum(o, t[f], e.name, e.opt, !0, r.enumAsInteger);
m(l !== void 0), s.push(l)
}
break;
case"message":
let a = e.T();
for (let f = 0; f < t.length; f++) {
let l = this.message(a, t[f], e.name, r);
m(l !== void 0), s.push(l)
}
break
}
(r.emitDefaultValues || s.length > 0 || r.emitDefaultValues) && (n = s)
} else switch (e.kind) {
case"scalar":
n = this.scalar(e.T, t, e.name, e.opt, r.emitDefaultValues);
break;
case"enum":
n = this.enum(e.T(), t, e.name, e.opt, r.emitDefaultValues, r.enumAsInteger);
break;
case"message":
n = this.message(e.T(), t, e.name, r);
break
}
return n
}
enum(e, t, r, n, s, o) {
if (e[0] == "google.protobuf.NullValue") return null;
if (t === void 0) {
m(n);
return
}
if (!(t === 0 && !s && !n)) return m(typeof t == "number"), m(Number.isInteger(t)), o || !e[1].hasOwnProperty(t) ? t : e[2] ? e[2] + e[1][t] : e[1][t]
}
message(e, t, r, n) {
return t === void 0 ? n.emitDefaultValues ? null : void 0 : e.internalJsonWrite(t, n)
}
scalar(e, t, r, n, s) {
if (t === void 0) {
m(n);
return
}
let o = s || n;
switch (e) {
case u.INT32:
case u.SFIXED32:
case u.SINT32:
return t === 0 ? o ? 0 : void 0 : (M(t), t);
case u.FIXED32:
case u.UINT32:
return t === 0 ? o ? 0 : void 0 : (W(t), t);
case u.FLOAT:
j(t);
case u.DOUBLE:
return t === 0 ? o ? 0 : void 0 : (m(typeof t == "number"), Number.isNaN(t) ? "NaN" : t === Number.POSITIVE_INFINITY ? "Infinity" : t === Number.NEGATIVE_INFINITY ? "-Infinity" : t);
case u.STRING:
return t === "" ? o ? "" : void 0 : (m(typeof t == "string"), t);
case u.BOOL:
return t === !1 ? o ? !1 : void 0 : (m(typeof t == "boolean"), t);
case u.UINT64:
case u.FIXED64:
m(typeof t == "number" || typeof t == "string" || typeof t == "bigint");
let a = T.from(t);
return a.isZero() && !o ? void 0 : a.toString();
case u.INT64:
case u.SFIXED64:
case u.SINT64:
m(typeof t == "number" || typeof t == "string" || typeof t == "bigint");
let f = w.from(t);
return f.isZero() && !o ? void 0 : f.toString();
case u.BYTES:
return m(t instanceof Uint8Array), t.byteLength ? Fe(t) : o ? "" : void 0
}
}
};
function _(i, e = F.STRING) {
switch (i) {
case u.BOOL:
return !1;
case u.UINT64:
case u.FIXED64:
return R(T.ZERO, e);
case u.INT64:
case u.SFIXED64:
case u.SINT64:
return R(w.ZERO, e);
case u.DOUBLE:
case u.FLOAT:
return 0;
case u.BYTES:
return new Uint8Array(0);
case u.STRING:
return "";
default:
return 0
}
}
var oe = class {
constructor(e) {
this.info = e
}
prepare() {
var e;
if (!this.fieldNoToField) {
let t = (e = this.info.fields) !== null && e !== void 0 ? e : [];
this.fieldNoToField = new Map(t.map(r => [r.no, r]))
}
}
read(e, t, r, n) {
this.prepare();
let s = n === void 0 ? e.len : e.pos + n;
for (; e.pos < s;) {
let [o, a] = e.tag(), f = this.fieldNoToField.get(o);
if (!f) {
let p = r.readUnknownField;
if (p == "throw") throw new Error(`Unknown field ${o} (wire type ${a}) for ${this.info.typeName}`);
let c = e.skip(a);
p !== !1 && (p === !0 ? O.onRead : p)(this.info.typeName, t, o, a, c);
continue
}
let l = t, h = f.repeat, y = f.localName;
switch (f.oneof && (l = l[f.oneof], l.oneofKind !== y && (l = t[f.oneof] = {oneofKind: y})), f.kind) {
case"scalar":
case"enum":
let p = f.kind == "enum" ? u.INT32 : f.T, c = f.kind == "scalar" ? f.L : void 0;
if (h) {
let N = l[y];
if (a == g.LengthDelimited && p != u.STRING && p != u.BYTES) {
let d = e.uint32() + e.pos;
for (; e.pos < d;) N.push(this.scalar(e, p, c))
} else N.push(this.scalar(e, p, c))
} else l[y] = this.scalar(e, p, c);
break;
case"message":
if (h) {
let N = l[y], d = f.T().internalBinaryRead(e, e.uint32(), r);
N.push(d)
} else l[y] = f.T().internalBinaryRead(e, e.uint32(), r, l[y]);
break;
case"map":
let [b, A] = this.mapEntry(f, e, r);
l[y][b] = A;
break
}
}
}
mapEntry(e, t, r) {
let n = t.uint32(), s = t.pos + n, o, a;
for (; t.pos < s;) {
let [f, l] = t.tag();
switch (f) {
case 1:
e.K == u.BOOL ? o = t.bool().toString() : o = this.scalar(t, e.K, F.STRING);
break;
case 2:
switch (e.V.kind) {
case"scalar":
a = this.scalar(t, e.V.T, e.V.L);
break;
case"enum":
a = t.int32();
break;
case"message":
a = e.V.T().internalBinaryRead(t, t.uint32(), r);
break
}
break;
default:
throw new Error(`Unknown field ${f} (wire type ${l}) in map entry for ${this.info.typeName}#${e.name}`)
}
}
if (o === void 0) {
let f = _(e.K);
o = e.K == u.BOOL ? f.toString() : f
}
if (a === void 0) switch (e.V.kind) {
case"scalar":
a = _(e.V.T, e.V.L);
break;
case"enum":
a = 0;
break;
case"message":
a = e.V.T().create();
break
}
return [o, a]
}
scalar(e, t, r) {
switch (t) {
case u.INT32:
return e.int32();
case u.STRING:
return e.string();
case u.BOOL:
return e.bool();
case u.DOUBLE:
return e.double();
case u.FLOAT:
return e.float();
case u.INT64:
return R(e.int64(), r);
case u.UINT64:
return R(e.uint64(), r);
case u.FIXED64:
return R(e.fixed64(), r);
case u.FIXED32:
return e.fixed32();
case u.BYTES:
return e.bytes();
case u.UINT32:
return e.uint32();
case u.SFIXED32:
return e.sfixed32();
case u.SFIXED64:
return R(e.sfixed64(), r);
case u.SINT32:
return e.sint32();
case u.SINT64:
return R(e.sint64(), r)
}
}
};
var ae = class {
constructor(e) {
this.info = e
}
prepare() {
if (!this.fields) {
let e = this.info.fields ? this.info.fields.concat() : [];
this.fields = e.sort((t, r) => t.no - r.no)
}
}
write(e, t, r) {
this.prepare();
for (let s of this.fields) {
let o, a, f = s.repeat, l = s.localName;
if (s.oneof) {
let h = e[s.oneof];
if (h.oneofKind !== l) continue;
o = h[l], a = !0
} else o = e[l], a = !1;
switch (s.kind) {
case"scalar":
case"enum":
let h = s.kind == "enum" ? u.INT32 : s.T;
if (f) if (m(Array.isArray(o)), f == v.PACKED) this.packed(t, h, s.no, o); else for (let y of o) this.scalar(t, h, s.no, y, !0); else o === void 0 ? m(s.opt) : this.scalar(t, h, s.no, o, a || s.opt);
break;
case"message":
if (f) {
m(Array.isArray(o));
for (let y of o) this.message(t, r, s.T(), s.no, y)
} else this.message(t, r, s.T(), s.no, o);
break;
case"map":
m(typeof o == "object" && o !== null);
for (let [y, p] of Object.entries(o)) this.mapEntry(t, r, s, y, p);
break
}
}
let n = r.writeUnknownFields;
n !== !1 && (n === !0 ? O.onWrite : n)(this.info.typeName, e, t)
}
mapEntry(e, t, r, n, s) {
e.tag(r.no, g.LengthDelimited), e.fork();
let o = n;
switch (r.K) {
case u.INT32:
case u.FIXED32:
case u.UINT32:
case u.SFIXED32:
case u.SINT32:
o = Number.parseInt(n);
break;
case u.BOOL:
m(n == "true" || n == "false"), o = n == "true";
break
}
switch (this.scalar(e, r.K, 1, o, !0), r.V.kind) {
case"scalar":
this.scalar(e, r.V.T, 2, s, !0);
break;
case"enum":
this.scalar(e, u.INT32, 2, s, !0);
break;
case"message":
this.message(e, t, r.V.T(), 2, s);
break
}
e.join()
}
message(e, t, r, n, s) {
s !== void 0 && (r.internalBinaryWrite(s, e.tag(n, g.LengthDelimited).fork(), t), e.join())
}
scalar(e, t, r, n, s) {
let [o, a, f] = this.scalarInfo(t, n);
(!f || s) && (e.tag(r, o), e[a](n))
}
packed(e, t, r, n) {
if (!n.length) return;
m(t !== u.BYTES && t !== u.STRING), e.tag(r, g.LengthDelimited), e.fork();
let [, s] = this.scalarInfo(t);
for (let o = 0; o < n.length; o++) e[s](n[o]);
e.join()
}
scalarInfo(e, t) {
let r = g.Varint, n, s = t === void 0, o = t === 0;
switch (e) {
case u.INT32:
n = "int32";
break;
case u.STRING:
o = s || !t.length, r = g.LengthDelimited, n = "string";
break;
case u.BOOL:
o = t === !1, n = "bool";
break;
case u.UINT32:
n = "uint32";
break;
case u.DOUBLE:
r = g.Bit64, n = "double";
break;
case u.FLOAT:
r = g.Bit32, n = "float";
break;
case u.INT64:
o = s || w.from(t).isZero(), n = "int64";
break;
case u.UINT64:
o = s || T.from(t).isZero(), n = "uint64";
break;
case u.FIXED64:
o = s || T.from(t).isZero(), r = g.Bit64, n = "fixed64";
break;
case u.BYTES:
o = s || !t.byteLength, r = g.LengthDelimited, n = "bytes";
break;
case u.FIXED32:
r = g.Bit32, n = "fixed32";
break;
case u.SFIXED32:
r = g.Bit32, n = "sfixed32";
break;
case u.SFIXED64:
o = s || w.from(t).isZero(), r = g.Bit64, n = "sfixed64";
break;
case u.SINT32:
n = "sint32";
break;
case u.SINT64:
o = s || w.from(t).isZero(), n = "sint64";
break
}
return [r, n, s || o]
}
};
function Je(i) {
let e = {};
Object.defineProperty(e, K, {enumerable: !1, value: i});
for (let t of i.fields) {
let r = t.localName;
if (!t.opt) if (t.oneof) e[t.oneof] = {oneofKind: void 0}; else if (t.repeat) e[r] = []; else switch (t.kind) {
case"scalar":
e[r] = _(t.T, t.L);
break;
case"enum":
e[r] = 0;
break;
case"map":
e[r] = {};
break
}
}
return e
}
function C(i, e, t) {
let r, n = t, s;
for (let o of i.fields) {
let a = o.localName;
if (o.oneof) {
let f = n[o.oneof];
if (f?.oneofKind == null) continue;
if (r = f[a], s = e[o.oneof], s.oneofKind = f.oneofKind, r == null) {
delete s[a];
continue
}
} else if (r = n[a], s = e, r == null) continue;
switch (o.repeat && (s[a].length = r.length), o.kind) {
case"scalar":
case"enum":
if (o.repeat) for (let l = 0; l < r.length; l++) s[a][l] = r[l]; else s[a] = r;
break;
case"message":
let f = o.T();
if (o.repeat) for (let l = 0; l < r.length; l++) s[a][l] = f.create(r[l]); else s[a] === void 0 ? s[a] = f.create(r) : f.mergePartial(s[a], r);
break;
case"map":
switch (o.V.kind) {
case"scalar":
case"enum":
Object.assign(s[a], r);
break;
case"message":
let l = o.V.T();
for (let h of Object.keys(r)) s[a][h] = l.create(r[h]);
break
}
break
}
}
}
function Xe(i, e, t) {
if (e === t) return !0;
if (!e || !t) return !1;
for (let r of i.fields) {
let n = r.localName, s = r.oneof ? e[r.oneof][n] : e[n], o = r.oneof ? t[r.oneof][n] : t[n];
switch (r.kind) {
case"enum":
case"scalar":
let a = r.kind == "enum" ? u.INT32 : r.T;
if (!(r.repeat ? We(a, s, o) : Ge(a, s, o))) return !1;
break;
case"map":
if (!(r.V.kind == "message" ? je(r.V.T(), fe(s), fe(o)) : We(r.V.kind == "enum" ? u.INT32 : r.V.T, fe(s), fe(o)))) return !1;
break;
case"message":
let f = r.T();
if (!(r.repeat ? je(f, s, o) : f.equals(s, o))) return !1;
break
}
}
return !0
}
var fe = Object.values;
function Ge(i, e, t) {
if (e === t) return !0;
if (i !== u.BYTES) return !1;
let r = e, n = t;
if (r.length !== n.length) return !1;
for (let s = 0; s < r.length; s++) if (r[s] != n[s]) return !1;
return !0
}
function We(i, e, t) {
if (e.length !== t.length) return !1;
for (let r = 0; r < e.length; r++) if (!Ge(i, e[r], t[r])) return !1;
return !0
}
function je(i, e, t) {
if (e.length !== t.length) return !1;
for (let r = 0; r < e.length; r++) if (!i.equals(e[r], t[r])) return !1;
return !0
}
var q = class {
constructor(e, t, r) {
this.defaultCheckDepth = 16, this.typeName = e, this.fields = t.map(Ke), this.options = r ?? {}, this.refTypeCheck = new ne(this), this.refJsonReader = new ie(this), this.refJsonWriter = new se(this), this.refBinReader = new oe(this), this.refBinWriter = new ae(this)
}
create(e) {
let t = Je(this);
return e !== void 0 && C(this, t, e), t
}
clone(e) {
let t = this.create();
return C(this, t, e), t
}
equals(e, t) {
return Xe(this, e, t)
}
is(e, t = this.defaultCheckDepth) {
return this.refTypeCheck.is(e, t, !1)
}
isAssignable(e, t = this.defaultCheckDepth) {
return this.refTypeCheck.is(e, t, !0)
}
mergePartial(e, t) {
C(this, e, t)
}
fromBinary(e, t) {
let r = Ve(t);
return this.internalBinaryRead(r.readerFactory(e), e.byteLength, r)
}
fromJson(e, t) {
return this.internalJsonRead(e, $e(t))
}
fromJsonString(e, t) {
let r = JSON.parse(e);
return this.fromJson(r, t)
}
toJson(e, t) {
return this.internalJsonWrite(e, Me(t))
}
toJsonString(e, t) {
var r;
let n = this.toJson(e, t);
return JSON.stringify(n, null, (r = t?.prettySpaces) !== null && r !== void 0 ? r : 0)
}
toBinary(e, t) {
let r = Ce(t);
return this.internalBinaryWrite(e, r.writerFactory(), r).finish()
}
internalJsonRead(e, t, r) {
if (e !== null && typeof e == "object" && !Array.isArray(e)) {
let n = r ?? this.create();
return this.refJsonReader.read(e, n, t), n
}
throw new Error(`Unable to parse message ${this.typeName} from JSON ${Z(e)}.`)
}
internalJsonWrite(e, t) {
return this.refJsonWriter.write(e, t)
}
internalBinaryWrite(e, t, r) {
return this.refBinWriter.write(e, t, r), t
}
internalBinaryRead(e, t, r, n) {
let s = n ?? this.create();
return this.refBinReader.read(e, s, r, t), s
}
};
var Ne = class extends q {
constructor() {
super("Request", [{no: 1, name: "context", kind: "message", T: () => ye}, {
no: 2,
name: "browseId",
kind: "scalar",
T: 9
}])
}
create(e) {
let t = {browseId: ""};
return globalThis.Object.defineProperty(t, K, {
enumerable: !1,
value: this
}), e !== void 0 && C(this, t, e), t
}
internalBinaryRead(e, t, r, n) {
let s = n ?? this.create(), o = e.pos + t;
for (; e.pos < o;) {
let [a, f] = e.tag();
switch (a) {
case 1:
s.context = ye.internalBinaryRead(e, e.uint32(), r, s.context);
break;
case 2:
s.browseId = e.string();
break;
default:
let l = r.readUnknownField;
if (l === "throw") throw new globalThis.Error(`Unknown field ${a} (wire type ${f}) for ${this.typeName}`);
let h = e.skip(f);
l !== !1 && (l === !0 ? O.onRead : l)(this.typeName, s, a, f, h)
}
}
return s
}
internalBinaryWrite(e, t, r) {
e.context && ye.internalBinaryWrite(e.context, t.tag(1, g.LengthDelimited).fork(), r).join(), e.browseId !== "" && t.tag(2, g.LengthDelimited).string(e.browseId);
let n = r.writeUnknownFields;
return n !== !1 && (n == !0 ? O.onWrite : n)(this.typeName, e, t), t
}
}, ve = new Ne, ke = class extends q {
constructor() {
super("Context", [{no: 9, name: "adSignalsInfo", kind: "message", T: () => we}])
}
create(e) {
let t = {};
return globalThis.Object.defineProperty(t, K, {
enumerable: !1,
value: this
}), e !== void 0 && C(this, t, e), t
}
internalBinaryRead(e, t, r, n) {
let s = n ?? this.create(), o = e.pos + t;
for (; e.pos < o;) {
let [a, f] = e.tag();
switch (a) {
case 9:
s.adSignalsInfo = we.internalBinaryRead(e, e.uint32(), r, s.adSignalsInfo);
break;
default:
let l = r.readUnknownField;
if (l === "throw") throw new globalThis.Error(`Unknown field ${a} (wire type ${f}) for ${this.typeName}`);
let h = e.skip(f);
l !== !1 && (l === !0 ? O.onRead : l)(this.typeName, s, a, f, h)
}
}
return s
}
internalBinaryWrite(e, t, r) {
e.adSignalsInfo && we.internalBinaryWrite(e.adSignalsInfo, t.tag(9, g.LengthDelimited).fork(), r).join();
let n = r.writeUnknownFields;
return n !== !1 && (n == !0 ? O.onWrite : n)(this.typeName, e, t), t
}
}, ye = new ke, xe = class extends q {
constructor() {
super("AdSignalsInfo", [{no: 1, name: "params", kind: "message", repeat: 1, T: () => Ie}])
}
create(e) {
let t = {params: []};
return globalThis.Object.defineProperty(t, K, {
enumerable: !1,
value: this
}), e !== void 0 && C(this, t, e), t
}
internalBinaryRead(e, t, r, n) {
let s = n ?? this.create(), o = e.pos + t;
for (; e.pos < o;) {
let [a, f] = e.tag();
switch (a) {
case 1:
s.params.push(Ie.internalBinaryRead(e, e.uint32(), r));
break;
default:
let l = r.readUnknownField;
if (l === "throw") throw new globalThis.Error(`Unknown field ${a} (wire type ${f}) for ${this.typeName}`);
let h = e.skip(f);
l !== !1 && (l === !0 ? O.onRead : l)(this.typeName, s, a, f, h)
}
}
return s
}
internalBinaryWrite(e, t, r) {
for (let s = 0; s < e.params.length; s++) Ie.internalBinaryWrite(e.params[s], t.tag(1, g.LengthDelimited).fork(), r).join();
let n = r.writeUnknownFields;
return n !== !1 && (n == !0 ? O.onWrite : n)(this.typeName, e, t), t
}
}, we = new xe, Te = class extends q {
constructor() {
super("Params", [{no: 1, name: "key", kind: "scalar", T: 9}, {no: 2, name: "value", kind: "scalar", T: 9}])
}
create(e) {
let t = {key: "", value: ""};
return globalThis.Object.defineProperty(t, K, {
enumerable: !1,
value: this
}), e !== void 0 && C(this, t, e), t
}
internalBinaryRead(e, t, r, n) {
let s = n ?? this.create(), o = e.pos + t;
for (; e.pos < o;) {
let [a, f] = e.tag();
switch (a) {
case 1:
s.key = e.string();
break;
case 2:
s.value = e.string();
break;
default:
let l = r.readUnknownField;
if (l === "throw") throw new globalThis.Error(`Unknown field ${a} (wire type ${f}) for ${this.typeName}`);
let h = e.skip(f);
l !== !1 && (l === !0 ? O.onRead : l)(this.typeName, s, a, f, h)
}
}
return s
}
internalBinaryWrite(e, t, r) {
e.key !== "" && t.tag(1, g.LengthDelimited).string(e.key), e.value !== "" && t.tag(2, g.LengthDelimited).string(e.value);
let n = r.writeUnknownFields;
return n !== !1 && (n == !0 ? O.onWrite : n)(this.typeName, e, t), t
}
}, Ie = new Te;
var X = class {
constructor(e, t, r) {
this._times = new Map;
this.name = e ?? "", this.debug = r?.debug ?? !1, e && this.log(`${e} Start`), this.className = t ?? "", this.init()
}
static getInstance(e, t) {
let r = typeof $task < "u" ? "QuanX" : "Surge";
return X.instances[r] || (X.instances[r] = X.classNames[r](e, r, t)), X.instances[r]
}
createProxy(e) {
return new Proxy(e, {get: this.getFn, set: this.setFn})
}
getFn(e, t, r) {
return e[t]
}
setFn(e, t, r, n) {
return e[t] = r, !0
}
getJSON(e, t = {}) {
let r = this.getVal(e);
return r ? JSON.parse(r) : t
}
setJSON(e, t) {
this.setVal(JSON.stringify(e), t)
}
msg(e = this.name, t = "", r = "", n) {
}
log(e) {
this.debug && (typeof e == "object" && (e = JSON.stringify(e)), console.log(e))
}
timeStart(e) {
this._times = this._times || {}, this._times[e] = Date.now()
}
timeEnd(e) {
if (this._times?.has(e)) {
let t = Date.now() - this._times[e];
this.log(`${e}: ${t}ms`), this._times.delete(e)
} else this.log(`Timer with label ${e} does not exist.`)
}
exit() {
$done({})
}
reject() {
$done()
}
}, $ = X;
$.instances = {}, $.classNames = {QuanX: (e, t, r) => new le(e, t, r), Surge: (e, t, r) => new ue(e, t, r)};
var ce = class extends ${getFn(e,t,r){let n=ce.clientAdapter[t]||t;return super.getFn(e,n,r)}setFn(e, t, r, n) {
let
s = ce.clientAdapter[t] || t;
return
super
.
setFn(e, s, r, n)
}
init()
{
try {
this.request = this.createProxy($request), this.response = this.createProxy($response)
} catch (e) {
this.log(e.toString())
}
}
getVal(e)
{
return $persistentStore.read(e)
}
setVal(e, t)
{
$persistentStore.write(e, t)
}
msg(e = this.name, t = "", r = "", n)
{
$notification.post(e, t, r, {url: n ?? ""})
}
async
fetch(e)
{
return await new Promise((t, r) => {
let {method: n, body: s, bodyBytes: o, ...a} = e, f = o ?? s, l = f instanceof Uint8Array;
$httpClient[n.toLowerCase()]({...a, body: f, "binary-mode": l}, (h, y, p) => {
h && r(h);
let c = l ? "bodyBytes" : "body";
t({status: y.status || y.statusCode, headers: y.headers, [c]: p})
})
})
}
done(e)
{
let t = e.response ?? e, r, n;
t.bodyBytes ? (r = t.bodyBytes, delete t.bodyBytes, n = {...e}, n.response ? n.response.body = r : n.body = r) : n = e, $done(n)
}
}, ue = ce;
ue.clientAdapter = {bodyBytes: "body"};
var P = class extends ${static transferBodyBytes(e,t){return e instanceof ArrayBuffer?t==="Uint8Array"?new Uint8Array(e):e:e instanceof Uint8Array&&t==="ArrayBuffer"?e.buffer.slice(e.byteOffset,e.byteLength+e.byteOffset):e}init() {
try {
this
.
request = this.createProxy($request)
,
this
.
response = this.createProxy($response)
}
catch
(e)
{
this.log(e.toString())
}
}
getFn(e, t, r)
{
let n = P.clientAdapter[t] || t, s = super.getFn(e, n, r);
return t === "bodyBytes" && (s = P.transferBodyBytes(s, "Uint8Array")), s
}
setFn(e, t, r, n)
{
let s = P.clientAdapter[t] || t, o = r;
return t === "bodyBytes" && (o = P.transferBodyBytes(o, "Uint8Array")), super.setFn(e, s, o, n)
}
getVal(e)
{
return $prefs.valueForKey(e)?.replace(/\0/g, "")
}
setVal(e, t)
{
$prefs.setValueForKey(e, t)
}
msg(e = this.name, t = "", r = "", n)
{
$notify(e, t, r, {"open-url": n ?? ""})
}
async
fetch(e)
{
return await new Promise(t => {
let r = {url: "", method: "GET"};
for (let [n, s] of Object.entries(e)) n === "id" ? r.sessionIndex = s : n === "bodyBytes" ? r.bodyBytes = P.transferBodyBytes(s, "ArrayBuffer") : r[n] = s;
e.bodyBytes && delete r.body, $task.fetch(r).then(n => {
let s = {status: 200, headers: {}};
for (let [o, a] of Object.entries(n)) o === "sessionIndex" ? s.id = a : o === "bodyBytes" ? s.bodyBytes = P.transferBodyBytes(a, "Uint8Array") : o === "statusCode" ? s.status = a : s[o] = a;
t(s)
})
})
}
done(e)
{
let t = e.response ?? e, r = {};
for (let [n, s] of Object.entries(t)) n === "status" ? r.status = `HTTP/1.1 ${s}` : n === "bodyBytes" ? r.bodyBytes = P.transferBodyBytes(s, "ArrayBuffer") : r[n] = s;
$done(r)
}
},
le = P;
le.clientAdapter = {id: "sessionIndex", status: "statusCode"};
var S = $.getInstance("YouTube", {debug: !1});
var he = class {
constructor(e, t) {
this.decoder = new TextDecoder("utf-8", {fatal: !1, ignoreBOM: !0});
S.log(t), this.msgType = e, Object.assign(this, S.getJSON("YouTubeAdvertiseInfo", {
whiteNo: [],
blackNo: [],
whiteEml: [],
blackEml: ["cell_divider.eml"]
}))
}
fromBinary(e) {
return this.message = this.msgType.fromBinary(e), this
}
toBinary() {
return this.msgType.toBinary(this.message)
}
save() {
if (this.needSave) {
S.log("Update Config");
let e = {whiteNo: this.whiteNo, blackNo: this.blackNo, whiteEml: this.whiteEml, blackEml: this.blackEml};
S.setJSON(e, "YouTubeAdvertiseInfo")
}
}
done(e) {
this.save();
let t = e.bodyBytes;
this.needProcess && (t = this.toBinary()), e.headers["Content-Encoding"] = "identity", e.headers["Content-Length"] = (t?.length ?? 0)?.toString(), S.done({
response: {
...e,
bodyBytes: t
}
})
}
doneResponse() {
this.save(), this.needProcess && S.done({bodyBytes: this.toBinary()}), S.exit()
}
iterate(e = {}, t, r, n) {
let s = [];
for (s.push(e); s.length;) {
let o = s.pop(), a = Object.keys(o);
for (; a.length;) {
let f = a.pop();
f === t ? r(o, s) : typeof o[f] == "object" && (s.push(o[f]), typeof n == "function" && n(o, s))
}
}
}
isAdvertise(e) {
let t = O.list(e)[0], r = t ? this.handleFieldNo(t) : this.handleFieldEml(e);
return r && (this.needProcess = !0), r
}
handleFieldNo(e) {
let t = e.no;
if (this.whiteNo.includes(t)) return !1;
if (this.blackNo.includes(t)) return !0;
let n = this.decoder.decode(e.data).includes("pagead");
return n ? this.blackNo.push(t) : this.whiteNo.push(t), this.needSave = !0, n
}
handleFieldEml(e) {
let t = !1, r = !0, n = "";
return this.iterate(e, "type", (s, o) => {
n = s.type.split("|")[0], this.whiteEml.includes(n) ? t = !1 : this.blackEml.includes(n) || /shorts(?!_pivot_item)/.test(n) ? t = !0 : r = !1, r && (o.length = 0)
}), r || (this.iterate(e, "type", () => {
}, (s, o) => {
let a = O.list(s);
for (let f of a) if (f.data.length > 1e3 && (t = this.decoder.decode(f.data).includes("pagead"), t)) {
o.length = 0;
break
}
}), t ? this.blackEml.push(n) : this.whiteEml.push(n), this.needSave = !0), t
}
};
var Y = class extends he {
constructor(e = ve, t = "Request") {
super(e, t)
}
pure() {
return this.message.context.adSignalsInfo.params.length = 0, this.needProcess = !0, this
}
};
var et = new Y;
try {
let i = et.fromBinary(S.request.bodyBytes).pure().toBinary();
S.done({bodyBytes: i})
} catch (i) {
S.log(i.toString()), S.exit()
}
})
();